/* === Monaco overrides === */

/*
CSS normalization removes the default styles of HTML elements,
so we need to adjust styles of Monaco-rendered Markdown docs.
Also some spacing adjustments.
*/

.suggest-details .header p {
  @apply pb-0 pt-3 !important;
}

.monaco-hover p,
.suggest-details .docs p {
  @apply my-2 !important;
}

.suggest-details h1,
.monaco-hover h1 {
  @apply text-xl font-semibold mt-4 mb-2;
}

.suggest-details h2,
.monaco-hover h2 {
  @apply text-lg font-medium mt-4 mb-2;
}

.suggest-details h3,
.monaco-hover h3 {
  @apply font-medium mt-4 mb-2;
}

.suggest-details ul,
.monaco-hover ul {
  @apply list-disc;
}

.suggest-details ol,
.monaco-hover ol {
  @apply list-decimal;
}

.suggest-details hr,
.monaco-hover hr {
  @apply my-2 !important;
}

.suggest-details blockquote,
.monaco-hover blockquote {
  @apply border-l-4 border-gray-200 pl-4 py-0.5 my-2;
}

/* Add some spacing to code snippets in completion suggestions */
.suggest-details div.monaco-tokenized-source,
.monaco-hover div.monaco-tokenized-source {
  @apply my-2;
}

/* Increase the hover box limits */
.monaco-hover-content {
  max-width: 1000px !important;
  max-height: 300px !important;
}

/* === Monaco cursor widget === */

.monaco-cursor-widget-container {
  pointer-events: none;
  z-index: 100;
}

.monaco-cursor-widget-container .monaco-cursor-widget-cursor {
  pointer-events: initial;
  width: 2px;
}

.monaco-cursor-widget-container .monaco-cursor-widget-label {
  pointer-events: initial;
  transform: translateY(-200%);
  white-space: nowrap;
  padding: 1px 8px;
  font-size: 12px;
  color: #f8fafc;

  visibility: hidden;
  transition-property: visibility;
  transition-duration: 0s;
  transition-delay: 1.5s;
}

.monaco-cursor-widget-container .monaco-cursor-widget-label:hover {
  visibility: visible;
}

.monaco-cursor-widget-container
  .monaco-cursor-widget-cursor:hover
  + .monaco-cursor-widget-label {
  visibility: visible;
  transition-delay: 0s;
}

/* When in the first line, we want to display cursor and label in the same line */
.monaco-cursor-widget-container.inline {
  display: flex;
}

.monaco-cursor-widget-container.inline .monaco-cursor-widget-label {
  margin-left: 2px;
  transform: none;
}
