@api-client/ui 0.2.13 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/.vscode/settings.json +1 -0
  2. package/build/src/core/ModalActivity.d.ts +1 -1
  3. package/build/src/core/ModalActivity.d.ts.map +1 -1
  4. package/build/src/core/ModalActivity.js +6 -5
  5. package/build/src/core/ModalActivity.js.map +1 -1
  6. package/build/src/core/ThemeManager.d.ts +4 -2
  7. package/build/src/core/ThemeManager.d.ts.map +1 -1
  8. package/build/src/core/ThemeManager.js.map +1 -1
  9. package/build/src/demo/DemoPage.d.ts +1 -4
  10. package/build/src/demo/DemoPage.d.ts.map +1 -1
  11. package/build/src/demo/DemoPage.js +2 -5
  12. package/build/src/demo/DemoPage.js.map +1 -1
  13. package/build/src/elements/authorization/ui/CcAuthorization.d.ts +1 -1
  14. package/build/src/elements/authorization/ui/CcAuthorization.d.ts.map +1 -1
  15. package/build/src/elements/authorization/ui/CcAuthorization.js +2 -2
  16. package/build/src/elements/authorization/ui/CcAuthorization.js.map +1 -1
  17. package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts +1 -1
  18. package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts.map +1 -1
  19. package/build/src/elements/authorization/ui/OAuth2Authorization.js +11 -5
  20. package/build/src/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  21. package/build/src/elements/authorization/ui/OidcAuthorization.d.ts +1 -2
  22. package/build/src/elements/authorization/ui/OidcAuthorization.d.ts.map +1 -1
  23. package/build/src/elements/authorization/ui/OidcAuthorization.js +10 -8
  24. package/build/src/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  25. package/build/src/elements/code/HttpSnippets.d.ts +1 -1
  26. package/build/src/elements/code/HttpSnippets.d.ts.map +1 -1
  27. package/build/src/elements/code/HttpSnippets.js +5 -5
  28. package/build/src/elements/code/HttpSnippets.js.map +1 -1
  29. package/build/src/elements/dialog/internals/ConfirmDelete.d.ts +1 -1
  30. package/build/src/elements/dialog/internals/ConfirmDelete.d.ts.map +1 -1
  31. package/build/src/elements/dialog/internals/ConfirmDelete.js +5 -5
  32. package/build/src/elements/dialog/internals/ConfirmDelete.js.map +1 -1
  33. package/build/src/elements/dialog/internals/Rename.d.ts +1 -1
  34. package/build/src/elements/dialog/internals/Rename.d.ts.map +1 -1
  35. package/build/src/elements/dialog/internals/Rename.js +6 -5
  36. package/build/src/elements/dialog/internals/Rename.js.map +1 -1
  37. package/build/src/elements/environment/EnvironmentEditor.d.ts +1 -1
  38. package/build/src/elements/environment/EnvironmentEditor.d.ts.map +1 -1
  39. package/build/src/elements/environment/EnvironmentEditor.js +5 -4
  40. package/build/src/elements/environment/EnvironmentEditor.js.map +1 -1
  41. package/build/src/elements/http/BodyEditor.d.ts +1 -3
  42. package/build/src/elements/http/BodyEditor.d.ts.map +1 -1
  43. package/build/src/elements/http/BodyEditor.js +25 -20
  44. package/build/src/elements/http/BodyEditor.js.map +1 -1
  45. package/build/src/elements/http/BodyMultipartEditor.d.ts +1 -1
  46. package/build/src/elements/http/BodyMultipartEditor.d.ts.map +1 -1
  47. package/build/src/elements/http/BodyMultipartEditor.js +3 -3
  48. package/build/src/elements/http/BodyMultipartEditor.js.map +1 -1
  49. package/build/src/elements/http/CertificateAdd.element.d.ts +1 -3
  50. package/build/src/elements/http/CertificateAdd.element.d.ts.map +1 -1
  51. package/build/src/elements/http/CertificateAdd.element.js +6 -10
  52. package/build/src/elements/http/CertificateAdd.element.js.map +1 -1
  53. package/build/src/elements/http/HeadersForm.d.ts +1 -1
  54. package/build/src/elements/http/HeadersForm.d.ts.map +1 -1
  55. package/build/src/elements/http/HeadersForm.js +3 -3
  56. package/build/src/elements/http/HeadersForm.js.map +1 -1
  57. package/build/src/elements/http/HttpAssertions.element.d.ts +1 -1
  58. package/build/src/elements/http/HttpAssertions.element.d.ts.map +1 -1
  59. package/build/src/elements/http/HttpAssertions.element.js +2 -2
  60. package/build/src/elements/http/HttpAssertions.element.js.map +1 -1
  61. package/build/src/elements/http/HttpFlows.element.d.ts +1 -1
  62. package/build/src/elements/http/HttpFlows.element.d.ts.map +1 -1
  63. package/build/src/elements/http/HttpFlows.element.js +6 -6
  64. package/build/src/elements/http/HttpFlows.element.js.map +1 -1
  65. package/build/src/elements/http/RequestEditor.d.ts +1 -3
  66. package/build/src/elements/http/RequestEditor.d.ts.map +1 -1
  67. package/build/src/elements/http/RequestEditor.js +10 -11
  68. package/build/src/elements/http/RequestEditor.js.map +1 -1
  69. package/build/src/elements/http/UrlParamsForm.d.ts +1 -1
  70. package/build/src/elements/http/UrlParamsForm.d.ts.map +1 -1
  71. package/build/src/elements/http/UrlParamsForm.js +4 -4
  72. package/build/src/elements/http/UrlParamsForm.js.map +1 -1
  73. package/build/src/elements/project/HttpProjectRequest.d.ts +1 -1
  74. package/build/src/elements/project/HttpProjectRequest.d.ts.map +1 -1
  75. package/build/src/elements/project/HttpProjectRequest.js +3 -3
  76. package/build/src/elements/project/HttpProjectRequest.js.map +1 -1
  77. package/build/src/elements/project/HttpProjectRequestHistory.d.ts +1 -2
  78. package/build/src/elements/project/HttpProjectRequestHistory.d.ts.map +1 -1
  79. package/build/src/elements/project/HttpProjectRequestHistory.js +5 -6
  80. package/build/src/elements/project/HttpProjectRequestHistory.js.map +1 -1
  81. package/build/src/elements/project/ProjectRunReport.d.ts +1 -1
  82. package/build/src/elements/project/ProjectRunReport.d.ts.map +1 -1
  83. package/build/src/elements/project/ProjectRunReport.js +7 -7
  84. package/build/src/elements/project/ProjectRunReport.js.map +1 -1
  85. package/build/src/elements/project/ProjectRunner.d.ts +1 -2
  86. package/build/src/elements/project/ProjectRunner.d.ts.map +1 -1
  87. package/build/src/elements/project/ProjectRunner.js +4 -5
  88. package/build/src/elements/project/ProjectRunner.js.map +1 -1
  89. package/build/src/md/button/internals/base.d.ts +98 -0
  90. package/build/src/md/button/internals/base.d.ts.map +1 -0
  91. package/build/src/md/button/internals/base.js +353 -0
  92. package/build/src/md/button/internals/base.js.map +1 -0
  93. package/build/src/md/button/internals/button.d.ts +7 -75
  94. package/build/src/md/button/internals/button.d.ts.map +1 -1
  95. package/build/src/md/button/internals/button.js +18 -247
  96. package/build/src/md/button/internals/button.js.map +1 -1
  97. package/build/src/md/button/internals/{button-styles.d.ts → button.styles.d.ts} +1 -1
  98. package/build/src/md/button/internals/button.styles.d.ts.map +1 -0
  99. package/build/src/md/button/internals/button.styles.js +319 -0
  100. package/build/src/md/button/internals/button.styles.js.map +1 -0
  101. package/build/src/md/button/internals/group.d.ts +54 -0
  102. package/build/src/md/button/internals/group.d.ts.map +1 -0
  103. package/build/src/md/button/internals/group.js +157 -0
  104. package/build/src/md/button/internals/group.js.map +1 -0
  105. package/build/src/md/button/internals/{text-button.styles.d.ts → group.styles.d.ts} +1 -1
  106. package/build/src/md/button/internals/group.styles.d.ts.map +1 -0
  107. package/build/src/md/button/internals/group.styles.js +102 -0
  108. package/build/src/md/button/internals/group.styles.js.map +1 -0
  109. package/build/src/md/button/ui-button-group.d.ts +11 -0
  110. package/build/src/md/button/ui-button-group.d.ts.map +1 -0
  111. package/build/src/md/{icon-button/ui-filled-icon-button.js → button/ui-button-group.js} +10 -11
  112. package/build/src/md/button/ui-button-group.js.map +1 -0
  113. package/build/src/md/button/ui-button.d.ts +14 -0
  114. package/build/src/md/button/ui-button.d.ts.map +1 -0
  115. package/build/src/md/button/{ui-text-button.js → ui-button.js} +10 -11
  116. package/build/src/md/button/ui-button.js.map +1 -0
  117. package/build/src/md/dialog/internals/Dialog.d.ts +5 -5
  118. package/build/src/md/dialog/internals/Dialog.d.ts.map +1 -1
  119. package/build/src/md/dialog/internals/Dialog.js +14 -9
  120. package/build/src/md/dialog/internals/Dialog.js.map +1 -1
  121. package/build/src/md/dropdown-list/internals/UiDropdownList.d.ts +1 -1
  122. package/build/src/md/dropdown-list/internals/UiDropdownList.js +1 -1
  123. package/build/src/md/dropdown-list/internals/UiDropdownList.js.map +1 -1
  124. package/build/src/md/icon-button/internals/IconButton.d.ts +12 -36
  125. package/build/src/md/icon-button/internals/IconButton.d.ts.map +1 -1
  126. package/build/src/md/icon-button/internals/IconButton.js +32 -144
  127. package/build/src/md/icon-button/internals/IconButton.js.map +1 -1
  128. package/build/src/md/{button/internals/filled-button.styles.d.ts → icon-button/internals/IconButton.styles.d.ts} +1 -1
  129. package/build/src/md/icon-button/internals/IconButton.styles.d.ts.map +1 -0
  130. package/build/src/md/icon-button/internals/IconButton.styles.js +286 -0
  131. package/build/src/md/icon-button/internals/IconButton.styles.js.map +1 -0
  132. package/build/src/md/icon-button/ui-icon-button.d.ts.map +1 -1
  133. package/build/src/md/icon-button/ui-icon-button.js +2 -3
  134. package/build/src/md/icon-button/ui-icon-button.js.map +1 -1
  135. package/build/src/md/ripple/internals/ripple.d.ts +2 -0
  136. package/build/src/md/ripple/internals/ripple.d.ts.map +1 -1
  137. package/build/src/md/ripple/internals/ripple.js +20 -10
  138. package/build/src/md/ripple/internals/ripple.js.map +1 -1
  139. package/build/src/md/ripple/internals/ripple.styles.d.ts.map +1 -1
  140. package/build/src/md/ripple/internals/ripple.styles.js +8 -20
  141. package/build/src/md/ripple/internals/ripple.styles.js.map +1 -1
  142. package/build/src/md/snackbar/internals/Snackbar.d.ts +1 -1
  143. package/build/src/md/snackbar/internals/Snackbar.d.ts.map +1 -1
  144. package/build/src/md/snackbar/internals/Snackbar.js +4 -2
  145. package/build/src/md/snackbar/internals/Snackbar.js.map +1 -1
  146. package/build/src/md/text-field/internals/filled.styles.d.ts.map +1 -1
  147. package/build/src/md/text-field/internals/filled.styles.js +3 -0
  148. package/build/src/md/text-field/internals/filled.styles.js.map +1 -1
  149. package/build/src/styles/m3/dialog.module.d.ts +2 -2
  150. package/build/src/styles/m3/dialog.module.js +2 -2
  151. package/build/src/styles/m3/dialog.module.js.map +1 -1
  152. package/build/src/styles/m3/tokens.d.ts.map +1 -1
  153. package/build/src/styles/m3/tokens.js +208 -182
  154. package/build/src/styles/m3/tokens.js.map +1 -1
  155. package/demo/elements/authorization/oauth-authorize.html +1 -1
  156. package/demo/elements/authorization/oauth-authorize.ts +1 -1
  157. package/demo/elements/environment/variables-editor.ts +2 -2
  158. package/demo/elements/http/url-editing.ts +3 -3
  159. package/demo/elements/project/request-editor.ts +4 -4
  160. package/demo/layout/index.ts +5 -5
  161. package/demo/md/buttons/button.html +121 -0
  162. package/demo/md/buttons/button.ts +246 -0
  163. package/demo/md/buttons/{index.html → group.html} +15 -2
  164. package/demo/md/buttons/group.ts +171 -0
  165. package/demo/md/checkbox/index.ts +1 -1
  166. package/demo/md/dialog/dialog.ts +8 -9
  167. package/demo/md/dropdown-list/index.ts +68 -71
  168. package/demo/md/icon-button/index.html +97 -7
  169. package/demo/md/icon-button/index.ts +97 -201
  170. package/demo/md/index.html +3 -1
  171. package/demo/md/inputs/input.ts +1 -1
  172. package/demo/md/inputs/radio.ts +1 -1
  173. package/demo/md/inputs/switch.ts +1 -1
  174. package/demo/md/notification/snack.ts +5 -5
  175. package/demo/md/progress/progress.ts +4 -3
  176. package/package.json +2 -2
  177. package/src/core/ModalActivity.ts +6 -5
  178. package/src/core/ThemeManager.ts +5 -4
  179. package/src/demo/DemoPage.ts +2 -5
  180. package/src/elements/authorization/ui/CcAuthorization.ts +2 -2
  181. package/src/elements/authorization/ui/OAuth2Authorization.ts +11 -5
  182. package/src/elements/authorization/ui/OidcAuthorization.ts +10 -8
  183. package/src/elements/code/HttpSnippets.ts +5 -5
  184. package/src/elements/dialog/internals/ConfirmDelete.ts +5 -5
  185. package/src/elements/dialog/internals/Rename.ts +6 -5
  186. package/src/elements/environment/EnvironmentEditor.ts +5 -4
  187. package/src/elements/http/BodyEditor.ts +25 -20
  188. package/src/elements/http/BodyMultipartEditor.ts +3 -3
  189. package/src/elements/http/CertificateAdd.element.ts +6 -10
  190. package/src/elements/http/HeadersForm.ts +3 -3
  191. package/src/elements/http/HttpAssertions.element.ts +2 -2
  192. package/src/elements/http/HttpFlows.element.ts +6 -6
  193. package/src/elements/http/RequestEditor.ts +10 -11
  194. package/src/elements/http/UrlParamsForm.ts +4 -4
  195. package/src/elements/project/HttpProjectRequest.ts +3 -3
  196. package/src/elements/project/HttpProjectRequestHistory.ts +5 -6
  197. package/src/elements/project/ProjectRunReport.ts +7 -7
  198. package/src/elements/project/ProjectRunner.ts +4 -5
  199. package/src/md/button/internals/base.ts +299 -0
  200. package/src/md/button/internals/button.styles.ts +319 -0
  201. package/src/md/button/internals/button.ts +8 -234
  202. package/src/md/button/internals/group.styles.ts +102 -0
  203. package/src/md/button/internals/group.ts +121 -0
  204. package/src/md/button/ui-button-group.ts +15 -0
  205. package/src/md/button/ui-button.ts +18 -0
  206. package/src/md/dialog/internals/Dialog.ts +14 -9
  207. package/src/md/dropdown-list/internals/UiDropdownList.ts +1 -1
  208. package/src/md/icon-button/internals/IconButton.styles.ts +286 -0
  209. package/src/md/icon-button/internals/IconButton.ts +15 -139
  210. package/src/md/icon-button/ui-icon-button.ts +2 -3
  211. package/src/md/ripple/internals/ripple.styles.ts +8 -20
  212. package/src/md/ripple/internals/ripple.ts +21 -13
  213. package/src/md/snackbar/internals/Snackbar.ts +4 -2
  214. package/src/md/text-field/internals/filled.styles.ts +3 -0
  215. package/src/styles/m3/dialog.module.ts +2 -2
  216. package/src/styles/m3/native.css +270 -0
  217. package/src/styles/m3/tokens.css +208 -182
  218. package/src/styles/m3/tokens.ts +208 -182
  219. package/test/ui/button/UiButton.test.ts +51 -29
  220. package/test/ui/button/UiIconButton.test.ts +25 -19
  221. package/test/ui/dialog/UiDialog.test.ts +10 -10
  222. package/build/src/md/button/internals/button-styles.d.ts.map +0 -1
  223. package/build/src/md/button/internals/button-styles.js +0 -143
  224. package/build/src/md/button/internals/button-styles.js.map +0 -1
  225. package/build/src/md/button/internals/elevated-button.d.ts +0 -4
  226. package/build/src/md/button/internals/elevated-button.d.ts.map +0 -1
  227. package/build/src/md/button/internals/elevated-button.js +0 -4
  228. package/build/src/md/button/internals/elevated-button.js.map +0 -1
  229. package/build/src/md/button/internals/elevated-button.styles.d.ts +0 -3
  230. package/build/src/md/button/internals/elevated-button.styles.d.ts.map +0 -1
  231. package/build/src/md/button/internals/elevated-button.styles.js +0 -38
  232. package/build/src/md/button/internals/elevated-button.styles.js.map +0 -1
  233. package/build/src/md/button/internals/filled-button.d.ts +0 -4
  234. package/build/src/md/button/internals/filled-button.d.ts.map +0 -1
  235. package/build/src/md/button/internals/filled-button.js +0 -4
  236. package/build/src/md/button/internals/filled-button.js.map +0 -1
  237. package/build/src/md/button/internals/filled-button.styles.d.ts.map +0 -1
  238. package/build/src/md/button/internals/filled-button.styles.js +0 -30
  239. package/build/src/md/button/internals/filled-button.styles.js.map +0 -1
  240. package/build/src/md/button/internals/filled-tonal-button.d.ts +0 -4
  241. package/build/src/md/button/internals/filled-tonal-button.d.ts.map +0 -1
  242. package/build/src/md/button/internals/filled-tonal-button.js +0 -4
  243. package/build/src/md/button/internals/filled-tonal-button.js.map +0 -1
  244. package/build/src/md/button/internals/filled-tonal-button.styles.d.ts +0 -3
  245. package/build/src/md/button/internals/filled-tonal-button.styles.d.ts.map +0 -1
  246. package/build/src/md/button/internals/filled-tonal-button.styles.js +0 -30
  247. package/build/src/md/button/internals/filled-tonal-button.styles.js.map +0 -1
  248. package/build/src/md/button/internals/outlined-button.d.ts +0 -4
  249. package/build/src/md/button/internals/outlined-button.d.ts.map +0 -1
  250. package/build/src/md/button/internals/outlined-button.js +0 -4
  251. package/build/src/md/button/internals/outlined-button.js.map +0 -1
  252. package/build/src/md/button/internals/outlined-button.styles.d.ts +0 -3
  253. package/build/src/md/button/internals/outlined-button.styles.d.ts.map +0 -1
  254. package/build/src/md/button/internals/outlined-button.styles.js +0 -31
  255. package/build/src/md/button/internals/outlined-button.styles.js.map +0 -1
  256. package/build/src/md/button/internals/text-button.d.ts +0 -4
  257. package/build/src/md/button/internals/text-button.d.ts.map +0 -1
  258. package/build/src/md/button/internals/text-button.js +0 -4
  259. package/build/src/md/button/internals/text-button.js.map +0 -1
  260. package/build/src/md/button/internals/text-button.styles.d.ts.map +0 -1
  261. package/build/src/md/button/internals/text-button.styles.js +0 -30
  262. package/build/src/md/button/internals/text-button.styles.js.map +0 -1
  263. package/build/src/md/button/ui-elevated-button.d.ts +0 -14
  264. package/build/src/md/button/ui-elevated-button.d.ts.map +0 -1
  265. package/build/src/md/button/ui-elevated-button.js +0 -31
  266. package/build/src/md/button/ui-elevated-button.js.map +0 -1
  267. package/build/src/md/button/ui-filled-button.d.ts +0 -14
  268. package/build/src/md/button/ui-filled-button.d.ts.map +0 -1
  269. package/build/src/md/button/ui-filled-button.js +0 -31
  270. package/build/src/md/button/ui-filled-button.js.map +0 -1
  271. package/build/src/md/button/ui-filled-tonal-button.d.ts +0 -14
  272. package/build/src/md/button/ui-filled-tonal-button.d.ts.map +0 -1
  273. package/build/src/md/button/ui-filled-tonal-button.js +0 -31
  274. package/build/src/md/button/ui-filled-tonal-button.js.map +0 -1
  275. package/build/src/md/button/ui-outlined-button.d.ts +0 -14
  276. package/build/src/md/button/ui-outlined-button.d.ts.map +0 -1
  277. package/build/src/md/button/ui-outlined-button.js +0 -31
  278. package/build/src/md/button/ui-outlined-button.js.map +0 -1
  279. package/build/src/md/button/ui-text-button.d.ts +0 -14
  280. package/build/src/md/button/ui-text-button.d.ts.map +0 -1
  281. package/build/src/md/button/ui-text-button.js.map +0 -1
  282. package/build/src/md/icon-button/ui-filled-icon-button.d.ts +0 -11
  283. package/build/src/md/icon-button/ui-filled-icon-button.d.ts.map +0 -1
  284. package/build/src/md/icon-button/ui-filled-icon-button.js.map +0 -1
  285. package/build/src/md/icon-button/ui-filled-tonal-icon-button.d.ts +0 -11
  286. package/build/src/md/icon-button/ui-filled-tonal-icon-button.d.ts.map +0 -1
  287. package/build/src/md/icon-button/ui-filled-tonal-icon-button.js +0 -28
  288. package/build/src/md/icon-button/ui-filled-tonal-icon-button.js.map +0 -1
  289. package/build/src/md/icon-button/ui-outlined-icon-button.d.ts +0 -11
  290. package/build/src/md/icon-button/ui-outlined-icon-button.d.ts.map +0 -1
  291. package/build/src/md/icon-button/ui-outlined-icon-button.js +0 -28
  292. package/build/src/md/icon-button/ui-outlined-icon-button.js.map +0 -1
  293. package/demo/md/buttons/index.ts +0 -279
  294. package/src/md/button/internals/button-styles.ts +0 -143
  295. package/src/md/button/internals/elevated-button.styles.ts +0 -38
  296. package/src/md/button/internals/elevated-button.ts +0 -3
  297. package/src/md/button/internals/filled-button.styles.ts +0 -30
  298. package/src/md/button/internals/filled-button.ts +0 -3
  299. package/src/md/button/internals/filled-tonal-button.styles.ts +0 -30
  300. package/src/md/button/internals/filled-tonal-button.ts +0 -3
  301. package/src/md/button/internals/outlined-button.styles.ts +0 -31
  302. package/src/md/button/internals/outlined-button.ts +0 -3
  303. package/src/md/button/internals/text-button.styles.ts +0 -30
  304. package/src/md/button/internals/text-button.ts +0 -3
  305. package/src/md/button/ui-elevated-button.ts +0 -19
  306. package/src/md/button/ui-filled-button.ts +0 -19
  307. package/src/md/button/ui-filled-tonal-button.ts +0 -19
  308. package/src/md/button/ui-outlined-button.ts +0 -19
  309. package/src/md/button/ui-text-button.ts +0 -19
  310. package/src/md/icon-button/ui-filled-icon-button.ts +0 -16
  311. package/src/md/icon-button/ui-filled-tonal-icon-button.ts +0 -16
  312. package/src/md/icon-button/ui-outlined-icon-button.ts +0 -16
@@ -0,0 +1,270 @@
1
+ /* Styling for the native UI controls to look like MD elements */
2
+
3
+ /*
4
+ Material Select
5
+
6
+ Behaves mostly like an outlined input with a label.
7
+ */
8
+
9
+ @keyframes focus-outline-inward {
10
+ 0% {
11
+ outline-width: 0;
12
+ outline-offset: 0;
13
+ }
14
+ 50% {
15
+ outline-width: var(--md-focus-ring-active-width, 8px);
16
+ outline-offset: calc(-1 * var(--md-focus-ring-active-width, 8px));
17
+ }
18
+ 100% {
19
+ outline-width: var(--md-focus-ring-width, 3px);
20
+ outline-offset: calc(-1 * var(--md-focus-ring-width, 3px));
21
+ }
22
+ }
23
+
24
+ .md-select {
25
+ display: inline-block;
26
+ vertical-align: top;
27
+
28
+ --_outline-color: var(--md-focus-ring-color, var(--md-sys-color-secondary));
29
+
30
+ select,
31
+ ::picker(select) {
32
+ appearance: base-select;
33
+ }
34
+
35
+ select {
36
+ height: 56px;
37
+ display: inline-flex;
38
+ align-items: center;
39
+ justify-content: start;
40
+ box-sizing: border-box;
41
+ gap: 0;
42
+ padding: 0 16px 0 16px;
43
+
44
+ .prefix, .suffix {
45
+ min-width: 16px;
46
+ }
47
+
48
+ .prefix {
49
+ margin-left: 12px;
50
+ margin-right: 16px;
51
+ }
52
+
53
+ .suffix {
54
+ margin-left: 12px;
55
+ margin-right: 12px;
56
+ }
57
+
58
+ .prefix, selectedcontent, .suffix {
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: start;
62
+ }
63
+
64
+ selectedcontent {
65
+ padding-right: 16px;
66
+ }
67
+ }
68
+
69
+ select:has(.suffix) selectedcontent {
70
+ padding-right: 0;
71
+ }
72
+
73
+ select:has(.prefix) {
74
+ padding-left: 0;
75
+ }
76
+
77
+ option {
78
+ display: flex;
79
+ align-items: center;
80
+ overflow: hidden;
81
+ padding: 8px 16px;
82
+ box-sizing: border-box;
83
+ height: 56px;
84
+ cursor: default;
85
+ position: relative;
86
+
87
+ outline: 0 solid var(--_outline-color);
88
+ outline-offset: -3px;
89
+ }
90
+
91
+ option:hover {
92
+ background-color: transparent;
93
+ &::before {
94
+ opacity: var(--md-sys-state-hover-state-layer-opacity);
95
+ background-color: var(--md-sys-color-primary);
96
+ content: '';
97
+ position: absolute;
98
+ inset: 0;
99
+ }
100
+ }
101
+
102
+ option:focus-visible {
103
+ background-color: transparent;
104
+ animation: focus-outline-inward var(--md-focus-ring-duration, 600ms) cubic-bezier(0.2, 0, 0, 1) forwards;
105
+ }
106
+
107
+ @media(prefers-reduced-motion) {
108
+ option:focus-visible {
109
+ animation: none;
110
+ outline-width: var(--md-focus-ring-width, 3px);
111
+ outline-offset: calc(-1 * var(--md-focus-ring-width, 3px));
112
+ }
113
+ }
114
+
115
+ ::picker(select) {
116
+ border: none;
117
+ padding: 10px 0;
118
+ background-color: var(--md-sys-color-surface);
119
+ transform: scaleY(0);
120
+ transition: all 250ms cubic-bezier(0.2, 0, 0, 1) 0s allow-discrete;
121
+ transform-origin: top center;
122
+ width: fit-content;
123
+ box-shadow: var(--md-sys-elevation-1);
124
+ border-radius: var(--md-sys-shape-corner-medium);
125
+ }
126
+
127
+ ::picker(select):popover-open {
128
+ transform: scaleY(1);
129
+ }
130
+
131
+ @starting-style {
132
+ ::picker(select):popover-open {
133
+ transform: scaleY(0);
134
+ }
135
+ }
136
+
137
+ label {
138
+ font-family: var(--md-sys-typescale-label-medium-font);
139
+ font-size: var(--md-sys-typescale-label-medium-size);
140
+ letter-spacing: var(--md-sys-typescale-label-medium-tracking);
141
+ line-height: var(--md-sys-typescale-label-medium-height);
142
+ font-weight: var(--md-ref-typeface-weight-regular);
143
+ position: absolute;
144
+ }
145
+
146
+ label:has( + select:focus-within ) {
147
+ color: var(--md-sys-color-primary);
148
+ }
149
+
150
+ select::picker-icon {
151
+ font-family: var(--md-icon-font, Material Symbols Outlined);
152
+ font-weight: 400;
153
+ font-variation-settings:
154
+ 'FILL' 0,
155
+ 'wght' 700,
156
+ 'GRAD' 200,
157
+ 'opsz' 24;
158
+ content: "\e5c5";
159
+ letter-spacing: 0;
160
+ color: currentColor;
161
+ }
162
+
163
+ option::checkmark {
164
+ font-family: var(--md-icon-font, Material Symbols Outlined);
165
+ font-weight: 400;
166
+ font-variation-settings:
167
+ 'FILL' 0,
168
+ 'wght' 700,
169
+ 'GRAD' 200,
170
+ 'opsz' 24;
171
+ content: "\e5ca";
172
+ letter-spacing: 0;
173
+ color: var(--md-sys-color-primary);
174
+ }
175
+
176
+ &.outlined {
177
+ position: relative;
178
+
179
+ select {
180
+ border: 1px var(--md-sys-color-outline) solid;
181
+ outline: 0 solid var(--md-sys-color-primary);
182
+ outline-offset: 0;
183
+ transition: border-color var(--md-sys-motion-duration-short3) var(--md-sys-motion-easing-standard-accelerate);
184
+ border-radius: var(--md-sys-shape-corner-extra-small);
185
+ background-color: transparent;
186
+
187
+ &:hover:not(:focus-visible) {
188
+ border-color: var(--md-sys-color-on-surface);
189
+ }
190
+
191
+ &:focus-within {
192
+ outline-width: var(--md-focus-ring-width, 3px);
193
+ outline-offset: calc(-1 * var(--md-focus-ring-width, 3px));
194
+ }
195
+
196
+ &:focus-visible {
197
+ animation: focus-outline-inward var(--md-focus-ring-duration, 600ms) cubic-bezier(0.2, 0, 0, 1) forwards;
198
+ }
199
+ }
200
+
201
+ @media(prefers-reduced-motion) {
202
+ select:focus-visible {
203
+ animation: none;
204
+ outline-width: var(--md-focus-ring-width, 3px);
205
+ outline-offset: calc(-1 * var(--md-focus-ring-width, 3px));
206
+ }
207
+ }
208
+
209
+ label {
210
+ background-color: var(--md-sys-color-surface);
211
+ padding: 0 4px;
212
+ color: var(--md-sys-color-on-surface-variant);
213
+ left: 12px;
214
+ top: -7px;
215
+ }
216
+ }
217
+
218
+ &.filled {
219
+ position: relative;
220
+
221
+ select {
222
+ background-color: var(--md-sys-color-surface-variant);
223
+ border: none;
224
+ /* border-bottom: 1px solid var(--md-sys-color-on-surface-variant); */
225
+ border-radius: var(--md-sys-shape-corner-extra-small-top);
226
+ outline: none;
227
+
228
+ selectedcontent {
229
+ padding-top: 1em;
230
+ }
231
+ }
232
+
233
+ select::before {
234
+ content: '';
235
+ border-bottom: 1px solid var(--md-sys-color-on-surface-variant);
236
+ inset: auto 0 0;
237
+ position: absolute;
238
+ }
239
+
240
+ select::after {
241
+ content: '';
242
+ border-bottom-color: var(--md-sys-color-primary);
243
+ border-bottom-width: 2px;
244
+ border-bottom-style: solid;
245
+ opacity: 0;
246
+ transform: scaleX(0);
247
+ transform-origin: center center;
248
+
249
+ transition:
250
+ opacity 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s,
251
+ transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
252
+
253
+ position: absolute;
254
+ inset: auto 0 0;
255
+ }
256
+
257
+ select:focus-within::after {
258
+ opacity: 1;
259
+ transform: scaleX(1);
260
+
261
+ }
262
+
263
+ label {
264
+ color: var(--md-sys-color-on-surface-variant);
265
+ transform: translateY(-1.35rem);
266
+ top: 50%;
267
+ left: 16px;
268
+ }
269
+ }
270
+ }