@mhmo91/schmancy 0.4.60 → 0.4.62
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/ai/autocomplete.md +49 -12
- package/dist/ai/autocomplete.md +49 -12
- package/dist/{autocomplete-CF67hOX7.js → autocomplete-B7JYyVgi.js} +13 -28
- package/dist/autocomplete-B7JYyVgi.js.map +1 -0
- package/dist/autocomplete-CdUGguah.cjs +57 -0
- package/dist/autocomplete-CdUGguah.cjs.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-C8g7jgmf.cjs → avatar-CPKFq9zM.cjs} +2 -2
- package/dist/{avatar-C8g7jgmf.cjs.map → avatar-CPKFq9zM.cjs.map} +1 -1
- package/dist/{avatar-C7V7DXNX.js → avatar-DWN-scnK.js} +3 -3
- package/dist/{avatar-C7V7DXNX.js.map → avatar-DWN-scnK.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{icon-button-BEmjBwBq.js → icon-button-DIiL6-Vv.js} +13 -17
- package/dist/icon-button-DIiL6-Vv.js.map +1 -0
- package/dist/{icon-button-tVZLMjEJ.cjs → icon-button-DScsyzbc.cjs} +2 -6
- package/dist/icon-button-DScsyzbc.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +3 -3
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/package.json +1 -1
- package/dist/autocomplete-CF67hOX7.js.map +0 -1
- package/dist/autocomplete-CU-jz4zG.cjs +0 -74
- package/dist/autocomplete-CU-jz4zG.cjs.map +0 -1
- package/dist/icon-button-BEmjBwBq.js.map +0 -1
- package/dist/icon-button-tVZLMjEJ.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-button-DIiL6-Vv.js","sources":["../src/button/button.ts","../src/button/icon-button.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { html, LitElement } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'outlined' | 'text'\n\n/**\n * A button component.\n * @element schmancy-button\n * @slot - The default slot.\n * @slot prefix - The prefix slot.\n * @slot suffix - The suffix slot.\n */\n@customElement('schmancy-button')\nexport class SchmancyButton extends $LitElement() {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t * @public\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t@queryAssignedElements({\n\t\tslot: 'prefix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate prefixImgs!: HTMLImageElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'suffix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate suffixImgs!: HTMLImageElement[]\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['max-h-[24px]', 'max-w-[24px]', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\t// Add image classes and ensure decorative images have an empty alt.\n\t\tthis.prefixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t\tthis.suffixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\trender() {\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 py-[8px] px-[16px] transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(this.variant === 'outlined' ||\n\t\t\t\t\tthis.variant === 'text' ||\n\t\t\t\t\tthis.variant === 'filled' ||\n\t\t\t\t\tthis.variant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && this.variant === 'elevated',\n\t\t\t'w-full tex-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': this.variant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-solid border-outline': this.variant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': this.variant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': this.variant === 'filled tonal',\n\t\t\t'text-primary-default': this.variant === 'text',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-full': true,\n\t\t\t'hover:bg-primary-on': this.variant === 'filled',\n\t\t\t'hover:bg-primary-default': this.variant === 'outlined' || this.variant === 'elevated' || this.variant === 'text',\n\t\t\t'hover:bg-secondary-container': this.variant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-button': SchmancyButton\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement, PropertyValueMap } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { ButtonVariant } from './button'\n\n/**\n * An icon button component.\n * @element schmancy-icon-button\n * @slot - The default slot.\n */\n@customElement('schmancy-icon-button')\nexport class SchmnacyIconButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The size of the icon.\n\t * @attr\n\t * @default 'md'\n\t */\n\t@property({ type: String })\n\tpublic size: 'sm' | 'md' | 'lg' = 'md'\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\t// Manage aria-label manually so that we can always use our internal property.\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\t// Add any first-update logic here if needed.\n\t}\n\n\trender() {\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(this.variant === 'outlined' ||\n\t\t\t\t\tthis.variant === 'text' ||\n\t\t\t\t\tthis.variant === 'filled' ||\n\t\t\t\t\tthis.variant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && this.variant === 'elevated',\n\t\t\t'w-full text-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': this.variant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-outline': this.variant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': this.variant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': this.variant === 'filled tonal',\n\t\t\t'text-primary-default': this.variant === 'text',\n\t\t\t'px-[6px] py-[6px]': this.size === 'sm',\n\t\t\t'px-[8px] py-[8px]': this.size === 'md',\n\t\t\t'px-[12px] py-[12px]': this.size === 'lg',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'hover:opacity-[0.08] rounded-full z-0': true,\n\t\t\t'hover:bg-primary-on': this.variant === 'filled',\n\t\t\t'hover:bg-primary-default': this.variant === 'outlined' || this.variant === 'elevated' || this.variant === 'text',\n\t\t\t'hover:bg-secondary-container': this.variant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-icon>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</schmancy-icon>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon-button': SchmnacyIconButton\n\t}\n}\n"],"names":["SchmancyButton","$LitElement","constructor","super","arguments","this","variant","width","type","disabled","value","oldVal","_ariaLabel","hasAttribute","removeAttribute","requestUpdate","ariaLabel","options","nativeElement","focus","blur","imgClasses","firstUpdated","prefixImgs","forEach","img","classList","add","setAttribute","suffixImgs","click","dispatchEvent","Event","bubbles","composed","event","preventDefault","stopPropagation","render","classes","stateLayerClasses","href","html","ifDefined","classMap","_preventDefault","when","shadowRootOptions","LitElement","mode","delegatesFocus","__decorateClass","query","prototype","property","reflect","String","Boolean","attribute","queryAssignedElements","slot","flatten","selector","customElement","SchmnacyIconButton","css","size","_changedProperties"],"mappings":"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"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
"use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const u=require("./litElement.mixin-BEbYQVKW.cjs");require("./tailwind.mixin-NrMHmraa.cjs");const i=require("lit/decorators.js"),s=require("lit"),n=require("lit/directives/if-defined.js"),p=require("lit/directives/when.js");var b=Object.defineProperty,f=Object.getOwnPropertyDescriptor,r=(t,e,h,o)=>{for(var d,a=o>1?void 0:o?f(e,h):e,c=t.length-1;c>=0;c--)(d=t[c])&&(a=(o?d(e,h,a):d(a))||a);return o&&a&&b(e,h,a),a};exports.SchmancyButton=class extends u.$LitElement(s.
|
|
2
|
-
:host {
|
|
3
|
-
display: block;
|
|
4
|
-
}
|
|
5
|
-
`){constructor(){super(...arguments),this.variant="text",this.width="auto",this.type="button",this.disabled=!1}set ariaLabel(t){const e=this._ariaLabel;this._ariaLabel=t,this.hasAttribute("aria-label")&&this.removeAttribute("aria-label"),this.requestUpdate("ariaLabel",e)}get ariaLabel(){return this._ariaLabel}focus(t){this.nativeElement.focus(t)}blur(){this.nativeElement.blur()}get imgClasses(){return["max-h-[24px]","max-w-[24px]","object-contain"]}firstUpdated(){this.prefixImgs?.forEach(t=>{t.classList.add(...this.imgClasses),t.hasAttribute("alt")||t.setAttribute("alt","")}),this.suffixImgs?.forEach(t=>{t.classList.add(...this.imgClasses),t.hasAttribute("alt")||t.setAttribute("alt","")})}click(){this.dispatchEvent(new Event("click",{bubbles:!0,composed:!0}))}_preventDefault(t){t.preventDefault(),t.stopPropagation()}render(){const t={"z-0 py-[8px] px-[16px] transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden":!0,"cursor-pointer":!this.disabled,"opacity-[0.38]":this.disabled,"hover:shadow-xs":!this.disabled&&(this.variant==="outlined"||this.variant==="text"||this.variant==="filled"||this.variant==="filled tonal"),"hover:shadow-sm":!this.disabled&&this.variant==="elevated","w-full tex-center":this.width==="full","bg-surface-low text-primary-default shadow-xs":this.variant==="elevated","bg-transparent text-primary-default border-1 border-solid border-outline":this.variant==="outlined","bg-primary-default text-primary-on":this.variant==="filled","bg-secondary-container text-secondary-onContainer":this.variant==="filled tonal","text-primary-default":this.variant==="text"},e={"absolute inset-0 hover:opacity-[0.08] z-0 rounded-full":!0,"hover:bg-primary-on":this.variant==="filled","hover:bg-primary-default":this.variant==="outlined"||this.variant==="elevated"||this.variant==="text","hover:bg-secondary-container":this.variant==="filled tonal"};return this.href?s.html`
|
|
1
|
+
"use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const u=require("./litElement.mixin-BEbYQVKW.cjs");require("./tailwind.mixin-NrMHmraa.cjs");const i=require("lit/decorators.js"),s=require("lit"),n=require("lit/directives/if-defined.js"),p=require("lit/directives/when.js");var b=Object.defineProperty,f=Object.getOwnPropertyDescriptor,r=(t,e,h,o)=>{for(var d,a=o>1?void 0:o?f(e,h):e,c=t.length-1;c>=0;c--)(d=t[c])&&(a=(o?d(e,h,a):d(a))||a);return o&&a&&b(e,h,a),a};exports.SchmancyButton=class extends u.$LitElement(){constructor(){super(...arguments),this.variant="text",this.width="auto",this.type="button",this.disabled=!1}set ariaLabel(t){const e=this._ariaLabel;this._ariaLabel=t,this.hasAttribute("aria-label")&&this.removeAttribute("aria-label"),this.requestUpdate("ariaLabel",e)}get ariaLabel(){return this._ariaLabel}focus(t){this.nativeElement.focus(t)}blur(){this.nativeElement.blur()}get imgClasses(){return["max-h-[24px]","max-w-[24px]","object-contain"]}firstUpdated(){this.prefixImgs?.forEach(t=>{t.classList.add(...this.imgClasses),t.hasAttribute("alt")||t.setAttribute("alt","")}),this.suffixImgs?.forEach(t=>{t.classList.add(...this.imgClasses),t.hasAttribute("alt")||t.setAttribute("alt","")})}click(){this.dispatchEvent(new Event("click",{bubbles:!0,composed:!0}))}_preventDefault(t){t.preventDefault(),t.stopPropagation()}render(){const t={"z-0 py-[8px] px-[16px] transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden":!0,"cursor-pointer":!this.disabled,"opacity-[0.38]":this.disabled,"hover:shadow-xs":!this.disabled&&(this.variant==="outlined"||this.variant==="text"||this.variant==="filled"||this.variant==="filled tonal"),"hover:shadow-sm":!this.disabled&&this.variant==="elevated","w-full tex-center":this.width==="full","bg-surface-low text-primary-default shadow-xs":this.variant==="elevated","bg-transparent text-primary-default border-1 border-solid border-outline":this.variant==="outlined","bg-primary-default text-primary-on":this.variant==="filled","bg-secondary-container text-secondary-onContainer":this.variant==="filled tonal","text-primary-default":this.variant==="text"},e={"absolute inset-0 hover:opacity-[0.08] z-0 rounded-full":!0,"hover:bg-primary-on":this.variant==="filled","hover:bg-primary-default":this.variant==="outlined"||this.variant==="elevated"||this.variant==="text","hover:bg-secondary-container":this.variant==="filled tonal"};return this.href?s.html`
|
|
6
2
|
<a
|
|
7
3
|
part="base"
|
|
8
4
|
href=${n.ifDefined(this.disabled?void 0:this.href)}
|
|
@@ -65,4 +61,4 @@
|
|
|
65
61
|
</schmancy-icon>
|
|
66
62
|
</button>
|
|
67
63
|
`}},exports.SchmnacyIconButton.shadowRootOptions={...s.LitElement.shadowRootOptions,mode:"open",delegatesFocus:!0},l([i.query('[part="base"]',!0)],exports.SchmnacyIconButton.prototype,"nativeElement",2),l([i.property({type:String})],exports.SchmnacyIconButton.prototype,"size",2),l([i.property({reflect:!0,type:String})],exports.SchmnacyIconButton.prototype,"variant",2),l([i.property()],exports.SchmnacyIconButton.prototype,"width",2),l([i.property({reflect:!0,type:String})],exports.SchmnacyIconButton.prototype,"type",2),l([i.property()],exports.SchmnacyIconButton.prototype,"href",2),l([i.property({type:Boolean,reflect:!0})],exports.SchmnacyIconButton.prototype,"disabled",2),l([i.property({attribute:"aria-label"})],exports.SchmnacyIconButton.prototype,"ariaLabel",1),exports.SchmnacyIconButton=l([i.customElement("schmancy-icon-button")],exports.SchmnacyIconButton);
|
|
68
|
-
//# sourceMappingURL=icon-button-
|
|
64
|
+
//# sourceMappingURL=icon-button-DScsyzbc.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-button-DScsyzbc.cjs","sources":["../src/button/button.ts","../src/button/icon-button.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { html, LitElement } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'outlined' | 'text'\n\n/**\n * A button component.\n * @element schmancy-button\n * @slot - The default slot.\n * @slot prefix - The prefix slot.\n * @slot suffix - The suffix slot.\n */\n@customElement('schmancy-button')\nexport class SchmancyButton extends $LitElement() {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t * @public\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t@queryAssignedElements({\n\t\tslot: 'prefix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate prefixImgs!: HTMLImageElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'suffix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate suffixImgs!: HTMLImageElement[]\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['max-h-[24px]', 'max-w-[24px]', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\t// Add image classes and ensure decorative images have an empty alt.\n\t\tthis.prefixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t\tthis.suffixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\trender() {\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 py-[8px] px-[16px] transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(this.variant === 'outlined' ||\n\t\t\t\t\tthis.variant === 'text' ||\n\t\t\t\t\tthis.variant === 'filled' ||\n\t\t\t\t\tthis.variant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && this.variant === 'elevated',\n\t\t\t'w-full tex-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': this.variant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-solid border-outline': this.variant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': this.variant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': this.variant === 'filled tonal',\n\t\t\t'text-primary-default': this.variant === 'text',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-full': true,\n\t\t\t'hover:bg-primary-on': this.variant === 'filled',\n\t\t\t'hover:bg-primary-default': this.variant === 'outlined' || this.variant === 'elevated' || this.variant === 'text',\n\t\t\t'hover:bg-secondary-container': this.variant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-button': SchmancyButton\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement, PropertyValueMap } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { ButtonVariant } from './button'\n\n/**\n * An icon button component.\n * @element schmancy-icon-button\n * @slot - The default slot.\n */\n@customElement('schmancy-icon-button')\nexport class SchmnacyIconButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The size of the icon.\n\t * @attr\n\t * @default 'md'\n\t */\n\t@property({ type: String })\n\tpublic size: 'sm' | 'md' | 'lg' = 'md'\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\t// Manage aria-label manually so that we can always use our internal property.\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\t// Add any first-update logic here if needed.\n\t}\n\n\trender() {\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(this.variant === 'outlined' ||\n\t\t\t\t\tthis.variant === 'text' ||\n\t\t\t\t\tthis.variant === 'filled' ||\n\t\t\t\t\tthis.variant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && this.variant === 'elevated',\n\t\t\t'w-full text-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': this.variant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-outline': this.variant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': this.variant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': this.variant === 'filled tonal',\n\t\t\t'text-primary-default': this.variant === 'text',\n\t\t\t'px-[6px] py-[6px]': this.size === 'sm',\n\t\t\t'px-[8px] py-[8px]': this.size === 'md',\n\t\t\t'px-[12px] py-[12px]': this.size === 'lg',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'hover:opacity-[0.08] rounded-full z-0': true,\n\t\t\t'hover:bg-primary-on': this.variant === 'filled',\n\t\t\t'hover:bg-primary-default': this.variant === 'outlined' || this.variant === 'elevated' || this.variant === 'text',\n\t\t\t'hover:bg-secondary-container': this.variant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-icon>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</schmancy-icon>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon-button': SchmnacyIconButton\n\t}\n}\n"],"names":["SchmancyButton","$LitElement","constructor","super","arguments","this","variant","width","type","disabled","value","oldVal","_ariaLabel","hasAttribute","removeAttribute","requestUpdate","ariaLabel","options","nativeElement","focus","blur","firstUpdated","prefixImgs","forEach","img","classList","add","imgClasses","setAttribute","suffixImgs","click","dispatchEvent","Event","bubbles","composed","event","preventDefault","stopPropagation","render","classes","stateLayerClasses","href","html","ifDefined","classMap","_preventDefault","when","shadowRootOptions","LitElement","mode","delegatesFocus","__decorateClass","query","prototype","property","reflect","String","Boolean","attribute","queryAssignedElements","slot","flatten","selector","customElement","SchmnacyIconButton","css","size","_changedProperties"],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./animated-text-EjzqX_DQ.cjs");const c=require("./area.component-B2Q4fmyG.cjs"),t=require("./utils-C9nzOWpR.cjs");require("./autocomplete-CU-jz4zG.cjs");const r=require("./avatar-C8g7jgmf.cjs"),T=require("./boat-C_4qzJbd.cjs");require("./spinner-Dx1Ryl5-.cjs");const b=require("./icon-button-tVZLMjEJ.cjs");require("./media-CvzaJPdC.cjs");const M=require("./checkbox-BbrKQhIR.cjs");require("./chips-BGkLDY0l.cjs");const S=require("./code-preview-CjcxgpTv.cjs"),I=require("./payment-card-form-mtpcOUF1.cjs"),p=require("./date-range-BYQ09fir.cjs"),R=require("./date-range-inline-CaFUtSBm.cjs"),d=require("./delay-B9F4XCNZ.cjs"),A=require("./details-BaRWlZSt.cjs"),l=require("./dialog-content-B8KcY2sH.cjs"),g=require("./dialog-service-1uYQx7dw.cjs"),u=require("./ripple-C2BHbhcS.cjs");require("./divider-DSnh0b6W.cjs");const s=require("./dropdown-content-RUtMP_Q9.cjs"),f=require("./timezone-CDIIaBDU.cjs");require("./form-Cr0sCISI.cjs"),require("./icon-DaI15W0a.cjs");const C=require("./input-DbTyzINg.cjs"),o=require("./flex-BFiiMqk7.cjs"),h=require("./list-DwM0r5Yf.cjs"),N=require("./map-B5zH_aTP.cjs");require("./menu-CRDNeLR4.cjs");const i=require("./notification-service-8yVD9JmC.cjs"),O=require("./notify-BDQGMezE.cjs");require("./option-CHBn_LVC.cjs"),require("./progress-D2Ir6B3O.cjs");const P=require("./radio-button--qELnlmY.cjs"),v=require("./rxjs-utils.cjs");require("rxjs"),require("./index-DyJ0oDpR.cjs");const x=require("./select-cK7FzCV1.cjs"),m=require("./sheet-C0bdYFvW.cjs"),j=require("./slider-Dxefxjle.cjs"),y=require("./schmancy-steps-container-1RPGYqA4.cjs"),a=require("./context-object-K_1gDFu-.cjs"),e=require("./selector-hook-DB8RFC1y.cjs"),D=require("./surface-BdhBs3Iz.cjs"),q=require("./table-DOZUn3w8.cjs");require("./tabs-compatibility-BvLxoOTz.cjs"),require("./textarea-B59CHwhS.cjs");const n=require("./theme.component-Br50YrTh.cjs"),E=require("./theme.interface-Xg5Zi46a.cjs");require("./theme-button-DYpBAOyy.cjs");const w=require("./tooltip-DA-XG9ME.cjs"),B=require("./tree--0R_mj8U.cjs"),H=require("./types.cjs"),F=require("./typewriter-CqwSUASf.cjs"),Y=require("./typography-U5supY1N.cjs"),V=require("./intersection-CVvaDv96.cjs"),z=require("./number-B7aCRYnH.cjs"),G=require("./search-DWW8IoOp.cjs");exports.FINDING_MORTIES=c.FINDING_MORTIES,exports.HERE_RICKY=c.HERE_RICKY,exports.HISTORY_STRATEGY=c.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>c.SchmancyArea}),exports.area=c.area,exports.routerHistory=c.routerHistory,exports.buildQueryString=t.buildQueryString,exports.compareActiveRoutes=t.compareActiveRoutes,exports.compareCustomElementConstructors=t.compareCustomElementConstructors,exports.compareRouteActions=t.compareRouteActions,exports.createRouteCacheKey=t.createRouteCacheKey,exports.debounce=t.debounce,exports.decodeRouteState=t.decodeRouteState,exports.deepMerge=t.deepMerge,exports.encodeRouteState=t.encodeRouteState,exports.extractQueryParams=t.extractQueryParams,exports.getTagName=t.getTagName,exports.isObject=t.isObject,exports.normalizeTagName=t.normalizeTagName,exports.sanitizeRouteState=t.sanitizeRouteState,exports.$drawer=r.$drawer,exports.HereMorty=r.HereMorty,Object.defineProperty(exports,"ScBadgeV2",{enumerable:!0,get:()=>r.ScBadgeV2}),Object.defineProperty(exports,"SchmancyAvatar",{enumerable:!0,get:()=>r.SchmancyAvatar}),Object.defineProperty(exports,"SchmancyBadgeV2",{enumerable:!0,get:()=>r.SchmancyBadgeV2}),Object.defineProperty(exports,"SchmancyContentDrawer",{enumerable:!0,get:()=>r.SchmancyContentDrawer}),exports.SchmancyContentDrawerID=r.SchmancyContentDrawerID,Object.defineProperty(exports,"SchmancyContentDrawerMain",{enumerable:!0,get:()=>r.SchmancyContentDrawerMain}),exports.SchmancyContentDrawerMaxHeight=r.SchmancyContentDrawerMaxHeight,exports.SchmancyContentDrawerMinWidth=r.SchmancyContentDrawerMinWidth,Object.defineProperty(exports,"SchmancyContentDrawerSheet",{enumerable:!0,get:()=>r.SchmancyContentDrawerSheet}),exports.SchmancyContentDrawerSheetMode=r.SchmancyContentDrawerSheetMode,exports.SchmancyContentDrawerSheetState=r.SchmancyContentDrawerSheetState,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>r.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=r.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=r.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>r.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>r.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>r.SchmancyNavigationDrawerSidebar}),Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>r.SchmancyTeleportation}),exports.WhereAreYouRicky=r.WhereAreYouRicky,exports.schmancyContentDrawer=r.schmancyContentDrawer,exports.schmancyNavDrawer=r.schmancyNavDrawer,exports.teleport=r.teleport,Object.defineProperty(exports,"SchmancyBoat",{enumerable:!0,get:()=>T.SchmancyBoat}),Object.defineProperty(exports,"SchmancyButton",{enumerable:!0,get:()=>b.SchmancyButton}),Object.defineProperty(exports,"SchmnacyIconButton",{enumerable:!0,get:()=>b.SchmnacyIconButton}),Object.defineProperty(exports,"SchmancyCheckbox",{enumerable:!0,get:()=>M.SchmancyCheckbox}),Object.defineProperty(exports,"SchmancyCode",{enumerable:!0,get:()=>S.SchmancyCode}),Object.defineProperty(exports,"SchmancyCodeHighlight",{enumerable:!0,get:()=>S.SchmancyCode}),Object.defineProperty(exports,"SchmancyCodePreview",{enumerable:!0,get:()=>S.SchmancyCodePreview}),Object.defineProperty(exports,"SchmancyPaymentCardForm",{enumerable:!0,get:()=>I.SchmancyPaymentCardForm}),Object.defineProperty(exports,"SchmancyDateRange",{enumerable:!0,get:()=>p.SchmancyDateRange}),exports.validateInitialDateRange=p.validateInitialDateRange,Object.defineProperty(exports,"SchmancyDateRangeInline",{enumerable:!0,get:()=>R.SchmancyDateRangeInline}),Object.defineProperty(exports,"SchmancyDelay",{enumerable:!0,get:()=>d.SchmancyDelay}),exports.delayContext=d.delayContext,Object.defineProperty(exports,"SchmancyDetails",{enumerable:!0,get:()=>A.SchmancyDetails}),Object.defineProperty(exports,"ConfirmDialog",{enumerable:!0,get:()=>l.ConfirmDialog}),Object.defineProperty(exports,"SchmancyDialog",{enumerable:!0,get:()=>l.SchmancyDialog}),Object.defineProperty(exports,"SchmancyDialogContent",{enumerable:!0,get:()=>l.SchmancyDialogContent}),exports.$dialog=g.$dialog,exports.DialogService=g.DialogService,exports.color=u.color,exports.fullHeight=u.fullHeight,exports.ripple=u.ripple,Object.defineProperty(exports,"SchmancyDropdown",{enumerable:!0,get:()=>s.SchmancyDropdown}),Object.defineProperty(exports,"SchmancyDropdownContent",{enumerable:!0,get:()=>s.SchmancyDropdownContent}),Object.defineProperty(exports,"SchmancyCountriesSelect",{enumerable:!0,get:()=>f.SchmancyCountriesSelect}),Object.defineProperty(exports,"SchmancyTimezonesSelect",{enumerable:!0,get:()=>f.SchmancyTimezonesSelect}),Object.defineProperty(exports,"SchmancyInput",{enumerable:!0,get:()=>C.SchmancyInput}),Object.defineProperty(exports,"SchmancyInputCompat",{enumerable:!0,get:()=>C.SchmancyInputCompat}),Object.defineProperty(exports,"SchmancyFlex",{enumerable:!0,get:()=>o.SchmancyFlex}),Object.defineProperty(exports,"SchmancyFlexV2",{enumerable:!0,get:()=>o.SchmancyFlexV2}),Object.defineProperty(exports,"SchmancyGrid",{enumerable:!0,get:()=>o.SchmancyGrid}),Object.defineProperty(exports,"SchmancyScroll",{enumerable:!0,get:()=>o.SchmancyScroll}),Object.defineProperty(exports,"List",{enumerable:!0,get:()=>h.List}),Object.defineProperty(exports,"SchmancyListItem",{enumerable:!0,get:()=>h.SchmancyListItem}),exports.SchmancyListTypeContext=h.SchmancyListTypeContext,Object.defineProperty(exports,"SchmancyMap",{enumerable:!0,get:()=>N.SchmancyMap}),exports.$notify=i.$notify,exports.NotificationAudioService=i.NotificationAudioService,Object.defineProperty(exports,"SchmancyNotification",{enumerable:!0,get:()=>i.SchmancyNotification}),Object.defineProperty(exports,"SchmancyNotificationContainer",{enumerable:!0,get:()=>i.SchmancyNotificationContainer}),exports.notify=O.notify,exports.notifyProgress=O.notifyProgress,Object.defineProperty(exports,"RadioButton",{enumerable:!0,get:()=>P.RadioButton}),Object.defineProperty(exports,"RadioGroup",{enumerable:!0,get:()=>P.RadioGroup}),exports.mutationObserver=v.mutationObserver,Object.defineProperty(exports,"SchmancySelect",{enumerable:!0,get:()=>x.SchmancySelect}),exports.SchmancySheetPosition=m.SchmancySheetPosition,exports.SheetHereMorty=m.SheetHereMorty,exports.SheetWhereAreYouRicky=m.SheetWhereAreYouRicky,exports.sheet=m.sheet,Object.defineProperty(exports,"SchmancySlide",{enumerable:!0,get:()=>j.SchmancySlide}),Object.defineProperty(exports,"SchmancySlider",{enumerable:!0,get:()=>j.SchmancySlider}),Object.defineProperty(exports,"SchmancyStep",{enumerable:!0,get:()=>y.SchmancyStep}),Object.defineProperty(exports,"SchmancyStepsContainer",{enumerable:!0,get:()=>y.SchmancyStepsContainer}),exports.StepsController=y.StepsController,exports.stepsContext=y.stepsContext,exports.BaseStore=a.BaseStore,exports.IndexedDBStorageManager=a.IndexedDBStorageManager,exports.LocalStorageManager=a.LocalStorageManager,exports.MemoryStorageManager=a.MemoryStorageManager,exports.SchmancyArrayStore=a.SchmancyArrayStore,exports.SchmancyStoreObject=a.SchmancyStoreObject,exports.SessionStorageManager=a.SessionStorageManager,exports.StoreError=a.StoreError,exports.createStorageManager=a.createStorageManager,exports.compareValues=e.compareValues,exports.createArrayContext=e.createArrayContext,exports.createCollectionSelector=e.createCollectionSelector,exports.createCompoundSelector=e.createCompoundSelector,exports.createContext=e.createContext,exports.createCountSelector=e.createCountSelector,exports.createEntriesSelector=e.createEntriesSelector,exports.createFilterSelector=e.createFilterSelector,exports.createFindSelector=e.createFindSelector,exports.createItemSelector=e.createItemSelector,exports.createItemsSelector=e.createItemsSelector,exports.createKeysSelector=e.createKeysSelector,exports.createMapSelector=e.createMapSelector,exports.createOptimizedSelector=e.createOptimizedSelector,exports.createSelector=e.createSelector,exports.createSortSelector=e.createSortSelector,exports.createTestArrayContext=e.createTestArrayContext,exports.filterArray=e.filterArray,exports.filterArrayItems=e.filterArrayItems,exports.filterMap=e.filterMap,exports.filterMapItems=e.filterMapItems,exports.getFieldValue=e.getFieldValue,exports.isArray=e.isArray,exports.isDate=e.isDate,exports.isIterable=e.isIterable,exports.isMap=e.isMap,exports.isNil=e.isNil,exports.isNumber=e.isNumber,exports.isPlainObject=e.isPlainObject,exports.isSet=e.isSet,exports.isString=e.isString,exports.select=e.select,exports.selectItem=e.selectItem,Object.defineProperty(exports,"SchmancySurface",{enumerable:!0,get:()=>D.SchmancySurface}),exports.SchmancySurfaceTypeContext=D.SchmancySurfaceTypeContext,Object.defineProperty(exports,"SchmancyDataTable",{enumerable:!0,get:()=>q.SchmancyDataTable}),Object.defineProperty(exports,"SchmancyTableRow",{enumerable:!0,get:()=>q.SchmancyTableRow}),Object.defineProperty(exports,"SchmancyThemeComponent",{enumerable:!0,get:()=>n.SchmancyThemeComponent}),exports.ThemeHereIAm=n.ThemeHereIAm,exports.ThemeWhereAreYou=n.ThemeWhereAreYou,exports.formateTheme=n.formateTheme,exports.tailwindStyles=n.tailwindStyles,exports.SchmancyTheme=E.SchmancyTheme,Object.defineProperty(exports,"SchmancyTooltip",{enumerable:!0,get:()=>w.SchmancyTooltip}),exports.tooltip=w.tooltip,Object.defineProperty(exports,"SchmancyTree",{enumerable:!0,get:()=>B.SchmancyTree}),exports.SchmancyEvents=H.SchmancyEvents,Object.defineProperty(exports,"TypewriterElement",{enumerable:!0,get:()=>F.TypewriterElement}),Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>Y.SchmancyTypography}),exports.intersection$=V.intersection$,exports.Numbers=z.Numbers,exports.similarity=G.similarity;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./animated-text-EjzqX_DQ.cjs");const c=require("./area.component-B2Q4fmyG.cjs"),t=require("./utils-C9nzOWpR.cjs");require("./autocomplete-CdUGguah.cjs");const r=require("./avatar-CPKFq9zM.cjs"),T=require("./boat-C_4qzJbd.cjs");require("./spinner-Dx1Ryl5-.cjs");const b=require("./icon-button-DScsyzbc.cjs");require("./media-CvzaJPdC.cjs");const M=require("./checkbox-BbrKQhIR.cjs");require("./chips-BGkLDY0l.cjs");const S=require("./code-preview-CjcxgpTv.cjs"),I=require("./payment-card-form-mtpcOUF1.cjs"),p=require("./date-range-BYQ09fir.cjs"),R=require("./date-range-inline-CaFUtSBm.cjs"),d=require("./delay-B9F4XCNZ.cjs"),A=require("./details-BaRWlZSt.cjs"),l=require("./dialog-content-B8KcY2sH.cjs"),g=require("./dialog-service-1uYQx7dw.cjs"),u=require("./ripple-C2BHbhcS.cjs");require("./divider-DSnh0b6W.cjs");const s=require("./dropdown-content-RUtMP_Q9.cjs"),f=require("./timezone-CDIIaBDU.cjs");require("./form-Cr0sCISI.cjs"),require("./icon-DaI15W0a.cjs");const C=require("./input-DbTyzINg.cjs"),o=require("./flex-BFiiMqk7.cjs"),h=require("./list-DwM0r5Yf.cjs"),N=require("./map-B5zH_aTP.cjs");require("./menu-CRDNeLR4.cjs");const i=require("./notification-service-8yVD9JmC.cjs"),O=require("./notify-BDQGMezE.cjs");require("./option-CHBn_LVC.cjs"),require("./progress-D2Ir6B3O.cjs");const P=require("./radio-button--qELnlmY.cjs"),v=require("./rxjs-utils.cjs");require("rxjs"),require("./index-DyJ0oDpR.cjs");const x=require("./select-cK7FzCV1.cjs"),m=require("./sheet-C0bdYFvW.cjs"),j=require("./slider-Dxefxjle.cjs"),y=require("./schmancy-steps-container-1RPGYqA4.cjs"),a=require("./context-object-K_1gDFu-.cjs"),e=require("./selector-hook-DB8RFC1y.cjs"),D=require("./surface-BdhBs3Iz.cjs"),q=require("./table-DOZUn3w8.cjs");require("./tabs-compatibility-BvLxoOTz.cjs"),require("./textarea-B59CHwhS.cjs");const n=require("./theme.component-Br50YrTh.cjs"),E=require("./theme.interface-Xg5Zi46a.cjs");require("./theme-button-DYpBAOyy.cjs");const w=require("./tooltip-DA-XG9ME.cjs"),B=require("./tree--0R_mj8U.cjs"),H=require("./types.cjs"),F=require("./typewriter-CqwSUASf.cjs"),Y=require("./typography-U5supY1N.cjs"),V=require("./intersection-CVvaDv96.cjs"),z=require("./number-B7aCRYnH.cjs"),G=require("./search-DWW8IoOp.cjs");exports.FINDING_MORTIES=c.FINDING_MORTIES,exports.HERE_RICKY=c.HERE_RICKY,exports.HISTORY_STRATEGY=c.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>c.SchmancyArea}),exports.area=c.area,exports.routerHistory=c.routerHistory,exports.buildQueryString=t.buildQueryString,exports.compareActiveRoutes=t.compareActiveRoutes,exports.compareCustomElementConstructors=t.compareCustomElementConstructors,exports.compareRouteActions=t.compareRouteActions,exports.createRouteCacheKey=t.createRouteCacheKey,exports.debounce=t.debounce,exports.decodeRouteState=t.decodeRouteState,exports.deepMerge=t.deepMerge,exports.encodeRouteState=t.encodeRouteState,exports.extractQueryParams=t.extractQueryParams,exports.getTagName=t.getTagName,exports.isObject=t.isObject,exports.normalizeTagName=t.normalizeTagName,exports.sanitizeRouteState=t.sanitizeRouteState,exports.$drawer=r.$drawer,exports.HereMorty=r.HereMorty,Object.defineProperty(exports,"ScBadgeV2",{enumerable:!0,get:()=>r.ScBadgeV2}),Object.defineProperty(exports,"SchmancyAvatar",{enumerable:!0,get:()=>r.SchmancyAvatar}),Object.defineProperty(exports,"SchmancyBadgeV2",{enumerable:!0,get:()=>r.SchmancyBadgeV2}),Object.defineProperty(exports,"SchmancyContentDrawer",{enumerable:!0,get:()=>r.SchmancyContentDrawer}),exports.SchmancyContentDrawerID=r.SchmancyContentDrawerID,Object.defineProperty(exports,"SchmancyContentDrawerMain",{enumerable:!0,get:()=>r.SchmancyContentDrawerMain}),exports.SchmancyContentDrawerMaxHeight=r.SchmancyContentDrawerMaxHeight,exports.SchmancyContentDrawerMinWidth=r.SchmancyContentDrawerMinWidth,Object.defineProperty(exports,"SchmancyContentDrawerSheet",{enumerable:!0,get:()=>r.SchmancyContentDrawerSheet}),exports.SchmancyContentDrawerSheetMode=r.SchmancyContentDrawerSheetMode,exports.SchmancyContentDrawerSheetState=r.SchmancyContentDrawerSheetState,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>r.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=r.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=r.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>r.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>r.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>r.SchmancyNavigationDrawerSidebar}),Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>r.SchmancyTeleportation}),exports.WhereAreYouRicky=r.WhereAreYouRicky,exports.schmancyContentDrawer=r.schmancyContentDrawer,exports.schmancyNavDrawer=r.schmancyNavDrawer,exports.teleport=r.teleport,Object.defineProperty(exports,"SchmancyBoat",{enumerable:!0,get:()=>T.SchmancyBoat}),Object.defineProperty(exports,"SchmancyButton",{enumerable:!0,get:()=>b.SchmancyButton}),Object.defineProperty(exports,"SchmnacyIconButton",{enumerable:!0,get:()=>b.SchmnacyIconButton}),Object.defineProperty(exports,"SchmancyCheckbox",{enumerable:!0,get:()=>M.SchmancyCheckbox}),Object.defineProperty(exports,"SchmancyCode",{enumerable:!0,get:()=>S.SchmancyCode}),Object.defineProperty(exports,"SchmancyCodeHighlight",{enumerable:!0,get:()=>S.SchmancyCode}),Object.defineProperty(exports,"SchmancyCodePreview",{enumerable:!0,get:()=>S.SchmancyCodePreview}),Object.defineProperty(exports,"SchmancyPaymentCardForm",{enumerable:!0,get:()=>I.SchmancyPaymentCardForm}),Object.defineProperty(exports,"SchmancyDateRange",{enumerable:!0,get:()=>p.SchmancyDateRange}),exports.validateInitialDateRange=p.validateInitialDateRange,Object.defineProperty(exports,"SchmancyDateRangeInline",{enumerable:!0,get:()=>R.SchmancyDateRangeInline}),Object.defineProperty(exports,"SchmancyDelay",{enumerable:!0,get:()=>d.SchmancyDelay}),exports.delayContext=d.delayContext,Object.defineProperty(exports,"SchmancyDetails",{enumerable:!0,get:()=>A.SchmancyDetails}),Object.defineProperty(exports,"ConfirmDialog",{enumerable:!0,get:()=>l.ConfirmDialog}),Object.defineProperty(exports,"SchmancyDialog",{enumerable:!0,get:()=>l.SchmancyDialog}),Object.defineProperty(exports,"SchmancyDialogContent",{enumerable:!0,get:()=>l.SchmancyDialogContent}),exports.$dialog=g.$dialog,exports.DialogService=g.DialogService,exports.color=u.color,exports.fullHeight=u.fullHeight,exports.ripple=u.ripple,Object.defineProperty(exports,"SchmancyDropdown",{enumerable:!0,get:()=>s.SchmancyDropdown}),Object.defineProperty(exports,"SchmancyDropdownContent",{enumerable:!0,get:()=>s.SchmancyDropdownContent}),Object.defineProperty(exports,"SchmancyCountriesSelect",{enumerable:!0,get:()=>f.SchmancyCountriesSelect}),Object.defineProperty(exports,"SchmancyTimezonesSelect",{enumerable:!0,get:()=>f.SchmancyTimezonesSelect}),Object.defineProperty(exports,"SchmancyInput",{enumerable:!0,get:()=>C.SchmancyInput}),Object.defineProperty(exports,"SchmancyInputCompat",{enumerable:!0,get:()=>C.SchmancyInputCompat}),Object.defineProperty(exports,"SchmancyFlex",{enumerable:!0,get:()=>o.SchmancyFlex}),Object.defineProperty(exports,"SchmancyFlexV2",{enumerable:!0,get:()=>o.SchmancyFlexV2}),Object.defineProperty(exports,"SchmancyGrid",{enumerable:!0,get:()=>o.SchmancyGrid}),Object.defineProperty(exports,"SchmancyScroll",{enumerable:!0,get:()=>o.SchmancyScroll}),Object.defineProperty(exports,"List",{enumerable:!0,get:()=>h.List}),Object.defineProperty(exports,"SchmancyListItem",{enumerable:!0,get:()=>h.SchmancyListItem}),exports.SchmancyListTypeContext=h.SchmancyListTypeContext,Object.defineProperty(exports,"SchmancyMap",{enumerable:!0,get:()=>N.SchmancyMap}),exports.$notify=i.$notify,exports.NotificationAudioService=i.NotificationAudioService,Object.defineProperty(exports,"SchmancyNotification",{enumerable:!0,get:()=>i.SchmancyNotification}),Object.defineProperty(exports,"SchmancyNotificationContainer",{enumerable:!0,get:()=>i.SchmancyNotificationContainer}),exports.notify=O.notify,exports.notifyProgress=O.notifyProgress,Object.defineProperty(exports,"RadioButton",{enumerable:!0,get:()=>P.RadioButton}),Object.defineProperty(exports,"RadioGroup",{enumerable:!0,get:()=>P.RadioGroup}),exports.mutationObserver=v.mutationObserver,Object.defineProperty(exports,"SchmancySelect",{enumerable:!0,get:()=>x.SchmancySelect}),exports.SchmancySheetPosition=m.SchmancySheetPosition,exports.SheetHereMorty=m.SheetHereMorty,exports.SheetWhereAreYouRicky=m.SheetWhereAreYouRicky,exports.sheet=m.sheet,Object.defineProperty(exports,"SchmancySlide",{enumerable:!0,get:()=>j.SchmancySlide}),Object.defineProperty(exports,"SchmancySlider",{enumerable:!0,get:()=>j.SchmancySlider}),Object.defineProperty(exports,"SchmancyStep",{enumerable:!0,get:()=>y.SchmancyStep}),Object.defineProperty(exports,"SchmancyStepsContainer",{enumerable:!0,get:()=>y.SchmancyStepsContainer}),exports.StepsController=y.StepsController,exports.stepsContext=y.stepsContext,exports.BaseStore=a.BaseStore,exports.IndexedDBStorageManager=a.IndexedDBStorageManager,exports.LocalStorageManager=a.LocalStorageManager,exports.MemoryStorageManager=a.MemoryStorageManager,exports.SchmancyArrayStore=a.SchmancyArrayStore,exports.SchmancyStoreObject=a.SchmancyStoreObject,exports.SessionStorageManager=a.SessionStorageManager,exports.StoreError=a.StoreError,exports.createStorageManager=a.createStorageManager,exports.compareValues=e.compareValues,exports.createArrayContext=e.createArrayContext,exports.createCollectionSelector=e.createCollectionSelector,exports.createCompoundSelector=e.createCompoundSelector,exports.createContext=e.createContext,exports.createCountSelector=e.createCountSelector,exports.createEntriesSelector=e.createEntriesSelector,exports.createFilterSelector=e.createFilterSelector,exports.createFindSelector=e.createFindSelector,exports.createItemSelector=e.createItemSelector,exports.createItemsSelector=e.createItemsSelector,exports.createKeysSelector=e.createKeysSelector,exports.createMapSelector=e.createMapSelector,exports.createOptimizedSelector=e.createOptimizedSelector,exports.createSelector=e.createSelector,exports.createSortSelector=e.createSortSelector,exports.createTestArrayContext=e.createTestArrayContext,exports.filterArray=e.filterArray,exports.filterArrayItems=e.filterArrayItems,exports.filterMap=e.filterMap,exports.filterMapItems=e.filterMapItems,exports.getFieldValue=e.getFieldValue,exports.isArray=e.isArray,exports.isDate=e.isDate,exports.isIterable=e.isIterable,exports.isMap=e.isMap,exports.isNil=e.isNil,exports.isNumber=e.isNumber,exports.isPlainObject=e.isPlainObject,exports.isSet=e.isSet,exports.isString=e.isString,exports.select=e.select,exports.selectItem=e.selectItem,Object.defineProperty(exports,"SchmancySurface",{enumerable:!0,get:()=>D.SchmancySurface}),exports.SchmancySurfaceTypeContext=D.SchmancySurfaceTypeContext,Object.defineProperty(exports,"SchmancyDataTable",{enumerable:!0,get:()=>q.SchmancyDataTable}),Object.defineProperty(exports,"SchmancyTableRow",{enumerable:!0,get:()=>q.SchmancyTableRow}),Object.defineProperty(exports,"SchmancyThemeComponent",{enumerable:!0,get:()=>n.SchmancyThemeComponent}),exports.ThemeHereIAm=n.ThemeHereIAm,exports.ThemeWhereAreYou=n.ThemeWhereAreYou,exports.formateTheme=n.formateTheme,exports.tailwindStyles=n.tailwindStyles,exports.SchmancyTheme=E.SchmancyTheme,Object.defineProperty(exports,"SchmancyTooltip",{enumerable:!0,get:()=>w.SchmancyTooltip}),exports.tooltip=w.tooltip,Object.defineProperty(exports,"SchmancyTree",{enumerable:!0,get:()=>B.SchmancyTree}),exports.SchmancyEvents=H.SchmancyEvents,Object.defineProperty(exports,"TypewriterElement",{enumerable:!0,get:()=>F.TypewriterElement}),Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>Y.SchmancyTypography}),exports.intersection$=V.intersection$,exports.Numbers=z.Numbers,exports.similarity=G.similarity;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import "./animated-text-eC8jllzl.js";
|
|
2
2
|
import { F as C, H as g, b as u, S as D, a as b, r as w } from "./area.component-DM4WQ2-y.js";
|
|
3
3
|
import { l as I, h as M, c as R, f as A, j as N, a as v, b as H, d as B, e as E, k as F, g as O, i as $, n as j, s as k } from "./utils-03Coa8AW.js";
|
|
4
|
-
import "./autocomplete-
|
|
5
|
-
import { $ as P, H as Y, a as z, r as G, S as V, g as W, d as K, h as _, e as q, f as Q, i as J, b as U, c as X, k as Z, m as aa, n as ea, o as ra, l as ta, p as oa, q as sa, W as ca, s as na, j as ma, t as Sa } from "./avatar-
|
|
4
|
+
import "./autocomplete-B7JYyVgi.js";
|
|
5
|
+
import { $ as P, H as Y, a as z, r as G, S as V, g as W, d as K, h as _, e as q, f as Q, i as J, b as U, c as X, k as Z, m as aa, n as ea, o as ra, l as ta, p as oa, q as sa, W as ca, s as na, j as ma, t as Sa } from "./avatar-DWN-scnK.js";
|
|
6
6
|
import { S as pa } from "./boat-B6u4WObQ.js";
|
|
7
7
|
import "./spinner-BDOeYm_e.js";
|
|
8
|
-
import { S as ha, a as la } from "./icon-button-
|
|
8
|
+
import { S as ha, a as la } from "./icon-button-DIiL6-Vv.js";
|
|
9
9
|
import "./media-CljRelRT.js";
|
|
10
10
|
import { S as xa } from "./checkbox-BVfwdet-.js";
|
|
11
11
|
import "./chips-z-uec28U.js";
|
package/dist/nav-drawer.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-CPKFq9zM.cjs");exports.$drawer=e.$drawer,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>e.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=e.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=e.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>e.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerSidebar}),exports.schmancyNavDrawer=e.schmancyNavDrawer;
|
|
2
2
|
//# sourceMappingURL=nav-drawer.cjs.map
|
package/dist/nav-drawer.js
CHANGED
package/dist/teleport.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-CPKFq9zM.cjs");exports.HereMorty=e.HereMorty,Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>e.SchmancyTeleportation}),exports.WhereAreYouRicky=e.WhereAreYouRicky,exports.teleport=e.teleport;
|
|
2
2
|
//# sourceMappingURL=teleport.cjs.map
|
package/dist/teleport.js
CHANGED
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete-CF67hOX7.js","sources":["../src/autocomplete/autocomplete.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { InputSize, SchmancyInput } from '@schmancy/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport {\n BehaviorSubject,\n combineLatest,\n EMPTY,\n fromEvent,\n of,\n Subject,\n timer\n} from 'rxjs'\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\n switchMap,\n take,\n takeUntil,\n tap,\n withLatestFrom\n} from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\n// Import the similarity function (or include it inline)\nimport { similarity } from '../utils/search'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n value: string | string[]\n values?: string[]\n}>\n\ninterface FilteredOption {\n option: SchmancyOption\n score: number\n}\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n // Public API properties\n @property({ type: Boolean }) required = false\n @property({ type: String }) placeholder = ''\n @property({ type: String, reflect: true }) label = ''\n @property({ type: String }) name = ''\n @property({ type: String }) maxHeight = '300px'\n @property({ type: Boolean }) multi = false\n @property({ type: String }) description = ''\n @property({ type: String, reflect: true }) size: InputSize = 'md'\n @property({ type: String }) autocomplete = 'on'\n @property({ type: Number }) debounceMs = 200\n @property({ type: Number }) similarityThreshold = 0.3 // Minimum similarity score to show option\n\n // Values property for multi-select mode\n @property({ type: Array })\n get values() {\n return [...this._selectedValues$.value]\n }\n set values(vals: string[]) {\n this._selectedValues$.next(Array.isArray(vals) ? [...vals] : [])\n }\n\n // Value property\n @property({ type: String, reflect: true })\n get value() {\n return this.multi \n ? this._selectedValues$.value.join(',')\n : this._selectedValue$.value\n }\n set value(val: string) {\n if (this.multi) {\n this._selectedValues$.next(\n val ? val.split(',').map(v => v.trim()).filter(Boolean) : []\n )\n } else {\n this._selectedValue$.next(val)\n }\n }\n\n // State\n @state() private _open = false\n @state() private _inputValue = ''\n @state() private _visibleOptionsCount = 0\n @state() private _hasResults = true\n\n // DOM references\n @query('#options') _listbox!: HTMLUListElement\n @query('sch-input') _input!: SchmancyInput\n @queryAssignedElements({ flatten: true }) private _options!: SchmancyOption[]\n private _inputElementRef = createRef<HTMLInputElement>()\n\n // RxJS Subjects\n private _selectedValue$ = new BehaviorSubject<string>('')\n private _selectedValues$ = new BehaviorSubject<string[]>([])\n private _inputValue$ = new BehaviorSubject<string>('')\n private _open$ = new BehaviorSubject<boolean>(false)\n private _options$ = new BehaviorSubject<SchmancyOption[]>([])\n private _optionSelect$ = new Subject<SchmancyOption>()\n private _documentClick$ = new Subject<MouseEvent>()\n\n connectedCallback() {\n super.connectedCallback()\n \n if (!this.id) {\n this.id = `sch-autocomplete-${Math.random().toString(36).slice(2, 9)}`\n }\n\n this._setupAutocompleteLogic()\n this._setupDocumentClickHandler()\n // Complex autofill detection disabled - using simple auto-select on blur instead\n // this._setupAutofillDetection()\n }\n\n private _setupAutocompleteLogic() {\n // Options management pipeline\n this._options$.pipe(\n tap(options => {\n options.forEach((option, index) => {\n option.setAttribute('role', 'option')\n option.tabIndex = -1\n if (!option.id) {\n option.id = `${this.id}-option-${index}`\n }\n if (!option.hasAttribute('data-event-bound')) {\n fromEvent(option, 'click').pipe(\n tap(e => e.stopPropagation()),\n takeUntil(this.disconnecting)\n ).subscribe(() => this._optionSelect$.next(option))\n option.setAttribute('data-event-bound', 'true')\n }\n })\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Selection sync pipeline\n combineLatest([\n this._selectedValue$,\n this._selectedValues$,\n this._options$\n ]).pipe(\n tap(([selectedValue, selectedValues, options]) => {\n options.forEach(option => {\n option.selected = this.multi \n ? selectedValues.includes(option.value)\n : option.value === selectedValue\n option.setAttribute('aria-selected', String(option.selected))\n })\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Enhanced fuzzy filtering pipeline\n this._inputValue$.pipe(\n distinctUntilChanged(),\n debounceTime(this.debounceMs),\n withLatestFrom(this._options$, this._open$),\n tap(([searchTerm, options, isOpen]) => {\n if (!isOpen) return\n\n const term = searchTerm.trim()\n \n if (!term) {\n // Show all options if no search term\n options.forEach(option => {\n option.hidden = false\n option.style.order = '0' // Reset order\n })\n this._visibleOptionsCount = options.length\n this._hasResults = true\n } else {\n // Calculate similarity scores for all options\n const scoredOptions: FilteredOption[] = options.map(option => {\n // Get text to search in (prioritize label, then textContent, then value)\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores for both label and value\n const labelScore = similarity(term, optionLabel)\n const valueScore = similarity(term, optionValue)\n \n // Use the higher score (prioritizing label matches)\n const score = Math.max(labelScore * 1.1, valueScore) // Slight boost for label matches\n \n return { option, score }\n })\n \n // Sort by score (highest first)\n scoredOptions.sort((a, b) => b.score - a.score)\n \n // Apply visibility and ordering\n let visibleCount = 0\n scoredOptions.forEach((item, index) => {\n const { option, score } = item\n \n // Hide options below threshold\n if (score < this.similarityThreshold) {\n option.hidden = true\n } else {\n option.hidden = false\n visibleCount++\n // Use CSS order to sort visible options by relevance\n option.style.order = String(index)\n }\n })\n \n this._visibleOptionsCount = visibleCount\n this._hasResults = visibleCount > 0\n }\n \n this._announceToScreenReader(\n this._visibleOptionsCount > 0 \n ? `${this._visibleOptionsCount} option${this._visibleOptionsCount === 1 ? '' : 's'} available.`\n : 'No results found.'\n )\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Option selection pipeline\n this._optionSelect$.pipe(\n withLatestFrom(this._selectedValue$, this._selectedValues$),\n tap(([option, _, currentValues]) => {\n if (this.multi) {\n const index = currentValues.indexOf(option.value)\n const newValues = index > -1\n ? [...currentValues.slice(0, index), ...currentValues.slice(index + 1)]\n : [...currentValues, option.value]\n this._selectedValues$.next(newValues)\n \n this._inputValue$.next('')\n this._inputValue = ''\n \n const labels = this._getSelectedLabels()\n this._announceToScreenReader(\n labels.length > 0 \n ? `Selected: ${labels.join(', ')}`\n : 'No options selected'\n )\n } else {\n this._selectedValue$.next(option.value)\n this._open$.next(false)\n this._open = false\n \n this._inputValue = option.label || option.textContent || ''\n this._inputValue$.next(this._inputValue)\n \n timer(100).pipe(\n tap(() => this._inputElementRef.value?.blur()),\n take(1)\n ).subscribe()\n \n this._announceToScreenReader(`Selected: ${option.label || option.textContent}`)\n }\n }),\n tap(() => this._fireChangeEvent()),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Display update pipeline\n combineLatest([\n this._open$,\n this._selectedValue$,\n this._selectedValues$,\n this._options$\n ]).pipe(\n filter(() => !this._open$.value),\n tap(([, selectedValue, selectedValues, options]) => {\n if (this.multi) {\n const labels = options\n .filter(opt => selectedValues.includes(opt.value))\n .map(opt => opt.label || opt.textContent || '')\n this._inputValue = labels.join(', ')\n } else {\n const option = options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n }\n this._inputValue$.next(this._inputValue)\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Open state sync\n this._open$.pipe(\n tap(open => this._open = open),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _setupDocumentClickHandler() {\n this._documentClick$.pipe(\n filter(e => !e.composedPath().includes(this)),\n filter(e => !this._options.some(opt => e.composedPath().includes(opt))),\n filter(() => this._open),\n tap(() => {\n this._open$.next(false)\n this._updateInputDisplay()\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n this._open$.pipe(\n distinctUntilChanged(),\n switchMap(open => \n open \n ? timer(10).pipe(\n tap(() => document.addEventListener('click', e => this._documentClick$.next(e))),\n switchMap(() => EMPTY)\n )\n : of(null).pipe(\n tap(() => document.removeEventListener('click', e => this._documentClick$.next(e)))\n )\n ),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n\n private _updateInputDisplay() {\n of(null).pipe(\n withLatestFrom(\n this._selectedValue$,\n this._selectedValues$,\n this._options$,\n this._open$\n ),\n tap(([, selectedValue, selectedValues, options, isOpen]) => {\n if (!this._inputElementRef.value) return\n\n if (!isOpen || !this.multi) {\n if (this.multi) {\n const labels = options\n .filter(opt => selectedValues.includes(opt.value))\n .map(opt => opt.label || opt.textContent || '')\n this._inputValue = labels.join(', ')\n } else {\n const option = options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n }\n this._inputValue$.next(this._inputValue)\n this._inputElementRef.value.value = this._inputValue\n }\n }),\n take(1)\n ).subscribe()\n }\n\n private _getSelectedLabels(): string[] {\n return this._options\n .filter(option => \n this.multi \n ? this._selectedValues$.value.includes(option.value)\n : option.value === this._selectedValue$.value\n )\n .map(option => option.label || option.textContent || '')\n }\n\n private _announceToScreenReader(message: string) {\n const liveRegion = this.shadowRoot?.querySelector('#live-status')\n if (liveRegion) {\n liveRegion.textContent = message\n }\n }\n\n private _fireChangeEvent() {\n const detail: SchmancyAutocompleteChangeEvent['detail'] = {\n value: this.value,\n }\n\n if (this.multi) {\n detail.values = [...this._selectedValues$.value]\n }\n\n this.dispatchEvent(\n new CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n detail,\n bubbles: true,\n composed: true,\n })\n )\n }\n\n public checkValidity(): boolean {\n if (!this.required) return true\n return this.multi \n ? this._selectedValues$.value.length > 0 \n : Boolean(this._selectedValue$.value)\n }\n\n public reportValidity(): boolean {\n if (this._inputElementRef.value) {\n return this._inputElementRef.value.reportValidity()\n }\n return this.checkValidity()\n }\n\n firstUpdated() {\n // Auto-selection now happens on blur, no need for autofill detection\n }\n\n render() {\n const descriptionId = `${this.id}-desc`\n\n return html`\n <div class=\"relative\">\n <!-- Screen reader live region -->\n <div id=\"live-status\" role=\"status\" aria-live=\"polite\" class=\"sr-only\"></div>\n\n <!-- Description -->\n ${this.description ? html`<div id=\"${descriptionId}\" class=\"sr-only\">${this.description}</div>` : ''}\n\n <!-- Input -->\n <slot name=\"trigger\">\n <schmancy-input\n .size=${this.size}\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n class=\"w-full\"\n .name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-')}\n .label=${this.label}\n .placeholder=${this.placeholder}\n .required=${this.required}\n .value=${this._inputValue}\n type=\"text\"\n autocomplete=${this.autocomplete}\n clickable\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n aria-describedby=${this.description ? descriptionId : undefined}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n \n const hasSelection = this.multi \n ? this._selectedValues$.value.length > 0\n : !!this._selectedValue$.value\n \n if (this.multi && !hasSelection) {\n this._inputValue = ''\n this._inputValue$.next('')\n if (this._inputElementRef.value) {\n this._inputElementRef.value.value = ''\n }\n }\n \n this._open$.next(true)\n }}\n @click=${(e: MouseEvent) => {\n e.stopPropagation()\n this._open$.next(true)\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n >\n </schmancy-input>\n </slot>\n\n <!-- Options dropdown -->\n <ul\n id=\"options\"\n class=${classMap({\n 'absolute': true,\n 'z-[1000]': true,\n 'mt-1': true,\n 'w-full': true,\n 'rounded-md': true,\n 'shadow-md': true,\n 'overflow-auto': true,\n 'min-w-full': true,\n 'bg-surface-low': true,\n 'flex': true,\n 'flex-col': true, // Enable flexbox for ordering\n })}\n role=\"listbox\"\n aria-multiselectable=${this.multi ? 'true' : 'false'}\n aria-label=${`${this.label || 'Options'} dropdown`}\n ?hidden=${!this._open}\n style=\"max-height: ${this.maxHeight}; display: ${this._open ? 'flex' : 'none'};\"\n @slotchange=${() => {\n this._options$.next(this._options)\n }}\n >\n <slot></slot>\n ${!this._hasResults ? html`\n <li class=\"px-3 py-2 text-sm text-muted\">No results found</li>\n ` : ''}\n </ul>\n </div>\n\n <style>\n :host {\n display: block;\n }\n\n @keyframes onAutoFillStart {\n from {/**/}\n to {/**/}\n }\n\n sch-input::part(input):-webkit-autofill,\n sch-input input:-webkit-autofill {\n animation-name: onAutoFillStart;\n animation-duration: 1ms;\n }\n </style>\n `\n }\n\n private _handleAutoSelectOnBlur() {\n // Only auto-select in single-select mode and when dropdown is open with a search term\n if (this.multi || !this._open || !this._inputValue.trim()) {\n return\n }\n \n const searchTerm = this._inputValue.trim()\n \n // Find the best matching option using the same similarity logic as filtering\n let bestMatch: SchmancyOption | null = null\n let bestScore = 0\n \n this._options.forEach(option => {\n // Skip hidden options\n if (option.hidden) return\n \n // Get text to search in (prioritize label, then textContent, then value)\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores for both label and value\n const labelScore = similarity(searchTerm, optionLabel)\n const valueScore = similarity(searchTerm, optionValue)\n \n // Use the higher score (prioritizing label matches)\n const score = Math.max(labelScore * 1.1, valueScore) // Slight boost for label matches\n \n // Keep track of best match that meets threshold\n if (score > bestScore && score >= this.similarityThreshold) {\n bestScore = score\n bestMatch = option\n }\n })\n \n // Auto-select the best match if found\n if (bestMatch) {\n // Select the option using the existing pipeline\n this._optionSelect$.next(bestMatch)\n \n // Close the dropdown\n this._open$.next(false)\n this._open = false\n \n console.log('Auto-selected on blur:', bestMatch.value, 'with score:', bestScore)\n }\n }\n\n private _handleKeyDown(_e: KeyboardEvent) {\n fromEvent<KeyboardEvent>(document, 'keydown').pipe(\n take(1),\n withLatestFrom(this._open$, this._options$),\n tap(([event, isOpen, options]) => {\n if (!isOpen && (event.key === 'ArrowDown' || event.key === 'Enter')) {\n event.preventDefault()\n this._open$.next(true)\n \n timer(10).pipe(\n tap(() => {\n const firstVisible = options.find(opt => !opt.hidden)\n firstVisible?.focus()\n }),\n take(1)\n ).subscribe()\n return\n }\n\n if (!isOpen) return\n\n const visibleOptions = options.filter(opt => !opt.hidden)\n .sort((a, b) => parseInt(a.style.order || '0') - parseInt(b.style.order || '0'))\n \n const focusedOption = visibleOptions.find(opt => opt === document.activeElement)\n const currentIndex = focusedOption ? visibleOptions.indexOf(focusedOption) : -1\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault()\n this._open$.next(false)\n this._updateInputDisplay()\n this._inputElementRef.value?.focus()\n break\n\n case 'Tab':\n this._open$.next(false)\n this._updateInputDisplay()\n break\n\n case 'ArrowDown':\n event.preventDefault()\n const nextIndex = currentIndex < visibleOptions.length - 1 ? currentIndex + 1 : 0\n visibleOptions[nextIndex]?.focus()\n break\n\n case 'ArrowUp':\n event.preventDefault()\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : visibleOptions.length - 1\n visibleOptions[prevIndex]?.focus()\n break\n\n case 'Home':\n event.preventDefault()\n visibleOptions[0]?.focus()\n break\n\n case 'End':\n event.preventDefault()\n visibleOptions[visibleOptions.length - 1]?.focus()\n break\n\n case 'Enter':\n case ' ':\n if (focusedOption) {\n event.preventDefault()\n this._optionSelect$.next(focusedOption)\n }\n break\n }\n })\n ).subscribe()\n }\n}\n\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-autocomplete': SchmancyAutocomplete\n }\n}"],"names":["SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","required","placeholder","label","name","maxHeight","multi","description","size","autocomplete","debounceMs","similarityThreshold","_open","_inputValue","_visibleOptionsCount","_hasResults","_inputElementRef","createRef","_selectedValue$","BehaviorSubject","_selectedValues$","_inputValue$","_open$","_options$","_optionSelect$","Subject","_documentClick$","values","value","vals","next","Array","isArray","join","val","split","map","v","trim","filter","Boolean","connectedCallback","id","Math","random","toString","slice","_setupAutocompleteLogic","_setupDocumentClickHandler","pipe","tap","options","forEach","option","index","setAttribute","tabIndex","hasAttribute","fromEvent","e","stopPropagation","takeUntil","disconnecting","subscribe","combineLatest","selectedValue","selectedValues","selected","includes","String","distinctUntilChanged","debounceTime","withLatestFrom","searchTerm","isOpen","term","scoredOptions","optionLabel","textContent","optionValue","labelScore","similarity","valueScore","score","max","sort","a","b","visibleCount","item","hidden","style","order","length","_announceToScreenReader","_","currentValues","indexOf","newValues","labels","_getSelectedLabels","timer","blur","take","_fireChangeEvent","opt","find","open","composedPath","_options","some","_updateInputDisplay","switchMap","document","addEventListener","EMPTY","of","removeEventListener","message","liveRegion","shadowRoot","querySelector","detail","dispatchEvent","CustomEvent","bubbles","composed","checkValidity","reportValidity","firstUpdated","render","descriptionId","html","ref","toLowerCase","replace","target","hasSelection","_handleKeyDown","_handleAutoSelectOnBlur","classMap","absolute","flex","bestMatch","bestScore","_e","event","key","preventDefault","firstVisible","focus","visibleOptions","parseInt","focusedOption","activeElement","currentIndex","nextIndex","prevIndex","__decorateClass","property","type","prototype","reflect","Number","state","query","queryAssignedElements","flatten","customElement"],"mappings":";;;;;;;;;;;;;;AA0CA,IAAqBA,IAArB,cAAkDC;EAAlD,cAAAC;AAAAC,UAAAA,GAAAC,SAAAA,GAEiCC,KAAAC,WAAAA,IACDD,KAAAE,cAAc,IACCF,KAAAG,QAAQ,IACvBH,KAAAI,OAAO,IACPJ,KAAAK,YAAY,SACXL,KAAAM,QAAAA,IACDN,KAAAO,cAAc,IACCP,KAAAQ,OAAkB,MACjCR,KAAAS,eAAe,MACfT,KAAAU,aAAa,KACbV,KAAAW,sBAAsB,KA6BzCX,KAAQY,QAAAA,IACRZ,KAAQa,cAAc,IACtBb,KAAQc,uBAAuB,GAC/Bd,KAAQe,cAAAA,IAMjBf,KAAQgB,mBAAmBC,EAAAA,GAG3BjB,KAAQkB,kBAAkB,IAAIC,EAAwB,EAAA,GACtDnB,KAAQoB,mBAAmB,IAAID,EAA0B,CAAA,CAAA,GACzDnB,KAAQqB,eAAe,IAAIF,EAAwB,EAAA,GACnDnB,KAAQsB,SAAS,IAAIH,EAAAA,EAAyB,GAC9CnB,KAAQuB,YAAY,IAAIJ,EAAkC,CAAA,CAAA,GAC1DnB,KAAQwB,iBAAiB,IAAIC,KAC7BzB,KAAQ0B,kBAAkB,IAAID;AAAAA,EAAoB;AAAA,EA3ClD,IAAA,SAAIE;AACA,WAAO,IAAI3B,KAAKoB,iBAAiBQ,KAAAA;AAAAA,EAAK;AAAA,EAE1C,IAAA,OAAWC,GAAAA;AACP7B,SAAKoB,iBAAiBU,KAAKC,MAAMC,QAAQH,CAAAA,IAAQ,CAAA,GAAIA,KAAQ,CAAA,CAAA;AAAA,EAAE;AAAA,EAKnE,IAAA,QAAID;AACA,WAAO5B,KAAKM,QACNN,KAAKoB,iBAAiBQ,MAAMK,KAAK,GAAA,IACjCjC,KAAKkB,gBAAgBU;AAAAA,EAAA;AAAA,EAE/B,IAAA,MAAUM,GAAAA;AACFlC,SAAKM,QACLN,KAAKoB,iBAAiBU,KAClBI,IAAMA,EAAIC,MAAM,GAAA,EAAKC,IAAIC,CAAAA,MAAKA,EAAEC,KAAAA,CAAAA,EAAQC,OAAOC,OAAAA,IAAW,CAAA,CAAA,IAG9DxC,KAAKkB,gBAAgBY,KAAKI,CAAAA;AAAAA,EAC9B;AAAA,EAwBJ,oBAAAO;AACI3C,UAAM2C,kBAAAA,GAEDzC,KAAK0C,OACN1C,KAAK0C,KAAK,oBAAoBC,KAAKC,OAAAA,EAASC,SAAS,EAAA,EAAIC,MAAM,GAAG,CAAA,CAAA,KAGtE9C,KAAK+C,wBAAAA,GACL/C,KAAKgD,2BAAAA;AAAAA,EAA2B;AAAA,EAK5B,0BAAAD;AAEJ/C,SAAKuB,UAAU0B,KACXC,EAAIC,OAAAA;AACAA,QAAQC,QAAQ,CAACC,GAAQC,MAAAA;AACrBD,QAAAA,EAAOE,aAAa,QAAQ,QAAA,GAC5BF,EAAOG,WAAAA,IACFH,EAAOX,OACRW,EAAOX,KAAK,GAAG1C,KAAK0C,EAAAA,WAAaY,CAAAA,KAEhCD,EAAOI,aAAa,kBAAA,MACrBC,EAAUL,GAAQ,OAAA,EAASJ,KACvBC,EAAIS,CAAAA,MAAKA,EAAEC,gBAAAA,CAAAA,GACXC,EAAU7D,KAAK8D,aAAAA,CAAAA,EACjBC,UAAU,MAAM/D,KAAKwB,eAAeM,KAAKuB,CAAAA,CAAAA,GAC3CA,EAAOE,aAAa,oBAAoB,MAAA;AAAA,MAAA,CAAA;AAAA,IAAA,CAAA,GAIpDM,EAAU7D,KAAK8D,aAAAA,CAAAA,EACjBC,UAAAA,GAGFC,EAAc,CACVhE,KAAKkB,iBACLlB,KAAKoB,kBACLpB,KAAKuB,SAAAA,CAAAA,EACN0B,KACCC,EAAI,CAAA,CAAEe,GAAeC,GAAgBf,CAAAA,MAAAA;AACjCA,MAAAA,EAAQC,QAAQC,OAAAA;AACZA,UAAOc,WAAWnE,KAAKM,QACjB4D,EAAeE,SAASf,EAAOzB,KAAAA,IAC/ByB,EAAOzB,UAAUqC,GACvBZ,EAAOE,aAAa,iBAAiBc,OAAOhB,EAAOc,QAAAA,CAAAA;AAAAA,MAAAA,CAAAA;AAAAA,IAAAA,CAAAA,GAG3DN,EAAU7D,KAAK8D,aAAAA,CAAAA,EACjBC,UAAAA,GAGF/D,KAAKqB,aAAa4B,KACdqB,EAAAA,GACAC,EAAavE,KAAKU,UAAAA,GAClB8D,EAAexE,KAAKuB,WAAWvB,KAAKsB,MAAAA,GACpC4B,EAAI,EAAEuB,GAAYtB,GAASuB,CAAAA,MAAAA;AACvB,UAAA,CAAKA,EAAQ;AAEb,YAAMC,IAAOF,EAAWnC,KAAAA;AAExB,UAAKqC,GAQE;AAEH,cAAMC,IAAkCzB,EAAQf,IAAIiB,CAAAA,MAAAA;AAEhD,gBAAMwB,IAAcxB,EAAOlD,SAASkD,EAAOyB,eAAe,IACpDC,IAAc1B,EAAOzB,OAGrBoD,IAAaC,EAAWN,GAAME,CAAAA,GAC9BK,IAAaD,EAAWN,GAAMI,CAAAA;AAKpC,iBAAO,EAAE1B,QAAAA,GAAQ8B,OAFHxC,KAAKyC,IAAiB,MAAbJ,GAAkBE,CAAAA,EAAAA;AAAAA,QAAAA,CAAAA;AAM7CN,QAAAA,EAAcS,KAAK,CAACC,GAAGC,MAAMA,EAAEJ,QAAQG,EAAEH,KAAAA;AAGzC,YAAIK,IAAe;AACnBZ,QAAAA,EAAcxB,QAAQ,CAACqC,GAAMnC,MAAAA;AACzB,gBAAA,EAAMD,QAAEA,GAAA8B,OAAQA,EAAAA,IAAUM;AAGtBN,UAAAA,IAAQnF,KAAKW,sBACb0C,EAAOqC,SAAAA,MAEPrC,EAAOqC,aACPF,KAEAnC,EAAOsC,MAAMC,QAAQvB,OAAOf,CAAAA;AAAAA,QAAAA,CAAAA,GAIpCtD,KAAKc,uBAAuB0E,GAC5BxF,KAAKe,cAAcyE,IAAe;AAAA,MAAA,MA3ClCrC,CAAAA,EAAQC,QAAQC,CAAAA,MAAAA;AACZA,QAAAA,EAAOqC,SAAAA,IACPrC,EAAOsC,MAAMC,QAAQ;AAAA,MAAA,CAAA,GAEzB5F,KAAKc,uBAAuBqC,EAAQ0C,QACpC7F,KAAKe,cAAAA;AAyCTf,WAAK8F,wBACD9F,KAAKc,uBAAuB,IACtB,GAAGd,KAAKc,oBAAAA,UAA8Bd,KAAKc,yBAAyB,IAAI,KAAK,GAAA,gBAC7E;QAGd+C,EAAU7D,KAAK8D,aAAAA,CAAAA,EACjBC,UAAAA,GAGF/D,KAAKwB,eAAeyB,KAChBuB,EAAexE,KAAKkB,iBAAiBlB,KAAKoB,gBAAAA,GAC1C8B,EAAI,CAAA,CAAEG,GAAQ0C,GAAGC,CAAAA,MAAAA;AACb,UAAIhG,KAAKM,OAAO;AACZ,cAAMgD,IAAQ0C,EAAcC,QAAQ5C,EAAOzB,KAAAA,GACrCsE,IAAY5C,IAAAA,KACZ,CAAA,GAAI0C,EAAclD,MAAM,GAAGQ,CAAAA,GAAAA,GAAW0C,EAAclD,MAAMQ,IAAQ,CAAA,CAAA,IAClE,CAAA,GAAI0C,GAAe3C,EAAOzB,KAAAA;AAChC5B,aAAKoB,iBAAiBU,KAAKoE,CAAAA,GAE3BlG,KAAKqB,aAAaS,KAAK,EAAA,GACvB9B,KAAKa,cAAc;AAEnB,cAAMsF,IAASnG,KAAKoG,mBAAAA;AACpBpG,aAAK8F,wBACDK,EAAON,SAAS,IACV,aAAaM,EAAOlE,KAAK,IAAA,CAAA,KACzB,qBAAA;AAAA,MACV,MAEAjC,MAAKkB,gBAAgBY,KAAKuB,EAAOzB,KAAAA,GACjC5B,KAAKsB,OAAOQ,KAAAA,EAAK,GACjB9B,KAAKY,QAAAA,IAELZ,KAAKa,cAAcwC,EAAOlD,SAASkD,EAAOyB,eAAe,IACzD9E,KAAKqB,aAAaS,KAAK9B,KAAKa,WAAAA,GAE5BwF,EAAM,GAAA,EAAKpD,KACPC,EAAI,MAAMlD,KAAKgB,iBAAiBY,OAAO0E,KAAAA,CAAAA,GACvCC,EAAK,CAAA,CAAA,EACPxC,UAAAA,GAEF/D,KAAK8F,wBAAwB,aAAazC,EAAOlD,SAASkD,EAAOyB,WAAAA,EAAAA;AAAAA,IAAAA,CAAAA,GAGzE5B,EAAI,MAAMlD,KAAKwG,iBAAAA,CAAAA,GACf3C,EAAU7D,KAAK8D,aAAAA,CAAAA,EACjBC,UAAAA,GAGFC,EAAc,CACVhE,KAAKsB,QACLtB,KAAKkB,iBACLlB,KAAKoB,kBACLpB,KAAKuB,SAAAA,CAAAA,EACN0B,KACCV,EAAO,MAAA,CAAOvC,KAAKsB,OAAOM,KAAAA,GAC1BsB,EAAI,CAAA,CAAC,EAAGe,GAAeC,GAAgBf,CAAAA,MAAAA;AACnC,UAAInD,KAAKM,OAAO;AACZ,cAAM6F,IAAShD,EACVZ,OAAOkE,CAAAA,MAAOvC,EAAeE,SAASqC,EAAI7E,KAAAA,CAAAA,EAC1CQ,IAAIqE,CAAAA,MAAOA,EAAItG,SAASsG,EAAI3B,eAAe,EAAA;AAChD9E,aAAKa,cAAcsF,EAAOlE,KAAK,IAAA;AAAA,MAAI,OAChC;AACH,cAAMoB,IAASF,EAAQuD,KAAKD,OAAOA,EAAI7E,UAAUqC,CAAAA;AACjDjE,aAAKa,cAAcwC,MAASA,EAAOlD,SAASkD,EAAOyB,gBAAoB;AAAA,MAAA;AAE3E9E,WAAKqB,aAAaS,KAAK9B,KAAKa,WAAAA;AAAAA,IAAAA,CAAAA,GAEhCgD,EAAU7D,KAAK8D,aAAAA,CAAAA,EACjBC,UAAAA,GAGF/D,KAAKsB,OAAO2B,KACRC,EAAIyD,OAAQ3G,KAAKY,QAAQ+F,CAAAA,GACzB9C,EAAU7D,KAAK8D,aAAAA,CAAAA,EACjBC,UAAAA;AAAAA,EAAU;AAAA,EAGR,6BAAAf;AACJhD,SAAK0B,gBAAgBuB,KACjBV,UAAaoB,EAAEiD,aAAAA,EAAexC,SAASpE,IAAAA,CAAAA,GACvCuC,EAAOoB,OAAAA,CAAM3D,KAAK6G,SAASC,KAAKL,CAAAA,MAAO9C,EAAEiD,aAAAA,EAAexC,SAASqC,CAAAA,CAAAA,CAAAA,GACjElE,EAAO,MAAMvC,KAAKY,KAAAA,GAClBsC,EAAI,MAAA;AACAlD,WAAKsB,OAAOQ,KAAAA,EAAK,GACjB9B,KAAK+G,oBAAAA;AAAAA,IAAAA,CAAAA,GAETlD,EAAU7D,KAAK8D,gBACjBC,UAAAA,GAEF/D,KAAKsB,OAAO2B,KACRqB,EAAAA,GACA0C,EAAUL,OACNA,IACMN,EAAM,EAAA,EAAIpD,KACRC,EAAI,MAAM+D,SAASC,iBAAiB,SAASvD,CAAAA,MAAK3D,KAAK0B,gBAAgBI,KAAK6B,CAAAA,CAAAA,CAAAA,GAC5EqD,EAAU,MAAMG,CAAAA,CAAAA,IAElBC,EAAG,IAAA,EAAMnE,KACPC,EAAI,MAAM+D,SAASI,oBAAoB,SAAS1D,CAAAA,MAAK3D,KAAK0B,gBAAgBI,KAAK6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAG3FE,EAAU7D,KAAK8D,aAAAA,CAAAA,EACjBC,UAAAA;AAAAA,EAAU;AAAA,EAIR,sBAAAgD;AACJK,IAAAA,EAAG,IAAA,EAAMnE,KACLuB,EACIxE,KAAKkB,iBACLlB,KAAKoB,kBACLpB,KAAKuB,WACLvB,KAAKsB,MAAAA,GAET4B,EAAI,CAAA,CAAC,EAAGe,GAAeC,GAAgBf,GAASuB,CAAAA,MAAAA;AAC5C,UAAK1E,KAAKgB,iBAAiBY,UAAAA,CAEtB8C,KAAAA,CAAW1E,KAAKM,QAAO;AACxB,YAAIN,KAAKM,OAAO;AACZ,gBAAM6F,IAAShD,EACVZ,OAAOkE,CAAAA,MAAOvC,EAAeE,SAASqC,EAAI7E,KAAAA,CAAAA,EAC1CQ,IAAIqE,CAAAA,MAAOA,EAAItG,SAASsG,EAAI3B,eAAe;AAChD9E,eAAKa,cAAcsF,EAAOlE,KAAK,IAAA;AAAA,QAAI,OAChC;AACH,gBAAMoB,IAASF,EAAQuD,KAAKD,CAAAA,MAAOA,EAAI7E,UAAUqC,CAAAA;AACjDjE,eAAKa,cAAcwC,MAASA,EAAOlD,SAASkD,EAAOyB,gBAAoB;AAAA,QAAA;AAE3E9E,aAAKqB,aAAaS,KAAK9B,KAAKa,WAAAA,GAC5Bb,KAAKgB,iBAAiBY,MAAMA,QAAQ5B,KAAKa;AAAAA,MAAA;AAAA,IAAA,CAAA,GAGjD0F,EAAK,CAAA,CAAA,EACPxC,UAAAA;AAAAA,EAAU;AAAA,EAGR,qBAAAqC;AACJ,WAAOpG,KAAK6G,SACPtE,OAAOc,OACJrD,KAAKM,QACCN,KAAKoB,iBAAiBQ,MAAMwC,SAASf,EAAOzB,KAAAA,IAC5CyB,EAAOzB,UAAU5B,KAAKkB,gBAAgBU,KAAAA,EAE/CQ,IAAIiB,OAAUA,EAAOlD,SAASkD,EAAOyB,eAAe,EAAA;AAAA,EAAE;AAAA,EAGvD,wBAAwBwC,GAAAA;AAC5B,UAAMC,IAAavH,KAAKwH,YAAYC,cAAc,cAAA;AAC9CF,IAAAA,MACAA,EAAWzC,cAAcwC;AAAAA,EAC7B;AAAA,EAGI,mBAAAd;AACJ,UAAMkB,IAAoD,EACtD9F,OAAO5B,KAAK4B,MAAAA;AAGZ5B,SAAKM,UACLoH,EAAO/F,SAAS,CAAA,GAAI3B,KAAKoB,iBAAiBQ,KAAAA,IAG9C5B,KAAK2H,cACD,IAAIC,YAAuD,UAAU,EACjEF,QAAAA,GACAG,SAAAA,IACAC,UAAAA,GAAU,CAAA,CAAA;AAAA,EAElB;AAAA,EAGG,gBAAAC;AACH,WAAA,CAAK/H,KAAKC,aACHD,KAAKM,QACNN,KAAKoB,iBAAiBQ,MAAMiE,SAAS,IACrCrD,EAAQxC,KAAKkB,gBAAgBU;AAAAA,EAAK;AAAA,EAGrC,iBAAAoG;AACH,WAAIhI,KAAKgB,iBAAiBY,QACf5B,KAAKgB,iBAAiBY,MAAMoG,eAAAA,IAEhChI,KAAK+H,cAAAA;AAAAA,EAAc;AAAA,EAG9B,eAAAE;AAAAA,EAAe;AAAA,EAIf,SAAAC;AACI,UAAMC,IAAgB,GAAGnI,KAAK0C,EAAAA;AAE9B,WAAO0F;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kBAMGpI,KAAKO,cAAc6H,aAAgBD,CAAAA,qBAAkCnI,KAAKO,WAAAA,WAAsB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAKlFP,KAAKQ,IAAAA;AAAAA,0BACX6H,EAAIrI,KAAKgB,gBAAAA,CAAAA;AAAAA;AAAAA;AAAAA,gCAGHhB,KAAKI,QAAQJ,KAAKG,OAAOmI,YAAAA,EAAcC,QAAQ,QAAQ,GAAA,CAAA;AAAA,iCACtDvI,KAAKG,KAAAA;AAAAA,uCACCH,KAAKE,WAAAA;AAAAA,oCACRF,KAAKC,QAAAA;AAAAA,iCACRD,KAAKa,WAAAA;AAAAA;AAAAA,uCAECb,KAAKS,YAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,wCAMJT,KAAKY,KAAAA;AAAAA,2CACFZ,KAAKO,cAAc4H,IAAAA,MAAgB;AAAA,iCAC5CxE,CAAAA,MAAAA;AACN,YAAM/B,IAAS+B,EAAE6E,OAA4B5G;AAC7C5B,WAAKa,cAAce,GACnB5B,KAAKqB,aAAaS,KAAKF,CAAAA;AAAAA,IAAAA,CAAAA;AAAAA,iCAEjB+B,CAAAA,MAAAA;AACNA,MAAAA,EAAEC,gBAAAA;AAEF,YAAM6E,IAAezI,KAAKM,QACpBN,KAAKoB,iBAAiBQ,MAAMiE,SAAS,IAAA,CAAA,CACnC7F,KAAKkB,gBAAgBU;AAEzB5B,WAAKM,SAAAA,CAAUmI,MACfzI,KAAKa,cAAc,IACnBb,KAAKqB,aAAaS,KAAK,KACnB9B,KAAKgB,iBAAiBY,UACtB5B,KAAKgB,iBAAiBY,MAAMA,QAAQ,MAI5C5B,KAAKsB,OAAOQ,KAAAA,EAAK;AAAA,IAAA,CAAA;AAAA,iCAEX6B,CAAAA,MAAAA;AACNA,MAAAA,EAAEC,gBAAAA,GACF5D,KAAKsB,OAAOQ,KAAAA,EAAK;AAAA,IAAA,CAAA;AAAA,mCAET6B,CAAAA,MAAAA;AACR3D,WAAK0I,eAAe/E,CAAAA;AAAAA,IAAAA,CAAAA;AAAAA,gCAEhB,MAAA;AACJ3D,WAAK2I,wBAAAA;AAAAA,IAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,4BASLC,EAAS,EACbC,cACA,YAAA,IACA,QAAA,IACA,cACA,cAAA,IACA,aAAA,IACA,qBACA,cAAA,IACA,kBAAA,IACAC,MAAAA,IACA,YAAA,GAAY,CAAA,CAAA;AAAA;AAAA,2CAGO9I,KAAKM,QAAQ,SAAS,OAAA;AAAA,iCAChC,GAAGN,KAAKG,SAAS,SAAA,WAAA;AAAA,+BACnBH,KAAKY,KAAAA;AAAAA,yCACKZ,KAAKK,SAAAA,cAAuBL,KAAKY,QAAQ,SAAS,MAAA;AAAA,kCACzD,MAAA;AACVZ,WAAKuB,UAAUO,KAAK9B,KAAK6G,QAAAA;AAAAA,IAAAA,CAAAA;AAAAA;AAAAA;AAAAA,sBAI1B7G,KAAKe,cAEJ,KAFkBqH;AAAAA;AAAAA;;;;;;;;;;;;;;;;;;;;;EAEhB;AAAA,EAuBd,0BAAAO;AAEJ,QAAI3I,KAAKM,SAAAA,CAAUN,KAAKY,SAAAA,CAAUZ,KAAKa,YAAYyB,KAAAA,EAC/C;AAGJ,UAAMmC,IAAazE,KAAKa,YAAYyB,KAAAA;AAGpC,QAAIyG,IAAmC,MACnCC,IAAY;AAEhBhJ,SAAK6G,SAASzD,QAAQC,CAAAA,MAAAA;AAElB,UAAIA,EAAOqC,OAAQ;AAGnB,YAAMb,IAAcxB,EAAOlD,SAASkD,EAAOyB,eAAe,IACpDC,IAAc1B,EAAOzB,OAGrBoD,IAAaC,EAAWR,GAAYI,CAAAA,GACpCK,IAAaD,EAAWR,GAAYM,CAAAA,GAGpCI,IAAQxC,KAAKyC,IAAiB,MAAbJ,GAAkBE,CAAAA;AAGrCC,MAAAA,IAAQ6D,KAAa7D,KAASnF,KAAKW,wBACnCqI,IAAY7D,GACZ4D,IAAY1F;AAAAA,QAKhB0F,MAEA/I,KAAKwB,eAAeM,KAAKiH,CAAAA,GAGzB/I,KAAKsB,OAAOQ,KAAAA,EAAK,GACjB9B,KAAKY,QAAAA;AAAAA,EAGT;AAAA,EAGI,eAAeqI,GAAAA;AACnBvF,IAAAA,EAAyBuD,UAAU,SAAA,EAAWhE,KAC1CsD,EAAK,CAAA,GACL/B,EAAexE,KAAKsB,QAAQtB,KAAKuB,SAAAA,GACjC2B,EAAI,CAAA,CAAEgG,GAAOxE,GAAQvB,CAAAA,MAAAA;AACjB,UAAA,CAAKuB,MAAWwE,EAAMC,QAAQ,eAAeD,EAAMC,QAAQ,SAWvD,QAVAD,EAAME,eAAAA,GACNpJ,KAAKsB,OAAOQ,KAAAA,EAAK,GAAA,KAEjBuE,EAAM,EAAA,EAAIpD,KACNC,EAAI,MAAA;AAEAmG,QADqBlG,EAAQuD,KAAKD,CAAAA,OAAQA,EAAIf,MAAAA,GAChC4D,MAAAA;AAAAA,MAAAA,CAAAA,GAElB/C,EAAK,CAAA,CAAA,EACPxC;AAIN,UAAA,CAAKW,EAAQ;AAEb,YAAM6E,IAAiBpG,EAAQZ,OAAOkE,CAAAA,MAAAA,CAAQA,EAAIf,MAAAA,EAC7CL,KAAK,CAACC,GAAGC,MAAMiE,SAASlE,EAAEK,MAAMC,SAAS,GAAA,IAAO4D,SAASjE,EAAEI,MAAMC,SAAS,GAAA,CAAA,GAEzE6D,IAAgBF,EAAe7C,KAAKD,CAAAA,MAAOA,MAAQQ,SAASyC,aAAAA,GAC5DC,IAAeF,IAAgBF,EAAetD,QAAQwD,CAAAA,IAAAA;AAE5D,cAAQP,EAAMC,KAAAA;AAAAA,QACV,KAAK;AACDD,UAAAA,EAAME,eAAAA,GACNpJ,KAAKsB,OAAOQ,KAAAA,EAAK,GACjB9B,KAAK+G,oBAAAA,GACL/G,KAAKgB,iBAAiBY,OAAO0H,MAAAA;AAC7B;AAAA,QAEJ,KAAK;AACDtJ,eAAKsB,OAAOQ,KAAAA,EAAK,GACjB9B,KAAK+G;AACL;AAAA,QAEJ,KAAK;AACDmC,UAAAA,EAAME,eAAAA;AACN,gBAAMQ,IAAYD,IAAeJ,EAAe1D,SAAS,IAAI8D,IAAe,IAAI;AAChFJ,UAAAA,EAAeK,CAAAA,GAAYN,MAAAA;AAC3B;AAAA,QAEJ,KAAK;AACDJ,UAAAA,EAAME,eAAAA;AACN,gBAAMS,IAAYF,IAAe,IAAIA,IAAe,IAAIJ,EAAe1D,SAAS;AAChF0D,UAAAA,EAAeM,CAAAA,GAAYP,MAAAA;AAC3B;AAAA,QAEJ,KAAK;AACDJ,UAAAA,EAAME,eAAAA,GACNG,EAAe,CAAA,GAAID,MAAAA;AACnB;AAAA,QAEJ,KAAK;AACDJ,UAAAA,EAAME,eAAAA,GACNG,EAAeA,EAAe1D,SAAS,CAAA,GAAIyD,MAAAA;AAC3C;AAAA,QAEJ,KAAK;AAAA,QACL,KAAK;AACGG,gBACAP,EAAME,eAAAA,GACNpJ,KAAKwB,eAAeM,KAAK2H;;QAK3C1F,UAAAA;AAAAA,EAAU;AAAA;AAplBa+F,EAAA,CAA5BC,EAAS,EAAEC,MAAMxH,QAAAA,CAAAA,CAAAA,GAFD7C,EAEYsK,WAAA,YAAA,CAAA,GACDH,EAAA,CAA3BC,EAAS,EAAEC,MAAM3F,OAAAA,CAAAA,CAAAA,GAHD1E,EAGWsK,WAAA,eAAA,CAAA,GACeH,EAAA,CAA1CC,EAAS,EAAEC,MAAM3F,QAAQ6F,SAAAA,GAAS,CAAA,CAAA,GAJlBvK,EAI0BsK,WAAA,SAAA,CAAA,GACfH,EAAA,CAA3BC,EAAS,EAAEC,MAAM3F,OAAAA,CAAAA,CAAAA,GALD1E,EAKWsK,WAAA,QAAA,CAAA,GACAH,EAAA,CAA3BC,EAAS,EAAEC,MAAM3F,OAAAA,CAAAA,CAAAA,GAND1E,EAMWsK,WAAA,aAAA,CAAA,GACCH,EAAA,CAA5BC,EAAS,EAAEC,MAAMxH,QAAAA,CAAAA,CAAAA,GAPD7C,EAOYsK,WAAA,SAAA,CAAA,GACDH,EAAA,CAA3BC,EAAS,EAAEC,MAAM3F,YARD1E,EAQWsK,WAAA,eAAA,CAAA,GACeH,EAAA,CAA1CC,EAAS,EAAEC,MAAM3F,QAAQ6F,SAAAA,GAAS,CAAA,CAAA,GATlBvK,EAS0BsK,WAAA,QAAA,CAAA,GACfH,EAAA,CAA3BC,EAAS,EAAEC,MAAM3F,YAVD1E,EAUWsK,WAAA,gBAAA,CAAA,GACAH,EAAA,CAA3BC,EAAS,EAAEC,MAAMG,OAAAA,CAAAA,CAAAA,GAXDxK,EAWWsK,WAAA,cAAA,IACAH,EAAA,CAA3BC,EAAS,EAAEC,MAAMG,OAAAA,CAAAA,CAAAA,GAZDxK,EAYWsK,WAAA,uBAAA,CAAA,GAIxBH,EAAA,CADHC,EAAS,EAAEC,MAAMjI,MAAAA,CAAAA,CAAAA,GAfDpC,EAgBbsK,WAAA,UAAA,CAAA,GASAH,EAAA,CADHC,EAAS,EAAEC,MAAM3F,QAAQ6F,SAAAA,GAAS,CAAA,CAAA,GAxBlBvK,EAyBbsK,WAAA,SAAA,CAAA,GAgBaH,EAAA,CAAhBM,EAAAA,CAAAA,GAzCgBzK,EAyCAsK,WAAA,SAAA,CAAA,GACAH,EAAA,CAAhBM,EAAAA,CAAAA,GA1CgBzK,EA0CAsK,WAAA,eAAA,CAAA,GACAH,EAAA,CAAhBM,EAAAA,CAAAA,GA3CgBzK,EA2CAsK,WAAA,wBAAA,CAAA,GACAH,EAAA,CAAhBM,EAAAA,CAAAA,GA5CgBzK,EA4CAsK,WAAA,eAAA,CAAA,GAGEH,EAAA,CAAlBO,EAAM,cA/CU1K,EA+CEsK,WAAA,YAAA,CAAA,GACCH,EAAA,CAAnBO,EAAM,WAAA,CAAA,GAhDU1K,EAgDGsK,WAAA,UAAA,CAAA,GAC8BH,EAAA,CAAjDQ,EAAsB,EAAEC,SAAAA,GAAS,CAAA,CAAA,GAjDjB5K,EAiDiCsK,WAAA,YAAA,CAAA,GAjDjCtK,IAArBmK,EAAA,CADCU,EAAc,uBAAA,CAAA,GACM7K,CAAAA;"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";const h=require("rxjs"),v=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const f=require("./litElement.mixin-BEbYQVKW.cjs");require("./tailwind.mixin-NrMHmraa.cjs");const u=require("lit/decorators.js"),b=require("lit"),$=require("lit/directives/ref.js"),i=require("rxjs/operators"),_=require("./search-DWW8IoOp.cjs");var x=Object.defineProperty,g=Object.getOwnPropertyDescriptor,r=(e,t,l,s)=>{for(var n,o=s>1?void 0:s?g(t,l):t,p=e.length-1;p>=0;p--)(n=e[p])&&(o=(s?n(t,l,o):n(o))||o);return s&&o&&x(t,l,o),o};let a=class extends f.$LitElement(":host{display:block;border:unset!important;line-height:unset!important;background:unset!important;padding:unset!important;font-size:unset!important;box-shadow:unset!important}:host:focus{box-shadow:unset!important}"){constructor(){super(...arguments),this.required=!1,this.placeholder="",this.label="",this.name="",this.maxHeight="300px",this.multi=!1,this.description="",this.size="md",this.autocomplete="on",this.debounceMs=200,this.similarityThreshold=.3,this._open=!1,this._inputValue="",this._visibleOptionsCount=0,this._hasResults=!0,this._inputElementRef=$.createRef(),this._selectedValue$=new h.BehaviorSubject(""),this._selectedValues$=new h.BehaviorSubject([]),this._inputValue$=new h.BehaviorSubject(""),this._open$=new h.BehaviorSubject(!1),this._options$=new h.BehaviorSubject([]),this._optionSelect$=new h.Subject,this._documentClick$=new h.Subject}get values(){return[...this._selectedValues$.value]}set values(e){this._selectedValues$.next(Array.isArray(e)?[...e]:[])}get value(){return this.multi?this._selectedValues$.value.join(","):this._selectedValue$.value}set value(e){this.multi?this._selectedValues$.next(e?e.split(",").map(t=>t.trim()).filter(Boolean):[]):this._selectedValue$.next(e)}connectedCallback(){super.connectedCallback(),this.id||(this.id=`sch-autocomplete-${Math.random().toString(36).slice(2,9)}`),this._setupAutocompleteLogic(),this._setupDocumentClickHandler()}_setupAutocompleteLogic(){this._options$.pipe(i.tap(e=>{e.forEach((t,l)=>{t.setAttribute("role","option"),t.tabIndex=-1,t.id||(t.id=`${this.id}-option-${l}`),t.hasAttribute("data-event-bound")||(h.fromEvent(t,"click").pipe(i.tap(s=>s.stopPropagation()),i.takeUntil(this.disconnecting)).subscribe(()=>this._optionSelect$.next(t)),t.setAttribute("data-event-bound","true"))})}),i.takeUntil(this.disconnecting)).subscribe(),h.combineLatest([this._selectedValue$,this._selectedValues$,this._options$]).pipe(i.tap(([e,t,l])=>{l.forEach(s=>{s.selected=this.multi?t.includes(s.value):s.value===e,s.setAttribute("aria-selected",String(s.selected))})}),i.takeUntil(this.disconnecting)).subscribe(),this._inputValue$.pipe(i.distinctUntilChanged(),i.debounceTime(this.debounceMs),i.withLatestFrom(this._options$,this._open$),i.tap(([e,t,l])=>{if(!l)return;const s=e.trim();if(s){const n=t.map(p=>{const c=p.label||p.textContent||"",d=p.value,m=_.similarity(s,c),y=_.similarity(s,d);return{option:p,score:Math.max(1.1*m,y)}});n.sort((p,c)=>c.score-p.score);let o=0;n.forEach((p,c)=>{const{option:d,score:m}=p;m<this.similarityThreshold?d.hidden=!0:(d.hidden=!1,o++,d.style.order=String(c))}),this._visibleOptionsCount=o,this._hasResults=o>0}else t.forEach(n=>{n.hidden=!1,n.style.order="0"}),this._visibleOptionsCount=t.length,this._hasResults=!0;this._announceToScreenReader(this._visibleOptionsCount>0?`${this._visibleOptionsCount} option${this._visibleOptionsCount===1?"":"s"} available.`:"No results found.")}),i.takeUntil(this.disconnecting)).subscribe(),this._optionSelect$.pipe(i.withLatestFrom(this._selectedValue$,this._selectedValues$),i.tap(([e,t,l])=>{if(this.multi){const s=l.indexOf(e.value),n=s>-1?[...l.slice(0,s),...l.slice(s+1)]:[...l,e.value];this._selectedValues$.next(n),this._inputValue$.next(""),this._inputValue="";const o=this._getSelectedLabels();this._announceToScreenReader(o.length>0?`Selected: ${o.join(", ")}`:"No options selected")}else this._selectedValue$.next(e.value),this._open$.next(!1),this._open=!1,this._inputValue=e.label||e.textContent||"",this._inputValue$.next(this._inputValue),h.timer(100).pipe(i.tap(()=>this._inputElementRef.value?.blur()),i.take(1)).subscribe(),this._announceToScreenReader(`Selected: ${e.label||e.textContent}`)}),i.tap(()=>this._fireChangeEvent()),i.takeUntil(this.disconnecting)).subscribe(),h.combineLatest([this._open$,this._selectedValue$,this._selectedValues$,this._options$]).pipe(i.filter(()=>!this._open$.value),i.tap(([,e,t,l])=>{if(this.multi){const s=l.filter(n=>t.includes(n.value)).map(n=>n.label||n.textContent||"");this._inputValue=s.join(", ")}else{const s=l.find(n=>n.value===e);this._inputValue=s&&(s.label||s.textContent)||""}this._inputValue$.next(this._inputValue)}),i.takeUntil(this.disconnecting)).subscribe(),this._open$.pipe(i.tap(e=>this._open=e),i.takeUntil(this.disconnecting)).subscribe()}_setupDocumentClickHandler(){this._documentClick$.pipe(i.filter(e=>!e.composedPath().includes(this)),i.filter(e=>!this._options.some(t=>e.composedPath().includes(t))),i.filter(()=>this._open),i.tap(()=>{this._open$.next(!1),this._updateInputDisplay()}),i.takeUntil(this.disconnecting)).subscribe(),this._open$.pipe(i.distinctUntilChanged(),i.switchMap(e=>e?h.timer(10).pipe(i.tap(()=>document.addEventListener("click",t=>this._documentClick$.next(t))),i.switchMap(()=>h.EMPTY)):h.of(null).pipe(i.tap(()=>document.removeEventListener("click",t=>this._documentClick$.next(t))))),i.takeUntil(this.disconnecting)).subscribe()}_updateInputDisplay(){h.of(null).pipe(i.withLatestFrom(this._selectedValue$,this._selectedValues$,this._options$,this._open$),i.tap(([,e,t,l,s])=>{if(this._inputElementRef.value&&(!s||!this.multi)){if(this.multi){const n=l.filter(o=>t.includes(o.value)).map(o=>o.label||o.textContent||"");this._inputValue=n.join(", ")}else{const n=l.find(o=>o.value===e);this._inputValue=n&&(n.label||n.textContent)||""}this._inputValue$.next(this._inputValue),this._inputElementRef.value.value=this._inputValue}}),i.take(1)).subscribe()}_getSelectedLabels(){return this._options.filter(e=>this.multi?this._selectedValues$.value.includes(e.value):e.value===this._selectedValue$.value).map(e=>e.label||e.textContent||"")}_announceToScreenReader(e){const t=this.shadowRoot?.querySelector("#live-status");t&&(t.textContent=e)}_fireChangeEvent(){const e={value:this.value};this.multi&&(e.values=[...this._selectedValues$.value]),this.dispatchEvent(new CustomEvent("change",{detail:e,bubbles:!0,composed:!0}))}checkValidity(){return!this.required||(this.multi?this._selectedValues$.value.length>0:!!this._selectedValue$.value)}reportValidity(){return this._inputElementRef.value?this._inputElementRef.value.reportValidity():this.checkValidity()}firstUpdated(){}render(){const e=`${this.id}-desc`;return b.html`
|
|
2
|
-
<div class="relative">
|
|
3
|
-
<!-- Screen reader live region -->
|
|
4
|
-
<div id="live-status" role="status" aria-live="polite" class="sr-only"></div>
|
|
5
|
-
|
|
6
|
-
<!-- Description -->
|
|
7
|
-
${this.description?b.html`<div id="${e}" class="sr-only">${this.description}</div>`:""}
|
|
8
|
-
|
|
9
|
-
<!-- Input -->
|
|
10
|
-
<slot name="trigger">
|
|
11
|
-
<schmancy-input
|
|
12
|
-
.size=${this.size}
|
|
13
|
-
${$.ref(this._inputElementRef)}
|
|
14
|
-
id="autocomplete-input"
|
|
15
|
-
class="w-full"
|
|
16
|
-
.name=${this.name||this.label?.toLowerCase().replace(/\s+/g,"-")}
|
|
17
|
-
.label=${this.label}
|
|
18
|
-
.placeholder=${this.placeholder}
|
|
19
|
-
.required=${this.required}
|
|
20
|
-
.value=${this._inputValue}
|
|
21
|
-
type="text"
|
|
22
|
-
autocomplete=${this.autocomplete}
|
|
23
|
-
clickable
|
|
24
|
-
role="combobox"
|
|
25
|
-
aria-autocomplete="list"
|
|
26
|
-
aria-haspopup="listbox"
|
|
27
|
-
aria-controls="options"
|
|
28
|
-
aria-expanded=${this._open}
|
|
29
|
-
aria-describedby=${this.description?e:void 0}
|
|
30
|
-
@input=${t=>{const l=t.target.value;this._inputValue=l,this._inputValue$.next(l)}}
|
|
31
|
-
@focus=${t=>{t.stopPropagation();const l=this.multi?this._selectedValues$.value.length>0:!!this._selectedValue$.value;this.multi&&!l&&(this._inputValue="",this._inputValue$.next(""),this._inputElementRef.value&&(this._inputElementRef.value.value="")),this._open$.next(!0)}}
|
|
32
|
-
@click=${t=>{t.stopPropagation(),this._open$.next(!0)}}
|
|
33
|
-
@keydown=${t=>{this._handleKeyDown(t)}}
|
|
34
|
-
@blur=${()=>{this._handleAutoSelectOnBlur()}}
|
|
35
|
-
>
|
|
36
|
-
</schmancy-input>
|
|
37
|
-
</slot>
|
|
38
|
-
|
|
39
|
-
<!-- Options dropdown -->
|
|
40
|
-
<ul
|
|
41
|
-
id="options"
|
|
42
|
-
class=${v.classMap({absolute:!0,"z-[1000]":!0,"mt-1":!0,"w-full":!0,"rounded-md":!0,"shadow-md":!0,"overflow-auto":!0,"min-w-full":!0,"bg-surface-low":!0,flex:!0,"flex-col":!0})}
|
|
43
|
-
role="listbox"
|
|
44
|
-
aria-multiselectable=${this.multi?"true":"false"}
|
|
45
|
-
aria-label=${`${this.label||"Options"} dropdown`}
|
|
46
|
-
?hidden=${!this._open}
|
|
47
|
-
style="max-height: ${this.maxHeight}; display: ${this._open?"flex":"none"};"
|
|
48
|
-
@slotchange=${()=>{this._options$.next(this._options)}}
|
|
49
|
-
>
|
|
50
|
-
<slot></slot>
|
|
51
|
-
${this._hasResults?"":b.html`
|
|
52
|
-
<li class="px-3 py-2 text-sm text-muted">No results found</li>
|
|
53
|
-
`}
|
|
54
|
-
</ul>
|
|
55
|
-
</div>
|
|
56
|
-
|
|
57
|
-
<style>
|
|
58
|
-
:host {
|
|
59
|
-
display: block;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
@keyframes onAutoFillStart {
|
|
63
|
-
from {/**/}
|
|
64
|
-
to {/**/}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
sch-input::part(input):-webkit-autofill,
|
|
68
|
-
sch-input input:-webkit-autofill {
|
|
69
|
-
animation-name: onAutoFillStart;
|
|
70
|
-
animation-duration: 1ms;
|
|
71
|
-
}
|
|
72
|
-
</style>
|
|
73
|
-
`}_handleAutoSelectOnBlur(){if(this.multi||!this._open||!this._inputValue.trim())return;const e=this._inputValue.trim();let t=null,l=0;this._options.forEach(s=>{if(s.hidden)return;const n=s.label||s.textContent||"",o=s.value,p=_.similarity(e,n),c=_.similarity(e,o),d=Math.max(1.1*p,c);d>l&&d>=this.similarityThreshold&&(l=d,t=s)}),t&&(this._optionSelect$.next(t),this._open$.next(!1),this._open=!1)}_handleKeyDown(e){h.fromEvent(document,"keydown").pipe(i.take(1),i.withLatestFrom(this._open$,this._options$),i.tap(([t,l,s])=>{if(!l&&(t.key==="ArrowDown"||t.key==="Enter"))return t.preventDefault(),this._open$.next(!0),void h.timer(10).pipe(i.tap(()=>{s.find(d=>!d.hidden)?.focus()}),i.take(1)).subscribe();if(!l)return;const n=s.filter(c=>!c.hidden).sort((c,d)=>parseInt(c.style.order||"0")-parseInt(d.style.order||"0")),o=n.find(c=>c===document.activeElement),p=o?n.indexOf(o):-1;switch(t.key){case"Escape":t.preventDefault(),this._open$.next(!1),this._updateInputDisplay(),this._inputElementRef.value?.focus();break;case"Tab":this._open$.next(!1),this._updateInputDisplay();break;case"ArrowDown":t.preventDefault();const c=p<n.length-1?p+1:0;n[c]?.focus();break;case"ArrowUp":t.preventDefault();const d=p>0?p-1:n.length-1;n[d]?.focus();break;case"Home":t.preventDefault(),n[0]?.focus();break;case"End":t.preventDefault(),n[n.length-1]?.focus();break;case"Enter":case" ":o&&(t.preventDefault(),this._optionSelect$.next(o))}})).subscribe()}};r([u.property({type:Boolean})],a.prototype,"required",2),r([u.property({type:String})],a.prototype,"placeholder",2),r([u.property({type:String,reflect:!0})],a.prototype,"label",2),r([u.property({type:String})],a.prototype,"name",2),r([u.property({type:String})],a.prototype,"maxHeight",2),r([u.property({type:Boolean})],a.prototype,"multi",2),r([u.property({type:String})],a.prototype,"description",2),r([u.property({type:String,reflect:!0})],a.prototype,"size",2),r([u.property({type:String})],a.prototype,"autocomplete",2),r([u.property({type:Number})],a.prototype,"debounceMs",2),r([u.property({type:Number})],a.prototype,"similarityThreshold",2),r([u.property({type:Array})],a.prototype,"values",1),r([u.property({type:String,reflect:!0})],a.prototype,"value",1),r([u.state()],a.prototype,"_open",2),r([u.state()],a.prototype,"_inputValue",2),r([u.state()],a.prototype,"_visibleOptionsCount",2),r([u.state()],a.prototype,"_hasResults",2),r([u.query("#options")],a.prototype,"_listbox",2),r([u.query("sch-input")],a.prototype,"_input",2),r([u.queryAssignedElements({flatten:!0})],a.prototype,"_options",2),a=r([u.customElement("schmancy-autocomplete")],a);
|
|
74
|
-
//# sourceMappingURL=autocomplete-CU-jz4zG.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete-CU-jz4zG.cjs","sources":["../src/autocomplete/autocomplete.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { InputSize, SchmancyInput } from '@schmancy/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport {\n BehaviorSubject,\n combineLatest,\n EMPTY,\n fromEvent,\n of,\n Subject,\n timer\n} from 'rxjs'\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\n switchMap,\n take,\n takeUntil,\n tap,\n withLatestFrom\n} from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\n// Import the similarity function (or include it inline)\nimport { similarity } from '../utils/search'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n value: string | string[]\n values?: string[]\n}>\n\ninterface FilteredOption {\n option: SchmancyOption\n score: number\n}\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n // Public API properties\n @property({ type: Boolean }) required = false\n @property({ type: String }) placeholder = ''\n @property({ type: String, reflect: true }) label = ''\n @property({ type: String }) name = ''\n @property({ type: String }) maxHeight = '300px'\n @property({ type: Boolean }) multi = false\n @property({ type: String }) description = ''\n @property({ type: String, reflect: true }) size: InputSize = 'md'\n @property({ type: String }) autocomplete = 'on'\n @property({ type: Number }) debounceMs = 200\n @property({ type: Number }) similarityThreshold = 0.3 // Minimum similarity score to show option\n\n // Values property for multi-select mode\n @property({ type: Array })\n get values() {\n return [...this._selectedValues$.value]\n }\n set values(vals: string[]) {\n this._selectedValues$.next(Array.isArray(vals) ? [...vals] : [])\n }\n\n // Value property\n @property({ type: String, reflect: true })\n get value() {\n return this.multi \n ? this._selectedValues$.value.join(',')\n : this._selectedValue$.value\n }\n set value(val: string) {\n if (this.multi) {\n this._selectedValues$.next(\n val ? val.split(',').map(v => v.trim()).filter(Boolean) : []\n )\n } else {\n this._selectedValue$.next(val)\n }\n }\n\n // State\n @state() private _open = false\n @state() private _inputValue = ''\n @state() private _visibleOptionsCount = 0\n @state() private _hasResults = true\n\n // DOM references\n @query('#options') _listbox!: HTMLUListElement\n @query('sch-input') _input!: SchmancyInput\n @queryAssignedElements({ flatten: true }) private _options!: SchmancyOption[]\n private _inputElementRef = createRef<HTMLInputElement>()\n\n // RxJS Subjects\n private _selectedValue$ = new BehaviorSubject<string>('')\n private _selectedValues$ = new BehaviorSubject<string[]>([])\n private _inputValue$ = new BehaviorSubject<string>('')\n private _open$ = new BehaviorSubject<boolean>(false)\n private _options$ = new BehaviorSubject<SchmancyOption[]>([])\n private _optionSelect$ = new Subject<SchmancyOption>()\n private _documentClick$ = new Subject<MouseEvent>()\n\n connectedCallback() {\n super.connectedCallback()\n \n if (!this.id) {\n this.id = `sch-autocomplete-${Math.random().toString(36).slice(2, 9)}`\n }\n\n this._setupAutocompleteLogic()\n this._setupDocumentClickHandler()\n // Complex autofill detection disabled - using simple auto-select on blur instead\n // this._setupAutofillDetection()\n }\n\n private _setupAutocompleteLogic() {\n // Options management pipeline\n this._options$.pipe(\n tap(options => {\n options.forEach((option, index) => {\n option.setAttribute('role', 'option')\n option.tabIndex = -1\n if (!option.id) {\n option.id = `${this.id}-option-${index}`\n }\n if (!option.hasAttribute('data-event-bound')) {\n fromEvent(option, 'click').pipe(\n tap(e => e.stopPropagation()),\n takeUntil(this.disconnecting)\n ).subscribe(() => this._optionSelect$.next(option))\n option.setAttribute('data-event-bound', 'true')\n }\n })\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Selection sync pipeline\n combineLatest([\n this._selectedValue$,\n this._selectedValues$,\n this._options$\n ]).pipe(\n tap(([selectedValue, selectedValues, options]) => {\n options.forEach(option => {\n option.selected = this.multi \n ? selectedValues.includes(option.value)\n : option.value === selectedValue\n option.setAttribute('aria-selected', String(option.selected))\n })\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Enhanced fuzzy filtering pipeline\n this._inputValue$.pipe(\n distinctUntilChanged(),\n debounceTime(this.debounceMs),\n withLatestFrom(this._options$, this._open$),\n tap(([searchTerm, options, isOpen]) => {\n if (!isOpen) return\n\n const term = searchTerm.trim()\n \n if (!term) {\n // Show all options if no search term\n options.forEach(option => {\n option.hidden = false\n option.style.order = '0' // Reset order\n })\n this._visibleOptionsCount = options.length\n this._hasResults = true\n } else {\n // Calculate similarity scores for all options\n const scoredOptions: FilteredOption[] = options.map(option => {\n // Get text to search in (prioritize label, then textContent, then value)\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores for both label and value\n const labelScore = similarity(term, optionLabel)\n const valueScore = similarity(term, optionValue)\n \n // Use the higher score (prioritizing label matches)\n const score = Math.max(labelScore * 1.1, valueScore) // Slight boost for label matches\n \n return { option, score }\n })\n \n // Sort by score (highest first)\n scoredOptions.sort((a, b) => b.score - a.score)\n \n // Apply visibility and ordering\n let visibleCount = 0\n scoredOptions.forEach((item, index) => {\n const { option, score } = item\n \n // Hide options below threshold\n if (score < this.similarityThreshold) {\n option.hidden = true\n } else {\n option.hidden = false\n visibleCount++\n // Use CSS order to sort visible options by relevance\n option.style.order = String(index)\n }\n })\n \n this._visibleOptionsCount = visibleCount\n this._hasResults = visibleCount > 0\n }\n \n this._announceToScreenReader(\n this._visibleOptionsCount > 0 \n ? `${this._visibleOptionsCount} option${this._visibleOptionsCount === 1 ? '' : 's'} available.`\n : 'No results found.'\n )\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Option selection pipeline\n this._optionSelect$.pipe(\n withLatestFrom(this._selectedValue$, this._selectedValues$),\n tap(([option, _, currentValues]) => {\n if (this.multi) {\n const index = currentValues.indexOf(option.value)\n const newValues = index > -1\n ? [...currentValues.slice(0, index), ...currentValues.slice(index + 1)]\n : [...currentValues, option.value]\n this._selectedValues$.next(newValues)\n \n this._inputValue$.next('')\n this._inputValue = ''\n \n const labels = this._getSelectedLabels()\n this._announceToScreenReader(\n labels.length > 0 \n ? `Selected: ${labels.join(', ')}`\n : 'No options selected'\n )\n } else {\n this._selectedValue$.next(option.value)\n this._open$.next(false)\n this._open = false\n \n this._inputValue = option.label || option.textContent || ''\n this._inputValue$.next(this._inputValue)\n \n timer(100).pipe(\n tap(() => this._inputElementRef.value?.blur()),\n take(1)\n ).subscribe()\n \n this._announceToScreenReader(`Selected: ${option.label || option.textContent}`)\n }\n }),\n tap(() => this._fireChangeEvent()),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Display update pipeline\n combineLatest([\n this._open$,\n this._selectedValue$,\n this._selectedValues$,\n this._options$\n ]).pipe(\n filter(() => !this._open$.value),\n tap(([, selectedValue, selectedValues, options]) => {\n if (this.multi) {\n const labels = options\n .filter(opt => selectedValues.includes(opt.value))\n .map(opt => opt.label || opt.textContent || '')\n this._inputValue = labels.join(', ')\n } else {\n const option = options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n }\n this._inputValue$.next(this._inputValue)\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Open state sync\n this._open$.pipe(\n tap(open => this._open = open),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _setupDocumentClickHandler() {\n this._documentClick$.pipe(\n filter(e => !e.composedPath().includes(this)),\n filter(e => !this._options.some(opt => e.composedPath().includes(opt))),\n filter(() => this._open),\n tap(() => {\n this._open$.next(false)\n this._updateInputDisplay()\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n this._open$.pipe(\n distinctUntilChanged(),\n switchMap(open => \n open \n ? timer(10).pipe(\n tap(() => document.addEventListener('click', e => this._documentClick$.next(e))),\n switchMap(() => EMPTY)\n )\n : of(null).pipe(\n tap(() => document.removeEventListener('click', e => this._documentClick$.next(e)))\n )\n ),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n\n private _updateInputDisplay() {\n of(null).pipe(\n withLatestFrom(\n this._selectedValue$,\n this._selectedValues$,\n this._options$,\n this._open$\n ),\n tap(([, selectedValue, selectedValues, options, isOpen]) => {\n if (!this._inputElementRef.value) return\n\n if (!isOpen || !this.multi) {\n if (this.multi) {\n const labels = options\n .filter(opt => selectedValues.includes(opt.value))\n .map(opt => opt.label || opt.textContent || '')\n this._inputValue = labels.join(', ')\n } else {\n const option = options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n }\n this._inputValue$.next(this._inputValue)\n this._inputElementRef.value.value = this._inputValue\n }\n }),\n take(1)\n ).subscribe()\n }\n\n private _getSelectedLabels(): string[] {\n return this._options\n .filter(option => \n this.multi \n ? this._selectedValues$.value.includes(option.value)\n : option.value === this._selectedValue$.value\n )\n .map(option => option.label || option.textContent || '')\n }\n\n private _announceToScreenReader(message: string) {\n const liveRegion = this.shadowRoot?.querySelector('#live-status')\n if (liveRegion) {\n liveRegion.textContent = message\n }\n }\n\n private _fireChangeEvent() {\n const detail: SchmancyAutocompleteChangeEvent['detail'] = {\n value: this.value,\n }\n\n if (this.multi) {\n detail.values = [...this._selectedValues$.value]\n }\n\n this.dispatchEvent(\n new CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n detail,\n bubbles: true,\n composed: true,\n })\n )\n }\n\n public checkValidity(): boolean {\n if (!this.required) return true\n return this.multi \n ? this._selectedValues$.value.length > 0 \n : Boolean(this._selectedValue$.value)\n }\n\n public reportValidity(): boolean {\n if (this._inputElementRef.value) {\n return this._inputElementRef.value.reportValidity()\n }\n return this.checkValidity()\n }\n\n firstUpdated() {\n // Auto-selection now happens on blur, no need for autofill detection\n }\n\n render() {\n const descriptionId = `${this.id}-desc`\n\n return html`\n <div class=\"relative\">\n <!-- Screen reader live region -->\n <div id=\"live-status\" role=\"status\" aria-live=\"polite\" class=\"sr-only\"></div>\n\n <!-- Description -->\n ${this.description ? html`<div id=\"${descriptionId}\" class=\"sr-only\">${this.description}</div>` : ''}\n\n <!-- Input -->\n <slot name=\"trigger\">\n <schmancy-input\n .size=${this.size}\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n class=\"w-full\"\n .name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-')}\n .label=${this.label}\n .placeholder=${this.placeholder}\n .required=${this.required}\n .value=${this._inputValue}\n type=\"text\"\n autocomplete=${this.autocomplete}\n clickable\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n aria-describedby=${this.description ? descriptionId : undefined}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n \n const hasSelection = this.multi \n ? this._selectedValues$.value.length > 0\n : !!this._selectedValue$.value\n \n if (this.multi && !hasSelection) {\n this._inputValue = ''\n this._inputValue$.next('')\n if (this._inputElementRef.value) {\n this._inputElementRef.value.value = ''\n }\n }\n \n this._open$.next(true)\n }}\n @click=${(e: MouseEvent) => {\n e.stopPropagation()\n this._open$.next(true)\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n >\n </schmancy-input>\n </slot>\n\n <!-- Options dropdown -->\n <ul\n id=\"options\"\n class=${classMap({\n 'absolute': true,\n 'z-[1000]': true,\n 'mt-1': true,\n 'w-full': true,\n 'rounded-md': true,\n 'shadow-md': true,\n 'overflow-auto': true,\n 'min-w-full': true,\n 'bg-surface-low': true,\n 'flex': true,\n 'flex-col': true, // Enable flexbox for ordering\n })}\n role=\"listbox\"\n aria-multiselectable=${this.multi ? 'true' : 'false'}\n aria-label=${`${this.label || 'Options'} dropdown`}\n ?hidden=${!this._open}\n style=\"max-height: ${this.maxHeight}; display: ${this._open ? 'flex' : 'none'};\"\n @slotchange=${() => {\n this._options$.next(this._options)\n }}\n >\n <slot></slot>\n ${!this._hasResults ? html`\n <li class=\"px-3 py-2 text-sm text-muted\">No results found</li>\n ` : ''}\n </ul>\n </div>\n\n <style>\n :host {\n display: block;\n }\n\n @keyframes onAutoFillStart {\n from {/**/}\n to {/**/}\n }\n\n sch-input::part(input):-webkit-autofill,\n sch-input input:-webkit-autofill {\n animation-name: onAutoFillStart;\n animation-duration: 1ms;\n }\n </style>\n `\n }\n\n private _handleAutoSelectOnBlur() {\n // Only auto-select in single-select mode and when dropdown is open with a search term\n if (this.multi || !this._open || !this._inputValue.trim()) {\n return\n }\n \n const searchTerm = this._inputValue.trim()\n \n // Find the best matching option using the same similarity logic as filtering\n let bestMatch: SchmancyOption | null = null\n let bestScore = 0\n \n this._options.forEach(option => {\n // Skip hidden options\n if (option.hidden) return\n \n // Get text to search in (prioritize label, then textContent, then value)\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores for both label and value\n const labelScore = similarity(searchTerm, optionLabel)\n const valueScore = similarity(searchTerm, optionValue)\n \n // Use the higher score (prioritizing label matches)\n const score = Math.max(labelScore * 1.1, valueScore) // Slight boost for label matches\n \n // Keep track of best match that meets threshold\n if (score > bestScore && score >= this.similarityThreshold) {\n bestScore = score\n bestMatch = option\n }\n })\n \n // Auto-select the best match if found\n if (bestMatch) {\n // Select the option using the existing pipeline\n this._optionSelect$.next(bestMatch)\n \n // Close the dropdown\n this._open$.next(false)\n this._open = false\n \n console.log('Auto-selected on blur:', bestMatch.value, 'with score:', bestScore)\n }\n }\n\n private _handleKeyDown(_e: KeyboardEvent) {\n fromEvent<KeyboardEvent>(document, 'keydown').pipe(\n take(1),\n withLatestFrom(this._open$, this._options$),\n tap(([event, isOpen, options]) => {\n if (!isOpen && (event.key === 'ArrowDown' || event.key === 'Enter')) {\n event.preventDefault()\n this._open$.next(true)\n \n timer(10).pipe(\n tap(() => {\n const firstVisible = options.find(opt => !opt.hidden)\n firstVisible?.focus()\n }),\n take(1)\n ).subscribe()\n return\n }\n\n if (!isOpen) return\n\n const visibleOptions = options.filter(opt => !opt.hidden)\n .sort((a, b) => parseInt(a.style.order || '0') - parseInt(b.style.order || '0'))\n \n const focusedOption = visibleOptions.find(opt => opt === document.activeElement)\n const currentIndex = focusedOption ? visibleOptions.indexOf(focusedOption) : -1\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault()\n this._open$.next(false)\n this._updateInputDisplay()\n this._inputElementRef.value?.focus()\n break\n\n case 'Tab':\n this._open$.next(false)\n this._updateInputDisplay()\n break\n\n case 'ArrowDown':\n event.preventDefault()\n const nextIndex = currentIndex < visibleOptions.length - 1 ? currentIndex + 1 : 0\n visibleOptions[nextIndex]?.focus()\n break\n\n case 'ArrowUp':\n event.preventDefault()\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : visibleOptions.length - 1\n visibleOptions[prevIndex]?.focus()\n break\n\n case 'Home':\n event.preventDefault()\n visibleOptions[0]?.focus()\n break\n\n case 'End':\n event.preventDefault()\n visibleOptions[visibleOptions.length - 1]?.focus()\n break\n\n case 'Enter':\n case ' ':\n if (focusedOption) {\n event.preventDefault()\n this._optionSelect$.next(focusedOption)\n }\n break\n }\n })\n ).subscribe()\n }\n}\n\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-autocomplete': SchmancyAutocomplete\n }\n}"],"names":["SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","required","placeholder","label","name","maxHeight","multi","description","size","autocomplete","debounceMs","similarityThreshold","_open","_inputValue","_visibleOptionsCount","_hasResults","_inputElementRef","createRef","_selectedValue$","BehaviorSubject","_selectedValues$","_inputValue$","_open$","_options$","_optionSelect$","Subject","_documentClick$","values","value","vals","next","Array","isArray","join","val","split","map","v","trim","filter","Boolean","connectedCallback","id","Math","random","toString","slice","_setupAutocompleteLogic","_setupDocumentClickHandler","pipe","tap","options","forEach","option","index","setAttribute","tabIndex","hasAttribute","fromEvent","e","stopPropagation","takeUntil","disconnecting","subscribe","combineLatest","selectedValue","selectedValues","selected","includes","String","distinctUntilChanged","debounceTime","withLatestFrom","searchTerm","isOpen","term","scoredOptions","optionLabel","textContent","optionValue","labelScore","similarity","valueScore","score","max","sort","a","b","visibleCount","item","hidden","style","order","length","_announceToScreenReader","_","currentValues","indexOf","newValues","labels","_getSelectedLabels","timer","blur","take","_fireChangeEvent","opt","find","open","composedPath","_options","some","_updateInputDisplay","switchMap","document","addEventListener","EMPTY","of","removeEventListener","message","liveRegion","shadowRoot","querySelector","detail","dispatchEvent","CustomEvent","bubbles","composed","checkValidity","reportValidity","firstUpdated","render","descriptionId","html","ref","toLowerCase","replace","target","hasSelection","_handleKeyDown","_handleAutoSelectOnBlur","classMap","absolute","flex","bestMatch","bestScore","_e","event","key","preventDefault","focus","visibleOptions","parseInt","focusedOption","activeElement","currentIndex","nextIndex","prevIndex","__decorateClass","property","type","prototype","reflect","Number","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
|