@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
@@ -2,22 +2,35 @@
2
2
  <html lang="en-GB">
3
3
  <head>
4
4
  <meta charset="utf-8">
5
- <title>UI button</title>
5
+ <title>UI button group</title>
6
6
  <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0">
7
7
  <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
8
+ <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&icon_names=arrow_drop_down,check" rel="stylesheet" />
8
9
  <link href="../../../src/styles/m3/tokens.css" rel="stylesheet" type="text/css" />
9
10
  <link href="../../../src/styles/m3/theme.css" rel="stylesheet" type="text/css" />
11
+ <link href="../../../src/styles/m3/native.css" rel="stylesheet" type="text/css" />
10
12
  <style>
11
13
  .demo-row {
12
14
  margin: 20px 0;
13
15
  display: flex;
14
16
  gap: 12px;
17
+ flex-wrap: wrap;
18
+ }
19
+
20
+ .demo h2, .demo h3 {
21
+ margin-bottom: 36px;
22
+ }
23
+
24
+ .frame {
25
+ padding: 40px;
26
+ border-radius: 20px;
27
+ border: 1px var(--md-sys-color-outline) solid;
15
28
  }
16
29
  </style>
17
30
  </head>
18
31
  <body>
19
32
  <div id="app"></div>
20
33
 
21
- <script type="module" src="/.tmp/demo/md/buttons/index.js"></script>
34
+ <script type="module" src="/.tmp/demo/md/buttons/group.js"></script>
22
35
  </body>
23
36
  </html>
@@ -0,0 +1,171 @@
1
+ import { html, TemplateResult } from 'lit'
2
+ import { reactive } from '../../../src/decorators/index.js'
3
+ import { DemoPage } from '../../../src/demo/DemoPage.js'
4
+ import type { MdButtonShape, MdButtonSize, MdButtonColor } from '../../../src/md/button/internals/button.js'
5
+
6
+ import '../../../src/md/button/ui-button.js'
7
+ import '../../../src/md/icons/ui-icon.js'
8
+ import '../../../src/md/button/ui-button-group.js'
9
+
10
+ class ComponentDemoPage extends DemoPage {
11
+ override accessor componentName = 'UI button group'
12
+
13
+ @reactive() accessor size: MdButtonSize = 's'
14
+
15
+ @reactive() accessor shape: MdButtonShape = 'round'
16
+
17
+ @reactive() accessor color: MdButtonColor = 'filled'
18
+
19
+ handleSizeChange(e: Event): void {
20
+ const select = e.target as HTMLSelectElement
21
+ this.size = select.value as MdButtonSize
22
+ }
23
+
24
+ handleShapeChange(e: Event): void {
25
+ const select = e.target as HTMLSelectElement
26
+ this.shape = select.value as MdButtonShape
27
+ }
28
+
29
+ handleColorChange(e: Event): void {
30
+ const select = e.target as HTMLSelectElement
31
+ this.color = select.value as MdButtonColor
32
+ }
33
+
34
+ readonly icon = html`<ui-icon slot="icon" icon="edit"></ui-icon>`
35
+
36
+ contentTemplate(): TemplateResult {
37
+ const { size: s, icon: i, color: c } = this
38
+ return html`
39
+ <a href="../">Back</a>
40
+ ${this.renderConfigurationSection()}
41
+ <section class="demo-section ${s}">
42
+ <h2 class="display-large">Anatomy</h2>
43
+ <div class="frame">
44
+ <div class="demo-row">
45
+ <ui-button-group size="${s}">
46
+ <ui-button color="tonal">${i}</ui-button>
47
+ <ui-button color="tonal">${i}</ui-button>
48
+ <ui-button color="tonal">${i}Three</ui-button>
49
+ <ui-button color="tonal">${i}</ui-button>
50
+ <ui-button color="tonal">${i}</ui-button>
51
+ </ui-button-group>
52
+ </div>
53
+ <div class="demo-row">
54
+ <ui-button-group type="connected" size="${s}">
55
+ <ui-button color="filled">${i}Label</ui-button>
56
+ <ui-button color="filled">${i}Label</ui-button>
57
+ <ui-button color="filled">${i}Label</ui-button>
58
+ <ui-button color="filled">${i}Label</ui-button>
59
+ <ui-button color="filled">${i}Label</ui-button>
60
+ </ui-button-group>
61
+ </div>
62
+ </div>
63
+
64
+ <section class="demo-section ${s}">
65
+ <h2 class="display-large">States</h2>
66
+ <h3 class="headline-medium">Connected button group</h3>
67
+
68
+ <div class="frame">
69
+ <h4 class="title-medium">Multi selection</h4>
70
+ <div class="demo-row">
71
+ <ui-button-group type="connected" size="${s}" multiple>
72
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
73
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
74
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
75
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
76
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
77
+ </ui-button-group>
78
+ </div>
79
+
80
+ <h4 class="title-medium">Single selection</h4>
81
+ <div class="demo-row">
82
+ <ui-button-group type="connected" size="${s}">
83
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
84
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
85
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
86
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
87
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
88
+ </ui-button-group>
89
+ </div>
90
+ </div>
91
+ </section>
92
+
93
+ <section class="demo-section ${s}">
94
+ <h3 class="headline-medium">Standard button group</h3>
95
+
96
+ <div class="frame">
97
+ <h4 class="title-medium">Multi selection</h4>
98
+ <div class="demo-row">
99
+ <ui-button-group type="standard" size="${s}" multiple>
100
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
101
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
102
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
103
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
104
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
105
+ </ui-button-group>
106
+ </div>
107
+
108
+ <h4 class="title-medium">Single selection</h4>
109
+ <div class="demo-row">
110
+ <ui-button-group type="standard" size="${s}">
111
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
112
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
113
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
114
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
115
+ <ui-button color="${c}" toggle>${i}Label</ui-button>
116
+ </ui-button-group>
117
+ </div>
118
+ </div>
119
+ </section>
120
+ </section>
121
+ `
122
+ }
123
+
124
+ renderConfigurationSection(): TemplateResult {
125
+ const { size: s, shape: h, color: c } = this
126
+ return html`
127
+ <section class="demo-section">
128
+ <h2 class="title-large">Configuration</h2>
129
+ <div class="md-select outlined">
130
+ <label for="size">Size</label>
131
+ <select class="md-select" id="size" @change="${this.handleSizeChange}" name="size" .value="${s}">
132
+ <button>
133
+ <selectedcontent></selectedcontent>
134
+ </button>
135
+ <option value="xs">Extra small</option>
136
+ <option value="s">Small</option>
137
+ <option value="m">Medium</option>
138
+ <option value="l">Large</option>
139
+ <option value="xl">Extra large</option>
140
+ </select>
141
+ </div>
142
+ <div class="md-select outlined">
143
+ <label for="shape">Shape</label>
144
+ <select id="shape" @change="${this.handleShapeChange}" name="shape" .value="${h}">
145
+ <button>
146
+ <selectedcontent></selectedcontent>
147
+ </button>
148
+ <option value="round">Round</option>
149
+ <option value="square">Square</option>
150
+ </select>
151
+ </div>
152
+ <div class="md-select outlined">
153
+ <label for="color">Color</label>
154
+ <select id="color" @change="${this.handleColorChange}" name="color" .value="${c}">
155
+ <button>
156
+ <selectedcontent></selectedcontent>
157
+ </button>
158
+ <option value="elevated">Elevated</option>
159
+ <option value="filled">Filled</option>
160
+ <option value="outlined">Outlined</option>
161
+ <option value="text">Text</option>
162
+ <option value="tonal">Tonal</option>
163
+ </select>
164
+ </div>
165
+ </section>
166
+ `
167
+ }
168
+ }
169
+
170
+ const instance = new ComponentDemoPage()
171
+ instance.render()
@@ -201,7 +201,7 @@ class ComponentDemoPage extends DemoPage {
201
201
  Always indeterminate
202
202
  </label>
203
203
 
204
- <ui-filled-button name="submit" value="on" type="submit">Submit</ui-filled-button>
204
+ <ui-button name="submit" value="on" type="submit">Submit</ui-button>
205
205
  </form>
206
206
 
207
207
  ${formValues
@@ -1,7 +1,6 @@
1
1
  import { html, TemplateResult } from 'lit'
2
2
  import { DemoPage } from '../../../src/demo/DemoPage.js'
3
- import '../../../src/md/button/ui-text-button.js'
4
- import '../../../src/md/button/ui-filled-button.js'
3
+ import '../../../src/md/button/ui-button.js'
5
4
  import '../../../src/md/icons/ui-icon.js'
6
5
  import '../../../src/md/dialog/ui-dialog.js'
7
6
  import '../../../src/md/divider/ui-divider.js'
@@ -79,10 +78,10 @@ class ComponentDemoPage extends DemoPage {
79
78
  return html`
80
79
  <section class="demo-section">
81
80
  <h2 class="title-large">Simple dialog</h2>
82
- <ui-filled-button @click="${this.openSimple}">Open</ui-filled-button>
81
+ <ui-button color="filled" @click="${this.openSimple}">Open</ui-button>
83
82
  <ui-dialog ?open="${this.simpleOpened}" @close="${this.basicClosed}">
84
83
  <p>This is a confirmation dialog content</p>
85
- <ui-text-button slot="button" value="dismiss">Dismiss</ui-text-button>
84
+ <ui-button color="text" slot="button" value="dismiss">Dismiss</ui-button>
86
85
  </ui-dialog>
87
86
  </section>
88
87
  `
@@ -92,7 +91,7 @@ class ComponentDemoPage extends DemoPage {
92
91
  return html`
93
92
  <section class="demo-section">
94
93
  <h2 class="title-large">Full UI dialog</h2>
95
- <ui-filled-button @click="${this.openFull}">Open</ui-filled-button>
94
+ <ui-button color="filled" @click="${this.openFull}">Open</ui-button>
96
95
  <ui-dialog ?open="${this.fullOpened}" @close="${this.fullClosed}" modal style="--ui-dialog-max-width: 380px">
97
96
  <ui-icon slot="icon" icon="deleteOutline"></ui-icon>
98
97
  <span slot="title">Reset settings?</span>
@@ -106,9 +105,9 @@ class ComponentDemoPage extends DemoPage {
106
105
  <ui-list-item>email2@gmail.com</ui-list-item>
107
106
  </ui-list>
108
107
  <ui-divider></ui-divider>
109
- <ui-text-button slot="button" @click="${this.handleInertButton}">Learn more</ui-text-button>
110
- <ui-text-button slot="button" value="dismiss">Cancel</ui-text-button>
111
- <ui-text-button slot="button" value="confirm">Accept</ui-text-button>
108
+ <ui-button color="text" slot="button" @click="${this.handleInertButton}">Learn more</ui-button>
109
+ <ui-button color="text" slot="button" value="dismiss">Cancel</ui-button>
110
+ <ui-button color="text" slot="button" value="confirm">Accept</ui-button>
112
111
  </ui-dialog>
113
112
  </section>
114
113
  `
@@ -119,7 +118,7 @@ class ComponentDemoPage extends DemoPage {
119
118
  <section class="demo-section">
120
119
  <h2 class="title-large">Imperative dialog</h2>
121
120
  <p>This dialog is created using imperative API.</p>
122
- <ui-filled-button @click="${this.openImperative}">Open</ui-filled-button>
121
+ <ui-button color="filled" @click="${this.openImperative}">Open</ui-button>
123
122
  </section>
124
123
  `
125
124
  }
@@ -7,7 +7,7 @@ import '../../../src/md/list/ui-list.js'
7
7
  import '../../../src/md/list/ui-list-item.js'
8
8
  import '../../../src/md/icon-button/ui-icon-button.js'
9
9
  import '../../../src/md/icons/ui-icon.js'
10
- import '../../../src/md/button/ui-outlined-button.js'
10
+ import '../../../src/md/button/ui-button.js'
11
11
 
12
12
  class ComponentDemoPage extends DemoPage {
13
13
  override accessor componentName = 'UI dropdown list'
@@ -74,51 +74,12 @@ class ComponentDemoPage extends DemoPage {
74
74
  contentTemplate(): TemplateResult {
75
75
  const { list1Selected, list2Selected, list3Selected, verticalAlign, horizontalAlign, noOverlap } = this
76
76
  return html`
77
- <a href="../">Back</a>
78
- <section class="demo-section">
79
- <h2 class="title-large">Icon button list</h2>
80
-
81
- <div class="demo-row">
82
- <ui-dropdown-list @select="${this.list1SelectHandler}">
83
- <ui-icon-button aria-label="Trigger the menu"><ui-icon icon="moreVert"></ui-icon></ui-icon-button>
84
- <ui-list slot="dropdown" role="menu">
85
- <ui-list-item role="menuitem" data-item="item 1">Item 1</ui-list-item>
86
- <ui-list-item role="menuitem" data-item="item 2">Item 2</ui-list-item>
87
- <ui-list-item role="menuitem" data-item="item 3">Item 3</ui-list-item>
88
- <ui-list-item role="menuitem" data-item="item 4">Item 4</ui-list-item>
89
- </ui-list>
90
- </ui-dropdown-list>
91
- <p>Last selected: ${list1Selected || 'none'}</p>
92
- </div>
93
-
94
- <h2 class="title-large">Button list</h2>
95
-
96
- <div class="demo-row">
97
- <ui-dropdown-list
98
- @select="${this.list2SelectHandler}"
99
- >
100
- <ui-outlined-button>Click me</ui-icon></ui-outlined-button>
101
- <ui-list slot="dropdown" role="menu">
102
- <ui-list-item role="menuitem" data-item="item 1">Item 1</ui-list-item>
103
- <ui-list-item role="menuitem" data-item="item 2">Item 2</ui-list-item>
104
- <ui-list-item role="menuitem" data-item="item 3">Item 3</ui-list-item>
105
- <ui-list-item role="menuitem" data-item="item 4">Item 4</ui-list-item>
106
- </ui-list>
107
- </ui-dropdown-list>
108
- <p>Last selected: ${list2Selected || 'none'}</p>
109
- </div>
110
-
111
-
112
- <h2 class="title-large">A list in an <code>overflow: hidden</code> element</h2>
113
-
114
- <div class="demo-row">
115
- <div class="button-in-lists">
116
- <ui-dropdown-list
117
- @select="${this.list3SelectHandler}"
118
- .verticalAlign="${verticalAlign}"
119
- .horizontalAlign="${horizontalAlign}"
120
- ?noOverlap="${noOverlap}"
121
- >
77
+ <a href="../">Back</a>
78
+ <section class="demo-section">
79
+ <h2 class="title-large">Icon button list</h2>
80
+
81
+ <div class="demo-row">
82
+ <ui-dropdown-list @select="${this.list1SelectHandler}">
122
83
  <ui-icon-button aria-label="Trigger the menu"><ui-icon icon="moreVert"></ui-icon></ui-icon-button>
123
84
  <ui-list slot="dropdown" role="menu">
124
85
  <ui-list-item role="menuitem" data-item="item 1">Item 1</ui-list-item>
@@ -127,32 +88,68 @@ class ComponentDemoPage extends DemoPage {
127
88
  <ui-list-item role="menuitem" data-item="item 4">Item 4</ui-list-item>
128
89
  </ui-list>
129
90
  </ui-dropdown-list>
91
+ <p>Last selected: ${list1Selected || 'none'}</p>
92
+ </div>
93
+
94
+ <h2 class="title-large">Button list</h2>
95
+
96
+ <div class="demo-row">
97
+ <ui-dropdown-list @select="${this.list2SelectHandler}">
98
+ <ui-button color="outlined">Click me</ui-button>
99
+ <ui-list slot="dropdown" role="menu">
100
+ <ui-list-item role="menuitem" data-item="item 1">Item 1</ui-list-item>
101
+ <ui-list-item role="menuitem" data-item="item 2">Item 2</ui-list-item>
102
+ <ui-list-item role="menuitem" data-item="item 3">Item 3</ui-list-item>
103
+ <ui-list-item role="menuitem" data-item="item 4">Item 4</ui-list-item>
104
+ </ui-list>
105
+ </ui-dropdown-list>
106
+ <p>Last selected: ${list2Selected || 'none'}</p>
107
+ </div>
108
+
109
+ <h2 class="title-large">A list in an <code>overflow: hidden</code> element</h2>
110
+
111
+ <div class="demo-row">
112
+ <div class="button-in-lists">
113
+ <ui-dropdown-list
114
+ @select="${this.list3SelectHandler}"
115
+ .verticalAlign="${verticalAlign}"
116
+ .horizontalAlign="${horizontalAlign}"
117
+ ?noOverlap="${noOverlap}"
118
+ >
119
+ <ui-icon-button aria-label="Trigger the menu"><ui-icon icon="moreVert"></ui-icon></ui-icon-button>
120
+ <ui-list slot="dropdown" role="menu">
121
+ <ui-list-item role="menuitem" data-item="item 1">Item 1</ui-list-item>
122
+ <ui-list-item role="menuitem" data-item="item 2">Item 2</ui-list-item>
123
+ <ui-list-item role="menuitem" data-item="item 3">Item 3</ui-list-item>
124
+ <ui-list-item role="menuitem" data-item="item 4">Item 4</ui-list-item>
125
+ </ui-list>
126
+ </ui-dropdown-list>
127
+ </div>
128
+ <label for="verticalAlign">Vertical align</label>
129
+ <select id="verticalAlign" @change="${this.verticalHandler}">
130
+ <option value="">None</option>
131
+ <option value="top">Top</option>
132
+ <option value="bottom">Bottom</option>
133
+ <option value="middle">Middle</option>
134
+ <option value="auto">Auto</option>
135
+ </select>
136
+ <label for="horizontalAlign">Horizontal align</label>
137
+ <select id="horizontalAlign" @change="${this.horizontalHandler}">
138
+ <option value="">None</option>
139
+ <option value="left">Left</option>
140
+ <option value="right">Right</option>
141
+ <option value="middle">Middle</option>
142
+ <option value="auto">Auto</option>
143
+ </select>
144
+
145
+ <label>
146
+ <input type="checkbox" name="noOverlap" @change="${this.noOverlapHandler}" />
147
+ No overlap
148
+ </label>
149
+
150
+ <p>Last selected: ${list3Selected || 'none'}</p>
130
151
  </div>
131
- <label for="verticalAlign">Vertical align</label>
132
- <select id="verticalAlign" @change="${this.verticalHandler}">
133
- <option value="">None</option>
134
- <option value="top">Top</option>
135
- <option value="bottom">Bottom</option>
136
- <option value="middle">Middle</option>
137
- <option value="auto">Auto</option>
138
- </select>
139
- <label for="horizontalAlign">Horizontal align</label>
140
- <select id="horizontalAlign" @change="${this.horizontalHandler}">
141
- <option value="">None</option>
142
- <option value="left">Left</option>
143
- <option value="right">Right</option>
144
- <option value="middle">Middle</option>
145
- <option value="auto">Auto</option>
146
- </select>
147
-
148
- <label>
149
- <input type="checkbox" name="noOverlap" @change="${this.noOverlapHandler}"/>
150
- No overlap
151
- </label>
152
-
153
- <p>Last selected: ${list3Selected || 'none'}</p>
154
- </div>
155
- </section>
152
+ </section>
156
153
  `
157
154
  }
158
155
  }
@@ -6,21 +6,111 @@
6
6
  <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0">
7
7
  <title>UI icon button</title>
8
8
  <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
9
- <link
10
- rel="stylesheet"
11
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200"
12
- />
9
+ <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" rel="stylesheet" />
13
10
  <link href="../../../src/styles/m3/tokens.css" rel="stylesheet" type="text/css" />
14
11
  <link href="../../../src/styles/m3/theme.css" rel="stylesheet" type="text/css" />
12
+ <link href="../../../src/styles/m3/native.css" rel="stylesheet" type="text/css" />
15
13
  <style>
16
14
  .demo-row {
17
15
  margin: 20px 0;
16
+ display: flex;
17
+ gap: 12px;
18
+ flex-wrap: wrap;
18
19
  }
19
20
 
20
- .icons-demo-row {
21
+ .demo .demo-section {
22
+ max-width: 858px;
23
+ margin: 0 auto 80px auto;
24
+
25
+ --_row-height: 80px;
26
+ }
27
+
28
+ .demo .demo-section.l {
29
+ max-width: 1080px;
30
+
31
+ --_row-height: 120px;
32
+ }
33
+
34
+ .demo .demo-section.xl {
35
+ max-width: 1380px;
36
+
37
+ --_row-height: 180px;
38
+ }
39
+
40
+ .demo h2, .demo h3 {
41
+ margin-bottom: 36px;
42
+ }
43
+
44
+ ol {
45
+ padding-left: 0;
46
+ list-style: none;
47
+ counter-reset: item;
48
+ }
49
+
50
+ ol > li {
51
+ margin-top: 4px;
52
+ margin-bottom: 20px;
53
+ margin-left: 36px;
54
+ counter-increment: item;
55
+ vertical-align: baseline;
56
+ }
57
+
58
+ ol > li:before {
59
+ display: inline-block;
60
+ width: 24px;
61
+ height: 32px;
62
+ margin-top: -4px;
63
+ margin-right: 10px;
64
+ margin-left: -36px;
65
+ border-radius: 12px;
66
+ background: var(--md-sys-color-inverse-surface);
67
+ color: var(--md-sys-color-inverse-on-surface);
68
+ line-height: 32px;
69
+ text-align: center;
70
+ }
71
+
72
+ ol.decimal > li:before {
73
+ content: counter(item, decimal);
74
+ }
75
+
76
+ .color-grid,
77
+ .state-grid {
21
78
  display: grid;
22
- grid-template-columns: 1fr 1fr 1fr 1fr;
23
- justify-items: center;
79
+ gap: 0 0;
80
+ justify-items: center;
81
+ align-items: center;
82
+
83
+ padding: 40px;
84
+ border-radius: 20px;
85
+ border: 1px var(--md-sys-color-outline) solid;
86
+ }
87
+
88
+ .color-grid {
89
+ grid-template-columns: 80px 1fr 1fr 1fr;
90
+ grid-template-rows: var(--_row-height) var(--_row-height) var(--_row-height) var(--_row-height) var(--_row-height);
91
+
92
+ }
93
+
94
+ .state-grid {
95
+ grid-template-columns: 80px 1fr 1fr 1fr;
96
+ grid-template-rows: var(--_row-height) var(--_row-height);
97
+ }
98
+
99
+ .legend-marker {
100
+ width: 24px;
101
+ height: 24px;
102
+ border-radius: 50%;
103
+ background-color: var(--md-sys-color-inverse-surface);
104
+ color: var(--md-sys-color-inverse-on-surface);
105
+ display: flex;
106
+ justify-content: center;
107
+ align-items: center;
108
+ }
109
+
110
+ .frame {
111
+ padding: 40px;
112
+ border-radius: 20px;
113
+ border: 1px var(--md-sys-color-outline) solid;
24
114
  }
25
115
  </style>
26
116
  </head>