class_docstr: Provides a way to open a modal popup with the content of a graph figure.
class_docstr_tok: ["Provides","a","way","to","open","a","modal","popup","with","the","content","of","a","graph","figure","."]
code: def layout(self):
      return html.Div(
          [
              dbc.Button(
                  self.button_text,
                  id=self.name + "modal-open",
                  size=self.button_size,
                  color="secondary",
                  outline=self.button_outline,
              ),
              dbc.Modal(
                  [
                      # ToDo the X on the top right is not rendered properly, disabling
                      dbc.ModalHeader(
                          dbc.ModalTitle(self.title), close_button=True
                      ),
                      dbc.ModalBody(
                          dcc.Graph(
                              id=self.name + "-modal-graph",
                              style={
                                  "max-height": "none",
                                  "height": "80%",
                              },
                          )
                      ),
                      dbc.ModalFooter(
                          [
                              html.Div(
                                  [
                                      html.Div(
                                          [
                                              html.Div(
                                                  [
                                                      dbc.Button(
                                                          html.Small(
                                                              "Description"
                                                          ),
                                                          id=self.name
                                                          + "-show-description",
                                                          color="link",
                                                          className="text-muted ml-auto",
                                                      ),
                                                      dbc.Fade(
                                                          [
                                                              html.Small(
                                                                  self.description,
                                                                  className="text-muted",
                                                              )
                                                          ],
                                                          id=self.name
                                                          + "-fade",
                                                          is_in=True,
                                                          appear=True,
                                                      ),
                                                  ],
                                                  style=dict(
                                                      display="none"
                                                      if not self.description
                                                      else None
                                                  ),
                                              )
                                          ],
                                          className="text-left",
                                      ),
                                      html.Div(
                                          [
                                              dbc.Button(
                                                  "Close",
                                                  id=self.name
                                                  + "-modal-close",
                                                  className="mr-auto",
                                              )
                                          ],
                                          className="text-right",
                                          style=dict(float="right"),
                                      ),
                                  ],
                                  style={"display": "flex"},
                              ),
                          ],
                          className="justify-content-between",
                      ),
                  ],
                  id=self.name + "-modal",
                  size="xl",
              ),
          ],
          style={"display": "flex", "justify-content": "flex-end"},
      )
  
imports: import sys
  from abc import ABC
  import inspect
  import types
  from typing import Union, List, Tuple
  from pathlib import Path
  from importlib import import_module
  import socket
  import dash
  from dash import html, dcc, Input, Output, State
  from dash.exceptions import PreventUpdate
  import dash_bootstrap_components
  from .None import to_html
label_desc: Use image node_id 2 for calling the GraphPopout obj's underlying member method code with example usage: obj.layout() and returns: html