@kyndryl-design-system/shidoka-applications 2.66.2 → 2.66.4

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.
@@ -609,6 +609,10 @@ slot[name=icon]::slotted(*) {
609
609
  .select[invalid] {
610
610
  padding-right: 80px;
611
611
  }
612
+ .select.inline {
613
+ border-color: transparent;
614
+ background-color: transparent;
615
+ }
612
616
  .select.ai-connected:not([disabled], [readonly], .is-readonly) {
613
617
  border: 1px solid transparent;
614
618
  background: var(--kd-color-background-menu-state-ai-default);
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sources":["../../../../src/components/reusable/dropdown/dropdown.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, PropertyValues, html, unsafeCSS } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport DropdownScss from './dropdown.scss?inline';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { deepmerge } from 'deepmerge-ts';\nimport { nothing } from 'lit';\n\nimport './dropdownOption';\nimport './enhancedDropdownOption';\nimport '../tag';\nimport '../button';\n\nimport { DropdownOption } from './dropdownOption';\nimport { EnhancedDropdownOption } from './enhancedDropdownOption';\n\nimport downIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/error-filled.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nconst _defaultTextStrings = {\n title: 'Dropdown',\n selectedOptions: 'List of selected options',\n requiredText: 'Required',\n errorText: 'Error',\n clearAll: 'Clear all',\n clear: 'Clear',\n addItem: 'Add item...',\n add: 'Add',\n};\n\nconst KEY = {\n Enter: 'Enter',\n Escape: 'Escape',\n ArrowDown: 'ArrowDown',\n ArrowUp: 'ArrowUp',\n} as const;\n\n/**\n * Dropdown, single select.\n * @fires on-change - Captures the dropdown change event and emits the selected value and original event details. `detail:{ value: string/array }`\n * @fires on-search - Capture the search input event and emits the search text.`detail:{ searchText: string }`\n * @fires on-clear-all - Captures the the multi-select clear all button click event and emits the value. `detail:{ value: array }`\n * @fires on-add-option - Captures the add button click and emits the newly added option. `detail:{ value: string }`\n * @slot unnamed - Slot for dropdown options.\n * @slot tooltip - Slot for tooltip.\n * @slot anchor - Slot for custom dropdown anchor element. If not provided, defaults to standard input-style anchor.\n * @attr {string/array} [value=''/[]] - The selected value(s) of the input. For single select, it is a string. For multi-select, it is an array of strings.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-dropdown')\nexport class Dropdown extends FormMixin(LitElement) {\n static override styles = unsafeCSS(DropdownScss);\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /** Dropdown size/height. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /** Dropdown kind. */\n @property({ type: String, attribute: 'kind' })\n accessor kind: 'ai' | 'default' = 'default';\n\n /** Dropdown inline style type. */\n @property({ type: Boolean })\n accessor inline = false;\n\n /** Optional text beneath the input. */\n @property({ type: String })\n accessor caption = '';\n\n /** Dropdown placeholder. */\n @property({ type: String })\n accessor placeholder = '';\n\n /** Listbox/drawer open state. */\n @property({ type: Boolean, reflect: true })\n accessor open = false;\n\n /** Makes the dropdown searchable. */\n @property({ type: Boolean })\n accessor searchable = false;\n\n /** Makes the dropdown enhanced. */\n @property({ type: Boolean })\n accessor enhanced = false;\n\n /** Dropdown read-only state (focusable but not interactive). */\n @property({ type: Boolean, reflect: true })\n accessor readonly = false;\n\n /** Searchable variant filters results. */\n @property({ type: Boolean })\n accessor filterSearch = false;\n\n /** Enabled multi-select functionality. */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Makes the dropdown required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Visually hide the label. */\n @property({ type: Boolean })\n accessor hideLabel = false;\n\n /** Dropdown disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Hide the tags below multi-select. */\n @property({ type: Boolean })\n accessor hideTags = false;\n\n /** Adds a \"Select all\" option to the top of a multi-select dropdown. */\n @property({ type: Boolean })\n accessor selectAll = false;\n\n /** \"Select all\" text customization. */\n @property({ type: String })\n accessor selectAllText = 'Select all';\n\n /** Menu CSS min-width value. */\n @property({ type: String })\n accessor menuMinWidth = '120px';\n\n /** Controls direction that dropdown opens. */\n @property({ type: String })\n accessor openDirection: 'auto' | 'up' | 'down' = 'auto';\n\n /** Is \"Select All\" box checked.\n * @internal\n */\n @property({ type: Boolean })\n accessor selectAllChecked = false;\n\n /** Is \"Select All\" indeterminate.\n * @internal\n */\n @property({ type: Boolean })\n accessor selectAllIndeterminate = false;\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Enables the \"Add New Option\" feature. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = _defaultTextStrings;\n\n /**\n * New dropdown option value.\n * @ignore\n */\n @state()\n accessor newOptionValue = '';\n\n /**\n * Selected option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text = '';\n\n /**\n * Search input value.\n */\n @property({ type: String })\n accessor searchText = '';\n\n /**\n * Assistive text for screen readers.\n * @ignore\n */\n @state()\n accessor assistiveText = 'Dropdown menu options.';\n\n /**\n * Queries any slotted options, default or enhanced.\n * @ignore\n */\n protected get options(): Array<DropdownOption | EnhancedDropdownOption> {\n return Array.from(\n this.querySelectorAll<DropdownOption | EnhancedDropdownOption>(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option'\n )\n );\n }\n\n /**\n * Queries any slotted selected options.\n * @ignore\n */\n protected get selectedOptions(): Array<\n DropdownOption | EnhancedDropdownOption\n > {\n return this.options.filter(\n (opt): opt is DropdownOption | EnhancedDropdownOption =>\n opt.hasAttribute('selected')\n );\n }\n\n /**\n * Queries the .search DOM element.\n * @ignore\n */\n @query('.search')\n accessor searchEl!: HTMLInputElement;\n\n /**\n * Queries the .select DOM element.\n * @ignore\n */\n @query('.select')\n accessor buttonEl!: HTMLElement;\n\n /**\n * Queries the .options DOM element.\n * @ignore\n */\n @query('.options')\n accessor listboxEl!: HTMLElement;\n\n /**\n * Queries the .clear-multiple DOM element.\n * @ignore\n */\n @query('.clear-multiple')\n accessor clearMultipleEl!: HTMLElement;\n\n /**\n * Queries the .add-option-input DOM element.\n * @ignore\n */\n @query('.add-option-input')\n accessor addOptionInputEl!: HTMLInputElement;\n\n /**\n * Open drawer upwards.\n * @ignore\n */\n @state()\n accessor _openUpwards = false;\n\n /**\n * Tags value/text reference.\n * @ignore\n */\n @state()\n accessor _tags: Array<object> = [];\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n searchTextEntered: any = false;\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n prevSearchKeydownIndex = -1;\n\n private _onDocumentClick = (e: Event) => this._handleClickOut(e);\n private _onChildClick = (e: Event) => this._handleClick(e as any);\n private _onChildRemove = (_e: Event) => this._handleRemoveOption();\n private _onChildBlur = (e: Event) => this._handleBlur(e as any);\n\n override render() {\n const mainDropdownClasses = {\n dropdown: true,\n 'ai-connected': this.kind === 'ai',\n };\n\n return html`\n <div\n class=${classMap(mainDropdownClasses)}\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n ?open=${this.open}\n ?inline=${this.inline}\n ?searchable=${this.searchable}\n >\n <label\n id=\"label-${this.name}\"\n class=\"label-text ${this.hideLabel || this.inline ? 'sr-only' : ''}\"\n for=${this.name}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings?.requiredText || 'Required'}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </label>\n\n <div\n class=${classMap({\n wrapper: true,\n open: this.open,\n })}\n >\n <div\n class=\"custom\"\n @click=${(e: MouseEvent) => this.handleAnchorClick(e)}\n @keydown=${(e: KeyboardEvent) => this.handleAnchorKeydown(e)}\n >\n <slot name=\"anchor\">\n <div\n class=\"${classMap({\n select: true,\n 'is-readonly': !this.disabled && this.readonly,\n multiple: this.multiple,\n 'input-custom': true,\n 'size--sm': this.size === 'sm',\n 'size--lg': this.size === 'lg',\n inline: this.inline,\n })}\"\n aria-labelledby=\"label-${this.name}\"\n aria-expanded=${this.open}\n aria-controls=\"options\"\n role=\"combobox\"\n id=${this.name}\n name=${this.name}\n title=${this._textStrings.title}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?invalid=${this._isInvalid}\n tabindex=${this.disabled ? '' : this.searchable ? '-1' : '0'}\n @mousedown=${(e: MouseEvent) => {\n if (!this.searchable && !this.readonly) e.preventDefault();\n }}\n aria-readonly=${this.readonly}\n @blur=${(e: any) => e.stopPropagation()}\n >\n ${this.multiple && this.value.length\n ? html`\n <button\n class=${classMap({\n 'clear-multiple': true,\n })}\n aria-label=\"${this.value\n .length} items selected. Clear selections\"\n ?disabled=${this.disabled || this.readonly}\n title=${this._textStrings.clear}\n @click=${(e: Event) => this.handleClearMultiple(e)}\n >\n ${this.value.length}\n <span style=\"display:flex;\" class=\"clear-multiple-icon\">\n ${unsafeSVG(clearIcon)}\n </span>\n </button>\n `\n : null}\n ${this.searchable\n ? html`\n <input\n class=\"search\"\n type=\"text\"\n placeholder=${this.placeholder}\n value=${this.searchText}\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n aria-disabled=${this.disabled}\n @keydown=${(e: any) => this.handleSearchKeydown(e)}\n @input=${(e: any) => this.handleSearchInput(e)}\n @blur=${(e: any) => e.stopPropagation()}\n @click=${(e: any) => this.handleSearchClick(e)}\n />\n `\n : html`\n <span\n class=\"${classMap({\n 'placeholder-text': this.text === '',\n })}\"\n >\n ${this.multiple\n ? this.placeholder\n : this.value === ''\n ? this.placeholder\n : this.text}\n </span>\n `}\n <span class=\"arrow-icon\">${unsafeSVG(downIcon)}</span>\n </div>\n </slot>\n\n <div\n id=\"options\"\n class=${classMap({\n options: true,\n open: this.open,\n upwards: this._openUpwards,\n })}\n style=\"min-width: ${this.menuMinWidth};\"\n aria-hidden=${!this.open}\n @keydown=${this.handleListKeydown}\n @blur=${this.handleListBlur}\n @focus=${this._handleListFocus}\n >\n ${this.allowAddOption\n ? html`\n <div class=\"add-option\">\n <input\n class=\"add-option-input\"\n type=\"text\"\n placeholder=${this._textStrings.addItem}\n .value=${this.newOptionValue}\n aria-label=\"Add new option\"\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n @input=${this._handleInputNewOption}\n @keydown=${this._onAddOptionInputKeydown}\n @focus=${this._onAddOptionInputFocus}\n />\n <kyn-button\n type=\"button\"\n size=\"small\"\n kind=\"secondary\"\n ?disabled=${this.disabled}\n @on-click=${this._handleAddOption}\n >\n ${this._textStrings.add}\n </kyn-button>\n </div>\n `\n : null}\n\n <div\n role=\"listbox\"\n aria-labelledby=\"label-${this.name}\"\n class=${classMap({\n 'dropdown-listbox': true,\n 'ai-connected': this.kind === 'ai',\n })}\n >\n ${this.multiple && this.selectAll\n ? html`\n ${this.enhanced\n ? html`\n <kyn-enhanced-dropdown-option\n class=\"select-all\"\n value=\"selectAll\"\n multiple\n ?selected=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?disabled=${this.disabled}\n >\n ${this.selectAllText}\n </kyn-enhanced-dropdown-option>\n `\n : html`\n <kyn-dropdown-option\n class=\"select-all\"\n value=\"selectAll\"\n multiple\n ?selected=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?disabled=${this.disabled}\n >\n ${this.selectAllText}\n </kyn-dropdown-option>\n `}\n `\n : null}\n\n <slot\n id=\"children\"\n @slotchange=${() => this.handleSlotChange()}\n ></slot>\n </div>\n </div>\n </div>\n ${this.hasSearch && this.open\n ? html`\n <kyn-button\n ?disabled=${this.disabled || this.readonly}\n class=\"clear-button dropdown-clear\"\n kind=${this.kind === 'ai' ? 'ghost-ai' : 'ghost'}\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${(e: Event) => this.handleClear(e)}\n >\n <span style=\"display:flex;\">${unsafeSVG(clearIcon)}</span>\n </kyn-button>\n `\n : null}\n </div>\n ${this.renderHelperContent()}\n </div>\n `;\n }\n\n private _onAddOptionInputKeydown(e: KeyboardEvent) {\n if (this.readonly) return;\n\n e.stopPropagation();\n switch (e.key) {\n case KEY.Enter:\n this._handleAddOption();\n break;\n case KEY.Escape:\n this.newOptionValue = '';\n this.open = false;\n this.buttonEl.focus();\n break;\n case KEY.ArrowDown:\n this.handleKeyboard(e, 40, 'addOption');\n break;\n case KEY.ArrowUp:\n this.handleKeyboard(e, 38, 'addOption');\n break;\n }\n }\n\n private _onAddOptionInputFocus() {\n this.assistiveText = 'Add new option input';\n }\n\n private canOpen(): boolean {\n return !this.disabled && !this.readonly;\n }\n\n private handleAnchorClick(e: MouseEvent) {\n if (!this.canOpen()) return;\n\n const path = (e.composedPath?.() || []) as Array<EventTarget>;\n const isInOptions =\n path.some((t) => (t as HTMLElement)?.classList?.contains('options')) ||\n (e.target as HTMLElement)?.closest?.(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option, .add-option'\n );\n\n if (isInOptions) return;\n\n this.handleClick();\n }\n\n private handleAnchorKeydown(e: KeyboardEvent) {\n if (!this.canOpen()) {\n const openKeys = [' ', 'Enter', 'ArrowDown', 'ArrowUp'];\n if (openKeys.includes(e.key)) e.preventDefault();\n return;\n }\n\n this.handleButtonKeydown(\n e as unknown as KeyboardEvent & { keyCode: number }\n );\n }\n\n private _handleAddOption() {\n if (this.readonly) return;\n\n const v = this.newOptionValue.trim();\n if (!v) return;\n this.dispatchEvent(\n new CustomEvent('on-add-option', { detail: { value: v } })\n );\n this.newOptionValue = '';\n }\n\n private renderHelperContent() {\n return html`\n ${\n this.multiple && !this.hideTags && this._tags.length\n ? html`\n <kyn-tag-group\n ?filter=${this.disabled || this.readonly ? false : true}\n role=\"list\"\n aria-label=${this._textStrings.selectedOptions}\n data-readonly=${this.readonly ? '' : nothing}\n >\n ${this._tags.map((tag: any) => {\n return html`\n <kyn-tag\n role=\"listitem\"\n tagColor=${this.kind === 'ai' ? 'ai' : 'default'}\n label=${tag.text}\n ?disabled=${this.disabled ||\n tag.disabled ||\n this.readonly}\n @on-close=${() => this.handleTagClear(tag)}\n ></kyn-tag>\n `;\n })}\n </kyn-tag-group>\n `\n : null\n }\n ${\n this.caption !== ''\n ? html`\n <div class=\"caption\" aria-disabled=${this.disabled}>\n ${this.caption}\n </div>\n `\n : null\n }\n ${\n this._isInvalid\n ? html`\n <div class=\"error\">\n <span\n class=\"error-icon\"\n role=\"img\"\n title=${this._textStrings.errorText}\n aria-label=${this._textStrings.errorText}\n >${unsafeSVG(errorIcon)}</span\n >\n ${this.invalidText || this._internalValidationMsg}\n </div>\n `\n : null\n }\n\n <div\n class=\"assistive-text\"\n role=\"status\"\n aria-live=\"assertive\"\n aria-relevant=\"additions text\"\n >\n ${this.assistiveText}\n </div>\n </div>\n `;\n }\n\n override firstUpdated() {\n // set a default placeholder if none provided\n if (this.placeholder === '') {\n if (this.searchable) {\n this.placeholder = 'Search';\n } else {\n if (this.multiple) {\n this.placeholder = 'Select items';\n } else {\n this.placeholder = 'Select an option';\n }\n }\n }\n }\n\n private handleSlotChange() {\n this.updateChildOptions();\n this._updateOptions();\n this._updateSelectedText();\n }\n\n private updateChildOptions() {\n const slot = this.shadowRoot?.querySelector('#children') as HTMLSlotElement;\n const options = slot.assignedElements({ flatten: true }) as HTMLElement[];\n\n options.forEach((option) => {\n const tag = option.tagName;\n if (\n tag === 'KYN-DROPDOWN-OPTION' ||\n tag === 'KYN-ENHANCED-DROPDOWN-OPTION'\n ) {\n (option as any).allowAddOption = this.allowAddOption;\n (option as any).multiple = this.multiple;\n (option as any).readonly = this.readonly;\n }\n });\n }\n\n private handleClick() {\n if (!this.canOpen()) return;\n\n this.open = !this.open;\n if (this.searchable) this.searchEl.focus();\n else this.buttonEl.focus();\n }\n\n private handleButtonKeydown(e: any) {\n if (this.readonly) {\n if (e.key === 'Escape') {\n this.open = false;\n this.buttonEl?.focus();\n }\n return;\n }\n this.handleKeyboard(e, e.keyCode, 'button');\n }\n\n private handleListKeydown(e: any) {\n if (this.readonly) {\n if (e.key === 'Escape') {\n e.preventDefault();\n this.open = false;\n this.buttonEl?.focus();\n }\n return;\n }\n\n const TAB_KEY_CODE = 9;\n\n if (e.keyCode !== TAB_KEY_CODE) {\n e.preventDefault();\n }\n\n this.handleKeyboard(e, e.keyCode, 'list');\n }\n\n private _handleListFocus() {\n const selectAllOptions = Array.from(\n this.shadowRoot?.querySelectorAll('.select-all') || []\n ) as any[];\n const filteredOptions = this.options.filter(\n (option: any) => option.style.display !== 'none'\n );\n const visibleOptions = [...selectAllOptions, ...filteredOptions] as any[];\n\n const firstEnabled = visibleOptions.find((o: any) => !o.disabled) as any;\n if (!firstEnabled) return;\n\n visibleOptions.forEach((o: any) => (o.highlighted = false));\n\n if (!('tabIndex' in firstEnabled) || firstEnabled.tabIndex < 0) {\n firstEnabled.tabIndex = 0;\n }\n firstEnabled.focus();\n firstEnabled.scrollIntoView({ block: 'nearest' });\n this.assistiveText = firstEnabled.text || 'Option';\n }\n\n private handleListBlur(e: FocusEvent): void {\n if (this.multiple) {\n return;\n }\n\n this.options.forEach((o) => (o.highlighted = false));\n const target = e.relatedTarget as HTMLElement | null;\n\n if (\n target &&\n (target.closest('kyn-dropdown-option') ||\n target.closest('kyn-enhanced-dropdown-option') ||\n target.classList.contains('search') ||\n target.closest('.add-option'))\n ) {\n return;\n }\n\n this.open = false;\n this.assistiveText = 'Dropdown menu options.';\n }\n\n private handleKeyboard(e: any, keyCode: number, target: string) {\n const SPACEBAR_KEY_CODE = [0, 32];\n const ENTER_KEY_CODE = 13;\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n const ESCAPE_KEY_CODE = 27;\n\n // get highlighted element + index and selected element\n const selectAllOptions = Array.from(\n this.shadowRoot?.querySelectorAll('.select-all') || []\n ) as any[];\n const filteredOptions = this.options.filter(\n (option: any) => option.style.display !== 'none'\n );\n const visibleOptions = [...selectAllOptions, ...filteredOptions] as any[];\n // visibleOptions.forEach((e) => (e.tabIndex = 0));\n\n const highlightedEl = visibleOptions.find(\n (option: any) => option.highlighted\n );\n const selectedEl = visibleOptions.find((option: any) => option.selected);\n let highlightedIndex = highlightedEl\n ? visibleOptions.indexOf(highlightedEl)\n : selectedEl\n ? visibleOptions.indexOf(selectedEl)\n : 0;\n\n if (SPACEBAR_KEY_CODE.includes(keyCode)) {\n e.preventDefault();\n }\n\n if (this.readonly) {\n if (keyCode === DOWN_ARROW_KEY_CODE || keyCode === UP_ARROW_KEY_CODE) {\n e.preventDefault();\n let nextIndex =\n keyCode === DOWN_ARROW_KEY_CODE\n ? (highlightedIndex + 1) % visibleOptions.length\n : (highlightedIndex - 1 + visibleOptions.length) %\n visibleOptions.length;\n\n let guard = 0;\n while (\n visibleOptions[nextIndex]?.disabled &&\n guard++ < visibleOptions.length\n ) {\n nextIndex =\n keyCode === DOWN_ARROW_KEY_CODE\n ? (nextIndex + 1) % visibleOptions.length\n : (nextIndex - 1 + visibleOptions.length) % visibleOptions.length;\n }\n\n if (visibleOptions[nextIndex]) {\n visibleOptions[highlightedIndex] &&\n (visibleOptions[highlightedIndex].highlighted = false);\n visibleOptions[nextIndex].focus();\n visibleOptions[nextIndex].highlighted = true;\n visibleOptions[nextIndex].scrollIntoView?.({ block: 'nearest' });\n this.assistiveText = visibleOptions[nextIndex].text || 'Option';\n }\n return;\n }\n\n if (SPACEBAR_KEY_CODE.includes(keyCode) || keyCode === ENTER_KEY_CODE) {\n e.preventDefault();\n return;\n }\n\n if (keyCode === ESCAPE_KEY_CODE) {\n this.open = false;\n (this.searchable ? this.searchEl : this.buttonEl)?.focus();\n this.assistiveText = 'Dropdown menu options.';\n return;\n }\n\n return;\n }\n\n const isListboxElOpened = this.open;\n // open the listbox\n if (target === 'button' || target === 'addOption') {\n let openDropdown =\n SPACEBAR_KEY_CODE.includes(keyCode) ||\n keyCode === ENTER_KEY_CODE ||\n keyCode == DOWN_ARROW_KEY_CODE ||\n keyCode == UP_ARROW_KEY_CODE;\n\n if (e.target === this.clearMultipleEl && keyCode === ENTER_KEY_CODE) {\n openDropdown = false;\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n highlightedIndex = 0;\n if (keyCode !== ENTER_KEY_CODE) return;\n }\n\n if (openDropdown) {\n this.open = true;\n\n if (\n this.allowAddOption &&\n target === 'button' &&\n keyCode === ENTER_KEY_CODE\n ) {\n setTimeout(() => {\n this.addOptionInputEl?.focus();\n }, 100);\n } else {\n // scroll to highlighted option\n if (!this.multiple && this.value !== '') {\n visibleOptions[highlightedIndex].scrollIntoView({\n block: 'nearest',\n });\n }\n }\n }\n }\n switch (keyCode) {\n case 0:\n case 32:\n case ENTER_KEY_CODE: {\n // select highlighted option\n visibleOptions[highlightedIndex].highlighted = true;\n if (isListboxElOpened) {\n if (this.multiple) {\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n this._handleClick({\n detail: {\n value: visibleOptions[highlightedIndex].value,\n selected: visibleOptions[highlightedIndex].selected,\n },\n });\n } else {\n visibleOptions.forEach((e) => (e.selected = false));\n visibleOptions[highlightedIndex].selected = true;\n this.updateValue(visibleOptions[highlightedIndex].value, true);\n this.emitValue();\n\n this.open = false;\n this.assistiveText = `Selected ${visibleOptions[highlightedIndex].value}`;\n }\n }\n return;\n }\n case DOWN_ARROW_KEY_CODE: {\n let nextIndex =\n !highlightedEl && !selectedEl\n ? 0\n : highlightedIndex === visibleOptions.length - 1\n ? 0\n : highlightedIndex + 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === visibleOptions.length - 1 ? 0 : nextIndex + 1;\n }\n\n visibleOptions[nextIndex].focus();\n visibleOptions[highlightedIndex].tabIndex = -1;\n visibleOptions[nextIndex].tabIndex = 0;\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case UP_ARROW_KEY_CODE: {\n // go to previous option\n let nextIndex =\n highlightedIndex === 0\n ? visibleOptions.length - 1\n : highlightedIndex - 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === 0 ? visibleOptions.length - 1 : nextIndex - 1;\n }\n\n visibleOptions[nextIndex].focus();\n visibleOptions[highlightedIndex].tabIndex = -1;\n visibleOptions[nextIndex].tabIndex = 0;\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case ESCAPE_KEY_CODE: {\n this.open = false;\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n this.assistiveText = 'Dropdown menu options.';\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private handleClearMultiple(e: any) {\n if (this.readonly) return;\n\n e.stopPropagation();\n\n // clear values\n if (this.multiple) {\n const Slot: any = this.shadowRoot?.querySelector('slot#children');\n const Options: Array<any> = Slot.assignedElements();\n const DisabledSelectedOptions: Array<any> = Options.filter(\n (option: any) => option.selected && option.disabled\n ).map((option: any) => option.value);\n\n this.value = DisabledSelectedOptions.length\n ? DisabledSelectedOptions\n : [];\n } else {\n this.value = '';\n }\n\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n\n const event = new CustomEvent('on-clear-all', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleTagClear(tag: any) {\n if (this.readonly) return;\n // remove value\n this.updateValue(tag.value, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n\n private handleClear(e: any) {\n if (this.readonly) return;\n\n e.stopPropagation();\n\n // reset search input text\n this.text = '';\n this.searchText = '';\n this.searchEl.value = '';\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // reveal all options\n this.options.map((option: any) => {\n option.style.display = 'block';\n });\n }\n\n // clear selection for single select\n if (!this.multiple) {\n this.value = '';\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n }\n\n private handleSearchClick(e: MouseEvent) {\n if (this.readonly) return;\n e.stopPropagation();\n this.open = true;\n if ((this.searchText ?? '').trim() === '') this.searchText = '';\n }\n\n private handleSearchKeydown(e: any) {\n if (this.readonly) {\n if (e.key === 'Escape') {\n this.open = false;\n this.buttonEl.focus();\n }\n e.stopPropagation();\n e.preventDefault();\n return;\n }\n\n e.stopPropagation();\n\n const ENTER_KEY_CODE = 13;\n const ESCAPE_KEY_CODE = 27;\n const option = this.options.find((option) => option.highlighted);\n const highlightedIndex = this.options.findIndex(\n (option) => option.highlighted\n );\n this.searchTextEntered = false;\n // select option\n if (e.keyCode === ENTER_KEY_CODE) {\n this.searchTextEntered = true;\n if (option) {\n if (this.prevSearchKeydownIndex !== highlightedIndex) {\n if (this.multiple) {\n option.selected = !option.selected;\n } else {\n this.options.forEach((e) => (e.selected = false));\n option.selected = true;\n this.open = false;\n }\n this.updateValue(option.value, option.selected);\n }\n\n if (option.selected) {\n this.assistiveText = `Selected ${option.innerHTML}`;\n this.prevSearchKeydownIndex = highlightedIndex;\n } else {\n this.assistiveText = `Deselected ${option.innerHTML}`;\n }\n } else {\n this.assistiveText = 'No item matched.';\n }\n }\n\n // close listbox\n if (e.keyCode === ESCAPE_KEY_CODE) {\n this.open = false;\n this.buttonEl.focus();\n }\n }\n\n private handleSearchInput(e: any) {\n if (this.readonly) return;\n\n const value = e.target.value;\n this.searchText = value;\n this.open = true;\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // hide items that don't match\n this.options.map((option: any) => {\n let searchText = option.text;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n searchText = titleSlot.textContent.trim();\n } else {\n searchText = option.displayText || option.value;\n }\n }\n\n if (searchText.toLowerCase().includes(value.toLowerCase())) {\n option.style.display = 'block';\n } else {\n option.style.display = 'none';\n }\n });\n } else {\n // find matches\n const options = this.options.filter((option: any) => {\n let searchText = option.text;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n searchText = titleSlot.textContent.trim();\n } else {\n searchText = option.displayText || option.value;\n }\n }\n\n return searchText.toLowerCase().startsWith(value.toLowerCase());\n });\n\n // reset options highlighted state\n this.options.forEach((option) => (option.highlighted = false));\n\n // option highlight and scroll\n if (value !== '' && options.length) {\n options[0].highlighted = true;\n options[0].scrollIntoView({ block: 'nearest' });\n if (this.searchTextEntered) this.assistiveText = 'Option Matched';\n }\n }\n }\n\n private _updateSelectedOptions() {\n // set selected state for each option\n this.options.forEach((option: any) => {\n if (this.multiple) {\n option.selected = this.value.includes(option.value);\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n\n private _handleClick(e: any) {\n if (this.readonly) return;\n\n if (e.detail.value === 'selectAll') {\n this.selectAllChecked = e.detail.selected;\n\n const Slot: any = this.shadowRoot?.querySelector('slot#children');\n const Options: Array<any> = Slot.assignedElements();\n const DisabledSelectedOptions: Array<any> = Options.filter(\n (option: any) => option.selected && option.disabled\n ).map((option: any) => option.value);\n\n if (e.detail.selected) {\n this.value = this.options\n .filter(\n (option) => !option.disabled || (option.disabled && option.selected)\n )\n .map((option) => option.value);\n this.assistiveText = 'Selected all items.';\n } else {\n this.value = DisabledSelectedOptions.length\n ? DisabledSelectedOptions\n : [];\n this.assistiveText = 'Deselected all items.';\n }\n\n this._validate(true, false);\n } else {\n this.updateValue(e.detail.value, e.detail.selected);\n this.assistiveText = e.detail.selected\n ? `Selected ${e.detail.value}`\n : `Deselected ${e.detail.value}`;\n }\n\n this._updateSelectedOptions();\n\n if (!this.multiple) {\n this.open = false;\n }\n\n // emit selected value\n this.emitValue();\n }\n\n private _handleBlur(e: any) {\n const relatedTarget = e.detail.origEvent.relatedTarget;\n\n if (\n !relatedTarget ||\n (relatedTarget?.localName !== 'kyn-dropdown-option' &&\n relatedTarget?.localName !== 'kyn-enhanced-dropdown-option' &&\n relatedTarget.localName !== 'kyn-dropdown')\n ) {\n this.open = false;\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this._onConnected();\n\n document.addEventListener('click', this._onDocumentClick);\n\n this.addEventListener('on-click', this._onChildClick);\n this.addEventListener('on-remove-option', this._onChildRemove);\n this.addEventListener('on-blur', this._onChildBlur);\n }\n\n override disconnectedCallback() {\n this._onDisconnected();\n\n document.removeEventListener('click', this._onDocumentClick);\n this.removeEventListener('on-click', this._onChildClick);\n this.removeEventListener('on-remove-option', this._onChildRemove);\n this.removeEventListener('on-blur', this._onChildBlur);\n\n super.disconnectedCallback();\n }\n\n private updateValue(value: string, selected = false) {\n if (this.readonly) return;\n\n // set value\n if (this.multiple) {\n const values =\n this.value === '' ? [] : JSON.parse(JSON.stringify(this.value));\n\n // update array\n if (selected) {\n values.push(value);\n } else {\n const index = values.indexOf(value);\n values.splice(index, 1);\n }\n\n this.value = values;\n } else {\n this.value = value;\n }\n\n this._validate(true, false);\n\n // reset focus\n if (!this.multiple) {\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private _validate(interacted: Boolean, report: Boolean) {\n // set validity flags\n const Validity = {\n customError: this.invalidText !== '',\n valueMissing:\n this.required &&\n !this.readonly &&\n (!this.value ||\n (this.multiple && !this.value.length) ||\n (!this.multiple && this.value === '')),\n };\n\n // set validationMessage\n const InternalMsg =\n this.required && !this.value.length ? 'Please fill out this field.' : '';\n const ValidationMessage =\n this.invalidText !== '' ? this.invalidText : InternalMsg;\n\n const validationAnchor = this.buttonEl || this.listboxEl;\n\n if (validationAnchor) {\n this._internals.setValidity(\n Validity,\n ValidationMessage,\n validationAnchor\n );\n } else {\n this._internals.setValidity(Validity, ValidationMessage);\n }\n\n if (interacted) {\n this._internalValidationMsg = InternalMsg;\n }\n\n if (report) {\n this._internals.reportValidity();\n }\n }\n\n private emitValue() {\n const event = new CustomEvent('on-change', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private _emitSearch() {\n const event = new CustomEvent('on-search', {\n detail: {\n searchText: this.searchText,\n },\n });\n this.dispatchEvent(event);\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n override updated(changedProps: PropertyValues) {\n super.updated(changedProps);\n\n if (changedProps.has('readonly')) {\n this.clearMultipleEl?.classList.toggle('is-readonly', this.readonly);\n this.clearMultipleEl?.toggleAttribute('data-readonly', this.readonly);\n }\n\n if (changedProps.has('kind')) {\n this.dispatchEvent(\n new CustomEvent('kind-changed', {\n detail: this.kind,\n bubbles: true,\n composed: true,\n })\n );\n\n this.classList.toggle('ai-connected', this.kind === 'ai');\n }\n\n const root = this.shadowRoot;\n if (!root) return;\n\n if (changedProps.has('open')) {\n const slot = root.querySelector<HTMLSlotElement>('slot[name=\"anchor\"]');\n const assigned = slot?.assignedElements({ flatten: true }) as\n | HTMLElement[]\n | undefined;\n const btn = assigned?.find(\n (el) => !el.querySelector('.clear-multiple-icon')\n );\n const icon = btn?.querySelector<HTMLElement>('span[slot=\"icon\"]');\n if (icon) {\n icon.style.transition = 'transform 0.2s ease-in-out';\n icon.style.transform = this.open ? 'rotate(180deg)' : 'rotate(0deg)';\n }\n }\n\n this._onUpdated(changedProps);\n\n if (changedProps.has('value')) {\n this._updateOptions();\n\n const childrenSlot: any =\n root.querySelector<HTMLSlotElement>('slot#children');\n const options = childrenSlot\n .assignedElements()\n .filter((o: any): o is HTMLElement => !o.disabled);\n const selected = options.filter((o: any) => o.selected);\n\n this.selectAllChecked = selected.length === options.length;\n this.selectAllIndeterminate =\n selected.length > 0 && selected.length < options.length;\n\n this._updateTags();\n this._updateSelectedText();\n }\n\n if (changedProps.has('open') || changedProps.has('openDirection')) {\n if (this.open) {\n this.options.forEach((o) => (o.highlighted = false));\n\n if (!this.searchable && this.listboxEl) {\n this.listboxEl.focus({ preventScroll: true });\n this.assistiveText =\n 'Selecting items. Use up and down arrow keys to navigate.';\n }\n }\n\n if (this.openDirection === 'up') {\n this._openUpwards = true;\n } else if (this.openDirection === 'down') {\n this._openUpwards = false;\n } else if (this.open) {\n const rect = this.buttonEl.getBoundingClientRect();\n this._openUpwards = rect.top > window.innerHeight * 0.6;\n }\n\n if (this.open && !this.multiple) {\n const firstSelected = this.options.find((o) => o.selected);\n firstSelected?.scrollIntoView({ block: 'nearest' });\n }\n }\n\n if (changedProps.has('multiple')) {\n this.options.forEach((opt) => (opt.multiple = this.multiple));\n }\n\n if (changedProps.has('searchText') && this.searchEl) {\n this.searchEl.value = this.searchText;\n }\n\n if (\n changedProps.has('multiple') ||\n changedProps.has('allowAddOption') ||\n changedProps.has('readonly')\n ) {\n this.updateChildOptions();\n }\n\n if (changedProps.has('open') && this.open && !this.searchable) {\n this.listboxEl?.focus({ preventScroll: true });\n }\n }\n\n private get hasSearch(): boolean {\n return (this.searchText ?? '').trim().length > 0;\n }\n\n // add selected options to Tags array\n private _updateTags() {\n if (this.multiple) {\n const Options: any = Array.from(\n this.querySelectorAll(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option'\n )\n );\n const Tags: Array<object> = [];\n\n if (Options) {\n Options.forEach((option: any) => {\n if (option.selected) {\n let text = option.textContent;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n text = titleSlot.textContent.trim();\n } else {\n text = option.displayText || option.value;\n }\n } else {\n text = option.textContent.trim();\n }\n\n Tags.push({\n value: option.value,\n text: text,\n disabled: option.disabled,\n });\n }\n });\n\n this._tags = Tags;\n }\n }\n }\n\n private _updateOptions() {\n const Options: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option, kyn-enhanced-dropdown-option')\n );\n\n Options.forEach((option: any) => {\n // set option multiple state\n option.multiple = this.multiple;\n\n if (this.multiple) {\n const Selected = this.value.includes(option.value);\n // set option selected state\n option.selected = Selected;\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n\n private _handleInputNewOption(e: Event) {\n const target = e.target as HTMLInputElement;\n this.newOptionValue = target.value;\n }\n\n private _handleRemoveOption() {\n this.assistiveText = 'MY option removed ';\n setTimeout(() => {\n this.open = false;\n this.buttonEl.focus();\n }, 100);\n }\n\n private _updateSelectedText() {\n // update selected option text\n const AllOptions: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option, kyn-enhanced-dropdown-option')\n );\n\n if (!this.multiple) {\n if (AllOptions.length && this.value !== '') {\n const option = AllOptions.find(\n (option: any) => option.value === this.value\n );\n if (option) {\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n this.text = titleSlot.textContent.trim();\n } else {\n this.text = option.displayText || this.value;\n }\n } else {\n this.text = option.textContent.trim();\n }\n } else {\n this.text = '';\n console.warn(`No dropdown option found with value: ${this.value}`);\n }\n }\n\n if (this.searchable && this.text) {\n this.searchText = this.text === this.placeholder ? '' : this.text;\n this.searchEl.value = this.searchText;\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-dropdown': Dropdown;\n }\n}\n"],"names":["_defaultTextStrings","title","selectedOptions","requiredText","errorText","clearAll","clear","addItem","add","KEY","Dropdown","customElement","FormMixin","LitElement","_classThis","_classSuper","_Dropdown_label_accessor_storage","set","this","__runInitializers","_label_initializers","_Dropdown_size_accessor_storage","_label_extraInitializers","_size_initializers","_Dropdown_kind_accessor_storage","_size_extraInitializers","_kind_initializers","_Dropdown_inline_accessor_storage","_kind_extraInitializers","_inline_initializers","_Dropdown_caption_accessor_storage","_inline_extraInitializers","_caption_initializers","_Dropdown_placeholder_accessor_storage","_caption_extraInitializers","_placeholder_initializers","_Dropdown_open_accessor_storage","_placeholder_extraInitializers","_open_initializers","_Dropdown_searchable_accessor_storage","_open_extraInitializers","_searchable_initializers","_Dropdown_enhanced_accessor_storage","_searchable_extraInitializers","_enhanced_initializers","_Dropdown_readonly_accessor_storage","_enhanced_extraInitializers","_readonly_initializers","_Dropdown_filterSearch_accessor_storage","_readonly_extraInitializers","_filterSearch_initializers","_Dropdown_multiple_accessor_storage","_filterSearch_extraInitializers","_multiple_initializers","_Dropdown_required_accessor_storage","_multiple_extraInitializers","_required_initializers","_Dropdown_hideLabel_accessor_storage","_required_extraInitializers","_hideLabel_initializers","_Dropdown_disabled_accessor_storage","_hideLabel_extraInitializers","_disabled_initializers","_Dropdown_hideTags_accessor_storage","_disabled_extraInitializers","_hideTags_initializers","_Dropdown_selectAll_accessor_storage","_hideTags_extraInitializers","_selectAll_initializers","_Dropdown_selectAllText_accessor_storage","_selectAll_extraInitializers","_selectAllText_initializers","_Dropdown_menuMinWidth_accessor_storage","_selectAllText_extraInitializers","_menuMinWidth_initializers","_Dropdown_openDirection_accessor_storage","_menuMinWidth_extraInitializers","_openDirection_initializers","_Dropdown_selectAllChecked_accessor_storage","_openDirection_extraInitializers","_selectAllChecked_initializers","_Dropdown_selectAllIndeterminate_accessor_storage","_selectAllChecked_extraInitializers","_selectAllIndeterminate_initializers","_Dropdown_textStrings_accessor_storage","_selectAllIndeterminate_extraInitializers","_textStrings_initializers","_Dropdown_allowAddOption_accessor_storage","_textStrings_extraInitializers","_allowAddOption_initializers","_Dropdown__textStrings_accessor_storage","_allowAddOption_extraInitializers","__textStrings_initializers","_Dropdown_newOptionValue_accessor_storage","__textStrings_extraInitializers","_newOptionValue_initializers","_Dropdown_text_accessor_storage","_newOptionValue_extraInitializers","_text_initializers","_Dropdown_searchText_accessor_storage","_text_extraInitializers","_searchText_initializers","_Dropdown_assistiveText_accessor_storage","_searchText_extraInitializers","_assistiveText_initializers","_Dropdown_searchEl_accessor_storage","_assistiveText_extraInitializers","_searchEl_initializers","_Dropdown_buttonEl_accessor_storage","_searchEl_extraInitializers","_buttonEl_initializers","_Dropdown_listboxEl_accessor_storage","_buttonEl_extraInitializers","_listboxEl_initializers","_Dropdown_clearMultipleEl_accessor_storage","_listboxEl_extraInitializers","_clearMultipleEl_initializers","_Dropdown_addOptionInputEl_accessor_storage","_clearMultipleEl_extraInitializers","_addOptionInputEl_initializers","_Dropdown__openUpwards_accessor_storage","_addOptionInputEl_extraInitializers","__openUpwards_initializers","_Dropdown__tags_accessor_storage","__openUpwards_extraInitializers","__tags_initializers","searchTextEntered","__tags_extraInitializers","prevSearchKeydownIndex","_onDocumentClick","e","_handleClickOut","_onChildClick","_handleClick","_onChildRemove","_e","_handleRemoveOption","_onChildBlur","_handleBlur","label","__classPrivateFieldGet","value","__classPrivateFieldSet","size","kind","inline","caption","placeholder","open","searchable","enhanced","readonly","filterSearch","multiple","required","hideLabel","disabled","hideTags","selectAll","selectAllText","menuMinWidth","openDirection","selectAllChecked","selectAllIndeterminate","textStrings","allowAddOption","_textStrings","newOptionValue","text","searchText","assistiveText","options","Array","from","querySelectorAll","filter","opt","hasAttribute","searchEl","buttonEl","listboxEl","clearMultipleEl","addOptionInputEl","_openUpwards","_tags","render","mainDropdownClasses","dropdown","html","classMap","name","_a","wrapper","handleAnchorClick","handleAnchorKeydown","select","_isInvalid","preventDefault","stopPropagation","length","handleClearMultiple","unsafeSVG","clearIcon","handleSearchKeydown","handleSearchInput","handleSearchClick","downIcon","upwards","handleListKeydown","handleListBlur","_handleListFocus","_handleInputNewOption","_onAddOptionInputKeydown","_onAddOptionInputFocus","_handleAddOption","handleSlotChange","hasSearch","handleClear","renderHelperContent","key","focus","handleKeyboard","canOpen","isInOptions","composedPath","call","some","t","classList","contains","_c","_b","target","closest","handleClick","handleButtonKeydown","includes","v","trim","dispatchEvent","CustomEvent","detail","nothing","map","tag","handleTagClear","errorIcon","invalidText","_internalValidationMsg","firstUpdated","updateChildOptions","_updateOptions","_updateSelectedText","shadowRoot","querySelector","assignedElements","flatten","forEach","option","tagName","keyCode","visibleOptions","style","display","firstEnabled","find","o","highlighted","tabIndex","scrollIntoView","block","relatedTarget","SPACEBAR_KEY_CODE","ENTER_KEY_CODE","highlightedEl","selectedEl","selected","highlightedIndex","indexOf","nextIndex","guard","_d","_f","isListboxElOpened","openDropdown","setTimeout","updateValue","emitValue","DisabledSelectedOptions","_validate","_updateSelectedOptions","event","_emitSearch","findIndex","innerHTML","titleSlot","textContent","displayText","toLowerCase","startsWith","origEvent","localName","connectedCallback","super","_onConnected","document","addEventListener","disconnectedCallback","_onDisconnected","removeEventListener","values","JSON","parse","stringify","push","index","splice","interacted","report","Validity","customError","valueMissing","InternalMsg","ValidationMessage","validationAnchor","_internals","setValidity","reportValidity","willUpdate","changedProps","has","deepmerge","updated","toggle","toggleAttribute","bubbles","composed","root","slot","assigned","btn","el","icon","transition","transform","_onUpdated","_updateTags","preventScroll","rect","getBoundingClientRect","top","window","innerHeight","firstSelected","Options","Tags","Selected","AllOptions","console","warn","_label_decorators","property","type","String","_size_decorators","attribute","_inline_decorators","Boolean","_caption_decorators","_placeholder_decorators","reflect","_searchable_decorators","_enhanced_decorators","_filterSearch_decorators","_multiple_decorators","_required_decorators","_hideLabel_decorators","_disabled_decorators","_hideTags_decorators","_selectAll_decorators","_selectAllText_decorators","_menuMinWidth_decorators","_openDirection_decorators","_selectAllChecked_decorators","_selectAllIndeterminate_decorators","_textStrings_decorators","Object","_allowAddOption_decorators","__textStrings_decorators","state","_newOptionValue_decorators","_text_decorators","_searchText_decorators","_assistiveText_decorators","query","__openUpwards_decorators","__tags_decorators","__esDecorate","static","private","access","obj","get","metadata","_metadata","_kind_decorators","_open_decorators","_readonly_decorators","_searchEl_decorators","_buttonEl_decorators","_listboxEl_decorators","_clearMultipleEl_decorators","_addOptionInputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DropdownScss"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown.js","sources":["../../../../src/components/reusable/dropdown/dropdown.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, PropertyValues, html, unsafeCSS } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport DropdownScss from './dropdown.scss?inline';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { deepmerge } from 'deepmerge-ts';\nimport { nothing } from 'lit';\n\nimport './dropdownOption';\nimport './enhancedDropdownOption';\nimport '../tag';\nimport '../button';\n\nimport { DropdownOption } from './dropdownOption';\nimport { EnhancedDropdownOption } from './enhancedDropdownOption';\n\nimport downIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/error-filled.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nconst _defaultTextStrings = {\n title: 'Dropdown',\n selectedOptions: 'List of selected options',\n requiredText: 'Required',\n errorText: 'Error',\n clearAll: 'Clear all',\n clear: 'Clear',\n addItem: 'Add item...',\n add: 'Add',\n};\n\nconst KEY = {\n Enter: 'Enter',\n Escape: 'Escape',\n ArrowDown: 'ArrowDown',\n ArrowUp: 'ArrowUp',\n} as const;\n\n/**\n * Dropdown, single select.\n * @fires on-change - Captures the dropdown change event and emits the selected value and original event details. `detail:{ value: string/array }`\n * @fires on-search - Capture the search input event and emits the search text.`detail:{ searchText: string }`\n * @fires on-clear-all - Captures the the multi-select clear all button click event and emits the value. `detail:{ value: array }`\n * @fires on-add-option - Captures the add button click and emits the newly added option. `detail:{ value: string }`\n * @slot unnamed - Slot for dropdown options.\n * @slot tooltip - Slot for tooltip.\n * @slot anchor - Slot for custom dropdown anchor element. If not provided, defaults to standard input-style anchor.\n * @attr {string/array} [value=''/[]] - The selected value(s) of the input. For single select, it is a string. For multi-select, it is an array of strings.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-dropdown')\nexport class Dropdown extends FormMixin(LitElement) {\n static override styles = unsafeCSS(DropdownScss);\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /** Dropdown size/height. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /** Dropdown kind. */\n @property({ type: String, attribute: 'kind' })\n accessor kind: 'ai' | 'default' = 'default';\n\n /** Dropdown inline style type. */\n @property({ type: Boolean })\n accessor inline = false;\n\n /** Optional text beneath the input. */\n @property({ type: String })\n accessor caption = '';\n\n /** Dropdown placeholder. */\n @property({ type: String })\n accessor placeholder = '';\n\n /** Listbox/drawer open state. */\n @property({ type: Boolean, reflect: true })\n accessor open = false;\n\n /** Makes the dropdown searchable. */\n @property({ type: Boolean })\n accessor searchable = false;\n\n /** Makes the dropdown enhanced. */\n @property({ type: Boolean })\n accessor enhanced = false;\n\n /** Dropdown read-only state (focusable but not interactive). */\n @property({ type: Boolean, reflect: true })\n accessor readonly = false;\n\n /** Searchable variant filters results. */\n @property({ type: Boolean })\n accessor filterSearch = false;\n\n /** Enabled multi-select functionality. */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Makes the dropdown required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Visually hide the label. */\n @property({ type: Boolean })\n accessor hideLabel = false;\n\n /** Dropdown disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Hide the tags below multi-select. */\n @property({ type: Boolean })\n accessor hideTags = false;\n\n /** Adds a \"Select all\" option to the top of a multi-select dropdown. */\n @property({ type: Boolean })\n accessor selectAll = false;\n\n /** \"Select all\" text customization. */\n @property({ type: String })\n accessor selectAllText = 'Select all';\n\n /** Menu CSS min-width value. */\n @property({ type: String })\n accessor menuMinWidth = '120px';\n\n /** Controls direction that dropdown opens. */\n @property({ type: String })\n accessor openDirection: 'auto' | 'up' | 'down' = 'auto';\n\n /** Is \"Select All\" box checked.\n * @internal\n */\n @property({ type: Boolean })\n accessor selectAllChecked = false;\n\n /** Is \"Select All\" indeterminate.\n * @internal\n */\n @property({ type: Boolean })\n accessor selectAllIndeterminate = false;\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Enables the \"Add New Option\" feature. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = _defaultTextStrings;\n\n /**\n * New dropdown option value.\n * @ignore\n */\n @state()\n accessor newOptionValue = '';\n\n /**\n * Selected option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text = '';\n\n /**\n * Search input value.\n */\n @property({ type: String })\n accessor searchText = '';\n\n /**\n * Assistive text for screen readers.\n * @ignore\n */\n @state()\n accessor assistiveText = 'Dropdown menu options.';\n\n /**\n * Queries any slotted options, default or enhanced.\n * @ignore\n */\n protected get options(): Array<DropdownOption | EnhancedDropdownOption> {\n return Array.from(\n this.querySelectorAll<DropdownOption | EnhancedDropdownOption>(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option'\n )\n );\n }\n\n /**\n * Queries any slotted selected options.\n * @ignore\n */\n protected get selectedOptions(): Array<\n DropdownOption | EnhancedDropdownOption\n > {\n return this.options.filter(\n (opt): opt is DropdownOption | EnhancedDropdownOption =>\n opt.hasAttribute('selected')\n );\n }\n\n /**\n * Queries the .search DOM element.\n * @ignore\n */\n @query('.search')\n accessor searchEl!: HTMLInputElement;\n\n /**\n * Queries the .select DOM element.\n * @ignore\n */\n @query('.select')\n accessor buttonEl!: HTMLElement;\n\n /**\n * Queries the .options DOM element.\n * @ignore\n */\n @query('.options')\n accessor listboxEl!: HTMLElement;\n\n /**\n * Queries the .clear-multiple DOM element.\n * @ignore\n */\n @query('.clear-multiple')\n accessor clearMultipleEl!: HTMLElement;\n\n /**\n * Queries the .add-option-input DOM element.\n * @ignore\n */\n @query('.add-option-input')\n accessor addOptionInputEl!: HTMLInputElement;\n\n /**\n * Open drawer upwards.\n * @ignore\n */\n @state()\n accessor _openUpwards = false;\n\n /**\n * Tags value/text reference.\n * @ignore\n */\n @state()\n accessor _tags: Array<object> = [];\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n searchTextEntered: any = false;\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n prevSearchKeydownIndex = -1;\n\n private _onDocumentClick = (e: Event) => this._handleClickOut(e);\n private _onChildClick = (e: Event) => this._handleClick(e as any);\n private _onChildRemove = (_e: Event) => this._handleRemoveOption();\n private _onChildBlur = (e: Event) => this._handleBlur(e as any);\n\n override render() {\n const mainDropdownClasses = {\n dropdown: true,\n 'ai-connected': this.kind === 'ai',\n };\n\n return html`\n <div\n class=${classMap(mainDropdownClasses)}\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n ?open=${this.open}\n ?inline=${this.inline}\n ?searchable=${this.searchable}\n >\n <label\n id=\"label-${this.name}\"\n class=\"label-text ${this.hideLabel || this.inline ? 'sr-only' : ''}\"\n for=${this.name}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings?.requiredText || 'Required'}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </label>\n\n <div\n class=${classMap({\n wrapper: true,\n open: this.open,\n })}\n >\n <div\n class=\"custom\"\n @click=${(e: MouseEvent) => this.handleAnchorClick(e)}\n @keydown=${(e: KeyboardEvent) => this.handleAnchorKeydown(e)}\n >\n <slot name=\"anchor\">\n <div\n class=\"${classMap({\n select: true,\n 'is-readonly': !this.disabled && this.readonly,\n multiple: this.multiple,\n 'input-custom': true,\n 'size--sm': this.size === 'sm',\n 'size--lg': this.size === 'lg',\n inline: this.inline,\n })}\"\n aria-labelledby=\"label-${this.name}\"\n aria-expanded=${this.open}\n aria-controls=\"options\"\n role=\"combobox\"\n id=${this.name}\n name=${this.name}\n title=${this._textStrings.title}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?invalid=${this._isInvalid}\n tabindex=${this.disabled ? '' : this.searchable ? '-1' : '0'}\n @mousedown=${(e: MouseEvent) => {\n if (!this.searchable && !this.readonly) e.preventDefault();\n }}\n aria-readonly=${this.readonly}\n @blur=${(e: any) => e.stopPropagation()}\n >\n ${this.multiple && this.value.length\n ? html`\n <button\n class=${classMap({\n 'clear-multiple': true,\n })}\n aria-label=\"${this.value\n .length} items selected. Clear selections\"\n ?disabled=${this.disabled || this.readonly}\n title=${this._textStrings.clear}\n @click=${(e: Event) => this.handleClearMultiple(e)}\n >\n ${this.value.length}\n <span style=\"display:flex;\" class=\"clear-multiple-icon\">\n ${unsafeSVG(clearIcon)}\n </span>\n </button>\n `\n : null}\n ${this.searchable\n ? html`\n <input\n class=\"search\"\n type=\"text\"\n placeholder=${this.placeholder}\n value=${this.searchText}\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n aria-disabled=${this.disabled}\n @keydown=${(e: any) => this.handleSearchKeydown(e)}\n @input=${(e: any) => this.handleSearchInput(e)}\n @blur=${(e: any) => e.stopPropagation()}\n @click=${(e: any) => this.handleSearchClick(e)}\n />\n `\n : html`\n <span\n class=\"${classMap({\n 'placeholder-text': this.text === '',\n })}\"\n >\n ${this.multiple\n ? this.placeholder\n : this.value === ''\n ? this.placeholder\n : this.text}\n </span>\n `}\n <span class=\"arrow-icon\">${unsafeSVG(downIcon)}</span>\n </div>\n </slot>\n\n <div\n id=\"options\"\n class=${classMap({\n options: true,\n open: this.open,\n upwards: this._openUpwards,\n })}\n style=\"min-width: ${this.menuMinWidth};\"\n aria-hidden=${!this.open}\n @keydown=${this.handleListKeydown}\n @blur=${this.handleListBlur}\n @focus=${this._handleListFocus}\n >\n ${this.allowAddOption\n ? html`\n <div class=\"add-option\">\n <input\n class=\"add-option-input\"\n type=\"text\"\n placeholder=${this._textStrings.addItem}\n .value=${this.newOptionValue}\n aria-label=\"Add new option\"\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n @input=${this._handleInputNewOption}\n @keydown=${this._onAddOptionInputKeydown}\n @focus=${this._onAddOptionInputFocus}\n />\n <kyn-button\n type=\"button\"\n size=\"small\"\n kind=\"secondary\"\n ?disabled=${this.disabled}\n @on-click=${this._handleAddOption}\n >\n ${this._textStrings.add}\n </kyn-button>\n </div>\n `\n : null}\n\n <div\n role=\"listbox\"\n aria-labelledby=\"label-${this.name}\"\n class=${classMap({\n 'dropdown-listbox': true,\n 'ai-connected': this.kind === 'ai',\n })}\n >\n ${this.multiple && this.selectAll\n ? html`\n ${this.enhanced\n ? html`\n <kyn-enhanced-dropdown-option\n class=\"select-all\"\n value=\"selectAll\"\n multiple\n ?selected=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?disabled=${this.disabled}\n >\n ${this.selectAllText}\n </kyn-enhanced-dropdown-option>\n `\n : html`\n <kyn-dropdown-option\n class=\"select-all\"\n value=\"selectAll\"\n multiple\n ?selected=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?disabled=${this.disabled}\n >\n ${this.selectAllText}\n </kyn-dropdown-option>\n `}\n `\n : null}\n\n <slot\n id=\"children\"\n @slotchange=${() => this.handleSlotChange()}\n ></slot>\n </div>\n </div>\n </div>\n ${this.hasSearch && this.open\n ? html`\n <kyn-button\n ?disabled=${this.disabled || this.readonly}\n class=\"clear-button dropdown-clear\"\n kind=${this.kind === 'ai' ? 'ghost-ai' : 'ghost'}\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${(e: Event) => this.handleClear(e)}\n >\n <span style=\"display:flex;\">${unsafeSVG(clearIcon)}</span>\n </kyn-button>\n `\n : null}\n </div>\n ${this.renderHelperContent()}\n </div>\n `;\n }\n\n private _onAddOptionInputKeydown(e: KeyboardEvent) {\n if (this.readonly) return;\n\n e.stopPropagation();\n switch (e.key) {\n case KEY.Enter:\n this._handleAddOption();\n break;\n case KEY.Escape:\n this.newOptionValue = '';\n this.open = false;\n this.buttonEl.focus();\n break;\n case KEY.ArrowDown:\n this.handleKeyboard(e, 40, 'addOption');\n break;\n case KEY.ArrowUp:\n this.handleKeyboard(e, 38, 'addOption');\n break;\n }\n }\n\n private _onAddOptionInputFocus() {\n this.assistiveText = 'Add new option input';\n }\n\n private canOpen(): boolean {\n return !this.disabled && !this.readonly;\n }\n\n private handleAnchorClick(e: MouseEvent) {\n if (!this.canOpen()) return;\n\n const path = (e.composedPath?.() || []) as Array<EventTarget>;\n const isInOptions =\n path.some((t) => (t as HTMLElement)?.classList?.contains('options')) ||\n (e.target as HTMLElement)?.closest?.(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option, .add-option'\n );\n\n if (isInOptions) return;\n\n this.handleClick();\n }\n\n private handleAnchorKeydown(e: KeyboardEvent) {\n if (!this.canOpen()) {\n const openKeys = [' ', 'Enter', 'ArrowDown', 'ArrowUp'];\n if (openKeys.includes(e.key)) e.preventDefault();\n return;\n }\n\n this.handleButtonKeydown(\n e as unknown as KeyboardEvent & { keyCode: number }\n );\n }\n\n private _handleAddOption() {\n if (this.readonly) return;\n\n const v = this.newOptionValue.trim();\n if (!v) return;\n this.dispatchEvent(\n new CustomEvent('on-add-option', { detail: { value: v } })\n );\n this.newOptionValue = '';\n }\n\n private renderHelperContent() {\n return html`\n ${\n this.multiple && !this.hideTags && this._tags.length\n ? html`\n <kyn-tag-group\n ?filter=${this.disabled || this.readonly ? false : true}\n role=\"list\"\n aria-label=${this._textStrings.selectedOptions}\n data-readonly=${this.readonly ? '' : nothing}\n >\n ${this._tags.map((tag: any) => {\n return html`\n <kyn-tag\n role=\"listitem\"\n tagColor=${this.kind === 'ai' ? 'ai' : 'default'}\n label=${tag.text}\n ?disabled=${this.disabled ||\n tag.disabled ||\n this.readonly}\n @on-close=${() => this.handleTagClear(tag)}\n ></kyn-tag>\n `;\n })}\n </kyn-tag-group>\n `\n : null\n }\n ${\n this.caption !== ''\n ? html`\n <div class=\"caption\" aria-disabled=${this.disabled}>\n ${this.caption}\n </div>\n `\n : null\n }\n ${\n this._isInvalid\n ? html`\n <div class=\"error\">\n <span\n class=\"error-icon\"\n role=\"img\"\n title=${this._textStrings.errorText}\n aria-label=${this._textStrings.errorText}\n >${unsafeSVG(errorIcon)}</span\n >\n ${this.invalidText || this._internalValidationMsg}\n </div>\n `\n : null\n }\n\n <div\n class=\"assistive-text\"\n role=\"status\"\n aria-live=\"assertive\"\n aria-relevant=\"additions text\"\n >\n ${this.assistiveText}\n </div>\n </div>\n `;\n }\n\n override firstUpdated() {\n // set a default placeholder if none provided\n if (this.placeholder === '') {\n if (this.searchable) {\n this.placeholder = 'Search';\n } else {\n if (this.multiple) {\n this.placeholder = 'Select items';\n } else {\n this.placeholder = 'Select an option';\n }\n }\n }\n }\n\n private handleSlotChange() {\n this.updateChildOptions();\n this._updateOptions();\n this._updateSelectedText();\n }\n\n private updateChildOptions() {\n const slot = this.shadowRoot?.querySelector('#children') as HTMLSlotElement;\n const options = slot.assignedElements({ flatten: true }) as HTMLElement[];\n\n options.forEach((option) => {\n const tag = option.tagName;\n if (\n tag === 'KYN-DROPDOWN-OPTION' ||\n tag === 'KYN-ENHANCED-DROPDOWN-OPTION'\n ) {\n (option as any).allowAddOption = this.allowAddOption;\n (option as any).multiple = this.multiple;\n (option as any).readonly = this.readonly;\n }\n });\n }\n\n private handleClick() {\n if (!this.canOpen()) return;\n\n this.open = !this.open;\n if (this.searchable) this.searchEl.focus();\n else this.buttonEl.focus();\n }\n\n private handleButtonKeydown(e: any) {\n if (this.readonly) {\n if (e.key === 'Escape') {\n this.open = false;\n this.buttonEl?.focus();\n }\n return;\n }\n this.handleKeyboard(e, e.keyCode, 'button');\n }\n\n private handleListKeydown(e: any) {\n if (this.readonly) {\n if (e.key === 'Escape') {\n e.preventDefault();\n this.open = false;\n this.buttonEl?.focus();\n }\n return;\n }\n\n const TAB_KEY_CODE = 9;\n\n if (e.keyCode !== TAB_KEY_CODE) {\n e.preventDefault();\n }\n\n this.handleKeyboard(e, e.keyCode, 'list');\n }\n\n private _handleListFocus() {\n const selectAllOptions = Array.from(\n this.shadowRoot?.querySelectorAll('.select-all') || []\n ) as any[];\n const filteredOptions = this.options.filter(\n (option: any) => option.style.display !== 'none'\n );\n const visibleOptions = [...selectAllOptions, ...filteredOptions] as any[];\n\n const firstEnabled = visibleOptions.find((o: any) => !o.disabled) as any;\n if (!firstEnabled) return;\n\n visibleOptions.forEach((o: any) => (o.highlighted = false));\n\n if (!('tabIndex' in firstEnabled) || firstEnabled.tabIndex < 0) {\n firstEnabled.tabIndex = 0;\n }\n firstEnabled.focus();\n firstEnabled.scrollIntoView({ block: 'nearest' });\n this.assistiveText = firstEnabled.text || 'Option';\n }\n\n private handleListBlur(e: FocusEvent): void {\n if (this.multiple) {\n return;\n }\n\n this.options.forEach((o) => (o.highlighted = false));\n const target = e.relatedTarget as HTMLElement | null;\n\n if (\n target &&\n (target.closest('kyn-dropdown-option') ||\n target.closest('kyn-enhanced-dropdown-option') ||\n target.classList.contains('search') ||\n target.closest('.add-option'))\n ) {\n return;\n }\n\n this.open = false;\n this.assistiveText = 'Dropdown menu options.';\n }\n\n private handleKeyboard(e: any, keyCode: number, target: string) {\n const SPACEBAR_KEY_CODE = [0, 32];\n const ENTER_KEY_CODE = 13;\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n const ESCAPE_KEY_CODE = 27;\n\n // get highlighted element + index and selected element\n const selectAllOptions = Array.from(\n this.shadowRoot?.querySelectorAll('.select-all') || []\n ) as any[];\n const filteredOptions = this.options.filter(\n (option: any) => option.style.display !== 'none'\n );\n const visibleOptions = [...selectAllOptions, ...filteredOptions] as any[];\n // visibleOptions.forEach((e) => (e.tabIndex = 0));\n\n const highlightedEl = visibleOptions.find(\n (option: any) => option.highlighted\n );\n const selectedEl = visibleOptions.find((option: any) => option.selected);\n let highlightedIndex = highlightedEl\n ? visibleOptions.indexOf(highlightedEl)\n : selectedEl\n ? visibleOptions.indexOf(selectedEl)\n : 0;\n\n if (SPACEBAR_KEY_CODE.includes(keyCode)) {\n e.preventDefault();\n }\n\n if (this.readonly) {\n if (keyCode === DOWN_ARROW_KEY_CODE || keyCode === UP_ARROW_KEY_CODE) {\n e.preventDefault();\n let nextIndex =\n keyCode === DOWN_ARROW_KEY_CODE\n ? (highlightedIndex + 1) % visibleOptions.length\n : (highlightedIndex - 1 + visibleOptions.length) %\n visibleOptions.length;\n\n let guard = 0;\n while (\n visibleOptions[nextIndex]?.disabled &&\n guard++ < visibleOptions.length\n ) {\n nextIndex =\n keyCode === DOWN_ARROW_KEY_CODE\n ? (nextIndex + 1) % visibleOptions.length\n : (nextIndex - 1 + visibleOptions.length) % visibleOptions.length;\n }\n\n if (visibleOptions[nextIndex]) {\n visibleOptions[highlightedIndex] &&\n (visibleOptions[highlightedIndex].highlighted = false);\n visibleOptions[nextIndex].focus();\n visibleOptions[nextIndex].highlighted = true;\n visibleOptions[nextIndex].scrollIntoView?.({ block: 'nearest' });\n this.assistiveText = visibleOptions[nextIndex].text || 'Option';\n }\n return;\n }\n\n if (SPACEBAR_KEY_CODE.includes(keyCode) || keyCode === ENTER_KEY_CODE) {\n e.preventDefault();\n return;\n }\n\n if (keyCode === ESCAPE_KEY_CODE) {\n this.open = false;\n (this.searchable ? this.searchEl : this.buttonEl)?.focus();\n this.assistiveText = 'Dropdown menu options.';\n return;\n }\n\n return;\n }\n\n const isListboxElOpened = this.open;\n // open the listbox\n if (target === 'button' || target === 'addOption') {\n let openDropdown =\n SPACEBAR_KEY_CODE.includes(keyCode) ||\n keyCode === ENTER_KEY_CODE ||\n keyCode == DOWN_ARROW_KEY_CODE ||\n keyCode == UP_ARROW_KEY_CODE;\n\n if (e.target === this.clearMultipleEl && keyCode === ENTER_KEY_CODE) {\n openDropdown = false;\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n highlightedIndex = 0;\n if (keyCode !== ENTER_KEY_CODE) return;\n }\n\n if (openDropdown) {\n this.open = true;\n\n if (\n this.allowAddOption &&\n target === 'button' &&\n keyCode === ENTER_KEY_CODE\n ) {\n setTimeout(() => {\n this.addOptionInputEl?.focus();\n }, 100);\n } else {\n // scroll to highlighted option\n if (!this.multiple && this.value !== '') {\n visibleOptions[highlightedIndex].scrollIntoView({\n block: 'nearest',\n });\n }\n }\n }\n }\n switch (keyCode) {\n case 0:\n case 32:\n case ENTER_KEY_CODE: {\n // select highlighted option\n visibleOptions[highlightedIndex].highlighted = true;\n if (isListboxElOpened) {\n if (this.multiple) {\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n this._handleClick({\n detail: {\n value: visibleOptions[highlightedIndex].value,\n selected: visibleOptions[highlightedIndex].selected,\n },\n });\n } else {\n visibleOptions.forEach((e) => (e.selected = false));\n visibleOptions[highlightedIndex].selected = true;\n this.updateValue(visibleOptions[highlightedIndex].value, true);\n this.emitValue();\n\n this.open = false;\n this.assistiveText = `Selected ${visibleOptions[highlightedIndex].value}`;\n }\n }\n return;\n }\n case DOWN_ARROW_KEY_CODE: {\n let nextIndex =\n !highlightedEl && !selectedEl\n ? 0\n : highlightedIndex === visibleOptions.length - 1\n ? 0\n : highlightedIndex + 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === visibleOptions.length - 1 ? 0 : nextIndex + 1;\n }\n\n visibleOptions[nextIndex].focus();\n visibleOptions[highlightedIndex].tabIndex = -1;\n visibleOptions[nextIndex].tabIndex = 0;\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case UP_ARROW_KEY_CODE: {\n // go to previous option\n let nextIndex =\n highlightedIndex === 0\n ? visibleOptions.length - 1\n : highlightedIndex - 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === 0 ? visibleOptions.length - 1 : nextIndex - 1;\n }\n\n visibleOptions[nextIndex].focus();\n visibleOptions[highlightedIndex].tabIndex = -1;\n visibleOptions[nextIndex].tabIndex = 0;\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case ESCAPE_KEY_CODE: {\n this.open = false;\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n this.assistiveText = 'Dropdown menu options.';\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private handleClearMultiple(e: any) {\n if (this.readonly) return;\n\n e.stopPropagation();\n\n // clear values\n if (this.multiple) {\n const Slot: any = this.shadowRoot?.querySelector('slot#children');\n const Options: Array<any> = Slot.assignedElements();\n const DisabledSelectedOptions: Array<any> = Options.filter(\n (option: any) => option.selected && option.disabled\n ).map((option: any) => option.value);\n\n this.value = DisabledSelectedOptions.length\n ? DisabledSelectedOptions\n : [];\n } else {\n this.value = '';\n }\n\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n\n const event = new CustomEvent('on-clear-all', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleTagClear(tag: any) {\n if (this.readonly) return;\n // remove value\n this.updateValue(tag.value, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n\n private handleClear(e: any) {\n if (this.readonly) return;\n\n e.stopPropagation();\n\n // reset search input text\n this.text = '';\n this.searchText = '';\n this.searchEl.value = '';\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // reveal all options\n this.options.map((option: any) => {\n option.style.display = 'block';\n });\n }\n\n // clear selection for single select\n if (!this.multiple) {\n this.value = '';\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n }\n\n private handleSearchClick(e: MouseEvent) {\n if (this.readonly) return;\n e.stopPropagation();\n this.open = true;\n if ((this.searchText ?? '').trim() === '') this.searchText = '';\n }\n\n private handleSearchKeydown(e: any) {\n if (this.readonly) {\n if (e.key === 'Escape') {\n this.open = false;\n this.buttonEl.focus();\n }\n e.stopPropagation();\n e.preventDefault();\n return;\n }\n\n e.stopPropagation();\n\n const ENTER_KEY_CODE = 13;\n const ESCAPE_KEY_CODE = 27;\n const option = this.options.find((option) => option.highlighted);\n const highlightedIndex = this.options.findIndex(\n (option) => option.highlighted\n );\n this.searchTextEntered = false;\n // select option\n if (e.keyCode === ENTER_KEY_CODE) {\n this.searchTextEntered = true;\n if (option) {\n if (this.prevSearchKeydownIndex !== highlightedIndex) {\n if (this.multiple) {\n option.selected = !option.selected;\n } else {\n this.options.forEach((e) => (e.selected = false));\n option.selected = true;\n this.open = false;\n }\n this.updateValue(option.value, option.selected);\n }\n\n if (option.selected) {\n this.assistiveText = `Selected ${option.innerHTML}`;\n this.prevSearchKeydownIndex = highlightedIndex;\n } else {\n this.assistiveText = `Deselected ${option.innerHTML}`;\n }\n } else {\n this.assistiveText = 'No item matched.';\n }\n }\n\n // close listbox\n if (e.keyCode === ESCAPE_KEY_CODE) {\n this.open = false;\n this.buttonEl.focus();\n }\n }\n\n private handleSearchInput(e: any) {\n if (this.readonly) return;\n\n const value = e.target.value;\n this.searchText = value;\n this.open = true;\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // hide items that don't match\n this.options.map((option: any) => {\n let searchText = option.text;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n searchText = titleSlot.textContent.trim();\n } else {\n searchText = option.displayText || option.value;\n }\n }\n\n if (searchText.toLowerCase().includes(value.toLowerCase())) {\n option.style.display = 'block';\n } else {\n option.style.display = 'none';\n }\n });\n } else {\n // find matches\n const options = this.options.filter((option: any) => {\n let searchText = option.text;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n searchText = titleSlot.textContent.trim();\n } else {\n searchText = option.displayText || option.value;\n }\n }\n\n return searchText.toLowerCase().startsWith(value.toLowerCase());\n });\n\n // reset options highlighted state\n this.options.forEach((option) => (option.highlighted = false));\n\n // option highlight and scroll\n if (value !== '' && options.length) {\n options[0].highlighted = true;\n options[0].scrollIntoView({ block: 'nearest' });\n if (this.searchTextEntered) this.assistiveText = 'Option Matched';\n }\n }\n }\n\n private _updateSelectedOptions() {\n // set selected state for each option\n this.options.forEach((option: any) => {\n if (this.multiple) {\n option.selected = this.value.includes(option.value);\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n\n private _handleClick(e: any) {\n if (this.readonly) return;\n\n if (e.detail.value === 'selectAll') {\n this.selectAllChecked = e.detail.selected;\n\n const Slot: any = this.shadowRoot?.querySelector('slot#children');\n const Options: Array<any> = Slot.assignedElements();\n const DisabledSelectedOptions: Array<any> = Options.filter(\n (option: any) => option.selected && option.disabled\n ).map((option: any) => option.value);\n\n if (e.detail.selected) {\n this.value = this.options\n .filter(\n (option) => !option.disabled || (option.disabled && option.selected)\n )\n .map((option) => option.value);\n this.assistiveText = 'Selected all items.';\n } else {\n this.value = DisabledSelectedOptions.length\n ? DisabledSelectedOptions\n : [];\n this.assistiveText = 'Deselected all items.';\n }\n\n this._validate(true, false);\n } else {\n this.updateValue(e.detail.value, e.detail.selected);\n this.assistiveText = e.detail.selected\n ? `Selected ${e.detail.value}`\n : `Deselected ${e.detail.value}`;\n }\n\n this._updateSelectedOptions();\n\n if (!this.multiple) {\n this.open = false;\n }\n\n // emit selected value\n this.emitValue();\n }\n\n private _handleBlur(e: any) {\n const relatedTarget = e.detail.origEvent.relatedTarget;\n\n if (\n !relatedTarget ||\n (relatedTarget?.localName !== 'kyn-dropdown-option' &&\n relatedTarget?.localName !== 'kyn-enhanced-dropdown-option' &&\n relatedTarget.localName !== 'kyn-dropdown')\n ) {\n this.open = false;\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this._onConnected();\n\n document.addEventListener('click', this._onDocumentClick);\n\n this.addEventListener('on-click', this._onChildClick);\n this.addEventListener('on-remove-option', this._onChildRemove);\n this.addEventListener('on-blur', this._onChildBlur);\n }\n\n override disconnectedCallback() {\n this._onDisconnected();\n\n document.removeEventListener('click', this._onDocumentClick);\n this.removeEventListener('on-click', this._onChildClick);\n this.removeEventListener('on-remove-option', this._onChildRemove);\n this.removeEventListener('on-blur', this._onChildBlur);\n\n super.disconnectedCallback();\n }\n\n private updateValue(value: string, selected = false) {\n if (this.readonly) return;\n\n // set value\n if (this.multiple) {\n const values =\n this.value === '' ? [] : JSON.parse(JSON.stringify(this.value));\n\n // update array\n if (selected) {\n values.push(value);\n } else {\n const index = values.indexOf(value);\n values.splice(index, 1);\n }\n\n this.value = values;\n } else {\n this.value = value;\n }\n\n this._validate(true, false);\n\n // reset focus\n if (!this.multiple) {\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private _validate(interacted: Boolean, report: Boolean) {\n // set validity flags\n const Validity = {\n customError: this.invalidText !== '',\n valueMissing:\n this.required &&\n !this.readonly &&\n (!this.value ||\n (this.multiple && !this.value.length) ||\n (!this.multiple && this.value === '')),\n };\n\n // set validationMessage\n const InternalMsg =\n this.required && !this.value.length ? 'Please fill out this field.' : '';\n const ValidationMessage =\n this.invalidText !== '' ? this.invalidText : InternalMsg;\n\n const validationAnchor = this.buttonEl || this.listboxEl;\n\n if (validationAnchor) {\n this._internals.setValidity(\n Validity,\n ValidationMessage,\n validationAnchor\n );\n } else {\n this._internals.setValidity(Validity, ValidationMessage);\n }\n\n if (interacted) {\n this._internalValidationMsg = InternalMsg;\n }\n\n if (report) {\n this._internals.reportValidity();\n }\n }\n\n private emitValue() {\n const event = new CustomEvent('on-change', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private _emitSearch() {\n const event = new CustomEvent('on-search', {\n detail: {\n searchText: this.searchText,\n },\n });\n this.dispatchEvent(event);\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n override updated(changedProps: PropertyValues) {\n super.updated(changedProps);\n\n if (changedProps.has('readonly')) {\n this.clearMultipleEl?.classList.toggle('is-readonly', this.readonly);\n this.clearMultipleEl?.toggleAttribute('data-readonly', this.readonly);\n }\n\n if (changedProps.has('kind')) {\n this.dispatchEvent(\n new CustomEvent('kind-changed', {\n detail: this.kind,\n bubbles: true,\n composed: true,\n })\n );\n\n this.classList.toggle('ai-connected', this.kind === 'ai');\n }\n\n const root = this.shadowRoot;\n if (!root) return;\n\n if (changedProps.has('open')) {\n const slot = root.querySelector<HTMLSlotElement>('slot[name=\"anchor\"]');\n const assigned = slot?.assignedElements({ flatten: true }) as\n | HTMLElement[]\n | undefined;\n const btn = assigned?.find(\n (el) => !el.querySelector('.clear-multiple-icon')\n );\n const icon = btn?.querySelector<HTMLElement>('span[slot=\"icon\"]');\n if (icon) {\n icon.style.transition = 'transform 0.2s ease-in-out';\n icon.style.transform = this.open ? 'rotate(180deg)' : 'rotate(0deg)';\n }\n }\n\n this._onUpdated(changedProps);\n\n if (changedProps.has('value')) {\n this._updateOptions();\n\n const childrenSlot: any =\n root.querySelector<HTMLSlotElement>('slot#children');\n const options = childrenSlot\n .assignedElements()\n .filter((o: any): o is HTMLElement => !o.disabled);\n const selected = options.filter((o: any) => o.selected);\n\n this.selectAllChecked = selected.length === options.length;\n this.selectAllIndeterminate =\n selected.length > 0 && selected.length < options.length;\n\n this._updateTags();\n this._updateSelectedText();\n }\n\n if (changedProps.has('open') || changedProps.has('openDirection')) {\n if (this.open) {\n this.options.forEach((o) => (o.highlighted = false));\n\n if (!this.searchable && this.listboxEl) {\n this.listboxEl.focus({ preventScroll: true });\n this.assistiveText =\n 'Selecting items. Use up and down arrow keys to navigate.';\n }\n }\n\n if (this.openDirection === 'up') {\n this._openUpwards = true;\n } else if (this.openDirection === 'down') {\n this._openUpwards = false;\n } else if (this.open) {\n const rect = this.buttonEl.getBoundingClientRect();\n this._openUpwards = rect.top > window.innerHeight * 0.6;\n }\n\n if (this.open && !this.multiple) {\n const firstSelected = this.options.find((o) => o.selected);\n firstSelected?.scrollIntoView({ block: 'nearest' });\n }\n }\n\n if (changedProps.has('multiple')) {\n this.options.forEach((opt) => (opt.multiple = this.multiple));\n }\n\n if (changedProps.has('searchText') && this.searchEl) {\n this.searchEl.value = this.searchText;\n }\n\n if (\n changedProps.has('multiple') ||\n changedProps.has('allowAddOption') ||\n changedProps.has('readonly')\n ) {\n this.updateChildOptions();\n }\n\n if (changedProps.has('open') && this.open && !this.searchable) {\n this.listboxEl?.focus({ preventScroll: true });\n }\n }\n\n private get hasSearch(): boolean {\n return (this.searchText ?? '').trim().length > 0;\n }\n\n // add selected options to Tags array\n private _updateTags() {\n if (this.multiple) {\n const Options: any = Array.from(\n this.querySelectorAll(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option'\n )\n );\n const Tags: Array<object> = [];\n\n if (Options) {\n Options.forEach((option: any) => {\n if (option.selected) {\n let text = option.textContent;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n text = titleSlot.textContent.trim();\n } else {\n text = option.displayText || option.value;\n }\n } else {\n text = option.textContent.trim();\n }\n\n Tags.push({\n value: option.value,\n text: text,\n disabled: option.disabled,\n });\n }\n });\n\n this._tags = Tags;\n }\n }\n }\n\n private _updateOptions() {\n const Options: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option, kyn-enhanced-dropdown-option')\n );\n\n Options.forEach((option: any) => {\n // set option multiple state\n option.multiple = this.multiple;\n\n if (this.multiple) {\n const Selected = this.value.includes(option.value);\n // set option selected state\n option.selected = Selected;\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n\n private _handleInputNewOption(e: Event) {\n const target = e.target as HTMLInputElement;\n this.newOptionValue = target.value;\n }\n\n private _handleRemoveOption() {\n this.assistiveText = 'MY option removed ';\n setTimeout(() => {\n this.open = false;\n this.buttonEl.focus();\n }, 100);\n }\n\n private _updateSelectedText() {\n // update selected option text\n const AllOptions: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option, kyn-enhanced-dropdown-option')\n );\n\n if (!this.multiple) {\n if (AllOptions.length && this.value !== '') {\n const option = AllOptions.find(\n (option: any) => option.value === this.value\n );\n if (option) {\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n this.text = titleSlot.textContent.trim();\n } else {\n this.text = option.displayText || this.value;\n }\n } else {\n this.text = option.textContent.trim();\n }\n } else {\n this.text = '';\n console.warn(`No dropdown option found with value: ${this.value}`);\n }\n }\n\n if (this.searchable && this.text) {\n this.searchText = this.text === this.placeholder ? '' : this.text;\n this.searchEl.value = this.searchText;\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-dropdown': Dropdown;\n }\n}\n"],"names":["_defaultTextStrings","title","selectedOptions","requiredText","errorText","clearAll","clear","addItem","add","KEY","Dropdown","customElement","FormMixin","LitElement","_classThis","_classSuper","_Dropdown_label_accessor_storage","set","this","__runInitializers","_label_initializers","_Dropdown_size_accessor_storage","_label_extraInitializers","_size_initializers","_Dropdown_kind_accessor_storage","_size_extraInitializers","_kind_initializers","_Dropdown_inline_accessor_storage","_kind_extraInitializers","_inline_initializers","_Dropdown_caption_accessor_storage","_inline_extraInitializers","_caption_initializers","_Dropdown_placeholder_accessor_storage","_caption_extraInitializers","_placeholder_initializers","_Dropdown_open_accessor_storage","_placeholder_extraInitializers","_open_initializers","_Dropdown_searchable_accessor_storage","_open_extraInitializers","_searchable_initializers","_Dropdown_enhanced_accessor_storage","_searchable_extraInitializers","_enhanced_initializers","_Dropdown_readonly_accessor_storage","_enhanced_extraInitializers","_readonly_initializers","_Dropdown_filterSearch_accessor_storage","_readonly_extraInitializers","_filterSearch_initializers","_Dropdown_multiple_accessor_storage","_filterSearch_extraInitializers","_multiple_initializers","_Dropdown_required_accessor_storage","_multiple_extraInitializers","_required_initializers","_Dropdown_hideLabel_accessor_storage","_required_extraInitializers","_hideLabel_initializers","_Dropdown_disabled_accessor_storage","_hideLabel_extraInitializers","_disabled_initializers","_Dropdown_hideTags_accessor_storage","_disabled_extraInitializers","_hideTags_initializers","_Dropdown_selectAll_accessor_storage","_hideTags_extraInitializers","_selectAll_initializers","_Dropdown_selectAllText_accessor_storage","_selectAll_extraInitializers","_selectAllText_initializers","_Dropdown_menuMinWidth_accessor_storage","_selectAllText_extraInitializers","_menuMinWidth_initializers","_Dropdown_openDirection_accessor_storage","_menuMinWidth_extraInitializers","_openDirection_initializers","_Dropdown_selectAllChecked_accessor_storage","_openDirection_extraInitializers","_selectAllChecked_initializers","_Dropdown_selectAllIndeterminate_accessor_storage","_selectAllChecked_extraInitializers","_selectAllIndeterminate_initializers","_Dropdown_textStrings_accessor_storage","_selectAllIndeterminate_extraInitializers","_textStrings_initializers","_Dropdown_allowAddOption_accessor_storage","_textStrings_extraInitializers","_allowAddOption_initializers","_Dropdown__textStrings_accessor_storage","_allowAddOption_extraInitializers","__textStrings_initializers","_Dropdown_newOptionValue_accessor_storage","__textStrings_extraInitializers","_newOptionValue_initializers","_Dropdown_text_accessor_storage","_newOptionValue_extraInitializers","_text_initializers","_Dropdown_searchText_accessor_storage","_text_extraInitializers","_searchText_initializers","_Dropdown_assistiveText_accessor_storage","_searchText_extraInitializers","_assistiveText_initializers","_Dropdown_searchEl_accessor_storage","_assistiveText_extraInitializers","_searchEl_initializers","_Dropdown_buttonEl_accessor_storage","_searchEl_extraInitializers","_buttonEl_initializers","_Dropdown_listboxEl_accessor_storage","_buttonEl_extraInitializers","_listboxEl_initializers","_Dropdown_clearMultipleEl_accessor_storage","_listboxEl_extraInitializers","_clearMultipleEl_initializers","_Dropdown_addOptionInputEl_accessor_storage","_clearMultipleEl_extraInitializers","_addOptionInputEl_initializers","_Dropdown__openUpwards_accessor_storage","_addOptionInputEl_extraInitializers","__openUpwards_initializers","_Dropdown__tags_accessor_storage","__openUpwards_extraInitializers","__tags_initializers","searchTextEntered","__tags_extraInitializers","prevSearchKeydownIndex","_onDocumentClick","e","_handleClickOut","_onChildClick","_handleClick","_onChildRemove","_e","_handleRemoveOption","_onChildBlur","_handleBlur","label","__classPrivateFieldGet","value","__classPrivateFieldSet","size","kind","inline","caption","placeholder","open","searchable","enhanced","readonly","filterSearch","multiple","required","hideLabel","disabled","hideTags","selectAll","selectAllText","menuMinWidth","openDirection","selectAllChecked","selectAllIndeterminate","textStrings","allowAddOption","_textStrings","newOptionValue","text","searchText","assistiveText","options","Array","from","querySelectorAll","filter","opt","hasAttribute","searchEl","buttonEl","listboxEl","clearMultipleEl","addOptionInputEl","_openUpwards","_tags","render","mainDropdownClasses","dropdown","html","classMap","name","_a","wrapper","handleAnchorClick","handleAnchorKeydown","select","_isInvalid","preventDefault","stopPropagation","length","handleClearMultiple","unsafeSVG","clearIcon","handleSearchKeydown","handleSearchInput","handleSearchClick","downIcon","upwards","handleListKeydown","handleListBlur","_handleListFocus","_handleInputNewOption","_onAddOptionInputKeydown","_onAddOptionInputFocus","_handleAddOption","handleSlotChange","hasSearch","handleClear","renderHelperContent","key","focus","handleKeyboard","canOpen","isInOptions","composedPath","call","some","t","classList","contains","_c","_b","target","closest","handleClick","handleButtonKeydown","includes","v","trim","dispatchEvent","CustomEvent","detail","nothing","map","tag","handleTagClear","errorIcon","invalidText","_internalValidationMsg","firstUpdated","updateChildOptions","_updateOptions","_updateSelectedText","shadowRoot","querySelector","assignedElements","flatten","forEach","option","tagName","keyCode","visibleOptions","style","display","firstEnabled","find","o","highlighted","tabIndex","scrollIntoView","block","relatedTarget","SPACEBAR_KEY_CODE","ENTER_KEY_CODE","highlightedEl","selectedEl","selected","highlightedIndex","indexOf","nextIndex","guard","_d","_f","isListboxElOpened","openDropdown","setTimeout","updateValue","emitValue","DisabledSelectedOptions","_validate","_updateSelectedOptions","event","_emitSearch","findIndex","innerHTML","titleSlot","textContent","displayText","toLowerCase","startsWith","origEvent","localName","connectedCallback","super","_onConnected","document","addEventListener","disconnectedCallback","_onDisconnected","removeEventListener","values","JSON","parse","stringify","push","index","splice","interacted","report","Validity","customError","valueMissing","InternalMsg","ValidationMessage","validationAnchor","_internals","setValidity","reportValidity","willUpdate","changedProps","has","deepmerge","updated","toggle","toggleAttribute","bubbles","composed","root","slot","assigned","btn","el","icon","transition","transform","_onUpdated","_updateTags","preventScroll","rect","getBoundingClientRect","top","window","innerHeight","firstSelected","Options","Tags","Selected","AllOptions","console","warn","_label_decorators","property","type","String","_size_decorators","attribute","_inline_decorators","Boolean","_caption_decorators","_placeholder_decorators","reflect","_searchable_decorators","_enhanced_decorators","_filterSearch_decorators","_multiple_decorators","_required_decorators","_hideLabel_decorators","_disabled_decorators","_hideTags_decorators","_selectAll_decorators","_selectAllText_decorators","_menuMinWidth_decorators","_openDirection_decorators","_selectAllChecked_decorators","_selectAllIndeterminate_decorators","_textStrings_decorators","Object","_allowAddOption_decorators","__textStrings_decorators","state","_newOptionValue_decorators","_text_decorators","_searchText_decorators","_assistiveText_decorators","query","__openUpwards_decorators","__tags_decorators","__esDecorate","static","private","access","obj","get","metadata","_metadata","_kind_decorators","_open_decorators","_readonly_decorators","_searchEl_decorators","_buttonEl_decorators","_listboxEl_decorators","_clearMultipleEl_decorators","_addOptionInputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DropdownScss"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{_ as e,a as t,b as i,c as a,d as s}from"../../../vendor/tslib-Ac8XvvSX.js";import{i as n,t as r,r as o,n as l}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{e as d,x as h}from"../../../vendor/lit-html-fDTfWwFR.js";import{i as c}from"../../../vendor/lit-element-DxLLCKb1.js";var k=n`*,
1
+ import{_ as e,a as t,b as i,c as n,d as a}from"../../../vendor/tslib-Ac8XvvSX.js";import{i as s,t as r,r as o,n as l}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{e as d,x as h}from"../../../vendor/lit-html-fDTfWwFR.js";import{i as c}from"../../../vendor/lit-element-DxLLCKb1.js";var m=s`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -13,7 +13,8 @@ import{_ as e,a as t,b as i,c as a,d as s}from"../../../vendor/tslib-Ac8XvvSX.js
13
13
  --skeleton-base-height: 16px;
14
14
  --skeleton-border-radius: 4px;
15
15
  --skeleton-background: var(--kd-color-background-loader-skeleton-default);
16
- --skeleton-shimmer-duration: 0.6s;
16
+ --skeleton-shimmer-duration: 1.5s;
17
+ /* default shimmer color */
17
18
  --_shimmer-color: var(--kd-color-background-loader-skeleton-tertiary);
18
19
  display: block;
19
20
  width: 100%;
@@ -39,7 +40,6 @@ import{_ as e,a as t,b as i,c as a,d as s}from"../../../vendor/tslib-Ac8XvvSX.js
39
40
  overflow: hidden;
40
41
  background: var(--skeleton-background);
41
42
  border-radius: var(--skeleton-border-radius);
42
- isolation: isolate;
43
43
  }
44
44
  .skeleton::after {
45
45
  content: "";
@@ -51,7 +51,12 @@ import{_ as e,a as t,b as i,c as a,d as s}from"../../../vendor/tslib-Ac8XvvSX.js
51
51
  background-repeat: no-repeat;
52
52
  background-size: 200% 100%;
53
53
  background-position: -100% 0;
54
- animation: shimmer var(--skeleton-shimmer-duration) linear infinite;
54
+ animation-name: skeleton-shimmer;
55
+ animation-duration: var(--skeleton-shimmer-duration);
56
+ animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
57
+ animation-iteration-count: infinite;
58
+ animation-direction: alternate;
59
+ will-change: background-position;
55
60
  }
56
61
  .skeleton.rectangle {
57
62
  border-radius: var(--skeleton-border-radius);
@@ -73,43 +78,38 @@ import{_ as e,a as t,b as i,c as a,d as s}from"../../../vendor/tslib-Ac8XvvSX.js
73
78
  height: 128px;
74
79
  }
75
80
 
81
+ /* AI variant */
76
82
  .skeleton.ai-connected {
77
83
  background: linear-gradient(90deg, var(--kd-color-background-gradients-ai-loader-start-gradient) 0%, var(--kd-color-background-gradients-ai-loader-end-gradient) 100%);
78
84
  }
79
85
 
80
86
  .skeleton.ai-connected::after {
81
- background: #fff;
82
- background-image: none;
87
+ --_ai-band: color-mix(in oklab, gray 55%, transparent);
83
88
  mix-blend-mode: screen;
84
- opacity: 0.18;
85
- -webkit-mask-image: linear-gradient(90deg, transparent 0 15%, black 15% 30%, transparent 30% 45%);
86
- mask-image: linear-gradient(90deg, transparent 0 15%, black 15% 30%, transparent 30% 45%);
87
- -webkit-mask-size: 200% 100%;
88
- mask-size: 200% 100%;
89
- -webkit-mask-position: -100% 0;
90
- mask-position: -100% 0;
89
+ background-image: linear-gradient(90deg, transparent 0%, var(--_ai-band) 15%, transparent 30%);
90
+ background-repeat: no-repeat;
91
91
  background-size: 200% 100%;
92
92
  background-position: -100% 0;
93
- will-change: -webkit-mask-position, mask-position, background-position;
94
- animation: shimmer var(--skeleton-shimmer-duration) linear infinite;
93
+ animation-name: skeleton-shimmer;
94
+ animation-duration: var(--skeleton-shimmer-duration);
95
+ animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
96
+ animation-iteration-count: infinite;
97
+ animation-direction: alternate;
98
+ will-change: background-position;
95
99
  }
96
100
 
97
- @keyframes shimmer {
101
+ @keyframes skeleton-shimmer {
98
102
  0% {
99
103
  background-position: -100% 0;
100
- -webkit-mask-position: -100% 0;
101
- mask-position: -100% 0;
102
104
  }
103
105
  100% {
104
106
  background-position: 100% 0;
105
- -webkit-mask-position: 100% 0;
106
- mask-position: 100% 0;
107
107
  }
108
- }`;let m=(()=>{var n,m,g,p,u,b,v;let f,w,y,x,z,S,j,C,M,W=[r("kyn-skeleton")],$=[],B=c,O=[],_=[],A=[],N=[],P=[],q=[],D=[],E=[],F=[],G=[],H=[],I=[],J=[],K=[];return w=class extends B{get shape(){return a(this,n,"f")}set shape(e){s(this,n,e,"f")}get size(){return a(this,m,"f")}set size(e){s(this,m,e,"f")}get width(){return a(this,g,"f")}set width(e){s(this,g,e,"f")}get height(){return a(this,p,"f")}set height(e){s(this,p,e,"f")}get lines(){return a(this,u,"f")}set lines(e){s(this,u,e,"f")}get inline(){return a(this,b,"f")}set inline(e){s(this,b,e,"f")}get aiConnected(){return a(this,v,"f")}set aiConnected(e){s(this,v,e,"f")}render(){const e={skeleton:!0,[this.shape]:!0,[`size-${this.size}`]:Boolean(this.size),"multi-line":this.lines>1,inline:this.inline,"ai-connected":this.aiConnected},t={...this.width&&{width:this.width},...this.height&&{height:this.height}},i=Array.from({length:this.lines},(()=>h`
108
+ }`;let g=(()=>{var s,g,k,u,p,b,v;let f,w,y,x,z,S,j,C,M,W=[r("kyn-skeleton")],$=[],_=c,B=[],O=[],A=[],I=[],N=[],P=[],q=[],D=[],E=[],F=[],G=[],H=[],J=[],K=[];return w=class extends _{get shape(){return n(this,s,"f")}set shape(e){a(this,s,e,"f")}get size(){return n(this,g,"f")}set size(e){a(this,g,e,"f")}get width(){return n(this,k,"f")}set width(e){a(this,k,e,"f")}get height(){return n(this,u,"f")}set height(e){a(this,u,e,"f")}get lines(){return n(this,p,"f")}set lines(e){a(this,p,e,"f")}get inline(){return n(this,b,"f")}set inline(e){a(this,b,e,"f")}get aiConnected(){return n(this,v,"f")}set aiConnected(e){a(this,v,e,"f")}render(){const e={skeleton:!0,[this.shape]:!0,[`size-${this.size}`]:Boolean(this.size),"multi-line":this.lines>1,inline:this.inline,"ai-connected":this.aiConnected},t={...this.width&&{width:this.width},...this.height&&{height:this.height}},i=Array.from({length:this.lines},(()=>h`
109
109
  <div
110
110
  class=${d(e)}
111
111
  style=${Object.entries(t).map((([e,t])=>`${e}: ${t}`)).join(";")}
112
112
  aria-hidden="true"
113
113
  ></div>
114
- `));return h`<div class="container">${i}</div>`}constructor(){super(...arguments),n.set(this,i(this,O,"rectangle")),m.set(this,(i(this,_),i(this,A,void 0))),g.set(this,(i(this,N),i(this,P,void 0))),p.set(this,(i(this,q),i(this,D,void 0))),u.set(this,(i(this,E),i(this,F,1))),b.set(this,(i(this,G),i(this,H,!1))),v.set(this,(i(this,I),i(this,J,!1))),i(this,K)}},n=new WeakMap,m=new WeakMap,g=new WeakMap,p=new WeakMap,u=new WeakMap,b=new WeakMap,v=new WeakMap,e(w,"Skeleton"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=B[Symbol.metadata])&&void 0!==e?e:null):void 0;y=[l({type:String,reflect:!0})],x=[l({type:String})],z=[l({type:String})],S=[l({type:String})],j=[l({type:Number})],C=[l({type:Boolean,reflect:!0})],M=[l({type:Boolean,reflect:!0})],t(w,null,y,{kind:"accessor",name:"shape",static:!1,private:!1,access:{has:e=>"shape"in e,get:e=>e.shape,set:(e,t)=>{e.shape=t}},metadata:i},O,_),t(w,null,x,{kind:"accessor",name:"size",static:!1,private:!1,access:{has:e=>"size"in e,get:e=>e.size,set:(e,t)=>{e.size=t}},metadata:i},A,N),t(w,null,z,{kind:"accessor",name:"width",static:!1,private:!1,access:{has:e=>"width"in e,get:e=>e.width,set:(e,t)=>{e.width=t}},metadata:i},P,q),t(w,null,S,{kind:"accessor",name:"height",static:!1,private:!1,access:{has:e=>"height"in e,get:e=>e.height,set:(e,t)=>{e.height=t}},metadata:i},D,E),t(w,null,j,{kind:"accessor",name:"lines",static:!1,private:!1,access:{has:e=>"lines"in e,get:e=>e.lines,set:(e,t)=>{e.lines=t}},metadata:i},F,G),t(w,null,C,{kind:"accessor",name:"inline",static:!1,private:!1,access:{has:e=>"inline"in e,get:e=>e.inline,set:(e,t)=>{e.inline=t}},metadata:i},H,I),t(w,null,M,{kind:"accessor",name:"aiConnected",static:!1,private:!1,access:{has:e=>"aiConnected"in e,get:e=>e.aiConnected,set:(e,t)=>{e.aiConnected=t}},metadata:i},J,K),t(null,f={value:w},W,{kind:"class",name:w.name,metadata:i},null,$),w=f.value,i&&Object.defineProperty(w,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),w.styles=o(k),i(w,$),w})();export{m as Skeleton};
114
+ `));return h`<div class="container">${i}</div>`}constructor(){super(...arguments),s.set(this,i(this,B,"rectangle")),g.set(this,(i(this,O),i(this,A,void 0))),k.set(this,(i(this,I),i(this,N,void 0))),u.set(this,(i(this,P),i(this,q,void 0))),p.set(this,(i(this,D),i(this,E,1))),b.set(this,(i(this,F),i(this,G,!1))),v.set(this,(i(this,H),i(this,J,!1))),i(this,K)}},s=new WeakMap,g=new WeakMap,k=new WeakMap,u=new WeakMap,p=new WeakMap,b=new WeakMap,v=new WeakMap,e(w,"Skeleton"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=_[Symbol.metadata])&&void 0!==e?e:null):void 0;y=[l({type:String,reflect:!0})],x=[l({type:String})],z=[l({type:String})],S=[l({type:String})],j=[l({type:Number})],C=[l({type:Boolean,reflect:!0})],M=[l({type:Boolean,reflect:!0})],t(w,null,y,{kind:"accessor",name:"shape",static:!1,private:!1,access:{has:e=>"shape"in e,get:e=>e.shape,set:(e,t)=>{e.shape=t}},metadata:i},B,O),t(w,null,x,{kind:"accessor",name:"size",static:!1,private:!1,access:{has:e=>"size"in e,get:e=>e.size,set:(e,t)=>{e.size=t}},metadata:i},A,I),t(w,null,z,{kind:"accessor",name:"width",static:!1,private:!1,access:{has:e=>"width"in e,get:e=>e.width,set:(e,t)=>{e.width=t}},metadata:i},N,P),t(w,null,S,{kind:"accessor",name:"height",static:!1,private:!1,access:{has:e=>"height"in e,get:e=>e.height,set:(e,t)=>{e.height=t}},metadata:i},q,D),t(w,null,j,{kind:"accessor",name:"lines",static:!1,private:!1,access:{has:e=>"lines"in e,get:e=>e.lines,set:(e,t)=>{e.lines=t}},metadata:i},E,F),t(w,null,C,{kind:"accessor",name:"inline",static:!1,private:!1,access:{has:e=>"inline"in e,get:e=>e.inline,set:(e,t)=>{e.inline=t}},metadata:i},G,H),t(w,null,M,{kind:"accessor",name:"aiConnected",static:!1,private:!1,access:{has:e=>"aiConnected"in e,get:e=>e.aiConnected,set:(e,t)=>{e.aiConnected=t}},metadata:i},J,K),t(null,f={value:w},W,{kind:"class",name:w.name,metadata:i},null,$),w=f.value,i&&Object.defineProperty(w,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),w.styles=o(m),i(w,$),w})();export{g as Skeleton};
115
115
  //# sourceMappingURL=skeleton.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kyndryl-design-system/shidoka-applications",
3
- "version": "2.66.2",
3
+ "version": "2.66.4",
4
4
  "description": "Shidoka Web Components for Applications",
5
5
  "license": "MIT",
6
6
  "main": "index.js",