@vscode-elements/elements 2.0.0-pre.3 → 2.0.0-pre.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.
Files changed (109) hide show
  1. package/custom-elements.json +3859 -3730
  2. package/dist/bundled.js +302 -241
  3. package/dist/includes/VscElement.d.ts.map +1 -1
  4. package/dist/includes/VscElement.js +2 -5
  5. package/dist/includes/VscElement.js.map +1 -1
  6. package/dist/includes/form-button-widget/base.styles.d.ts.map +1 -1
  7. package/dist/includes/form-button-widget/base.styles.js +8 -9
  8. package/dist/includes/form-button-widget/base.styles.js.map +1 -1
  9. package/dist/includes/test-helpers.d.ts +11 -0
  10. package/dist/includes/test-helpers.d.ts.map +1 -1
  11. package/dist/includes/test-helpers.js +36 -0
  12. package/dist/includes/test-helpers.js.map +1 -1
  13. package/dist/vscode-badge/vscode-badge.js +1 -1
  14. package/dist/vscode-badge/vscode-badge.js.map +1 -1
  15. package/dist/vscode-badge/vscode-badge.styles.d.ts.map +1 -1
  16. package/dist/vscode-badge/vscode-badge.styles.js +8 -4
  17. package/dist/vscode-badge/vscode-badge.styles.js.map +1 -1
  18. package/dist/vscode-button/vscode-button.d.ts +0 -2
  19. package/dist/vscode-button/vscode-button.d.ts.map +1 -1
  20. package/dist/vscode-button/vscode-button.js +10 -24
  21. package/dist/vscode-button/vscode-button.js.map +1 -1
  22. package/dist/vscode-button/vscode-button.styles.d.ts.map +1 -1
  23. package/dist/vscode-button/vscode-button.styles.js +31 -18
  24. package/dist/vscode-button/vscode-button.styles.js.map +1 -1
  25. package/dist/vscode-button-group/vscode-button-group.d.ts.map +1 -1
  26. package/dist/vscode-button-group/vscode-button-group.js +2 -3
  27. package/dist/vscode-button-group/vscode-button-group.js.map +1 -1
  28. package/dist/vscode-button-group/vscode-button-group.styles.d.ts.map +1 -1
  29. package/dist/vscode-button-group/vscode-button-group.styles.js +17 -13
  30. package/dist/vscode-button-group/vscode-button-group.styles.js.map +1 -1
  31. package/dist/vscode-checkbox/vscode-checkbox.d.ts.map +1 -1
  32. package/dist/vscode-checkbox/vscode-checkbox.js +0 -10
  33. package/dist/vscode-checkbox/vscode-checkbox.js.map +1 -1
  34. package/dist/vscode-context-menu/vscode-context-menu.d.ts +0 -1
  35. package/dist/vscode-context-menu/vscode-context-menu.d.ts.map +1 -1
  36. package/dist/vscode-context-menu/vscode-context-menu.js +0 -18
  37. package/dist/vscode-context-menu/vscode-context-menu.js.map +1 -1
  38. package/dist/vscode-context-menu/vscode-context-menu.styles.js +4 -4
  39. package/dist/vscode-context-menu/vscode-context-menu.styles.js.map +1 -1
  40. package/dist/vscode-context-menu-item/vscode-context-menu-item.styles.js +4 -4
  41. package/dist/vscode-context-menu-item/vscode-context-menu-item.styles.js.map +1 -1
  42. package/dist/vscode-divider/vscode-divider.js +1 -1
  43. package/dist/vscode-divider/vscode-divider.js.map +1 -1
  44. package/dist/vscode-divider/vscode-divider.styles.d.ts.map +1 -1
  45. package/dist/vscode-divider/vscode-divider.styles.js +5 -2
  46. package/dist/vscode-divider/vscode-divider.styles.js.map +1 -1
  47. package/dist/vscode-form-container/vscode-form-container.d.ts +0 -5
  48. package/dist/vscode-form-container/vscode-form-container.d.ts.map +1 -1
  49. package/dist/vscode-form-container/vscode-form-container.js +0 -63
  50. package/dist/vscode-form-container/vscode-form-container.js.map +1 -1
  51. package/dist/vscode-label/vscode-label.styles.js +6 -6
  52. package/dist/vscode-label/vscode-label.styles.js.map +1 -1
  53. package/dist/vscode-multi-select/vscode-multi-select.d.ts.map +1 -1
  54. package/dist/vscode-multi-select/vscode-multi-select.js +0 -7
  55. package/dist/vscode-multi-select/vscode-multi-select.js.map +1 -1
  56. package/dist/vscode-progress-ring/vscode-progress-ring.styles.d.ts.map +1 -1
  57. package/dist/vscode-progress-ring/vscode-progress-ring.styles.js +0 -1
  58. package/dist/vscode-progress-ring/vscode-progress-ring.styles.js.map +1 -1
  59. package/dist/vscode-radio/vscode-radio.d.ts +0 -1
  60. package/dist/vscode-radio/vscode-radio.d.ts.map +1 -1
  61. package/dist/vscode-radio/vscode-radio.js +0 -14
  62. package/dist/vscode-radio/vscode-radio.js.map +1 -1
  63. package/dist/vscode-scrollable/vscode-scrollable.d.ts +0 -1
  64. package/dist/vscode-scrollable/vscode-scrollable.d.ts.map +1 -1
  65. package/dist/vscode-scrollable/vscode-scrollable.js +0 -1
  66. package/dist/vscode-scrollable/vscode-scrollable.js.map +1 -1
  67. package/dist/vscode-single-select/vscode-single-select.d.ts +0 -1
  68. package/dist/vscode-single-select/vscode-single-select.d.ts.map +1 -1
  69. package/dist/vscode-single-select/vscode-single-select.js +0 -10
  70. package/dist/vscode-single-select/vscode-single-select.js.map +1 -1
  71. package/dist/vscode-tab-header/vscode-tab-header.styles.d.ts.map +1 -1
  72. package/dist/vscode-tab-header/vscode-tab-header.styles.js +12 -5
  73. package/dist/vscode-tab-header/vscode-tab-header.styles.js.map +1 -1
  74. package/dist/vscode-tabs/vscode-tabs.d.ts +0 -2
  75. package/dist/vscode-tabs/vscode-tabs.d.ts.map +1 -1
  76. package/dist/vscode-tabs/vscode-tabs.js +7 -13
  77. package/dist/vscode-tabs/vscode-tabs.js.map +1 -1
  78. package/dist/vscode-tabs/vscode-tabs.styles.d.ts.map +1 -1
  79. package/dist/vscode-tabs/vscode-tabs.styles.js +5 -0
  80. package/dist/vscode-tabs/vscode-tabs.styles.js.map +1 -1
  81. package/dist/vscode-textarea/vscode-textarea.d.ts.map +1 -1
  82. package/dist/vscode-textarea/vscode-textarea.js +2 -10
  83. package/dist/vscode-textarea/vscode-textarea.js.map +1 -1
  84. package/dist/vscode-textarea/vscode-textarea.styles.js +1 -1
  85. package/dist/vscode-textarea/vscode-textarea.styles.js.map +1 -1
  86. package/dist/vscode-textfield/vscode-textfield.d.ts.map +1 -1
  87. package/dist/vscode-textfield/vscode-textfield.js +31 -35
  88. package/dist/vscode-textfield/vscode-textfield.js.map +1 -1
  89. package/dist/vscode-textfield/vscode-textfield.styles.d.ts.map +1 -1
  90. package/dist/vscode-textfield/vscode-textfield.styles.js +8 -3
  91. package/dist/vscode-textfield/vscode-textfield.styles.js.map +1 -1
  92. package/dist/vscode-toolbar-container/vscode-toolbar-container.js +1 -1
  93. package/dist/vscode-toolbar-container/vscode-toolbar-container.js.map +1 -1
  94. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.d.ts.map +1 -1
  95. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.js +4 -0
  96. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.js.map +1 -1
  97. package/dist/vscode-tree/vscode-tree.d.ts +6 -17
  98. package/dist/vscode-tree/vscode-tree.d.ts.map +1 -1
  99. package/dist/vscode-tree/vscode-tree.js +20 -36
  100. package/dist/vscode-tree/vscode-tree.js.map +1 -1
  101. package/dist/vscode-tree-item/vscode-tree-item.d.ts.map +1 -1
  102. package/dist/vscode-tree-item/vscode-tree-item.js +2 -2
  103. package/dist/vscode-tree-item/vscode-tree-item.js.map +1 -1
  104. package/dist/vscode-tree-item/vscode-tree-item.styles.d.ts.map +1 -1
  105. package/dist/vscode-tree-item/vscode-tree-item.styles.js +9 -1
  106. package/dist/vscode-tree-item/vscode-tree-item.styles.js.map +1 -1
  107. package/package.json +1 -1
  108. package/vscode.css-custom-data.json +14 -15
  109. package/vscode.html-custom-data.json +95 -102
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-single-select.js","sourceRoot":"","sources":["../../src/vscode-single-select/vscode-single-select.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, LitElement, TemplateResult} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {customElement} from '../includes/VscElement.js';\nimport {chevronDownIcon} from '../includes/vscode-select/template-elements.js';\nimport {VscodeSelectBase} from '../includes/vscode-select/vscode-select-base.js';\nimport {AssociatedFormControl} from '../includes/AssociatedFormControl.js';\nimport styles from './vscode-single-select.styles.js';\n\nexport type VscSingleSelectCreateOptionEvent = CustomEvent<{value: string}>;\n\n/**\n * Allows to select an item from multiple options.\n *\n * When participating in a form, it supports the `:invalid` pseudo class. Otherwise the error styles\n * can be applied through the `invalid` property.\n *\n * @tag vscode-single-select\n *\n * ## Types\n *\n * ```typescript\n *interface Option {\n * label: string;\n * value: string;\n * description: string;\n * selected: boolean;\n * disabled: boolean;\n *}\n * ```\n * @prop {boolean} invalid\n * @attr {boolean} invalid\n * @attr name - Name which is used as a variable name in the data of the form-container.\n *\n * @cssprop [--dropdown-z-index=2]\n * @cssprop [--vscode-badge-background=#616161]\n * @cssprop [--vscode-badge-foreground=#f8f8f8]\n * @cssprop [--vscode-settings-dropdownBorder=#3c3c3c]\n * @cssprop [--vscode-settings-checkboxBackground=#313131]\n * @cssprop [--vscode-settings-dropdownBackground=#313131]\n * @cssprop [--vscode-settings-dropdownForeground=#cccccc]\n * @cssprop [--vscode-settings-dropdownListBorder=#454545]\n * @cssprop [--vscode-focusBorder=#0078d4]\n * @cssprop [--vscode-foreground=#cccccc]\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-font-weight=normal]\n * @cssprop [--vscode-inputValidation-errorBackground=#5a1d1d]\n * @cssprop [--vscode-inputValidation-errorBorder=#be1100]\n * @cssprop [--vscode-list-activeSelectionBackground=#04395e]\n * @cssprop [--vscode-list-activeSelectionForeground=#ffffff]\n * @cssprop [--vscode-list-focusOutline=#0078d4]\n * @cssprop [--vscode-list-focusHighlightForeground=#2aaaff]\n * @cssprop [--vscode-list-highlightForeground=#2aaaff]\n * @cssprop [--vscode-list-hoverBackground=#2a2d2e]\n * @cssprop [--vscode-list-hoverForeground=#ffffff]\n */\n@customElement('vscode-single-select')\nexport class VscodeSingleSelect\n extends VscodeSelectBase\n implements AssociatedFormControl\n{\n static override styles = styles;\n\n /** @internal */\n static override shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** @internal */\n static formAssociated = true;\n\n @property({attribute: 'default-value'})\n defaultValue = '';\n\n @property({reflect: true})\n name: string | undefined = undefined;\n\n @property({type: Number, attribute: 'selected-index'})\n set selectedIndex(val: number) {\n this._opts.selectedIndex = val;\n\n const op = this._opts.getOptionByIndex(val);\n\n if (op) {\n this._opts.activeIndex = val;\n this._value = op.value;\n this._internals.setFormValue(this._value);\n this._manageRequired();\n } else {\n this._value = '';\n this._internals.setFormValue('');\n this._manageRequired();\n }\n }\n get selectedIndex(): number {\n return this._opts.selectedIndex;\n }\n\n @property({type: String})\n set value(val: string) {\n this._opts.value = val;\n\n if (this._opts.selectedIndex > -1) {\n this._requestedValueToSetLater = '';\n } else {\n this._requestedValueToSetLater = val;\n }\n\n this._internals.setFormValue(this._value);\n this._manageRequired();\n }\n get value(): string {\n return this._opts.value as string;\n }\n\n @property({type: Boolean, reflect: true})\n required = false;\n\n get validity(): ValidityState {\n return this._internals.validity;\n }\n\n get validationMessage(): string {\n return this._internals.validationMessage;\n }\n\n get willValidate() {\n return this._internals.willValidate;\n }\n\n checkValidity(): boolean {\n return this._internals.checkValidity();\n }\n\n reportValidity(): boolean {\n return this._internals.reportValidity();\n }\n\n @query('.face')\n private _face!: HTMLDivElement;\n\n private _internals: ElementInternals;\n\n private updateInputValue() {\n if (!this.combobox) {\n return;\n }\n\n const input = this.renderRoot.querySelector(\n '.combobox-input'\n ) as HTMLInputElement;\n\n if (input) {\n const selectedOption = this._opts.getSelectedOption();\n input.value = selectedOption?.label ?? '';\n }\n }\n\n constructor() {\n super();\n this._opts.multiSelect = false;\n this._internals = this.attachInternals();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.updateComplete.then(() => {\n this._manageRequired();\n });\n }\n\n /** @internal */\n formResetCallback(): void {\n this.value = this.defaultValue;\n }\n\n /** @internal */\n formStateRestoreCallback(\n state: string,\n _mode: 'restore' | 'autocomplete'\n ): void {\n this.updateComplete.then(() => {\n this.value = state;\n });\n }\n\n /** @internal */\n get type(): 'select-one' {\n return 'select-one';\n }\n\n get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /**\n * This variable was introduced for cases where the value is set before the corresponding option\n * exists. This can happen while a framework like Vue or React is rendering the component.\n */\n private _requestedValueToSetLater = '';\n\n protected override async _createAndSelectSuggestedOption() {\n const nextIndex = this._createSuggestedOption();\n\n await this.updateComplete;\n\n this._opts.selectedIndex = nextIndex;\n this._dispatchChangeEvent();\n const opCreateEvent: VscSingleSelectCreateOptionEvent = new CustomEvent(\n 'vsc-single-select-create-option',\n {detail: {value: this._opts.getOptionByIndex(nextIndex)?.value ?? ''}}\n );\n this.dispatchEvent(opCreateEvent);\n this.open = false;\n this._isPlaceholderOptionActive = false;\n }\n\n protected override _dispatchChangeEvent(): void {\n /** @deprecated */\n this.dispatchEvent(\n new CustomEvent('vsc-change', {\n detail: {\n selectedIndex: this._opts.selectedIndex,\n value: this._value,\n },\n })\n );\n\n super._dispatchChangeEvent();\n }\n\n protected override _setStateFromSlottedElements(): void {\n super._setStateFromSlottedElements();\n\n if (!this.combobox && this._opts.selectedIndexes.length === 0) {\n this._opts.selectedIndex = this._opts.options.length > 0 ? 0 : -1;\n }\n }\n\n //#region event handlers\n protected override _onSlotChange(): void {\n super._onSlotChange();\n\n if (this._requestedValueToSetLater) {\n // the value is set before the available options are appended\n const foundOption = this._opts.getOptionByValue(\n this._requestedValueToSetLater\n );\n\n if (foundOption) {\n this._opts.selectedIndex = foundOption.index;\n this._requestedValueToSetLater = '';\n }\n }\n\n if (this._opts.selectedIndex > -1 && this._opts.numOptions > 0) {\n this._internals.setFormValue(this._opts.value as string);\n this._manageRequired();\n } else {\n this._internals.setFormValue(null);\n this._manageRequired();\n }\n }\n\n protected override _onEnterKeyDown(ev: KeyboardEvent): void {\n super._onEnterKeyDown(ev);\n let valueChanged = false;\n\n if (this.combobox) {\n if (this.open) {\n if (this._isPlaceholderOptionActive) {\n this._createAndSelectSuggestedOption();\n } else {\n valueChanged = this._opts.activeIndex !== this._opts.selectedIndex;\n this._opts.selectedIndex = this._opts.activeIndex;\n this.open = false;\n }\n } else {\n this.open = true;\n this._scrollActiveElementToTop();\n }\n } else {\n if (this.open) {\n valueChanged = this._opts.activeIndex !== this._opts.selectedIndex;\n this._opts.selectedIndex = this._opts.activeIndex;\n this.open = false;\n } else {\n this.open = true;\n this._scrollActiveElementToTop();\n }\n }\n\n if (valueChanged) {\n this._dispatchChangeEvent();\n this.updateInputValue();\n this._internals.setFormValue(this._opts.value as string);\n this._manageRequired();\n }\n }\n\n protected override _onOptionClick(ev: MouseEvent) {\n super._onOptionClick(ev);\n const composedPath = ev.composedPath();\n const optEl = composedPath.find((et) => {\n const el = et as HTMLElement;\n\n if ('matches' in el) {\n return el.matches('li.option');\n }\n\n return;\n }) as HTMLElement | undefined;\n\n if (!optEl || optEl.matches('.disabled')) {\n return;\n }\n\n const isPlaceholderOption = optEl.classList.contains('placeholder');\n\n if (isPlaceholderOption) {\n if (this.creatable) {\n this._createAndSelectSuggestedOption();\n }\n } else {\n this._opts.selectedIndex = Number((optEl as HTMLElement).dataset.index);\n\n this.open = false;\n this._internals.setFormValue(this._value);\n this._manageRequired();\n this._dispatchChangeEvent();\n }\n }\n //#endregion\n\n protected override _manageRequired() {\n const {value} = this;\n if (value === '' && this.required) {\n this._internals.setValidity(\n {valueMissing: true},\n 'Please select an item in the list.',\n this._face\n );\n } else {\n this._internals.setValidity({});\n }\n }\n\n //#region render functions\n protected override _renderSelectFace(): TemplateResult {\n const selectedOption = this._opts.getSelectedOption();\n const label = selectedOption?.label ?? '';\n const activeDescendant =\n this._opts.activeIndex > -1 ? `op-${this._opts.activeIndex}` : '';\n\n return html`\n <div\n aria-activedescendant=${activeDescendant}\n aria-controls=\"select-listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-label=${ifDefined(this.label)}\n class=\"select-face face\"\n @click=${this._onFaceClick}\n role=\"combobox\"\n tabindex=\"0\"\n >\n <span class=\"text\">${label}</span> ${chevronDownIcon}\n </div>\n `;\n }\n\n protected override _renderComboboxFace(): TemplateResult {\n let inputVal = '';\n\n if (this._isBeingFiltered) {\n inputVal = this._opts.filterPattern;\n } else {\n const op = this._opts.getSelectedOption();\n inputVal = op?.label ?? '';\n }\n\n const activeDescendant =\n this._opts.activeIndex > -1 ? `op-${this._opts.activeIndex}` : '';\n const expanded = this.open ? 'true' : 'false';\n\n return html`\n <div class=\"combobox-face face\">\n <input\n aria-activedescendant=${activeDescendant}\n aria-autocomplete=\"list\"\n aria-controls=\"select-listbox\"\n aria-expanded=${expanded}\n aria-haspopup=\"listbox\"\n aria-label=${ifDefined(this.label)}\n class=\"combobox-input\"\n role=\"combobox\"\n spellcheck=\"false\"\n type=\"text\"\n autocomplete=\"off\"\n .value=${inputVal}\n @focus=${this._onComboboxInputFocus}\n @blur=${this._onComboboxInputBlur}\n @input=${this._onComboboxInputInput}\n @click=${this._onComboboxInputClick}\n @keydown=${this._onComboboxInputSpaceKeyDown}\n >\n <button\n aria-label=\"Open the list of options\"\n class=\"combobox-button\"\n type=\"button\"\n @click=${this._onComboboxButtonClick}\n @keydown=${this._onComboboxButtonKeyDown}\n tabindex=\"-1\"\n >\n ${chevronDownIcon}\n </button>\n </div>\n `;\n }\n\n override render(): TemplateResult {\n return html`\n <div class=\"single-select\">\n <slot class=\"main-slot\" @slotchange=${this._onSlotChange}></slot>\n ${this.combobox ? this._renderComboboxFace() : this._renderSelectFace()}\n ${this._renderDropdown()}\n </div>\n `;\n }\n //#endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-single-select': VscodeSingleSelect;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-single-select-create-option': VscSingleSelectCreateOptionEvent;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-single-select.js","sourceRoot":"","sources":["../../src/vscode-single-select/vscode-single-select.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, LitElement, TemplateResult} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {customElement} from '../includes/VscElement.js';\nimport {chevronDownIcon} from '../includes/vscode-select/template-elements.js';\nimport {VscodeSelectBase} from '../includes/vscode-select/vscode-select-base.js';\nimport {AssociatedFormControl} from '../includes/AssociatedFormControl.js';\nimport styles from './vscode-single-select.styles.js';\n\nexport type VscSingleSelectCreateOptionEvent = CustomEvent<{value: string}>;\n\n/**\n * Allows to select an item from multiple options.\n *\n * When participating in a form, it supports the `:invalid` pseudo class. Otherwise the error styles\n * can be applied through the `invalid` property.\n *\n * @tag vscode-single-select\n *\n * ## Types\n *\n * ```typescript\n *interface Option {\n * label: string;\n * value: string;\n * description: string;\n * selected: boolean;\n * disabled: boolean;\n *}\n * ```\n * @prop {boolean} invalid\n * @attr {boolean} invalid\n * @attr name - Name which is used as a variable name in the data of the form-container.\n *\n * @cssprop [--dropdown-z-index=2]\n * @cssprop [--vscode-badge-background=#616161]\n * @cssprop [--vscode-badge-foreground=#f8f8f8]\n * @cssprop [--vscode-settings-dropdownBorder=#3c3c3c]\n * @cssprop [--vscode-settings-checkboxBackground=#313131]\n * @cssprop [--vscode-settings-dropdownBackground=#313131]\n * @cssprop [--vscode-settings-dropdownForeground=#cccccc]\n * @cssprop [--vscode-settings-dropdownListBorder=#454545]\n * @cssprop [--vscode-focusBorder=#0078d4]\n * @cssprop [--vscode-foreground=#cccccc]\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-font-weight=normal]\n * @cssprop [--vscode-inputValidation-errorBackground=#5a1d1d]\n * @cssprop [--vscode-inputValidation-errorBorder=#be1100]\n * @cssprop [--vscode-list-activeSelectionBackground=#04395e]\n * @cssprop [--vscode-list-activeSelectionForeground=#ffffff]\n * @cssprop [--vscode-list-focusOutline=#0078d4]\n * @cssprop [--vscode-list-focusHighlightForeground=#2aaaff]\n * @cssprop [--vscode-list-highlightForeground=#2aaaff]\n * @cssprop [--vscode-list-hoverBackground=#2a2d2e]\n * @cssprop [--vscode-list-hoverForeground=#ffffff]\n */\n@customElement('vscode-single-select')\nexport class VscodeSingleSelect\n extends VscodeSelectBase\n implements AssociatedFormControl\n{\n static override styles = styles;\n\n /** @internal */\n static override shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** @internal */\n static formAssociated = true;\n\n @property({attribute: 'default-value'})\n defaultValue = '';\n\n @property({reflect: true})\n name: string | undefined = undefined;\n\n @property({type: Number, attribute: 'selected-index'})\n set selectedIndex(val: number) {\n this._opts.selectedIndex = val;\n\n const op = this._opts.getOptionByIndex(val);\n\n if (op) {\n this._opts.activeIndex = val;\n this._value = op.value;\n this._internals.setFormValue(this._value);\n this._manageRequired();\n } else {\n this._value = '';\n this._internals.setFormValue('');\n this._manageRequired();\n }\n }\n get selectedIndex(): number {\n return this._opts.selectedIndex;\n }\n\n @property({type: String})\n set value(val: string) {\n this._opts.value = val;\n\n if (this._opts.selectedIndex > -1) {\n this._requestedValueToSetLater = '';\n } else {\n this._requestedValueToSetLater = val;\n }\n\n this._internals.setFormValue(this._value);\n this._manageRequired();\n }\n get value(): string {\n return this._opts.value as string;\n }\n\n @property({type: Boolean, reflect: true})\n required = false;\n\n get validity(): ValidityState {\n return this._internals.validity;\n }\n\n get validationMessage(): string {\n return this._internals.validationMessage;\n }\n\n get willValidate() {\n return this._internals.willValidate;\n }\n\n checkValidity(): boolean {\n return this._internals.checkValidity();\n }\n\n reportValidity(): boolean {\n return this._internals.reportValidity();\n }\n\n @query('.face')\n private _face!: HTMLDivElement;\n\n private _internals: ElementInternals;\n\n private updateInputValue() {\n if (!this.combobox) {\n return;\n }\n\n const input = this.renderRoot.querySelector(\n '.combobox-input'\n ) as HTMLInputElement;\n\n if (input) {\n const selectedOption = this._opts.getSelectedOption();\n input.value = selectedOption?.label ?? '';\n }\n }\n\n constructor() {\n super();\n this._opts.multiSelect = false;\n this._internals = this.attachInternals();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.updateComplete.then(() => {\n this._manageRequired();\n });\n }\n\n /** @internal */\n formResetCallback(): void {\n this.value = this.defaultValue;\n }\n\n /** @internal */\n formStateRestoreCallback(\n state: string,\n _mode: 'restore' | 'autocomplete'\n ): void {\n this.updateComplete.then(() => {\n this.value = state;\n });\n }\n\n /** @internal */\n get type(): 'select-one' {\n return 'select-one';\n }\n\n get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /**\n * This variable was introduced for cases where the value is set before the corresponding option\n * exists. This can happen while a framework like Vue or React is rendering the component.\n */\n private _requestedValueToSetLater = '';\n\n protected override async _createAndSelectSuggestedOption() {\n const nextIndex = this._createSuggestedOption();\n\n await this.updateComplete;\n\n this._opts.selectedIndex = nextIndex;\n this._dispatchChangeEvent();\n const opCreateEvent: VscSingleSelectCreateOptionEvent = new CustomEvent(\n 'vsc-single-select-create-option',\n {detail: {value: this._opts.getOptionByIndex(nextIndex)?.value ?? ''}}\n );\n this.dispatchEvent(opCreateEvent);\n this.open = false;\n this._isPlaceholderOptionActive = false;\n }\n\n protected override _setStateFromSlottedElements(): void {\n super._setStateFromSlottedElements();\n\n if (!this.combobox && this._opts.selectedIndexes.length === 0) {\n this._opts.selectedIndex = this._opts.options.length > 0 ? 0 : -1;\n }\n }\n\n //#region event handlers\n protected override _onSlotChange(): void {\n super._onSlotChange();\n\n if (this._requestedValueToSetLater) {\n // the value is set before the available options are appended\n const foundOption = this._opts.getOptionByValue(\n this._requestedValueToSetLater\n );\n\n if (foundOption) {\n this._opts.selectedIndex = foundOption.index;\n this._requestedValueToSetLater = '';\n }\n }\n\n if (this._opts.selectedIndex > -1 && this._opts.numOptions > 0) {\n this._internals.setFormValue(this._opts.value as string);\n this._manageRequired();\n } else {\n this._internals.setFormValue(null);\n this._manageRequired();\n }\n }\n\n protected override _onEnterKeyDown(ev: KeyboardEvent): void {\n super._onEnterKeyDown(ev);\n let valueChanged = false;\n\n if (this.combobox) {\n if (this.open) {\n if (this._isPlaceholderOptionActive) {\n this._createAndSelectSuggestedOption();\n } else {\n valueChanged = this._opts.activeIndex !== this._opts.selectedIndex;\n this._opts.selectedIndex = this._opts.activeIndex;\n this.open = false;\n }\n } else {\n this.open = true;\n this._scrollActiveElementToTop();\n }\n } else {\n if (this.open) {\n valueChanged = this._opts.activeIndex !== this._opts.selectedIndex;\n this._opts.selectedIndex = this._opts.activeIndex;\n this.open = false;\n } else {\n this.open = true;\n this._scrollActiveElementToTop();\n }\n }\n\n if (valueChanged) {\n this._dispatchChangeEvent();\n this.updateInputValue();\n this._internals.setFormValue(this._opts.value as string);\n this._manageRequired();\n }\n }\n\n protected override _onOptionClick(ev: MouseEvent) {\n super._onOptionClick(ev);\n const composedPath = ev.composedPath();\n const optEl = composedPath.find((et) => {\n const el = et as HTMLElement;\n\n if ('matches' in el) {\n return el.matches('li.option');\n }\n\n return;\n }) as HTMLElement | undefined;\n\n if (!optEl || optEl.matches('.disabled')) {\n return;\n }\n\n const isPlaceholderOption = optEl.classList.contains('placeholder');\n\n if (isPlaceholderOption) {\n if (this.creatable) {\n this._createAndSelectSuggestedOption();\n }\n } else {\n this._opts.selectedIndex = Number((optEl as HTMLElement).dataset.index);\n\n this.open = false;\n this._internals.setFormValue(this._value);\n this._manageRequired();\n this._dispatchChangeEvent();\n }\n }\n //#endregion\n\n protected override _manageRequired() {\n const {value} = this;\n if (value === '' && this.required) {\n this._internals.setValidity(\n {valueMissing: true},\n 'Please select an item in the list.',\n this._face\n );\n } else {\n this._internals.setValidity({});\n }\n }\n\n //#region render functions\n protected override _renderSelectFace(): TemplateResult {\n const selectedOption = this._opts.getSelectedOption();\n const label = selectedOption?.label ?? '';\n const activeDescendant =\n this._opts.activeIndex > -1 ? `op-${this._opts.activeIndex}` : '';\n\n return html`\n <div\n aria-activedescendant=${activeDescendant}\n aria-controls=\"select-listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-label=${ifDefined(this.label)}\n class=\"select-face face\"\n @click=${this._onFaceClick}\n role=\"combobox\"\n tabindex=\"0\"\n >\n <span class=\"text\">${label}</span> ${chevronDownIcon}\n </div>\n `;\n }\n\n protected override _renderComboboxFace(): TemplateResult {\n let inputVal = '';\n\n if (this._isBeingFiltered) {\n inputVal = this._opts.filterPattern;\n } else {\n const op = this._opts.getSelectedOption();\n inputVal = op?.label ?? '';\n }\n\n const activeDescendant =\n this._opts.activeIndex > -1 ? `op-${this._opts.activeIndex}` : '';\n const expanded = this.open ? 'true' : 'false';\n\n return html`\n <div class=\"combobox-face face\">\n <input\n aria-activedescendant=${activeDescendant}\n aria-autocomplete=\"list\"\n aria-controls=\"select-listbox\"\n aria-expanded=${expanded}\n aria-haspopup=\"listbox\"\n aria-label=${ifDefined(this.label)}\n class=\"combobox-input\"\n role=\"combobox\"\n spellcheck=\"false\"\n type=\"text\"\n autocomplete=\"off\"\n .value=${inputVal}\n @focus=${this._onComboboxInputFocus}\n @blur=${this._onComboboxInputBlur}\n @input=${this._onComboboxInputInput}\n @click=${this._onComboboxInputClick}\n @keydown=${this._onComboboxInputSpaceKeyDown}\n >\n <button\n aria-label=\"Open the list of options\"\n class=\"combobox-button\"\n type=\"button\"\n @click=${this._onComboboxButtonClick}\n @keydown=${this._onComboboxButtonKeyDown}\n tabindex=\"-1\"\n >\n ${chevronDownIcon}\n </button>\n </div>\n `;\n }\n\n override render(): TemplateResult {\n return html`\n <div class=\"single-select\">\n <slot class=\"main-slot\" @slotchange=${this._onSlotChange}></slot>\n ${this.combobox ? this._renderComboboxFace() : this._renderSelectFace()}\n ${this._renderDropdown()}\n </div>\n `;\n }\n //#endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-single-select': VscodeSingleSelect;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-single-select-create-option': VscSingleSelectCreateOptionEvent;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tab-header.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-tab-header/vscode-tab-header.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAC,MAAM,KAAK,CAAC;AAGxC,QAAA,MAAM,MAAM,EAAE,cA+Fb,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"vscode-tab-header.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-tab-header/vscode-tab-header.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAC,MAAM,KAAK,CAAC;AAGxC,QAAA,MAAM,MAAM,EAAE,cAsGb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -4,23 +4,30 @@ const styles = [
4
4
  defaultStyles,
5
5
  css `
6
6
  :host {
7
- border-bottom: 1px solid transparent;
8
7
  cursor: pointer;
9
8
  display: block;
10
- margin-bottom: -1px;
9
+ user-select: none;
10
+ }
11
+
12
+ .wrapper {
13
+ align-items: center;
14
+ border-bottom: 1px solid transparent;
15
+ color: var(--vscode-foreground);
16
+ display: flex;
17
+ min-height: 20px;
11
18
  overflow: hidden;
12
19
  padding: 7px 8px;
20
+ position: relative;
13
21
  text-overflow: ellipsis;
14
- user-select: none;
15
22
  white-space: nowrap;
16
23
  }
17
24
 
18
- :host([active]) {
25
+ :host([active]) .wrapper {
19
26
  border-bottom-color: var(--vscode-panelTitle-activeForeground);
20
27
  color: var(--vscode-panelTitle-activeForeground);
21
28
  }
22
29
 
23
- :host([panel]) {
30
+ :host([panel]) .wrapper {
24
31
  border-bottom: 0;
25
32
  margin-bottom: 0;
26
33
  padding: 0;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tab-header.styles.js","sourceRoot":"","sources":["../../src/vscode-tab-header/vscode-tab-header.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AACxC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\nimport defaultStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n border-bottom: 1px solid transparent;\n cursor: pointer;\n display: block;\n margin-bottom: -1px;\n overflow: hidden;\n padding: 7px 8px;\n text-overflow: ellipsis;\n user-select: none;\n white-space: nowrap;\n }\n\n :host([active]) {\n border-bottom-color: var(--vscode-panelTitle-activeForeground);\n color: var(--vscode-panelTitle-activeForeground);\n }\n\n :host([panel]) {\n border-bottom: 0;\n margin-bottom: 0;\n padding: 0;\n }\n\n :host(:focus-visible) {\n outline: none;\n }\n\n .wrapper {\n align-items: center;\n color: var(--vscode-foreground);\n display: flex;\n min-height: 20px;\n overflow: inherit;\n text-overflow: inherit;\n position: relative;\n }\n\n .wrapper.panel {\n color: var(--vscode-panelTitle-inactiveForeground);\n }\n\n .wrapper.panel.active,\n .wrapper.panel:hover {\n color: var(--vscode-panelTitle-activeForeground);\n }\n\n :host([panel]) .wrapper {\n display: flex;\n font-size: 11px;\n height: 31px;\n padding: 2px 10px;\n text-transform: uppercase;\n }\n\n .main {\n overflow: inherit;\n text-overflow: inherit;\n }\n\n .active-indicator {\n display: none;\n }\n\n .active-indicator.panel.active {\n border-top: 1px solid var(--vscode-panelTitle-activeBorder);\n bottom: 4px;\n display: block;\n left: 8px;\n pointer-events: none;\n position: absolute;\n right: 8px;\n }\n\n :host(:focus-visible) .wrapper {\n outline-color: var(--vscode-focusBorder);\n outline-offset: 3px;\n outline-style: solid;\n outline-width: 1px;\n }\n\n :host(:focus-visible) .wrapper.panel {\n outline-offset: -2px;\n }\n\n slot[name='content-before']::slotted(vscode-badge) {\n margin-right: 8px;\n }\n\n slot[name='content-after']::slotted(vscode-badge) {\n margin-left: 8px;\n }\n `,\n];\n\nexport default styles;\n"]}
1
+ {"version":3,"file":"vscode-tab-header.styles.js","sourceRoot":"","sources":["../../src/vscode-tab-header/vscode-tab-header.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AACxC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\nimport defaultStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n cursor: pointer;\n display: block;\n user-select: none;\n }\n\n .wrapper {\n align-items: center;\n border-bottom: 1px solid transparent;\n color: var(--vscode-foreground);\n display: flex;\n min-height: 20px;\n overflow: hidden;\n padding: 7px 8px;\n position: relative;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n :host([active]) .wrapper {\n border-bottom-color: var(--vscode-panelTitle-activeForeground);\n color: var(--vscode-panelTitle-activeForeground);\n }\n\n :host([panel]) .wrapper {\n border-bottom: 0;\n margin-bottom: 0;\n padding: 0;\n }\n\n :host(:focus-visible) {\n outline: none;\n }\n\n .wrapper {\n align-items: center;\n color: var(--vscode-foreground);\n display: flex;\n min-height: 20px;\n overflow: inherit;\n text-overflow: inherit;\n position: relative;\n }\n\n .wrapper.panel {\n color: var(--vscode-panelTitle-inactiveForeground);\n }\n\n .wrapper.panel.active,\n .wrapper.panel:hover {\n color: var(--vscode-panelTitle-activeForeground);\n }\n\n :host([panel]) .wrapper {\n display: flex;\n font-size: 11px;\n height: 31px;\n padding: 2px 10px;\n text-transform: uppercase;\n }\n\n .main {\n overflow: inherit;\n text-overflow: inherit;\n }\n\n .active-indicator {\n display: none;\n }\n\n .active-indicator.panel.active {\n border-top: 1px solid var(--vscode-panelTitle-activeBorder);\n bottom: 4px;\n display: block;\n left: 8px;\n pointer-events: none;\n position: absolute;\n right: 8px;\n }\n\n :host(:focus-visible) .wrapper {\n outline-color: var(--vscode-focusBorder);\n outline-offset: 3px;\n outline-style: solid;\n outline-width: 1px;\n }\n\n :host(:focus-visible) .wrapper.panel {\n outline-offset: -2px;\n }\n\n slot[name='content-before']::slotted(vscode-badge) {\n margin-right: 8px;\n }\n\n slot[name='content-after']::slotted(vscode-badge) {\n margin-left: 8px;\n }\n `,\n];\n\nexport default styles;\n"]}
@@ -24,8 +24,6 @@ export declare class VscodeTabs extends VscElement {
24
24
  * Panel-like look
25
25
  */
26
26
  panel: boolean;
27
- /** @internal */
28
- role: string;
29
27
  selectedIndex: number;
30
28
  constructor();
31
29
  attributeChangedCallback(name: string, old: string | null, value: string | null): void;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tabs.d.ts","sourceRoot":"","sources":["../../src/vscode-tabs/vscode-tabs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAC,MAAM,KAAK,CAAC;AAIzC,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAKpE,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;GAcG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,+BAAU;IAChC;;OAEG;IAEH,KAAK,UAAS;IAEd,gBAAgB;IAEP,IAAI,SAAa;IAG1B,aAAa,SAAK;;IAOT,wBAAwB,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAcP,OAAO,CAAC,mBAAmB,CAAa;IAGxC,OAAO,CAAC,iBAAiB,CAAa;IAEtC,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,UAAU,CAAwB;IAE1C,OAAO,CAAC,YAAY,CAAM;IAE1B,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,cAAc;IAab,MAAM,IAAI,cAAc;CAalC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;IAED,UAAU,2BAA2B;QACnC,iBAAiB,EAAE,kBAAkB,CAAC;KACvC;CACF"}
1
+ {"version":3,"file":"vscode-tabs.d.ts","sourceRoot":"","sources":["../../src/vscode-tabs/vscode-tabs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAC,MAAM,KAAK,CAAC;AAIzC,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAKpE,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;GAcG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,+BAAU;IAChC;;OAEG;IAEH,KAAK,UAAS;IAGd,aAAa,SAAK;;IAOT,wBAAwB,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAcP,OAAO,CAAC,mBAAmB,CAAa;IAGxC,OAAO,CAAC,iBAAiB,CAAa;IAEtC,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,UAAU,CAAwB;IAE1C,OAAO,CAAC,YAAY,CAAM;IAE1B,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,cAAc;IAab,MAAM,IAAI,cAAc;CAmBlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;IAED,UAAU,2BAA2B;QACnC,iBAAiB,EAAE,kBAAkB,CAAC;KACvC;CACF"}
@@ -34,8 +34,6 @@ let VscodeTabs = class VscodeTabs extends VscElement {
34
34
  * Panel-like look
35
35
  */
36
36
  this.panel = false;
37
- /** @internal */
38
- this.role = 'tablist';
39
37
  this.selectedIndex = 0;
40
38
  this._tabHeaders = [];
41
39
  this._tabPanels = [];
@@ -54,13 +52,6 @@ let VscodeTabs = class VscodeTabs extends VscElement {
54
52
  }
55
53
  }
56
54
  _dispatchSelectEvent() {
57
- /** @deprecated */
58
- this.dispatchEvent(new CustomEvent('vsc-select', {
59
- detail: {
60
- selectedIndex: this.selectedIndex,
61
- },
62
- composed: true,
63
- }));
64
55
  this.dispatchEvent(new CustomEvent('vsc-tabs-select', {
65
56
  detail: {
66
57
  selectedIndex: this.selectedIndex,
@@ -154,7 +145,13 @@ let VscodeTabs = class VscodeTabs extends VscElement {
154
145
  @click=${this._onHeaderClick}
155
146
  @keydown=${this._onHeaderKeyDown}
156
147
  >
157
- <slot name="header" @slotchange=${this._onHeaderSlotChange}></slot>
148
+ <div role="tablist" class="tablist">
149
+ <slot
150
+ name="header"
151
+ @slotchange=${this._onHeaderSlotChange}
152
+ role="tablist"
153
+ ></slot>
154
+ </div>
158
155
  <slot name="addons"></slot>
159
156
  </div>
160
157
  <slot @slotchange=${this._onMainSlotChange}></slot>
@@ -165,9 +162,6 @@ VscodeTabs.styles = styles;
165
162
  __decorate([
166
163
  property({ type: Boolean, reflect: true })
167
164
  ], VscodeTabs.prototype, "panel", void 0);
168
- __decorate([
169
- property({ reflect: true })
170
- ], VscodeTabs.prototype, "role", void 0);
171
165
  __decorate([
172
166
  property({ type: Number, reflect: true, attribute: 'selected-index' })
173
167
  ], VscodeTabs.prototype, "selectedIndex", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tabs.js","sourceRoot":"","sources":["../../src/vscode-tabs/vscode-tabs.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {property, queryAssignedElements} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport uniqueId from '../includes/uniqueId.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport {VscodeTabHeader} from '../vscode-tab-header/index.js';\nimport {VscodeTabPanel} from '../vscode-tab-panel/index.js';\nimport styles from './vscode-tabs.styles.js';\n\nexport type VscTabsSelectEvent = CustomEvent<{selectedIndex: number}>;\n\n/**\n * @tag vscode-tabs\n *\n * @slot - Default slot. It is used for tab panels.\n * @slot header - Slot for tab headers.\n * @slot addons - Right aligned area in the header.\n *\n * @fires {VscTabSelectEvent} vsc-tabs-select - Dispatched when the active tab is changed\n *\n * @cssprop --vscode-font-family\n * @cssprop --vscode-font-size\n * @cssprop --vscode-font-weight\n * @cssprop --vscode-settings-headerBorder\n * @cssprop --vscode-panel-background\n */\n@customElement('vscode-tabs')\nexport class VscodeTabs extends VscElement {\n static override styles = styles;\n /**\n * Panel-like look\n */\n @property({type: Boolean, reflect: true})\n panel = false;\n\n /** @internal */\n @property({reflect: true})\n override role = 'tablist';\n\n @property({type: Number, reflect: true, attribute: 'selected-index'})\n selectedIndex = 0;\n\n constructor() {\n super();\n this._componentId = uniqueId();\n }\n\n override attributeChangedCallback(\n name: string,\n old: string | null,\n value: string | null\n ): void {\n super.attributeChangedCallback(name, old, value);\n\n if (name === 'selected-index') {\n this._setActiveTab();\n }\n\n if (name === 'panel') {\n this._tabHeaders.forEach((h) => (h.panel = value !== null));\n this._tabPanels.forEach((p) => (p.panel = value !== null));\n }\n }\n\n @queryAssignedElements({slot: 'header'})\n private _headerSlotElements!: Element[];\n\n @queryAssignedElements()\n private _mainSlotElements!: Element[];\n\n private _tabHeaders: VscodeTabHeader[] = [];\n\n private _tabPanels: VscodeTabPanel[] = [];\n\n private _componentId = '';\n\n private _tabFocus = 0;\n\n private _dispatchSelectEvent() {\n /** @deprecated */\n this.dispatchEvent(\n new CustomEvent('vsc-select', {\n detail: {\n selectedIndex: this.selectedIndex,\n },\n composed: true,\n })\n );\n\n this.dispatchEvent(\n new CustomEvent('vsc-tabs-select', {\n detail: {\n selectedIndex: this.selectedIndex,\n },\n composed: true,\n }) as VscTabsSelectEvent\n );\n }\n\n private _setActiveTab() {\n this._tabFocus = this.selectedIndex;\n\n this._tabPanels.forEach((el, i) => {\n el.hidden = i !== this.selectedIndex;\n });\n\n this._tabHeaders.forEach((el: VscodeTabHeader, i) => {\n el.active = i === this.selectedIndex;\n });\n }\n\n private _focusPrevTab() {\n if (this._tabFocus === 0) {\n this._tabFocus = this._tabHeaders.length - 1;\n } else {\n this._tabFocus -= 1;\n }\n }\n\n private _focusNextTab() {\n if (this._tabFocus === this._tabHeaders.length - 1) {\n this._tabFocus = 0;\n } else {\n this._tabFocus += 1;\n }\n }\n\n private _onHeaderKeyDown(ev: KeyboardEvent) {\n if (ev.key === 'ArrowLeft' || ev.key === 'ArrowRight') {\n ev.preventDefault();\n this._tabHeaders[this._tabFocus].setAttribute('tabindex', '-1');\n\n if (ev.key === 'ArrowLeft') {\n this._focusPrevTab();\n } else if (ev.key === 'ArrowRight') {\n this._focusNextTab();\n }\n\n this._tabHeaders[this._tabFocus].setAttribute('tabindex', '0');\n this._tabHeaders[this._tabFocus].focus();\n }\n\n if (ev.key === 'Enter') {\n ev.preventDefault();\n this.selectedIndex = this._tabFocus;\n this._dispatchSelectEvent();\n }\n }\n\n private _moveHeadersToHeaderSlot() {\n const headers = this._mainSlotElements.filter(\n (el) => el instanceof VscodeTabHeader\n ) as VscodeTabHeader[];\n\n if (headers.length > 0) {\n headers.forEach((h) => h.setAttribute('slot', 'header'));\n }\n }\n\n private _onMainSlotChange() {\n this._moveHeadersToHeaderSlot();\n\n this._tabPanels = this._mainSlotElements.filter(\n (el) => el instanceof VscodeTabPanel\n ) as VscodeTabPanel[];\n this._tabPanels.forEach((el, i) => {\n el.ariaLabelledby = `t${this._componentId}-h${i}`;\n el.id = `t${this._componentId}-p${i}`;\n el.panel = this.panel;\n });\n\n this._setActiveTab();\n }\n\n private _onHeaderSlotChange() {\n this._tabHeaders = this._headerSlotElements.filter(\n (el) => el instanceof VscodeTabHeader\n ) as VscodeTabHeader[];\n this._tabHeaders.forEach((el, i) => {\n el.tabId = i;\n el.id = `t${this._componentId}-h${i}`;\n el.ariaControls = `t${this._componentId}-p${i}`;\n el.panel = this.panel;\n el.active = i === this.selectedIndex;\n });\n }\n\n private _onHeaderClick(event: MouseEvent) {\n const path = event.composedPath();\n const headerEl = path.find(\n (et) => (et as VscodeTabHeader) instanceof VscodeTabHeader\n );\n\n if (headerEl) {\n this.selectedIndex = (headerEl as VscodeTabHeader).tabId;\n this._setActiveTab();\n this._dispatchSelectEvent();\n }\n }\n\n override render(): TemplateResult {\n return html`\n <div\n class=${classMap({header: true, panel: this.panel})}\n @click=${this._onHeaderClick}\n @keydown=${this._onHeaderKeyDown}\n >\n <slot name=\"header\" @slotchange=${this._onHeaderSlotChange}></slot>\n <slot name=\"addons\"></slot>\n </div>\n <slot @slotchange=${this._onMainSlotChange}></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-tabs': VscodeTabs;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-tabs-select': VscTabsSelectEvent;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-tabs.js","sourceRoot":"","sources":["../../src/vscode-tabs/vscode-tabs.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {property, queryAssignedElements} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport uniqueId from '../includes/uniqueId.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport {VscodeTabHeader} from '../vscode-tab-header/index.js';\nimport {VscodeTabPanel} from '../vscode-tab-panel/index.js';\nimport styles from './vscode-tabs.styles.js';\n\nexport type VscTabsSelectEvent = CustomEvent<{selectedIndex: number}>;\n\n/**\n * @tag vscode-tabs\n *\n * @slot - Default slot. It is used for tab panels.\n * @slot header - Slot for tab headers.\n * @slot addons - Right aligned area in the header.\n *\n * @fires {VscTabSelectEvent} vsc-tabs-select - Dispatched when the active tab is changed\n *\n * @cssprop --vscode-font-family\n * @cssprop --vscode-font-size\n * @cssprop --vscode-font-weight\n * @cssprop --vscode-settings-headerBorder\n * @cssprop --vscode-panel-background\n */\n@customElement('vscode-tabs')\nexport class VscodeTabs extends VscElement {\n static override styles = styles;\n /**\n * Panel-like look\n */\n @property({type: Boolean, reflect: true})\n panel = false;\n\n @property({type: Number, reflect: true, attribute: 'selected-index'})\n selectedIndex = 0;\n\n constructor() {\n super();\n this._componentId = uniqueId();\n }\n\n override attributeChangedCallback(\n name: string,\n old: string | null,\n value: string | null\n ): void {\n super.attributeChangedCallback(name, old, value);\n\n if (name === 'selected-index') {\n this._setActiveTab();\n }\n\n if (name === 'panel') {\n this._tabHeaders.forEach((h) => (h.panel = value !== null));\n this._tabPanels.forEach((p) => (p.panel = value !== null));\n }\n }\n\n @queryAssignedElements({slot: 'header'})\n private _headerSlotElements!: Element[];\n\n @queryAssignedElements()\n private _mainSlotElements!: Element[];\n\n private _tabHeaders: VscodeTabHeader[] = [];\n\n private _tabPanels: VscodeTabPanel[] = [];\n\n private _componentId = '';\n\n private _tabFocus = 0;\n\n private _dispatchSelectEvent() {\n this.dispatchEvent(\n new CustomEvent('vsc-tabs-select', {\n detail: {\n selectedIndex: this.selectedIndex,\n },\n composed: true,\n }) as VscTabsSelectEvent\n );\n }\n\n private _setActiveTab() {\n this._tabFocus = this.selectedIndex;\n\n this._tabPanels.forEach((el, i) => {\n el.hidden = i !== this.selectedIndex;\n });\n\n this._tabHeaders.forEach((el: VscodeTabHeader, i) => {\n el.active = i === this.selectedIndex;\n });\n }\n\n private _focusPrevTab() {\n if (this._tabFocus === 0) {\n this._tabFocus = this._tabHeaders.length - 1;\n } else {\n this._tabFocus -= 1;\n }\n }\n\n private _focusNextTab() {\n if (this._tabFocus === this._tabHeaders.length - 1) {\n this._tabFocus = 0;\n } else {\n this._tabFocus += 1;\n }\n }\n\n private _onHeaderKeyDown(ev: KeyboardEvent) {\n if (ev.key === 'ArrowLeft' || ev.key === 'ArrowRight') {\n ev.preventDefault();\n this._tabHeaders[this._tabFocus].setAttribute('tabindex', '-1');\n\n if (ev.key === 'ArrowLeft') {\n this._focusPrevTab();\n } else if (ev.key === 'ArrowRight') {\n this._focusNextTab();\n }\n\n this._tabHeaders[this._tabFocus].setAttribute('tabindex', '0');\n this._tabHeaders[this._tabFocus].focus();\n }\n\n if (ev.key === 'Enter') {\n ev.preventDefault();\n this.selectedIndex = this._tabFocus;\n this._dispatchSelectEvent();\n }\n }\n\n private _moveHeadersToHeaderSlot() {\n const headers = this._mainSlotElements.filter(\n (el) => el instanceof VscodeTabHeader\n ) as VscodeTabHeader[];\n\n if (headers.length > 0) {\n headers.forEach((h) => h.setAttribute('slot', 'header'));\n }\n }\n\n private _onMainSlotChange() {\n this._moveHeadersToHeaderSlot();\n\n this._tabPanels = this._mainSlotElements.filter(\n (el) => el instanceof VscodeTabPanel\n ) as VscodeTabPanel[];\n this._tabPanels.forEach((el, i) => {\n el.ariaLabelledby = `t${this._componentId}-h${i}`;\n el.id = `t${this._componentId}-p${i}`;\n el.panel = this.panel;\n });\n\n this._setActiveTab();\n }\n\n private _onHeaderSlotChange() {\n this._tabHeaders = this._headerSlotElements.filter(\n (el) => el instanceof VscodeTabHeader\n ) as VscodeTabHeader[];\n this._tabHeaders.forEach((el, i) => {\n el.tabId = i;\n el.id = `t${this._componentId}-h${i}`;\n el.ariaControls = `t${this._componentId}-p${i}`;\n el.panel = this.panel;\n el.active = i === this.selectedIndex;\n });\n }\n\n private _onHeaderClick(event: MouseEvent) {\n const path = event.composedPath();\n const headerEl = path.find(\n (et) => (et as VscodeTabHeader) instanceof VscodeTabHeader\n );\n\n if (headerEl) {\n this.selectedIndex = (headerEl as VscodeTabHeader).tabId;\n this._setActiveTab();\n this._dispatchSelectEvent();\n }\n }\n\n override render(): TemplateResult {\n return html`\n <div\n class=${classMap({header: true, panel: this.panel})}\n @click=${this._onHeaderClick}\n @keydown=${this._onHeaderKeyDown}\n >\n <div role=\"tablist\" class=\"tablist\">\n <slot\n name=\"header\"\n @slotchange=${this._onHeaderSlotChange}\n role=\"tablist\"\n ></slot>\n </div>\n <slot name=\"addons\"></slot>\n </div>\n <slot @slotchange=${this._onMainSlotChange}></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-tabs': VscodeTabs;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-tabs-select': VscTabsSelectEvent;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tabs.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-tabs/vscode-tabs.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAC,MAAM,KAAK,CAAC;AAGxC,QAAA,MAAM,MAAM,EAAE,cAmCb,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"vscode-tabs.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-tabs/vscode-tabs.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAC,MAAM,KAAK,CAAC;AAGxC,QAAA,MAAM,MAAM,EAAE,cAwCb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -30,6 +30,11 @@ const styles = [
30
30
  padding-right: 8px;
31
31
  }
32
32
 
33
+ .tablist {
34
+ display: flex;
35
+ margin-bottom: -1px;
36
+ }
37
+
33
38
  slot[name='addons'] {
34
39
  display: block;
35
40
  margin-left: auto;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tabs.styles.js","sourceRoot":"","sources":["../../src/vscode-tabs/vscode-tabs.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AACxC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\nimport defaultStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n display: block;\n }\n\n .header {\n align-items: center;\n display: flex;\n font-family: var(--vscode-font-family);\n font-size: var(--vscode-font-size);\n font-weight: var(--vscode-font-weight);\n width: 100%;\n }\n\n .header {\n border-bottom-color: var(--vscode-settings-headerBorder);\n border-bottom-style: solid;\n border-bottom-width: 1px;\n }\n\n .header.panel {\n background-color: var(--vscode-panel-background);\n border-bottom-width: 0;\n box-sizing: border-box;\n padding-left: 8px;\n padding-right: 8px;\n }\n\n slot[name='addons'] {\n display: block;\n margin-left: auto;\n }\n `,\n];\n\nexport default styles;\n"]}
1
+ {"version":3,"file":"vscode-tabs.styles.js","sourceRoot":"","sources":["../../src/vscode-tabs/vscode-tabs.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AACxC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\nimport defaultStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n display: block;\n }\n\n .header {\n align-items: center;\n display: flex;\n font-family: var(--vscode-font-family);\n font-size: var(--vscode-font-size);\n font-weight: var(--vscode-font-weight);\n width: 100%;\n }\n\n .header {\n border-bottom-color: var(--vscode-settings-headerBorder);\n border-bottom-style: solid;\n border-bottom-width: 1px;\n }\n\n .header.panel {\n background-color: var(--vscode-panel-background);\n border-bottom-width: 0;\n box-sizing: border-box;\n padding-left: 8px;\n padding-right: 8px;\n }\n\n .tablist {\n display: flex;\n margin-bottom: -1px;\n }\n\n slot[name='addons'] {\n display: block;\n margin-left: auto;\n }\n `,\n];\n\nexport default styles;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-textarea.d.ts","sourceRoot":"","sources":["../../src/vscode-textarea/vscode-textarea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,cAAc,EAAE,cAAc,EAAC,MAAM,KAAK,CAAC;AAIrE,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;AAG3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBACa,cACX,SAAQ,UACR,YAAW,qBAAqB;IAEhC,OAAgB,MAAM,+BAAU;IAEhC;;OAEG;IACH,MAAM,CAAC,cAAc,UAAQ;IAE7B,gBAAgB;IAChB,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAIF,YAAY,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS,CAAa;IAG1C,SAAS,UAAS;IAG3B,YAAY,SAAM;IAGlB,QAAQ,UAAS;IAGjB,OAAO,UAAS;IAGhB,KAAK,SAAM;IAGX,SAAS,EAAE,MAAM,GAAG,SAAS,CAAa;IAG1C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAa;IAG1C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAGrC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAGrC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAGrC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAa;IAG5C,QAAQ,UAAS;IAGjB,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAU;IAG7D,QAAQ,UAAS;IAGR,UAAU,UAAS;IAE5B;;;OAGG;IAEH,SAAS,UAAS;IAElB,IACI,KAAK,CAAC,GAAG,EAAE,MAAM,EAGpB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,mBAAmB,CAExC;IAED,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED,gBAAgB;IAChB,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,YAAY,YAEf;IAED;;OAEG;IACH,IAAI,SAAS,CAAC,GAAG,EAAE,MAAM,EAExB;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED;;OAEG;IACH,IAAI,SAAS,CAAC,GAAG,EAAE,MAAM,EAExB;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;;IAQQ,iBAAiB,IAAI,IAAI;IAUzB,OAAO,CACd,iBAAiB,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GACrE,IAAI;IAaP,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;IAIzB,gBAAgB;IAChB,wBAAwB,CACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,GAAG,cAAc,GAChC,IAAI;IAMP,aAAa,IAAI,OAAO;IAIxB,cAAc,IAAI,OAAO;IAKzB,OAAO,CAAC,WAAW,CAAuB;IAG1C,OAAO,CAAC,MAAM,CAAM;IAGpB,OAAO,CAAC,sBAAsB,CAAS;IAGvC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,aAAa;IAIZ,MAAM,IAAI,cAAc;CAsClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,cAAc,CAAC;KACnC;CACF"}
1
+ {"version":3,"file":"vscode-textarea.d.ts","sourceRoot":"","sources":["../../src/vscode-textarea/vscode-textarea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,cAAc,EAAE,cAAc,EAAC,MAAM,KAAK,CAAC;AAIrE,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;AAG3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBACa,cACX,SAAQ,UACR,YAAW,qBAAqB;IAEhC,OAAgB,MAAM,+BAAU;IAEhC;;OAEG;IACH,MAAM,CAAC,cAAc,UAAQ;IAE7B,gBAAgB;IAChB,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAIF,YAAY,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS,CAAa;IAG1C,SAAS,UAAS;IAG3B,YAAY,SAAM;IAGlB,QAAQ,UAAS;IAGjB,OAAO,UAAS;IAGhB,KAAK,SAAM;IAGX,SAAS,EAAE,MAAM,GAAG,SAAS,CAAa;IAG1C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAa;IAG1C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAGrC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAGrC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAGrC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAa;IAG5C,QAAQ,UAAS;IAGjB,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAU;IAG7D,QAAQ,UAAS;IAGR,UAAU,UAAS;IAE5B;;;OAGG;IAEH,SAAS,UAAS;IAElB,IACI,KAAK,CAAC,GAAG,EAAE,MAAM,EAGpB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,mBAAmB,CAExC;IAED,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED,gBAAgB;IAChB,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,YAAY,YAEf;IAED;;OAEG;IACH,IAAI,SAAS,CAAC,GAAG,EAAE,MAAM,EAExB;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED;;OAEG;IACH,IAAI,SAAS,CAAC,GAAG,EAAE,MAAM,EAExB;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;;IAQQ,iBAAiB,IAAI,IAAI;IAUzB,OAAO,CACd,iBAAiB,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GACrE,IAAI;IAaP,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;IAIzB,gBAAgB;IAChB,wBAAwB,CACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,GAAG,cAAc,GAChC,IAAI;IAMP,aAAa,IAAI,OAAO;IAIxB,cAAc,IAAI,OAAO;IAKzB,OAAO,CAAC,WAAW,CAAuB;IAG1C,OAAO,CAAC,MAAM,CAAM;IAGpB,OAAO,CAAC,sBAAsB,CAAS;IAGvC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,aAAa;IAIZ,MAAM,IAAI,cAAc;CAsClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,cAAc,CAAC;KACnC;CACF"}
@@ -161,22 +161,14 @@ let VscodeTextarea = class VscodeTextarea extends VscElement {
161
161
  this._value = this._textareaEl.value;
162
162
  this._internals.setFormValue(this._textareaEl.value);
163
163
  }
164
- _handleChange(ev) {
164
+ _handleChange() {
165
165
  this._dataChanged();
166
166
  this._setValidityFromInput();
167
167
  this.dispatchEvent(new Event('change'));
168
- /** @deprecated */
169
- this.dispatchEvent(new CustomEvent('vsc-change', {
170
- detail: { data: this.value, originalEvent: ev },
171
- }));
172
168
  }
173
- _handleInput(ev) {
169
+ _handleInput() {
174
170
  this._dataChanged();
175
171
  this._setValidityFromInput();
176
- /** @deprecated */
177
- this.dispatchEvent(new CustomEvent('vsc-input', {
178
- detail: { data: ev.data, originalEvent: ev },
179
- }));
180
172
  }
181
173
  _handleMouseMove(ev) {
182
174
  if (this._textareaEl.clientHeight >= this._textareaEl.scrollHeight) {
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-textarea.js","sourceRoot":"","sources":["../../src/vscode-textarea/vscode-textarea.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, LitElement, TemplateResult, PropertyValues} from 'lit';\nimport {property, query, state} from 'lit/decorators.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport {stylePropertyMap} from '../includes/style-property-map.js';\nimport {AssociatedFormControl} from '../includes/AssociatedFormControl.js';\nimport styles from './vscode-textarea.styles.js';\n\n/**\n * Multi-line text input.\n *\n * When participating in a form, it supports the `:invalid` pseudo class. Otherwise the error styles\n * can be applied through the `invalid` property.\n *\n * @tag vscode-textarea\n *\n * @fires {InputEvent} input\n * @fires {Event} change\n *\n * @cssprop [--vscode-scrollbar-shadow=#000000]\n * @cssprop [--vscode-settings-textInputBackground=#313131]\n * @cssprop [--vscode-settings-textInputBorder=transparent]\n * @cssprop [--vscode-settings-textInputForeground=#cccccc]\n * @cssprop [--vscode-input-placeholderForeground=#989898]\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-font-weight=normal]\n * @cssprop [--vscode-editor-background=#1f1f1f]\n * @cssprop [--vscode-editor-foreground=#cccccc]\n * @cssprop [--vscode-editor-font-family=monospace]\n * @cssprop [--vscode-editor-font-size=14px]\n * @cssprop [--vscode-editor-font-weight=normal]\n * @cssprop [--vscode-editor-inlineValuesForeground=rgba(255, 255, 255, 0.5)]\n * @cssprop [--vscode-focusBorder=#0078d4]\n * @cssprop [--vscode-scrollbarSlider-background=rgba(121, 121, 121, 0.4)]\n * @cssprop [--vscode-scrollbarSlider-hoverBackground=rgba(100, 100, 100, 0.7)]\n * @cssprop [--vscode-scrollbarSlider-activeBackground=rgba(191, 191, 191, 0.4)]\n */\n@customElement('vscode-textarea')\nexport class VscodeTextarea\n extends VscElement\n implements AssociatedFormControl\n{\n static override styles = styles;\n\n /**\n * @internal\n */\n static formAssociated = true;\n\n /** @internal */\n static override shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n // #region properties, setters/getters\n @property()\n autocomplete: 'on' | 'off' | undefined = undefined;\n\n @property({type: Boolean, reflect: true})\n override autofocus = false;\n\n @property({attribute: 'default-value'})\n defaultValue = '';\n\n @property({type: Boolean, reflect: true})\n disabled = false;\n\n @property({type: Boolean, reflect: true})\n invalid = false;\n\n @property({attribute: false})\n label = '';\n\n @property({type: Number})\n maxLength: number | undefined = undefined;\n\n @property({type: Number})\n minLength: number | undefined = undefined;\n\n @property({type: Number})\n rows: number | undefined = undefined;\n\n @property({type: Number})\n cols: number | undefined = undefined;\n\n @property()\n name: string | undefined = undefined;\n\n @property()\n placeholder: string | undefined = undefined;\n\n @property({type: Boolean, reflect: true})\n readonly = false;\n\n @property()\n resize: 'both' | 'horizontal' | 'vertical' | 'none' = 'none';\n\n @property({type: Boolean, reflect: true})\n required = false;\n\n @property({type: Boolean})\n override spellcheck = false;\n\n /**\n * Use monospace fonts. The font family, weight, size, and color will be the same as set in the\n * VSCode code editor.\n */\n @property({type: Boolean, reflect: true})\n monospace = false;\n\n @property()\n set value(val: string) {\n this._value = val;\n this._internals.setFormValue(val);\n }\n\n get value(): string {\n return this._value;\n }\n\n /**\n * Getter for the inner textarea element if it needs to be accessed for some reason.\n */\n get wrappedElement(): HTMLTextAreaElement {\n return this._textareaEl;\n }\n\n get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /** @internal */\n get type(): 'textarea' {\n return 'textarea';\n }\n\n get validity(): ValidityState {\n return this._internals.validity;\n }\n\n get validationMessage() {\n return this._internals.validationMessage;\n }\n\n get willValidate() {\n return this._internals.willValidate;\n }\n\n /**\n * Lowercase alias to minLength\n */\n set minlength(val: number) {\n this.minLength = val;\n }\n\n get minlength(): number | undefined {\n return this.minLength;\n }\n\n /**\n * Lowercase alias to maxLength\n */\n set maxlength(val: number) {\n this.maxLength = val;\n }\n\n get maxlength(): number | undefined {\n return this.maxLength;\n }\n // #endregion\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.updateComplete.then(() => {\n this._textareaEl.checkValidity();\n this._setValidityFromInput();\n this._internals.setFormValue(this._textareaEl.value);\n });\n }\n\n override updated(\n changedProperties: PropertyValues<unknown> | Map<PropertyKey, unknown>\n ): void {\n const validationRelatedProps = ['maxLength', 'minLength', 'required'];\n\n for (const key of changedProperties.keys()) {\n if (validationRelatedProps.includes(String(key))) {\n this.updateComplete.then(() => {\n this._setValidityFromInput();\n });\n break;\n }\n }\n }\n\n /** @internal */\n formResetCallback(): void {\n this.value = this.defaultValue;\n }\n\n /** @internal */\n formStateRestoreCallback(\n state: string,\n _mode: 'restore' | 'autocomplete'\n ): void {\n this.updateComplete.then(() => {\n this._value = state;\n });\n }\n\n checkValidity(): boolean {\n return this._internals.checkValidity();\n }\n\n reportValidity(): boolean {\n return this._internals.reportValidity();\n }\n\n @query('#textarea')\n private _textareaEl!: HTMLTextAreaElement;\n\n @state()\n private _value = '';\n\n @state()\n private _textareaPointerCursor = false;\n\n @state()\n private _shadow = false;\n\n private _internals: ElementInternals;\n\n private _setValidityFromInput() {\n this._internals.setValidity(\n this._textareaEl.validity,\n this._textareaEl.validationMessage,\n this._textareaEl\n );\n }\n\n private _dataChanged() {\n this._value = this._textareaEl.value;\n this._internals.setFormValue(this._textareaEl.value);\n }\n\n private _handleChange(ev: Event) {\n this._dataChanged();\n this._setValidityFromInput();\n this.dispatchEvent(new Event('change'));\n /** @deprecated */\n this.dispatchEvent(\n new CustomEvent('vsc-change', {\n detail: {data: this.value, originalEvent: ev},\n })\n );\n }\n\n private _handleInput(ev: InputEvent) {\n this._dataChanged();\n this._setValidityFromInput();\n /** @deprecated */\n this.dispatchEvent(\n new CustomEvent('vsc-input', {\n detail: {data: ev.data, originalEvent: ev},\n })\n );\n }\n\n private _handleMouseMove(ev: MouseEvent) {\n if (this._textareaEl.clientHeight >= this._textareaEl.scrollHeight) {\n this._textareaPointerCursor = false;\n return;\n }\n\n const SCROLLBAR_WIDTH = 14;\n const BORDER_WIDTH = 1;\n const br = this._textareaEl.getBoundingClientRect();\n const x = ev.clientX;\n\n this._textareaPointerCursor =\n x >= br.left + br.width - SCROLLBAR_WIDTH - BORDER_WIDTH * 2;\n }\n\n private _handleScroll() {\n this._shadow = this._textareaEl.scrollTop > 0;\n }\n\n override render(): TemplateResult {\n return html`\n <div\n class=${classMap({\n shadow: true,\n visible: this._shadow,\n })}\n ></div>\n <textarea\n autocomplete=${ifDefined(this.autocomplete)}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n aria-label=${this.label}\n id=\"textarea\"\n class=${classMap({\n monospace: this.monospace,\n 'cursor-pointer': this._textareaPointerCursor,\n })}\n maxlength=${ifDefined(this.maxLength)}\n minlength=${ifDefined(this.minLength)}\n rows=${ifDefined(this.rows)}\n cols=${ifDefined(this.cols)}\n name=${ifDefined(this.name)}\n placeholder=${ifDefined(this.placeholder)}\n ?readonly=${this.readonly}\n .style=${stylePropertyMap({\n resize: this.resize,\n })}\n ?required=${this.required}\n spellcheck=${this.spellcheck}\n @change=${this._handleChange}\n @input=${this._handleInput}\n @mousemove=${this._handleMouseMove}\n @scroll=${this._handleScroll}\n .value=${this._value}\n ></textarea>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-textarea': VscodeTextarea;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-textarea.js","sourceRoot":"","sources":["../../src/vscode-textarea/vscode-textarea.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAE,UAAU,EAAiC,MAAM,KAAK,CAAC;AACrE,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAC,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AAEnE,OAAO,MAAM,MAAM,6BAA6B,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEI,IAAM,cAAc,GAApB,MAAM,cACX,SAAQ,UAAU;IAyElB,IAAI,KAAK,CAAC,GAAW;QACnB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,gBAAgB;IAChB,IAAI,IAAI;QACN,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;IAC3C,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS,CAAC,GAAW;QACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACvB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS,CAAC,GAAW;QACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACvB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,aAAa;IAEb;QACE,KAAK,EAAE,CAAC;QAtHV,sCAAsC;QAEtC,iBAAY,GAA6B,SAAS,CAAC;QAG1C,cAAS,GAAG,KAAK,CAAC;QAG3B,iBAAY,GAAG,EAAE,CAAC;QAGlB,aAAQ,GAAG,KAAK,CAAC;QAGjB,YAAO,GAAG,KAAK,CAAC;QAGhB,UAAK,GAAG,EAAE,CAAC;QAGX,cAAS,GAAuB,SAAS,CAAC;QAG1C,cAAS,GAAuB,SAAS,CAAC;QAG1C,SAAI,GAAuB,SAAS,CAAC;QAGrC,SAAI,GAAuB,SAAS,CAAC;QAGrC,SAAI,GAAuB,SAAS,CAAC;QAGrC,gBAAW,GAAuB,SAAS,CAAC;QAG5C,aAAQ,GAAG,KAAK,CAAC;QAGjB,WAAM,GAAgD,MAAM,CAAC;QAG7D,aAAQ,GAAG,KAAK,CAAC;QAGR,eAAU,GAAG,KAAK,CAAC;QAE5B;;;WAGG;QAEH,cAAS,GAAG,KAAK,CAAC;QAwHV,WAAM,GAAG,EAAE,CAAC;QAGZ,2BAAsB,GAAG,KAAK,CAAC;QAG/B,YAAO,GAAG,KAAK,CAAC;QA7DtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3C,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAEQ,OAAO,CACd,iBAAsE;QAEtE,MAAM,sBAAsB,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAEtE,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;oBAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,iBAAiB;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;IACjC,CAAC;IAED,gBAAgB;IAChB,wBAAwB,CACtB,KAAa,EACb,KAAiC;QAEjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;IAC1C,CAAC;IAgBO,qBAAqB;QAC3B,IAAI,CAAC,UAAU,CAAC,WAAW,CACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,EACzB,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAClC,IAAI,CAAC,WAAW,CACjB,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,gBAAgB,CAAC,EAAc;QACrC,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YACnE,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpC,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;QACpD,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;QAErB,IAAI,CAAC,sBAAsB;YACzB,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,eAAe,GAAG,YAAY,GAAG,CAAC,CAAC;IACjE,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;IAChD,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;;gBAEC,QAAQ,CAAC;YACf,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;;;uBAGa,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;qBAC9B,IAAI,CAAC,SAAS;oBACf,IAAI,CAAC,QAAQ;qBACZ,IAAI,CAAC,KAAK;;gBAEf,QAAQ,CAAC;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,gBAAgB,EAAE,IAAI,CAAC,sBAAsB;SAC9C,CAAC;oBACU,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;oBACzB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;eAC9B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;eACpB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;eACpB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;sBACb,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC7B,IAAI,CAAC,QAAQ;iBAChB,gBAAgB,CAAC;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;oBACU,IAAI,CAAC,QAAQ;qBACZ,IAAI,CAAC,UAAU;kBAClB,IAAI,CAAC,aAAa;iBACnB,IAAI,CAAC,YAAY;qBACb,IAAI,CAAC,gBAAgB;kBACxB,IAAI,CAAC,aAAa;iBACnB,IAAI,CAAC,MAAM;;KAEvB,CAAC;IACJ,CAAC;;AArRe,qBAAM,GAAG,MAAM,AAAT,CAAU;AAEhC;;GAEG;AACI,6BAAc,GAAG,IAAI,AAAP,CAAQ;AAE7B,gBAAgB;AACA,gCAAiB,GAAmB;IAClD,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHgC,CAG/B;AAIF;IADC,QAAQ,EAAE;oDACwC;AAG1C;IADR,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;iDACd;AAG3B;IADC,QAAQ,CAAC,EAAC,SAAS,EAAE,eAAe,EAAC,CAAC;oDACrB;AAGlB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;gDACxB;AAGjB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;+CACzB;AAGhB;IADC,QAAQ,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;6CAClB;AAGX;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;iDACiB;AAG1C;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;iDACiB;AAG1C;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;4CACY;AAGrC;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;4CACY;AAGrC;IADC,QAAQ,EAAE;4CAC0B;AAGrC;IADC,QAAQ,EAAE;mDACiC;AAG5C;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;gDACxB;AAGjB;IADC,QAAQ,EAAE;8CACkD;AAG7D;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;gDACxB;AAGR;IADR,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;kDACE;AAO5B;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;iDACvB;AAGlB;IADC,QAAQ,EAAE;2CAIV;AA+GO;IADP,KAAK,CAAC,WAAW,CAAC;mDACuB;AAGlC;IADP,KAAK,EAAE;8CACY;AAGZ;IADP,KAAK,EAAE;8DAC+B;AAG/B;IADP,KAAK,EAAE;+CACgB;AArMb,cAAc;IAD1B,aAAa,CAAC,iBAAiB,CAAC;GACpB,cAAc,CA0R1B","sourcesContent":["import {html, LitElement, TemplateResult, PropertyValues} from 'lit';\nimport {property, query, state} from 'lit/decorators.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport {stylePropertyMap} from '../includes/style-property-map.js';\nimport {AssociatedFormControl} from '../includes/AssociatedFormControl.js';\nimport styles from './vscode-textarea.styles.js';\n\n/**\n * Multi-line text input.\n *\n * When participating in a form, it supports the `:invalid` pseudo class. Otherwise the error styles\n * can be applied through the `invalid` property.\n *\n * @tag vscode-textarea\n *\n * @fires {InputEvent} input\n * @fires {Event} change\n *\n * @cssprop [--vscode-scrollbar-shadow=#000000]\n * @cssprop [--vscode-settings-textInputBackground=#313131]\n * @cssprop [--vscode-settings-textInputBorder=transparent]\n * @cssprop [--vscode-settings-textInputForeground=#cccccc]\n * @cssprop [--vscode-input-placeholderForeground=#989898]\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-font-weight=normal]\n * @cssprop [--vscode-editor-background=#1f1f1f]\n * @cssprop [--vscode-editor-foreground=#cccccc]\n * @cssprop [--vscode-editor-font-family=monospace]\n * @cssprop [--vscode-editor-font-size=14px]\n * @cssprop [--vscode-editor-font-weight=normal]\n * @cssprop [--vscode-editor-inlineValuesForeground=rgba(255, 255, 255, 0.5)]\n * @cssprop [--vscode-focusBorder=#0078d4]\n * @cssprop [--vscode-scrollbarSlider-background=rgba(121, 121, 121, 0.4)]\n * @cssprop [--vscode-scrollbarSlider-hoverBackground=rgba(100, 100, 100, 0.7)]\n * @cssprop [--vscode-scrollbarSlider-activeBackground=rgba(191, 191, 191, 0.4)]\n */\n@customElement('vscode-textarea')\nexport class VscodeTextarea\n extends VscElement\n implements AssociatedFormControl\n{\n static override styles = styles;\n\n /**\n * @internal\n */\n static formAssociated = true;\n\n /** @internal */\n static override shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n // #region properties, setters/getters\n @property()\n autocomplete: 'on' | 'off' | undefined = undefined;\n\n @property({type: Boolean, reflect: true})\n override autofocus = false;\n\n @property({attribute: 'default-value'})\n defaultValue = '';\n\n @property({type: Boolean, reflect: true})\n disabled = false;\n\n @property({type: Boolean, reflect: true})\n invalid = false;\n\n @property({attribute: false})\n label = '';\n\n @property({type: Number})\n maxLength: number | undefined = undefined;\n\n @property({type: Number})\n minLength: number | undefined = undefined;\n\n @property({type: Number})\n rows: number | undefined = undefined;\n\n @property({type: Number})\n cols: number | undefined = undefined;\n\n @property()\n name: string | undefined = undefined;\n\n @property()\n placeholder: string | undefined = undefined;\n\n @property({type: Boolean, reflect: true})\n readonly = false;\n\n @property()\n resize: 'both' | 'horizontal' | 'vertical' | 'none' = 'none';\n\n @property({type: Boolean, reflect: true})\n required = false;\n\n @property({type: Boolean})\n override spellcheck = false;\n\n /**\n * Use monospace fonts. The font family, weight, size, and color will be the same as set in the\n * VSCode code editor.\n */\n @property({type: Boolean, reflect: true})\n monospace = false;\n\n @property()\n set value(val: string) {\n this._value = val;\n this._internals.setFormValue(val);\n }\n\n get value(): string {\n return this._value;\n }\n\n /**\n * Getter for the inner textarea element if it needs to be accessed for some reason.\n */\n get wrappedElement(): HTMLTextAreaElement {\n return this._textareaEl;\n }\n\n get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /** @internal */\n get type(): 'textarea' {\n return 'textarea';\n }\n\n get validity(): ValidityState {\n return this._internals.validity;\n }\n\n get validationMessage() {\n return this._internals.validationMessage;\n }\n\n get willValidate() {\n return this._internals.willValidate;\n }\n\n /**\n * Lowercase alias to minLength\n */\n set minlength(val: number) {\n this.minLength = val;\n }\n\n get minlength(): number | undefined {\n return this.minLength;\n }\n\n /**\n * Lowercase alias to maxLength\n */\n set maxlength(val: number) {\n this.maxLength = val;\n }\n\n get maxlength(): number | undefined {\n return this.maxLength;\n }\n // #endregion\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.updateComplete.then(() => {\n this._textareaEl.checkValidity();\n this._setValidityFromInput();\n this._internals.setFormValue(this._textareaEl.value);\n });\n }\n\n override updated(\n changedProperties: PropertyValues<unknown> | Map<PropertyKey, unknown>\n ): void {\n const validationRelatedProps = ['maxLength', 'minLength', 'required'];\n\n for (const key of changedProperties.keys()) {\n if (validationRelatedProps.includes(String(key))) {\n this.updateComplete.then(() => {\n this._setValidityFromInput();\n });\n break;\n }\n }\n }\n\n /** @internal */\n formResetCallback(): void {\n this.value = this.defaultValue;\n }\n\n /** @internal */\n formStateRestoreCallback(\n state: string,\n _mode: 'restore' | 'autocomplete'\n ): void {\n this.updateComplete.then(() => {\n this._value = state;\n });\n }\n\n checkValidity(): boolean {\n return this._internals.checkValidity();\n }\n\n reportValidity(): boolean {\n return this._internals.reportValidity();\n }\n\n @query('#textarea')\n private _textareaEl!: HTMLTextAreaElement;\n\n @state()\n private _value = '';\n\n @state()\n private _textareaPointerCursor = false;\n\n @state()\n private _shadow = false;\n\n private _internals: ElementInternals;\n\n private _setValidityFromInput() {\n this._internals.setValidity(\n this._textareaEl.validity,\n this._textareaEl.validationMessage,\n this._textareaEl\n );\n }\n\n private _dataChanged() {\n this._value = this._textareaEl.value;\n this._internals.setFormValue(this._textareaEl.value);\n }\n\n private _handleChange() {\n this._dataChanged();\n this._setValidityFromInput();\n this.dispatchEvent(new Event('change'));\n }\n\n private _handleInput() {\n this._dataChanged();\n this._setValidityFromInput();\n }\n\n private _handleMouseMove(ev: MouseEvent) {\n if (this._textareaEl.clientHeight >= this._textareaEl.scrollHeight) {\n this._textareaPointerCursor = false;\n return;\n }\n\n const SCROLLBAR_WIDTH = 14;\n const BORDER_WIDTH = 1;\n const br = this._textareaEl.getBoundingClientRect();\n const x = ev.clientX;\n\n this._textareaPointerCursor =\n x >= br.left + br.width - SCROLLBAR_WIDTH - BORDER_WIDTH * 2;\n }\n\n private _handleScroll() {\n this._shadow = this._textareaEl.scrollTop > 0;\n }\n\n override render(): TemplateResult {\n return html`\n <div\n class=${classMap({\n shadow: true,\n visible: this._shadow,\n })}\n ></div>\n <textarea\n autocomplete=${ifDefined(this.autocomplete)}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n aria-label=${this.label}\n id=\"textarea\"\n class=${classMap({\n monospace: this.monospace,\n 'cursor-pointer': this._textareaPointerCursor,\n })}\n maxlength=${ifDefined(this.maxLength)}\n minlength=${ifDefined(this.minLength)}\n rows=${ifDefined(this.rows)}\n cols=${ifDefined(this.cols)}\n name=${ifDefined(this.name)}\n placeholder=${ifDefined(this.placeholder)}\n ?readonly=${this.readonly}\n .style=${stylePropertyMap({\n resize: this.resize,\n })}\n ?required=${this.required}\n spellcheck=${this.spellcheck}\n @change=${this._handleChange}\n @input=${this._handleInput}\n @mousemove=${this._handleMouseMove}\n @scroll=${this._handleScroll}\n .value=${this._value}\n ></textarea>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-textarea': VscodeTextarea;\n }\n}\n"]}
@@ -5,7 +5,7 @@ const styles = [
5
5
  css `
6
6
  :host {
7
7
  display: inline-block;
8
- height: 40px;
8
+ height: auto;
9
9
  position: relative;
10
10
  width: 320px;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-textarea.styles.js","sourceRoot":"","sources":["../../src/vscode-textarea/vscode-textarea.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AACxC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmIF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\nimport defaultStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n display: inline-block;\n height: 40px;\n position: relative;\n width: 320px;\n }\n\n :host([cols]) {\n width: auto;\n }\n\n :host([rows]) {\n height: auto;\n }\n\n .shadow {\n box-shadow: var(--vscode-scrollbar-shadow, #000000) 0 6px 6px -6px inset;\n display: none;\n inset: 0 0 auto 0;\n height: 6px;\n pointer-events: none;\n position: absolute;\n width: 100%;\n }\n\n .shadow.visible {\n display: block;\n }\n\n textarea {\n background-color: var(--vscode-settings-textInputBackground, #313131);\n border-color: var(--vscode-settings-textInputBorder, transparent);\n border-radius: 2px;\n border-style: solid;\n border-width: 1px;\n box-sizing: border-box;\n color: var(--vscode-settings-textInputForeground, #cccccc);\n display: block;\n font-family: var(--vscode-font-family, sans-serif);\n font-size: var(--vscode-font-size, 13px);\n font-weight: var(--vscode-font-weight, normal);\n height: 100%;\n width: 100%;\n }\n\n :host([cols]) textarea {\n width: auto;\n }\n\n :host([rows]) textarea {\n height: auto;\n }\n\n :host([invalid]) textarea,\n :host(:invalid) textarea {\n background-color: var(--vscode-inputValidation-errorBackground, #5a1d1d);\n border-color: var(--vscode-inputValidation-errorBorder, #be1100);\n }\n\n textarea.monospace {\n background-color: var(--vscode-editor-background, #1f1f1f);\n color: var(--vscode-editor-foreground, #cccccc);\n font-family: var(--vscode-editor-font-family, monospace);\n font-size: var(--vscode-editor-font-size, 14px);\n font-weight: var(--vscode-editor-font-weight, normal);\n }\n\n .textarea.monospace::placeholder {\n color: var(\n --vscode-editor-inlineValuesForeground,\n rgba(255, 255, 255, 0.5)\n );\n }\n\n textarea.cursor-pointer {\n cursor: pointer;\n }\n\n textarea:focus {\n border-color: var(--vscode-focusBorder, #0078d4);\n outline: none;\n }\n\n textarea::placeholder {\n color: var(--vscode-input-placeholderForeground, #989898);\n opacity: 1;\n }\n\n textarea::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n textarea::-webkit-scrollbar {\n width: 14px;\n }\n\n textarea::-webkit-scrollbar-thumb {\n background-color: transparent;\n }\n\n textarea:hover::-webkit-scrollbar-thumb {\n background-color: var(\n --vscode-scrollbarSlider-background,\n rgba(121, 121, 121, 0.4)\n );\n }\n\n textarea::-webkit-scrollbar-thumb:hover {\n background-color: var(\n --vscode-scrollbarSlider-hoverBackground,\n rgba(100, 100, 100, 0.7)\n );\n }\n\n textarea::-webkit-scrollbar-thumb:active {\n background-color: var(\n --vscode-scrollbarSlider-activeBackground,\n rgba(191, 191, 191, 0.4)\n );\n }\n\n textarea::-webkit-scrollbar-corner {\n background-color: transparent;\n }\n\n textarea::-webkit-resizer {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAACJJREFUeJxjYMAOZuIQZ5j5//9/rJJESczEKYGsG6cEXgAAsEEefMxkua4AAAAASUVORK5CYII=');\n background-repeat: no-repeat;\n background-position: right bottom;\n }\n `,\n];\n\nexport default styles;\n"]}
1
+ {"version":3,"file":"vscode-textarea.styles.js","sourceRoot":"","sources":["../../src/vscode-textarea/vscode-textarea.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AACxC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmIF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\nimport defaultStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n display: inline-block;\n height: auto;\n position: relative;\n width: 320px;\n }\n\n :host([cols]) {\n width: auto;\n }\n\n :host([rows]) {\n height: auto;\n }\n\n .shadow {\n box-shadow: var(--vscode-scrollbar-shadow, #000000) 0 6px 6px -6px inset;\n display: none;\n inset: 0 0 auto 0;\n height: 6px;\n pointer-events: none;\n position: absolute;\n width: 100%;\n }\n\n .shadow.visible {\n display: block;\n }\n\n textarea {\n background-color: var(--vscode-settings-textInputBackground, #313131);\n border-color: var(--vscode-settings-textInputBorder, transparent);\n border-radius: 2px;\n border-style: solid;\n border-width: 1px;\n box-sizing: border-box;\n color: var(--vscode-settings-textInputForeground, #cccccc);\n display: block;\n font-family: var(--vscode-font-family, sans-serif);\n font-size: var(--vscode-font-size, 13px);\n font-weight: var(--vscode-font-weight, normal);\n height: 100%;\n width: 100%;\n }\n\n :host([cols]) textarea {\n width: auto;\n }\n\n :host([rows]) textarea {\n height: auto;\n }\n\n :host([invalid]) textarea,\n :host(:invalid) textarea {\n background-color: var(--vscode-inputValidation-errorBackground, #5a1d1d);\n border-color: var(--vscode-inputValidation-errorBorder, #be1100);\n }\n\n textarea.monospace {\n background-color: var(--vscode-editor-background, #1f1f1f);\n color: var(--vscode-editor-foreground, #cccccc);\n font-family: var(--vscode-editor-font-family, monospace);\n font-size: var(--vscode-editor-font-size, 14px);\n font-weight: var(--vscode-editor-font-weight, normal);\n }\n\n .textarea.monospace::placeholder {\n color: var(\n --vscode-editor-inlineValuesForeground,\n rgba(255, 255, 255, 0.5)\n );\n }\n\n textarea.cursor-pointer {\n cursor: pointer;\n }\n\n textarea:focus {\n border-color: var(--vscode-focusBorder, #0078d4);\n outline: none;\n }\n\n textarea::placeholder {\n color: var(--vscode-input-placeholderForeground, #989898);\n opacity: 1;\n }\n\n textarea::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n textarea::-webkit-scrollbar {\n width: 14px;\n }\n\n textarea::-webkit-scrollbar-thumb {\n background-color: transparent;\n }\n\n textarea:hover::-webkit-scrollbar-thumb {\n background-color: var(\n --vscode-scrollbarSlider-background,\n rgba(121, 121, 121, 0.4)\n );\n }\n\n textarea::-webkit-scrollbar-thumb:hover {\n background-color: var(\n --vscode-scrollbarSlider-hoverBackground,\n rgba(100, 100, 100, 0.7)\n );\n }\n\n textarea::-webkit-scrollbar-thumb:active {\n background-color: var(\n --vscode-scrollbarSlider-activeBackground,\n rgba(191, 191, 191, 0.4)\n );\n }\n\n textarea::-webkit-scrollbar-corner {\n background-color: transparent;\n }\n\n textarea::-webkit-resizer {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAACJJREFUeJxjYMAOZuIQZ5j5//9/rJJESczEKYGsG6cEXgAAsEEefMxkua4AAAAASUVORK5CYII=');\n background-repeat: no-repeat;\n background-position: right bottom;\n }\n `,\n];\n\nexport default styles;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-textfield.d.ts","sourceRoot":"","sources":["../../src/vscode-textfield/vscode-textfield.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vscode-textfield.d.ts","sourceRoot":"","sources":["../../src/vscode-textfield/vscode-textfield.ts"],"names":[],"mappings":"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"}
@@ -212,21 +212,15 @@ let VscodeTextfield = class VscodeTextfield extends VscElement {
212
212
  this._internals.setValidity(this._inputEl.validity, this._inputEl.validationMessage, this._inputEl);
213
213
  }
214
214
  }
215
- _onInput(ev) {
215
+ _onInput() {
216
216
  this._dataChanged();
217
217
  this._setValidityFromInput();
218
218
  // native input event dispatched automatically
219
- /** @deprecated */
220
- this.dispatchEvent(new CustomEvent('vsc-input', { detail: { data: ev.data, originalEvent: ev } }));
221
219
  }
222
- _onChange(ev) {
220
+ _onChange() {
223
221
  this._dataChanged();
224
222
  this._setValidityFromInput();
225
223
  this.dispatchEvent(new Event('change'));
226
- /** @deprecated */
227
- this.dispatchEvent(new CustomEvent('vsc-change', {
228
- detail: { data: this.value, originalEvent: ev },
229
- }));
230
224
  }
231
225
  _onFocus() {
232
226
  this.focused = true;
@@ -241,33 +235,35 @@ let VscodeTextfield = class VscodeTextfield extends VscElement {
241
235
  }
242
236
  render() {
243
237
  return html `
244
- <slot name="content-before"></slot>
245
- <input
246
- id="input"
247
- type=${this.type}
248
- ?autofocus=${this.autofocus}
249
- autocomplete=${ifDefined(this.autocomplete)}
250
- aria-label=${this.label}
251
- ?disabled=${this.disabled}
252
- max=${ifDefined(this.max)}
253
- maxlength=${ifDefined(this.maxLength)}
254
- min=${ifDefined(this.min)}
255
- minlength=${ifDefined(this.minLength)}
256
- ?multiple=${this.multiple}
257
- name=${ifDefined(this.name)}
258
- pattern=${ifDefined(this.pattern)}
259
- placeholder=${ifDefined(this.placeholder)}
260
- ?readonly=${this.readonly}
261
- ?required=${this.required}
262
- step=${ifDefined(this.step)}
263
- .value=${this._value}
264
- @blur=${this._onBlur}
265
- @change=${this._onChange}
266
- @focus=${this._onFocus}
267
- @input=${this._onInput}
268
- @keydown=${this._onKeyDown}
269
- >
270
- <slot name="content-after"></slot>
238
+ <div class="root">
239
+ <slot name="content-before"></slot>
240
+ <input
241
+ id="input"
242
+ type=${this.type}
243
+ ?autofocus=${this.autofocus}
244
+ autocomplete=${ifDefined(this.autocomplete)}
245
+ aria-label=${this.label}
246
+ ?disabled=${this.disabled}
247
+ max=${ifDefined(this.max)}
248
+ maxlength=${ifDefined(this.maxLength)}
249
+ min=${ifDefined(this.min)}
250
+ minlength=${ifDefined(this.minLength)}
251
+ ?multiple=${this.multiple}
252
+ name=${ifDefined(this.name)}
253
+ pattern=${ifDefined(this.pattern)}
254
+ placeholder=${ifDefined(this.placeholder)}
255
+ ?readonly=${this.readonly}
256
+ ?required=${this.required}
257
+ step=${ifDefined(this.step)}
258
+ .value=${this._value}
259
+ @blur=${this._onBlur}
260
+ @change=${this._onChange}
261
+ @focus=${this._onFocus}
262
+ @input=${this._onInput}
263
+ @keydown=${this._onKeyDown}
264
+ >
265
+ <slot name="content-after"></slot>
266
+ </div>
271
267
  `;
272
268
  }
273
269
  };