Package Exports
- @polymer/paper-dialog-behavior/paper-dialog-behavior
- @polymer/paper-dialog-behavior/paper-dialog-behavior.js
- @polymer/paper-dialog-behavior/paper-dialog-shared-styles
- @polymer/paper-dialog-behavior/paper-dialog-shared-styles.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@polymer/paper-dialog-behavior) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
PaperDialogBehavior
Use PaperDialogBehavior
and paper-dialog-shared-styles.js
to implement a Material Design
dialog.
For example, if <paper-dialog-impl>
implements this behavior:
<paper-dialog-impl>
<h2>Header</h2>
<div>Dialog body</div>
<div class="paper-dialog-buttons">
<paper-button dialog-dismiss>Cancel</paper-button>
<paper-button dialog-confirm>Accept</paper-button>
</div>
</paper-dialog-impl>
paper-dialog-shared-styles.js
provide styles for a header, content area, and an action area for buttons.
Use the <h2>
tag for the header and the paper-dialog-buttons
or buttons
class for the action area. You can use the
paper-dialog-scrollable
element (in its own repository) if you need a scrolling content area.
Use the dialog-dismiss
and dialog-confirm
attributes on interactive controls to close the
dialog. If the user dismisses the dialog with dialog-confirm
, the closingReason
will update
to include confirmed: true
.
Accessibility
This element has role="dialog"
by default. Depending on the context, it may be more appropriate
to override this attribute with role="alertdialog"
.
If modal
is set, the element will prevent the focus from exiting the element.
It will also ensure that focus remains in the dialog.
See: Documentation, Demo.
Usage
Installation
npm install --save @polymer/paper-dialog-behavior
In a Polymer 3 element
import {PolymerElement, html} from '@polymer/polymer';
import {mixinBehaviors} from '@polymer/polymer/lib/legacy/class.js';
import {PaperDialogBehavior} from '@polymer/paper-dialog-behavior/paper-dialog-behavior.js';
class SampleElement extends mixinBehaviors(PaperDialogBehavior, PolymerElement) {
static get template() {
return html`
<style include="paper-dialog-shared-styles"></style>
<slot></slot>
`;
}
}
customElements.define('sample-element', SampleElement);
Contributing
If you want to send a PR to this element, here are the instructions for running the tests and demo locally:
Installation
git clone https://github.com/PolymerElements/paper-dialog-behavior
cd paper-dialog-behavior
npm install
npm install -g polymer-cli
Running the demo locally
polymer serve --npm
open http://127.0.0.1:<port>/demo/
Running the tests
polymer test --npm