Dialog
Basic usage
<script lang="ts">
  let show = false
</script>
<CButton label="Click to show dialog" on:click={() => (show = true)} />
<CDialog bind:show title="Hi, there!">some content</CDialog>  <script lang="ts">
  let show = false
</script>
<CButton label="Click to show dialog" on:click={() => (show = true)} />
<CDialog bind:show title="Hi, there!">some content</CDialog> Height & width
<script lang="ts">
  let show = false
</script>
<CButton label="Click to show dialog" on:click={() => (show = true)} />
<CDialog bind:show title="Hi, there!" width="60vw" bodyHeight="60vh">
  Some content
</CDialog>  <script lang="ts">
  let show = false
</script>
<CButton label="Click to show dialog" on:click={() => (show = true)} />
<CDialog bind:show title="Hi, there!" width="60vw" bodyHeight="60vh">
  Some content
</CDialog> Without close icon
<script lang="ts">
  let show = false
</script>
<CButton
  label="Click to show dialog (Press Esc to close)"
  on:click={() => (show = true)}
/>
<CDialog bind:show title="Hi, there!" closeIcon={false}>some content</CDialog>  <script lang="ts">
  let show = false
</script>
<CButton
  label="Click to show dialog (Press Esc to close)"
  on:click={() => (show = true)}
/>
<CDialog bind:show title="Hi, there!" closeIcon={false}>some content</CDialog> Positions
<script lang="ts">
  let show = false
  let verticalAlign: any = 'start'
  let horizontalAlign: any = 'start'
  function openWithPosition(h: any, v: any) {
    horizontalAlign = h
    verticalAlign = v
    show = true
  }
</script>
<CDialog
  bind:show
  title="Hi, there!"
  {verticalAlign}
  {horizontalAlign}
  bodyHeight="40vh"
>
  some content
</CDialog>
<div class="grid grid-cols-3 gap-4">
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('start', 'start')}
  >
    <div class="i-ph-arrow-circle-up-left" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('center', 'start')}
  >
    <div class="i-ph-arrow-circle-up" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('end', 'start')}
  >
    <div class="i-ph-arrow-circle-up-right" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('start', 'center')}
  >
    <div class="i-ph-arrow-circle-left" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('center', 'center')}
  >
    <div class="i-cil-center-focus" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('end', 'center')}
  >
    <div class="i-ph-arrow-circle-right" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('start', 'end')}
  >
    <div class="i-ph-arrow-circle-down-left" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('center', 'end')}
  >
    <div class="i-ph-arrow-circle-down" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('end', 'end')}
  >
    <div class="i-ph-arrow-circle-down-right" />
  </CButton>
</div>  <script lang="ts">
  let show = false
  let verticalAlign: any = 'start'
  let horizontalAlign: any = 'start'
  function openWithPosition(h: any, v: any) {
    horizontalAlign = h
    verticalAlign = v
    show = true
  }
</script>
<CDialog
  bind:show
  title="Hi, there!"
  {verticalAlign}
  {horizontalAlign}
  bodyHeight="40vh"
>
  some content
</CDialog>
<div class="grid grid-cols-3 gap-4">
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('start', 'start')}
  >
    <div class="i-ph-arrow-circle-up-left" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('center', 'start')}
  >
    <div class="i-ph-arrow-circle-up" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('end', 'start')}
  >
    <div class="i-ph-arrow-circle-up-right" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('start', 'center')}
  >
    <div class="i-ph-arrow-circle-left" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('center', 'center')}
  >
    <div class="i-cil-center-focus" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('end', 'center')}
  >
    <div class="i-ph-arrow-circle-right" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('start', 'end')}
  >
    <div class="i-ph-arrow-circle-down-left" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('center', 'end')}
  >
    <div class="i-ph-arrow-circle-down" />
  </CButton>
  <CButton
    icon
    style="font-size: 28px;"
    on:click={() => openWithPosition('end', 'end')}
  >
    <div class="i-ph-arrow-circle-down-right" />
  </CButton>
</div> Footer actions
<script lang="ts">
  let show = false
  function onCancel() {
    show = false
  }
</script>
<CButton label="Click to show dialog" on:click={() => (show = true)} />
<CDialog
  bind:show
  title="Hi, there!"
  showCancelBtn
  showConfirmBtn
  on:cancel={onCancel}
>
  some content
</CDialog>  <script lang="ts">
  let show = false
  function onCancel() {
    show = false
  }
</script>
<CButton label="Click to show dialog" on:click={() => (show = true)} />
<CDialog
  bind:show
  title="Hi, there!"
  showCancelBtn
  showConfirmBtn
  on:cancel={onCancel}
>
  some content
</CDialog> Customize contents with slots
<script lang="ts">
  let show = false
</script>
<CButton on:click={() => (show = true)} label="Click to show dialog" />
<CDialog bind:show>
  <div class="c-text-primary flex items-center" slot="title">
    <div class="i-line-md-emoji-smile-wink text-8 mr-2" />
    <div>Hi, there</div>
  </div>
  <div class="i-mdi-progress-close hover:i-line-md-close" slot="close-icon" />
  <div>Body content</div>
  <div slot="actions">
    <button on:click={() => (show = false)}> Custom action button </button>
  </div>
</CDialog>  <script lang="ts">
  let show = false
</script>
<CButton on:click={() => (show = true)} label="Click to show dialog" />
<CDialog bind:show>
  <div class="c-text-primary flex items-center" slot="title">
    <div class="i-line-md-emoji-smile-wink text-8 mr-2" />
    <div>Hi, there</div>
  </div>
  <div class="i-mdi-progress-close hover:i-line-md-close" slot="close-icon" />
  <div>Body content</div>
  <div slot="actions">
    <button on:click={() => (show = false)}> Custom action button </button>
  </div>
</CDialog> CDialog Props
- showdefault:
booleanfalseDetermine the dialog is shown or not. It's recommended to use
bind:show - titledefault:
stringThe title of the dialog
 - widthdefault:
string40vwThe width of the whole dialog. Can be any logical HTML unit. For example:
'200px''20vw' - bodyHeightdefault:
stringautoThe body height of the dialog, which doesn't contain the header and the footer that action buttons in.
 - bodyPaddingdefault:
booleantrueDetermine the body has a padding or not
 - roundeddefault:
booleantrueDetermine the dialog has a rounded border or not
 - closeIcondefault:
booleantrueDetermine the close icon is shown or not
 - verticalAligndefault:
'start' | 'center' | 'end' | undefinedundefinedSee above
 - customClassdefault:
stringCustomize class names
 - customStyledefault:
stringCustomize styles
 - customBodyStyledefault:
stringCustomize body styles
 - showCancelBtndefault:
booleanfalseDetermine the whether cancel button is shown or not
 - cancelBtnLabeldefault:
stringCancelThe cancel button label
 - showConfirmBtndefault:
booleanfalseDetermine the whether confirm button is shown or not
 - confirmBtnLabeldefault:
stringConfirmThe confirm button label
 - exchangeAnimationDirectiondefault:
booleanfalseExchange the animation order.
The origin animation order is horizontal first then the vertical
If set to
true, the dialog animation will excute vertical first then the horizontal - closeOnEscdefault:
booleantrueClose the dialog when the Esc key pressed
 - closeOnClickBackdropdefault:
booleanfalseIf set to
true. The popup would be hidden when click the backdrop.This prop is the same as CPopup
 
CDialog Events
- closed
Emit when close transition is done
 - opened
Emit when the open transition is done
 - cancel
Emit when the default cancel button clicked
 - confirm
Emit when the default confirm button clicked
 
CDialog Slots
- header
Customize the header content This slot can override the title prop and the default close icon
 - title
Customize the title content. This slot can override the title prop
 - close-icon
Customize the close icon
 - default
The default content of dialog
 - footer
Customize footer content of dialog This slot would override the confirm and cancel button
 - actions
Customize the footer actions