@api-client/ui 0.2.12 → 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.
- 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/file-system/internals/Breadcrumbs.d.ts +2 -1
- package/build/src/elements/file-system/internals/Breadcrumbs.d.ts.map +1 -1
- package/build/src/elements/file-system/internals/Breadcrumbs.js +3 -4
- package/build/src/elements/file-system/internals/Breadcrumbs.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/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/filled.styles.d.ts.map +1 -1
- package/build/src/md/text-field/internals/filled.styles.js +3 -0
- package/build/src/md/text-field/internals/filled.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.ts +1 -1
- 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/file-system/internals/Breadcrumbs.ts +3 -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/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/filled.styles.ts +3 -0
- 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
|
@@ -1,242 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import { UiElement } from '../../UiElement.js'
|
|
5
|
-
import { BeginPressConfig, EndPressConfig } from '../../../controllers/ActionController.js'
|
|
6
|
-
import UiRipple from '../../ripple/internals/ripple.js'
|
|
7
|
-
import { isDisabled, setDisabled } from '../../../lib/disabled.js'
|
|
1
|
+
import { property } from 'lit/decorators.js'
|
|
2
|
+
import BaseButton from './base.js'
|
|
3
|
+
export type { ButtonType, MdButtonShape, MdButtonSize } from './base.js'
|
|
8
4
|
|
|
9
|
-
|
|
10
|
-
import '@material/web/focus/md-focus-ring.js'
|
|
5
|
+
export type MdButtonColor = 'elevated' | 'filled' | 'outlined' | 'text' | 'tonal'
|
|
11
6
|
|
|
12
7
|
/**
|
|
13
|
-
* A material design button.
|
|
14
|
-
*
|
|
15
|
-
* Note, this control is form associated.
|
|
16
|
-
*
|
|
17
|
-
* @slot icon - A slot for the icon element
|
|
18
|
-
* @slot - The default slot for the label
|
|
19
|
-
* @attribute {string} form - The form associated with this element when the element is outside the form.
|
|
20
|
-
* It should be the id of the form element within the same document.
|
|
8
|
+
* A material design button with M3 Expressive features - CSS-native implementation.
|
|
21
9
|
*/
|
|
22
|
-
export default class
|
|
23
|
-
static readonly formAssociated = true
|
|
24
|
-
|
|
25
|
-
#internals = this.attachInternals()
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* The form associated with this element
|
|
29
|
-
* @attribute {string} form - The form associated with this element when the element is outside the form.
|
|
30
|
-
* It should be the id of the form element within the same document.
|
|
31
|
-
*/
|
|
32
|
-
get form(): HTMLFormElement | null {
|
|
33
|
-
return this.#internals.form
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
get validity() {
|
|
37
|
-
return this.#internals.validity
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
get validationMessage() {
|
|
41
|
-
return this.#internals.validationMessage
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
get willValidate() {
|
|
45
|
-
return this.#internals.willValidate
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Determines when the element has an icon in the "icon" slot.
|
|
50
|
-
*/
|
|
51
|
-
@state() protected accessor hasIcon: boolean
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* The name of the button, submitted as a pair with the button's value as part of the form data,
|
|
55
|
-
* when that button is used to submit the form.
|
|
56
|
-
* @attribute
|
|
57
|
-
*/
|
|
58
|
-
@property({ type: String }) accessor name: string | undefined
|
|
59
|
-
|
|
60
|
-
#value?: string
|
|
61
|
-
|
|
62
|
-
get value(): string | undefined {
|
|
63
|
-
return this.#value
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Defines the value associated with the button's name when it's submitted with the form data.
|
|
68
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#value}
|
|
69
|
-
* @attribute
|
|
70
|
-
*/
|
|
71
|
-
@property({ type: String })
|
|
72
|
-
set value(value: string | undefined) {
|
|
73
|
-
if (this.#value === value) {
|
|
74
|
-
return
|
|
75
|
-
}
|
|
76
|
-
this.#value = value
|
|
77
|
-
this.#internals?.setFormValue(value || null)
|
|
78
|
-
}
|
|
79
|
-
|
|
10
|
+
export default class Button extends BaseButton {
|
|
80
11
|
/**
|
|
81
|
-
*
|
|
82
|
-
* inline start.
|
|
12
|
+
* The color of the button.
|
|
83
13
|
* @attribute
|
|
84
14
|
*/
|
|
85
|
-
@property({ type:
|
|
86
|
-
|
|
87
|
-
@queryAsync('ui-ripple') protected accessor ripple!: Promise<UiRipple | null>
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* The default behavior of the button.
|
|
91
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#type}
|
|
92
|
-
* @attribute
|
|
93
|
-
*/
|
|
94
|
-
@property({ type: String, reflect: true }) accessor type: 'submit' | 'reset' | 'button' = 'button'
|
|
95
|
-
|
|
96
|
-
get disabled(): boolean {
|
|
97
|
-
return isDisabled(this)
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* When set, the button is a disabled state.
|
|
102
|
-
* @attribute
|
|
103
|
-
*/
|
|
104
|
-
@property({ reflect: true, type: Boolean })
|
|
105
|
-
set disabled(value: boolean) {
|
|
106
|
-
const old = isDisabled(this)
|
|
107
|
-
setDisabled(this, value)
|
|
108
|
-
this.requestUpdate('disabled', old)
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
constructor() {
|
|
112
|
-
super()
|
|
113
|
-
|
|
114
|
-
this.hasIcon = false
|
|
115
|
-
this.actionController.cancelKeyboardEvents = true
|
|
116
|
-
this.addEventListener('keydown', this.handleKeyDown.bind(this))
|
|
117
|
-
this.addEventListener('keyup', this.handleKeyUp.bind(this))
|
|
118
|
-
this.addEventListener('click', this.handleClick.bind(this))
|
|
119
|
-
this.addEventListener('pointerdown', this.handlePointerDown.bind(this))
|
|
120
|
-
this.addEventListener('pointerup', this.handlePointerUp.bind(this))
|
|
121
|
-
this.addEventListener('pointercancel', this.handlePointerCancel.bind(this))
|
|
122
|
-
this.addEventListener('pointerleave', this.handlePointerLeave.bind(this))
|
|
123
|
-
this.addEventListener('contextmenu', this.handleContextMenu.bind(this))
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
override connectedCallback(): void {
|
|
127
|
-
super.connectedCallback()
|
|
128
|
-
if (!this.hasAttribute('role')) {
|
|
129
|
-
this.setAttribute('role', 'button')
|
|
130
|
-
}
|
|
131
|
-
if (!this.hasAttribute('tabindex') && !this.disabled) {
|
|
132
|
-
this.setAttribute('tabindex', '0')
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
checkValidity() {
|
|
137
|
-
return this.#internals.checkValidity()
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
reportValidity() {
|
|
141
|
-
return this.#internals.reportValidity()
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
protected override firstUpdated(): void {
|
|
145
|
-
this.#internals?.setFormValue(this.value || null)
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
protected async pressRipple(): Promise<void> {
|
|
149
|
-
const element = await this.ripple
|
|
150
|
-
if (element && !element.isPressed) {
|
|
151
|
-
element.beginPress()
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
protected async endRipple(): Promise<void> {
|
|
156
|
-
const element = await this.ripple
|
|
157
|
-
element?.endPress()
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
override beginPress(options: BeginPressConfig): void {
|
|
161
|
-
super.beginPress(options)
|
|
162
|
-
this.pressRipple()
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
override endPress(config: EndPressConfig): void {
|
|
166
|
-
super.endPress(config)
|
|
167
|
-
this.endRipple()
|
|
168
|
-
const { cancelled, reason } = config
|
|
169
|
-
if (cancelled) {
|
|
170
|
-
return
|
|
171
|
-
}
|
|
172
|
-
const allowedReasons = reason === 'enter' || reason === 'space'
|
|
173
|
-
if (this.type === 'submit' && (!reason || allowedReasons)) {
|
|
174
|
-
this.handleSubmit()
|
|
175
|
-
} else if (allowedReasons) {
|
|
176
|
-
this.click()
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
protected handleSubmit(): void {
|
|
181
|
-
const { name, value, type, disabled, form } = this
|
|
182
|
-
if (!form || !type || disabled) {
|
|
183
|
-
return
|
|
184
|
-
}
|
|
185
|
-
let button: HTMLButtonElement | undefined
|
|
186
|
-
if (name || value) {
|
|
187
|
-
button = document.createElement('button')
|
|
188
|
-
if (name) {
|
|
189
|
-
button.name = name
|
|
190
|
-
}
|
|
191
|
-
if (value) {
|
|
192
|
-
button.value = value
|
|
193
|
-
}
|
|
194
|
-
button.type = type
|
|
195
|
-
button.hidden = true
|
|
196
|
-
form.append(button)
|
|
197
|
-
}
|
|
198
|
-
try {
|
|
199
|
-
form.requestSubmit(button)
|
|
200
|
-
} catch {
|
|
201
|
-
// ...
|
|
202
|
-
}
|
|
203
|
-
if (button) {
|
|
204
|
-
form.removeChild(button)
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Sets the `_hasIcon` state property when the "icon" slot change event is dispatched.
|
|
210
|
-
*/
|
|
211
|
-
protected handleSlotChange(e: Event): void {
|
|
212
|
-
const slot = e.target as HTMLSlotElement
|
|
213
|
-
this.hasIcon = !!slot.assignedNodes().length
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
protected override render(): TemplateResult {
|
|
217
|
-
const { pressed = false, trailingIcon = false } = this
|
|
218
|
-
const containerClasses = classMap({
|
|
219
|
-
surface: true,
|
|
220
|
-
withIcon: this.hasIcon,
|
|
221
|
-
pressed,
|
|
222
|
-
})
|
|
223
|
-
const icon = this.renderIcon()
|
|
224
|
-
return html`
|
|
225
|
-
<md-focus-ring part="focus-ring" .control="${this as HTMLElement}"></md-focus-ring>
|
|
226
|
-
<ui-ripple class="ripple" ?disabled="${this.disabled}"></ui-ripple>
|
|
227
|
-
<div class="${containerClasses}" id="container">
|
|
228
|
-
<div class="container"></div>
|
|
229
|
-
<div class="state"></div>
|
|
230
|
-
<div class="content">
|
|
231
|
-
${trailingIcon ? nothing : icon}
|
|
232
|
-
<slot></slot>
|
|
233
|
-
${trailingIcon ? icon : nothing}
|
|
234
|
-
</div>
|
|
235
|
-
</div>
|
|
236
|
-
`
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
protected renderIcon(): TemplateResult {
|
|
240
|
-
return html`<slot name="icon" @slotchange="${this.handleSlotChange}"></slot>`
|
|
241
|
-
}
|
|
15
|
+
@property({ type: String, reflect: true }) accessor color: MdButtonColor = 'filled'
|
|
242
16
|
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { css } from 'lit'
|
|
2
|
+
|
|
3
|
+
/* Material Design 3 Expressive Button - CSS-Native Implementation */
|
|
4
|
+
export default css`
|
|
5
|
+
:host {
|
|
6
|
+
display: flex;
|
|
7
|
+
|
|
8
|
+
--_gap: 8px;
|
|
9
|
+
--_xs-radius: 16px;
|
|
10
|
+
--_s-radius: 20px;
|
|
11
|
+
--_m-radius: 28px;
|
|
12
|
+
--_l-radius: 48px;
|
|
13
|
+
--_xl-radius: 68px;
|
|
14
|
+
|
|
15
|
+
gap: var(--_gap);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
:host([size='xs'][type='standard']) {
|
|
19
|
+
--_gap: 18px;
|
|
20
|
+
}
|
|
21
|
+
:host([size='xs'][type='connected']) {
|
|
22
|
+
--_gap: 2px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
:host([size='s'][type='standard']) {
|
|
26
|
+
--_gap: 12px;
|
|
27
|
+
}
|
|
28
|
+
:host([size='s'][type='connected']) {
|
|
29
|
+
--_gap: 2px;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
:host([size='m'][type='standard']) {
|
|
33
|
+
--_gap: 8px;
|
|
34
|
+
}
|
|
35
|
+
:host([size='m'][type='connected']) {
|
|
36
|
+
--_gap: 2px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
:host([size='l'][type='standard']) {
|
|
40
|
+
--_gap: 8px;
|
|
41
|
+
}
|
|
42
|
+
:host([size='l'][type='connected']) {
|
|
43
|
+
--_gap: 2px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
:host([size='xl'][type='standard']) {
|
|
47
|
+
--_gap: 8px;
|
|
48
|
+
}
|
|
49
|
+
:host([size='xl'][type='connected']) {
|
|
50
|
+
--_gap: 2px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:host([type='connected']) ::slotted(ui-button[size='xs']:first-child) {
|
|
54
|
+
--ui-button-shape-start-start: var(--_xs-radius);
|
|
55
|
+
--ui-button-shape-end-start: var(--_xs-radius);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:host([type='connected']) ::slotted(ui-button[size='s']:first-child) {
|
|
59
|
+
--ui-button-shape-start-start: var(--_s-radius);
|
|
60
|
+
--ui-button-shape-end-start: var(--_s-radius);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
:host([type='connected']) ::slotted(ui-button[size='m']:first-child) {
|
|
64
|
+
--ui-button-shape-start-start: var(--_m-radius);
|
|
65
|
+
--ui-button-shape-end-start: var(--_m-radius);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
:host([type='connected']) ::slotted(ui-button[size='l']:first-child) {
|
|
69
|
+
--ui-button-shape-start-start: var(--_l-radius);
|
|
70
|
+
--ui-button-shape-end-start: var(--_l-radius);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
:host([type='connected']) ::slotted(ui-button[size='xl']:first-child) {
|
|
74
|
+
--ui-button-shape-start-start: var(--_xl-radius);
|
|
75
|
+
--ui-button-shape-end-start: var(--_xl-radius);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
:host([type='connected']) ::slotted(ui-button[size='xs']:last-child) {
|
|
79
|
+
--ui-button-shape-start-end: var(--_xs-radius);
|
|
80
|
+
--ui-button-shape-end-end: var(--_xs-radius);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
:host([type='connected']) ::slotted(ui-button[size='s']:last-child) {
|
|
84
|
+
--ui-button-shape-start-end: var(--_s-radius);
|
|
85
|
+
--ui-button-shape-end-end: var(--_s-radius);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
:host([type='connected']) ::slotted(ui-button[size='m']:last-child) {
|
|
89
|
+
--ui-button-shape-start-end: var(--_m-radius);
|
|
90
|
+
--ui-button-shape-end-end: var(--_m-radius);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
:host([type='connected']) ::slotted(ui-button[size='l']:last-child) {
|
|
94
|
+
--ui-button-shape-start-end: var(--_l-radius);
|
|
95
|
+
--ui-button-shape-end-end: var(--_l-radius);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
:host([type='connected']) ::slotted(ui-button[size='xl']:last-child) {
|
|
99
|
+
--ui-button-shape-start-end: var(--_xl-radius);
|
|
100
|
+
--ui-button-shape-end-end: var(--_xl-radius);
|
|
101
|
+
}
|
|
102
|
+
`
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { LitElement, type PropertyValues, html } from 'lit'
|
|
2
|
+
import { property, queryAssignedElements } from 'lit/decorators.js'
|
|
3
|
+
import UiButtonElement from './button.js'
|
|
4
|
+
import type { MdButtonSize } from './button.js'
|
|
5
|
+
|
|
6
|
+
export type MdGroupType = 'standard' | 'connected'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A group of buttons that can be selected.
|
|
10
|
+
*
|
|
11
|
+
* When a group of buttons is added to the group element, the group element
|
|
12
|
+
* becomes the manager of the buttons type, size, and selection state.
|
|
13
|
+
*
|
|
14
|
+
* All buttons added to the group will inherit the size from the group, but also the `shape` is set
|
|
15
|
+
* based on the group type.
|
|
16
|
+
*
|
|
17
|
+
* Buttons don't need to be have the `toggle` attribute set. In such case, the button
|
|
18
|
+
* will not participate in the selection state management.
|
|
19
|
+
*/
|
|
20
|
+
export default class ButtonGroup extends LitElement {
|
|
21
|
+
/**
|
|
22
|
+
* If true, multiple buttons can be selected.
|
|
23
|
+
* When set to false, the group deselects all other buttons when one is selected.
|
|
24
|
+
* @attribute
|
|
25
|
+
*/
|
|
26
|
+
@property({ type: Boolean }) accessor multiple = false
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The type of button group.
|
|
30
|
+
* - 'standard': Standard button group.
|
|
31
|
+
* - 'connected': Connected button group (buttons are visually connected).
|
|
32
|
+
* @attribute
|
|
33
|
+
*/
|
|
34
|
+
@property({ type: String }) accessor type: MdGroupType = 'standard'
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The size of the buttons used with this group.
|
|
38
|
+
* @attribute
|
|
39
|
+
*/
|
|
40
|
+
@property({ type: String, reflect: true }) accessor size: MdButtonSize = 's'
|
|
41
|
+
|
|
42
|
+
@queryAssignedElements({ flatten: true, selector: 'ui-button' }) private accessor buttons!: UiButtonElement[]
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The MutationObserver instance used to watch for changes in slotted children.
|
|
46
|
+
*/
|
|
47
|
+
protected observer?: MutationObserver
|
|
48
|
+
|
|
49
|
+
override connectedCallback(): void {
|
|
50
|
+
super.connectedCallback()
|
|
51
|
+
this.observer = new MutationObserver(this.handleMutations.bind(this))
|
|
52
|
+
this.observer.observe(this, { childList: true, subtree: true, attributes: true, attributeFilter: ['selected'] })
|
|
53
|
+
this.updateChildren()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
override disconnectedCallback(): void {
|
|
57
|
+
super.disconnectedCallback()
|
|
58
|
+
this.observer?.disconnect()
|
|
59
|
+
this.observer = undefined
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
protected override firstUpdated(changed: PropertyValues): void {
|
|
63
|
+
this.updateChildren()
|
|
64
|
+
super.firstUpdated(changed)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
protected override willUpdate(changed: PropertyValues<this>): void {
|
|
68
|
+
if (changed.has('size')) {
|
|
69
|
+
this.updateChildren()
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
protected handleMutations(mutations: MutationRecord[]): void {
|
|
74
|
+
for (const mutation of mutations) {
|
|
75
|
+
if (mutation.type === 'attributes' && mutation.attributeName === 'selected') {
|
|
76
|
+
const target = mutation.target as UiButtonElement
|
|
77
|
+
if (target instanceof UiButtonElement && target.toggle && target.selected) {
|
|
78
|
+
this.activate(target)
|
|
79
|
+
}
|
|
80
|
+
} else if (mutation.type === 'childList') {
|
|
81
|
+
this.updateChildren()
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
protected updateChildren(): void {
|
|
87
|
+
const isConnected = this.type === 'connected'
|
|
88
|
+
this.buttons.forEach((button) => {
|
|
89
|
+
button.size = this.size
|
|
90
|
+
if (isConnected) {
|
|
91
|
+
button.shape = 'square'
|
|
92
|
+
} else {
|
|
93
|
+
button.shape = 'round'
|
|
94
|
+
}
|
|
95
|
+
})
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* In multi selection mode, this method does nothing.
|
|
100
|
+
* In single selection mode, it activates the clicked button and deactivates all others.
|
|
101
|
+
*/
|
|
102
|
+
activate(button: UiButtonElement) {
|
|
103
|
+
if (this.multiple) {
|
|
104
|
+
// In multiselection, we don't need to do anything here
|
|
105
|
+
return
|
|
106
|
+
}
|
|
107
|
+
this.buttons.forEach((btn) => {
|
|
108
|
+
if (!btn.toggle || btn === button || !btn.selected) {
|
|
109
|
+
return
|
|
110
|
+
}
|
|
111
|
+
btn.selected = false
|
|
112
|
+
})
|
|
113
|
+
if (button.toggle && !button.selected) {
|
|
114
|
+
button.selected = true
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
override render() {
|
|
119
|
+
return html`<slot></slot>`
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CSSResultOrNative } from 'lit'
|
|
2
|
+
import { customElement } from 'lit/decorators.js'
|
|
3
|
+
import Element from './internals/group.js'
|
|
4
|
+
import styles from './internals/group.styles.js'
|
|
5
|
+
|
|
6
|
+
@customElement('ui-button-group')
|
|
7
|
+
export class UiButtonGroupElement extends Element {
|
|
8
|
+
static override styles: CSSResultOrNative[] = [styles]
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
declare global {
|
|
12
|
+
interface HTMLElementTagNameMap {
|
|
13
|
+
'ui-button-group': UiButtonGroupElement
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CSSResultOrNative } from 'lit'
|
|
2
|
+
import { customElement } from 'lit/decorators.js'
|
|
3
|
+
import Element from './internals/button.js'
|
|
4
|
+
import styles from './internals/button.styles.js'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @attribute {string} form
|
|
8
|
+
*/
|
|
9
|
+
@customElement('ui-button')
|
|
10
|
+
export class UiButtonElement extends Element {
|
|
11
|
+
static override styles: CSSResultOrNative[] = [styles]
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
declare global {
|
|
15
|
+
interface HTMLElementTagNameMap {
|
|
16
|
+
'ui-button': UiButtonElement
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -7,7 +7,7 @@ import type UiButton from '../../button/internals/button.js'
|
|
|
7
7
|
import type { TypedEvents } from '../../../core/types.js'
|
|
8
8
|
import { ifDefined } from 'lit/directives/if-defined.js'
|
|
9
9
|
import { SyntheticSubmitEvent } from '../../../events/SyntheticSubmitEvent.js'
|
|
10
|
-
import '../../button/ui-
|
|
10
|
+
import '../../button/ui-button.js'
|
|
11
11
|
|
|
12
12
|
export interface UiDialogClosingReason {
|
|
13
13
|
/**
|
|
@@ -40,8 +40,8 @@ export type RenderFunction = () => TemplateResult
|
|
|
40
40
|
* closing reason detail.
|
|
41
41
|
*
|
|
42
42
|
* ```javascript
|
|
43
|
-
* <ui-
|
|
44
|
-
* <ui-
|
|
43
|
+
* <ui-button color="text" value="dismiss">Cancel</ui-button>
|
|
44
|
+
* <ui-button color="text" value="confirm">Take action</ui-button>
|
|
45
45
|
* ```
|
|
46
46
|
*
|
|
47
47
|
* ```javascript
|
|
@@ -64,8 +64,8 @@ export type RenderFunction = () => TemplateResult
|
|
|
64
64
|
* <span slot="title">Delete photos?</span>
|
|
65
65
|
* <p>This action will permanently remove the selected pictures from your account.</p>
|
|
66
66
|
*
|
|
67
|
-
* <ui-
|
|
68
|
-
* <ui-
|
|
67
|
+
* <ui-button color="text" slot="button" value="dismiss" type="text">Cancel</ui-button>
|
|
68
|
+
* <ui-button color="text" slot="button" value="confirm" type="text">Confirm</ui-button>
|
|
69
69
|
* </ui-dialog>
|
|
70
70
|
* ```
|
|
71
71
|
*
|
|
@@ -408,8 +408,8 @@ export default class UiDialog extends UiElement implements TypedEvents<DialogEve
|
|
|
408
408
|
return nothing
|
|
409
409
|
}
|
|
410
410
|
return html`
|
|
411
|
-
<ui-
|
|
412
|
-
>${dismissLabel}</ui-
|
|
411
|
+
<ui-button color="text" value="dismiss" class="internal-button" @click="${this.handleDismiss}"
|
|
412
|
+
>${dismissLabel}</ui-button
|
|
413
413
|
>
|
|
414
414
|
`
|
|
415
415
|
}
|
|
@@ -421,8 +421,13 @@ export default class UiDialog extends UiElement implements TypedEvents<DialogEve
|
|
|
421
421
|
}
|
|
422
422
|
const type = useForm ? 'submit' : 'button'
|
|
423
423
|
return html`
|
|
424
|
-
<ui-
|
|
425
|
-
|
|
424
|
+
<ui-button
|
|
425
|
+
color="text"
|
|
426
|
+
type="${type}"
|
|
427
|
+
value="${confirmValue}"
|
|
428
|
+
class="internal-button"
|
|
429
|
+
@click="${this.handleConfirm}"
|
|
430
|
+
>${confirmLabel}</ui-button
|
|
426
431
|
>
|
|
427
432
|
`
|
|
428
433
|
}
|
|
@@ -18,7 +18,7 @@ export interface UiDropdownListSelection {
|
|
|
18
18
|
* Examples:
|
|
19
19
|
*
|
|
20
20
|
* <ui-dropdown-list>
|
|
21
|
-
* <ui-filled
|
|
21
|
+
* <ui-button color="filled">Click me</ui-button>
|
|
22
22
|
* <ui-list slot="dropdown" role="menu">
|
|
23
23
|
* <ui-list-item role="menuitem">Item 1</ui-list-item>
|
|
24
24
|
* <ui-list-item role="menuitem">Item 2</ui-list-item>
|