@api-client/ui 0.2.3 → 0.2.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 (203) hide show
  1. package/.vscode/settings.json +3 -3
  2. package/build/src/elements/authorization/ui/ApiKeyAuthorization.d.ts +1 -1
  3. package/build/src/elements/authorization/ui/ApiKeyAuthorization.d.ts.map +1 -1
  4. package/build/src/elements/authorization/ui/ApiKeyAuthorization.js +7 -7
  5. package/build/src/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
  6. package/build/src/elements/authorization/ui/Authorization.styles.js +4 -4
  7. package/build/src/elements/authorization/ui/Authorization.styles.js.map +1 -1
  8. package/build/src/elements/authorization/ui/BasicAuthorization.d.ts +1 -1
  9. package/build/src/elements/authorization/ui/BasicAuthorization.d.ts.map +1 -1
  10. package/build/src/elements/authorization/ui/BasicAuthorization.js +5 -5
  11. package/build/src/elements/authorization/ui/BasicAuthorization.js.map +1 -1
  12. package/build/src/elements/authorization/ui/BearerAuthorization.d.ts +1 -1
  13. package/build/src/elements/authorization/ui/BearerAuthorization.d.ts.map +1 -1
  14. package/build/src/elements/authorization/ui/BearerAuthorization.js +3 -3
  15. package/build/src/elements/authorization/ui/BearerAuthorization.js.map +1 -1
  16. package/build/src/elements/authorization/ui/NtlmAuthorization.d.ts +1 -1
  17. package/build/src/elements/authorization/ui/NtlmAuthorization.d.ts.map +1 -1
  18. package/build/src/elements/authorization/ui/NtlmAuthorization.js +7 -7
  19. package/build/src/elements/authorization/ui/NtlmAuthorization.js.map +1 -1
  20. package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts +1 -1
  21. package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts.map +1 -1
  22. package/build/src/elements/authorization/ui/OAuth2Authorization.js +32 -27
  23. package/build/src/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  24. package/build/src/elements/authorization/ui/OidcAuthorization.js +4 -4
  25. package/build/src/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  26. package/build/src/elements/autocomplete/autocomplete-input.d.ts +10 -0
  27. package/build/src/elements/autocomplete/autocomplete-input.d.ts.map +1 -0
  28. package/build/src/{md/text-field/ui-text-field.js → elements/autocomplete/autocomplete-input.js} +9 -9
  29. package/build/src/elements/autocomplete/autocomplete-input.js.map +1 -0
  30. package/build/src/elements/autocomplete/internals/autocomplete.d.ts +209 -0
  31. package/build/src/elements/autocomplete/internals/autocomplete.d.ts.map +1 -0
  32. package/build/src/elements/autocomplete/internals/autocomplete.js +493 -0
  33. package/build/src/elements/autocomplete/internals/autocomplete.js.map +1 -0
  34. package/build/src/elements/autocomplete/internals/autocomplete.styles.d.ts +3 -0
  35. package/build/src/elements/autocomplete/internals/autocomplete.styles.d.ts.map +1 -0
  36. package/build/src/elements/autocomplete/internals/autocomplete.styles.js +25 -0
  37. package/build/src/elements/autocomplete/internals/autocomplete.styles.js.map +1 -0
  38. package/build/src/elements/dialog/internals/DeleteCookieAction.element.d.ts +1 -1
  39. package/build/src/elements/dialog/internals/DeleteCookieAction.element.d.ts.map +1 -1
  40. package/build/src/elements/dialog/internals/DeleteCookieAction.element.js +5 -5
  41. package/build/src/elements/dialog/internals/DeleteCookieAction.element.js.map +1 -1
  42. package/build/src/elements/dialog/internals/Rename.d.ts +1 -1
  43. package/build/src/elements/dialog/internals/Rename.d.ts.map +1 -1
  44. package/build/src/elements/dialog/internals/Rename.js +3 -3
  45. package/build/src/elements/dialog/internals/Rename.js.map +1 -1
  46. package/build/src/elements/dialog/internals/SetCookieAction.element.d.ts +1 -1
  47. package/build/src/elements/dialog/internals/SetCookieAction.element.d.ts.map +1 -1
  48. package/build/src/elements/dialog/internals/SetCookieAction.element.js +9 -9
  49. package/build/src/elements/dialog/internals/SetCookieAction.element.js.map +1 -1
  50. package/build/src/elements/environment/EnvironmentEditor.d.ts +1 -1
  51. package/build/src/elements/environment/EnvironmentEditor.d.ts.map +1 -1
  52. package/build/src/elements/environment/EnvironmentEditor.js +3 -3
  53. package/build/src/elements/environment/EnvironmentEditor.js.map +1 -1
  54. package/build/src/elements/environment/EnvironmentEditor.styles.js +1 -1
  55. package/build/src/elements/environment/EnvironmentEditor.styles.js.map +1 -1
  56. package/build/src/elements/environment/ServerEditor.d.ts +1 -1
  57. package/build/src/elements/environment/ServerEditor.d.ts.map +1 -1
  58. package/build/src/elements/environment/ServerEditor.js +7 -7
  59. package/build/src/elements/environment/ServerEditor.js.map +1 -1
  60. package/build/src/elements/environment/ServerEditor.styles.js +1 -1
  61. package/build/src/elements/environment/ServerEditor.styles.js.map +1 -1
  62. package/build/src/elements/http/BodyMultipartEditor.d.ts.map +1 -1
  63. package/build/src/elements/http/BodyMultipartEditor.js +4 -0
  64. package/build/src/elements/http/BodyMultipartEditor.js.map +1 -1
  65. package/build/src/elements/http/CertificateAdd.element.d.ts +1 -1
  66. package/build/src/elements/http/CertificateAdd.element.d.ts.map +1 -1
  67. package/build/src/elements/http/CertificateAdd.element.js +8 -8
  68. package/build/src/elements/http/CertificateAdd.element.js.map +1 -1
  69. package/build/src/elements/http/CertificateAdd.styles.js +1 -1
  70. package/build/src/elements/http/CertificateAdd.styles.js.map +1 -1
  71. package/build/src/elements/http/HttpAssertions.element.js +3 -3
  72. package/build/src/elements/http/HttpAssertions.element.js.map +1 -1
  73. package/build/src/elements/http/HttpFlows.element.js +3 -3
  74. package/build/src/elements/http/HttpFlows.element.js.map +1 -1
  75. package/build/src/elements/http/HttpFlowsUi.d.ts +1 -1
  76. package/build/src/elements/http/HttpFlowsUi.d.ts.map +1 -1
  77. package/build/src/elements/http/HttpFlowsUi.js +31 -31
  78. package/build/src/elements/http/HttpFlowsUi.js.map +1 -1
  79. package/build/src/elements/http/RequestConfigElement.d.ts +1 -1
  80. package/build/src/elements/http/RequestConfigElement.d.ts.map +1 -1
  81. package/build/src/elements/http/RequestConfigElement.js +7 -7
  82. package/build/src/elements/http/RequestConfigElement.js.map +1 -1
  83. package/build/src/elements/http/UrlParamsForm.d.ts +1 -1
  84. package/build/src/elements/http/UrlParamsForm.d.ts.map +1 -1
  85. package/build/src/elements/http/UrlParamsForm.js +1 -1
  86. package/build/src/elements/http/UrlParamsForm.js.map +1 -1
  87. package/build/src/elements/project/ProjectRunner.d.ts +1 -1
  88. package/build/src/elements/project/ProjectRunner.d.ts.map +1 -1
  89. package/build/src/elements/project/ProjectRunner.js +5 -5
  90. package/build/src/elements/project/ProjectRunner.js.map +1 -1
  91. package/build/src/md/input/Input.d.ts +0 -15
  92. package/build/src/md/input/Input.d.ts.map +1 -1
  93. package/build/src/md/input/Input.js +7 -42
  94. package/build/src/md/input/Input.js.map +1 -1
  95. package/build/src/md/list/internals/List.d.ts +7 -2
  96. package/build/src/md/list/internals/List.d.ts.map +1 -1
  97. package/build/src/md/list/internals/List.js +6 -0
  98. package/build/src/md/list/internals/List.js.map +1 -1
  99. package/build/src/md/list/internals/ListItem.styles.d.ts.map +1 -1
  100. package/build/src/md/list/internals/ListItem.styles.js +8 -0
  101. package/build/src/md/list/internals/ListItem.styles.js.map +1 -1
  102. package/build/src/md/listbox/internals/Listbox.d.ts +2 -2
  103. package/build/src/md/listbox/internals/Listbox.d.ts.map +1 -1
  104. package/build/src/md/listbox/internals/Listbox.js.map +1 -1
  105. package/build/src/md/text-area/internals/TextAreaElement.d.ts.map +1 -1
  106. package/build/src/md/text-area/internals/TextAreaElement.js +0 -5
  107. package/build/src/md/text-area/internals/TextAreaElement.js.map +1 -1
  108. package/build/src/md/text-area/ui-text-area.d.ts.map +1 -1
  109. package/build/src/md/text-area/ui-text-area.js +3 -2
  110. package/build/src/md/text-area/ui-text-area.js.map +1 -1
  111. package/build/src/md/text-field/internals/{TextFieldElement.d.ts → TextField.d.ts} +2 -2
  112. package/build/src/md/text-field/internals/TextField.d.ts.map +1 -0
  113. package/build/src/md/text-field/internals/{TextFieldElement.js → TextField.js} +2 -5
  114. package/build/src/md/text-field/internals/TextField.js.map +1 -0
  115. package/build/src/md/text-field/internals/{TextField.styles.d.ts → common.styles.d.ts} +1 -1
  116. package/build/src/md/text-field/internals/common.styles.d.ts.map +1 -0
  117. package/build/src/md/text-field/internals/{TextField.styles.js → common.styles.js} +8 -94
  118. package/build/src/md/text-field/internals/common.styles.js.map +1 -0
  119. package/build/src/md/text-field/internals/filled.styles.d.ts +3 -0
  120. package/build/src/md/text-field/internals/filled.styles.d.ts.map +1 -0
  121. package/build/src/md/text-field/internals/filled.styles.js +107 -0
  122. package/build/src/md/text-field/internals/filled.styles.js.map +1 -0
  123. package/build/src/md/text-field/internals/outlined.styles.d.ts +3 -0
  124. package/build/src/md/text-field/internals/outlined.styles.d.ts.map +1 -0
  125. package/build/src/md/text-field/internals/outlined.styles.js +43 -0
  126. package/build/src/md/text-field/internals/outlined.styles.js.map +1 -0
  127. package/build/src/md/text-field/ui-filled-text-field.d.ts +11 -0
  128. package/build/src/md/text-field/ui-filled-text-field.d.ts.map +1 -0
  129. package/build/src/md/text-field/ui-filled-text-field.js +28 -0
  130. package/build/src/md/text-field/ui-filled-text-field.js.map +1 -0
  131. package/build/src/md/text-field/ui-outlined-text-field.d.ts +11 -0
  132. package/build/src/md/text-field/ui-outlined-text-field.d.ts.map +1 -0
  133. package/build/src/md/text-field/ui-outlined-text-field.js +28 -0
  134. package/build/src/md/text-field/ui-outlined-text-field.js.map +1 -0
  135. package/build/src/types/input.d.ts +1 -1
  136. package/build/src/types/input.d.ts.map +1 -1
  137. package/build/src/types/input.js.map +1 -1
  138. package/demo/elements/authorization/oauth-authorize.html +4 -4
  139. package/demo/elements/authorization/oauth-authorize.ts +1 -1
  140. package/demo/elements/autocomplete/index.html +24 -0
  141. package/demo/elements/autocomplete/index.ts +123 -0
  142. package/demo/elements/http/body-editor.ts +3 -3
  143. package/demo/elements/index.html +15 -11
  144. package/demo/md/index.html +1 -1
  145. package/demo/md/inputs/input.html +10 -15
  146. package/demo/md/inputs/input.ts +389 -101
  147. package/demo/page.css +4 -0
  148. package/package.json +1 -1
  149. package/src/elements/authorization/ui/ApiKeyAuthorization.ts +7 -7
  150. package/src/elements/authorization/ui/Authorization.styles.ts +4 -4
  151. package/src/elements/authorization/ui/BasicAuthorization.ts +5 -5
  152. package/src/elements/authorization/ui/BearerAuthorization.ts +3 -3
  153. package/src/elements/authorization/ui/NtlmAuthorization.ts +7 -7
  154. package/src/elements/authorization/ui/OAuth2Authorization.ts +32 -27
  155. package/src/elements/authorization/ui/OidcAuthorization.ts +4 -4
  156. package/src/elements/autocomplete/autocomplete-input.ts +14 -0
  157. package/src/elements/autocomplete/internals/autocomplete.styles.ts +25 -0
  158. package/src/elements/autocomplete/internals/autocomplete.ts +490 -0
  159. package/src/elements/dialog/internals/DeleteCookieAction.element.ts +5 -5
  160. package/src/elements/dialog/internals/Rename.ts +3 -3
  161. package/src/elements/dialog/internals/SetCookieAction.element.ts +9 -9
  162. package/src/elements/environment/EnvironmentEditor.styles.ts +1 -1
  163. package/src/elements/environment/EnvironmentEditor.ts +3 -3
  164. package/src/elements/environment/ServerEditor.styles.ts +1 -1
  165. package/src/elements/environment/ServerEditor.ts +7 -7
  166. package/src/elements/http/BodyMultipartEditor.ts +4 -0
  167. package/src/elements/http/CertificateAdd.element.ts +8 -8
  168. package/src/elements/http/CertificateAdd.styles.ts +1 -1
  169. package/src/elements/http/HttpAssertions.element.ts +3 -3
  170. package/src/elements/http/HttpFlows.element.ts +3 -3
  171. package/src/elements/http/HttpFlowsUi.ts +31 -31
  172. package/src/elements/http/RequestConfigElement.ts +7 -7
  173. package/src/elements/http/UrlParamsForm.ts +1 -1
  174. package/src/elements/project/ProjectRunner.ts +5 -5
  175. package/src/md/input/Input.ts +6 -21
  176. package/src/md/list/internals/List.ts +14 -2
  177. package/src/md/list/internals/ListItem.styles.ts +8 -0
  178. package/src/md/listbox/internals/Listbox.ts +2 -2
  179. package/src/md/text-area/internals/TextAreaElement.ts +0 -5
  180. package/src/md/text-area/ui-text-area.ts +3 -2
  181. package/src/md/text-field/internals/{TextFieldElement.ts → TextField.ts} +1 -4
  182. package/src/md/text-field/internals/{TextField.styles.ts → common.styles.ts} +7 -93
  183. package/src/md/text-field/internals/filled.styles.ts +107 -0
  184. package/src/md/text-field/internals/outlined.styles.ts +43 -0
  185. package/src/md/text-field/ui-filled-text-field.ts +16 -0
  186. package/src/md/text-field/ui-outlined-text-field.ts +16 -0
  187. package/src/types/input.ts +0 -1
  188. package/test/elements/authorization/basic-method.test.ts +3 -3
  189. package/test/elements/authorization/bearer-method.test.ts +2 -2
  190. package/test/elements/authorization/ntlm-method.test.ts +4 -4
  191. package/test/elements/autocomplete/autocomplete-input.spec.ts +448 -0
  192. package/test/elements/http/BodyMultipartEditorElement.test.ts +15 -16
  193. package/test/elements/http/CertificateAdd.test.ts +11 -11
  194. package/test/elements/http/HttpAssertions.test.ts +9 -9
  195. package/test/elements/http/HttpFlows.test.ts +4 -4
  196. package/build/src/md/text-field/internals/TextField.styles.d.ts.map +0 -1
  197. package/build/src/md/text-field/internals/TextField.styles.js.map +0 -1
  198. package/build/src/md/text-field/internals/TextFieldElement.d.ts.map +0 -1
  199. package/build/src/md/text-field/internals/TextFieldElement.js.map +0 -1
  200. package/build/src/md/text-field/ui-text-field.d.ts +0 -11
  201. package/build/src/md/text-field/ui-text-field.d.ts.map +0 -1
  202. package/build/src/md/text-field/ui-text-field.js.map +0 -1
  203. package/src/md/text-field/ui-text-field.ts +0 -15
@@ -19,9 +19,15 @@ export interface UiListSelection {
19
19
  index: number
20
20
  }
21
21
 
22
+ export interface UiListItemsChange {
23
+ items: UiListItem[]
24
+ }
25
+
22
26
  /**
23
27
  * @fires select - Dispatched when the user click or press `Enter` or `Space` on any active list item.
24
28
  * The `event.detail` object contains the `item` and `index` properties.
29
+ * @fires itemschange - Dispatched when the list items change, e.g. when the slot changes.
30
+ * The `event.detail` object contains the `items` property with the list of items.
25
31
  */
26
32
  export default class UiList extends LitElement {
27
33
  /**
@@ -102,6 +108,9 @@ export default class UiList extends LitElement {
102
108
  if (this.highlightListItem && !items.includes(this.highlightListItem)) {
103
109
  this.highlightListItem = null
104
110
  }
111
+ this.dispatchEvent(
112
+ new CustomEvent<UiListItemsChange>('itemschange', { bubbles: false, composed: false, detail: { items } })
113
+ )
105
114
  }
106
115
 
107
116
  /**
@@ -195,7 +204,10 @@ export default class UiList extends LitElement {
195
204
  item.deactivate()
196
205
  }
197
206
 
198
- protected activateListItem(item: UiListItem): void {
207
+ protected activateListItem(item?: UiListItem | null): void {
208
+ if (!item) {
209
+ return
210
+ }
199
211
  this.removeAttribute('tabindex')
200
212
  item.activate()
201
213
  item.scrollIntoView({ block: 'end', inline: 'nearest' })
@@ -299,7 +311,7 @@ export default class UiList extends LitElement {
299
311
  this.activateFromEvent(event)
300
312
  }
301
313
 
302
- protected highlightItem(item?: UiListItem): void {
314
+ protected highlightItem(item?: UiListItem | null): void {
303
315
  if (this.highlightListItem) {
304
316
  this.highlightListItem.classList.remove('highlight')
305
317
  }
@@ -8,6 +8,14 @@ export default css`
8
8
  cursor: default;
9
9
  }
10
10
 
11
+ :host([disabled]) {
12
+ cursor: not-allowed;
13
+ }
14
+
15
+ :host([hidden]) {
16
+ display: none;
17
+ }
18
+
11
19
  :host([lines='two']),
12
20
  :host([lines='one'][image='image']) {
13
21
  height: 72px;
@@ -55,13 +55,13 @@ export default class UiListbox extends UiList {
55
55
  this.setAttribute('aria-activedescendant', item.id)
56
56
  }
57
57
 
58
- protected override highlightItem(item?: UiListItem): void {
58
+ override highlightItem(item?: UiListItem | null): void {
59
59
  this.beforeActivation()
60
60
  super.highlightItem(item)
61
61
  this.afterActivation(this.highlightListItem)
62
62
  }
63
63
 
64
- protected override activateListItem(item: UiListItem): void {
64
+ override activateListItem(item: UiListItem | null): void {
65
65
  this.beforeActivation()
66
66
  super.activateListItem(item)
67
67
  this.afterActivation(this.activeListItem)
@@ -36,9 +36,7 @@ export default class TextAreaElement extends Input {
36
36
  const placeholderValue = this.placeholder || undefined
37
37
  const maxLengthValue = this.maxLength > -1 ? this.maxLength : undefined
38
38
  const minLengthValue = this.minLength > -1 ? this.minLength : undefined
39
- const patternValue = this.pattern || undefined
40
39
  const roleValue = this.dataRole || undefined
41
- const stepValue = this.step || undefined
42
40
  const { disabled } = this
43
41
 
44
42
  const style: StyleInfo = {}
@@ -62,16 +60,13 @@ export default class TextAreaElement extends Input {
62
60
  .value=${live(this.getInputValue())}
63
61
  maxlength=${ifDefined(maxLengthValue)}
64
62
  minlength=${ifDefined(minLengthValue)}
65
- pattern=${ifDefined(patternValue)}
66
63
  placeholder=${ifDefined(placeholderValue)}
67
64
  role=${ifDefined(roleValue as 'textbox')}
68
65
  ?disabled=${disabled}
69
66
  ?readonly=${this.readOnly}
70
67
  ?required=${this.required}
71
- step=${ifDefined(stepValue as unknown as number)}
72
68
  autocomplete="${ifDefined(this.autocomplete)}"
73
69
  autocapitalize="${ifDefined(this.autocapitalize)}"
74
- autocorrect="${ifDefined(this.autocorrect)}"
75
70
  inputmode="${ifDefined(this.inputMode)}"
76
71
  cols="${ifDefined(this.cols)}"
77
72
  rows="${ifDefined(this.rows)}"
@@ -1,11 +1,12 @@
1
1
  import type { CSSResultOrNative } from 'lit'
2
2
  import { customElement } from 'lit/decorators.js'
3
3
  import Element from './internals/TextAreaElement.js'
4
- import styles from '../text-field/internals/TextField.styles.js'
4
+ import styles from '../text-field/internals/filled.styles.js'
5
+ import common from '../text-field/internals/common.styles.js'
5
6
 
6
7
  @customElement('ui-text-area')
7
8
  export class UiTextAreaElement extends Element {
8
- static override styles: CSSResultOrNative[] = [styles]
9
+ static override styles: CSSResultOrNative[] = [common, styles]
9
10
  }
10
11
 
11
12
  declare global {
@@ -4,7 +4,7 @@ import { live } from 'lit/directives/live.js'
4
4
  import { StyleInfo, styleMap } from 'lit/directives/style-map.js'
5
5
  import Input from '../../input/Input.js'
6
6
 
7
- export default class TextFieldElement extends Input {
7
+ export default class TextField extends Input {
8
8
  protected override renderInput(): TemplateResult {
9
9
  const placeholderValue = this.placeholder || undefined
10
10
  const maxValue = this.max || undefined
@@ -49,10 +49,8 @@ export default class TextFieldElement extends Input {
49
49
  step=${ifDefined(stepValue as unknown as number)}
50
50
  autocomplete="${ifDefined(this.autocomplete)}"
51
51
  autocapitalize="${ifDefined(this.autocapitalize)}"
52
- autocorrect="${ifDefined(this.autocorrect)}"
53
52
  inputmode="${ifDefined(this.inputMode)}"
54
53
  size="${ifDefined(this.size)}"
55
- results="${ifDefined(this.results)}"
56
54
  accept="${ifDefined(this.accept)}"
57
55
  ?multiple="${this.multiple}"
58
56
  spellcheck="${ifDefined(this.spellcheck)}"
@@ -61,7 +59,6 @@ export default class TextFieldElement extends Input {
61
59
  @input=${this.handleInput}
62
60
  @select=${this.retargetEvent}
63
61
  @invalid=${this.invalidHandler}
64
- @search="${this.retargetEvent}"
65
62
  aria-activedescendant=${ifDefined(ariaActiveDescendantValue)}
66
63
  aria-autocomplete=${ifDefined(ariaAutoCompleteValue)}
67
64
  aria-controls=${ifDefined(ariaControlsValue)}
@@ -9,11 +9,6 @@ export default css`
9
9
  -webkit-tap-highlight-color: transparent;
10
10
  cursor: text;
11
11
 
12
- --_active-indicator-color: var(--md-sys-color-on-surface-variant);
13
- --_active-indicator-height: 1px;
14
- --_focus-active-indicator-color: var(--md-sys-color-primary, #6750a4);
15
- --_focus-active-indicator-height: 2px;
16
-
17
12
  min-width: 200px;
18
13
  }
19
14
 
@@ -22,7 +17,6 @@ export default css`
22
17
  position: relative;
23
18
  display: flex;
24
19
  align-items: center;
25
- border-radius: var(--md-sys-shape-corner-extra-small-top);
26
20
  cursor: inherit;
27
21
  }
28
22
 
@@ -30,7 +24,6 @@ export default css`
30
24
  position: absolute;
31
25
  inset: 0;
32
26
  z-index: 1;
33
- background-color: var(--md-sys-color-surface-variant);
34
27
  border-radius: inherit;
35
28
  }
36
29
 
@@ -48,8 +41,6 @@ export default css`
48
41
 
49
42
  .body {
50
43
  flex: 1;
51
- overflow: hidden;
52
- padding-top: 1em;
53
44
  box-sizing: border-box;
54
45
  position: relative;
55
46
  cursor: inherit;
@@ -57,6 +48,7 @@ export default css`
57
48
 
58
49
  .label {
59
50
  color: var(--md-sys-color-on-surface-variant);
51
+
60
52
  max-width: 100%;
61
53
  pointer-events: none;
62
54
  overflow: hidden;
@@ -64,25 +56,14 @@ export default css`
64
56
  white-space: nowrap;
65
57
  z-index: 3;
66
58
 
67
- position: absolute;
68
- transform: translateY(-1.35rem) scale(0.8);
69
- transform-origin: left center;
70
- top: 50%;
71
- transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
72
-
73
59
  font-family: var(--md-sys-typescale-body-large-font);
74
60
  font-weight: var(--md-sys-typescale-body-large-weight);
75
61
  font-size: var(--md-sys-typescale-body-large-size);
76
62
  letter-spacing: var(--md-sys-typescale-body-large-tracking);
77
63
  line-height: var(--md-sys-typescale-body-large-height);
78
- }
79
-
80
- .labelResting .label {
81
- transform: translateY(-50%) scale(1);
82
- }
83
64
 
84
- :host(:focus-within) .label {
85
- color: var(--md-sys-color-primary);
65
+ transform-origin: left center;
66
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
86
67
  }
87
68
 
88
69
  .input {
@@ -151,51 +132,6 @@ export default css`
151
132
  cursor: default;
152
133
  }
153
134
 
154
- .highlight {
155
- inset: auto 0px 0px;
156
- pointer-events: none;
157
- position: absolute;
158
- width: 100%;
159
- z-index: 4;
160
- }
161
-
162
- .highlight::before {
163
- content: '';
164
- border-bottom: 1px solid var(--md-sys-color-on-surface-variant);
165
- inset: auto 0px 0px;
166
- position: absolute;
167
- }
168
-
169
- .highlight::after {
170
- content: '';
171
- border-bottom-color: var(--md-sys-color-primary);
172
- border-bottom-width: 2px;
173
- border-bottom-style: solid;
174
- opacity: 0;
175
- transform: scaleX(0);
176
- transform-origin: center center;
177
-
178
- transition:
179
- opacity 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s,
180
- transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
181
-
182
- position: absolute;
183
- inset: auto 0px 0px;
184
- }
185
-
186
- :host(:focus-within) .highlight::after {
187
- opacity: 1;
188
- transform: scaleX(1);
189
- }
190
-
191
- .labelHidden .label {
192
- display: none;
193
- }
194
-
195
- .labelHidden .body {
196
- padding-top: 0;
197
- }
198
-
199
135
  .supporting-text {
200
136
  padding-top: 4px;
201
137
  color: var(--md-sys-color-on-surface-variant);
@@ -217,19 +153,6 @@ export default css`
217
153
  margin-right: 16px;
218
154
  }
219
155
 
220
- .container::before {
221
- content: '';
222
- position: absolute;
223
- inset: 0;
224
- opacity: 0;
225
- background-color: var(--md-sys-color-on-surface-variant);
226
- transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
227
- }
228
-
229
- :host(:hover) .container::before {
230
- opacity: var(--md-sys-state-hover-state-layer-opacity);
231
- }
232
-
233
156
  :host([disabled]) {
234
157
  pointer-events: none;
235
158
  }
@@ -239,11 +162,6 @@ export default css`
239
162
  opacity: 0.04;
240
163
  }
241
164
 
242
- :host([disabled]) .highlight::before {
243
- border-bottom-color: var(--md-sys-color-on-surface);
244
- opacity: 0.38;
245
- }
246
-
247
165
  :host([disabled]) .label,
248
166
  :host([disabled]) .input,
249
167
  :host([disabled]) .end ::slotted(*),
@@ -252,22 +170,18 @@ export default css`
252
170
  opacity: 0.38;
253
171
  }
254
172
 
255
- :host([invalid]) .highlight::before {
256
- border-bottom-color: var(--md-sys-color-error);
257
- }
258
-
259
173
  :host([invalid]) .label,
260
174
  :host([invalid]) .supporting-text,
261
175
  :host([invalid]) .end ::slotted(*) {
262
176
  color: var(--md-sys-color-error);
263
177
  }
264
178
 
265
- :host([invalid]:hover) .highlight::before {
266
- border-bottom-color: var(--md-sys-color-on-error-container);
267
- }
268
-
269
179
  :host([invalid]:hover) .label,
270
180
  :host([invalid]:hover) .end ::slotted(*) {
271
181
  color: var(--md-sys-color-on-error-container);
272
182
  }
183
+
184
+ .labelHidden .label {
185
+ display: none;
186
+ }
273
187
  `
@@ -0,0 +1,107 @@
1
+ import { css } from 'lit'
2
+
3
+ export default css`
4
+ :host {
5
+ --_active-indicator-color: var(--md-sys-color-on-surface-variant);
6
+ --_active-indicator-height: 1px;
7
+ --_focus-active-indicator-color: var(--md-sys-color-primary, #6750a4);
8
+ --_focus-active-indicator-height: 2px;
9
+ }
10
+
11
+ .surface {
12
+ height: 56px;
13
+ }
14
+
15
+ .container {
16
+ background-color: var(--md-sys-color-surface-variant);
17
+ }
18
+
19
+ .body {
20
+ overflow: hidden;
21
+ }
22
+
23
+ .label {
24
+ position: absolute;
25
+ transform: translateY(-1.35rem) scale(0.8);
26
+ top: 50%;
27
+ }
28
+
29
+ .labelResting .label {
30
+ transform: translateY(-50%) scale(1);
31
+ }
32
+
33
+ :host(:focus-within) .label {
34
+ color: var(--md-sys-color-primary);
35
+ }
36
+
37
+ .highlight {
38
+ inset: auto 0px 0px;
39
+ pointer-events: none;
40
+ position: absolute;
41
+ width: 100%;
42
+ z-index: 4;
43
+ }
44
+
45
+ .highlight::before {
46
+ content: '';
47
+ border-bottom: 1px solid var(--md-sys-color-on-surface-variant);
48
+ inset: auto 0px 0px;
49
+ position: absolute;
50
+ }
51
+
52
+ .highlight::after {
53
+ content: '';
54
+ border-bottom-color: var(--md-sys-color-primary);
55
+ border-bottom-width: 2px;
56
+ border-bottom-style: solid;
57
+ opacity: 0;
58
+ transform: scaleX(0);
59
+ transform-origin: center center;
60
+
61
+ transition:
62
+ opacity 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s,
63
+ transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
64
+
65
+ position: absolute;
66
+ inset: auto 0px 0px;
67
+ }
68
+
69
+ :host(:focus-within) .highlight::after {
70
+ opacity: 1;
71
+ transform: scaleX(1);
72
+ }
73
+
74
+ :host([disabled]) .highlight::before {
75
+ border-bottom-color: var(--md-sys-color-on-surface);
76
+ opacity: 0.38;
77
+ }
78
+
79
+ :host([invalid]) .highlight::before {
80
+ border-bottom-color: var(--md-sys-color-error);
81
+ }
82
+
83
+ :host([invalid]:hover) .highlight::before {
84
+ border-bottom-color: var(--md-sys-color-on-error-container);
85
+ }
86
+
87
+ .labelHidden .body {
88
+ padding-top: 0;
89
+ }
90
+
91
+ .container::before {
92
+ content: '';
93
+ position: absolute;
94
+ inset: 0;
95
+ opacity: 0;
96
+ background-color: var(--md-sys-color-on-surface-variant);
97
+ transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
98
+ }
99
+
100
+ :host(:hover) .container::before {
101
+ opacity: var(--md-sys-state-hover-state-layer-opacity);
102
+ }
103
+
104
+ .body {
105
+ padding-top: 1em;
106
+ }
107
+ `
@@ -0,0 +1,43 @@
1
+ import { css } from 'lit'
2
+
3
+ export default css`
4
+ .highlight {
5
+ display: none;
6
+ }
7
+
8
+ .surface {
9
+ border-radius: var(--md-sys-shape-corner-extra-small);
10
+ }
11
+
12
+ .container {
13
+ border: 1px var(--md-sys-color-outline) solid;
14
+ outline: 0px solid var(--md-sys-color-primary);
15
+ outline-offset: -3px;
16
+ transition:
17
+ border-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
18
+ outline-width 150ms cubic-bezier(0.4, 0, 0.2, 1);
19
+ }
20
+
21
+ :host(:hover:not(:focus-within)) .container {
22
+ border-color: var(--md-sys-color-on-surface);
23
+ }
24
+
25
+ :host(:focus-within) .container {
26
+ border-color: var(--md-sys-color-primary);
27
+ outline-width: 3px;
28
+ }
29
+
30
+ .label {
31
+ padding: 0 4px;
32
+ }
33
+
34
+ .labelActive .label {
35
+ transform: translateY(calc(-100% - 2px)) scale(0.75);
36
+ position: absolute;
37
+ background-color: var(--md-sys-color-surface);
38
+ }
39
+
40
+ :host(:focus-within) .label {
41
+ color: var(--md-sys-color-primary);
42
+ }
43
+ `
@@ -0,0 +1,16 @@
1
+ import type { CSSResultOrNative } from 'lit'
2
+ import { customElement } from 'lit/decorators.js'
3
+ import Element from './internals/TextField.js'
4
+ import styles from './internals/filled.styles.js'
5
+ import common from './internals/common.styles.js'
6
+
7
+ @customElement('ui-filled-text-field')
8
+ export class UiFilledTextFieldElement extends Element {
9
+ static override styles: CSSResultOrNative[] = [common, styles]
10
+ }
11
+
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'ui-filled-text-field': UiFilledTextFieldElement
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ import type { CSSResultOrNative } from 'lit'
2
+ import { customElement } from 'lit/decorators.js'
3
+ import Element from './internals/TextField.js'
4
+ import styles from './internals/outlined.styles.js'
5
+ import common from './internals/common.styles.js'
6
+
7
+ @customElement('ui-outlined-text-field')
8
+ export class UiOutlinedTextFieldElement extends Element {
9
+ static override styles: CSSResultOrNative[] = [common, styles]
10
+ }
11
+
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'ui-outlined-text-field': UiOutlinedTextFieldElement
15
+ }
16
+ }
@@ -6,7 +6,6 @@ export type SupportedInputTypes =
6
6
  | 'url'
7
7
  | 'email'
8
8
  | 'password'
9
- | 'datetime'
10
9
  | 'date'
11
10
  | 'month'
12
11
  | 'week'
@@ -5,8 +5,8 @@ import Input from '../../../src/md/input/Input.js'
5
5
  import '../../../src/define/authorization/basic-authorization.js'
6
6
 
7
7
  describe('Basic method', () => {
8
- const usernameSelector = 'ui-text-field[name="username"]'
9
- const passwordSelector = 'ui-text-field[name="password"]'
8
+ const usernameSelector = 'ui-filled-text-field[name="username"]'
9
+ const passwordSelector = 'ui-filled-text-field[name="password"]'
10
10
 
11
11
  const username = 'test-username'
12
12
  const password = 'test-password'
@@ -54,7 +54,7 @@ describe('Basic method', () => {
54
54
  })
55
55
 
56
56
  it('has no other inputs', () => {
57
- const controls = form.querySelectorAll('ui-text-field')
57
+ const controls = form.querySelectorAll('ui-filled-text-field')
58
58
  assert.lengthOf(controls, 2)
59
59
  })
60
60
  })
@@ -5,7 +5,7 @@ import Input from '../../../src/md/input/Input.js'
5
5
  import '../../../src/define/authorization/bearer-authorization.js'
6
6
 
7
7
  describe('Bearer method', () => {
8
- const tokenSelector = 'ui-text-field[name="token"]'
8
+ const tokenSelector = 'ui-filled-text-field[name="token"]'
9
9
  const token = 'test-token'
10
10
 
11
11
  async function basicFixture(auth?: IRequestAuthorization): Promise<Authorization> {
@@ -45,7 +45,7 @@ describe('Bearer method', () => {
45
45
  })
46
46
 
47
47
  it('has no other inputs', () => {
48
- const controls = form.querySelectorAll('ui-text-field')
48
+ const controls = form.querySelectorAll('ui-filled-text-field')
49
49
  assert.lengthOf(controls, 1)
50
50
  })
51
51
  })
@@ -5,9 +5,9 @@ import Input from '../../../src/md/input/Input.js'
5
5
  import '../../../src/define/authorization/ntlm-authorization.js'
6
6
 
7
7
  describe('NTLM method', () => {
8
- const usernameSelector = 'ui-text-field[name="username"]'
9
- const passwordSelector = 'ui-text-field[name="password"]'
10
- const domainSelector = 'ui-text-field[name="domain"]'
8
+ const usernameSelector = 'ui-filled-text-field[name="username"]'
9
+ const passwordSelector = 'ui-filled-text-field[name="password"]'
10
+ const domainSelector = 'ui-filled-text-field[name="domain"]'
11
11
 
12
12
  const username = 'test-username'
13
13
  const password = 'test-password'
@@ -71,7 +71,7 @@ describe('NTLM method', () => {
71
71
  })
72
72
 
73
73
  it('has no other inputs', () => {
74
- const controls = form.querySelectorAll('ui-text-field')
74
+ const controls = form.querySelectorAll('ui-filled-text-field')
75
75
  assert.lengthOf(controls, 3)
76
76
  })
77
77
  })