@api-client/ui 0.2.13 → 0.3.1
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.
- package/.vscode/settings.json +1 -0
- package/build/src/core/ModalActivity.d.ts +1 -1
- package/build/src/core/ModalActivity.d.ts.map +1 -1
- package/build/src/core/ModalActivity.js +6 -5
- package/build/src/core/ModalActivity.js.map +1 -1
- package/build/src/core/ThemeManager.d.ts +4 -2
- package/build/src/core/ThemeManager.d.ts.map +1 -1
- package/build/src/core/ThemeManager.js.map +1 -1
- package/build/src/demo/DemoPage.d.ts +1 -4
- package/build/src/demo/DemoPage.d.ts.map +1 -1
- package/build/src/demo/DemoPage.js +2 -5
- package/build/src/demo/DemoPage.js.map +1 -1
- package/build/src/elements/authorization/ui/CcAuthorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/CcAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/CcAuthorization.js +2 -2
- package/build/src/elements/authorization/ui/CcAuthorization.js.map +1 -1
- package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/OAuth2Authorization.js +11 -5
- package/build/src/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
- package/build/src/elements/authorization/ui/OidcAuthorization.d.ts +1 -2
- package/build/src/elements/authorization/ui/OidcAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/OidcAuthorization.js +10 -8
- package/build/src/elements/authorization/ui/OidcAuthorization.js.map +1 -1
- package/build/src/elements/code/HttpSnippets.d.ts +1 -1
- package/build/src/elements/code/HttpSnippets.d.ts.map +1 -1
- package/build/src/elements/code/HttpSnippets.js +5 -5
- package/build/src/elements/code/HttpSnippets.js.map +1 -1
- package/build/src/elements/dialog/internals/ConfirmDelete.d.ts +1 -1
- package/build/src/elements/dialog/internals/ConfirmDelete.d.ts.map +1 -1
- package/build/src/elements/dialog/internals/ConfirmDelete.js +5 -5
- package/build/src/elements/dialog/internals/ConfirmDelete.js.map +1 -1
- package/build/src/elements/dialog/internals/Rename.d.ts +1 -1
- package/build/src/elements/dialog/internals/Rename.d.ts.map +1 -1
- package/build/src/elements/dialog/internals/Rename.js +6 -5
- package/build/src/elements/dialog/internals/Rename.js.map +1 -1
- package/build/src/elements/environment/EnvironmentEditor.d.ts +1 -1
- package/build/src/elements/environment/EnvironmentEditor.d.ts.map +1 -1
- package/build/src/elements/environment/EnvironmentEditor.js +5 -4
- package/build/src/elements/environment/EnvironmentEditor.js.map +1 -1
- package/build/src/elements/http/BodyEditor.d.ts +1 -3
- package/build/src/elements/http/BodyEditor.d.ts.map +1 -1
- package/build/src/elements/http/BodyEditor.js +25 -20
- package/build/src/elements/http/BodyEditor.js.map +1 -1
- package/build/src/elements/http/BodyMultipartEditor.d.ts +1 -1
- package/build/src/elements/http/BodyMultipartEditor.d.ts.map +1 -1
- package/build/src/elements/http/BodyMultipartEditor.js +3 -3
- package/build/src/elements/http/BodyMultipartEditor.js.map +1 -1
- package/build/src/elements/http/CertificateAdd.element.d.ts +1 -3
- package/build/src/elements/http/CertificateAdd.element.d.ts.map +1 -1
- package/build/src/elements/http/CertificateAdd.element.js +6 -10
- package/build/src/elements/http/CertificateAdd.element.js.map +1 -1
- package/build/src/elements/http/HeadersForm.d.ts +1 -1
- package/build/src/elements/http/HeadersForm.d.ts.map +1 -1
- package/build/src/elements/http/HeadersForm.js +3 -3
- package/build/src/elements/http/HeadersForm.js.map +1 -1
- package/build/src/elements/http/HttpAssertions.element.d.ts +1 -1
- package/build/src/elements/http/HttpAssertions.element.d.ts.map +1 -1
- package/build/src/elements/http/HttpAssertions.element.js +2 -2
- package/build/src/elements/http/HttpAssertions.element.js.map +1 -1
- package/build/src/elements/http/HttpFlows.element.d.ts +1 -1
- package/build/src/elements/http/HttpFlows.element.d.ts.map +1 -1
- package/build/src/elements/http/HttpFlows.element.js +6 -6
- package/build/src/elements/http/HttpFlows.element.js.map +1 -1
- package/build/src/elements/http/RequestEditor.d.ts +1 -3
- package/build/src/elements/http/RequestEditor.d.ts.map +1 -1
- package/build/src/elements/http/RequestEditor.js +10 -11
- package/build/src/elements/http/RequestEditor.js.map +1 -1
- package/build/src/elements/http/UrlParamsForm.d.ts +1 -1
- package/build/src/elements/http/UrlParamsForm.d.ts.map +1 -1
- package/build/src/elements/http/UrlParamsForm.js +4 -4
- package/build/src/elements/http/UrlParamsForm.js.map +1 -1
- package/build/src/elements/project/HttpProjectRequest.d.ts +1 -1
- package/build/src/elements/project/HttpProjectRequest.d.ts.map +1 -1
- package/build/src/elements/project/HttpProjectRequest.js +3 -3
- package/build/src/elements/project/HttpProjectRequest.js.map +1 -1
- package/build/src/elements/project/HttpProjectRequestHistory.d.ts +1 -2
- package/build/src/elements/project/HttpProjectRequestHistory.d.ts.map +1 -1
- package/build/src/elements/project/HttpProjectRequestHistory.js +5 -6
- package/build/src/elements/project/HttpProjectRequestHistory.js.map +1 -1
- package/build/src/elements/project/ProjectRunReport.d.ts +1 -1
- package/build/src/elements/project/ProjectRunReport.d.ts.map +1 -1
- package/build/src/elements/project/ProjectRunReport.js +7 -7
- package/build/src/elements/project/ProjectRunReport.js.map +1 -1
- package/build/src/elements/project/ProjectRunner.d.ts +1 -2
- package/build/src/elements/project/ProjectRunner.d.ts.map +1 -1
- package/build/src/elements/project/ProjectRunner.js +4 -5
- package/build/src/elements/project/ProjectRunner.js.map +1 -1
- package/build/src/md/button/internals/base.d.ts +98 -0
- package/build/src/md/button/internals/base.d.ts.map +1 -0
- package/build/src/md/button/internals/base.js +353 -0
- package/build/src/md/button/internals/base.js.map +1 -0
- package/build/src/md/button/internals/button.d.ts +7 -75
- package/build/src/md/button/internals/button.d.ts.map +1 -1
- package/build/src/md/button/internals/button.js +18 -247
- package/build/src/md/button/internals/button.js.map +1 -1
- package/build/src/md/button/internals/{button-styles.d.ts → button.styles.d.ts} +1 -1
- package/build/src/md/button/internals/button.styles.d.ts.map +1 -0
- package/build/src/md/button/internals/button.styles.js +319 -0
- package/build/src/md/button/internals/button.styles.js.map +1 -0
- package/build/src/md/button/internals/group.d.ts +54 -0
- package/build/src/md/button/internals/group.d.ts.map +1 -0
- package/build/src/md/button/internals/group.js +157 -0
- package/build/src/md/button/internals/group.js.map +1 -0
- package/build/src/md/button/internals/{text-button.styles.d.ts → group.styles.d.ts} +1 -1
- package/build/src/md/button/internals/group.styles.d.ts.map +1 -0
- package/build/src/md/button/internals/group.styles.js +102 -0
- package/build/src/md/button/internals/group.styles.js.map +1 -0
- package/build/src/md/button/ui-button-group.d.ts +11 -0
- package/build/src/md/button/ui-button-group.d.ts.map +1 -0
- package/build/src/md/{icon-button/ui-filled-icon-button.js → button/ui-button-group.js} +10 -11
- package/build/src/md/button/ui-button-group.js.map +1 -0
- package/build/src/md/button/ui-button.d.ts +14 -0
- package/build/src/md/button/ui-button.d.ts.map +1 -0
- package/build/src/md/button/{ui-text-button.js → ui-button.js} +10 -11
- package/build/src/md/button/ui-button.js.map +1 -0
- package/build/src/md/dialog/internals/Dialog.d.ts +5 -5
- package/build/src/md/dialog/internals/Dialog.d.ts.map +1 -1
- package/build/src/md/dialog/internals/Dialog.js +14 -9
- package/build/src/md/dialog/internals/Dialog.js.map +1 -1
- package/build/src/md/dropdown-list/internals/UiDropdownList.d.ts +1 -1
- package/build/src/md/dropdown-list/internals/UiDropdownList.js +1 -1
- package/build/src/md/dropdown-list/internals/UiDropdownList.js.map +1 -1
- package/build/src/md/icon-button/internals/IconButton.d.ts +12 -36
- package/build/src/md/icon-button/internals/IconButton.d.ts.map +1 -1
- package/build/src/md/icon-button/internals/IconButton.js +32 -144
- package/build/src/md/icon-button/internals/IconButton.js.map +1 -1
- package/build/src/md/{button/internals/filled-button.styles.d.ts → icon-button/internals/IconButton.styles.d.ts} +1 -1
- package/build/src/md/icon-button/internals/IconButton.styles.d.ts.map +1 -0
- package/build/src/md/icon-button/internals/IconButton.styles.js +286 -0
- package/build/src/md/icon-button/internals/IconButton.styles.js.map +1 -0
- package/build/src/md/icon-button/ui-icon-button.d.ts.map +1 -1
- package/build/src/md/icon-button/ui-icon-button.js +2 -3
- package/build/src/md/icon-button/ui-icon-button.js.map +1 -1
- package/build/src/md/input/Input.d.ts +4 -3
- package/build/src/md/input/Input.d.ts.map +1 -1
- package/build/src/md/input/Input.js +15 -11
- package/build/src/md/input/Input.js.map +1 -1
- package/build/src/md/ripple/internals/ripple.d.ts +2 -0
- package/build/src/md/ripple/internals/ripple.d.ts.map +1 -1
- package/build/src/md/ripple/internals/ripple.js +20 -10
- package/build/src/md/ripple/internals/ripple.js.map +1 -1
- package/build/src/md/ripple/internals/ripple.styles.d.ts.map +1 -1
- package/build/src/md/ripple/internals/ripple.styles.js +8 -20
- package/build/src/md/ripple/internals/ripple.styles.js.map +1 -1
- package/build/src/md/snackbar/internals/Snackbar.d.ts +1 -1
- package/build/src/md/snackbar/internals/Snackbar.d.ts.map +1 -1
- package/build/src/md/snackbar/internals/Snackbar.js +4 -2
- package/build/src/md/snackbar/internals/Snackbar.js.map +1 -1
- package/build/src/md/text-field/internals/common.styles.d.ts.map +1 -1
- package/build/src/md/text-field/internals/common.styles.js +11 -5
- package/build/src/md/text-field/internals/common.styles.js.map +1 -1
- package/build/src/md/text-field/internals/filled.styles.d.ts.map +1 -1
- package/build/src/md/text-field/internals/filled.styles.js +7 -0
- package/build/src/md/text-field/internals/filled.styles.js.map +1 -1
- package/build/src/md/text-field/internals/outlined.styles.d.ts.map +1 -1
- package/build/src/md/text-field/internals/outlined.styles.js +29 -9
- package/build/src/md/text-field/internals/outlined.styles.js.map +1 -1
- package/build/src/styles/m3/dialog.module.d.ts +2 -2
- package/build/src/styles/m3/dialog.module.js +2 -2
- package/build/src/styles/m3/dialog.module.js.map +1 -1
- package/build/src/styles/m3/tokens.d.ts.map +1 -1
- package/build/src/styles/m3/tokens.js +208 -182
- package/build/src/styles/m3/tokens.js.map +1 -1
- package/demo/elements/authorization/oauth-authorize.html +1 -1
- package/demo/elements/authorization/oauth-authorize.ts +1 -1
- package/demo/elements/environment/variables-editor.ts +2 -2
- package/demo/elements/http/url-editing.ts +3 -3
- package/demo/elements/project/request-editor.ts +4 -4
- package/demo/layout/index.ts +5 -5
- package/demo/md/buttons/button.html +121 -0
- package/demo/md/buttons/button.ts +246 -0
- package/demo/md/buttons/{index.html → group.html} +15 -2
- package/demo/md/buttons/group.ts +171 -0
- package/demo/md/checkbox/index.ts +1 -1
- package/demo/md/dialog/dialog.ts +8 -9
- package/demo/md/dropdown-list/index.ts +68 -71
- package/demo/md/icon-button/index.html +97 -7
- package/demo/md/icon-button/index.ts +97 -201
- package/demo/md/index.html +3 -1
- package/demo/md/inputs/input.html +39 -0
- package/demo/md/inputs/input.ts +204 -419
- package/demo/md/inputs/radio.ts +1 -1
- package/demo/md/inputs/switch.ts +1 -1
- package/demo/md/notification/snack.ts +5 -5
- package/demo/md/progress/progress.ts +4 -3
- package/package.json +2 -2
- package/src/core/ModalActivity.ts +6 -5
- package/src/core/ThemeManager.ts +5 -4
- package/src/demo/DemoPage.ts +2 -5
- package/src/elements/authorization/ui/CcAuthorization.ts +2 -2
- package/src/elements/authorization/ui/OAuth2Authorization.ts +11 -5
- package/src/elements/authorization/ui/OidcAuthorization.ts +10 -8
- package/src/elements/code/HttpSnippets.ts +5 -5
- package/src/elements/dialog/internals/ConfirmDelete.ts +5 -5
- package/src/elements/dialog/internals/Rename.ts +6 -5
- package/src/elements/environment/EnvironmentEditor.ts +5 -4
- package/src/elements/http/BodyEditor.ts +25 -20
- package/src/elements/http/BodyMultipartEditor.ts +3 -3
- package/src/elements/http/CertificateAdd.element.ts +6 -10
- package/src/elements/http/HeadersForm.ts +3 -3
- package/src/elements/http/HttpAssertions.element.ts +2 -2
- package/src/elements/http/HttpFlows.element.ts +6 -6
- package/src/elements/http/RequestEditor.ts +10 -11
- package/src/elements/http/UrlParamsForm.ts +4 -4
- package/src/elements/project/HttpProjectRequest.ts +3 -3
- package/src/elements/project/HttpProjectRequestHistory.ts +5 -6
- package/src/elements/project/ProjectRunReport.ts +7 -7
- package/src/elements/project/ProjectRunner.ts +4 -5
- package/src/md/button/internals/base.ts +299 -0
- package/src/md/button/internals/button.styles.ts +319 -0
- package/src/md/button/internals/button.ts +8 -234
- package/src/md/button/internals/group.styles.ts +102 -0
- package/src/md/button/internals/group.ts +121 -0
- package/src/md/button/ui-button-group.ts +15 -0
- package/src/md/button/ui-button.ts +18 -0
- package/src/md/dialog/internals/Dialog.ts +14 -9
- package/src/md/dropdown-list/internals/UiDropdownList.ts +1 -1
- package/src/md/icon-button/internals/IconButton.styles.ts +286 -0
- package/src/md/icon-button/internals/IconButton.ts +15 -139
- package/src/md/icon-button/ui-icon-button.ts +2 -3
- package/src/md/input/Input.ts +16 -11
- package/src/md/ripple/internals/ripple.styles.ts +8 -20
- package/src/md/ripple/internals/ripple.ts +21 -13
- package/src/md/snackbar/internals/Snackbar.ts +4 -2
- package/src/md/text-field/internals/common.styles.ts +11 -5
- package/src/md/text-field/internals/filled.styles.ts +7 -0
- package/src/md/text-field/internals/outlined.styles.ts +29 -9
- package/src/styles/m3/dialog.module.ts +2 -2
- package/src/styles/m3/native.css +270 -0
- package/src/styles/m3/tokens.css +208 -182
- package/src/styles/m3/tokens.ts +208 -182
- package/test/ui/button/UiButton.test.ts +51 -29
- package/test/ui/button/UiIconButton.test.ts +25 -19
- package/test/ui/dialog/UiDialog.test.ts +10 -10
- package/build/src/md/button/internals/button-styles.d.ts.map +0 -1
- package/build/src/md/button/internals/button-styles.js +0 -143
- package/build/src/md/button/internals/button-styles.js.map +0 -1
- package/build/src/md/button/internals/elevated-button.d.ts +0 -4
- package/build/src/md/button/internals/elevated-button.d.ts.map +0 -1
- package/build/src/md/button/internals/elevated-button.js +0 -4
- package/build/src/md/button/internals/elevated-button.js.map +0 -1
- package/build/src/md/button/internals/elevated-button.styles.d.ts +0 -3
- package/build/src/md/button/internals/elevated-button.styles.d.ts.map +0 -1
- package/build/src/md/button/internals/elevated-button.styles.js +0 -38
- package/build/src/md/button/internals/elevated-button.styles.js.map +0 -1
- package/build/src/md/button/internals/filled-button.d.ts +0 -4
- package/build/src/md/button/internals/filled-button.d.ts.map +0 -1
- package/build/src/md/button/internals/filled-button.js +0 -4
- package/build/src/md/button/internals/filled-button.js.map +0 -1
- package/build/src/md/button/internals/filled-button.styles.d.ts.map +0 -1
- package/build/src/md/button/internals/filled-button.styles.js +0 -30
- package/build/src/md/button/internals/filled-button.styles.js.map +0 -1
- package/build/src/md/button/internals/filled-tonal-button.d.ts +0 -4
- package/build/src/md/button/internals/filled-tonal-button.d.ts.map +0 -1
- package/build/src/md/button/internals/filled-tonal-button.js +0 -4
- package/build/src/md/button/internals/filled-tonal-button.js.map +0 -1
- package/build/src/md/button/internals/filled-tonal-button.styles.d.ts +0 -3
- package/build/src/md/button/internals/filled-tonal-button.styles.d.ts.map +0 -1
- package/build/src/md/button/internals/filled-tonal-button.styles.js +0 -30
- package/build/src/md/button/internals/filled-tonal-button.styles.js.map +0 -1
- package/build/src/md/button/internals/outlined-button.d.ts +0 -4
- package/build/src/md/button/internals/outlined-button.d.ts.map +0 -1
- package/build/src/md/button/internals/outlined-button.js +0 -4
- package/build/src/md/button/internals/outlined-button.js.map +0 -1
- package/build/src/md/button/internals/outlined-button.styles.d.ts +0 -3
- package/build/src/md/button/internals/outlined-button.styles.d.ts.map +0 -1
- package/build/src/md/button/internals/outlined-button.styles.js +0 -31
- package/build/src/md/button/internals/outlined-button.styles.js.map +0 -1
- package/build/src/md/button/internals/text-button.d.ts +0 -4
- package/build/src/md/button/internals/text-button.d.ts.map +0 -1
- package/build/src/md/button/internals/text-button.js +0 -4
- package/build/src/md/button/internals/text-button.js.map +0 -1
- package/build/src/md/button/internals/text-button.styles.d.ts.map +0 -1
- package/build/src/md/button/internals/text-button.styles.js +0 -30
- package/build/src/md/button/internals/text-button.styles.js.map +0 -1
- package/build/src/md/button/ui-elevated-button.d.ts +0 -14
- package/build/src/md/button/ui-elevated-button.d.ts.map +0 -1
- package/build/src/md/button/ui-elevated-button.js +0 -31
- package/build/src/md/button/ui-elevated-button.js.map +0 -1
- package/build/src/md/button/ui-filled-button.d.ts +0 -14
- package/build/src/md/button/ui-filled-button.d.ts.map +0 -1
- package/build/src/md/button/ui-filled-button.js +0 -31
- package/build/src/md/button/ui-filled-button.js.map +0 -1
- package/build/src/md/button/ui-filled-tonal-button.d.ts +0 -14
- package/build/src/md/button/ui-filled-tonal-button.d.ts.map +0 -1
- package/build/src/md/button/ui-filled-tonal-button.js +0 -31
- package/build/src/md/button/ui-filled-tonal-button.js.map +0 -1
- package/build/src/md/button/ui-outlined-button.d.ts +0 -14
- package/build/src/md/button/ui-outlined-button.d.ts.map +0 -1
- package/build/src/md/button/ui-outlined-button.js +0 -31
- package/build/src/md/button/ui-outlined-button.js.map +0 -1
- package/build/src/md/button/ui-text-button.d.ts +0 -14
- package/build/src/md/button/ui-text-button.d.ts.map +0 -1
- package/build/src/md/button/ui-text-button.js.map +0 -1
- package/build/src/md/icon-button/ui-filled-icon-button.d.ts +0 -11
- package/build/src/md/icon-button/ui-filled-icon-button.d.ts.map +0 -1
- package/build/src/md/icon-button/ui-filled-icon-button.js.map +0 -1
- package/build/src/md/icon-button/ui-filled-tonal-icon-button.d.ts +0 -11
- package/build/src/md/icon-button/ui-filled-tonal-icon-button.d.ts.map +0 -1
- package/build/src/md/icon-button/ui-filled-tonal-icon-button.js +0 -28
- package/build/src/md/icon-button/ui-filled-tonal-icon-button.js.map +0 -1
- package/build/src/md/icon-button/ui-outlined-icon-button.d.ts +0 -11
- package/build/src/md/icon-button/ui-outlined-icon-button.d.ts.map +0 -1
- package/build/src/md/icon-button/ui-outlined-icon-button.js +0 -28
- package/build/src/md/icon-button/ui-outlined-icon-button.js.map +0 -1
- package/demo/md/buttons/index.ts +0 -279
- package/src/md/button/internals/button-styles.ts +0 -143
- package/src/md/button/internals/elevated-button.styles.ts +0 -38
- package/src/md/button/internals/elevated-button.ts +0 -3
- package/src/md/button/internals/filled-button.styles.ts +0 -30
- package/src/md/button/internals/filled-button.ts +0 -3
- package/src/md/button/internals/filled-tonal-button.styles.ts +0 -30
- package/src/md/button/internals/filled-tonal-button.ts +0 -3
- package/src/md/button/internals/outlined-button.styles.ts +0 -31
- package/src/md/button/internals/outlined-button.ts +0 -3
- package/src/md/button/internals/text-button.styles.ts +0 -30
- package/src/md/button/internals/text-button.ts +0 -3
- package/src/md/button/ui-elevated-button.ts +0 -19
- package/src/md/button/ui-filled-button.ts +0 -19
- package/src/md/button/ui-filled-tonal-button.ts +0 -19
- package/src/md/button/ui-outlined-button.ts +0 -19
- package/src/md/button/ui-text-button.ts +0 -19
- package/src/md/icon-button/ui-filled-icon-button.ts +0 -16
- package/src/md/icon-button/ui-filled-tonal-icon-button.ts +0 -16
- package/src/md/icon-button/ui-outlined-icon-button.ts +0 -16
|
@@ -6,7 +6,7 @@ import { HttpFlowsUi, StepsTarget } from './HttpFlowsUi.js'
|
|
|
6
6
|
import type SwitchElement from '../../md/switch/internals/SwitchElement.js'
|
|
7
7
|
import type Input from '../../md/input/Input.js'
|
|
8
8
|
import UiDialog, { UiDialogClosingReason } from '../../md/dialog/internals/Dialog.js'
|
|
9
|
-
import '../../md/button/ui-
|
|
9
|
+
import '../../md/button/ui-button.js'
|
|
10
10
|
import '../../md/switch/ui-switch.js'
|
|
11
11
|
import '../../md/dialog/ui-dialog.js'
|
|
12
12
|
import '../../md/divider/ui-divider.js'
|
|
@@ -165,7 +165,7 @@ export default class HttpAssertions extends HttpFlowsUi {
|
|
|
165
165
|
protected renderActionButtons(): TemplateResult {
|
|
166
166
|
return html`
|
|
167
167
|
<div class="editor-actions">
|
|
168
|
-
<ui-
|
|
168
|
+
<ui-button color="tonal" @click="${this.handleAdd}" class="add-button">Add</ui-button>
|
|
169
169
|
</div>
|
|
170
170
|
`
|
|
171
171
|
}
|
|
@@ -11,7 +11,7 @@ import { HttpFlowsUi, StepsTarget } from './HttpFlowsUi.js'
|
|
|
11
11
|
import '../../md/list/ui-list.js'
|
|
12
12
|
import '../../md/list/ui-list-item.js'
|
|
13
13
|
import '../../md/dropdown-list/ui-dropdown-list.js'
|
|
14
|
-
import '../../md/button/ui-
|
|
14
|
+
import '../../md/button/ui-button.js'
|
|
15
15
|
import '../../md/divider/ui-divider.js'
|
|
16
16
|
import '../../md/dialog/ui-dialog.js'
|
|
17
17
|
import '../dialog/rename-dialog.js'
|
|
@@ -451,10 +451,10 @@ export default class HttpFlows extends HttpFlowsUi {
|
|
|
451
451
|
const label = trigger === 'request' ? 'Pre-request' : 'Post-request'
|
|
452
452
|
return html`
|
|
453
453
|
<ui-dropdown-list @select="${this.handleTriggerSelect}" horizontalAlign="right" closeOnOutsideClick>
|
|
454
|
-
<ui-
|
|
454
|
+
<ui-button color="outlined" class="new-button">
|
|
455
455
|
<ui-icon icon="arrowDropDown" slot="icon"></ui-icon>
|
|
456
456
|
${label}
|
|
457
|
-
</ui-
|
|
457
|
+
</ui-button>
|
|
458
458
|
<ui-list slot="dropdown" role="menu">
|
|
459
459
|
<ui-list-item data-trigger="request" role="menuitem" title="Select pre-request flows"
|
|
460
460
|
>Pre-request</ui-list-item
|
|
@@ -474,10 +474,10 @@ export default class HttpFlows extends HttpFlowsUi {
|
|
|
474
474
|
const hasItems = !!items.length
|
|
475
475
|
return html`
|
|
476
476
|
<ui-dropdown-list @select="${this.handleFlowSelect}" horizontalAlign="right" closeOnOutsideClick>
|
|
477
|
-
<ui-
|
|
477
|
+
<ui-button color="outlined" class="new-button">
|
|
478
478
|
<ui-icon icon="arrowDropDown" slot="icon"></ui-icon>
|
|
479
479
|
${label}
|
|
480
|
-
</ui-
|
|
480
|
+
</ui-button>
|
|
481
481
|
<ui-list slot="dropdown" role="menu">
|
|
482
482
|
${hasItems
|
|
483
483
|
? html`
|
|
@@ -569,7 +569,7 @@ export default class HttpFlows extends HttpFlowsUi {
|
|
|
569
569
|
return html`
|
|
570
570
|
<div class="empty-message">Create a flow to get started.</div>
|
|
571
571
|
<div class="empty-message">
|
|
572
|
-
<ui-
|
|
572
|
+
<ui-button color="outlined" @click="${this.handleAdd}" class="empty-button">Create</ui-button>
|
|
573
573
|
</div>
|
|
574
574
|
`
|
|
575
575
|
}
|
|
@@ -37,9 +37,7 @@ import '../../define/http/http-request-config.js'
|
|
|
37
37
|
import '../../md/dropdown-list/ui-dropdown-list.js'
|
|
38
38
|
import '../../md/list/ui-list.js'
|
|
39
39
|
import '../../md/list/ui-list-item.js'
|
|
40
|
-
import '../../md/button/ui-
|
|
41
|
-
import '../../md/button/ui-filled-button.js'
|
|
42
|
-
import '../../md/button/ui-filled-tonal-button.js'
|
|
40
|
+
import '../../md/button/ui-button.js'
|
|
43
41
|
import '../../md/tabs/ui-tabs.js'
|
|
44
42
|
import '../../md/tabs/ui-tab.js'
|
|
45
43
|
import '../../md/divider/ui-divider.js'
|
|
@@ -769,10 +767,10 @@ export default class RequestEditor extends ApiElement {
|
|
|
769
767
|
class="verb-dropdown"
|
|
770
768
|
closeOnOutsideClick
|
|
771
769
|
>
|
|
772
|
-
<ui-
|
|
770
|
+
<ui-button color="text" class="button">
|
|
773
771
|
${method}
|
|
774
772
|
<ui-icon icon="arrowDropDown"></ui-icon>
|
|
775
|
-
</ui-
|
|
773
|
+
</ui-button>
|
|
776
774
|
<ui-list slot="dropdown" role="menu"> ${this.renderHttpVerbOptions()} </ui-list>
|
|
777
775
|
</ui-dropdown-list>
|
|
778
776
|
`
|
|
@@ -816,11 +814,11 @@ export default class RequestEditor extends ApiElement {
|
|
|
816
814
|
protected renderSendButton(): TemplateResult | string {
|
|
817
815
|
if (this.loading) {
|
|
818
816
|
return html`
|
|
819
|
-
<ui-
|
|
817
|
+
<ui-button color="filled" title="Abort the request" class="send-button" @click="${this.abort}">Abort</ui-button>
|
|
820
818
|
`
|
|
821
819
|
}
|
|
822
820
|
return html`
|
|
823
|
-
<ui-
|
|
821
|
+
<ui-button color="filled" title="Send the request" class="send-button" @click="${this.send}">Send</ui-button>
|
|
824
822
|
`
|
|
825
823
|
}
|
|
826
824
|
|
|
@@ -950,14 +948,15 @@ export default class RequestEditor extends ApiElement {
|
|
|
950
948
|
const toRender: string[] = all.filter((type) => !current.some((i) => i.type === type))
|
|
951
949
|
return html`
|
|
952
950
|
<ui-dropdown-list verticalAlign="top" @select="${this.handleAuthAdd}" class="auth-dropdown" closeOnOutsideClick>
|
|
953
|
-
<ui-
|
|
951
|
+
<ui-button
|
|
952
|
+
color="tonal"
|
|
954
953
|
title="Add authorization option"
|
|
955
954
|
aria-label="Opens a menu to select authorization option"
|
|
956
955
|
?disabled="${!toRender.length}"
|
|
957
956
|
>
|
|
958
957
|
<ui-icon icon="arrowDropDown" slot="icon" role="presentation"></ui-icon>
|
|
959
958
|
Add
|
|
960
|
-
</ui-
|
|
959
|
+
</ui-button>
|
|
961
960
|
<ui-list slot="dropdown" role="menu"> ${this.renderAuthorizationOptions(toRender)} </ui-list>
|
|
962
961
|
</ui-dropdown-list>
|
|
963
962
|
`
|
|
@@ -1195,8 +1194,8 @@ export default class RequestEditor extends ApiElement {
|
|
|
1195
1194
|
<p><b>Do you want to continue?</b></p>
|
|
1196
1195
|
</div>
|
|
1197
1196
|
|
|
1198
|
-
<ui-
|
|
1199
|
-
<ui-
|
|
1197
|
+
<ui-button color="text" value="dismiss" slot="button">Cancel request</ui-button>
|
|
1198
|
+
<ui-button color="text" value="confirm" slot="button">Continue</ui-button>
|
|
1200
1199
|
</ui-dialog>`
|
|
1201
1200
|
}
|
|
1202
1201
|
}
|
|
@@ -6,7 +6,7 @@ import { UrlEncoder } from '@api-client/core/lib/parsers/UrlEncoder.js'
|
|
|
6
6
|
import ApiElement from '../ApiElement.js'
|
|
7
7
|
import type Input from '../../md/input/Input.js'
|
|
8
8
|
import type SwitchElement from '../../md/switch/internals/SwitchElement.js'
|
|
9
|
-
import '../../md/button/ui-
|
|
9
|
+
import '../../md/button/ui-button.js'
|
|
10
10
|
import '../../md/icon-button/ui-icon-button.js'
|
|
11
11
|
import '../../md/dropdown-list/ui-dropdown-list.js'
|
|
12
12
|
import '../../md/list/ui-list.js'
|
|
@@ -273,9 +273,9 @@ export default class UrlParamsForm extends ApiElement {
|
|
|
273
273
|
protected renderActionButtons(): TemplateResult {
|
|
274
274
|
return html`
|
|
275
275
|
<div class="editor-actions">
|
|
276
|
-
<ui-
|
|
277
|
-
<ui-
|
|
278
|
-
<ui-
|
|
276
|
+
<ui-button color="tonal" @click="${this.handleAdd}">Add</ui-button>
|
|
277
|
+
<ui-button color="tonal" @click="${this.handleEncode}">URL encode</ui-button>
|
|
278
|
+
<ui-button color="tonal" @click="${this.handleDecode}">URL decode</ui-button>
|
|
279
279
|
<ui-dropdown-list @select="${this.handleOption}" closeOnOutsideClick class="dropdown">
|
|
280
280
|
<ui-icon-button aria-label="Additional options"
|
|
281
281
|
><ui-icon icon="moreVert" role="presentation"></ui-icon
|
|
@@ -27,7 +27,7 @@ import { EventTypes } from '../../events/EventTypes.js'
|
|
|
27
27
|
import { midnightTimestamp } from '../../lib/time/Conversion.js'
|
|
28
28
|
|
|
29
29
|
import '../../md/icons/ui-icon.js'
|
|
30
|
-
import '../../md/button/ui-
|
|
30
|
+
import '../../md/button/ui-button.js'
|
|
31
31
|
import '../../md/dropdown-list/ui-dropdown-list.js'
|
|
32
32
|
import '../../md/list/ui-list.js'
|
|
33
33
|
import '../../md/list/ui-list-item.js'
|
|
@@ -439,10 +439,10 @@ export default class HttpProjectRequest extends RequestEditor {
|
|
|
439
439
|
class="environment-dropdown"
|
|
440
440
|
closeOnOutsideClick
|
|
441
441
|
>
|
|
442
|
-
<ui-
|
|
442
|
+
<ui-button color="text" class="button">
|
|
443
443
|
${currentEnvironmentLabel || 'No environment'}
|
|
444
444
|
<ui-icon icon="arrowDropDown"></ui-icon>
|
|
445
|
-
</ui-
|
|
445
|
+
</ui-button>
|
|
446
446
|
<ui-list slot="dropdown" role="menu">
|
|
447
447
|
<ui-list-item
|
|
448
448
|
role="menuitem"
|
|
@@ -17,8 +17,7 @@ import '@github/relative-time-element'
|
|
|
17
17
|
import type UiIconButton from '../../md/icon-button/internals/IconButton.js'
|
|
18
18
|
import '../../define/http/http-request-log.js'
|
|
19
19
|
import '../../md/icons/ui-icon.js'
|
|
20
|
-
import '../../md/button/ui-
|
|
21
|
-
import '../../md/button/ui-text-button.js'
|
|
20
|
+
import '../../md/button/ui-button.js'
|
|
22
21
|
import '../../md/dropdown-list/ui-dropdown-list.js'
|
|
23
22
|
import '../../md/list/ui-list.js'
|
|
24
23
|
import '../../md/list/ui-list-item.js'
|
|
@@ -446,10 +445,10 @@ export default class HttpProjectRequestHistory extends ApiElement {
|
|
|
446
445
|
closeOnOutsideClick
|
|
447
446
|
@select="${this.handleSelection}"
|
|
448
447
|
>
|
|
449
|
-
<ui-
|
|
448
|
+
<ui-button color="tonal" ?disabled="${disabled}">
|
|
450
449
|
<ui-icon slot="icon" icon="arrowDropDown"></ui-icon>
|
|
451
450
|
History
|
|
452
|
-
</ui-
|
|
451
|
+
</ui-button>
|
|
453
452
|
<ui-list slot="dropdown" role="menu" aria-label="History list"> ${this.renderHistoryList()} </ui-list>
|
|
454
453
|
</ui-dropdown-list>
|
|
455
454
|
`
|
|
@@ -589,8 +588,8 @@ export default class HttpProjectRequestHistory extends ApiElement {
|
|
|
589
588
|
<ui-icon slot="icon" icon="deleteOutline"></ui-icon>
|
|
590
589
|
<span slot="title">Delete history?</span>
|
|
591
590
|
<p>This will clear responses history for this request.</p>
|
|
592
|
-
<ui-
|
|
593
|
-
<ui-
|
|
591
|
+
<ui-button color="text" slot="button" value="dismiss">Cancel</ui-button>
|
|
592
|
+
<ui-button color="text" slot="button" value="confirm">Accept</ui-button>
|
|
594
593
|
</ui-dialog>
|
|
595
594
|
`
|
|
596
595
|
}
|
|
@@ -13,7 +13,7 @@ import type { IResponse } from '@api-client/core/models/Response.js'
|
|
|
13
13
|
import '@github/relative-time-element'
|
|
14
14
|
import '../../define/http/http-request-log.js'
|
|
15
15
|
import '../../md/icons/ui-icon.js'
|
|
16
|
-
import '../../md/button/ui-
|
|
16
|
+
import '../../md/button/ui-button.js'
|
|
17
17
|
import '../../md/dropdown-list/ui-dropdown-list.js'
|
|
18
18
|
import '../../md/list/ui-list.js'
|
|
19
19
|
import '../../md/list/ui-list-item.js'
|
|
@@ -228,10 +228,10 @@ export default class ProjectRunReport extends LitElement {
|
|
|
228
228
|
closeOnOutsideClick
|
|
229
229
|
@select="${this.handleIterationSelection}"
|
|
230
230
|
>
|
|
231
|
-
<ui-
|
|
231
|
+
<ui-button color="tonal">
|
|
232
232
|
<ui-icon slot="icon" icon="arrowDropDown"></ui-icon>
|
|
233
233
|
Iteration #${index}
|
|
234
|
-
</ui-
|
|
234
|
+
</ui-button>
|
|
235
235
|
<ui-list slot="dropdown" role="menu" aria-label="Iterations list">
|
|
236
236
|
${iterations.map((current) => this.renderIterationOption(current.index))}
|
|
237
237
|
</ui-list>
|
|
@@ -269,10 +269,10 @@ export default class ProjectRunReport extends LitElement {
|
|
|
269
269
|
closeOnOutsideClick
|
|
270
270
|
@select="${this.handleRequestSelection}"
|
|
271
271
|
>
|
|
272
|
-
<ui-
|
|
272
|
+
<ui-button color="tonal" title="${title}">
|
|
273
273
|
<ui-icon slot="icon" icon="arrowDropDown"></ui-icon>
|
|
274
274
|
<span class="request-title-dropdown">${title}</span>
|
|
275
|
-
</ui-
|
|
275
|
+
</ui-button>
|
|
276
276
|
<ui-list slot="dropdown" role="menu" aria-label="History list"> ${options} </ui-list>
|
|
277
277
|
</ui-dropdown-list>
|
|
278
278
|
`
|
|
@@ -280,10 +280,10 @@ export default class ProjectRunReport extends LitElement {
|
|
|
280
280
|
|
|
281
281
|
protected renderEmptyRequestsList(): TemplateResult {
|
|
282
282
|
return html`
|
|
283
|
-
<ui-
|
|
283
|
+
<ui-button color="tonal" disabled>
|
|
284
284
|
<ui-icon slot="icon" icon="arrowDropDown"></ui-icon>
|
|
285
285
|
No requests
|
|
286
|
-
</ui-
|
|
286
|
+
</ui-button>
|
|
287
287
|
`
|
|
288
288
|
}
|
|
289
289
|
|
|
@@ -17,8 +17,7 @@ import '@github/relative-time-element'
|
|
|
17
17
|
import '../../define/http-project/project-run-report.js'
|
|
18
18
|
import '../../md/checkbox/ui-checkbox.js'
|
|
19
19
|
import '../../md/text-field/ui-filled-text-field.js'
|
|
20
|
-
import '../../md/button/ui-
|
|
21
|
-
import '../../md/button/ui-filled-tonal-button.js'
|
|
20
|
+
import '../../md/button/ui-button.js'
|
|
22
21
|
import '../../md/progress/ui-progress.js'
|
|
23
22
|
import '../../md/icons/ui-icon.js'
|
|
24
23
|
import '../../md/dropdown-list/ui-dropdown-list.js'
|
|
@@ -447,7 +446,7 @@ export default class ProjectRunner extends ApiElement {
|
|
|
447
446
|
protected renderSubmit(): TemplateResult {
|
|
448
447
|
return html`
|
|
449
448
|
<div class="submit-row">
|
|
450
|
-
<ui-
|
|
449
|
+
<ui-button color="filled" @click="${this.handleRun}" ?disabled="${this.running}">Run</ui-button>
|
|
451
450
|
</div>
|
|
452
451
|
`
|
|
453
452
|
}
|
|
@@ -493,12 +492,12 @@ export default class ProjectRunner extends ApiElement {
|
|
|
493
492
|
closeOnOutsideClick
|
|
494
493
|
@select="${this.handleHistorySelection}"
|
|
495
494
|
>
|
|
496
|
-
<ui-
|
|
495
|
+
<ui-button color="tonal" ?disabled="${disabled}">
|
|
497
496
|
<ui-icon slot="icon" icon="arrowDropDown"></ui-icon>
|
|
498
497
|
${selected
|
|
499
498
|
? html`<relative-time datetime="${new Date(selected.ended).toISOString()}"></relative-time>`
|
|
500
499
|
: 'History'}
|
|
501
|
-
</ui-
|
|
500
|
+
</ui-button>
|
|
502
501
|
<ui-list slot="dropdown" role="menu" aria-label="History list">
|
|
503
502
|
${history.map((current) => this.renderHistoryOption(current))}
|
|
504
503
|
</ui-list>
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import { html, nothing, type PropertyValues, type TemplateResult } from 'lit'
|
|
2
|
+
import { property, query } from 'lit/decorators.js'
|
|
3
|
+
import { UiElement } from '../../UiElement.js'
|
|
4
|
+
import type { BeginPressConfig, EndPressConfig } from '../../../controllers/ActionController.js'
|
|
5
|
+
import { isDisabled, setDisabled } from '../../../lib/disabled.js'
|
|
6
|
+
import type UiRipple from '../../ripple/internals/ripple.js'
|
|
7
|
+
|
|
8
|
+
import '../../ripple/ui-ripple.js'
|
|
9
|
+
import '@material/web/focus/md-focus-ring.js'
|
|
10
|
+
|
|
11
|
+
export type ButtonType = 'submit' | 'reset' | 'button'
|
|
12
|
+
export type MdButtonShape = 'round' | 'square'
|
|
13
|
+
export type MdButtonSize = 'xs' | 's' | 'm' | 'l' | 'xl'
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* A material design button with M3 Expressive features - CSS-native implementation.
|
|
17
|
+
*
|
|
18
|
+
* @slot icon - A slot for the icon element
|
|
19
|
+
* @slot - The default slot for the label
|
|
20
|
+
* @attribute {string} form - The form associated with this element when the element is outside the form.
|
|
21
|
+
* @fires {ToggleEvent} toggle - Fired when the `toggle` property is true and the button is clicked,
|
|
22
|
+
* changing its selection state.
|
|
23
|
+
* The event's `newState` and `oldState` properties (string values: 'selected' or
|
|
24
|
+
* 'unselected') detail this selection change.
|
|
25
|
+
*/
|
|
26
|
+
export default class BaseButton extends UiElement {
|
|
27
|
+
static readonly formAssociated = true
|
|
28
|
+
|
|
29
|
+
#internals = this.attachInternals()
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* The form associated with this element
|
|
33
|
+
* @attribute
|
|
34
|
+
*/
|
|
35
|
+
get form(): HTMLFormElement | null | string {
|
|
36
|
+
return this.#internals.form
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
get validity() {
|
|
40
|
+
return this.#internals.validity
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
get validationMessage() {
|
|
44
|
+
return this.#internals.validationMessage
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
get willValidate() {
|
|
48
|
+
return this.#internals.willValidate
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* The name of the button, submitted as a pair with the button's value as part of the form data.
|
|
53
|
+
* @attribute
|
|
54
|
+
*/
|
|
55
|
+
@property({ type: String }) accessor name: string | undefined
|
|
56
|
+
|
|
57
|
+
#value?: string
|
|
58
|
+
|
|
59
|
+
get value(): string | undefined {
|
|
60
|
+
return this.#value
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Defines the value associated with the button's name when it's submitted with the form data.
|
|
65
|
+
* @attribute
|
|
66
|
+
*/
|
|
67
|
+
@property({ type: String })
|
|
68
|
+
set value(value: string | undefined) {
|
|
69
|
+
if (this.#value === value) {
|
|
70
|
+
return
|
|
71
|
+
}
|
|
72
|
+
this.#value = value
|
|
73
|
+
this.#internals?.setFormValue(value || null)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Whether to render the icon at the inline end of the label rather than the inline start.
|
|
78
|
+
* @attribute
|
|
79
|
+
*/
|
|
80
|
+
@property({ type: Boolean, attribute: 'trailingicon', reflect: true }) accessor trailingIcon = false
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* The default behavior of the button.
|
|
84
|
+
* @attribute
|
|
85
|
+
*/
|
|
86
|
+
@property({ type: String, reflect: true }) accessor type: ButtonType = 'button'
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* When set, the button is a toggle button.
|
|
90
|
+
* @attribute
|
|
91
|
+
*/
|
|
92
|
+
@property({ type: Boolean, reflect: true }) accessor toggle = false
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Indicates that the button is currently selected.
|
|
96
|
+
* @attribute
|
|
97
|
+
*/
|
|
98
|
+
@property({ type: Boolean, reflect: true }) accessor selected = false
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* The shape of the button.
|
|
102
|
+
* @attribute
|
|
103
|
+
*/
|
|
104
|
+
@property({ type: String, reflect: true }) accessor shape: MdButtonShape = 'round'
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* The size of the button.
|
|
108
|
+
* @attribute
|
|
109
|
+
*/
|
|
110
|
+
@property({ type: String, reflect: true }) accessor size: MdButtonSize = 's'
|
|
111
|
+
|
|
112
|
+
get disabled(): boolean {
|
|
113
|
+
return isDisabled(this)
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* When set, the button is in a disabled state.
|
|
118
|
+
* @attribute
|
|
119
|
+
*/
|
|
120
|
+
@property({ reflect: true, type: Boolean })
|
|
121
|
+
set disabled(value: boolean) {
|
|
122
|
+
const old = isDisabled(this)
|
|
123
|
+
setDisabled(this, value)
|
|
124
|
+
this.requestUpdate('disabled', old)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
@query('ui-ripple') protected accessor ripple!: UiRipple | null
|
|
128
|
+
|
|
129
|
+
constructor() {
|
|
130
|
+
super()
|
|
131
|
+
this.actionController.cancelKeyboardEvents = true
|
|
132
|
+
this.addEventListener('keydown', this.handleKeyDown.bind(this))
|
|
133
|
+
this.addEventListener('keyup', this.handleKeyUp.bind(this))
|
|
134
|
+
this.addEventListener('click', this.handleClick.bind(this))
|
|
135
|
+
this.addEventListener('pointerdown', this.handlePointerDown.bind(this))
|
|
136
|
+
this.addEventListener('pointerup', this.handlePointerUp.bind(this))
|
|
137
|
+
this.addEventListener('pointercancel', this.handlePointerCancel.bind(this))
|
|
138
|
+
this.addEventListener('pointerleave', this.handlePointerLeave.bind(this))
|
|
139
|
+
this.addEventListener('pointerenter', this.handlePointerEnter.bind(this))
|
|
140
|
+
this.addEventListener('contextmenu', this.handleContextMenu.bind(this))
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
override connectedCallback(): void {
|
|
144
|
+
super.connectedCallback()
|
|
145
|
+
if (!this.hasAttribute('role')) {
|
|
146
|
+
this.setAttribute('role', 'button')
|
|
147
|
+
}
|
|
148
|
+
if (!this.hasAttribute('tabindex') && !this.disabled) {
|
|
149
|
+
this.setAttribute('tabindex', '0')
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
protected override updated(cp: PropertyValues<this>): void {
|
|
154
|
+
super.updated(cp)
|
|
155
|
+
|
|
156
|
+
// If the button is disabled, remove the tabindex attribute
|
|
157
|
+
if (cp.has('disabled')) {
|
|
158
|
+
if (this.disabled) {
|
|
159
|
+
this.removeAttribute('tabindex')
|
|
160
|
+
} else if (!this.hasAttribute('tabindex')) {
|
|
161
|
+
this.setAttribute('tabindex', '0')
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (cp.has('toggle') || cp.has('selected')) {
|
|
166
|
+
this.updatePressedState()
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
protected updatePressedState(): void {
|
|
171
|
+
if (this.toggle) {
|
|
172
|
+
this.ariaPressed = String(this.selected)
|
|
173
|
+
} else {
|
|
174
|
+
this.selected = false
|
|
175
|
+
this.removeAttribute('aria-pressed')
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
checkValidity() {
|
|
180
|
+
return this.#internals.checkValidity()
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
reportValidity() {
|
|
184
|
+
return this.#internals.reportValidity()
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
protected override firstUpdated(): void {
|
|
188
|
+
this.#internals?.setFormValue(this.value || null)
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
override beginPress(options: BeginPressConfig): void {
|
|
192
|
+
super.beginPress(options)
|
|
193
|
+
this.classList.add('pressed')
|
|
194
|
+
this.ripple?.beginFocus()
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
override endPress(config: EndPressConfig): void {
|
|
198
|
+
super.endPress(config)
|
|
199
|
+
this.classList.remove('pressed')
|
|
200
|
+
this.ripple?.endFocus()
|
|
201
|
+
const { cancelled, reason } = config
|
|
202
|
+
if (cancelled) {
|
|
203
|
+
return
|
|
204
|
+
}
|
|
205
|
+
const allowedReasons = reason === 'enter' || reason === 'space'
|
|
206
|
+
if (this.type === 'submit' && (!reason || allowedReasons)) {
|
|
207
|
+
this.handleSubmit()
|
|
208
|
+
} else if (allowedReasons) {
|
|
209
|
+
this.click()
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
override handleClick(e: MouseEvent): void {
|
|
214
|
+
super.handleClick(e)
|
|
215
|
+
if (this.disabled) {
|
|
216
|
+
e.preventDefault()
|
|
217
|
+
e.stopPropagation()
|
|
218
|
+
return
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
if (this.toggle) {
|
|
222
|
+
this.selected = !this.selected
|
|
223
|
+
const e = new ToggleEvent('toggle', {
|
|
224
|
+
bubbles: true,
|
|
225
|
+
composed: true,
|
|
226
|
+
newState: this.selected ? 'selected' : 'unselected',
|
|
227
|
+
oldState: this.selected ? 'unselected' : 'selected',
|
|
228
|
+
})
|
|
229
|
+
this.dispatchEvent(e)
|
|
230
|
+
}
|
|
231
|
+
this.endPress({ cancelled: false, actionData: { event: e } })
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
protected handleSubmit(): void {
|
|
235
|
+
const { name, value, type, disabled, form } = this
|
|
236
|
+
if (!form || !type || disabled) {
|
|
237
|
+
return
|
|
238
|
+
}
|
|
239
|
+
const typedForm = form as HTMLFormElement
|
|
240
|
+
let button: HTMLButtonElement | undefined
|
|
241
|
+
if (name || value) {
|
|
242
|
+
button = document.createElement('button')
|
|
243
|
+
if (name) {
|
|
244
|
+
button.name = name
|
|
245
|
+
}
|
|
246
|
+
if (value) {
|
|
247
|
+
button.value = value
|
|
248
|
+
}
|
|
249
|
+
button.type = type
|
|
250
|
+
button.hidden = true
|
|
251
|
+
typedForm.append(button)
|
|
252
|
+
}
|
|
253
|
+
try {
|
|
254
|
+
typedForm.requestSubmit(button)
|
|
255
|
+
} catch {
|
|
256
|
+
// Ignore errors
|
|
257
|
+
}
|
|
258
|
+
if (button) {
|
|
259
|
+
typedForm.removeChild(button)
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
override handlePointerEnter(e: PointerEvent): void {
|
|
264
|
+
super.handlePointerEnter(e)
|
|
265
|
+
if (this.ripple) {
|
|
266
|
+
this.ripple.beginHover(e)
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
override handlePointerLeave(e: PointerEvent): void {
|
|
271
|
+
super.handlePointerLeave(e)
|
|
272
|
+
if (this.ripple) {
|
|
273
|
+
this.ripple.endHover()
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
protected override render(): TemplateResult {
|
|
278
|
+
const { trailingIcon = false } = this
|
|
279
|
+
const icon = this.renderIcon()
|
|
280
|
+
|
|
281
|
+
return html`
|
|
282
|
+
${this.renderFocusRing()} ${this.renderRipple()} ${trailingIcon ? nothing : icon}
|
|
283
|
+
<slot></slot>
|
|
284
|
+
${trailingIcon ? icon : nothing}
|
|
285
|
+
`
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
protected renderIcon(): TemplateResult {
|
|
289
|
+
return html`<slot name="icon"></slot>`
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
protected renderFocusRing(): TemplateResult {
|
|
293
|
+
return html`<md-focus-ring part="focus-ring" class="focus-ring" .control="${this as HTMLElement}"></md-focus-ring>`
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
protected renderRipple(): TemplateResult {
|
|
297
|
+
return html`<ui-ripple class="ripple" ?disabled="${this.disabled}"></ui-ripple>`
|
|
298
|
+
}
|
|
299
|
+
}
|