�
"T�e�) � �d � d dl mZmZ ddlmZ ddlmZmZ ddlm Z ddl
mZ ddlm
Z
mZ ddlmZmZ dd lmZ dd
lmZmZ ddlmZmZ erddlmZmZmZmZ G d
� de� Ze dk( rJddlmZ e� Z!ddlm"Z"mZ ddlmZ eddde"d�� Z#e!jI � e!jI e#� yy)� )�
TYPE_CHECKING�Optional� )�AlignMethod)�ROUNDED�Box)�cell_len)�JupyterMixin)�Measurement�measure_renderables)�Padding�PaddingDimensions)�Segment)�Style� StyleType)�Text�TextType)�Console�ConsoleOptions�RenderableType�RenderResultc �x � e Zd ZdZefddddddddddddd�d d
dedee d
edee dedee de de
de
dee dee dede ddfd�Z
eefdddddddddddd�d d
dedee d
edee dedee de
de
dee dee dede dd fd�� Zedee fd�� Zedee fd�� Z d d�Z d!d�Zy)"�Panela� A console renderable that draws a border around its contents.
Example:
>>> console.print(Panel("Hello, World!"))
Args:
renderable (RenderableType): A console renderable object.
box (Box, optional): A Box instance that defines the look of the border (see :ref:`appendix_box`.
Defaults to box.ROUNDED.
safe_box (bool, optional): Disable box characters that don't display on windows legacy terminal with *raster* fonts. Defaults to True.
expand (bool, optional): If True the panel will stretch to fill the console
width, otherwise it will be sized to fit the contents. Defaults to True.
style (str, optional): The style of the panel (border and contents). Defaults to "none".
border_style (str, optional): The style of the border. Defaults to "none".
width (Optional[int], optional): Optional width of panel. Defaults to None to auto-detect.
height (Optional[int], optional): Optional height of panel. Defaults to None to auto-detect.
padding (Optional[PaddingDimensions]): Optional padding around renderable. Defaults to 0.
highlight (bool, optional): Enable automatic highlighting of panel title (if str). Defaults to False.
N�centerT�none)r r F)�title�title_align�subtitle�subtitle_align�safe_box�expand�style�border_style�width�height�padding� highlight�
renderabler �boxr r r r r r! r" |