anchor.diff:    }
   }
   
  -class EmbedDialog extends DDialog {
  +class SharingDialog extends DDialog {
     final GistContainer gistContainer;
     final GistController gistController;
   
  +  ParagraphElement _text;
  +  TextAreaElement _textArea;
     DButton _cancelButton;
  +  DButton _shareButton;
  +  DButton _closeButton;
  +  DElement _div;
  +  DInput _padUrl;
  +  DInput _gistUrl;
  +  String _summary;
  +  DElement _embedArea;
     DElement _doc;
     DElement _html;
     DElement _inline;
     DElement _info;
   
  -  EmbedDialog(
  -      GistContainer this.gistContainer, GistController this.gistController)
  -      : super(title: 'Embedding Options (BETA)') {
  +  SharingDialog(
  +      GistContainer this.gistContainer, GistController this.gistController,
  +      {String summary: ""})
  +      : super(title: 'Sharing') {
       element.classes.toggle('sharing-dialog', true);
  +    _summary = summary;
   
       content.setAttr('layout');
       content.setAttr('vertical');
   
  -    _doc = content.add(new DElement.tag('div')..layoutHorizontal());
  -    _html = content.add(new DElement.tag('div')..layoutHorizontal());
  -    _inline = content.add(new DElement.tag('div')..layoutHorizontal());
  -    _info = content.add(new DElement.tag('div')..layoutHorizontal());
  +    _text = content.add(new ParagraphElement());
  +    _textArea = content.add(new TextAreaElement());
  +    _textArea.className = 'sharingSummaryText';
  +    _textArea.setAttribute('flex', '');
  +
  +    // About to share.
       _cancelButton = new DButton.button(text: 'Cancel');
       _cancelButton.onClick.listen((_) => hide());
  +    _shareButton = new DButton.button(text: 'Share it!', classes: 'default');
  +    _shareButton.onClick.listen((_) => _performShare());
  +
  +    // Already sharing.
  +    _closeButton = new DButton.button(text: 'Close', classes: 'default');
  +    _closeButton.onClick.listen((_) => hide());
  +    _div = new DElement.tag('div')..layoutVertical();
  +    _embedArea = new DElement.tag('div')..layoutVertical();
  +    DElement div =
  +        _div.add(new DElement.tag('div', classes: 'row')..layoutHorizontal());
  +    div.add(new DElement.tag('span', classes: 'sharinglabel'))
  +      ..text = 'DartPad:';
  +    DElement inputGroup = div.add(new DElement.tag('div'))
  +      ..layoutHorizontal()
  +      ..flex();
  +    _padUrl = inputGroup.add(new DInput.input(type: 'text'))
  +      ..flex()
  +      ..readonly();
  +    _padUrl.onClick.listen((_) => _padUrl.selectAll());
  +
  +    div = _div.add(new DElement.tag('div', classes: 'row')..layoutHorizontal());
  +    div.add(new DElement.tag('span', classes: 'sharinglabel'))
  +      ..text = 'gist.github.com:';
  +    inputGroup = div.add(new DElement.tag('div'))
  +      ..layoutHorizontal()
  +      ..flex();
  +    _gistUrl = inputGroup.add(new DInput.input(type: 'text'))
  +      ..flex()
  +      ..readonly();
  +    _gistUrl.onClick.listen((_) => _gistUrl.selectAll());
  +  }
  +
  +  void showWithSummary(String summary) {
  +    this._summary = summary;
  +    show();
     }
   
     void show() {
  -    _configure();
  +    _configure(gistContainer.mutableGist);
       super.show();
     }
   
  -  void generateExport() {
  +  void generateEmbed() {
  +    DElement embedTitle = _embedArea.add(new DElement.tag('div', classes: 'title'));
  +    embedTitle.add(new DElement.tag('h1')..text = "Embed DartPad");
  +    _doc = _embedArea.add(new DElement.tag('div')..layoutHorizontal());
  +    _html = _embedArea.add(new DElement.tag('div')..layoutHorizontal());
  +    _inline = _embedArea.add(new DElement.tag('div')..layoutHorizontal());
  +    _info = _embedArea.add(new DElement.tag('div')..layoutHorizontal());
       MutableGist gist = gistContainer.mutableGist;
       String home = 'dartpad.dartlang.org';
       _doc.add(new SpanElement()
  
positive.code:     _doc.add(new InputElement()
        ..value = "<iframe src='https://${home}/embed-dart.html?id=${gist.id}'></iframe>"
        ..attributes['flex'] = '');
      _html.add(new SpanElement()
        ..text = 'Dart + Html: '
        ..classes.toggle('export-text-dialog', true));
  
negative.code: 
    void _switchTo({bool aboutToShare: true}) {
      buttonArea.element.children.clear();
      _embedArea.element.children.clear();
      _div.dispose();
  
      if (aboutToShare) {
  