@phcdevworks/spectre-components 1.2.0 → 1.4.0
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/README.md +359 -199
- package/dist/badge.cjs +450 -0
- package/dist/badge.cjs.map +1 -0
- package/dist/badge.d.cts +61 -0
- package/dist/badge.d.ts +61 -0
- package/dist/badge.js +445 -0
- package/dist/badge.js.map +1 -0
- package/dist/{base-B_9DJkh2.d.cts → base-BRQ7QAAr.d.cts} +3 -0
- package/dist/{base-B_9DJkh2.d.ts → base-BRQ7QAAr.d.ts} +3 -0
- package/dist/button.cjs +53 -4
- package/dist/button.cjs.map +1 -1
- package/dist/button.d.cts +12 -15
- package/dist/button.d.ts +12 -15
- package/dist/button.js +54 -5
- package/dist/button.js.map +1 -1
- package/dist/card.cjs +439 -0
- package/dist/card.cjs.map +1 -0
- package/dist/card.d.cts +67 -0
- package/dist/card.d.ts +67 -0
- package/dist/card.js +435 -0
- package/dist/card.js.map +1 -0
- package/dist/checkbox.cjs +48 -2
- package/dist/checkbox.cjs.map +1 -1
- package/dist/checkbox.d.cts +11 -14
- package/dist/checkbox.d.ts +11 -14
- package/dist/checkbox.js +48 -2
- package/dist/checkbox.js.map +1 -1
- package/dist/fieldset.cjs +45 -0
- package/dist/fieldset.cjs.map +1 -1
- package/dist/fieldset.d.cts +11 -2
- package/dist/fieldset.d.ts +11 -2
- package/dist/fieldset.js +45 -0
- package/dist/fieldset.js.map +1 -1
- package/dist/form-Dg6kuOS7.d.cts +18 -0
- package/dist/form-Dg6kuOS7.d.ts +18 -0
- package/dist/icon-box.cjs +462 -0
- package/dist/icon-box.cjs.map +1 -0
- package/dist/icon-box.d.cts +73 -0
- package/dist/icon-box.d.ts +73 -0
- package/dist/icon-box.js +457 -0
- package/dist/icon-box.js.map +1 -0
- package/dist/index.cjs +754 -26
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -3
- package/dist/index.d.ts +8 -3
- package/dist/index.js +739 -28
- package/dist/index.js.map +1 -1
- package/dist/input.cjs +55 -7
- package/dist/input.cjs.map +1 -1
- package/dist/input.d.cts +16 -27
- package/dist/input.d.ts +16 -27
- package/dist/input.js +55 -7
- package/dist/input.js.map +1 -1
- package/dist/label.cjs +29 -0
- package/dist/label.cjs.map +1 -1
- package/dist/label.d.cts +4 -3
- package/dist/label.d.ts +4 -3
- package/dist/label.js +29 -0
- package/dist/label.js.map +1 -1
- package/dist/{projectable-CIfxi7dv.d.cts → projectable-Bx-IVk0w.d.cts} +1 -1
- package/dist/{projectable-Ksv9eoIr.d.ts → projectable-D6IDeKfr.d.ts} +1 -1
- package/dist/radio.cjs +50 -4
- package/dist/radio.cjs.map +1 -1
- package/dist/radio.d.cts +11 -14
- package/dist/radio.d.ts +11 -14
- package/dist/radio.js +50 -4
- package/dist/radio.js.map +1 -1
- package/dist/rating.cjs +373 -0
- package/dist/rating.cjs.map +1 -0
- package/dist/rating.d.cts +67 -0
- package/dist/rating.d.ts +67 -0
- package/dist/rating.js +369 -0
- package/dist/rating.js.map +1 -0
- package/dist/select.cjs +65 -2
- package/dist/select.cjs.map +1 -1
- package/dist/select.d.cts +19 -16
- package/dist/select.d.ts +19 -16
- package/dist/select.js +65 -2
- package/dist/select.js.map +1 -1
- package/dist/testimonial.cjs +433 -0
- package/dist/testimonial.cjs.map +1 -0
- package/dist/testimonial.d.cts +61 -0
- package/dist/testimonial.d.ts +61 -0
- package/dist/testimonial.js +429 -0
- package/dist/testimonial.js.map +1 -0
- package/dist/textarea.cjs +55 -7
- package/dist/textarea.cjs.map +1 -1
- package/dist/textarea.d.cts +15 -26
- package/dist/textarea.d.ts +15 -26
- package/dist/textarea.js +55 -7
- package/dist/textarea.js.map +1 -1
- package/package.json +45 -15
- package/dist/form-9cZG1E9P.d.cts +0 -10
- package/dist/form-9cZG1E9P.d.ts +0 -10
package/dist/select.cjs
CHANGED
|
@@ -13,6 +13,7 @@ var SpectreBaseElement = class extends lit.LitElement {
|
|
|
13
13
|
this._ariaLabelledBy = null;
|
|
14
14
|
this._ariaDescribedBy = null;
|
|
15
15
|
this._autocapitalize = "";
|
|
16
|
+
this._autofocus = false;
|
|
16
17
|
this._spellcheck = null;
|
|
17
18
|
this._title = "";
|
|
18
19
|
this._id = "";
|
|
@@ -97,6 +98,18 @@ var SpectreBaseElement = class extends lit.LitElement {
|
|
|
97
98
|
this._removeHostAttribute("id");
|
|
98
99
|
this.requestUpdate();
|
|
99
100
|
}
|
|
101
|
+
get autofocus() {
|
|
102
|
+
return this._autofocus;
|
|
103
|
+
}
|
|
104
|
+
set autofocus(value) {
|
|
105
|
+
const normalizedValue = !!value;
|
|
106
|
+
if (this._autofocus === normalizedValue) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
this._autofocus = normalizedValue;
|
|
110
|
+
this._removeHostAttribute("autofocus");
|
|
111
|
+
this.requestUpdate();
|
|
112
|
+
}
|
|
100
113
|
// Spectre components intentionally render in light DOM so the global
|
|
101
114
|
// `@phcdevworks/spectre-ui` styling contract can apply directly.
|
|
102
115
|
createRenderRoot() {
|
|
@@ -108,6 +121,7 @@ var SpectreBaseElement = class extends lit.LitElement {
|
|
|
108
121
|
"id",
|
|
109
122
|
"title",
|
|
110
123
|
"autocapitalize",
|
|
124
|
+
"autofocus",
|
|
111
125
|
"spellcheck",
|
|
112
126
|
"aria-label",
|
|
113
127
|
"aria-labelledby",
|
|
@@ -128,6 +142,8 @@ var SpectreBaseElement = class extends lit.LitElement {
|
|
|
128
142
|
return this.title || null;
|
|
129
143
|
case "autocapitalize":
|
|
130
144
|
return this.autocapitalize || null;
|
|
145
|
+
case "autofocus":
|
|
146
|
+
return this.autofocus ? "" : null;
|
|
131
147
|
case "spellcheck":
|
|
132
148
|
return this._spellcheck !== null ? String(this._spellcheck) : null;
|
|
133
149
|
case "aria-label":
|
|
@@ -148,6 +164,8 @@ var SpectreBaseElement = class extends lit.LitElement {
|
|
|
148
164
|
return this.title !== "";
|
|
149
165
|
case "autocapitalize":
|
|
150
166
|
return this.autocapitalize !== "";
|
|
167
|
+
case "autofocus":
|
|
168
|
+
return this.autofocus;
|
|
151
169
|
case "spellcheck":
|
|
152
170
|
return this._spellcheck !== null;
|
|
153
171
|
case "aria-label":
|
|
@@ -171,6 +189,9 @@ var SpectreBaseElement = class extends lit.LitElement {
|
|
|
171
189
|
case "autocapitalize":
|
|
172
190
|
this.autocapitalize = value;
|
|
173
191
|
break;
|
|
192
|
+
case "autofocus":
|
|
193
|
+
this.autofocus = true;
|
|
194
|
+
break;
|
|
174
195
|
case "spellcheck":
|
|
175
196
|
this.spellcheck = value !== "false";
|
|
176
197
|
break;
|
|
@@ -198,6 +219,9 @@ var SpectreBaseElement = class extends lit.LitElement {
|
|
|
198
219
|
case "autocapitalize":
|
|
199
220
|
this.autocapitalize = "";
|
|
200
221
|
break;
|
|
222
|
+
case "autofocus":
|
|
223
|
+
this.autofocus = false;
|
|
224
|
+
break;
|
|
201
225
|
case "spellcheck":
|
|
202
226
|
this.spellcheck = null;
|
|
203
227
|
break;
|
|
@@ -319,7 +343,6 @@ function isInputSize(value) {
|
|
|
319
343
|
var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
320
344
|
constructor() {
|
|
321
345
|
super(...arguments);
|
|
322
|
-
this.autofocus = false;
|
|
323
346
|
this.disabled = false;
|
|
324
347
|
this.fullWidth = false;
|
|
325
348
|
this.invalid = false;
|
|
@@ -342,6 +365,24 @@ var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
|
342
365
|
set title(value) {
|
|
343
366
|
super.title = value;
|
|
344
367
|
}
|
|
368
|
+
get autocapitalize() {
|
|
369
|
+
return super.autocapitalize;
|
|
370
|
+
}
|
|
371
|
+
set autocapitalize(value) {
|
|
372
|
+
super.autocapitalize = value;
|
|
373
|
+
}
|
|
374
|
+
get autofocus() {
|
|
375
|
+
return super.autofocus;
|
|
376
|
+
}
|
|
377
|
+
set autofocus(value) {
|
|
378
|
+
super.autofocus = value;
|
|
379
|
+
}
|
|
380
|
+
get spellcheck() {
|
|
381
|
+
return super.spellcheck;
|
|
382
|
+
}
|
|
383
|
+
set spellcheck(value) {
|
|
384
|
+
super.spellcheck = value;
|
|
385
|
+
}
|
|
345
386
|
getContentContainer() {
|
|
346
387
|
return this.querySelector("[data-sp-select-native]");
|
|
347
388
|
}
|
|
@@ -353,6 +394,27 @@ var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
|
353
394
|
return el.hasAttribute("data-sp-select-native");
|
|
354
395
|
}
|
|
355
396
|
willUpdate(changedProperties) {
|
|
397
|
+
if (changedProperties.has("disabled") && this.disabled == null) {
|
|
398
|
+
this.disabled = false;
|
|
399
|
+
}
|
|
400
|
+
if (changedProperties.has("fullWidth") && this.fullWidth == null) {
|
|
401
|
+
this.fullWidth = false;
|
|
402
|
+
}
|
|
403
|
+
if (changedProperties.has("invalid") && this.invalid == null) {
|
|
404
|
+
this.invalid = false;
|
|
405
|
+
}
|
|
406
|
+
if (changedProperties.has("loading") && this.loading == null) {
|
|
407
|
+
this.loading = false;
|
|
408
|
+
}
|
|
409
|
+
if (changedProperties.has("pill") && this.pill == null) {
|
|
410
|
+
this.pill = false;
|
|
411
|
+
}
|
|
412
|
+
if (changedProperties.has("required") && this.required == null) {
|
|
413
|
+
this.required = false;
|
|
414
|
+
}
|
|
415
|
+
if (changedProperties.has("success") && this.success == null) {
|
|
416
|
+
this.success = false;
|
|
417
|
+
}
|
|
356
418
|
if (changedProperties.has("size") && (this.size == null || !isInputSize(this.size))) {
|
|
357
419
|
this.size = "md";
|
|
358
420
|
}
|
|
@@ -416,6 +478,7 @@ var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
|
416
478
|
aria-invalid="${ifDefined_js.ifDefined(this.invalid ? "true" : void 0)}"
|
|
417
479
|
aria-label="${ifDefined_js.ifDefined(this.forwardedAriaLabel)}"
|
|
418
480
|
aria-labelledby="${ifDefined_js.ifDefined(this.forwardedAriaLabelledBy)}"
|
|
481
|
+
autocapitalize="${ifDefined_js.ifDefined(this.autocapitalize || void 0)}"
|
|
419
482
|
autocomplete="${ifDefined_js.ifDefined(this.autocomplete || void 0)}"
|
|
420
483
|
?autofocus="${this.autofocus}"
|
|
421
484
|
class="${this.selectClasses}"
|
|
@@ -425,6 +488,7 @@ var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
|
425
488
|
id="${ifDefined_js.ifDefined(this.id || void 0)}"
|
|
426
489
|
name="${ifDefined_js.ifDefined(this.name || void 0)}"
|
|
427
490
|
?required="${this.required}"
|
|
491
|
+
spellcheck="${ifDefined_js.ifDefined(this.getAttribute("spellcheck") ?? void 0)}"
|
|
428
492
|
title="${ifDefined_js.ifDefined(this.title || void 0)}"
|
|
429
493
|
.value="${live_js.live(this.value)}"
|
|
430
494
|
@change="${this.handleChange}"
|
|
@@ -436,7 +500,6 @@ var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
|
436
500
|
};
|
|
437
501
|
SpectreSelectElement.properties = {
|
|
438
502
|
autocomplete: { type: String, reflect: true },
|
|
439
|
-
autofocus: { type: Boolean, reflect: true },
|
|
440
503
|
disabled: { type: Boolean, reflect: true },
|
|
441
504
|
form: { type: String },
|
|
442
505
|
fullWidth: { attribute: "full-width", type: Boolean, reflect: true },
|
package/dist/select.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/base.ts","../src/utils/dom.ts","../src/utils/projectable.ts","../src/utils/form.ts","../src/components/select/sp-select.ts"],"names":["LitElement","getInputClasses","html","ifDefined","live","nothing"],"mappings":"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","file":"select.cjs","sourcesContent":["import { LitElement, type PropertyDeclarations } from 'lit';\n\nexport class SpectreBaseElement extends LitElement {\n static properties: PropertyDeclarations = {};\n\n private _ariaLabel: string | null = null;\n private _ariaLabelledBy: string | null = null;\n private _ariaDescribedBy: string | null = null;\n private _autocapitalize = '';\n private _spellcheck: boolean | null = null;\n private _title = '';\n private _id = '';\n\n get ariaLabel(): string | null {\n return this._ariaLabel;\n }\n\n set ariaLabel(value: string | null) {\n if (this._ariaLabel === value) {\n return;\n }\n this._ariaLabel = value;\n this._removeHostAttribute('aria-label');\n this.requestUpdate();\n }\n\n get ariaLabelledBy(): string | null {\n return this._ariaLabelledBy;\n }\n\n set ariaLabelledBy(value: string | null) {\n if (this._ariaLabelledBy === value) {\n return;\n }\n this._ariaLabelledBy = value;\n this._removeHostAttribute('aria-labelledby');\n this.requestUpdate();\n }\n\n get ariaDescribedBy(): string | null {\n return this._ariaDescribedBy;\n }\n\n set ariaDescribedBy(value: string | null) {\n if (this._ariaDescribedBy === value) {\n return;\n }\n this._ariaDescribedBy = value;\n this._removeHostAttribute('aria-describedby');\n this.requestUpdate();\n }\n\n override get autocapitalize(): string {\n return this._autocapitalize;\n }\n\n override set autocapitalize(value: string | undefined | null) {\n const normalizedValue = value ?? '';\n if (this._autocapitalize === normalizedValue) {\n return;\n }\n this._autocapitalize = normalizedValue;\n this._removeHostAttribute('autocapitalize');\n this.requestUpdate();\n }\n\n override get spellcheck(): boolean {\n return this._spellcheck ?? super.spellcheck;\n }\n\n override set spellcheck(value: boolean | undefined | null) {\n if (this._spellcheck === value) {\n return;\n }\n this._spellcheck = value ?? null;\n this._removeHostAttribute('spellcheck');\n this.requestUpdate();\n }\n\n override get title(): string {\n return this._title;\n }\n\n override set title(value: string | undefined | null) {\n const normalizedValue = value ?? '';\n if (this._title === normalizedValue) {\n return;\n }\n this._title = normalizedValue;\n this._removeHostAttribute('title');\n this.requestUpdate();\n }\n\n override get id(): string {\n return this._id;\n }\n\n override set id(value: string | undefined | null) {\n const normalizedValue = value ?? '';\n if (this._id === normalizedValue) {\n return;\n }\n this._id = normalizedValue;\n this._removeHostAttribute('id');\n this.requestUpdate();\n }\n\n // Spectre components intentionally render in light DOM so the global\n // `@phcdevworks/spectre-ui` styling contract can apply directly.\n createRenderRoot(): this {\n return this;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n const proxiedAttributes = [\n 'id',\n 'title',\n 'autocapitalize',\n 'spellcheck',\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n ];\n\n proxiedAttributes.forEach((attr) => {\n const value = super.getAttribute(attr);\n if (value !== null) {\n this.setAttribute(attr, value);\n }\n });\n }\n\n override getAttribute(qualifiedName: string): string | null {\n switch (qualifiedName) {\n case 'id':\n return this.id || null;\n case 'title':\n return this.title || null;\n case 'autocapitalize':\n return this.autocapitalize || null;\n case 'spellcheck':\n return this._spellcheck !== null ? String(this._spellcheck) : null;\n case 'aria-label':\n return this.ariaLabel;\n case 'aria-labelledby':\n return this.ariaLabelledBy;\n case 'aria-describedby':\n return this.ariaDescribedBy;\n default:\n return super.getAttribute(qualifiedName);\n }\n }\n\n override hasAttribute(qualifiedName: string): boolean {\n switch (qualifiedName) {\n case 'id':\n return this.id !== '';\n case 'title':\n return this.title !== '';\n case 'autocapitalize':\n return this.autocapitalize !== '';\n case 'spellcheck':\n return this._spellcheck !== null;\n case 'aria-label':\n return this.ariaLabel !== null;\n case 'aria-labelledby':\n return this.ariaLabelledBy !== null;\n case 'aria-describedby':\n return this.ariaDescribedBy !== null;\n default:\n return super.hasAttribute(qualifiedName);\n }\n }\n\n override setAttribute(qualifiedName: string, value: string): void {\n switch (qualifiedName) {\n case 'id':\n this.id = value;\n break;\n case 'title':\n this.title = value;\n break;\n case 'autocapitalize':\n this.autocapitalize = value;\n break;\n case 'spellcheck':\n this.spellcheck = value !== 'false';\n break;\n case 'aria-label':\n this.ariaLabel = value;\n break;\n case 'aria-labelledby':\n this.ariaLabelledBy = value;\n break;\n case 'aria-describedby':\n this.ariaDescribedBy = value;\n break;\n default:\n super.setAttribute(qualifiedName, value);\n }\n }\n\n override removeAttribute(qualifiedName: string): void {\n switch (qualifiedName) {\n case 'id':\n this.id = '';\n break;\n case 'title':\n this.title = '';\n break;\n case 'autocapitalize':\n this.autocapitalize = '';\n break;\n case 'spellcheck':\n this.spellcheck = null;\n break;\n case 'aria-label':\n this.ariaLabel = null;\n break;\n case 'aria-labelledby':\n this.ariaLabelledBy = null;\n break;\n case 'aria-describedby':\n this.ariaDescribedBy = null;\n break;\n default:\n super.removeAttribute(qualifiedName);\n }\n }\n\n private _removeHostAttribute(name: string): void {\n const host = this as unknown as HTMLElement;\n if (HTMLElement.prototype.hasAttribute.call(host, name)) {\n // Use the native removeAttribute to avoid our own overridden version\n // which would reset the internal state.\n HTMLElement.prototype.removeAttribute.call(host, name);\n }\n }\n\n protected get forwardedAriaLabel(): string | undefined {\n const value = this.ariaLabel?.trim();\n return value ? value : undefined;\n }\n\n protected get forwardedAriaLabelledBy(): string | undefined {\n const value = this.ariaLabelledBy?.trim();\n return value ? value : undefined;\n }\n\n protected get forwardedAriaDescribedBy(): string | undefined {\n const value = this.ariaDescribedBy?.trim();\n return value ? value : undefined;\n }\n}\n","export function hasMeaningfulContent(nodes: readonly Node[]): boolean {\n return nodes.some((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n return true;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n return (node.textContent?.trim().length ?? 0) > 0;\n }\n\n return false;\n });\n}\n","import { SpectreBaseElement } from './base';\nimport { hasMeaningfulContent } from './dom';\n\nexport abstract class SpectreProjectableElement extends SpectreBaseElement {\n protected projectedContent: Node[] = [];\n private contentObserver?: MutationObserver | undefined;\n\n // Return the native container whose existing children are also treated as\n // projected content sources (e.g. the rendered <button>, <select>, <label>).\n protected abstract getContentContainer(): Element | null;\n\n // Return true if the node was rendered by this component and should not be\n // treated as external projected content.\n protected abstract isInternalNode(node: Node): boolean;\n\n protected get hasProjectedContent(): boolean {\n return hasMeaningfulContent(this.projectedContent);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.syncProjectedContent();\n this.startContentObserver();\n }\n\n override disconnectedCallback(): void {\n this.stopContentObserver();\n super.disconnectedCallback();\n }\n\n protected override update(changedProperties: Map<PropertyKey, unknown>): void {\n this.stopContentObserver();\n super.update(changedProperties);\n this.startContentObserver();\n }\n\n protected syncProjectedContent(): boolean {\n const nextProjectedContent: Node[] = [];\n const sourceNodes = [\n ...this.childNodes,\n ...(this.getContentContainer()?.childNodes ?? []),\n ];\n\n sourceNodes.forEach((node) => {\n if (!this.isInternalNode(node) && !nextProjectedContent.includes(node)) {\n nextProjectedContent.push(node);\n }\n });\n\n const hasChanged =\n nextProjectedContent.length !== this.projectedContent.length ||\n nextProjectedContent.some((node, index) => node !== this.projectedContent[index]);\n\n if (hasChanged) {\n this.projectedContent = nextProjectedContent;\n }\n\n return hasChanged;\n }\n\n private startContentObserver(): void {\n if (this.contentObserver) {\n return;\n }\n\n this.contentObserver = new MutationObserver((mutations) => {\n const isInternalMovement = mutations.every((mutation) =>\n [...mutation.removedNodes].every(\n (node) => this.isInternalNode(node) || this.contains(node),\n ) &&\n [...mutation.addedNodes].every((node) => this.isInternalNode(node)),\n );\n\n if (isInternalMovement) {\n return;\n }\n\n if (this.syncProjectedContent()) {\n this.requestUpdate();\n }\n });\n\n this.contentObserver.observe(this, { childList: true });\n }\n\n private stopContentObserver(): void {\n this.contentObserver?.disconnect();\n this.contentObserver = undefined;\n }\n}\n","import {\n type ButtonSize,\n type ButtonVariant,\n type InputSize,\n} from '@phcdevworks/spectre-ui';\n\nexport const spectreInputSizes = ['sm', 'md', 'lg'] as const;\nexport type SpectreInputSize = (typeof spectreInputSizes)[number];\n\nexport function isInputSize(value: unknown): value is InputSize | ButtonSize {\n return (spectreInputSizes as readonly string[]).includes(value as string);\n}\n\nexport const spectreButtonVariants = [\n 'primary',\n 'secondary',\n 'ghost',\n 'danger',\n 'success',\n 'cta',\n 'accent',\n] as const;\n\nexport type SpectreButtonVariant = (typeof spectreButtonVariants)[number];\n\nexport function isButtonVariant(value: unknown): value is ButtonVariant {\n return (spectreButtonVariants as readonly string[]).includes(value as string);\n}\n\nexport const spectreButtonTypes = ['button', 'submit', 'reset'] as const;\n\nexport type SpectreButtonType = (typeof spectreButtonTypes)[number];\n\nexport function isButtonType(value: unknown): value is SpectreButtonType {\n return (spectreButtonTypes as readonly string[]).includes(value as string);\n}\n\nexport const spectreInputTypes = [\n 'text',\n 'email',\n 'password',\n 'search',\n 'tel',\n 'url',\n 'number',\n 'date',\n 'datetime-local',\n 'month',\n 'time',\n 'week',\n] as const;\n\nexport type SpectreInputType = (typeof spectreInputTypes)[number];\n\nexport function isInputType(value: unknown): value is SpectreInputType {\n return (spectreInputTypes as readonly string[]).includes(value as string);\n}\n\nexport function normalizeInt(\n value: unknown,\n fallback: number | undefined,\n min = 0,\n): number | undefined {\n if (\n value == null ||\n typeof value !== 'number' ||\n !Number.isInteger(value) ||\n value < min\n ) {\n return fallback;\n }\n return value;\n}\n","import { html, nothing } from 'lit';\nimport { live } from 'lit/directives/live.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { SpectreProjectableElement } from '../../utils/projectable';\nimport { isInputSize, type SpectreInputSize } from '../../utils/form';\n\nimport { getInputClasses } from '@phcdevworks/spectre-ui';\n\nexport interface SpectreSelectProps {\n ariaLabel?: string | null;\n ariaLabelledBy?: string | null;\n ariaDescribedBy?: string | null;\n autocomplete?: string | undefined;\n autofocus?: boolean | undefined;\n disabled?: boolean | undefined;\n form?: string | undefined;\n fullWidth?: boolean | undefined;\n id?: string | null | undefined;\n invalid?: boolean | undefined;\n loading?: boolean | undefined;\n name?: string | undefined;\n pill?: boolean | undefined;\n required?: boolean | undefined;\n size?: SpectreInputSize | undefined;\n success?: boolean | undefined;\n title?: string | null | undefined;\n value?: string | undefined;\n}\n\nexport class SpectreSelectElement extends SpectreProjectableElement implements SpectreSelectProps {\n static properties = {\n autocomplete: { type: String, reflect: true },\n autofocus: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n form: { type: String },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n invalid: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n name: { type: String, reflect: true },\n pill: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n success: { type: Boolean, reflect: true },\n value: { type: String },\n };\n\n autocomplete: string | undefined;\n autofocus = false;\n disabled = false;\n form: string | undefined;\n fullWidth = false;\n invalid = false;\n loading = false;\n name: string | undefined;\n pill = false;\n required = false;\n size: SpectreInputSize | undefined = 'md';\n success = false;\n\n override get id(): string {\n return super.id;\n }\n\n override set id(value: string | null | undefined) {\n super.id = value;\n }\n\n override get title(): string {\n return super.title;\n }\n\n override set title(value: string | null | undefined) {\n super.title = value;\n }\n\n value: string | undefined = '';\n\n protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-select-native]');\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n\n const el = node as Element;\n return el.hasAttribute('data-sp-select-native');\n }\n\n protected override willUpdate(changedProperties: Map<PropertyKey, unknown>): void {\n if (changedProperties.has('size') && (this.size == null || !isInputSize(this.size))) {\n this.size = 'md';\n }\n\n if (changedProperties.has('value') && this.value == null) {\n this.value = '';\n }\n }\n\n protected override updated(changedProperties: Map<PropertyKey, unknown>): void {\n super.updated(changedProperties);\n\n const nativeSelect = this.getContentContainer() as HTMLSelectElement | null;\n if (!nativeSelect) {\n return;\n }\n\n const valueChanged = changedProperties.has('value');\n const oldValue = changedProperties.get('value');\n\n if (\n valueChanged &&\n this.value !== undefined &&\n (this.value !== '' || oldValue !== undefined || this.hasAttribute('value'))\n ) {\n if (nativeSelect.value !== this.value) {\n nativeSelect.value = this.value;\n }\n }\n\n if (this.value === '' && !this.hasAttribute('value')) {\n const nativeValue = nativeSelect.value ?? '';\n if (nativeValue !== '' && nativeValue !== this.value) {\n this.updateComplete.then(() => {\n if (this.value === '' && !this.hasAttribute('value')) {\n this.value = nativeValue;\n }\n });\n }\n }\n }\n\n private get selectClasses(): string {\n return getInputClasses({\n fullWidth: this.fullWidth ?? false,\n pill: this.pill ?? false,\n size: this.size as SpectreInputSize,\n state: this.isDisabled\n ? this.disabled\n ? 'disabled'\n : 'loading'\n : this.invalid\n ? 'error'\n : this.success\n ? 'success'\n : 'default',\n });\n }\n\n private get isDisabled(): boolean {\n return (this.disabled ?? false) || (this.loading ?? false);\n }\n\n private handleInput(event: Event): void {\n const select = event.currentTarget as HTMLSelectElement;\n this.value = select.value;\n }\n\n private handleChange(event: Event): void {\n const select = event.currentTarget as HTMLSelectElement;\n this.value = select.value;\n }\n\n override focus(options?: FocusOptions): void {\n (this.getContentContainer() as HTMLSelectElement | null)?.focus(options);\n }\n\n override blur(): void {\n (this.getContentContainer() as HTMLSelectElement | null)?.blur();\n }\n\n override render() {\n return html`<select\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-invalid=\"${ifDefined(this.invalid ? 'true' : undefined)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n autocomplete=\"${ifDefined(this.autocomplete || undefined)}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${this.selectClasses}\"\n data-sp-select-native\n ?disabled=\"${this.isDisabled}\"\n form=\"${ifDefined(this.form || undefined)}\"\n id=\"${ifDefined(this.id || undefined)}\"\n name=\"${ifDefined(this.name || undefined)}\"\n ?required=\"${this.required}\"\n title=\"${ifDefined(this.title || undefined)}\"\n .value=\"${live(this.value)}\"\n @change=\"${this.handleChange}\"\n @input=\"${this.handleInput}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </select>`;\n }\n}\n\nexport function defineSpectreSelect(tagName = 'sp-select'): typeof SpectreSelectElement {\n const existingElement = customElements.get(tagName);\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreSelectElement;\n }\n\n customElements.define(tagName, SpectreSelectElement);\n return SpectreSelectElement;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/base.ts","../src/utils/dom.ts","../src/utils/projectable.ts","../src/utils/form.ts","../src/components/select/sp-select.ts"],"names":["LitElement","getInputClasses","html","ifDefined","live","nothing"],"mappings":"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","file":"select.cjs","sourcesContent":["import { LitElement, type PropertyDeclarations } from 'lit';\n\nexport class SpectreBaseElement extends LitElement {\n static properties: PropertyDeclarations = {};\n\n private _ariaLabel: string | null = null;\n private _ariaLabelledBy: string | null = null;\n private _ariaDescribedBy: string | null = null;\n private _autocapitalize = '';\n private _autofocus = false;\n private _spellcheck: boolean | null = null;\n private _title = '';\n private _id = '';\n\n get ariaLabel(): string | null {\n return this._ariaLabel;\n }\n\n set ariaLabel(value: string | null) {\n if (this._ariaLabel === value) {\n return;\n }\n this._ariaLabel = value;\n this._removeHostAttribute('aria-label');\n this.requestUpdate();\n }\n\n get ariaLabelledBy(): string | null {\n return this._ariaLabelledBy;\n }\n\n set ariaLabelledBy(value: string | null) {\n if (this._ariaLabelledBy === value) {\n return;\n }\n this._ariaLabelledBy = value;\n this._removeHostAttribute('aria-labelledby');\n this.requestUpdate();\n }\n\n get ariaDescribedBy(): string | null {\n return this._ariaDescribedBy;\n }\n\n set ariaDescribedBy(value: string | null) {\n if (this._ariaDescribedBy === value) {\n return;\n }\n this._ariaDescribedBy = value;\n this._removeHostAttribute('aria-describedby');\n this.requestUpdate();\n }\n\n override get autocapitalize(): string {\n return this._autocapitalize;\n }\n\n override set autocapitalize(value: string | undefined | null) {\n const normalizedValue = value ?? '';\n if (this._autocapitalize === normalizedValue) {\n return;\n }\n this._autocapitalize = normalizedValue;\n this._removeHostAttribute('autocapitalize');\n this.requestUpdate();\n }\n\n override get spellcheck(): boolean {\n return this._spellcheck ?? super.spellcheck;\n }\n\n override set spellcheck(value: boolean | undefined | null) {\n if (this._spellcheck === value) {\n return;\n }\n this._spellcheck = value ?? null;\n this._removeHostAttribute('spellcheck');\n this.requestUpdate();\n }\n\n override get title(): string {\n return this._title;\n }\n\n override set title(value: string | undefined | null) {\n const normalizedValue = value ?? '';\n if (this._title === normalizedValue) {\n return;\n }\n this._title = normalizedValue;\n this._removeHostAttribute('title');\n this.requestUpdate();\n }\n\n override get id(): string {\n return this._id;\n }\n\n override set id(value: string | undefined | null) {\n const normalizedValue = value ?? '';\n if (this._id === normalizedValue) {\n return;\n }\n this._id = normalizedValue;\n this._removeHostAttribute('id');\n this.requestUpdate();\n }\n\n override get autofocus(): boolean {\n return this._autofocus;\n }\n\n override set autofocus(value: boolean | undefined | null) {\n const normalizedValue = !!value;\n if (this._autofocus === normalizedValue) {\n return;\n }\n this._autofocus = normalizedValue;\n this._removeHostAttribute('autofocus');\n this.requestUpdate();\n }\n\n // Spectre components intentionally render in light DOM so the global\n // `@phcdevworks/spectre-ui` styling contract can apply directly.\n createRenderRoot(): this {\n return this;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n const proxiedAttributes = [\n 'id',\n 'title',\n 'autocapitalize',\n 'autofocus',\n 'spellcheck',\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n ];\n\n proxiedAttributes.forEach((attr) => {\n const value = super.getAttribute(attr);\n if (value !== null) {\n this.setAttribute(attr, value);\n }\n });\n }\n\n override getAttribute(qualifiedName: string): string | null {\n switch (qualifiedName) {\n case 'id':\n return this.id || null;\n case 'title':\n return this.title || null;\n case 'autocapitalize':\n return this.autocapitalize || null;\n case 'autofocus':\n return this.autofocus ? '' : null;\n case 'spellcheck':\n return this._spellcheck !== null ? String(this._spellcheck) : null;\n case 'aria-label':\n return this.ariaLabel;\n case 'aria-labelledby':\n return this.ariaLabelledBy;\n case 'aria-describedby':\n return this.ariaDescribedBy;\n default:\n return super.getAttribute(qualifiedName);\n }\n }\n\n override hasAttribute(qualifiedName: string): boolean {\n switch (qualifiedName) {\n case 'id':\n return this.id !== '';\n case 'title':\n return this.title !== '';\n case 'autocapitalize':\n return this.autocapitalize !== '';\n case 'autofocus':\n return this.autofocus;\n case 'spellcheck':\n return this._spellcheck !== null;\n case 'aria-label':\n return this.ariaLabel !== null;\n case 'aria-labelledby':\n return this.ariaLabelledBy !== null;\n case 'aria-describedby':\n return this.ariaDescribedBy !== null;\n default:\n return super.hasAttribute(qualifiedName);\n }\n }\n\n override setAttribute(qualifiedName: string, value: string): void {\n switch (qualifiedName) {\n case 'id':\n this.id = value;\n break;\n case 'title':\n this.title = value;\n break;\n case 'autocapitalize':\n this.autocapitalize = value;\n break;\n case 'autofocus':\n this.autofocus = true;\n break;\n case 'spellcheck':\n this.spellcheck = value !== 'false';\n break;\n case 'aria-label':\n this.ariaLabel = value;\n break;\n case 'aria-labelledby':\n this.ariaLabelledBy = value;\n break;\n case 'aria-describedby':\n this.ariaDescribedBy = value;\n break;\n default:\n super.setAttribute(qualifiedName, value);\n }\n }\n\n override removeAttribute(qualifiedName: string): void {\n switch (qualifiedName) {\n case 'id':\n this.id = '';\n break;\n case 'title':\n this.title = '';\n break;\n case 'autocapitalize':\n this.autocapitalize = '';\n break;\n case 'autofocus':\n this.autofocus = false;\n break;\n case 'spellcheck':\n this.spellcheck = null;\n break;\n case 'aria-label':\n this.ariaLabel = null;\n break;\n case 'aria-labelledby':\n this.ariaLabelledBy = null;\n break;\n case 'aria-describedby':\n this.ariaDescribedBy = null;\n break;\n default:\n super.removeAttribute(qualifiedName);\n }\n }\n\n private _removeHostAttribute(name: string): void {\n const host = this as unknown as HTMLElement;\n if (HTMLElement.prototype.hasAttribute.call(host, name)) {\n // Use the native removeAttribute to avoid our own overridden version\n // which would reset the internal state.\n HTMLElement.prototype.removeAttribute.call(host, name);\n }\n }\n\n protected get forwardedAriaLabel(): string | undefined {\n const value = this.ariaLabel?.trim();\n return value ? value : undefined;\n }\n\n protected get forwardedAriaLabelledBy(): string | undefined {\n const value = this.ariaLabelledBy?.trim();\n return value ? value : undefined;\n }\n\n protected get forwardedAriaDescribedBy(): string | undefined {\n const value = this.ariaDescribedBy?.trim();\n return value ? value : undefined;\n }\n}\n","export function hasMeaningfulContent(nodes: readonly Node[]): boolean {\n return nodes.some((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n return true;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n return (node.textContent?.trim().length ?? 0) > 0;\n }\n\n return false;\n });\n}\n","import { SpectreBaseElement } from './base';\nimport { hasMeaningfulContent } from './dom';\n\nexport abstract class SpectreProjectableElement extends SpectreBaseElement {\n protected projectedContent: Node[] = [];\n private contentObserver?: MutationObserver | undefined;\n\n // Return the native container whose existing children are also treated as\n // projected content sources (e.g. the rendered <button>, <select>, <label>).\n protected abstract getContentContainer(): Element | null;\n\n // Return true if the node was rendered by this component and should not be\n // treated as external projected content.\n protected abstract isInternalNode(node: Node): boolean;\n\n protected get hasProjectedContent(): boolean {\n return hasMeaningfulContent(this.projectedContent);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.syncProjectedContent();\n this.startContentObserver();\n }\n\n override disconnectedCallback(): void {\n this.stopContentObserver();\n super.disconnectedCallback();\n }\n\n protected override update(changedProperties: Map<PropertyKey, unknown>): void {\n this.stopContentObserver();\n super.update(changedProperties);\n this.startContentObserver();\n }\n\n protected syncProjectedContent(): boolean {\n const nextProjectedContent: Node[] = [];\n const sourceNodes = [\n ...this.childNodes,\n ...(this.getContentContainer()?.childNodes ?? []),\n ];\n\n sourceNodes.forEach((node) => {\n if (!this.isInternalNode(node) && !nextProjectedContent.includes(node)) {\n nextProjectedContent.push(node);\n }\n });\n\n const hasChanged =\n nextProjectedContent.length !== this.projectedContent.length ||\n nextProjectedContent.some((node, index) => node !== this.projectedContent[index]);\n\n if (hasChanged) {\n this.projectedContent = nextProjectedContent;\n }\n\n return hasChanged;\n }\n\n private startContentObserver(): void {\n if (this.contentObserver) {\n return;\n }\n\n this.contentObserver = new MutationObserver((mutations) => {\n const isInternalMovement = mutations.every((mutation) =>\n [...mutation.removedNodes].every(\n (node) => this.isInternalNode(node) || this.contains(node),\n ) &&\n [...mutation.addedNodes].every((node) => this.isInternalNode(node)),\n );\n\n if (isInternalMovement) {\n return;\n }\n\n if (this.syncProjectedContent()) {\n this.requestUpdate();\n }\n });\n\n this.contentObserver.observe(this, { childList: true });\n }\n\n private stopContentObserver(): void {\n this.contentObserver?.disconnect();\n this.contentObserver = undefined;\n }\n}\n","import {\n type ButtonSize,\n type ButtonVariant,\n type InputSize,\n} from '@phcdevworks/spectre-ui';\n\nexport const spectreInputSizes = ['sm', 'md', 'lg'] as const;\nexport type SpectreInputSize = (typeof spectreInputSizes)[number];\n\nexport function isInputSize(value: unknown): value is InputSize | ButtonSize {\n return (spectreInputSizes as readonly string[]).includes(value as string);\n}\n\nexport const spectreButtonVariants = [\n 'primary',\n 'secondary',\n 'ghost',\n 'danger',\n 'success',\n 'cta',\n 'accent',\n] as const;\n\nexport type SpectreButtonVariant = (typeof spectreButtonVariants)[number];\n\nexport function isButtonVariant(value: unknown): value is ButtonVariant {\n return (spectreButtonVariants as readonly string[]).includes(value as string);\n}\n\nexport const spectreButtonTypes = ['button', 'submit', 'reset'] as const;\n\nexport type SpectreButtonType = (typeof spectreButtonTypes)[number];\n\nexport function isButtonType(value: unknown): value is SpectreButtonType {\n return (spectreButtonTypes as readonly string[]).includes(value as string);\n}\n\nexport const spectreInputTypes = [\n 'text',\n 'email',\n 'password',\n 'search',\n 'tel',\n 'url',\n 'number',\n 'date',\n 'datetime-local',\n 'month',\n 'time',\n 'week',\n] as const;\n\nexport type SpectreInputType = (typeof spectreInputTypes)[number];\n\nexport function isInputType(value: unknown): value is SpectreInputType {\n return (spectreInputTypes as readonly string[]).includes(value as string);\n}\n\nexport const spectreBadgeVariants = [\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'danger',\n 'neutral',\n 'info',\n 'ghost',\n 'outline',\n 'accent',\n 'cta',\n] as const;\n\nexport type SpectreBadgeVariant = (typeof spectreBadgeVariants)[number];\n\nexport function isBadgeVariant(value: unknown): value is SpectreBadgeVariant {\n return (spectreBadgeVariants as readonly string[]).includes(value as string);\n}\n\nexport const spectreCardVariants = ['elevated', 'flat', 'outline', 'ghost'] as const;\n\nexport type SpectreCardVariant = (typeof spectreCardVariants)[number];\n\nexport function isCardVariant(value: unknown): value is SpectreCardVariant {\n return (spectreCardVariants as readonly string[]).includes(value as string);\n}\n\nexport const spectreIconBoxVariants = [\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'danger',\n 'info',\n 'neutral',\n 'ghost',\n 'accent',\n 'cta',\n 'outline',\n] as const;\n\nexport type SpectreIconBoxVariant = (typeof spectreIconBoxVariants)[number];\n\nexport function isIconBoxVariant(value: unknown): value is SpectreIconBoxVariant {\n return (spectreIconBoxVariants as readonly string[]).includes(value as string);\n}\n\nexport const spectreTestimonialVariants = ['elevated', 'flat', 'outline', 'ghost'] as const;\n\nexport type SpectreTestimonialVariant = (typeof spectreTestimonialVariants)[number];\n\nexport function isTestimonialVariant(value: unknown): value is SpectreTestimonialVariant {\n return (spectreTestimonialVariants as readonly string[]).includes(value as string);\n}\n\nexport function normalizeInt(\n value: unknown,\n fallback: number | undefined,\n min = 0,\n): number | undefined {\n if (\n value == null ||\n typeof value !== 'number' ||\n !Number.isInteger(value) ||\n value < min\n ) {\n return fallback;\n }\n return value;\n}\n","import { html, nothing } from 'lit';\nimport { live } from 'lit/directives/live.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { SpectreProjectableElement } from '../../utils/projectable';\nimport { isInputSize, type SpectreInputSize } from '../../utils/form';\n\nimport { getInputClasses } from '@phcdevworks/spectre-ui';\n\nexport interface SpectreSelectProps {\n ariaLabel?: string | null;\n ariaLabelledBy?: string | null;\n ariaDescribedBy?: string | null;\n autocapitalize?: string | null | undefined;\n autocomplete?: string | undefined;\n autofocus?: boolean | null | undefined;\n disabled?: boolean | undefined;\n form?: string | undefined;\n fullWidth?: boolean | undefined;\n id?: string | null | undefined;\n invalid?: boolean | undefined;\n loading?: boolean | undefined;\n name?: string | undefined;\n pill?: boolean | undefined;\n required?: boolean | undefined;\n size?: SpectreInputSize | undefined;\n spellcheck?: boolean | null | undefined;\n success?: boolean | undefined;\n title?: string | null | undefined;\n value?: string | undefined;\n}\n\nexport class SpectreSelectElement extends SpectreProjectableElement implements SpectreSelectProps {\n static properties = {\n autocomplete: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n form: { type: String },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n invalid: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n name: { type: String, reflect: true },\n pill: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n success: { type: Boolean, reflect: true },\n value: { type: String },\n };\n\n autocomplete: string | undefined;\n disabled: boolean | undefined = false;\n form: string | undefined;\n fullWidth: boolean | undefined = false;\n invalid: boolean | undefined = false;\n loading: boolean | undefined = false;\n name: string | undefined;\n pill: boolean | undefined = false;\n required: boolean | undefined = false;\n size: SpectreInputSize | undefined = 'md';\n success: boolean | undefined = false;\n\n override get id(): string {\n return super.id;\n }\n\n override set id(value: string | null | undefined) {\n super.id = value;\n }\n\n override get title(): string {\n return super.title;\n }\n\n override set title(value: string | null | undefined) {\n super.title = value;\n }\n\n override get autocapitalize(): string {\n return super.autocapitalize;\n }\n\n override set autocapitalize(value: string | null | undefined) {\n super.autocapitalize = value;\n }\n\n override get autofocus(): boolean {\n return super.autofocus;\n }\n\n override set autofocus(value: boolean | undefined | null) {\n super.autofocus = value;\n }\n\n override get spellcheck(): boolean {\n return super.spellcheck;\n }\n\n override set spellcheck(value: boolean | null | undefined) {\n super.spellcheck = value;\n }\n\n value: string | undefined = '';\n\n protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-select-native]');\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n\n const el = node as Element;\n return el.hasAttribute('data-sp-select-native');\n }\n\n protected override willUpdate(changedProperties: Map<PropertyKey, unknown>): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false;\n }\n\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false;\n }\n\n if (changedProperties.has('invalid') && this.invalid == null) {\n this.invalid = false;\n }\n\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false;\n }\n\n if (changedProperties.has('pill') && this.pill == null) {\n this.pill = false;\n }\n\n if (changedProperties.has('required') && this.required == null) {\n this.required = false;\n }\n\n if (changedProperties.has('success') && this.success == null) {\n this.success = false;\n }\n\n if (changedProperties.has('size') && (this.size == null || !isInputSize(this.size))) {\n this.size = 'md';\n }\n\n if (changedProperties.has('value') && this.value == null) {\n this.value = '';\n }\n }\n\n protected override updated(changedProperties: Map<PropertyKey, unknown>): void {\n super.updated(changedProperties);\n\n const nativeSelect = this.getContentContainer() as HTMLSelectElement | null;\n if (!nativeSelect) {\n return;\n }\n\n const valueChanged = changedProperties.has('value');\n const oldValue = changedProperties.get('value');\n\n if (\n valueChanged &&\n this.value !== undefined &&\n (this.value !== '' || oldValue !== undefined || this.hasAttribute('value'))\n ) {\n if (nativeSelect.value !== this.value) {\n nativeSelect.value = this.value;\n }\n }\n\n if (this.value === '' && !this.hasAttribute('value')) {\n const nativeValue = nativeSelect.value ?? '';\n if (nativeValue !== '' && nativeValue !== this.value) {\n this.updateComplete.then(() => {\n if (this.value === '' && !this.hasAttribute('value')) {\n this.value = nativeValue;\n }\n });\n }\n }\n }\n\n private get selectClasses(): string {\n return getInputClasses({\n fullWidth: this.fullWidth ?? false,\n pill: this.pill ?? false,\n size: this.size as SpectreInputSize,\n state: this.isDisabled\n ? this.disabled\n ? 'disabled'\n : 'loading'\n : this.invalid\n ? 'error'\n : this.success\n ? 'success'\n : 'default',\n });\n }\n\n private get isDisabled(): boolean {\n return (this.disabled ?? false) || (this.loading ?? false);\n }\n\n private handleInput(event: Event): void {\n const select = event.currentTarget as HTMLSelectElement;\n this.value = select.value;\n }\n\n private handleChange(event: Event): void {\n const select = event.currentTarget as HTMLSelectElement;\n this.value = select.value;\n }\n\n override focus(options?: FocusOptions): void {\n (this.getContentContainer() as HTMLSelectElement | null)?.focus(options);\n }\n\n override blur(): void {\n (this.getContentContainer() as HTMLSelectElement | null)?.blur();\n }\n\n override render() {\n return html`<select\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-invalid=\"${ifDefined(this.invalid ? 'true' : undefined)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n autocapitalize=\"${ifDefined(this.autocapitalize || undefined)}\"\n autocomplete=\"${ifDefined(this.autocomplete || undefined)}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${this.selectClasses}\"\n data-sp-select-native\n ?disabled=\"${this.isDisabled}\"\n form=\"${ifDefined(this.form || undefined)}\"\n id=\"${ifDefined(this.id || undefined)}\"\n name=\"${ifDefined(this.name || undefined)}\"\n ?required=\"${this.required}\"\n spellcheck=\"${ifDefined(this.getAttribute('spellcheck') ?? undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n .value=\"${live(this.value)}\"\n @change=\"${this.handleChange}\"\n @input=\"${this.handleInput}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </select>`;\n }\n}\n\nexport function defineSpectreSelect(tagName = 'sp-select'): typeof SpectreSelectElement {\n const existingElement = customElements.get(tagName);\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreSelectElement;\n }\n\n customElements.define(tagName, SpectreSelectElement);\n return SpectreSelectElement;\n}\n"]}
|
package/dist/select.d.cts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import * as lit_html from 'lit-html';
|
|
2
|
-
import { S as SpectreProjectableElement } from './projectable-
|
|
3
|
-
import {
|
|
4
|
-
import './base-
|
|
2
|
+
import { S as SpectreProjectableElement } from './projectable-Bx-IVk0w.cjs';
|
|
3
|
+
import { S as SpectreInputSize } from './form-Dg6kuOS7.cjs';
|
|
4
|
+
import './base-BRQ7QAAr.cjs';
|
|
5
5
|
import 'lit';
|
|
6
6
|
|
|
7
7
|
interface SpectreSelectProps {
|
|
8
8
|
ariaLabel?: string | null;
|
|
9
9
|
ariaLabelledBy?: string | null;
|
|
10
10
|
ariaDescribedBy?: string | null;
|
|
11
|
+
autocapitalize?: string | null | undefined;
|
|
11
12
|
autocomplete?: string | undefined;
|
|
12
|
-
autofocus?: boolean | undefined;
|
|
13
|
+
autofocus?: boolean | null | undefined;
|
|
13
14
|
disabled?: boolean | undefined;
|
|
14
15
|
form?: string | undefined;
|
|
15
16
|
fullWidth?: boolean | undefined;
|
|
@@ -20,6 +21,7 @@ interface SpectreSelectProps {
|
|
|
20
21
|
pill?: boolean | undefined;
|
|
21
22
|
required?: boolean | undefined;
|
|
22
23
|
size?: SpectreInputSize | undefined;
|
|
24
|
+
spellcheck?: boolean | null | undefined;
|
|
23
25
|
success?: boolean | undefined;
|
|
24
26
|
title?: string | null | undefined;
|
|
25
27
|
value?: string | undefined;
|
|
@@ -30,10 +32,6 @@ declare class SpectreSelectElement extends SpectreProjectableElement implements
|
|
|
30
32
|
type: StringConstructor;
|
|
31
33
|
reflect: boolean;
|
|
32
34
|
};
|
|
33
|
-
autofocus: {
|
|
34
|
-
type: BooleanConstructor;
|
|
35
|
-
reflect: boolean;
|
|
36
|
-
};
|
|
37
35
|
disabled: {
|
|
38
36
|
type: BooleanConstructor;
|
|
39
37
|
reflect: boolean;
|
|
@@ -79,21 +77,26 @@ declare class SpectreSelectElement extends SpectreProjectableElement implements
|
|
|
79
77
|
};
|
|
80
78
|
};
|
|
81
79
|
autocomplete: string | undefined;
|
|
82
|
-
|
|
83
|
-
disabled: boolean;
|
|
80
|
+
disabled: boolean | undefined;
|
|
84
81
|
form: string | undefined;
|
|
85
|
-
fullWidth: boolean;
|
|
86
|
-
invalid: boolean;
|
|
87
|
-
loading: boolean;
|
|
82
|
+
fullWidth: boolean | undefined;
|
|
83
|
+
invalid: boolean | undefined;
|
|
84
|
+
loading: boolean | undefined;
|
|
88
85
|
name: string | undefined;
|
|
89
|
-
pill: boolean;
|
|
90
|
-
required: boolean;
|
|
86
|
+
pill: boolean | undefined;
|
|
87
|
+
required: boolean | undefined;
|
|
91
88
|
size: SpectreInputSize | undefined;
|
|
92
|
-
success: boolean;
|
|
89
|
+
success: boolean | undefined;
|
|
93
90
|
get id(): string;
|
|
94
91
|
set id(value: string | null | undefined);
|
|
95
92
|
get title(): string;
|
|
96
93
|
set title(value: string | null | undefined);
|
|
94
|
+
get autocapitalize(): string;
|
|
95
|
+
set autocapitalize(value: string | null | undefined);
|
|
96
|
+
get autofocus(): boolean;
|
|
97
|
+
set autofocus(value: boolean | undefined | null);
|
|
98
|
+
get spellcheck(): boolean;
|
|
99
|
+
set spellcheck(value: boolean | null | undefined);
|
|
97
100
|
value: string | undefined;
|
|
98
101
|
protected getContentContainer(): Element | null;
|
|
99
102
|
protected isInternalNode(node: Node): boolean;
|
package/dist/select.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import * as lit_html from 'lit-html';
|
|
2
|
-
import { S as SpectreProjectableElement } from './projectable-
|
|
3
|
-
import {
|
|
4
|
-
import './base-
|
|
2
|
+
import { S as SpectreProjectableElement } from './projectable-D6IDeKfr.js';
|
|
3
|
+
import { S as SpectreInputSize } from './form-Dg6kuOS7.js';
|
|
4
|
+
import './base-BRQ7QAAr.js';
|
|
5
5
|
import 'lit';
|
|
6
6
|
|
|
7
7
|
interface SpectreSelectProps {
|
|
8
8
|
ariaLabel?: string | null;
|
|
9
9
|
ariaLabelledBy?: string | null;
|
|
10
10
|
ariaDescribedBy?: string | null;
|
|
11
|
+
autocapitalize?: string | null | undefined;
|
|
11
12
|
autocomplete?: string | undefined;
|
|
12
|
-
autofocus?: boolean | undefined;
|
|
13
|
+
autofocus?: boolean | null | undefined;
|
|
13
14
|
disabled?: boolean | undefined;
|
|
14
15
|
form?: string | undefined;
|
|
15
16
|
fullWidth?: boolean | undefined;
|
|
@@ -20,6 +21,7 @@ interface SpectreSelectProps {
|
|
|
20
21
|
pill?: boolean | undefined;
|
|
21
22
|
required?: boolean | undefined;
|
|
22
23
|
size?: SpectreInputSize | undefined;
|
|
24
|
+
spellcheck?: boolean | null | undefined;
|
|
23
25
|
success?: boolean | undefined;
|
|
24
26
|
title?: string | null | undefined;
|
|
25
27
|
value?: string | undefined;
|
|
@@ -30,10 +32,6 @@ declare class SpectreSelectElement extends SpectreProjectableElement implements
|
|
|
30
32
|
type: StringConstructor;
|
|
31
33
|
reflect: boolean;
|
|
32
34
|
};
|
|
33
|
-
autofocus: {
|
|
34
|
-
type: BooleanConstructor;
|
|
35
|
-
reflect: boolean;
|
|
36
|
-
};
|
|
37
35
|
disabled: {
|
|
38
36
|
type: BooleanConstructor;
|
|
39
37
|
reflect: boolean;
|
|
@@ -79,21 +77,26 @@ declare class SpectreSelectElement extends SpectreProjectableElement implements
|
|
|
79
77
|
};
|
|
80
78
|
};
|
|
81
79
|
autocomplete: string | undefined;
|
|
82
|
-
|
|
83
|
-
disabled: boolean;
|
|
80
|
+
disabled: boolean | undefined;
|
|
84
81
|
form: string | undefined;
|
|
85
|
-
fullWidth: boolean;
|
|
86
|
-
invalid: boolean;
|
|
87
|
-
loading: boolean;
|
|
82
|
+
fullWidth: boolean | undefined;
|
|
83
|
+
invalid: boolean | undefined;
|
|
84
|
+
loading: boolean | undefined;
|
|
88
85
|
name: string | undefined;
|
|
89
|
-
pill: boolean;
|
|
90
|
-
required: boolean;
|
|
86
|
+
pill: boolean | undefined;
|
|
87
|
+
required: boolean | undefined;
|
|
91
88
|
size: SpectreInputSize | undefined;
|
|
92
|
-
success: boolean;
|
|
89
|
+
success: boolean | undefined;
|
|
93
90
|
get id(): string;
|
|
94
91
|
set id(value: string | null | undefined);
|
|
95
92
|
get title(): string;
|
|
96
93
|
set title(value: string | null | undefined);
|
|
94
|
+
get autocapitalize(): string;
|
|
95
|
+
set autocapitalize(value: string | null | undefined);
|
|
96
|
+
get autofocus(): boolean;
|
|
97
|
+
set autofocus(value: boolean | undefined | null);
|
|
98
|
+
get spellcheck(): boolean;
|
|
99
|
+
set spellcheck(value: boolean | null | undefined);
|
|
97
100
|
value: string | undefined;
|
|
98
101
|
protected getContentContainer(): Element | null;
|
|
99
102
|
protected isInternalNode(node: Node): boolean;
|
package/dist/select.js
CHANGED
|
@@ -11,6 +11,7 @@ var SpectreBaseElement = class extends LitElement {
|
|
|
11
11
|
this._ariaLabelledBy = null;
|
|
12
12
|
this._ariaDescribedBy = null;
|
|
13
13
|
this._autocapitalize = "";
|
|
14
|
+
this._autofocus = false;
|
|
14
15
|
this._spellcheck = null;
|
|
15
16
|
this._title = "";
|
|
16
17
|
this._id = "";
|
|
@@ -95,6 +96,18 @@ var SpectreBaseElement = class extends LitElement {
|
|
|
95
96
|
this._removeHostAttribute("id");
|
|
96
97
|
this.requestUpdate();
|
|
97
98
|
}
|
|
99
|
+
get autofocus() {
|
|
100
|
+
return this._autofocus;
|
|
101
|
+
}
|
|
102
|
+
set autofocus(value) {
|
|
103
|
+
const normalizedValue = !!value;
|
|
104
|
+
if (this._autofocus === normalizedValue) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
this._autofocus = normalizedValue;
|
|
108
|
+
this._removeHostAttribute("autofocus");
|
|
109
|
+
this.requestUpdate();
|
|
110
|
+
}
|
|
98
111
|
// Spectre components intentionally render in light DOM so the global
|
|
99
112
|
// `@phcdevworks/spectre-ui` styling contract can apply directly.
|
|
100
113
|
createRenderRoot() {
|
|
@@ -106,6 +119,7 @@ var SpectreBaseElement = class extends LitElement {
|
|
|
106
119
|
"id",
|
|
107
120
|
"title",
|
|
108
121
|
"autocapitalize",
|
|
122
|
+
"autofocus",
|
|
109
123
|
"spellcheck",
|
|
110
124
|
"aria-label",
|
|
111
125
|
"aria-labelledby",
|
|
@@ -126,6 +140,8 @@ var SpectreBaseElement = class extends LitElement {
|
|
|
126
140
|
return this.title || null;
|
|
127
141
|
case "autocapitalize":
|
|
128
142
|
return this.autocapitalize || null;
|
|
143
|
+
case "autofocus":
|
|
144
|
+
return this.autofocus ? "" : null;
|
|
129
145
|
case "spellcheck":
|
|
130
146
|
return this._spellcheck !== null ? String(this._spellcheck) : null;
|
|
131
147
|
case "aria-label":
|
|
@@ -146,6 +162,8 @@ var SpectreBaseElement = class extends LitElement {
|
|
|
146
162
|
return this.title !== "";
|
|
147
163
|
case "autocapitalize":
|
|
148
164
|
return this.autocapitalize !== "";
|
|
165
|
+
case "autofocus":
|
|
166
|
+
return this.autofocus;
|
|
149
167
|
case "spellcheck":
|
|
150
168
|
return this._spellcheck !== null;
|
|
151
169
|
case "aria-label":
|
|
@@ -169,6 +187,9 @@ var SpectreBaseElement = class extends LitElement {
|
|
|
169
187
|
case "autocapitalize":
|
|
170
188
|
this.autocapitalize = value;
|
|
171
189
|
break;
|
|
190
|
+
case "autofocus":
|
|
191
|
+
this.autofocus = true;
|
|
192
|
+
break;
|
|
172
193
|
case "spellcheck":
|
|
173
194
|
this.spellcheck = value !== "false";
|
|
174
195
|
break;
|
|
@@ -196,6 +217,9 @@ var SpectreBaseElement = class extends LitElement {
|
|
|
196
217
|
case "autocapitalize":
|
|
197
218
|
this.autocapitalize = "";
|
|
198
219
|
break;
|
|
220
|
+
case "autofocus":
|
|
221
|
+
this.autofocus = false;
|
|
222
|
+
break;
|
|
199
223
|
case "spellcheck":
|
|
200
224
|
this.spellcheck = null;
|
|
201
225
|
break;
|
|
@@ -317,7 +341,6 @@ function isInputSize(value) {
|
|
|
317
341
|
var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
318
342
|
constructor() {
|
|
319
343
|
super(...arguments);
|
|
320
|
-
this.autofocus = false;
|
|
321
344
|
this.disabled = false;
|
|
322
345
|
this.fullWidth = false;
|
|
323
346
|
this.invalid = false;
|
|
@@ -340,6 +363,24 @@ var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
|
340
363
|
set title(value) {
|
|
341
364
|
super.title = value;
|
|
342
365
|
}
|
|
366
|
+
get autocapitalize() {
|
|
367
|
+
return super.autocapitalize;
|
|
368
|
+
}
|
|
369
|
+
set autocapitalize(value) {
|
|
370
|
+
super.autocapitalize = value;
|
|
371
|
+
}
|
|
372
|
+
get autofocus() {
|
|
373
|
+
return super.autofocus;
|
|
374
|
+
}
|
|
375
|
+
set autofocus(value) {
|
|
376
|
+
super.autofocus = value;
|
|
377
|
+
}
|
|
378
|
+
get spellcheck() {
|
|
379
|
+
return super.spellcheck;
|
|
380
|
+
}
|
|
381
|
+
set spellcheck(value) {
|
|
382
|
+
super.spellcheck = value;
|
|
383
|
+
}
|
|
343
384
|
getContentContainer() {
|
|
344
385
|
return this.querySelector("[data-sp-select-native]");
|
|
345
386
|
}
|
|
@@ -351,6 +392,27 @@ var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
|
351
392
|
return el.hasAttribute("data-sp-select-native");
|
|
352
393
|
}
|
|
353
394
|
willUpdate(changedProperties) {
|
|
395
|
+
if (changedProperties.has("disabled") && this.disabled == null) {
|
|
396
|
+
this.disabled = false;
|
|
397
|
+
}
|
|
398
|
+
if (changedProperties.has("fullWidth") && this.fullWidth == null) {
|
|
399
|
+
this.fullWidth = false;
|
|
400
|
+
}
|
|
401
|
+
if (changedProperties.has("invalid") && this.invalid == null) {
|
|
402
|
+
this.invalid = false;
|
|
403
|
+
}
|
|
404
|
+
if (changedProperties.has("loading") && this.loading == null) {
|
|
405
|
+
this.loading = false;
|
|
406
|
+
}
|
|
407
|
+
if (changedProperties.has("pill") && this.pill == null) {
|
|
408
|
+
this.pill = false;
|
|
409
|
+
}
|
|
410
|
+
if (changedProperties.has("required") && this.required == null) {
|
|
411
|
+
this.required = false;
|
|
412
|
+
}
|
|
413
|
+
if (changedProperties.has("success") && this.success == null) {
|
|
414
|
+
this.success = false;
|
|
415
|
+
}
|
|
354
416
|
if (changedProperties.has("size") && (this.size == null || !isInputSize(this.size))) {
|
|
355
417
|
this.size = "md";
|
|
356
418
|
}
|
|
@@ -414,6 +476,7 @@ var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
|
414
476
|
aria-invalid="${ifDefined(this.invalid ? "true" : void 0)}"
|
|
415
477
|
aria-label="${ifDefined(this.forwardedAriaLabel)}"
|
|
416
478
|
aria-labelledby="${ifDefined(this.forwardedAriaLabelledBy)}"
|
|
479
|
+
autocapitalize="${ifDefined(this.autocapitalize || void 0)}"
|
|
417
480
|
autocomplete="${ifDefined(this.autocomplete || void 0)}"
|
|
418
481
|
?autofocus="${this.autofocus}"
|
|
419
482
|
class="${this.selectClasses}"
|
|
@@ -423,6 +486,7 @@ var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
|
423
486
|
id="${ifDefined(this.id || void 0)}"
|
|
424
487
|
name="${ifDefined(this.name || void 0)}"
|
|
425
488
|
?required="${this.required}"
|
|
489
|
+
spellcheck="${ifDefined(this.getAttribute("spellcheck") ?? void 0)}"
|
|
426
490
|
title="${ifDefined(this.title || void 0)}"
|
|
427
491
|
.value="${live(this.value)}"
|
|
428
492
|
@change="${this.handleChange}"
|
|
@@ -434,7 +498,6 @@ var SpectreSelectElement = class extends SpectreProjectableElement {
|
|
|
434
498
|
};
|
|
435
499
|
SpectreSelectElement.properties = {
|
|
436
500
|
autocomplete: { type: String, reflect: true },
|
|
437
|
-
autofocus: { type: Boolean, reflect: true },
|
|
438
501
|
disabled: { type: Boolean, reflect: true },
|
|
439
502
|
form: { type: String },
|
|
440
503
|
fullWidth: { attribute: "full-width", type: Boolean, reflect: true },
|