@phcdevworks/spectre-components 1.10.0 → 1.12.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 +66 -1
- package/dist/alert.cjs.map +1 -1
- package/dist/alert.d.cts +2 -2
- package/dist/alert.d.ts +2 -2
- package/dist/alert.js.map +1 -1
- package/dist/avatar.cjs.map +1 -1
- package/dist/avatar.d.cts +2 -2
- package/dist/avatar.d.ts +2 -2
- package/dist/avatar.js.map +1 -1
- package/dist/badge.cjs.map +1 -1
- package/dist/badge.d.cts +2 -2
- package/dist/badge.d.ts +2 -2
- package/dist/badge.js.map +1 -1
- package/dist/button.cjs.map +1 -1
- package/dist/button.d.cts +2 -2
- package/dist/button.d.ts +2 -2
- package/dist/button.js.map +1 -1
- package/dist/card.cjs.map +1 -1
- package/dist/card.d.cts +2 -2
- package/dist/card.d.ts +2 -2
- package/dist/card.js.map +1 -1
- package/dist/container.cjs.map +1 -1
- package/dist/container.d.cts +2 -2
- package/dist/container.d.ts +2 -2
- package/dist/container.js.map +1 -1
- package/dist/dropdown.cjs.map +1 -1
- package/dist/dropdown.d.cts +2 -2
- package/dist/dropdown.d.ts +2 -2
- package/dist/dropdown.js.map +1 -1
- package/dist/{form-DgzRhNmg.d.cts → form-JrKDonG4.d.cts} +9 -1
- package/dist/{form-DgzRhNmg.d.ts → form-JrKDonG4.d.ts} +9 -1
- package/dist/grid.cjs.map +1 -1
- package/dist/grid.d.cts +2 -2
- package/dist/grid.d.ts +2 -2
- package/dist/grid.js.map +1 -1
- package/dist/icon-box.cjs.map +1 -1
- package/dist/icon-box.d.cts +2 -2
- package/dist/icon-box.d.ts +2 -2
- package/dist/icon-box.js.map +1 -1
- package/dist/index.cjs +340 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +334 -2
- package/dist/index.js.map +1 -1
- package/dist/input.cjs.map +1 -1
- package/dist/input.d.cts +2 -2
- package/dist/input.d.ts +2 -2
- package/dist/input.js.map +1 -1
- package/dist/nav-item.cjs +500 -0
- package/dist/nav-item.cjs.map +1 -0
- package/dist/nav-item.d.cts +74 -0
- package/dist/nav-item.d.ts +74 -0
- package/dist/nav-item.js +497 -0
- package/dist/nav-item.js.map +1 -0
- package/dist/rating.cjs.map +1 -1
- package/dist/rating.d.cts +2 -2
- package/dist/rating.d.ts +2 -2
- package/dist/rating.js.map +1 -1
- package/dist/select.cjs.map +1 -1
- package/dist/select.d.cts +1 -1
- package/dist/select.d.ts +1 -1
- package/dist/select.js.map +1 -1
- package/dist/spinner.cjs.map +1 -1
- package/dist/spinner.d.cts +2 -2
- package/dist/spinner.d.ts +2 -2
- package/dist/spinner.js.map +1 -1
- package/dist/stack.cjs.map +1 -1
- package/dist/stack.d.cts +2 -2
- package/dist/stack.d.ts +2 -2
- package/dist/stack.js.map +1 -1
- package/dist/tag.cjs.map +1 -1
- package/dist/tag.d.cts +2 -2
- package/dist/tag.d.ts +2 -2
- package/dist/tag.js.map +1 -1
- package/dist/testimonial.cjs.map +1 -1
- package/dist/testimonial.d.cts +2 -2
- package/dist/testimonial.d.ts +2 -2
- package/dist/testimonial.js.map +1 -1
- package/dist/text.cjs +484 -0
- package/dist/text.cjs.map +1 -0
- package/dist/text.d.cts +53 -0
- package/dist/text.d.ts +53 -0
- package/dist/text.js +477 -0
- package/dist/text.js.map +1 -0
- package/dist/textarea.cjs.map +1 -1
- package/dist/textarea.d.cts +1 -1
- package/dist/textarea.d.ts +1 -1
- package/dist/textarea.js.map +1 -1
- package/dist/toast.cjs.map +1 -1
- package/dist/toast.d.cts +2 -2
- package/dist/toast.d.ts +2 -2
- package/dist/toast.js.map +1 -1
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.d.cts +2 -2
- package/dist/tooltip.d.ts +2 -2
- package/dist/tooltip.js.map +1 -1
- package/package.json +14 -4
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/form.ts","../src/utils/base.ts","../src/utils/dom.ts","../src/utils/projectable.ts","../src/components/button/sp-button.ts","../src/components/input/sp-input.ts","../src/components/textarea/sp-textarea.ts","../src/components/select/sp-select.ts","../src/components/checkbox/sp-checkbox.ts","../src/components/radio/sp-radio.ts","../src/components/label/sp-label.ts","../src/components/fieldset/sp-fieldset.ts","../src/components/badge/sp-badge.ts","../src/components/card/sp-card.ts","../src/components/icon-box/sp-icon-box.ts","../src/components/rating/sp-rating.ts","../src/components/testimonial/sp-testimonial.ts","../src/components/alert/sp-alert.ts","../src/components/avatar/sp-avatar.ts","../src/components/spinner/sp-spinner.ts","../src/components/tag/sp-tag.ts","../src/components/pricing-card/sp-pricing-card.ts","../src/components/container/sp-container.ts","../src/components/grid/sp-grid.ts","../src/components/section/sp-section.ts","../src/components/stack/sp-stack.ts","../src/components/dropdown/sp-dropdown.ts","../src/components/footer/sp-footer.ts","../src/components/modal/sp-modal.ts","../src/components/nav/sp-nav.ts","../src/components/sidebar/sp-sidebar.ts","../src/components/toast/sp-toast.ts","../src/components/tooltip/sp-tooltip.ts","../src/index.ts"],"names":["html","ifDefined","live","nothing","getInputLabelClasses"],"mappings":"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","file":"index.js","sourcesContent":["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 spectreAlertVariants = [\n 'info',\n 'success',\n 'warning',\n 'danger',\n 'neutral'\n] as const\n\nexport type SpectreAlertVariant = (typeof spectreAlertVariants)[number]\n\nexport function isAlertVariant(value: unknown): value is SpectreAlertVariant {\n return (spectreAlertVariants as readonly string[]).includes(value as string)\n}\n\nexport const spectreCardVariants = [\n 'elevated',\n 'flat',\n 'outline',\n 'ghost'\n] 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(\n value: unknown\n): value is SpectreIconBoxVariant {\n return (spectreIconBoxVariants as readonly string[]).includes(value as string)\n}\n\nexport const spectreTestimonialVariants = [\n 'elevated',\n 'flat',\n 'outline',\n 'ghost'\n] as const\n\nexport type SpectreTestimonialVariant =\n (typeof spectreTestimonialVariants)[number]\n\nexport function isTestimonialVariant(\n value: unknown\n): value is SpectreTestimonialVariant {\n return (spectreTestimonialVariants as readonly string[]).includes(\n value as string\n )\n}\n\nexport const spectreSpinnerVariants = [\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'danger',\n 'info',\n 'neutral',\n 'accent',\n 'cta'\n] as const\n\nexport type SpectreSpinnerVariant = (typeof spectreSpinnerVariants)[number]\n\nexport function isSpinnerVariant(\n value: unknown\n): value is SpectreSpinnerVariant {\n return (spectreSpinnerVariants as readonly string[]).includes(value as string)\n}\n\nexport const spectreTagVariants = [\n 'default',\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'danger',\n 'info',\n 'neutral',\n 'accent',\n 'cta',\n 'outline',\n 'ghost'\n] as const\n\nexport type SpectreTagVariant = (typeof spectreTagVariants)[number]\n\nexport function isTagVariant(value: unknown): value is SpectreTagVariant {\n return (spectreTagVariants as readonly string[]).includes(value as string)\n}\n\nexport const spectreAvatarSizes = ['xs', 'sm', 'md', 'lg', 'xl'] as const\n\nexport type SpectreAvatarSize = (typeof spectreAvatarSizes)[number]\n\nexport function isAvatarSize(value: unknown): value is SpectreAvatarSize {\n return (spectreAvatarSizes as readonly string[]).includes(value as string)\n}\n\nexport const spectreAvatarShapes = ['circle', 'square'] as const\n\nexport type SpectreAvatarShape = (typeof spectreAvatarShapes)[number]\n\nexport function isAvatarShape(value: unknown): value is SpectreAvatarShape {\n return (spectreAvatarShapes as readonly string[]).includes(value as string)\n}\n\nexport const spectreContainerMaxWidths = ['prose'] as const\n\nexport type SpectreContainerMaxWidth =\n (typeof spectreContainerMaxWidths)[number]\n\nexport function isContainerMaxWidth(\n value: unknown\n): value is SpectreContainerMaxWidth {\n return (spectreContainerMaxWidths as readonly string[]).includes(\n value as string\n )\n}\n\nexport const spectreGridColumns = [1, 2, 3, 4, 6, 12] as const\n\nexport type SpectreGridColumns = (typeof spectreGridColumns)[number]\n\nexport function isGridColumns(value: unknown): value is SpectreGridColumns {\n return (spectreGridColumns as readonly number[]).includes(value as number)\n}\n\nexport const spectreGridGaps = ['sm', 'md', 'lg'] as const\n\nexport type SpectreGridGap = (typeof spectreGridGaps)[number]\n\nexport function isGridGap(value: unknown): value is SpectreGridGap {\n return (spectreGridGaps as readonly string[]).includes(value as string)\n}\n\nexport const spectreStackDirections = ['vertical', 'horizontal'] as const\n\nexport type SpectreStackDirection = (typeof spectreStackDirections)[number]\n\nexport function isStackDirection(\n value: unknown\n): value is SpectreStackDirection {\n return (spectreStackDirections as readonly string[]).includes(\n value as string\n )\n}\n\nexport const spectreStackBases = ['sidebar'] as const\n\nexport type SpectreStackBasis = (typeof spectreStackBases)[number]\n\nexport function isStackBasis(value: unknown): value is SpectreStackBasis {\n return (spectreStackBases as readonly string[]).includes(value as string)\n}\n\nexport const spectreStackAligns = ['center', 'stretch'] as const\n\nexport type SpectreStackAlign = (typeof spectreStackAligns)[number]\n\nexport function isStackAlign(value: unknown): value is SpectreStackAlign {\n return (spectreStackAligns as readonly string[]).includes(value as string)\n}\n\nexport const spectreDropdownPlacements = [\n 'bottom-start',\n 'bottom-end',\n 'top-start',\n 'top-end'\n] as const\n\nexport type SpectreDropdownPlacement =\n (typeof spectreDropdownPlacements)[number]\n\nexport function isDropdownPlacement(\n value: unknown\n): value is SpectreDropdownPlacement {\n return (spectreDropdownPlacements as readonly string[]).includes(\n value as string\n )\n}\n\nexport const spectreToastVariants = [\n 'info',\n 'success',\n 'warning',\n 'danger'\n] as const\n\nexport type SpectreToastVariant = (typeof spectreToastVariants)[number]\n\nexport function isToastVariant(value: unknown): value is SpectreToastVariant {\n return (spectreToastVariants as readonly string[]).includes(value as string)\n}\n\nexport const spectreTooltipPlacements = [\n 'top',\n 'bottom',\n 'left',\n 'right'\n] as const\n\nexport type SpectreTooltipPlacement = (typeof spectreTooltipPlacements)[number]\n\nexport function isTooltipPlacement(\n value: unknown\n): value is SpectreTooltipPlacement {\n return (spectreTooltipPlacements as readonly string[]).includes(\n value as string\n )\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 { 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 // Subclasses that expose `disabled`/`loading` properties get this disabled\n // calculation for free instead of redeclaring it per component.\n protected get isDisabled(): boolean {\n const self = this as unknown as { disabled?: boolean; loading?: boolean }\n return (self.disabled ?? false) || (self.loading ?? false)\n }\n\n // Subclasses get this for free instead of redeclaring it per component.\n protected get hasForwardedLabel(): boolean {\n return Boolean(this.forwardedAriaLabel || this.forwardedAriaLabelledBy)\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 { html, nothing, type TemplateResult } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isButtonType,\n isButtonVariant,\n isInputSize,\n type SpectreButtonType,\n type SpectreButtonVariant,\n type SpectreInputSize\n} from '../../utils/form'\n\nimport {\n getButtonClasses,\n getInputLabelClasses,\n type ButtonSize,\n type ButtonVariant\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreButtonProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n autofocus?: boolean | null | undefined\n disabled?: boolean | undefined\n form?: string | undefined\n fullWidth?: boolean | undefined\n iconOnly?: boolean | undefined\n id?: string | null | undefined\n label?: string | undefined\n loading?: boolean | undefined\n loadingLabel?: string | undefined\n name?: string | undefined\n pill?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n type?: SpectreButtonType | undefined\n variant?: SpectreButtonVariant | undefined\n value?: string | undefined\n}\n\nexport class SpectreButtonElement\n extends SpectreProjectableElement\n implements SpectreButtonProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n form: { type: String },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n iconOnly: { attribute: 'icon-only', type: Boolean, reflect: true },\n label: { type: String, reflect: true },\n loading: { type: Boolean, reflect: true },\n loadingLabel: { attribute: 'loading-label', type: String, reflect: true },\n name: { type: String, reflect: true },\n pill: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n type: { type: String, reflect: true },\n variant: { type: String, reflect: true },\n value: { type: String }\n }\n\n disabled: boolean | undefined = false\n form: string | undefined\n fullWidth: boolean | undefined = false\n iconOnly: boolean | undefined = false\n label: string | undefined\n loading: boolean | undefined = false\n loadingLabel: string | undefined = 'Loading'\n name: string | undefined\n pill: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\n type: SpectreButtonType | undefined = 'button'\n variant: SpectreButtonVariant | undefined = 'primary'\n value: string | undefined = ''\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 autofocus(): boolean {\n return super.autofocus\n }\n\n override set autofocus(value: boolean | undefined | null) {\n super.autofocus = value\n }\n\n protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-button-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 (\n el.hasAttribute('data-sp-button-native') ||\n el.hasAttribute('data-sp-button-loading-label') ||\n el.hasAttribute('data-sp-button-label-fallback')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): 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('iconOnly') && this.iconOnly == null) {\n this.iconOnly = 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 (\n changedProperties.has('variant') &&\n (this.variant == null || !isButtonVariant(this.variant))\n ) {\n this.variant = 'primary'\n }\n\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n\n if (\n changedProperties.has('type') &&\n (this.type == null || !isButtonType(this.type))\n ) {\n this.type = 'button'\n }\n\n if (changedProperties.has('loadingLabel')) {\n if (this.loadingLabel == null || this.loadingLabel.trim() === '') {\n this.loadingLabel = 'Loading'\n }\n }\n\n if (changedProperties.has('value') && this.value == null) {\n this.value = ''\n }\n }\n\n private get buttonClasses(): string {\n return getButtonClasses({\n disabled: this.isDisabled,\n fullWidth: this.fullWidth ?? false,\n iconOnly: this.iconOnly ?? false,\n loading: this.loading ?? false,\n pill: this.pill ?? false,\n size: this.size as ButtonSize,\n variant: this.variant as ButtonVariant\n })\n }\n\n private get visibleLabelFallback(): string | undefined {\n const trimmedLabel = this.label?.trim()\n return trimmedLabel ? trimmedLabel : undefined\n }\n\n override focus(options?: FocusOptions): void {\n ;(this.getContentContainer() as HTMLButtonElement | null)?.focus(options)\n }\n\n override blur(): void {\n ;(this.getContentContainer() as HTMLButtonElement | null)?.blur()\n }\n\n private renderButtonContent(): TemplateResult | Node[] | typeof nothing {\n if (this.loading) {\n return html`<span\n class=\"${getInputLabelClasses({ disabled: this.isDisabled })}\"\n data-sp-button-loading-label\n >${this.loadingLabel}</span\n >`\n }\n\n if (this.hasProjectedContent) {\n return this.projectedContent\n }\n\n return this.visibleLabelFallback\n ? html`<span\n class=\"${getInputLabelClasses({ disabled: this.isDisabled })}\"\n data-sp-button-label-fallback\n >${this.visibleLabelFallback}</span\n >`\n : nothing\n }\n\n override render() {\n return html`<button\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${this.buttonClasses}\"\n data-sp-button-native\n ?disabled=\"${this.isDisabled}\"\n form=\"${ifDefined(this.form || undefined)}\"\n id=\"${ifDefined(this.id || undefined)}\"\n name=\"${ifDefined(this.name || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n type=\"${this.type}\"\n value=\"${ifDefined(this.value)}\"\n >\n ${this.renderButtonContent()}\n </button>`\n }\n}\n\nexport function defineSpectreButton(\n tagName = 'sp-button'\n): typeof SpectreButtonElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreButtonElement\n }\n\n customElements.define(tagName, SpectreButtonElement)\n return SpectreButtonElement\n}\n","import { html } from 'lit'\nimport { live } from 'lit/directives/live.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport {\n spectreInputSizes,\n isInputSize,\n type SpectreInputSize,\n spectreInputTypes,\n isInputType,\n type SpectreInputType,\n normalizeInt\n} from '../../utils/form'\n\nimport { getInputClasses } from '@phcdevworks/spectre-ui'\n\nexport {\n spectreInputSizes,\n type SpectreInputSize,\n spectreInputTypes,\n type SpectreInputType\n}\n\nexport interface SpectreInputProps {\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 enterkeyhint?: string | undefined\n form?: string | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n inputmode?: string | undefined\n invalid?: boolean | undefined\n list?: string | undefined\n loading?: boolean | undefined\n max?: string | undefined\n maxlength?: number | undefined\n min?: string | undefined\n minlength?: number | undefined\n name?: string | undefined\n pattern?: string | undefined\n pill?: boolean | undefined\n placeholder?: string | undefined\n readonly?: boolean | undefined\n required?: boolean | undefined\n size?: SpectreInputSize | undefined\n spellcheck?: boolean | null | undefined\n step?: string | undefined\n success?: boolean | undefined\n title?: string | null | undefined\n type?: SpectreInputType | undefined\n value?: string | undefined\n}\n\nexport class SpectreInputElement\n extends SpectreBaseElement\n implements SpectreInputProps\n{\n static properties = {\n autocomplete: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n enterkeyhint: { type: String, reflect: true },\n form: { type: String },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n inputmode: { type: String, reflect: true },\n invalid: { type: Boolean, reflect: true },\n list: { type: String, reflect: true },\n loading: { type: Boolean, reflect: true },\n max: { type: String, reflect: true },\n maxlength: { type: Number, reflect: true },\n min: { type: String, reflect: true },\n minlength: { type: Number, reflect: true },\n name: { type: String, reflect: true },\n pattern: { type: String, reflect: true },\n pill: { type: Boolean, reflect: true },\n placeholder: { type: String, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n step: { type: String, reflect: true },\n success: { type: Boolean, reflect: true },\n type: { type: String, reflect: true },\n value: { type: String }\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 autocomplete: string | undefined\n disabled: boolean | undefined = false\n enterkeyhint: string | undefined\n form: string | undefined\n fullWidth: 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 inputmode: string | undefined\n invalid: boolean | undefined = false\n list: string | undefined\n loading: boolean | undefined = false\n max: string | undefined\n maxlength: number | undefined\n min: string | undefined\n minlength: number | undefined\n name: string | undefined\n pattern: string | undefined\n pill: boolean | undefined = false\n placeholder: string | undefined\n readonly: boolean | undefined = false\n required: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\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 step: string | undefined\n success: boolean | undefined = false\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 type: SpectreInputType | undefined = 'text'\n value: string | undefined = ''\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): 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('readonly') && this.readonly == null) {\n this.readonly = 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 (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n\n if (\n changedProperties.has('type') &&\n (this.type == null || !isInputType(this.type))\n ) {\n this.type = 'text'\n }\n\n if (changedProperties.has('value') && this.value == null) {\n this.value = ''\n }\n\n if (changedProperties.has('maxlength')) {\n this.maxlength = normalizeInt(this.maxlength, undefined)\n }\n\n if (changedProperties.has('minlength')) {\n this.minlength = normalizeInt(this.minlength, undefined)\n }\n }\n\n private get inputClasses(): 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 nativeInput(): HTMLInputElement | null {\n return this.querySelector('[data-sp-input-native]')\n }\n\n private handleInput(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.value = input.value\n }\n\n private handleChange(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.value = input.value\n }\n\n override focus(options?: FocusOptions): void {\n this.nativeInput?.focus(options)\n }\n\n override blur(): void {\n this.nativeInput?.blur()\n }\n\n override render() {\n return html`<input\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.inputClasses}\"\n data-sp-input-native\n ?disabled=\"${this.isDisabled}\"\n enterkeyhint=\"${ifDefined(this.enterkeyhint || undefined)}\"\n form=\"${ifDefined(this.form || undefined)}\"\n ?readonly=\"${this.readonly}\"\n ?required=\"${this.required}\"\n id=\"${ifDefined(this.id || undefined)}\"\n inputmode=\"${ifDefined(this.inputmode || undefined)}\"\n list=\"${ifDefined(this.list || undefined)}\"\n max=\"${ifDefined(this.max || undefined)}\"\n maxlength=\"${ifDefined(this.maxlength)}\"\n min=\"${ifDefined(this.min || undefined)}\"\n minlength=\"${ifDefined(this.minlength)}\"\n name=\"${ifDefined(this.name || undefined)}\"\n pattern=\"${ifDefined(this.pattern || undefined)}\"\n placeholder=\"${ifDefined(this.placeholder || undefined)}\"\n spellcheck=\"${ifDefined(this.getAttribute('spellcheck') ?? undefined)}\"\n step=\"${ifDefined(this.step || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n type=\"${this.type}\"\n .value=\"${live(this.value)}\"\n @change=\"${this.handleChange}\"\n @input=\"${this.handleInput}\"\n />`\n }\n}\n\nexport function defineSpectreInput(\n tagName = 'sp-input'\n): typeof SpectreInputElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreInputElement\n }\n\n customElements.define(tagName, SpectreInputElement)\n return SpectreInputElement\n}\n","import { html } from 'lit'\nimport { live } from 'lit/directives/live.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport {\n isInputSize,\n type SpectreInputSize,\n normalizeInt\n} from '../../utils/form'\n\nimport { getTextareaClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreTextareaProps {\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 enterkeyhint?: string | undefined\n form?: string | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n inputmode?: string | undefined\n invalid?: boolean | undefined\n loading?: boolean | undefined\n maxlength?: number | undefined\n minlength?: number | undefined\n name?: string | undefined\n pill?: boolean | undefined\n placeholder?: string | undefined\n readonly?: boolean | undefined\n required?: boolean | undefined\n rows?: number | 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\nconst DEFAULT_ROWS = 2\n\nexport class SpectreTextareaElement\n extends SpectreBaseElement\n implements SpectreTextareaProps\n{\n static properties = {\n autocomplete: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n enterkeyhint: { type: String, reflect: true },\n form: { type: String },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n inputmode: { type: String, reflect: true },\n invalid: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n maxlength: { type: Number, reflect: true },\n minlength: { type: Number, reflect: true },\n name: { type: String, reflect: true },\n pill: { type: Boolean, reflect: true },\n placeholder: { type: String, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n rows: { type: Number, reflect: true },\n size: { type: String, reflect: true },\n success: { type: Boolean, reflect: true },\n value: { type: String }\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 autocomplete: string | undefined\n disabled: boolean | undefined = false\n enterkeyhint: string | undefined\n form: string | undefined\n fullWidth: 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 inputmode: string | undefined\n invalid: boolean | undefined = false\n loading: boolean | undefined = false\n maxlength: number | undefined\n minlength: number | undefined\n name: string | undefined\n pill: boolean | undefined = false\n placeholder: string | undefined\n readonly: boolean | undefined = false\n required: boolean | undefined = false\n rows: number | undefined = DEFAULT_ROWS\n size: SpectreInputSize | undefined = 'md'\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 success: boolean | undefined = false\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 willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): 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('readonly') && this.readonly == null) {\n this.readonly = 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 (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n\n if (changedProperties.has('rows')) {\n this.rows = normalizeInt(this.rows, DEFAULT_ROWS, 1) as number\n }\n\n if (changedProperties.has('value') && this.value == null) {\n this.value = ''\n }\n\n if (changedProperties.has('maxlength')) {\n this.maxlength = normalizeInt(this.maxlength, undefined)\n }\n\n if (changedProperties.has('minlength')) {\n this.minlength = normalizeInt(this.minlength, undefined)\n }\n }\n\n private get textareaClasses(): string {\n return getTextareaClasses({\n fullWidth: this.fullWidth ?? false,\n pill: this.pill ?? false,\n size: this.size as SpectreInputSize,\n disabled: this.disabled ?? false,\n loading: this.loading ?? false,\n state: this.invalid ? 'invalid' : this.success ? 'success' : 'default'\n })\n }\n\n private get nativeTextarea(): HTMLTextAreaElement | null {\n return this.querySelector('[data-sp-textarea-native]')\n }\n\n private handleInput(event: Event): void {\n const textarea = event.currentTarget as HTMLTextAreaElement\n this.value = textarea.value\n }\n\n private handleChange(event: Event): void {\n const textarea = event.currentTarget as HTMLTextAreaElement\n this.value = textarea.value\n }\n\n override focus(options?: FocusOptions): void {\n this.nativeTextarea?.focus(options)\n }\n\n override blur(): void {\n this.nativeTextarea?.blur()\n }\n\n override render() {\n return html`<textarea\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.textareaClasses}\"\n data-sp-textarea-native\n ?disabled=\"${this.isDisabled}\"\n enterkeyhint=\"${ifDefined(this.enterkeyhint || undefined)}\"\n form=\"${ifDefined(this.form || undefined)}\"\n inputmode=\"${ifDefined(this.inputmode || undefined)}\"\n ?readonly=\"${this.readonly}\"\n ?required=\"${this.required}\"\n id=\"${ifDefined(this.id || undefined)}\"\n maxlength=\"${ifDefined(this.maxlength)}\"\n minlength=\"${ifDefined(this.minlength)}\"\n name=\"${ifDefined(this.name || undefined)}\"\n placeholder=\"${ifDefined(this.placeholder || undefined)}\"\n rows=\"${this.rows}\"\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 ></textarea>`\n }\n}\n\nexport function defineSpectreTextarea(\n tagName = 'sp-textarea'\n): typeof SpectreTextareaElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreTextareaElement\n }\n\n customElements.define(tagName, SpectreTextareaElement)\n return SpectreTextareaElement\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 { getSelectClasses } 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\n extends SpectreProjectableElement\n implements SpectreSelectProps\n{\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(\n changedProperties: Map<PropertyKey, unknown>\n ): 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 (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n\n if (changedProperties.has('value') && this.value == null) {\n this.value = ''\n }\n }\n\n protected override updated(\n changedProperties: Map<PropertyKey, unknown>\n ): 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 !== '' ||\n oldValue !== undefined ||\n 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 getSelectClasses({\n fullWidth: this.fullWidth ?? false,\n pill: this.pill ?? false,\n size: this.size as SpectreInputSize,\n disabled: this.disabled ?? false,\n loading: this.loading ?? false,\n state: this.invalid ? 'invalid' : this.success ? 'success' : 'default'\n })\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(\n tagName = 'sp-select'\n): 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","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'\n\nimport { getCheckboxClasses, getInputLabelClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreCheckboxProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n autofocus?: boolean | null | undefined\n checked?: boolean | undefined\n disabled?: boolean | undefined\n form?: string | undefined\n id?: string | null | undefined\n invalid?: boolean | undefined\n loading?: boolean | undefined\n label?: string | undefined\n name?: string | undefined\n required?: boolean | undefined\n success?: boolean | undefined\n title?: string | null | undefined\n value?: string | undefined\n}\n\nexport class SpectreCheckboxElement\n extends SpectreProjectableElement\n implements SpectreCheckboxProps\n{\n static properties = {\n checked: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n form: { type: String },\n invalid: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n label: { type: String, reflect: true },\n name: { type: String, reflect: true },\n required: { type: Boolean, reflect: true },\n success: { type: Boolean, reflect: true },\n value: { type: String }\n }\n\n checked: boolean | undefined = false\n disabled: boolean | undefined = false\n form: string | undefined\n invalid: boolean | undefined = false\n loading: boolean | undefined = false\n label: string | undefined\n name: string | undefined\n required: boolean | undefined = false\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 autofocus(): boolean {\n return super.autofocus\n }\n\n override set autofocus(value: boolean | undefined | null) {\n super.autofocus = value\n }\n\n value: string | undefined = 'on'\n\n protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-checkbox-label]')\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 (\n el.hasAttribute('data-sp-checkbox-label') ||\n el.hasAttribute('data-sp-checkbox-native') ||\n el.hasAttribute('data-sp-checkbox-label-fallback') ||\n el.hasAttribute('data-sp-checkbox-indicator')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('checked') && this.checked == null) {\n this.checked = false\n }\n\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = 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('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('value') && this.value == null) {\n this.value = 'on'\n }\n }\n\n private get nativeInput(): HTMLInputElement | null {\n return this.querySelector('[data-sp-checkbox-native]')\n }\n\n private get visibleLabelFallback(): string | undefined {\n const trimmedLabel = this.label?.trim()\n return trimmedLabel ? trimmedLabel : undefined\n }\n\n private handleInput(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.checked = input.checked\n }\n\n private handleChange(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.checked = input.checked\n }\n\n override focus(options?: FocusOptions): void {\n this.nativeInput?.focus(options)\n }\n\n override blur(): void {\n this.nativeInput?.blur()\n }\n\n override render() {\n const labelContent = this.hasProjectedContent\n ? this.projectedContent\n : this.visibleLabelFallback\n ? html`<span\n class=\"${getInputLabelClasses({ disabled: this.isDisabled })}\"\n data-sp-checkbox-label-fallback\n >${this.visibleLabelFallback}</span\n >`\n : nothing\n\n return html`<label data-sp-checkbox-label>\n <input\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 ?autofocus=\"${this.autofocus}\"\n data-sp-checkbox-native\n .checked=\"${live(this.checked)}\"\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 type=\"checkbox\"\n value=\"${ifDefined(this.value)}\"\n @change=\"${this.handleChange}\"\n @input=\"${this.handleInput}\"\n />\n <span\n class=\"${getCheckboxClasses({ checked: this.checked ?? false, disabled: this.isDisabled })}\"\n data-sp-checkbox-indicator\n ></span>\n ${labelContent}\n </label>`\n }\n}\n\nexport function defineSpectreCheckbox(\n tagName = 'sp-checkbox'\n): typeof SpectreCheckboxElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreCheckboxElement\n }\n\n customElements.define(tagName, SpectreCheckboxElement)\n return SpectreCheckboxElement\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'\n\nimport { getInputLabelClasses, getRadioClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreRadioProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n autofocus?: boolean | null | undefined\n checked?: boolean | undefined\n disabled?: boolean | undefined\n form?: string | undefined\n id?: string | null | undefined\n invalid?: boolean | undefined\n loading?: boolean | undefined\n label?: string | undefined\n name?: string | undefined\n required?: boolean | undefined\n success?: boolean | undefined\n title?: string | null | undefined\n value?: string | undefined\n}\n\nexport class SpectreRadioElement\n extends SpectreProjectableElement\n implements SpectreRadioProps\n{\n static properties = {\n checked: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n form: { type: String },\n invalid: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n label: { type: String, reflect: true },\n name: { type: String, reflect: true },\n required: { type: Boolean, reflect: true },\n success: { type: Boolean, reflect: true },\n value: { type: String }\n }\n\n checked: boolean | undefined = false\n disabled: boolean | undefined = false\n form: string | undefined\n invalid: boolean | undefined = false\n loading: boolean | undefined = false\n label: string | undefined\n name: string | undefined\n required: boolean | undefined = false\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 autofocus(): boolean {\n return super.autofocus\n }\n\n override set autofocus(value: boolean | undefined | null) {\n super.autofocus = value\n }\n\n value: string | undefined = 'on'\n\n protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-radio-label]')\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 (\n el.hasAttribute('data-sp-radio-label') ||\n el.hasAttribute('data-sp-radio-native') ||\n el.hasAttribute('data-sp-radio-label-fallback') ||\n el.hasAttribute('data-sp-radio-indicator')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('checked') && this.checked == null) {\n this.checked = false\n }\n\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = 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('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('value') && this.value == null) {\n this.value = 'on'\n }\n }\n\n private get nativeInput(): HTMLInputElement | null {\n return this.querySelector('[data-sp-radio-native]')\n }\n\n private get visibleLabelFallback(): string | undefined {\n const trimmedLabel = this.label?.trim()\n return trimmedLabel ? trimmedLabel : undefined\n }\n\n private handleInput(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.checked = input.checked\n }\n\n private handleChange(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.checked = input.checked\n }\n\n protected override updated(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n super.updated(changedProperties)\n\n if (\n (changedProperties.has('checked') || changedProperties.has('name')) &&\n this.checked &&\n this.name\n ) {\n this.syncGroup()\n }\n }\n\n private syncGroup(): void {\n if (!this.name || !this.checked) {\n return\n }\n\n const root = this.getRootNode() as ShadowRoot | Document\n const radios = root.querySelectorAll(\n 'sp-radio'\n ) as NodeListOf<SpectreRadioElement>\n\n radios.forEach((radio) => {\n if (radio !== this && radio.name === this.name && radio.checked) {\n radio.checked = false\n }\n })\n }\n\n override focus(options?: FocusOptions): void {\n this.nativeInput?.focus(options)\n }\n\n override blur(): void {\n this.nativeInput?.blur()\n }\n\n override render() {\n const labelContent = this.hasProjectedContent\n ? this.projectedContent\n : this.visibleLabelFallback\n ? html`<span\n class=\"${getInputLabelClasses({ disabled: this.isDisabled })}\"\n data-sp-radio-label-fallback\n >${this.visibleLabelFallback}</span\n >`\n : nothing\n\n return html`<label data-sp-radio-label>\n <input\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 ?autofocus=\"${this.autofocus}\"\n data-sp-radio-native\n .checked=\"${live(this.checked)}\"\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 type=\"radio\"\n value=\"${ifDefined(this.value)}\"\n @change=\"${this.handleChange}\"\n @input=\"${this.handleInput}\"\n />\n <span\n class=\"${getRadioClasses({ checked: this.checked ?? false, disabled: this.isDisabled })}\"\n data-sp-radio-indicator\n ></span>\n ${labelContent}\n </label>`\n }\n}\n\nexport function defineSpectreRadio(\n tagName = 'sp-radio'\n): typeof SpectreRadioElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreRadioElement\n }\n\n customElements.define(tagName, SpectreRadioElement)\n return SpectreRadioElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getLabelClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreLabelProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n id?: string | null | undefined\n htmlFor?: string | undefined\n required?: boolean | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreLabelElement\n extends SpectreProjectableElement\n implements SpectreLabelProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n htmlFor: { attribute: 'for', type: String, reflect: true },\n required: { type: Boolean, reflect: true }\n }\n\n disabled: boolean | undefined = false\n htmlFor: string | undefined\n required: boolean | undefined = false\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n\n if (changedProperties.has('required') && this.required == null) {\n this.required = false\n }\n }\n\n protected override get isDisabled(): boolean {\n return this.disabled ?? false\n }\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-label-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-label-native')\n }\n\n override focus(options?: FocusOptions): void {\n ;(this.getContentContainer() as HTMLLabelElement | null)?.focus(options)\n }\n\n override blur(): void {\n ;(this.getContentContainer() as HTMLLabelElement | null)?.blur()\n }\n\n override render() {\n return html`<label\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${getLabelClasses({ disabled: this.isDisabled, required: this.required ?? false })}\"\n data-sp-label-native\n for=\"${ifDefined(this.htmlFor || undefined)}\"\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </label>`\n }\n}\n\nexport function defineSpectreLabel(\n tagName = 'sp-label'\n): typeof SpectreLabelElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreLabelElement\n }\n\n customElements.define(tagName, SpectreLabelElement)\n return SpectreLabelElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getFieldsetClasses, getFieldsetLegendClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreFieldsetProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n autocapitalize?: string | null | undefined\n autofocus?: boolean | null | undefined\n disabled?: boolean | undefined\n form?: string | undefined\n id?: string | null | undefined\n invalid?: boolean | undefined\n legend?: string | undefined\n loading?: boolean | undefined\n name?: string | undefined\n spellcheck?: boolean | null | undefined\n success?: boolean | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreFieldsetElement\n extends SpectreProjectableElement\n implements SpectreFieldsetProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n form: { type: String },\n invalid: { type: Boolean, reflect: true },\n legend: { type: String, reflect: true },\n loading: { type: Boolean, reflect: true },\n name: { type: String, reflect: true },\n success: { type: Boolean, reflect: true }\n }\n\n disabled: boolean | undefined = false\n form: string | undefined\n invalid: boolean | undefined = false\n legend: string | undefined\n loading: boolean | undefined = false\n name: string | undefined\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 private get visibleLegend(): string | undefined {\n const trimmedLegend = this.legend?.trim()\n return trimmedLegend ? trimmedLegend : undefined\n }\n\n protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-fieldset-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 (\n el.hasAttribute('data-sp-fieldset-native') ||\n el.hasAttribute('data-sp-fieldset-legend')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = 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('success') && this.success == null) {\n this.success = false\n }\n }\n\n override focus(options?: FocusOptions): void {\n ;(this.getContentContainer() as HTMLFieldSetElement | null)?.focus(options)\n }\n\n override blur(): void {\n ;(this.getContentContainer() as HTMLFieldSetElement | null)?.blur()\n }\n\n override render() {\n const legendClasses = getFieldsetLegendClasses()\n const legendContent = this.visibleLegend\n ? html`<legend class=\"${legendClasses}\" data-sp-fieldset-legend>\n ${this.visibleLegend}\n </legend>`\n : nothing\n\n return html`<fieldset\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 ?autofocus=\"${this.autofocus}\"\n class=\"${getFieldsetClasses({ disabled: this.isDisabled })}\"\n data-sp-fieldset-native\n ?disabled=\"${this.isDisabled}\"\n form=\"${ifDefined(this.form || undefined)}\"\n id=\"${ifDefined(this.id || undefined)}\"\n name=\"${ifDefined(this.name || undefined)}\"\n spellcheck=\"${ifDefined(this.getAttribute('spellcheck') ?? undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${legendContent}\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </fieldset>`\n }\n}\n\nexport function defineSpectreFieldset(\n tagName = 'sp-fieldset'\n): typeof SpectreFieldsetElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreFieldsetElement\n }\n\n customElements.define(tagName, SpectreFieldsetElement)\n return SpectreFieldsetElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isBadgeVariant,\n isInputSize,\n type SpectreBadgeVariant,\n type SpectreInputSize\n} from '../../utils/form'\n\nimport {\n getBadgeClasses,\n type BadgeVariant,\n type BadgeSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreBadgeProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n loading?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n variant?: SpectreBadgeVariant | undefined\n}\n\nexport class SpectreBadgeElement\n extends SpectreProjectableElement\n implements SpectreBadgeProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n fullWidth: boolean | undefined = false\n loading: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\n variant: SpectreBadgeVariant | undefined = 'primary'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-badge-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-badge-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isBadgeVariant(this.variant))\n ) {\n this.variant = 'primary'\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n }\n\n private get badgeClasses(): string {\n return getBadgeClasses({\n disabled: this.isDisabled,\n fullWidth: this.fullWidth ?? false,\n loading: this.loading ?? false,\n size: this.size as BadgeSize,\n variant: this.variant as BadgeVariant\n })\n }\n\n override render() {\n return html`<span\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.badgeClasses}\"\n data-sp-badge-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </span>`\n }\n}\n\nexport function defineSpectreBadge(\n tagName = 'sp-badge'\n): typeof SpectreBadgeElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreBadgeElement\n }\n\n customElements.define(tagName, SpectreBadgeElement)\n return SpectreBadgeElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport { isCardVariant, type SpectreCardVariant } from '../../utils/form'\n\nimport { getCardClasses, type CardVariant } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreCardProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n fullHeight?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n padded?: boolean | undefined\n title?: string | null | undefined\n variant?: SpectreCardVariant | undefined\n}\n\nexport class SpectreCardElement\n extends SpectreProjectableElement\n implements SpectreCardProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n fullHeight: { attribute: 'full-height', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n padded: { type: Boolean, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n fullHeight: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: boolean | undefined = false\n padded: boolean | undefined = true\n variant: SpectreCardVariant | undefined = 'elevated'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-card-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-card-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullHeight') && this.fullHeight == null) {\n this.fullHeight = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (changedProperties.has('padded') && this.padded == null) {\n this.padded = true\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isCardVariant(this.variant))\n ) {\n this.variant = 'elevated'\n }\n }\n\n private get cardClasses(): string {\n return getCardClasses({\n disabled: this.isDisabled,\n fullHeight: this.fullHeight ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false,\n padded: this.padded ?? true,\n variant: this.variant as CardVariant\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.cardClasses}\"\n data-sp-card-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreCard(\n tagName = 'sp-card'\n): typeof SpectreCardElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreCardElement\n }\n\n customElements.define(tagName, SpectreCardElement)\n return SpectreCardElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isIconBoxVariant,\n isInputSize,\n type SpectreIconBoxVariant,\n type SpectreInputSize\n} from '../../utils/form'\n\nimport {\n getIconBoxClasses,\n type IconBoxVariant,\n type IconBoxSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreIconBoxProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n pill?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n variant?: SpectreIconBoxVariant | undefined\n}\n\nexport class SpectreIconBoxElement\n extends SpectreProjectableElement\n implements SpectreIconBoxProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n pill: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n fullWidth: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: boolean | undefined = false\n pill: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\n variant: SpectreIconBoxVariant | undefined = 'primary'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-icon-box-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-icon-box-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (changedProperties.has('pill') && this.pill == null) {\n this.pill = false\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isIconBoxVariant(this.variant))\n ) {\n this.variant = 'primary'\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n }\n\n private get iconBoxClasses(): string {\n return getIconBoxClasses({\n disabled: this.isDisabled,\n fullWidth: this.fullWidth ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false,\n pill: this.pill ?? false,\n size: this.size as IconBoxSize,\n variant: this.variant as IconBoxVariant\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.iconBoxClasses}\"\n data-sp-icon-box-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreIconBox(\n tagName = 'sp-icon-box'\n): typeof SpectreIconBoxElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreIconBoxElement\n }\n\n customElements.define(tagName, SpectreIconBoxElement)\n return SpectreIconBoxElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport {\n isInputSize,\n normalizeInt,\n type SpectreInputSize\n} from '../../utils/form'\n\nimport {\n getRatingClasses,\n getRatingStarsClasses,\n getRatingStarClasses,\n getRatingTextClasses,\n type RatingSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreRatingProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n id?: string | null | undefined\n label?: string | undefined\n loading?: boolean | undefined\n max?: number | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n value?: number | undefined\n}\n\nexport class SpectreRatingElement\n extends SpectreBaseElement\n implements SpectreRatingProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n label: { type: String, reflect: true },\n loading: { type: Boolean, reflect: true },\n max: { type: Number, reflect: true },\n size: { type: String, reflect: true },\n value: { type: Number, reflect: true }\n }\n\n disabled: boolean | undefined = false\n label: string | undefined\n loading: boolean | undefined = false\n max: number | undefined = 5\n size: SpectreInputSize | undefined = 'md'\n value: number | undefined = 0\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 protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n if (changedProperties.has('max')) {\n this.max = normalizeInt(this.max, 5, 1) ?? 5\n }\n if (changedProperties.has('value')) {\n const safeMax = this.max ?? 5\n const normalized = normalizeInt(this.value, 0, 0)\n this.value = normalized == null ? 0 : Math.min(normalized, safeMax)\n }\n }\n\n private get ratingClasses(): string {\n return getRatingClasses({\n disabled: this.isDisabled,\n loading: this.loading ?? false,\n size: this.size as RatingSize\n })\n }\n\n private get effectiveMax(): number {\n return this.max ?? 5\n }\n\n private get effectiveValue(): number {\n return this.value ?? 0\n }\n\n private get computedAriaLabel(): string {\n const base = this.forwardedAriaLabel\n if (base) return base\n return `Rating: ${this.effectiveValue} out of ${this.effectiveMax}`\n }\n\n private renderStars() {\n const stars = []\n for (let i = 1; i <= this.effectiveMax; i++) {\n stars.push(\n html`<span\n class=\"${getRatingStarClasses(i <= this.effectiveValue)}\"\n ></span>`\n )\n }\n return stars\n }\n\n override render() {\n const trimmedLabel = this.label?.trim()\n\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${this.computedAriaLabel}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.ratingClasses}\"\n data-sp-rating-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"img\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n <div class=\"${getRatingStarsClasses()}\">${this.renderStars()}</div>\n ${\n trimmedLabel\n ? html`<span\n class=\"${getRatingTextClasses({ disabled: this.isDisabled })}\"\n >${trimmedLabel}</span\n >`\n : nothing\n }\n </div>`\n }\n}\n\nexport function defineSpectreRating(\n tagName = 'sp-rating'\n): typeof SpectreRatingElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreRatingElement\n }\n\n customElements.define(tagName, SpectreRatingElement)\n return SpectreRatingElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isTestimonialVariant,\n type SpectreTestimonialVariant\n} from '../../utils/form'\n\nimport {\n getTestimonialClasses,\n type TestimonialRecipeOptions\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreTestimonialProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n fullHeight?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n title?: string | null | undefined\n variant?: SpectreTestimonialVariant | undefined\n}\n\nexport class SpectreTestimonialElement\n extends SpectreProjectableElement\n implements SpectreTestimonialProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n fullHeight: { attribute: 'full-height', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n fullHeight: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: boolean | undefined = false\n variant: SpectreTestimonialVariant | undefined = 'elevated'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-testimonial-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-testimonial-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullHeight') && this.fullHeight == null) {\n this.fullHeight = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isTestimonialVariant(this.variant))\n ) {\n this.variant = 'elevated'\n }\n }\n\n private get testimonialClasses(): string {\n return getTestimonialClasses({\n disabled: this.isDisabled,\n fullHeight: this.fullHeight ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false,\n variant: this.variant as NonNullable<TestimonialRecipeOptions['variant']>\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.testimonialClasses}\"\n data-sp-testimonial-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreTestimonial(\n tagName = 'sp-testimonial'\n): typeof SpectreTestimonialElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreTestimonialElement\n }\n\n customElements.define(tagName, SpectreTestimonialElement)\n return SpectreTestimonialElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isAlertVariant,\n isInputSize,\n type SpectreAlertVariant,\n type SpectreInputSize\n} from '../../utils/form'\n\nimport {\n getAlertClasses,\n type AlertVariant,\n type AlertSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreAlertProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n dismissed?: boolean | undefined\n disabled?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n loading?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n variant?: SpectreAlertVariant | undefined\n}\n\nexport class SpectreAlertElement\n extends SpectreProjectableElement\n implements SpectreAlertProps\n{\n static properties = {\n dismissed: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n dismissed: boolean | undefined = false\n disabled: boolean | undefined = false\n fullWidth: boolean | undefined = false\n loading: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\n variant: SpectreAlertVariant | undefined = 'info'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-alert-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-alert-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('dismissed') && this.dismissed == null) {\n this.dismissed = false\n }\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isAlertVariant(this.variant))\n ) {\n this.variant = 'info'\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n }\n\n private get alertClasses(): string {\n return getAlertClasses({\n disabled: this.isDisabled,\n dismissed: this.dismissed ?? false,\n fullWidth: this.fullWidth ?? false,\n loading: this.loading ?? false,\n size: this.size as AlertSize,\n variant: this.variant as AlertVariant\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.alertClasses}\"\n data-sp-alert-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"alert\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreAlert(\n tagName = 'sp-alert'\n): typeof SpectreAlertElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreAlertElement\n }\n\n customElements.define(tagName, SpectreAlertElement)\n return SpectreAlertElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isAvatarShape,\n isAvatarSize,\n type SpectreAvatarShape,\n type SpectreAvatarSize\n} from '../../utils/form'\n\nimport {\n getAvatarClasses,\n type AvatarShape,\n type AvatarSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreAvatarProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n placeholder?: boolean | undefined\n shape?: SpectreAvatarShape | undefined\n size?: SpectreAvatarSize | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreAvatarElement\n extends SpectreProjectableElement\n implements SpectreAvatarProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n placeholder: { type: Boolean, reflect: true },\n shape: { type: String, reflect: true },\n size: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n fullWidth: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: boolean | undefined = false\n placeholder: boolean | undefined = false\n shape: SpectreAvatarShape | undefined = 'circle'\n size: SpectreAvatarSize | undefined = 'md'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-avatar-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-avatar-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (changedProperties.has('placeholder') && this.placeholder == null) {\n this.placeholder = false\n }\n if (\n changedProperties.has('shape') &&\n (this.shape == null || !isAvatarShape(this.shape))\n ) {\n this.shape = 'circle'\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isAvatarSize(this.size))\n ) {\n this.size = 'md'\n }\n }\n\n private get avatarClasses(): string {\n return getAvatarClasses({\n disabled: this.isDisabled,\n fullWidth: this.fullWidth ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false,\n placeholder: this.placeholder ?? false,\n shape: this.shape as AvatarShape,\n size: this.size as AvatarSize\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.avatarClasses}\"\n data-sp-avatar-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreAvatar(\n tagName = 'sp-avatar'\n): typeof SpectreAvatarElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreAvatarElement\n }\n\n customElements.define(tagName, SpectreAvatarElement)\n return SpectreAvatarElement\n}\n","import { html } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport {\n isInputSize,\n isSpinnerVariant,\n type SpectreInputSize,\n type SpectreSpinnerVariant\n} from '../../utils/form'\n\nimport {\n getSpinnerClasses,\n type SpinnerSize,\n type SpinnerVariant\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreSpinnerProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n id?: string | null | undefined\n loading?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n variant?: SpectreSpinnerVariant | undefined\n}\n\nexport class SpectreSpinnerElement\n extends SpectreBaseElement\n implements SpectreSpinnerProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n loading: boolean | undefined = true\n size: SpectreInputSize | undefined = 'md'\n variant: SpectreSpinnerVariant | undefined\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 protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = true\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n if (\n changedProperties.has('variant') &&\n this.variant != null &&\n !isSpinnerVariant(this.variant)\n ) {\n this.variant = undefined\n }\n }\n\n private get spinnerClasses(): string {\n return getSpinnerClasses({\n disabled: this.disabled ?? false,\n loading: this.loading ?? true,\n size: this.size as SpinnerSize,\n ...(this.variant != null\n ? { variant: this.variant as SpinnerVariant }\n : {})\n })\n }\n\n private get computedAriaLabel(): string {\n return this.forwardedAriaLabel ?? 'Loading'\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${this.computedAriaLabel}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.spinnerClasses}\"\n data-sp-spinner-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"status\"\n title=\"${ifDefined(this.title || undefined)}\"\n ></div>`\n }\n}\n\nexport function defineSpectreSpinner(\n tagName = 'sp-spinner'\n): typeof SpectreSpinnerElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreSpinnerElement\n }\n\n customElements.define(tagName, SpectreSpinnerElement)\n return SpectreSpinnerElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isInputSize,\n isTagVariant,\n type SpectreInputSize,\n type SpectreTagVariant\n} from '../../utils/form'\n\nimport {\n getTagClasses,\n type TagVariant,\n type TagSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreTagProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n dismissible?: boolean | undefined\n disabled?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n selected?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n variant?: SpectreTagVariant | undefined\n}\n\nexport class SpectreTagElement\n extends SpectreProjectableElement\n implements SpectreTagProps\n{\n static properties = {\n dismissible: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n selected: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n dismissible: boolean | undefined = false\n disabled: boolean | undefined = false\n fullWidth: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: boolean | undefined = false\n selected: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\n variant: SpectreTagVariant | undefined = 'default'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-tag-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-tag-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('dismissible') && this.dismissible == null) {\n this.dismissible = false\n }\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (changedProperties.has('selected') && this.selected == null) {\n this.selected = false\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isTagVariant(this.variant))\n ) {\n this.variant = 'default'\n }\n }\n\n private get tagClasses(): string {\n return getTagClasses({\n disabled: this.isDisabled,\n dismissible: this.dismissible ?? false,\n fullWidth: this.fullWidth ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false,\n selected: this.selected ?? false,\n size: this.size as TagSize,\n variant: this.variant as TagVariant\n })\n }\n\n override render() {\n return html`<span\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.tagClasses}\"\n data-sp-tag-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </span>`\n }\n}\n\nexport function defineSpectreTag(tagName = 'sp-tag'): typeof SpectreTagElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreTagElement\n }\n\n customElements.define(tagName, SpectreTagElement)\n return SpectreTagElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getPricingCardClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectrePricingCardProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n featured?: boolean | undefined\n fullHeight?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n title?: string | null | undefined\n}\n\nexport class SpectrePricingCardElement\n extends SpectreProjectableElement\n implements SpectrePricingCardProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n featured: { type: Boolean, reflect: true },\n fullHeight: { attribute: 'full-height', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true }\n }\n\n disabled: boolean | undefined = false\n featured: boolean | undefined = false\n fullHeight: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: 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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-pricing-card-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-pricing-card-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('featured') && this.featured == null) {\n this.featured = false\n }\n if (changedProperties.has('fullHeight') && this.fullHeight == null) {\n this.fullHeight = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n }\n\n private get pricingCardClasses(): string {\n return getPricingCardClasses({\n disabled: this.isDisabled,\n featured: this.featured ?? false,\n fullHeight: this.fullHeight ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.pricingCardClasses}\"\n data-sp-pricing-card-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectrePricingCard(\n tagName = 'sp-pricing-card'\n): typeof SpectrePricingCardElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectrePricingCardElement\n }\n\n customElements.define(tagName, SpectrePricingCardElement)\n return SpectrePricingCardElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isContainerMaxWidth,\n type SpectreContainerMaxWidth\n} from '../../utils/form'\n\nimport {\n getContainerClasses,\n type ContainerMaxWidth\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreContainerProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n id?: string | null | undefined\n maxWidth?: SpectreContainerMaxWidth | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreContainerElement\n extends SpectreProjectableElement\n implements SpectreContainerProps\n{\n static properties = {\n maxWidth: { attribute: 'max-width', type: String, reflect: true }\n }\n\n maxWidth: SpectreContainerMaxWidth | undefined = undefined\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-container-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-container-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (\n changedProperties.has('maxWidth') &&\n this.maxWidth != null &&\n !isContainerMaxWidth(this.maxWidth)\n ) {\n this.maxWidth = undefined\n }\n }\n\n private get containerClasses(): string {\n return getContainerClasses(\n this.maxWidth != null\n ? { maxWidth: this.maxWidth as ContainerMaxWidth }\n : {}\n )\n }\n\n override render() {\n return html`<div\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.containerClasses}\"\n data-sp-container-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreContainer(\n tagName = 'sp-container'\n): typeof SpectreContainerElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreContainerElement\n }\n\n customElements.define(tagName, SpectreContainerElement)\n return SpectreContainerElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isGridColumns,\n isGridGap,\n type SpectreGridColumns,\n type SpectreGridGap\n} from '../../utils/form'\n\nimport {\n getGridClasses,\n type GridColumns,\n type GridGap\n} from '@phcdevworks/spectre-ui'\nimport { normalizeInt } from '../../utils/form'\n\nexport interface SpectreGridProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n columns?: SpectreGridColumns | undefined\n gap?: SpectreGridGap | undefined\n id?: string | null | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreGridElement\n extends SpectreProjectableElement\n implements SpectreGridProps\n{\n static properties = {\n columns: { type: Number, reflect: true },\n gap: { type: String, reflect: true }\n }\n\n columns: SpectreGridColumns | undefined = 1\n gap: SpectreGridGap | undefined = 'md'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-grid-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-grid-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('columns')) {\n const normalized = normalizeInt(this.columns, undefined, 1)\n this.columns =\n normalized != null && isGridColumns(normalized)\n ? (normalized as SpectreGridColumns)\n : 1\n }\n if (\n changedProperties.has('gap') &&\n (this.gap == null || !isGridGap(this.gap))\n ) {\n this.gap = 'md'\n }\n }\n\n private get gridClasses(): string {\n return getGridClasses({\n columns: this.columns as GridColumns,\n gap: this.gap as GridGap\n })\n }\n\n override render() {\n return html`<div\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.gridClasses}\"\n data-sp-grid-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreGrid(\n tagName = 'sp-grid'\n): typeof SpectreGridElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreGridElement\n }\n\n customElements.define(tagName, SpectreGridElement)\n return SpectreGridElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getSectionClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreSectionProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n id?: string | null | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreSectionElement\n extends SpectreProjectableElement\n implements SpectreSectionProps\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-section-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-section-native')\n }\n\n private get sectionClasses(): string {\n return getSectionClasses({})\n }\n\n override render() {\n return html`<section\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.sectionClasses}\"\n data-sp-section-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </section>`\n }\n}\n\nexport function defineSpectreSection(\n tagName = 'sp-section'\n): typeof SpectreSectionElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreSectionElement\n }\n\n customElements.define(tagName, SpectreSectionElement)\n return SpectreSectionElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isStackAlign,\n isStackBasis,\n isStackDirection,\n type SpectreStackAlign,\n type SpectreStackBasis,\n type SpectreStackDirection\n} from '../../utils/form'\n\nimport {\n getStackClasses,\n type StackAlign,\n type StackBasis,\n type StackDirection\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreStackProps {\n align?: SpectreStackAlign | undefined\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n basis?: SpectreStackBasis | undefined\n direction?: SpectreStackDirection | undefined\n id?: string | null | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreStackElement\n extends SpectreProjectableElement\n implements SpectreStackProps\n{\n static properties = {\n align: { type: String, reflect: true },\n basis: { type: String, reflect: true },\n direction: { type: String, reflect: true }\n }\n\n align: SpectreStackAlign | undefined = 'center'\n basis: SpectreStackBasis | undefined = undefined\n direction: SpectreStackDirection | undefined = 'vertical'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-stack-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-stack-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (\n changedProperties.has('direction') &&\n (this.direction == null || !isStackDirection(this.direction))\n ) {\n this.direction = 'vertical'\n }\n if (\n changedProperties.has('basis') &&\n this.basis != null &&\n !isStackBasis(this.basis)\n ) {\n this.basis = undefined\n }\n if (\n changedProperties.has('align') &&\n (this.align == null || !isStackAlign(this.align))\n ) {\n this.align = 'center'\n }\n }\n\n private get stackClasses(): string {\n return getStackClasses({\n align: this.align as StackAlign,\n direction: this.direction as StackDirection,\n ...(this.basis != null ? { basis: this.basis as StackBasis } : {})\n })\n }\n\n override render() {\n return html`<div\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.stackClasses}\"\n data-sp-stack-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreStack(\n tagName = 'sp-stack'\n): typeof SpectreStackElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreStackElement\n }\n\n customElements.define(tagName, SpectreStackElement)\n return SpectreStackElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport { hasMeaningfulContent } from '../../utils/dom'\nimport {\n isDropdownPlacement,\n type SpectreDropdownPlacement\n} from '../../utils/form'\n\nimport {\n getDropdownClasses,\n getDropdownMenuClasses\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreDropdownProps {\n ariaLabel?: string | null\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n open?: boolean | undefined\n placement?: SpectreDropdownPlacement | undefined\n title?: string | null | undefined\n triggerLabel?: string | undefined\n}\n\nexport class SpectreDropdownElement\n extends SpectreBaseElement\n implements SpectreDropdownProps\n{\n static properties = {\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n open: { type: Boolean, reflect: true },\n placement: { type: String, reflect: true },\n triggerLabel: { attribute: 'trigger-label', type: String }\n }\n\n fullWidth: boolean | undefined = false\n open: boolean | undefined = false\n placement: SpectreDropdownPlacement | undefined = 'bottom-start'\n triggerLabel: string | undefined = 'Toggle menu'\n\n private triggerContent: Node[] = []\n private menuContent: Node[] = []\n private contentObserver?: MutationObserver | undefined\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 private isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return (\n el.hasAttribute('data-sp-dropdown-menu') ||\n el.hasAttribute('data-sp-dropdown-trigger')\n )\n }\n\n private syncProjectedContent(): boolean {\n const nextTriggerContent: Node[] = []\n const nextMenuContent: Node[] = []\n\n this.childNodes.forEach((node) => {\n if (this.isInternalNode(node)) {\n return\n }\n const isTriggerSlot =\n node.nodeType === Node.ELEMENT_NODE &&\n (node as Element).getAttribute('slot') === 'trigger'\n if (isTriggerSlot) {\n nextTriggerContent.push(node)\n } else {\n nextMenuContent.push(node)\n }\n })\n\n const changed =\n nextTriggerContent.length !== this.triggerContent.length ||\n nextTriggerContent.some((n, i) => n !== this.triggerContent[i]) ||\n nextMenuContent.length !== this.menuContent.length ||\n nextMenuContent.some((n, i) => n !== this.menuContent[i])\n\n if (changed) {\n this.triggerContent = nextTriggerContent\n this.menuContent = nextMenuContent\n }\n\n return changed\n }\n\n private get hasTriggerContent(): boolean {\n return hasMeaningfulContent(this.triggerContent)\n }\n\n private get hasMenuContent(): boolean {\n return hasMeaningfulContent(this.menuContent)\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n this.syncProjectedContent()\n this.startContentObserver()\n document.addEventListener('click', this.handleDocumentClick)\n document.addEventListener('keydown', this.handleDocumentKeydown)\n }\n\n override disconnectedCallback(): void {\n this.stopContentObserver()\n document.removeEventListener('click', this.handleDocumentClick)\n document.removeEventListener('keydown', this.handleDocumentKeydown)\n super.disconnectedCallback()\n }\n\n protected override update(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n this.stopContentObserver()\n super.update(changedProperties)\n this.startContentObserver()\n }\n\n private startContentObserver(): void {\n if (this.contentObserver) {\n return\n }\n this.contentObserver = new MutationObserver(() => {\n if (this.syncProjectedContent()) {\n this.requestUpdate()\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 protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('open') && this.open == null) {\n this.open = false\n }\n if (\n changedProperties.has('placement') &&\n (this.placement == null || !isDropdownPlacement(this.placement))\n ) {\n this.placement = 'bottom-start'\n }\n if (changedProperties.has('triggerLabel') && !this.triggerLabel) {\n this.triggerLabel = 'Toggle menu'\n }\n }\n\n private handleDocumentClick = (event: MouseEvent): void => {\n if (!this.open) {\n return\n }\n if (!event.composedPath().includes(this)) {\n this.close()\n }\n }\n\n private handleDocumentKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape' && this.open) {\n this.close()\n this.triggerElement?.focus()\n }\n }\n\n private get triggerElement(): HTMLButtonElement | null {\n return this.querySelector('[data-sp-dropdown-trigger]')\n }\n\n private toggle(): void {\n if (this.open) {\n this.close()\n } else {\n this.openMenu()\n }\n }\n\n private openMenu(): void {\n if (this.open) {\n return\n }\n this.open = true\n this.dispatchEvent(new CustomEvent('sp-open', { bubbles: true }))\n }\n\n private close(): void {\n if (!this.open) {\n return\n }\n this.open = false\n this.dispatchEvent(new CustomEvent('sp-close', { bubbles: true }))\n }\n\n private get dropdownClasses(): string {\n return getDropdownClasses({ fullWidth: this.fullWidth ?? false })\n }\n\n private get menuClasses(): string {\n return getDropdownMenuClasses({\n open: this.open ?? false,\n placement: this.placement as SpectreDropdownPlacement\n })\n }\n\n override render() {\n return html`<div\n class=\"${this.dropdownClasses}\"\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n <button\n aria-expanded=\"${this.open ? 'true' : 'false'}\"\n aria-haspopup=\"true\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel ?? this.triggerLabel)}\"\n class=\"sp-dropdown__trigger\"\n data-sp-dropdown-trigger\n type=\"button\"\n @click=\"${() => this.toggle()}\"\n >\n ${this.hasTriggerContent ? this.triggerContent : this.triggerLabel}\n </button>\n <div class=\"${this.menuClasses}\" data-sp-dropdown-menu>\n ${this.hasMenuContent ? this.menuContent : nothing}\n </div>\n </div>`\n }\n}\n\nexport function defineSpectreDropdown(\n tagName = 'sp-dropdown'\n): typeof SpectreDropdownElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreDropdownElement\n }\n\n customElements.define(tagName, SpectreDropdownElement)\n return SpectreDropdownElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getFooterClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreFooterProps {\n ariaLabel?: string | null\n bordered?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreFooterElement\n extends SpectreProjectableElement\n implements SpectreFooterProps\n{\n static properties = {\n bordered: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true }\n }\n\n bordered: boolean | undefined = false\n fullWidth: 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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-footer-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-footer-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('bordered') && this.bordered == null) {\n this.bordered = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n }\n\n private get footerClasses(): string {\n return getFooterClasses({\n bordered: this.bordered ?? false,\n fullWidth: this.fullWidth ?? false\n })\n }\n\n override render() {\n return html`<footer\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n class=\"${this.footerClasses}\"\n data-sp-footer-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </footer>`\n }\n}\n\nexport function defineSpectreFooter(\n tagName = 'sp-footer'\n): typeof SpectreFooterElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreFooterElement\n }\n\n customElements.define(tagName, SpectreFooterElement)\n return SpectreFooterElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport {\n getModalClasses,\n getModalOverlayClasses\n} from '@phcdevworks/spectre-ui'\n\nconst FOCUSABLE_SELECTOR = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])'\n].join(',')\n\nexport interface SpectreModalProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n open?: boolean | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreModalElement\n extends SpectreProjectableElement\n implements SpectreModalProps\n{\n static properties = {\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n open: { type: Boolean, reflect: true }\n }\n\n fullWidth: boolean | undefined = false\n open: boolean | undefined = false\n\n private previouslyFocusedElement: HTMLElement | null = null\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-modal-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return (\n el.hasAttribute('data-sp-modal-native') ||\n el.hasAttribute('data-sp-modal-overlay')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('open') && this.open == null) {\n this.open = false\n }\n }\n\n protected override updated(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n super.updated(changedProperties)\n\n if (!changedProperties.has('open')) {\n return\n }\n\n if (this.open) {\n this.previouslyFocusedElement = document.activeElement as HTMLElement\n this.focusFirstElement()\n } else if (this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus()\n this.previouslyFocusedElement = null\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n document.addEventListener('keydown', this.handleDocumentKeydown)\n }\n\n override disconnectedCallback(): void {\n document.removeEventListener('keydown', this.handleDocumentKeydown)\n super.disconnectedCallback()\n }\n\n private get modalElement(): HTMLElement | null {\n return this.querySelector('[data-sp-modal-native]')\n }\n\n private get focusableElements(): HTMLElement[] {\n const modal = this.modalElement\n if (!modal) {\n return []\n }\n return Array.from(modal.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR))\n }\n\n private focusFirstElement(): void {\n const [first] = this.focusableElements\n ;(first ?? this.modalElement)?.focus()\n }\n\n private handleDocumentKeydown = (event: KeyboardEvent): void => {\n if (!this.open) {\n return\n }\n\n if (event.key === 'Escape') {\n this.close()\n return\n }\n\n if (event.key === 'Tab') {\n this.trapFocus(event)\n }\n }\n\n private trapFocus(event: KeyboardEvent): void {\n const focusable = this.focusableElements\n if (focusable.length === 0) {\n event.preventDefault()\n return\n }\n\n const first = focusable[0]\n const last = focusable[focusable.length - 1]\n const active = document.activeElement\n\n if (event.shiftKey && active === first) {\n event.preventDefault()\n last?.focus()\n } else if (!event.shiftKey && active === last) {\n event.preventDefault()\n first?.focus()\n }\n }\n\n private close(): void {\n if (!this.open) {\n return\n }\n this.open = false\n this.dispatchEvent(new CustomEvent('sp-close', { bubbles: true }))\n }\n\n private get overlayClasses(): string {\n return getModalOverlayClasses({ open: this.open ?? false })\n }\n\n private get modalClasses(): string {\n return getModalClasses({\n open: this.open ?? false,\n fullWidth: this.fullWidth ?? false\n })\n }\n\n override render() {\n const isHidden = !this.open\n\n return html`<div\n aria-hidden=\"${ifDefined(isHidden ? 'true' : undefined)}\"\n class=\"${this.overlayClasses}\"\n data-sp-modal-overlay\n @click=\"${(event: Event) => {\n if (event.target === event.currentTarget) {\n this.close()\n }\n }}\"\n >\n <div\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-hidden=\"${ifDefined(isHidden ? 'true' : undefined)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n aria-modal=\"true\"\n class=\"${this.modalClasses}\"\n data-sp-modal-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"dialog\"\n tabindex=\"-1\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>\n </div>`\n }\n}\n\nexport function defineSpectreModal(\n tagName = 'sp-modal'\n): typeof SpectreModalElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreModalElement\n }\n\n customElements.define(tagName, SpectreModalElement)\n return SpectreModalElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getNavClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreNavProps {\n ariaLabel?: string | null\n bordered?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n sticky?: boolean | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreNavElement\n extends SpectreProjectableElement\n implements SpectreNavProps\n{\n static properties = {\n bordered: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n sticky: { type: Boolean, reflect: true }\n }\n\n bordered: boolean | undefined = false\n fullWidth: boolean | undefined = false\n sticky: 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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-nav-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-nav-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('bordered') && this.bordered == null) {\n this.bordered = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('sticky') && this.sticky == null) {\n this.sticky = false\n }\n }\n\n private get navClasses(): string {\n return getNavClasses({\n bordered: this.bordered ?? false,\n fullWidth: this.fullWidth ?? false,\n sticky: this.sticky ?? false\n })\n }\n\n override render() {\n return html`<nav\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n class=\"${this.navClasses}\"\n data-sp-nav-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </nav>`\n }\n}\n\nexport function defineSpectreNav(tagName = 'sp-nav'): typeof SpectreNavElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreNavElement\n }\n\n customElements.define(tagName, SpectreNavElement)\n return SpectreNavElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport {\n getSidebarBackdropClasses,\n getSidebarClasses,\n getSidebarToggleClasses\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreSidebarProps {\n ariaLabel?: string | null\n bordered?: boolean | undefined\n id?: string | null | undefined\n open?: boolean | undefined\n title?: string | null | undefined\n toggleLabel?: string | undefined\n}\n\nexport class SpectreSidebarElement\n extends SpectreProjectableElement\n implements SpectreSidebarProps\n{\n static properties = {\n bordered: { type: Boolean, reflect: true },\n open: { type: Boolean, reflect: false },\n toggleLabel: { attribute: 'toggle-label', type: String }\n }\n\n bordered: boolean | undefined = false\n open: boolean | undefined = false\n toggleLabel: string | undefined = 'Toggle sidebar'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-sidebar-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return (\n el.hasAttribute('data-sp-sidebar-native') ||\n el.hasAttribute('data-sp-sidebar-toggle') ||\n el.hasAttribute('data-sp-sidebar-backdrop')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('bordered') && this.bordered == null) {\n this.bordered = false\n }\n if (changedProperties.has('open') && this.open == null) {\n this.open = false\n }\n if (changedProperties.has('toggleLabel') && !this.toggleLabel) {\n this.toggleLabel = 'Toggle sidebar'\n }\n if (changedProperties.has('open')) {\n HTMLElement.prototype.setAttribute.call(\n this,\n 'data-sidebar-open',\n this.open ? 'true' : 'false'\n )\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n HTMLElement.prototype.setAttribute.call(\n this,\n 'data-sidebar-open',\n this.open ? 'true' : 'false'\n )\n document.addEventListener('keydown', this.handleDocumentKeydown)\n }\n\n override disconnectedCallback(): void {\n document.removeEventListener('keydown', this.handleDocumentKeydown)\n super.disconnectedCallback()\n }\n\n private handleDocumentKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape' && this.open) {\n this.close()\n }\n }\n\n private toggle(): void {\n if (this.open) {\n this.close()\n } else {\n this.openSidebar()\n }\n }\n\n private openSidebar(): void {\n if (this.open) {\n return\n }\n this.open = true\n this.dispatchEvent(new CustomEvent('sp-open', { bubbles: true }))\n }\n\n private close(): void {\n if (!this.open) {\n return\n }\n this.open = false\n this.dispatchEvent(new CustomEvent('sp-close', { bubbles: true }))\n }\n\n private get sidebarClasses(): string {\n return getSidebarClasses({ bordered: this.bordered ?? false })\n }\n\n override render() {\n return html`<button\n aria-expanded=\"${this.open ? 'true' : 'false'}\"\n aria-label=\"${ifDefined(this.toggleLabel)}\"\n class=\"${getSidebarToggleClasses()}\"\n data-sp-sidebar-toggle\n type=\"button\"\n @click=\"${() => this.toggle()}\"\n >\n ☰\n </button>\n <div\n class=\"${getSidebarBackdropClasses()}\"\n data-sp-sidebar-backdrop\n @click=\"${() => this.close()}\"\n ></div>\n <aside\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n class=\"${this.sidebarClasses}\"\n data-sp-sidebar-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </aside>`\n }\n}\n\nexport function defineSpectreSidebar(\n tagName = 'sp-sidebar'\n): typeof SpectreSidebarElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreSidebarElement\n }\n\n customElements.define(tagName, SpectreSidebarElement)\n return SpectreSidebarElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport { hasMeaningfulContent } from '../../utils/dom'\nimport {\n isToastVariant,\n normalizeInt,\n type SpectreToastVariant\n} from '../../utils/form'\n\nimport { getToastClasses, getToastIconClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreToastProps {\n ariaLabel?: string | null\n autoDismiss?: number | undefined\n dismissed?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n title?: string | null | undefined\n variant?: SpectreToastVariant | undefined\n}\n\nexport class SpectreToastElement\n extends SpectreBaseElement\n implements SpectreToastProps\n{\n static properties = {\n autoDismiss: { attribute: 'auto-dismiss', type: Number },\n dismissed: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n autoDismiss: number | undefined\n dismissed: boolean | undefined = false\n fullWidth: boolean | undefined = false\n variant: SpectreToastVariant | undefined = 'info'\n\n private iconContent: Node[] = []\n private bodyContent: Node[] = []\n private contentObserver?: MutationObserver | undefined\n private autoDismissTimer?: ReturnType<typeof setTimeout> | undefined\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 private isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return (\n el.hasAttribute('data-sp-toast-native') ||\n el.hasAttribute('data-sp-toast-icon')\n )\n }\n\n private syncProjectedContent(): boolean {\n const nextIconContent: Node[] = []\n const nextBodyContent: Node[] = []\n\n this.childNodes.forEach((node) => {\n if (this.isInternalNode(node)) {\n return\n }\n const isIconSlot =\n node.nodeType === Node.ELEMENT_NODE &&\n (node as Element).getAttribute('slot') === 'icon'\n if (isIconSlot) {\n nextIconContent.push(node)\n } else {\n nextBodyContent.push(node)\n }\n })\n\n const changed =\n nextIconContent.length !== this.iconContent.length ||\n nextIconContent.some((n, i) => n !== this.iconContent[i]) ||\n nextBodyContent.length !== this.bodyContent.length ||\n nextBodyContent.some((n, i) => n !== this.bodyContent[i])\n\n if (changed) {\n this.iconContent = nextIconContent\n this.bodyContent = nextBodyContent\n }\n\n return changed\n }\n\n private get hasIconContent(): boolean {\n return hasMeaningfulContent(this.iconContent)\n }\n\n private get hasBodyContent(): boolean {\n return hasMeaningfulContent(this.bodyContent)\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 this.clearAutoDismissTimer()\n super.disconnectedCallback()\n }\n\n protected override update(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n this.stopContentObserver()\n super.update(changedProperties)\n this.startContentObserver()\n }\n\n private startContentObserver(): void {\n if (this.contentObserver) {\n return\n }\n this.contentObserver = new MutationObserver(() => {\n if (this.syncProjectedContent()) {\n this.requestUpdate()\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 protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('dismissed') && this.dismissed == null) {\n this.dismissed = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isToastVariant(this.variant))\n ) {\n this.variant = 'info'\n }\n if (changedProperties.has('autoDismiss')) {\n this.autoDismiss = normalizeInt(this.autoDismiss, undefined, 0)\n }\n }\n\n protected override updated(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n super.updated(changedProperties)\n\n if (\n changedProperties.has('dismissed') ||\n changedProperties.has('autoDismiss')\n ) {\n this.clearAutoDismissTimer()\n if (!this.dismissed && this.autoDismiss) {\n this.autoDismissTimer = setTimeout(() => {\n this.dismiss()\n }, this.autoDismiss)\n }\n }\n }\n\n private clearAutoDismissTimer(): void {\n if (this.autoDismissTimer) {\n clearTimeout(this.autoDismissTimer)\n this.autoDismissTimer = undefined\n }\n }\n\n show(): void {\n if (!this.dismissed) {\n return\n }\n this.dismissed = false\n this.dispatchEvent(new CustomEvent('sp-show', { bubbles: true }))\n }\n\n dismiss(): void {\n if (this.dismissed) {\n return\n }\n this.dismissed = true\n this.dispatchEvent(new CustomEvent('sp-dismiss', { bubbles: true }))\n }\n\n private get toastClasses(): string {\n return getToastClasses({\n variant: this.variant as SpectreToastVariant,\n dismissed: this.dismissed ?? false,\n fullWidth: this.fullWidth ?? false\n })\n }\n\n private get iconClasses(): string {\n return getToastIconClasses({ variant: this.variant as SpectreToastVariant })\n }\n\n override render() {\n return html`<div\n aria-atomic=\"true\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-live=\"polite\"\n class=\"${this.toastClasses}\"\n data-sp-toast-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"status\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${\n this.hasIconContent\n ? html`<div class=\"${this.iconClasses}\" data-sp-toast-icon>\n ${this.iconContent}\n </div>`\n : nothing\n }\n ${this.hasBodyContent ? this.bodyContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreToast(\n tagName = 'sp-toast'\n): typeof SpectreToastElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreToastElement\n }\n\n customElements.define(tagName, SpectreToastElement)\n return SpectreToastElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport { hasMeaningfulContent } from '../../utils/dom'\nimport {\n isTooltipPlacement,\n type SpectreTooltipPlacement\n} from '../../utils/form'\n\nimport { getTooltipClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreTooltipProps {\n ariaLabel?: string | null\n id?: string | null | undefined\n placement?: SpectreTooltipPlacement | undefined\n title?: string | null | undefined\n visible?: boolean | undefined\n}\n\nexport class SpectreTooltipElement\n extends SpectreBaseElement\n implements SpectreTooltipProps\n{\n static properties = {\n placement: { type: String, reflect: true },\n visible: { type: Boolean, reflect: true }\n }\n\n placement: SpectreTooltipPlacement | undefined = 'top'\n visible: boolean | undefined = false\n\n private triggerContent: Node[] = []\n private tooltipContent: Node[] = []\n private contentObserver?: MutationObserver | undefined\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 private isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return (\n el.hasAttribute('data-sp-tooltip-native') ||\n el.hasAttribute('data-sp-tooltip-trigger')\n )\n }\n\n private syncProjectedContent(): boolean {\n const nextTooltipContent: Node[] = []\n const nextTriggerContent: Node[] = []\n\n this.childNodes.forEach((node) => {\n if (this.isInternalNode(node)) {\n return\n }\n const isTooltipSlot =\n node.nodeType === Node.ELEMENT_NODE &&\n (node as Element).getAttribute('slot') === 'tooltip'\n if (isTooltipSlot) {\n nextTooltipContent.push(node)\n } else {\n nextTriggerContent.push(node)\n }\n })\n\n const changed =\n nextTooltipContent.length !== this.tooltipContent.length ||\n nextTooltipContent.some((n, i) => n !== this.tooltipContent[i]) ||\n nextTriggerContent.length !== this.triggerContent.length ||\n nextTriggerContent.some((n, i) => n !== this.triggerContent[i])\n\n if (changed) {\n this.tooltipContent = nextTooltipContent\n this.triggerContent = nextTriggerContent\n }\n\n return changed\n }\n\n private get hasTooltipContent(): boolean {\n return hasMeaningfulContent(this.tooltipContent)\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n this.syncProjectedContent()\n this.startContentObserver()\n this.style.position ||= 'relative'\n this.style.display ||= 'inline-block'\n }\n\n override disconnectedCallback(): void {\n this.stopContentObserver()\n super.disconnectedCallback()\n }\n\n protected override update(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n this.stopContentObserver()\n super.update(changedProperties)\n this.startContentObserver()\n }\n\n private startContentObserver(): void {\n if (this.contentObserver) {\n return\n }\n this.contentObserver = new MutationObserver(() => {\n if (this.syncProjectedContent()) {\n this.requestUpdate()\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 protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (\n changedProperties.has('placement') &&\n (this.placement == null || !isTooltipPlacement(this.placement))\n ) {\n this.placement = 'top'\n }\n if (changedProperties.has('visible') && this.visible == null) {\n this.visible = false\n }\n }\n\n private show(): void {\n if (this.visible) {\n return\n }\n this.visible = true\n this.dispatchEvent(new CustomEvent('sp-show', { bubbles: true }))\n }\n\n private hide(): void {\n if (!this.visible) {\n return\n }\n this.visible = false\n this.dispatchEvent(new CustomEvent('sp-hide', { bubbles: true }))\n }\n\n private get tooltipClasses(): string {\n return getTooltipClasses({\n placement: this.placement as SpectreTooltipPlacement,\n visible: this.visible ?? false\n })\n }\n\n override render() {\n return html`<span\n data-sp-tooltip-trigger\n @focusin=\"${() => this.show()}\"\n @focusout=\"${() => this.hide()}\"\n @mouseenter=\"${() => this.show()}\"\n @mouseleave=\"${() => this.hide()}\"\n >\n ${this.triggerContent}\n </span>\n <span\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n class=\"${this.tooltipClasses}\"\n data-sp-tooltip-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"tooltip\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasTooltipContent ? this.tooltipContent : nothing}\n </span>`\n }\n}\n\nexport function defineSpectreTooltip(\n tagName = 'sp-tooltip'\n): typeof SpectreTooltipElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreTooltipElement\n }\n\n customElements.define(tagName, SpectreTooltipElement)\n return SpectreTooltipElement\n}\n","export * from './components'\n\nimport { defineSpectreButton } from './components/button'\nimport { defineSpectreInput } from './components/input'\nimport { defineSpectreTextarea } from './components/textarea'\nimport { defineSpectreSelect } from './components/select'\nimport { defineSpectreCheckbox } from './components/checkbox'\nimport { defineSpectreRadio } from './components/radio'\nimport { defineSpectreLabel } from './components/label'\nimport { defineSpectreFieldset } from './components/fieldset'\nimport { defineSpectreBadge } from './components/badge'\nimport { defineSpectreCard } from './components/card'\nimport { defineSpectreIconBox } from './components/icon-box'\nimport { defineSpectreRating } from './components/rating'\nimport { defineSpectreTestimonial } from './components/testimonial'\nimport { defineSpectreAlert } from './components/alert'\nimport { defineSpectreAvatar } from './components/avatar'\nimport { defineSpectreSpinner } from './components/spinner'\nimport { defineSpectreTag } from './components/tag'\nimport { defineSpectrePricingCard } from './components/pricing-card'\nimport { defineSpectreContainer } from './components/container'\nimport { defineSpectreGrid } from './components/grid'\nimport { defineSpectreSection } from './components/section'\nimport { defineSpectreStack } from './components/stack'\nimport { defineSpectreDropdown } from './components/dropdown'\nimport { defineSpectreFooter } from './components/footer'\nimport { defineSpectreModal } from './components/modal'\nimport { defineSpectreNav } from './components/nav'\nimport { defineSpectreSidebar } from './components/sidebar'\nimport { defineSpectreToast } from './components/toast'\nimport { defineSpectreTooltip } from './components/tooltip'\n\nexport function defineSpectreComponents(): void {\n defineSpectreButton()\n defineSpectreInput()\n defineSpectreTextarea()\n defineSpectreSelect()\n defineSpectreCheckbox()\n defineSpectreRadio()\n defineSpectreLabel()\n defineSpectreFieldset()\n defineSpectreBadge()\n defineSpectreCard()\n defineSpectreIconBox()\n defineSpectreRating()\n defineSpectreTestimonial()\n defineSpectreAlert()\n defineSpectreAvatar()\n defineSpectreSpinner()\n defineSpectreTag()\n defineSpectrePricingCard()\n defineSpectreContainer()\n defineSpectreGrid()\n defineSpectreSection()\n defineSpectreStack()\n defineSpectreDropdown()\n defineSpectreFooter()\n defineSpectreModal()\n defineSpectreNav()\n defineSpectreSidebar()\n defineSpectreToast()\n defineSpectreTooltip()\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/form.ts","../src/utils/base.ts","../src/utils/dom.ts","../src/utils/projectable.ts","../src/components/button/sp-button.ts","../src/components/input/sp-input.ts","../src/components/textarea/sp-textarea.ts","../src/components/select/sp-select.ts","../src/components/checkbox/sp-checkbox.ts","../src/components/radio/sp-radio.ts","../src/components/label/sp-label.ts","../src/components/fieldset/sp-fieldset.ts","../src/components/badge/sp-badge.ts","../src/components/card/sp-card.ts","../src/components/icon-box/sp-icon-box.ts","../src/components/rating/sp-rating.ts","../src/components/testimonial/sp-testimonial.ts","../src/components/alert/sp-alert.ts","../src/components/avatar/sp-avatar.ts","../src/components/spinner/sp-spinner.ts","../src/components/tag/sp-tag.ts","../src/components/pricing-card/sp-pricing-card.ts","../src/components/container/sp-container.ts","../src/components/grid/sp-grid.ts","../src/components/section/sp-section.ts","../src/components/stack/sp-stack.ts","../src/components/dropdown/sp-dropdown.ts","../src/components/footer/sp-footer.ts","../src/components/modal/sp-modal.ts","../src/components/nav/sp-nav.ts","../src/components/nav-item/sp-nav-item.ts","../src/components/sidebar/sp-sidebar.ts","../src/components/toast/sp-toast.ts","../src/components/tooltip/sp-tooltip.ts","../src/components/text/sp-text.ts","../src/index.ts"],"names":["html","ifDefined","live","nothing","getInputLabelClasses","getDropdownClasses","getDropdownMenuClasses","staticHtml"],"mappings":"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","file":"index.js","sourcesContent":["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 spectreAlertVariants = [\n 'info',\n 'success',\n 'warning',\n 'danger',\n 'neutral'\n] as const\n\nexport type SpectreAlertVariant = (typeof spectreAlertVariants)[number]\n\nexport function isAlertVariant(value: unknown): value is SpectreAlertVariant {\n return (spectreAlertVariants as readonly string[]).includes(value as string)\n}\n\nexport const spectreCardVariants = [\n 'elevated',\n 'flat',\n 'outline',\n 'ghost'\n] 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(\n value: unknown\n): value is SpectreIconBoxVariant {\n return (spectreIconBoxVariants as readonly string[]).includes(value as string)\n}\n\nexport const spectreTestimonialVariants = [\n 'elevated',\n 'flat',\n 'outline',\n 'ghost'\n] as const\n\nexport type SpectreTestimonialVariant =\n (typeof spectreTestimonialVariants)[number]\n\nexport function isTestimonialVariant(\n value: unknown\n): value is SpectreTestimonialVariant {\n return (spectreTestimonialVariants as readonly string[]).includes(\n value as string\n )\n}\n\nexport const spectreSpinnerVariants = [\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'danger',\n 'info',\n 'neutral',\n 'accent',\n 'cta'\n] as const\n\nexport type SpectreSpinnerVariant = (typeof spectreSpinnerVariants)[number]\n\nexport function isSpinnerVariant(\n value: unknown\n): value is SpectreSpinnerVariant {\n return (spectreSpinnerVariants as readonly string[]).includes(value as string)\n}\n\nexport const spectreTagVariants = [\n 'default',\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'danger',\n 'info',\n 'neutral',\n 'accent',\n 'cta',\n 'outline',\n 'ghost'\n] as const\n\nexport type SpectreTagVariant = (typeof spectreTagVariants)[number]\n\nexport function isTagVariant(value: unknown): value is SpectreTagVariant {\n return (spectreTagVariants as readonly string[]).includes(value as string)\n}\n\nexport const spectreAvatarSizes = ['xs', 'sm', 'md', 'lg', 'xl'] as const\n\nexport type SpectreAvatarSize = (typeof spectreAvatarSizes)[number]\n\nexport function isAvatarSize(value: unknown): value is SpectreAvatarSize {\n return (spectreAvatarSizes as readonly string[]).includes(value as string)\n}\n\nexport const spectreAvatarShapes = ['circle', 'square'] as const\n\nexport type SpectreAvatarShape = (typeof spectreAvatarShapes)[number]\n\nexport function isAvatarShape(value: unknown): value is SpectreAvatarShape {\n return (spectreAvatarShapes as readonly string[]).includes(value as string)\n}\n\nexport const spectreContainerMaxWidths = ['prose'] as const\n\nexport type SpectreContainerMaxWidth =\n (typeof spectreContainerMaxWidths)[number]\n\nexport function isContainerMaxWidth(\n value: unknown\n): value is SpectreContainerMaxWidth {\n return (spectreContainerMaxWidths as readonly string[]).includes(\n value as string\n )\n}\n\nexport const spectreGridColumns = [1, 2, 3, 4, 6, 12] as const\n\nexport type SpectreGridColumns = (typeof spectreGridColumns)[number]\n\nexport function isGridColumns(value: unknown): value is SpectreGridColumns {\n return (spectreGridColumns as readonly number[]).includes(value as number)\n}\n\nexport const spectreGridGaps = ['sm', 'md', 'lg'] as const\n\nexport type SpectreGridGap = (typeof spectreGridGaps)[number]\n\nexport function isGridGap(value: unknown): value is SpectreGridGap {\n return (spectreGridGaps as readonly string[]).includes(value as string)\n}\n\nexport const spectreStackDirections = ['vertical', 'horizontal'] as const\n\nexport type SpectreStackDirection = (typeof spectreStackDirections)[number]\n\nexport function isStackDirection(\n value: unknown\n): value is SpectreStackDirection {\n return (spectreStackDirections as readonly string[]).includes(\n value as string\n )\n}\n\nexport const spectreStackBases = ['sidebar'] as const\n\nexport type SpectreStackBasis = (typeof spectreStackBases)[number]\n\nexport function isStackBasis(value: unknown): value is SpectreStackBasis {\n return (spectreStackBases as readonly string[]).includes(value as string)\n}\n\nexport const spectreStackAligns = ['center', 'stretch'] as const\n\nexport type SpectreStackAlign = (typeof spectreStackAligns)[number]\n\nexport function isStackAlign(value: unknown): value is SpectreStackAlign {\n return (spectreStackAligns as readonly string[]).includes(value as string)\n}\n\nexport const spectreDropdownPlacements = [\n 'bottom-start',\n 'bottom-end',\n 'top-start',\n 'top-end'\n] as const\n\nexport type SpectreDropdownPlacement =\n (typeof spectreDropdownPlacements)[number]\n\nexport function isDropdownPlacement(\n value: unknown\n): value is SpectreDropdownPlacement {\n return (spectreDropdownPlacements as readonly string[]).includes(\n value as string\n )\n}\n\nexport const spectreToastVariants = [\n 'info',\n 'success',\n 'warning',\n 'danger'\n] as const\n\nexport type SpectreToastVariant = (typeof spectreToastVariants)[number]\n\nexport function isToastVariant(value: unknown): value is SpectreToastVariant {\n return (spectreToastVariants as readonly string[]).includes(value as string)\n}\n\nexport const spectreTooltipPlacements = [\n 'top',\n 'bottom',\n 'left',\n 'right'\n] as const\n\nexport type SpectreTooltipPlacement = (typeof spectreTooltipPlacements)[number]\n\nexport function isTooltipPlacement(\n value: unknown\n): value is SpectreTooltipPlacement {\n return (spectreTooltipPlacements as readonly string[]).includes(\n value as string\n )\n}\n\nexport const spectreTextSizes = [\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n '2xl',\n '3xl',\n '4xl',\n '5xl',\n '6xl'\n] as const\n\nexport type SpectreTextSize = (typeof spectreTextSizes)[number]\n\nexport function isTextSize(value: unknown): value is SpectreTextSize {\n return (spectreTextSizes as readonly string[]).includes(value as string)\n}\n\nexport const spectreTextVariants = [\n 'default',\n 'muted',\n 'subtle',\n 'meta',\n 'brand'\n] as const\n\nexport type SpectreTextVariant = (typeof spectreTextVariants)[number]\n\nexport function isTextVariant(value: unknown): value is SpectreTextVariant {\n return (spectreTextVariants as readonly string[]).includes(value as string)\n}\n\nexport const spectreTextFamilies = ['sans', 'serif', 'mono'] as const\n\nexport type SpectreTextFamily = (typeof spectreTextFamilies)[number]\n\nexport function isTextFamily(value: unknown): value is SpectreTextFamily {\n return (spectreTextFamilies as readonly string[]).includes(value as string)\n}\n\nexport const spectreTextLevels = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'span'\n] as const\n\nexport type SpectreTextLevel = (typeof spectreTextLevels)[number]\n\nexport function isTextLevel(value: unknown): value is SpectreTextLevel {\n return (spectreTextLevels 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 { 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 // Subclasses that expose `disabled`/`loading` properties get this disabled\n // calculation for free instead of redeclaring it per component.\n protected get isDisabled(): boolean {\n const self = this as unknown as { disabled?: boolean; loading?: boolean }\n return (self.disabled ?? false) || (self.loading ?? false)\n }\n\n // Subclasses get this for free instead of redeclaring it per component.\n protected get hasForwardedLabel(): boolean {\n return Boolean(this.forwardedAriaLabel || this.forwardedAriaLabelledBy)\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 { html, nothing, type TemplateResult } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isButtonType,\n isButtonVariant,\n isInputSize,\n type SpectreButtonType,\n type SpectreButtonVariant,\n type SpectreInputSize\n} from '../../utils/form'\n\nimport {\n getButtonClasses,\n getInputLabelClasses,\n type ButtonSize,\n type ButtonVariant\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreButtonProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n autofocus?: boolean | null | undefined\n disabled?: boolean | undefined\n form?: string | undefined\n fullWidth?: boolean | undefined\n iconOnly?: boolean | undefined\n id?: string | null | undefined\n label?: string | undefined\n loading?: boolean | undefined\n loadingLabel?: string | undefined\n name?: string | undefined\n pill?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n type?: SpectreButtonType | undefined\n variant?: SpectreButtonVariant | undefined\n value?: string | undefined\n}\n\nexport class SpectreButtonElement\n extends SpectreProjectableElement\n implements SpectreButtonProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n form: { type: String },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n iconOnly: { attribute: 'icon-only', type: Boolean, reflect: true },\n label: { type: String, reflect: true },\n loading: { type: Boolean, reflect: true },\n loadingLabel: { attribute: 'loading-label', type: String, reflect: true },\n name: { type: String, reflect: true },\n pill: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n type: { type: String, reflect: true },\n variant: { type: String, reflect: true },\n value: { type: String }\n }\n\n disabled: boolean | undefined = false\n form: string | undefined\n fullWidth: boolean | undefined = false\n iconOnly: boolean | undefined = false\n label: string | undefined\n loading: boolean | undefined = false\n loadingLabel: string | undefined = 'Loading'\n name: string | undefined\n pill: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\n type: SpectreButtonType | undefined = 'button'\n variant: SpectreButtonVariant | undefined = 'primary'\n value: string | undefined = ''\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 autofocus(): boolean {\n return super.autofocus\n }\n\n override set autofocus(value: boolean | undefined | null) {\n super.autofocus = value\n }\n\n protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-button-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 (\n el.hasAttribute('data-sp-button-native') ||\n el.hasAttribute('data-sp-button-loading-label') ||\n el.hasAttribute('data-sp-button-label-fallback')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): 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('iconOnly') && this.iconOnly == null) {\n this.iconOnly = 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 (\n changedProperties.has('variant') &&\n (this.variant == null || !isButtonVariant(this.variant))\n ) {\n this.variant = 'primary'\n }\n\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n\n if (\n changedProperties.has('type') &&\n (this.type == null || !isButtonType(this.type))\n ) {\n this.type = 'button'\n }\n\n if (changedProperties.has('loadingLabel')) {\n if (this.loadingLabel == null || this.loadingLabel.trim() === '') {\n this.loadingLabel = 'Loading'\n }\n }\n\n if (changedProperties.has('value') && this.value == null) {\n this.value = ''\n }\n }\n\n private get buttonClasses(): string {\n return getButtonClasses({\n disabled: this.isDisabled,\n fullWidth: this.fullWidth ?? false,\n iconOnly: this.iconOnly ?? false,\n loading: this.loading ?? false,\n pill: this.pill ?? false,\n size: this.size as ButtonSize,\n variant: this.variant as ButtonVariant\n })\n }\n\n private get visibleLabelFallback(): string | undefined {\n const trimmedLabel = this.label?.trim()\n return trimmedLabel ? trimmedLabel : undefined\n }\n\n override focus(options?: FocusOptions): void {\n ;(this.getContentContainer() as HTMLButtonElement | null)?.focus(options)\n }\n\n override blur(): void {\n ;(this.getContentContainer() as HTMLButtonElement | null)?.blur()\n }\n\n private renderButtonContent(): TemplateResult | Node[] | typeof nothing {\n if (this.loading) {\n return html`<span\n class=\"${getInputLabelClasses({ disabled: this.isDisabled })}\"\n data-sp-button-loading-label\n >${this.loadingLabel}</span\n >`\n }\n\n if (this.hasProjectedContent) {\n return this.projectedContent\n }\n\n return this.visibleLabelFallback\n ? html`<span\n class=\"${getInputLabelClasses({ disabled: this.isDisabled })}\"\n data-sp-button-label-fallback\n >${this.visibleLabelFallback}</span\n >`\n : nothing\n }\n\n override render() {\n return html`<button\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${this.buttonClasses}\"\n data-sp-button-native\n ?disabled=\"${this.isDisabled}\"\n form=\"${ifDefined(this.form || undefined)}\"\n id=\"${ifDefined(this.id || undefined)}\"\n name=\"${ifDefined(this.name || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n type=\"${this.type}\"\n value=\"${ifDefined(this.value)}\"\n >\n ${this.renderButtonContent()}\n </button>`\n }\n}\n\nexport function defineSpectreButton(\n tagName = 'sp-button'\n): typeof SpectreButtonElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreButtonElement\n }\n\n customElements.define(tagName, SpectreButtonElement)\n return SpectreButtonElement\n}\n","import { html } from 'lit'\nimport { live } from 'lit/directives/live.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport {\n spectreInputSizes,\n isInputSize,\n type SpectreInputSize,\n spectreInputTypes,\n isInputType,\n type SpectreInputType,\n normalizeInt\n} from '../../utils/form'\n\nimport { getInputClasses } from '@phcdevworks/spectre-ui'\n\nexport {\n spectreInputSizes,\n type SpectreInputSize,\n spectreInputTypes,\n type SpectreInputType\n}\n\nexport interface SpectreInputProps {\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 enterkeyhint?: string | undefined\n form?: string | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n inputmode?: string | undefined\n invalid?: boolean | undefined\n list?: string | undefined\n loading?: boolean | undefined\n max?: string | undefined\n maxlength?: number | undefined\n min?: string | undefined\n minlength?: number | undefined\n name?: string | undefined\n pattern?: string | undefined\n pill?: boolean | undefined\n placeholder?: string | undefined\n readonly?: boolean | undefined\n required?: boolean | undefined\n size?: SpectreInputSize | undefined\n spellcheck?: boolean | null | undefined\n step?: string | undefined\n success?: boolean | undefined\n title?: string | null | undefined\n type?: SpectreInputType | undefined\n value?: string | undefined\n}\n\nexport class SpectreInputElement\n extends SpectreBaseElement\n implements SpectreInputProps\n{\n static properties = {\n autocomplete: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n enterkeyhint: { type: String, reflect: true },\n form: { type: String },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n inputmode: { type: String, reflect: true },\n invalid: { type: Boolean, reflect: true },\n list: { type: String, reflect: true },\n loading: { type: Boolean, reflect: true },\n max: { type: String, reflect: true },\n maxlength: { type: Number, reflect: true },\n min: { type: String, reflect: true },\n minlength: { type: Number, reflect: true },\n name: { type: String, reflect: true },\n pattern: { type: String, reflect: true },\n pill: { type: Boolean, reflect: true },\n placeholder: { type: String, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n step: { type: String, reflect: true },\n success: { type: Boolean, reflect: true },\n type: { type: String, reflect: true },\n value: { type: String }\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 autocomplete: string | undefined\n disabled: boolean | undefined = false\n enterkeyhint: string | undefined\n form: string | undefined\n fullWidth: 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 inputmode: string | undefined\n invalid: boolean | undefined = false\n list: string | undefined\n loading: boolean | undefined = false\n max: string | undefined\n maxlength: number | undefined\n min: string | undefined\n minlength: number | undefined\n name: string | undefined\n pattern: string | undefined\n pill: boolean | undefined = false\n placeholder: string | undefined\n readonly: boolean | undefined = false\n required: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\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 step: string | undefined\n success: boolean | undefined = false\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 type: SpectreInputType | undefined = 'text'\n value: string | undefined = ''\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): 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('readonly') && this.readonly == null) {\n this.readonly = 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 (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n\n if (\n changedProperties.has('type') &&\n (this.type == null || !isInputType(this.type))\n ) {\n this.type = 'text'\n }\n\n if (changedProperties.has('value') && this.value == null) {\n this.value = ''\n }\n\n if (changedProperties.has('maxlength')) {\n this.maxlength = normalizeInt(this.maxlength, undefined)\n }\n\n if (changedProperties.has('minlength')) {\n this.minlength = normalizeInt(this.minlength, undefined)\n }\n }\n\n private get inputClasses(): 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 nativeInput(): HTMLInputElement | null {\n return this.querySelector('[data-sp-input-native]')\n }\n\n private handleInput(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.value = input.value\n }\n\n private handleChange(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.value = input.value\n }\n\n override focus(options?: FocusOptions): void {\n this.nativeInput?.focus(options)\n }\n\n override blur(): void {\n this.nativeInput?.blur()\n }\n\n override render() {\n return html`<input\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.inputClasses}\"\n data-sp-input-native\n ?disabled=\"${this.isDisabled}\"\n enterkeyhint=\"${ifDefined(this.enterkeyhint || undefined)}\"\n form=\"${ifDefined(this.form || undefined)}\"\n ?readonly=\"${this.readonly}\"\n ?required=\"${this.required}\"\n id=\"${ifDefined(this.id || undefined)}\"\n inputmode=\"${ifDefined(this.inputmode || undefined)}\"\n list=\"${ifDefined(this.list || undefined)}\"\n max=\"${ifDefined(this.max || undefined)}\"\n maxlength=\"${ifDefined(this.maxlength)}\"\n min=\"${ifDefined(this.min || undefined)}\"\n minlength=\"${ifDefined(this.minlength)}\"\n name=\"${ifDefined(this.name || undefined)}\"\n pattern=\"${ifDefined(this.pattern || undefined)}\"\n placeholder=\"${ifDefined(this.placeholder || undefined)}\"\n spellcheck=\"${ifDefined(this.getAttribute('spellcheck') ?? undefined)}\"\n step=\"${ifDefined(this.step || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n type=\"${this.type}\"\n .value=\"${live(this.value)}\"\n @change=\"${this.handleChange}\"\n @input=\"${this.handleInput}\"\n />`\n }\n}\n\nexport function defineSpectreInput(\n tagName = 'sp-input'\n): typeof SpectreInputElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreInputElement\n }\n\n customElements.define(tagName, SpectreInputElement)\n return SpectreInputElement\n}\n","import { html } from 'lit'\nimport { live } from 'lit/directives/live.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport {\n isInputSize,\n type SpectreInputSize,\n normalizeInt\n} from '../../utils/form'\n\nimport { getTextareaClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreTextareaProps {\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 enterkeyhint?: string | undefined\n form?: string | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n inputmode?: string | undefined\n invalid?: boolean | undefined\n loading?: boolean | undefined\n maxlength?: number | undefined\n minlength?: number | undefined\n name?: string | undefined\n pill?: boolean | undefined\n placeholder?: string | undefined\n readonly?: boolean | undefined\n required?: boolean | undefined\n rows?: number | 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\nconst DEFAULT_ROWS = 2\n\nexport class SpectreTextareaElement\n extends SpectreBaseElement\n implements SpectreTextareaProps\n{\n static properties = {\n autocomplete: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n enterkeyhint: { type: String, reflect: true },\n form: { type: String },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n inputmode: { type: String, reflect: true },\n invalid: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n maxlength: { type: Number, reflect: true },\n minlength: { type: Number, reflect: true },\n name: { type: String, reflect: true },\n pill: { type: Boolean, reflect: true },\n placeholder: { type: String, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n rows: { type: Number, reflect: true },\n size: { type: String, reflect: true },\n success: { type: Boolean, reflect: true },\n value: { type: String }\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 autocomplete: string | undefined\n disabled: boolean | undefined = false\n enterkeyhint: string | undefined\n form: string | undefined\n fullWidth: 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 inputmode: string | undefined\n invalid: boolean | undefined = false\n loading: boolean | undefined = false\n maxlength: number | undefined\n minlength: number | undefined\n name: string | undefined\n pill: boolean | undefined = false\n placeholder: string | undefined\n readonly: boolean | undefined = false\n required: boolean | undefined = false\n rows: number | undefined = DEFAULT_ROWS\n size: SpectreInputSize | undefined = 'md'\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 success: boolean | undefined = false\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 willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): 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('readonly') && this.readonly == null) {\n this.readonly = 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 (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n\n if (changedProperties.has('rows')) {\n this.rows = normalizeInt(this.rows, DEFAULT_ROWS, 1) as number\n }\n\n if (changedProperties.has('value') && this.value == null) {\n this.value = ''\n }\n\n if (changedProperties.has('maxlength')) {\n this.maxlength = normalizeInt(this.maxlength, undefined)\n }\n\n if (changedProperties.has('minlength')) {\n this.minlength = normalizeInt(this.minlength, undefined)\n }\n }\n\n private get textareaClasses(): string {\n return getTextareaClasses({\n fullWidth: this.fullWidth ?? false,\n pill: this.pill ?? false,\n size: this.size as SpectreInputSize,\n disabled: this.disabled ?? false,\n loading: this.loading ?? false,\n state: this.invalid ? 'invalid' : this.success ? 'success' : 'default'\n })\n }\n\n private get nativeTextarea(): HTMLTextAreaElement | null {\n return this.querySelector('[data-sp-textarea-native]')\n }\n\n private handleInput(event: Event): void {\n const textarea = event.currentTarget as HTMLTextAreaElement\n this.value = textarea.value\n }\n\n private handleChange(event: Event): void {\n const textarea = event.currentTarget as HTMLTextAreaElement\n this.value = textarea.value\n }\n\n override focus(options?: FocusOptions): void {\n this.nativeTextarea?.focus(options)\n }\n\n override blur(): void {\n this.nativeTextarea?.blur()\n }\n\n override render() {\n return html`<textarea\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.textareaClasses}\"\n data-sp-textarea-native\n ?disabled=\"${this.isDisabled}\"\n enterkeyhint=\"${ifDefined(this.enterkeyhint || undefined)}\"\n form=\"${ifDefined(this.form || undefined)}\"\n inputmode=\"${ifDefined(this.inputmode || undefined)}\"\n ?readonly=\"${this.readonly}\"\n ?required=\"${this.required}\"\n id=\"${ifDefined(this.id || undefined)}\"\n maxlength=\"${ifDefined(this.maxlength)}\"\n minlength=\"${ifDefined(this.minlength)}\"\n name=\"${ifDefined(this.name || undefined)}\"\n placeholder=\"${ifDefined(this.placeholder || undefined)}\"\n rows=\"${this.rows}\"\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 ></textarea>`\n }\n}\n\nexport function defineSpectreTextarea(\n tagName = 'sp-textarea'\n): typeof SpectreTextareaElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreTextareaElement\n }\n\n customElements.define(tagName, SpectreTextareaElement)\n return SpectreTextareaElement\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 { getSelectClasses } 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\n extends SpectreProjectableElement\n implements SpectreSelectProps\n{\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(\n changedProperties: Map<PropertyKey, unknown>\n ): 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 (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n\n if (changedProperties.has('value') && this.value == null) {\n this.value = ''\n }\n }\n\n protected override updated(\n changedProperties: Map<PropertyKey, unknown>\n ): 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 !== '' ||\n oldValue !== undefined ||\n 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 getSelectClasses({\n fullWidth: this.fullWidth ?? false,\n pill: this.pill ?? false,\n size: this.size as SpectreInputSize,\n disabled: this.disabled ?? false,\n loading: this.loading ?? false,\n state: this.invalid ? 'invalid' : this.success ? 'success' : 'default'\n })\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(\n tagName = 'sp-select'\n): 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","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'\n\nimport { getCheckboxClasses, getInputLabelClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreCheckboxProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n autofocus?: boolean | null | undefined\n checked?: boolean | undefined\n disabled?: boolean | undefined\n form?: string | undefined\n id?: string | null | undefined\n invalid?: boolean | undefined\n loading?: boolean | undefined\n label?: string | undefined\n name?: string | undefined\n required?: boolean | undefined\n success?: boolean | undefined\n title?: string | null | undefined\n value?: string | undefined\n}\n\nexport class SpectreCheckboxElement\n extends SpectreProjectableElement\n implements SpectreCheckboxProps\n{\n static properties = {\n checked: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n form: { type: String },\n invalid: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n label: { type: String, reflect: true },\n name: { type: String, reflect: true },\n required: { type: Boolean, reflect: true },\n success: { type: Boolean, reflect: true },\n value: { type: String }\n }\n\n checked: boolean | undefined = false\n disabled: boolean | undefined = false\n form: string | undefined\n invalid: boolean | undefined = false\n loading: boolean | undefined = false\n label: string | undefined\n name: string | undefined\n required: boolean | undefined = false\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 autofocus(): boolean {\n return super.autofocus\n }\n\n override set autofocus(value: boolean | undefined | null) {\n super.autofocus = value\n }\n\n value: string | undefined = 'on'\n\n protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-checkbox-label]')\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 (\n el.hasAttribute('data-sp-checkbox-label') ||\n el.hasAttribute('data-sp-checkbox-native') ||\n el.hasAttribute('data-sp-checkbox-label-fallback') ||\n el.hasAttribute('data-sp-checkbox-indicator')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('checked') && this.checked == null) {\n this.checked = false\n }\n\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = 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('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('value') && this.value == null) {\n this.value = 'on'\n }\n }\n\n private get nativeInput(): HTMLInputElement | null {\n return this.querySelector('[data-sp-checkbox-native]')\n }\n\n private get visibleLabelFallback(): string | undefined {\n const trimmedLabel = this.label?.trim()\n return trimmedLabel ? trimmedLabel : undefined\n }\n\n private handleInput(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.checked = input.checked\n }\n\n private handleChange(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.checked = input.checked\n }\n\n override focus(options?: FocusOptions): void {\n this.nativeInput?.focus(options)\n }\n\n override blur(): void {\n this.nativeInput?.blur()\n }\n\n override render() {\n const labelContent = this.hasProjectedContent\n ? this.projectedContent\n : this.visibleLabelFallback\n ? html`<span\n class=\"${getInputLabelClasses({ disabled: this.isDisabled })}\"\n data-sp-checkbox-label-fallback\n >${this.visibleLabelFallback}</span\n >`\n : nothing\n\n return html`<label data-sp-checkbox-label>\n <input\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 ?autofocus=\"${this.autofocus}\"\n data-sp-checkbox-native\n .checked=\"${live(this.checked)}\"\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 type=\"checkbox\"\n value=\"${ifDefined(this.value)}\"\n @change=\"${this.handleChange}\"\n @input=\"${this.handleInput}\"\n />\n <span\n class=\"${getCheckboxClasses({ checked: this.checked ?? false, disabled: this.isDisabled })}\"\n data-sp-checkbox-indicator\n ></span>\n ${labelContent}\n </label>`\n }\n}\n\nexport function defineSpectreCheckbox(\n tagName = 'sp-checkbox'\n): typeof SpectreCheckboxElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreCheckboxElement\n }\n\n customElements.define(tagName, SpectreCheckboxElement)\n return SpectreCheckboxElement\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'\n\nimport { getInputLabelClasses, getRadioClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreRadioProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n autofocus?: boolean | null | undefined\n checked?: boolean | undefined\n disabled?: boolean | undefined\n form?: string | undefined\n id?: string | null | undefined\n invalid?: boolean | undefined\n loading?: boolean | undefined\n label?: string | undefined\n name?: string | undefined\n required?: boolean | undefined\n success?: boolean | undefined\n title?: string | null | undefined\n value?: string | undefined\n}\n\nexport class SpectreRadioElement\n extends SpectreProjectableElement\n implements SpectreRadioProps\n{\n static properties = {\n checked: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n form: { type: String },\n invalid: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n label: { type: String, reflect: true },\n name: { type: String, reflect: true },\n required: { type: Boolean, reflect: true },\n success: { type: Boolean, reflect: true },\n value: { type: String }\n }\n\n checked: boolean | undefined = false\n disabled: boolean | undefined = false\n form: string | undefined\n invalid: boolean | undefined = false\n loading: boolean | undefined = false\n label: string | undefined\n name: string | undefined\n required: boolean | undefined = false\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 autofocus(): boolean {\n return super.autofocus\n }\n\n override set autofocus(value: boolean | undefined | null) {\n super.autofocus = value\n }\n\n value: string | undefined = 'on'\n\n protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-radio-label]')\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 (\n el.hasAttribute('data-sp-radio-label') ||\n el.hasAttribute('data-sp-radio-native') ||\n el.hasAttribute('data-sp-radio-label-fallback') ||\n el.hasAttribute('data-sp-radio-indicator')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('checked') && this.checked == null) {\n this.checked = false\n }\n\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = 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('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('value') && this.value == null) {\n this.value = 'on'\n }\n }\n\n private get nativeInput(): HTMLInputElement | null {\n return this.querySelector('[data-sp-radio-native]')\n }\n\n private get visibleLabelFallback(): string | undefined {\n const trimmedLabel = this.label?.trim()\n return trimmedLabel ? trimmedLabel : undefined\n }\n\n private handleInput(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.checked = input.checked\n }\n\n private handleChange(event: Event): void {\n const input = event.currentTarget as HTMLInputElement\n this.checked = input.checked\n }\n\n protected override updated(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n super.updated(changedProperties)\n\n if (\n (changedProperties.has('checked') || changedProperties.has('name')) &&\n this.checked &&\n this.name\n ) {\n this.syncGroup()\n }\n }\n\n private syncGroup(): void {\n if (!this.name || !this.checked) {\n return\n }\n\n const root = this.getRootNode() as ShadowRoot | Document\n const radios = root.querySelectorAll(\n 'sp-radio'\n ) as NodeListOf<SpectreRadioElement>\n\n radios.forEach((radio) => {\n if (radio !== this && radio.name === this.name && radio.checked) {\n radio.checked = false\n }\n })\n }\n\n override focus(options?: FocusOptions): void {\n this.nativeInput?.focus(options)\n }\n\n override blur(): void {\n this.nativeInput?.blur()\n }\n\n override render() {\n const labelContent = this.hasProjectedContent\n ? this.projectedContent\n : this.visibleLabelFallback\n ? html`<span\n class=\"${getInputLabelClasses({ disabled: this.isDisabled })}\"\n data-sp-radio-label-fallback\n >${this.visibleLabelFallback}</span\n >`\n : nothing\n\n return html`<label data-sp-radio-label>\n <input\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 ?autofocus=\"${this.autofocus}\"\n data-sp-radio-native\n .checked=\"${live(this.checked)}\"\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 type=\"radio\"\n value=\"${ifDefined(this.value)}\"\n @change=\"${this.handleChange}\"\n @input=\"${this.handleInput}\"\n />\n <span\n class=\"${getRadioClasses({ checked: this.checked ?? false, disabled: this.isDisabled })}\"\n data-sp-radio-indicator\n ></span>\n ${labelContent}\n </label>`\n }\n}\n\nexport function defineSpectreRadio(\n tagName = 'sp-radio'\n): typeof SpectreRadioElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreRadioElement\n }\n\n customElements.define(tagName, SpectreRadioElement)\n return SpectreRadioElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getLabelClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreLabelProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n id?: string | null | undefined\n htmlFor?: string | undefined\n required?: boolean | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreLabelElement\n extends SpectreProjectableElement\n implements SpectreLabelProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n htmlFor: { attribute: 'for', type: String, reflect: true },\n required: { type: Boolean, reflect: true }\n }\n\n disabled: boolean | undefined = false\n htmlFor: string | undefined\n required: boolean | undefined = false\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n\n if (changedProperties.has('required') && this.required == null) {\n this.required = false\n }\n }\n\n protected override get isDisabled(): boolean {\n return this.disabled ?? false\n }\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-label-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-label-native')\n }\n\n override focus(options?: FocusOptions): void {\n ;(this.getContentContainer() as HTMLLabelElement | null)?.focus(options)\n }\n\n override blur(): void {\n ;(this.getContentContainer() as HTMLLabelElement | null)?.blur()\n }\n\n override render() {\n return html`<label\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${getLabelClasses({ disabled: this.isDisabled, required: this.required ?? false })}\"\n data-sp-label-native\n for=\"${ifDefined(this.htmlFor || undefined)}\"\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </label>`\n }\n}\n\nexport function defineSpectreLabel(\n tagName = 'sp-label'\n): typeof SpectreLabelElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreLabelElement\n }\n\n customElements.define(tagName, SpectreLabelElement)\n return SpectreLabelElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getFieldsetClasses, getFieldsetLegendClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreFieldsetProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n autocapitalize?: string | null | undefined\n autofocus?: boolean | null | undefined\n disabled?: boolean | undefined\n form?: string | undefined\n id?: string | null | undefined\n invalid?: boolean | undefined\n legend?: string | undefined\n loading?: boolean | undefined\n name?: string | undefined\n spellcheck?: boolean | null | undefined\n success?: boolean | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreFieldsetElement\n extends SpectreProjectableElement\n implements SpectreFieldsetProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n form: { type: String },\n invalid: { type: Boolean, reflect: true },\n legend: { type: String, reflect: true },\n loading: { type: Boolean, reflect: true },\n name: { type: String, reflect: true },\n success: { type: Boolean, reflect: true }\n }\n\n disabled: boolean | undefined = false\n form: string | undefined\n invalid: boolean | undefined = false\n legend: string | undefined\n loading: boolean | undefined = false\n name: string | undefined\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 private get visibleLegend(): string | undefined {\n const trimmedLegend = this.legend?.trim()\n return trimmedLegend ? trimmedLegend : undefined\n }\n\n protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-fieldset-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 (\n el.hasAttribute('data-sp-fieldset-native') ||\n el.hasAttribute('data-sp-fieldset-legend')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = 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('success') && this.success == null) {\n this.success = false\n }\n }\n\n override focus(options?: FocusOptions): void {\n ;(this.getContentContainer() as HTMLFieldSetElement | null)?.focus(options)\n }\n\n override blur(): void {\n ;(this.getContentContainer() as HTMLFieldSetElement | null)?.blur()\n }\n\n override render() {\n const legendClasses = getFieldsetLegendClasses()\n const legendContent = this.visibleLegend\n ? html`<legend class=\"${legendClasses}\" data-sp-fieldset-legend>\n ${this.visibleLegend}\n </legend>`\n : nothing\n\n return html`<fieldset\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 ?autofocus=\"${this.autofocus}\"\n class=\"${getFieldsetClasses({ disabled: this.isDisabled })}\"\n data-sp-fieldset-native\n ?disabled=\"${this.isDisabled}\"\n form=\"${ifDefined(this.form || undefined)}\"\n id=\"${ifDefined(this.id || undefined)}\"\n name=\"${ifDefined(this.name || undefined)}\"\n spellcheck=\"${ifDefined(this.getAttribute('spellcheck') ?? undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${legendContent}\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </fieldset>`\n }\n}\n\nexport function defineSpectreFieldset(\n tagName = 'sp-fieldset'\n): typeof SpectreFieldsetElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreFieldsetElement\n }\n\n customElements.define(tagName, SpectreFieldsetElement)\n return SpectreFieldsetElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isBadgeVariant,\n isInputSize,\n type SpectreBadgeVariant,\n type SpectreInputSize\n} from '../../utils/form'\n\nimport {\n getBadgeClasses,\n type BadgeVariant,\n type BadgeSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreBadgeProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n loading?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n variant?: SpectreBadgeVariant | undefined\n}\n\nexport class SpectreBadgeElement\n extends SpectreProjectableElement\n implements SpectreBadgeProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n fullWidth: boolean | undefined = false\n loading: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\n variant: SpectreBadgeVariant | undefined = 'primary'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-badge-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-badge-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isBadgeVariant(this.variant))\n ) {\n this.variant = 'primary'\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n }\n\n private get badgeClasses(): string {\n return getBadgeClasses({\n disabled: this.isDisabled,\n fullWidth: this.fullWidth ?? false,\n loading: this.loading ?? false,\n size: this.size as BadgeSize,\n variant: this.variant as BadgeVariant\n })\n }\n\n override render() {\n return html`<span\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.badgeClasses}\"\n data-sp-badge-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </span>`\n }\n}\n\nexport function defineSpectreBadge(\n tagName = 'sp-badge'\n): typeof SpectreBadgeElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreBadgeElement\n }\n\n customElements.define(tagName, SpectreBadgeElement)\n return SpectreBadgeElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport { isCardVariant, type SpectreCardVariant } from '../../utils/form'\n\nimport { getCardClasses, type CardVariant } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreCardProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n fullHeight?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n padded?: boolean | undefined\n title?: string | null | undefined\n variant?: SpectreCardVariant | undefined\n}\n\nexport class SpectreCardElement\n extends SpectreProjectableElement\n implements SpectreCardProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n fullHeight: { attribute: 'full-height', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n padded: { type: Boolean, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n fullHeight: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: boolean | undefined = false\n padded: boolean | undefined = true\n variant: SpectreCardVariant | undefined = 'elevated'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-card-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-card-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullHeight') && this.fullHeight == null) {\n this.fullHeight = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (changedProperties.has('padded') && this.padded == null) {\n this.padded = true\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isCardVariant(this.variant))\n ) {\n this.variant = 'elevated'\n }\n }\n\n private get cardClasses(): string {\n return getCardClasses({\n disabled: this.isDisabled,\n fullHeight: this.fullHeight ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false,\n padded: this.padded ?? true,\n variant: this.variant as CardVariant\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.cardClasses}\"\n data-sp-card-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreCard(\n tagName = 'sp-card'\n): typeof SpectreCardElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreCardElement\n }\n\n customElements.define(tagName, SpectreCardElement)\n return SpectreCardElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isIconBoxVariant,\n isInputSize,\n type SpectreIconBoxVariant,\n type SpectreInputSize\n} from '../../utils/form'\n\nimport {\n getIconBoxClasses,\n type IconBoxVariant,\n type IconBoxSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreIconBoxProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n pill?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n variant?: SpectreIconBoxVariant | undefined\n}\n\nexport class SpectreIconBoxElement\n extends SpectreProjectableElement\n implements SpectreIconBoxProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n pill: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n fullWidth: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: boolean | undefined = false\n pill: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\n variant: SpectreIconBoxVariant | undefined = 'primary'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-icon-box-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-icon-box-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (changedProperties.has('pill') && this.pill == null) {\n this.pill = false\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isIconBoxVariant(this.variant))\n ) {\n this.variant = 'primary'\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n }\n\n private get iconBoxClasses(): string {\n return getIconBoxClasses({\n disabled: this.isDisabled,\n fullWidth: this.fullWidth ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false,\n pill: this.pill ?? false,\n size: this.size as IconBoxSize,\n variant: this.variant as IconBoxVariant\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.iconBoxClasses}\"\n data-sp-icon-box-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreIconBox(\n tagName = 'sp-icon-box'\n): typeof SpectreIconBoxElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreIconBoxElement\n }\n\n customElements.define(tagName, SpectreIconBoxElement)\n return SpectreIconBoxElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport {\n isInputSize,\n normalizeInt,\n type SpectreInputSize\n} from '../../utils/form'\n\nimport {\n getRatingClasses,\n getRatingStarsClasses,\n getRatingStarClasses,\n getRatingTextClasses,\n type RatingSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreRatingProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n id?: string | null | undefined\n label?: string | undefined\n loading?: boolean | undefined\n max?: number | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n value?: number | undefined\n}\n\nexport class SpectreRatingElement\n extends SpectreBaseElement\n implements SpectreRatingProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n label: { type: String, reflect: true },\n loading: { type: Boolean, reflect: true },\n max: { type: Number, reflect: true },\n size: { type: String, reflect: true },\n value: { type: Number, reflect: true }\n }\n\n disabled: boolean | undefined = false\n label: string | undefined\n loading: boolean | undefined = false\n max: number | undefined = 5\n size: SpectreInputSize | undefined = 'md'\n value: number | undefined = 0\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 protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n if (changedProperties.has('max')) {\n this.max = normalizeInt(this.max, 5, 1) ?? 5\n }\n if (changedProperties.has('value')) {\n const safeMax = this.max ?? 5\n const normalized = normalizeInt(this.value, 0, 0)\n this.value = normalized == null ? 0 : Math.min(normalized, safeMax)\n }\n }\n\n private get ratingClasses(): string {\n return getRatingClasses({\n disabled: this.isDisabled,\n loading: this.loading ?? false,\n size: this.size as RatingSize\n })\n }\n\n private get effectiveMax(): number {\n return this.max ?? 5\n }\n\n private get effectiveValue(): number {\n return this.value ?? 0\n }\n\n private get computedAriaLabel(): string {\n const base = this.forwardedAriaLabel\n if (base) return base\n return `Rating: ${this.effectiveValue} out of ${this.effectiveMax}`\n }\n\n private renderStars() {\n const stars = []\n for (let i = 1; i <= this.effectiveMax; i++) {\n stars.push(\n html`<span\n class=\"${getRatingStarClasses(i <= this.effectiveValue)}\"\n ></span>`\n )\n }\n return stars\n }\n\n override render() {\n const trimmedLabel = this.label?.trim()\n\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${this.computedAriaLabel}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.ratingClasses}\"\n data-sp-rating-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"img\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n <div class=\"${getRatingStarsClasses()}\">${this.renderStars()}</div>\n ${\n trimmedLabel\n ? html`<span\n class=\"${getRatingTextClasses({ disabled: this.isDisabled })}\"\n >${trimmedLabel}</span\n >`\n : nothing\n }\n </div>`\n }\n}\n\nexport function defineSpectreRating(\n tagName = 'sp-rating'\n): typeof SpectreRatingElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreRatingElement\n }\n\n customElements.define(tagName, SpectreRatingElement)\n return SpectreRatingElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isTestimonialVariant,\n type SpectreTestimonialVariant\n} from '../../utils/form'\n\nimport {\n getTestimonialClasses,\n type TestimonialRecipeOptions\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreTestimonialProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n fullHeight?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n title?: string | null | undefined\n variant?: SpectreTestimonialVariant | undefined\n}\n\nexport class SpectreTestimonialElement\n extends SpectreProjectableElement\n implements SpectreTestimonialProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n fullHeight: { attribute: 'full-height', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n fullHeight: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: boolean | undefined = false\n variant: SpectreTestimonialVariant | undefined = 'elevated'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-testimonial-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-testimonial-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullHeight') && this.fullHeight == null) {\n this.fullHeight = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isTestimonialVariant(this.variant))\n ) {\n this.variant = 'elevated'\n }\n }\n\n private get testimonialClasses(): string {\n return getTestimonialClasses({\n disabled: this.isDisabled,\n fullHeight: this.fullHeight ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false,\n variant: this.variant as NonNullable<TestimonialRecipeOptions['variant']>\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.testimonialClasses}\"\n data-sp-testimonial-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreTestimonial(\n tagName = 'sp-testimonial'\n): typeof SpectreTestimonialElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreTestimonialElement\n }\n\n customElements.define(tagName, SpectreTestimonialElement)\n return SpectreTestimonialElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isAlertVariant,\n isInputSize,\n type SpectreAlertVariant,\n type SpectreInputSize\n} from '../../utils/form'\n\nimport {\n getAlertClasses,\n type AlertVariant,\n type AlertSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreAlertProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n dismissed?: boolean | undefined\n disabled?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n loading?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n variant?: SpectreAlertVariant | undefined\n}\n\nexport class SpectreAlertElement\n extends SpectreProjectableElement\n implements SpectreAlertProps\n{\n static properties = {\n dismissed: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n dismissed: boolean | undefined = false\n disabled: boolean | undefined = false\n fullWidth: boolean | undefined = false\n loading: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\n variant: SpectreAlertVariant | undefined = 'info'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-alert-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-alert-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('dismissed') && this.dismissed == null) {\n this.dismissed = false\n }\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isAlertVariant(this.variant))\n ) {\n this.variant = 'info'\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n }\n\n private get alertClasses(): string {\n return getAlertClasses({\n disabled: this.isDisabled,\n dismissed: this.dismissed ?? false,\n fullWidth: this.fullWidth ?? false,\n loading: this.loading ?? false,\n size: this.size as AlertSize,\n variant: this.variant as AlertVariant\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.alertClasses}\"\n data-sp-alert-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"alert\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreAlert(\n tagName = 'sp-alert'\n): typeof SpectreAlertElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreAlertElement\n }\n\n customElements.define(tagName, SpectreAlertElement)\n return SpectreAlertElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isAvatarShape,\n isAvatarSize,\n type SpectreAvatarShape,\n type SpectreAvatarSize\n} from '../../utils/form'\n\nimport {\n getAvatarClasses,\n type AvatarShape,\n type AvatarSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreAvatarProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n placeholder?: boolean | undefined\n shape?: SpectreAvatarShape | undefined\n size?: SpectreAvatarSize | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreAvatarElement\n extends SpectreProjectableElement\n implements SpectreAvatarProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n placeholder: { type: Boolean, reflect: true },\n shape: { type: String, reflect: true },\n size: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n fullWidth: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: boolean | undefined = false\n placeholder: boolean | undefined = false\n shape: SpectreAvatarShape | undefined = 'circle'\n size: SpectreAvatarSize | undefined = 'md'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-avatar-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-avatar-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (changedProperties.has('placeholder') && this.placeholder == null) {\n this.placeholder = false\n }\n if (\n changedProperties.has('shape') &&\n (this.shape == null || !isAvatarShape(this.shape))\n ) {\n this.shape = 'circle'\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isAvatarSize(this.size))\n ) {\n this.size = 'md'\n }\n }\n\n private get avatarClasses(): string {\n return getAvatarClasses({\n disabled: this.isDisabled,\n fullWidth: this.fullWidth ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false,\n placeholder: this.placeholder ?? false,\n shape: this.shape as AvatarShape,\n size: this.size as AvatarSize\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.avatarClasses}\"\n data-sp-avatar-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreAvatar(\n tagName = 'sp-avatar'\n): typeof SpectreAvatarElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreAvatarElement\n }\n\n customElements.define(tagName, SpectreAvatarElement)\n return SpectreAvatarElement\n}\n","import { html } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport {\n isInputSize,\n isSpinnerVariant,\n type SpectreInputSize,\n type SpectreSpinnerVariant\n} from '../../utils/form'\n\nimport {\n getSpinnerClasses,\n type SpinnerSize,\n type SpinnerVariant\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreSpinnerProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n id?: string | null | undefined\n loading?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n variant?: SpectreSpinnerVariant | undefined\n}\n\nexport class SpectreSpinnerElement\n extends SpectreBaseElement\n implements SpectreSpinnerProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n disabled: boolean | undefined = false\n loading: boolean | undefined = true\n size: SpectreInputSize | undefined = 'md'\n variant: SpectreSpinnerVariant | undefined\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 protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = true\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n if (\n changedProperties.has('variant') &&\n this.variant != null &&\n !isSpinnerVariant(this.variant)\n ) {\n this.variant = undefined\n }\n }\n\n private get spinnerClasses(): string {\n return getSpinnerClasses({\n disabled: this.disabled ?? false,\n loading: this.loading ?? true,\n size: this.size as SpinnerSize,\n ...(this.variant != null\n ? { variant: this.variant as SpinnerVariant }\n : {})\n })\n }\n\n private get computedAriaLabel(): string {\n return this.forwardedAriaLabel ?? 'Loading'\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${this.computedAriaLabel}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.spinnerClasses}\"\n data-sp-spinner-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"status\"\n title=\"${ifDefined(this.title || undefined)}\"\n ></div>`\n }\n}\n\nexport function defineSpectreSpinner(\n tagName = 'sp-spinner'\n): typeof SpectreSpinnerElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreSpinnerElement\n }\n\n customElements.define(tagName, SpectreSpinnerElement)\n return SpectreSpinnerElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isInputSize,\n isTagVariant,\n type SpectreInputSize,\n type SpectreTagVariant\n} from '../../utils/form'\n\nimport {\n getTagClasses,\n type TagVariant,\n type TagSize\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreTagProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n dismissible?: boolean | undefined\n disabled?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n selected?: boolean | undefined\n size?: SpectreInputSize | undefined\n title?: string | null | undefined\n variant?: SpectreTagVariant | undefined\n}\n\nexport class SpectreTagElement\n extends SpectreProjectableElement\n implements SpectreTagProps\n{\n static properties = {\n dismissible: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true },\n selected: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n dismissible: boolean | undefined = false\n disabled: boolean | undefined = false\n fullWidth: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: boolean | undefined = false\n selected: boolean | undefined = false\n size: SpectreInputSize | undefined = 'md'\n variant: SpectreTagVariant | undefined = 'default'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-tag-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-tag-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('dismissible') && this.dismissible == null) {\n this.dismissible = false\n }\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n if (changedProperties.has('selected') && this.selected == null) {\n this.selected = false\n }\n if (\n changedProperties.has('size') &&\n (this.size == null || !isInputSize(this.size))\n ) {\n this.size = 'md'\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isTagVariant(this.variant))\n ) {\n this.variant = 'default'\n }\n }\n\n private get tagClasses(): string {\n return getTagClasses({\n disabled: this.isDisabled,\n dismissible: this.dismissible ?? false,\n fullWidth: this.fullWidth ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false,\n selected: this.selected ?? false,\n size: this.size as TagSize,\n variant: this.variant as TagVariant\n })\n }\n\n override render() {\n return html`<span\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.tagClasses}\"\n data-sp-tag-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </span>`\n }\n}\n\nexport function defineSpectreTag(tagName = 'sp-tag'): typeof SpectreTagElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreTagElement\n }\n\n customElements.define(tagName, SpectreTagElement)\n return SpectreTagElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getPricingCardClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectrePricingCardProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n disabled?: boolean | undefined\n featured?: boolean | undefined\n fullHeight?: boolean | undefined\n id?: string | null | undefined\n interactive?: boolean | undefined\n loading?: boolean | undefined\n title?: string | null | undefined\n}\n\nexport class SpectrePricingCardElement\n extends SpectreProjectableElement\n implements SpectrePricingCardProps\n{\n static properties = {\n disabled: { type: Boolean, reflect: true },\n featured: { type: Boolean, reflect: true },\n fullHeight: { attribute: 'full-height', type: Boolean, reflect: true },\n interactive: { type: Boolean, reflect: true },\n loading: { type: Boolean, reflect: true }\n }\n\n disabled: boolean | undefined = false\n featured: boolean | undefined = false\n fullHeight: boolean | undefined = false\n interactive: boolean | undefined = false\n loading: 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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-pricing-card-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-pricing-card-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('disabled') && this.disabled == null) {\n this.disabled = false\n }\n if (changedProperties.has('featured') && this.featured == null) {\n this.featured = false\n }\n if (changedProperties.has('fullHeight') && this.fullHeight == null) {\n this.fullHeight = false\n }\n if (changedProperties.has('interactive') && this.interactive == null) {\n this.interactive = false\n }\n if (changedProperties.has('loading') && this.loading == null) {\n this.loading = false\n }\n }\n\n private get pricingCardClasses(): string {\n return getPricingCardClasses({\n disabled: this.isDisabled,\n featured: this.featured ?? false,\n fullHeight: this.fullHeight ?? false,\n interactive: this.interactive ?? false,\n loading: this.loading ?? false\n })\n }\n\n override render() {\n return html`<div\n aria-busy=\"${this.loading ? 'true' : 'false'}\"\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.pricingCardClasses}\"\n data-sp-pricing-card-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"${ifDefined(this.hasForwardedLabel ? 'group' : undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectrePricingCard(\n tagName = 'sp-pricing-card'\n): typeof SpectrePricingCardElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectrePricingCardElement\n }\n\n customElements.define(tagName, SpectrePricingCardElement)\n return SpectrePricingCardElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isContainerMaxWidth,\n type SpectreContainerMaxWidth\n} from '../../utils/form'\n\nimport {\n getContainerClasses,\n type ContainerMaxWidth\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreContainerProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n id?: string | null | undefined\n maxWidth?: SpectreContainerMaxWidth | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreContainerElement\n extends SpectreProjectableElement\n implements SpectreContainerProps\n{\n static properties = {\n maxWidth: { attribute: 'max-width', type: String, reflect: true }\n }\n\n maxWidth: SpectreContainerMaxWidth | undefined = undefined\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-container-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-container-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (\n changedProperties.has('maxWidth') &&\n this.maxWidth != null &&\n !isContainerMaxWidth(this.maxWidth)\n ) {\n this.maxWidth = undefined\n }\n }\n\n private get containerClasses(): string {\n return getContainerClasses(\n this.maxWidth != null\n ? { maxWidth: this.maxWidth as ContainerMaxWidth }\n : {}\n )\n }\n\n override render() {\n return html`<div\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.containerClasses}\"\n data-sp-container-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreContainer(\n tagName = 'sp-container'\n): typeof SpectreContainerElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreContainerElement\n }\n\n customElements.define(tagName, SpectreContainerElement)\n return SpectreContainerElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isGridColumns,\n isGridGap,\n type SpectreGridColumns,\n type SpectreGridGap\n} from '../../utils/form'\n\nimport {\n getGridClasses,\n type GridColumns,\n type GridGap\n} from '@phcdevworks/spectre-ui'\nimport { normalizeInt } from '../../utils/form'\n\nexport interface SpectreGridProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n columns?: SpectreGridColumns | undefined\n gap?: SpectreGridGap | undefined\n id?: string | null | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreGridElement\n extends SpectreProjectableElement\n implements SpectreGridProps\n{\n static properties = {\n columns: { type: Number, reflect: true },\n gap: { type: String, reflect: true }\n }\n\n columns: SpectreGridColumns | undefined = 1\n gap: SpectreGridGap | undefined = 'md'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-grid-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-grid-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('columns')) {\n const normalized = normalizeInt(this.columns, undefined, 1)\n this.columns =\n normalized != null && isGridColumns(normalized)\n ? (normalized as SpectreGridColumns)\n : 1\n }\n if (\n changedProperties.has('gap') &&\n (this.gap == null || !isGridGap(this.gap))\n ) {\n this.gap = 'md'\n }\n }\n\n private get gridClasses(): string {\n return getGridClasses({\n columns: this.columns as GridColumns,\n gap: this.gap as GridGap\n })\n }\n\n override render() {\n return html`<div\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.gridClasses}\"\n data-sp-grid-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreGrid(\n tagName = 'sp-grid'\n): typeof SpectreGridElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreGridElement\n }\n\n customElements.define(tagName, SpectreGridElement)\n return SpectreGridElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getSectionClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreSectionProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n id?: string | null | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreSectionElement\n extends SpectreProjectableElement\n implements SpectreSectionProps\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-section-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-section-native')\n }\n\n private get sectionClasses(): string {\n return getSectionClasses({})\n }\n\n override render() {\n return html`<section\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.sectionClasses}\"\n data-sp-section-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </section>`\n }\n}\n\nexport function defineSpectreSection(\n tagName = 'sp-section'\n): typeof SpectreSectionElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreSectionElement\n }\n\n customElements.define(tagName, SpectreSectionElement)\n return SpectreSectionElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isStackAlign,\n isStackBasis,\n isStackDirection,\n type SpectreStackAlign,\n type SpectreStackBasis,\n type SpectreStackDirection\n} from '../../utils/form'\n\nimport {\n getStackClasses,\n type StackAlign,\n type StackBasis,\n type StackDirection\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreStackProps {\n align?: SpectreStackAlign | undefined\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n basis?: SpectreStackBasis | undefined\n direction?: SpectreStackDirection | undefined\n id?: string | null | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreStackElement\n extends SpectreProjectableElement\n implements SpectreStackProps\n{\n static properties = {\n align: { type: String, reflect: true },\n basis: { type: String, reflect: true },\n direction: { type: String, reflect: true }\n }\n\n align: SpectreStackAlign | undefined = 'center'\n basis: SpectreStackBasis | undefined = undefined\n direction: SpectreStackDirection | undefined = 'vertical'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-stack-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-stack-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (\n changedProperties.has('direction') &&\n (this.direction == null || !isStackDirection(this.direction))\n ) {\n this.direction = 'vertical'\n }\n if (\n changedProperties.has('basis') &&\n this.basis != null &&\n !isStackBasis(this.basis)\n ) {\n this.basis = undefined\n }\n if (\n changedProperties.has('align') &&\n (this.align == null || !isStackAlign(this.align))\n ) {\n this.align = 'center'\n }\n }\n\n private get stackClasses(): string {\n return getStackClasses({\n align: this.align as StackAlign,\n direction: this.direction as StackDirection,\n ...(this.basis != null ? { basis: this.basis as StackBasis } : {})\n })\n }\n\n override render() {\n return html`<div\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${this.stackClasses}\"\n data-sp-stack-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreStack(\n tagName = 'sp-stack'\n): typeof SpectreStackElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreStackElement\n }\n\n customElements.define(tagName, SpectreStackElement)\n return SpectreStackElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport { hasMeaningfulContent } from '../../utils/dom'\nimport {\n isDropdownPlacement,\n type SpectreDropdownPlacement\n} from '../../utils/form'\n\nimport {\n getDropdownClasses,\n getDropdownMenuClasses\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreDropdownProps {\n ariaLabel?: string | null\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n open?: boolean | undefined\n placement?: SpectreDropdownPlacement | undefined\n title?: string | null | undefined\n triggerLabel?: string | undefined\n}\n\nexport class SpectreDropdownElement\n extends SpectreBaseElement\n implements SpectreDropdownProps\n{\n static properties = {\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n open: { type: Boolean, reflect: true },\n placement: { type: String, reflect: true },\n triggerLabel: { attribute: 'trigger-label', type: String }\n }\n\n fullWidth: boolean | undefined = false\n open: boolean | undefined = false\n placement: SpectreDropdownPlacement | undefined = 'bottom-start'\n triggerLabel: string | undefined = 'Toggle menu'\n\n private triggerContent: Node[] = []\n private menuContent: Node[] = []\n private contentObserver?: MutationObserver | undefined\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 private isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return (\n el.hasAttribute('data-sp-dropdown-menu') ||\n el.hasAttribute('data-sp-dropdown-trigger')\n )\n }\n\n private syncProjectedContent(): boolean {\n const nextTriggerContent: Node[] = []\n const nextMenuContent: Node[] = []\n\n this.childNodes.forEach((node) => {\n if (this.isInternalNode(node)) {\n return\n }\n const isTriggerSlot =\n node.nodeType === Node.ELEMENT_NODE &&\n (node as Element).getAttribute('slot') === 'trigger'\n if (isTriggerSlot) {\n nextTriggerContent.push(node)\n } else {\n nextMenuContent.push(node)\n }\n })\n\n const changed =\n nextTriggerContent.length !== this.triggerContent.length ||\n nextTriggerContent.some((n, i) => n !== this.triggerContent[i]) ||\n nextMenuContent.length !== this.menuContent.length ||\n nextMenuContent.some((n, i) => n !== this.menuContent[i])\n\n if (changed) {\n this.triggerContent = nextTriggerContent\n this.menuContent = nextMenuContent\n }\n\n return changed\n }\n\n private get hasTriggerContent(): boolean {\n return hasMeaningfulContent(this.triggerContent)\n }\n\n private get hasMenuContent(): boolean {\n return hasMeaningfulContent(this.menuContent)\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n this.syncProjectedContent()\n this.startContentObserver()\n document.addEventListener('click', this.handleDocumentClick)\n document.addEventListener('keydown', this.handleDocumentKeydown)\n }\n\n override disconnectedCallback(): void {\n this.stopContentObserver()\n document.removeEventListener('click', this.handleDocumentClick)\n document.removeEventListener('keydown', this.handleDocumentKeydown)\n super.disconnectedCallback()\n }\n\n protected override update(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n this.stopContentObserver()\n super.update(changedProperties)\n this.startContentObserver()\n }\n\n private startContentObserver(): void {\n if (this.contentObserver) {\n return\n }\n this.contentObserver = new MutationObserver(() => {\n if (this.syncProjectedContent()) {\n this.requestUpdate()\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 protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('open') && this.open == null) {\n this.open = false\n }\n if (\n changedProperties.has('placement') &&\n (this.placement == null || !isDropdownPlacement(this.placement))\n ) {\n this.placement = 'bottom-start'\n }\n if (changedProperties.has('triggerLabel') && !this.triggerLabel) {\n this.triggerLabel = 'Toggle menu'\n }\n }\n\n private handleDocumentClick = (event: MouseEvent): void => {\n if (!this.open) {\n return\n }\n if (!event.composedPath().includes(this)) {\n this.close()\n }\n }\n\n private handleDocumentKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape' && this.open) {\n this.close()\n this.triggerElement?.focus()\n }\n }\n\n private get triggerElement(): HTMLButtonElement | null {\n return this.querySelector('[data-sp-dropdown-trigger]')\n }\n\n private toggle(): void {\n if (this.open) {\n this.close()\n } else {\n this.openMenu()\n }\n }\n\n private openMenu(): void {\n if (this.open) {\n return\n }\n this.open = true\n this.dispatchEvent(new CustomEvent('sp-open', { bubbles: true }))\n }\n\n private close(): void {\n if (!this.open) {\n return\n }\n this.open = false\n this.dispatchEvent(new CustomEvent('sp-close', { bubbles: true }))\n }\n\n private get dropdownClasses(): string {\n return getDropdownClasses({ fullWidth: this.fullWidth ?? false })\n }\n\n private get menuClasses(): string {\n return getDropdownMenuClasses({\n open: this.open ?? false,\n placement: this.placement as SpectreDropdownPlacement\n })\n }\n\n override render() {\n return html`<div\n class=\"${this.dropdownClasses}\"\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n <button\n aria-expanded=\"${this.open ? 'true' : 'false'}\"\n aria-haspopup=\"true\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel ?? this.triggerLabel)}\"\n class=\"sp-dropdown__trigger\"\n data-sp-dropdown-trigger\n type=\"button\"\n @click=\"${() => this.toggle()}\"\n >\n ${this.hasTriggerContent ? this.triggerContent : this.triggerLabel}\n </button>\n <div class=\"${this.menuClasses}\" data-sp-dropdown-menu>\n ${this.hasMenuContent ? this.menuContent : nothing}\n </div>\n </div>`\n }\n}\n\nexport function defineSpectreDropdown(\n tagName = 'sp-dropdown'\n): typeof SpectreDropdownElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreDropdownElement\n }\n\n customElements.define(tagName, SpectreDropdownElement)\n return SpectreDropdownElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getFooterClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreFooterProps {\n ariaLabel?: string | null\n bordered?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreFooterElement\n extends SpectreProjectableElement\n implements SpectreFooterProps\n{\n static properties = {\n bordered: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true }\n }\n\n bordered: boolean | undefined = false\n fullWidth: 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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-footer-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-footer-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('bordered') && this.bordered == null) {\n this.bordered = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n }\n\n private get footerClasses(): string {\n return getFooterClasses({\n bordered: this.bordered ?? false,\n fullWidth: this.fullWidth ?? false\n })\n }\n\n override render() {\n return html`<footer\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n class=\"${this.footerClasses}\"\n data-sp-footer-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </footer>`\n }\n}\n\nexport function defineSpectreFooter(\n tagName = 'sp-footer'\n): typeof SpectreFooterElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreFooterElement\n }\n\n customElements.define(tagName, SpectreFooterElement)\n return SpectreFooterElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport {\n getModalClasses,\n getModalOverlayClasses\n} from '@phcdevworks/spectre-ui'\n\nconst FOCUSABLE_SELECTOR = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])'\n].join(',')\n\nexport interface SpectreModalProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n open?: boolean | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreModalElement\n extends SpectreProjectableElement\n implements SpectreModalProps\n{\n static properties = {\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n open: { type: Boolean, reflect: true }\n }\n\n fullWidth: boolean | undefined = false\n open: boolean | undefined = false\n\n private previouslyFocusedElement: HTMLElement | null = null\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-modal-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return (\n el.hasAttribute('data-sp-modal-native') ||\n el.hasAttribute('data-sp-modal-overlay')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('open') && this.open == null) {\n this.open = false\n }\n }\n\n protected override updated(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n super.updated(changedProperties)\n\n if (!changedProperties.has('open')) {\n return\n }\n\n if (this.open) {\n this.previouslyFocusedElement = document.activeElement as HTMLElement\n this.focusFirstElement()\n } else if (this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus()\n this.previouslyFocusedElement = null\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n document.addEventListener('keydown', this.handleDocumentKeydown)\n }\n\n override disconnectedCallback(): void {\n document.removeEventListener('keydown', this.handleDocumentKeydown)\n super.disconnectedCallback()\n }\n\n private get modalElement(): HTMLElement | null {\n return this.querySelector('[data-sp-modal-native]')\n }\n\n private get focusableElements(): HTMLElement[] {\n const modal = this.modalElement\n if (!modal) {\n return []\n }\n return Array.from(modal.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR))\n }\n\n private focusFirstElement(): void {\n const [first] = this.focusableElements\n ;(first ?? this.modalElement)?.focus()\n }\n\n private handleDocumentKeydown = (event: KeyboardEvent): void => {\n if (!this.open) {\n return\n }\n\n if (event.key === 'Escape') {\n this.close()\n return\n }\n\n if (event.key === 'Tab') {\n this.trapFocus(event)\n }\n }\n\n private trapFocus(event: KeyboardEvent): void {\n const focusable = this.focusableElements\n if (focusable.length === 0) {\n event.preventDefault()\n return\n }\n\n const first = focusable[0]\n const last = focusable[focusable.length - 1]\n const active = document.activeElement\n\n if (event.shiftKey && active === first) {\n event.preventDefault()\n last?.focus()\n } else if (!event.shiftKey && active === last) {\n event.preventDefault()\n first?.focus()\n }\n }\n\n private close(): void {\n if (!this.open) {\n return\n }\n this.open = false\n this.dispatchEvent(new CustomEvent('sp-close', { bubbles: true }))\n }\n\n private get overlayClasses(): string {\n return getModalOverlayClasses({ open: this.open ?? false })\n }\n\n private get modalClasses(): string {\n return getModalClasses({\n open: this.open ?? false,\n fullWidth: this.fullWidth ?? false\n })\n }\n\n override render() {\n const isHidden = !this.open\n\n return html`<div\n aria-hidden=\"${ifDefined(isHidden ? 'true' : undefined)}\"\n class=\"${this.overlayClasses}\"\n data-sp-modal-overlay\n @click=\"${(event: Event) => {\n if (event.target === event.currentTarget) {\n this.close()\n }\n }}\"\n >\n <div\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-hidden=\"${ifDefined(isHidden ? 'true' : undefined)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n aria-modal=\"true\"\n class=\"${this.modalClasses}\"\n data-sp-modal-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"dialog\"\n tabindex=\"-1\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </div>\n </div>`\n }\n}\n\nexport function defineSpectreModal(\n tagName = 'sp-modal'\n): typeof SpectreModalElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreModalElement\n }\n\n customElements.define(tagName, SpectreModalElement)\n return SpectreModalElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport { getNavClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreNavProps {\n ariaLabel?: string | null\n bordered?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n sticky?: boolean | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreNavElement\n extends SpectreProjectableElement\n implements SpectreNavProps\n{\n static properties = {\n bordered: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n sticky: { type: Boolean, reflect: true }\n }\n\n bordered: boolean | undefined = false\n fullWidth: boolean | undefined = false\n sticky: 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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-nav-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return el.hasAttribute('data-sp-nav-native')\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('bordered') && this.bordered == null) {\n this.bordered = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (changedProperties.has('sticky') && this.sticky == null) {\n this.sticky = false\n }\n }\n\n private get navClasses(): string {\n return getNavClasses({\n bordered: this.bordered ?? false,\n fullWidth: this.fullWidth ?? false,\n sticky: this.sticky ?? false\n })\n }\n\n override render() {\n return html`<nav\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n class=\"${this.navClasses}\"\n data-sp-nav-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </nav>`\n }\n}\n\nexport function defineSpectreNav(tagName = 'sp-nav'): typeof SpectreNavElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreNavElement\n }\n\n customElements.define(tagName, SpectreNavElement)\n return SpectreNavElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport { hasMeaningfulContent } from '../../utils/dom'\nimport {\n isDropdownPlacement,\n type SpectreDropdownPlacement\n} from '../../utils/form'\n\nimport {\n getDropdownClasses,\n getDropdownMenuClasses,\n getNavLinkClasses\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreNavItemProps {\n ariaLabel?: string | null\n dropdown?: boolean | undefined\n href?: string | undefined\n id?: string | null | undefined\n label?: string | undefined\n open?: boolean | undefined\n placement?: SpectreDropdownPlacement | undefined\n title?: string | null | undefined\n}\n\nexport class SpectreNavItemElement\n extends SpectreBaseElement\n implements SpectreNavItemProps\n{\n static properties = {\n dropdown: { type: Boolean, reflect: true },\n href: { type: String },\n label: { type: String },\n open: { type: Boolean, reflect: true },\n placement: { type: String, reflect: true }\n }\n\n dropdown: boolean | undefined = false\n href: string | undefined = undefined\n label: string | undefined = undefined\n open: boolean | undefined = false\n placement: SpectreDropdownPlacement | undefined = 'bottom-start'\n\n private triggerContent: Node[] = []\n private menuContent: Node[] = []\n private contentObserver?: MutationObserver | undefined\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 private isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return (\n el.hasAttribute('data-sp-nav-item-menu') ||\n el.hasAttribute('data-sp-nav-item-trigger')\n )\n }\n\n private syncProjectedContent(): boolean {\n const nextTriggerContent: Node[] = []\n const nextMenuContent: Node[] = []\n\n this.childNodes.forEach((node) => {\n if (this.isInternalNode(node)) {\n return\n }\n const isTriggerSlot =\n node.nodeType === Node.ELEMENT_NODE &&\n (node as Element).getAttribute('slot') === 'trigger'\n if (isTriggerSlot) {\n nextTriggerContent.push(node)\n } else {\n nextMenuContent.push(node)\n }\n })\n\n const changed =\n nextTriggerContent.length !== this.triggerContent.length ||\n nextTriggerContent.some((n, i) => n !== this.triggerContent[i]) ||\n nextMenuContent.length !== this.menuContent.length ||\n nextMenuContent.some((n, i) => n !== this.menuContent[i])\n\n if (changed) {\n this.triggerContent = nextTriggerContent\n this.menuContent = nextMenuContent\n }\n\n return changed\n }\n\n private get hasTriggerContent(): boolean {\n return hasMeaningfulContent(this.triggerContent)\n }\n\n private get hasMenuContent(): boolean {\n return hasMeaningfulContent(this.menuContent)\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n this.syncProjectedContent()\n this.startContentObserver()\n document.addEventListener('click', this.handleDocumentClick)\n document.addEventListener('keydown', this.handleDocumentKeydown)\n }\n\n override disconnectedCallback(): void {\n this.stopContentObserver()\n document.removeEventListener('click', this.handleDocumentClick)\n document.removeEventListener('keydown', this.handleDocumentKeydown)\n super.disconnectedCallback()\n }\n\n protected override update(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n this.stopContentObserver()\n super.update(changedProperties)\n this.startContentObserver()\n }\n\n private startContentObserver(): void {\n if (this.contentObserver) {\n return\n }\n this.contentObserver = new MutationObserver(() => {\n if (this.syncProjectedContent()) {\n this.requestUpdate()\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 protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('dropdown') && this.dropdown == null) {\n this.dropdown = false\n }\n if (changedProperties.has('open') && this.open == null) {\n this.open = false\n }\n if (\n changedProperties.has('placement') &&\n (this.placement == null || !isDropdownPlacement(this.placement))\n ) {\n this.placement = 'bottom-start'\n }\n }\n\n private handleDocumentClick = (event: MouseEvent): void => {\n if (!this.open) {\n return\n }\n if (!event.composedPath().includes(this)) {\n this.close()\n }\n }\n\n private handleDocumentKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape' && this.open) {\n this.close()\n this.triggerElement?.focus()\n }\n }\n\n private get triggerElement(): HTMLButtonElement | null {\n return this.querySelector('[data-sp-nav-item-trigger]')\n }\n\n private toggle(): void {\n if (this.open) {\n this.close()\n } else {\n this.openMenu()\n }\n }\n\n private openMenu(): void {\n if (this.open) {\n return\n }\n this.open = true\n this.dispatchEvent(new CustomEvent('sp-open', { bubbles: true }))\n }\n\n private close(): void {\n if (!this.open) {\n return\n }\n this.open = false\n this.dispatchEvent(new CustomEvent('sp-close', { bubbles: true }))\n }\n\n private get wrapperClasses(): string {\n return getDropdownClasses()\n }\n\n private get menuClasses(): string {\n return getDropdownMenuClasses({\n open: this.open ?? false,\n placement: this.placement as SpectreDropdownPlacement\n })\n }\n\n private get navLinkClasses(): string {\n return getNavLinkClasses()\n }\n\n private renderLink() {\n return html`<a\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n class=\"${this.navLinkClasses}\"\n href=\"${ifDefined(this.href)}\"\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >${this.hasMenuContent ? this.menuContent : this.label}</a\n >`\n }\n\n private renderDropdown() {\n return html`<div\n class=\"${this.wrapperClasses}\"\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n <button\n aria-expanded=\"${this.open ? 'true' : 'false'}\"\n aria-haspopup=\"true\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel ?? this.label)}\"\n class=\"${this.navLinkClasses}\"\n data-sp-nav-item-trigger\n type=\"button\"\n @click=\"${() => this.toggle()}\"\n >\n ${this.hasTriggerContent ? this.triggerContent : this.label}\n </button>\n <div class=\"${this.menuClasses}\" data-sp-nav-item-menu>\n ${this.hasMenuContent ? this.menuContent : nothing}\n </div>\n </div>`\n }\n\n override render() {\n return this.dropdown ? this.renderDropdown() : this.renderLink()\n }\n}\n\nexport function defineSpectreNavItem(\n tagName = 'sp-nav-item'\n): typeof SpectreNavItemElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreNavItemElement\n }\n\n customElements.define(tagName, SpectreNavItemElement)\n return SpectreNavItemElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\n\nimport {\n getSidebarBackdropClasses,\n getSidebarClasses,\n getSidebarToggleClasses\n} from '@phcdevworks/spectre-ui'\n\nexport interface SpectreSidebarProps {\n ariaLabel?: string | null\n bordered?: boolean | undefined\n id?: string | null | undefined\n open?: boolean | undefined\n title?: string | null | undefined\n toggleLabel?: string | undefined\n}\n\nexport class SpectreSidebarElement\n extends SpectreProjectableElement\n implements SpectreSidebarProps\n{\n static properties = {\n bordered: { type: Boolean, reflect: true },\n open: { type: Boolean, reflect: false },\n toggleLabel: { attribute: 'toggle-label', type: String }\n }\n\n bordered: boolean | undefined = false\n open: boolean | undefined = false\n toggleLabel: string | undefined = 'Toggle sidebar'\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-sidebar-native]')\n }\n\n protected override isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return (\n el.hasAttribute('data-sp-sidebar-native') ||\n el.hasAttribute('data-sp-sidebar-toggle') ||\n el.hasAttribute('data-sp-sidebar-backdrop')\n )\n }\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('bordered') && this.bordered == null) {\n this.bordered = false\n }\n if (changedProperties.has('open') && this.open == null) {\n this.open = false\n }\n if (changedProperties.has('toggleLabel') && !this.toggleLabel) {\n this.toggleLabel = 'Toggle sidebar'\n }\n if (changedProperties.has('open')) {\n HTMLElement.prototype.setAttribute.call(\n this,\n 'data-sidebar-open',\n this.open ? 'true' : 'false'\n )\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n HTMLElement.prototype.setAttribute.call(\n this,\n 'data-sidebar-open',\n this.open ? 'true' : 'false'\n )\n document.addEventListener('keydown', this.handleDocumentKeydown)\n }\n\n override disconnectedCallback(): void {\n document.removeEventListener('keydown', this.handleDocumentKeydown)\n super.disconnectedCallback()\n }\n\n private handleDocumentKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape' && this.open) {\n this.close()\n }\n }\n\n private toggle(): void {\n if (this.open) {\n this.close()\n } else {\n this.openSidebar()\n }\n }\n\n private openSidebar(): void {\n if (this.open) {\n return\n }\n this.open = true\n this.dispatchEvent(new CustomEvent('sp-open', { bubbles: true }))\n }\n\n private close(): void {\n if (!this.open) {\n return\n }\n this.open = false\n this.dispatchEvent(new CustomEvent('sp-close', { bubbles: true }))\n }\n\n private get sidebarClasses(): string {\n return getSidebarClasses({ bordered: this.bordered ?? false })\n }\n\n override render() {\n return html`<button\n aria-expanded=\"${this.open ? 'true' : 'false'}\"\n aria-label=\"${ifDefined(this.toggleLabel)}\"\n class=\"${getSidebarToggleClasses()}\"\n data-sp-sidebar-toggle\n type=\"button\"\n @click=\"${() => this.toggle()}\"\n >\n ☰\n </button>\n <div\n class=\"${getSidebarBackdropClasses()}\"\n data-sp-sidebar-backdrop\n @click=\"${() => this.close()}\"\n ></div>\n <aside\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n class=\"${this.sidebarClasses}\"\n data-sp-sidebar-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasProjectedContent ? this.projectedContent : nothing}\n </aside>`\n }\n}\n\nexport function defineSpectreSidebar(\n tagName = 'sp-sidebar'\n): typeof SpectreSidebarElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreSidebarElement\n }\n\n customElements.define(tagName, SpectreSidebarElement)\n return SpectreSidebarElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport { hasMeaningfulContent } from '../../utils/dom'\nimport {\n isToastVariant,\n normalizeInt,\n type SpectreToastVariant\n} from '../../utils/form'\n\nimport { getToastClasses, getToastIconClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreToastProps {\n ariaLabel?: string | null\n autoDismiss?: number | undefined\n dismissed?: boolean | undefined\n fullWidth?: boolean | undefined\n id?: string | null | undefined\n title?: string | null | undefined\n variant?: SpectreToastVariant | undefined\n}\n\nexport class SpectreToastElement\n extends SpectreBaseElement\n implements SpectreToastProps\n{\n static properties = {\n autoDismiss: { attribute: 'auto-dismiss', type: Number },\n dismissed: { type: Boolean, reflect: true },\n fullWidth: { attribute: 'full-width', type: Boolean, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n autoDismiss: number | undefined\n dismissed: boolean | undefined = false\n fullWidth: boolean | undefined = false\n variant: SpectreToastVariant | undefined = 'info'\n\n private iconContent: Node[] = []\n private bodyContent: Node[] = []\n private contentObserver?: MutationObserver | undefined\n private autoDismissTimer?: ReturnType<typeof setTimeout> | undefined\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 private isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return (\n el.hasAttribute('data-sp-toast-native') ||\n el.hasAttribute('data-sp-toast-icon')\n )\n }\n\n private syncProjectedContent(): boolean {\n const nextIconContent: Node[] = []\n const nextBodyContent: Node[] = []\n\n this.childNodes.forEach((node) => {\n if (this.isInternalNode(node)) {\n return\n }\n const isIconSlot =\n node.nodeType === Node.ELEMENT_NODE &&\n (node as Element).getAttribute('slot') === 'icon'\n if (isIconSlot) {\n nextIconContent.push(node)\n } else {\n nextBodyContent.push(node)\n }\n })\n\n const changed =\n nextIconContent.length !== this.iconContent.length ||\n nextIconContent.some((n, i) => n !== this.iconContent[i]) ||\n nextBodyContent.length !== this.bodyContent.length ||\n nextBodyContent.some((n, i) => n !== this.bodyContent[i])\n\n if (changed) {\n this.iconContent = nextIconContent\n this.bodyContent = nextBodyContent\n }\n\n return changed\n }\n\n private get hasIconContent(): boolean {\n return hasMeaningfulContent(this.iconContent)\n }\n\n private get hasBodyContent(): boolean {\n return hasMeaningfulContent(this.bodyContent)\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 this.clearAutoDismissTimer()\n super.disconnectedCallback()\n }\n\n protected override update(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n this.stopContentObserver()\n super.update(changedProperties)\n this.startContentObserver()\n }\n\n private startContentObserver(): void {\n if (this.contentObserver) {\n return\n }\n this.contentObserver = new MutationObserver(() => {\n if (this.syncProjectedContent()) {\n this.requestUpdate()\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 protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('dismissed') && this.dismissed == null) {\n this.dismissed = false\n }\n if (changedProperties.has('fullWidth') && this.fullWidth == null) {\n this.fullWidth = false\n }\n if (\n changedProperties.has('variant') &&\n (this.variant == null || !isToastVariant(this.variant))\n ) {\n this.variant = 'info'\n }\n if (changedProperties.has('autoDismiss')) {\n this.autoDismiss = normalizeInt(this.autoDismiss, undefined, 0)\n }\n }\n\n protected override updated(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n super.updated(changedProperties)\n\n if (\n changedProperties.has('dismissed') ||\n changedProperties.has('autoDismiss')\n ) {\n this.clearAutoDismissTimer()\n if (!this.dismissed && this.autoDismiss) {\n this.autoDismissTimer = setTimeout(() => {\n this.dismiss()\n }, this.autoDismiss)\n }\n }\n }\n\n private clearAutoDismissTimer(): void {\n if (this.autoDismissTimer) {\n clearTimeout(this.autoDismissTimer)\n this.autoDismissTimer = undefined\n }\n }\n\n show(): void {\n if (!this.dismissed) {\n return\n }\n this.dismissed = false\n this.dispatchEvent(new CustomEvent('sp-show', { bubbles: true }))\n }\n\n dismiss(): void {\n if (this.dismissed) {\n return\n }\n this.dismissed = true\n this.dispatchEvent(new CustomEvent('sp-dismiss', { bubbles: true }))\n }\n\n private get toastClasses(): string {\n return getToastClasses({\n variant: this.variant as SpectreToastVariant,\n dismissed: this.dismissed ?? false,\n fullWidth: this.fullWidth ?? false\n })\n }\n\n private get iconClasses(): string {\n return getToastIconClasses({ variant: this.variant as SpectreToastVariant })\n }\n\n override render() {\n return html`<div\n aria-atomic=\"true\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-live=\"polite\"\n class=\"${this.toastClasses}\"\n data-sp-toast-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"status\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${\n this.hasIconContent\n ? html`<div class=\"${this.iconClasses}\" data-sp-toast-icon>\n ${this.iconContent}\n </div>`\n : nothing\n }\n ${this.hasBodyContent ? this.bodyContent : nothing}\n </div>`\n }\n}\n\nexport function defineSpectreToast(\n tagName = 'sp-toast'\n): typeof SpectreToastElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreToastElement\n }\n\n customElements.define(tagName, SpectreToastElement)\n return SpectreToastElement\n}\n","import { html, nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { SpectreBaseElement } from '../../utils/base'\nimport { hasMeaningfulContent } from '../../utils/dom'\nimport {\n isTooltipPlacement,\n type SpectreTooltipPlacement\n} from '../../utils/form'\n\nimport { getTooltipClasses } from '@phcdevworks/spectre-ui'\n\nexport interface SpectreTooltipProps {\n ariaLabel?: string | null\n id?: string | null | undefined\n placement?: SpectreTooltipPlacement | undefined\n title?: string | null | undefined\n visible?: boolean | undefined\n}\n\nexport class SpectreTooltipElement\n extends SpectreBaseElement\n implements SpectreTooltipProps\n{\n static properties = {\n placement: { type: String, reflect: true },\n visible: { type: Boolean, reflect: true }\n }\n\n placement: SpectreTooltipPlacement | undefined = 'top'\n visible: boolean | undefined = false\n\n private triggerContent: Node[] = []\n private tooltipContent: Node[] = []\n private contentObserver?: MutationObserver | undefined\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 private isInternalNode(node: Node): boolean {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n const el = node as Element\n return (\n el.hasAttribute('data-sp-tooltip-native') ||\n el.hasAttribute('data-sp-tooltip-trigger')\n )\n }\n\n private syncProjectedContent(): boolean {\n const nextTooltipContent: Node[] = []\n const nextTriggerContent: Node[] = []\n\n this.childNodes.forEach((node) => {\n if (this.isInternalNode(node)) {\n return\n }\n const isTooltipSlot =\n node.nodeType === Node.ELEMENT_NODE &&\n (node as Element).getAttribute('slot') === 'tooltip'\n if (isTooltipSlot) {\n nextTooltipContent.push(node)\n } else {\n nextTriggerContent.push(node)\n }\n })\n\n const changed =\n nextTooltipContent.length !== this.tooltipContent.length ||\n nextTooltipContent.some((n, i) => n !== this.tooltipContent[i]) ||\n nextTriggerContent.length !== this.triggerContent.length ||\n nextTriggerContent.some((n, i) => n !== this.triggerContent[i])\n\n if (changed) {\n this.tooltipContent = nextTooltipContent\n this.triggerContent = nextTriggerContent\n }\n\n return changed\n }\n\n private get hasTooltipContent(): boolean {\n return hasMeaningfulContent(this.tooltipContent)\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n this.syncProjectedContent()\n this.startContentObserver()\n this.style.position ||= 'relative'\n this.style.display ||= 'inline-block'\n }\n\n override disconnectedCallback(): void {\n this.stopContentObserver()\n super.disconnectedCallback()\n }\n\n protected override update(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n this.stopContentObserver()\n super.update(changedProperties)\n this.startContentObserver()\n }\n\n private startContentObserver(): void {\n if (this.contentObserver) {\n return\n }\n this.contentObserver = new MutationObserver(() => {\n if (this.syncProjectedContent()) {\n this.requestUpdate()\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 protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (\n changedProperties.has('placement') &&\n (this.placement == null || !isTooltipPlacement(this.placement))\n ) {\n this.placement = 'top'\n }\n if (changedProperties.has('visible') && this.visible == null) {\n this.visible = false\n }\n }\n\n private show(): void {\n if (this.visible) {\n return\n }\n this.visible = true\n this.dispatchEvent(new CustomEvent('sp-show', { bubbles: true }))\n }\n\n private hide(): void {\n if (!this.visible) {\n return\n }\n this.visible = false\n this.dispatchEvent(new CustomEvent('sp-hide', { bubbles: true }))\n }\n\n private get tooltipClasses(): string {\n return getTooltipClasses({\n placement: this.placement as SpectreTooltipPlacement,\n visible: this.visible ?? false\n })\n }\n\n override render() {\n return html`<span\n data-sp-tooltip-trigger\n @focusin=\"${() => this.show()}\"\n @focusout=\"${() => this.hide()}\"\n @mouseenter=\"${() => this.show()}\"\n @mouseleave=\"${() => this.hide()}\"\n >\n ${this.triggerContent}\n </span>\n <span\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n class=\"${this.tooltipClasses}\"\n data-sp-tooltip-native\n id=\"${ifDefined(this.id || undefined)}\"\n role=\"tooltip\"\n title=\"${ifDefined(this.title || undefined)}\"\n >\n ${this.hasTooltipContent ? this.tooltipContent : nothing}\n </span>`\n }\n}\n\nexport function defineSpectreTooltip(\n tagName = 'sp-tooltip'\n): typeof SpectreTooltipElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreTooltipElement\n }\n\n customElements.define(tagName, SpectreTooltipElement)\n return SpectreTooltipElement\n}\n","import { nothing } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { literal, html as staticHtml } from 'lit/static-html.js'\n\nimport { SpectreProjectableElement } from '../../utils/projectable'\nimport {\n isTextFamily,\n isTextLevel,\n isTextSize,\n isTextVariant,\n type SpectreTextFamily,\n type SpectreTextLevel,\n type SpectreTextSize,\n type SpectreTextVariant\n} from '../../utils/form'\n\nimport { getTextClasses } from '@phcdevworks/spectre-ui'\n\nconst LEVEL_TAGS: Record<SpectreTextLevel, ReturnType<typeof literal>> = {\n h1: literal`h1`,\n h2: literal`h2`,\n h3: literal`h3`,\n h4: literal`h4`,\n h5: literal`h5`,\n h6: literal`h6`,\n p: literal`p`,\n span: literal`span`\n}\n\nexport interface SpectreTextProps {\n ariaLabel?: string | null\n ariaLabelledBy?: string | null\n ariaDescribedBy?: string | null\n family?: SpectreTextFamily | undefined\n id?: string | null | undefined\n level?: SpectreTextLevel | undefined\n size?: SpectreTextSize | undefined\n title?: string | null | undefined\n variant?: SpectreTextVariant | undefined\n}\n\nexport class SpectreTextElement\n extends SpectreProjectableElement\n implements SpectreTextProps\n{\n static properties = {\n family: { type: String, reflect: true },\n level: { type: String, reflect: true },\n size: { type: String, reflect: true },\n variant: { type: String, reflect: true }\n }\n\n family: SpectreTextFamily | undefined\n level: SpectreTextLevel | undefined = 'p'\n size: SpectreTextSize | undefined = 'md'\n variant: SpectreTextVariant | undefined = 'default'\n\n protected override willUpdate(\n changedProperties: Map<PropertyKey, unknown>\n ): void {\n if (changedProperties.has('family') && !isTextFamily(this.family)) {\n this.family = undefined\n }\n\n if (changedProperties.has('level') && !isTextLevel(this.level)) {\n this.level = 'p'\n }\n\n if (changedProperties.has('size') && !isTextSize(this.size)) {\n this.size = 'md'\n }\n\n if (changedProperties.has('variant') && !isTextVariant(this.variant)) {\n this.variant = 'default'\n }\n }\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 protected override getContentContainer(): Element | null {\n return this.querySelector('[data-sp-text-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-text-native')\n }\n\n override render() {\n const tag = LEVEL_TAGS[this.level ?? 'p']\n const textClasses = getTextClasses({\n ...(this.family !== undefined && { family: this.family }),\n size: this.size ?? 'md',\n variant: this.variant ?? 'default'\n })\n\n return staticHtml`<${tag}\n aria-describedby=\"${ifDefined(this.forwardedAriaDescribedBy)}\"\n aria-label=\"${ifDefined(this.forwardedAriaLabel)}\"\n aria-labelledby=\"${ifDefined(this.forwardedAriaLabelledBy)}\"\n class=\"${textClasses}\"\n data-sp-text-native\n id=\"${ifDefined(this.id || undefined)}\"\n title=\"${ifDefined(this.title || undefined)}\"\n >${this.hasProjectedContent ? this.projectedContent : nothing}</${tag}>`\n }\n}\n\nexport function defineSpectreText(\n tagName = 'sp-text'\n): typeof SpectreTextElement {\n const existingElement = customElements.get(tagName)\n\n if (existingElement) {\n return existingElement as unknown as typeof SpectreTextElement\n }\n\n customElements.define(tagName, SpectreTextElement)\n return SpectreTextElement\n}\n","export * from './components'\n\nimport { defineSpectreButton } from './components/button'\nimport { defineSpectreInput } from './components/input'\nimport { defineSpectreTextarea } from './components/textarea'\nimport { defineSpectreSelect } from './components/select'\nimport { defineSpectreCheckbox } from './components/checkbox'\nimport { defineSpectreRadio } from './components/radio'\nimport { defineSpectreLabel } from './components/label'\nimport { defineSpectreFieldset } from './components/fieldset'\nimport { defineSpectreBadge } from './components/badge'\nimport { defineSpectreCard } from './components/card'\nimport { defineSpectreIconBox } from './components/icon-box'\nimport { defineSpectreRating } from './components/rating'\nimport { defineSpectreTestimonial } from './components/testimonial'\nimport { defineSpectreAlert } from './components/alert'\nimport { defineSpectreAvatar } from './components/avatar'\nimport { defineSpectreSpinner } from './components/spinner'\nimport { defineSpectreTag } from './components/tag'\nimport { defineSpectrePricingCard } from './components/pricing-card'\nimport { defineSpectreContainer } from './components/container'\nimport { defineSpectreGrid } from './components/grid'\nimport { defineSpectreSection } from './components/section'\nimport { defineSpectreStack } from './components/stack'\nimport { defineSpectreDropdown } from './components/dropdown'\nimport { defineSpectreFooter } from './components/footer'\nimport { defineSpectreModal } from './components/modal'\nimport { defineSpectreNav } from './components/nav'\nimport { defineSpectreNavItem } from './components/nav-item'\nimport { defineSpectreSidebar } from './components/sidebar'\nimport { defineSpectreToast } from './components/toast'\nimport { defineSpectreTooltip } from './components/tooltip'\nimport { defineSpectreText } from './components/text'\n\nexport function defineSpectreComponents(): void {\n defineSpectreButton()\n defineSpectreInput()\n defineSpectreTextarea()\n defineSpectreSelect()\n defineSpectreCheckbox()\n defineSpectreRadio()\n defineSpectreLabel()\n defineSpectreFieldset()\n defineSpectreBadge()\n defineSpectreCard()\n defineSpectreIconBox()\n defineSpectreRating()\n defineSpectreTestimonial()\n defineSpectreAlert()\n defineSpectreAvatar()\n defineSpectreSpinner()\n defineSpectreTag()\n defineSpectrePricingCard()\n defineSpectreContainer()\n defineSpectreGrid()\n defineSpectreSection()\n defineSpectreStack()\n defineSpectreDropdown()\n defineSpectreFooter()\n defineSpectreModal()\n defineSpectreNav()\n defineSpectreNavItem()\n defineSpectreSidebar()\n defineSpectreToast()\n defineSpectreTooltip()\n defineSpectreText()\n}\n"]}
|