mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Add Hide/Show all checks button to commit status check (#26284)
				
					
				
			Step one for a GitHub like commit status check ui:    Step two:   The design now will list all commit status checks which takes too much space. This is a pre-improve for #26247 --------- Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		@@ -1786,6 +1786,8 @@ pulls.status_checks_failure = Some checks failed
 | 
			
		||||
pulls.status_checks_error = Some checks reported errors
 | 
			
		||||
pulls.status_checks_requested = Required
 | 
			
		||||
pulls.status_checks_details = Details
 | 
			
		||||
pulls.status_checks_hide_all = Hide all checks
 | 
			
		||||
pulls.status_checks_show_all = Show all checks
 | 
			
		||||
pulls.update_branch = Update branch by merge
 | 
			
		||||
pulls.update_branch_rebase = Update branch by rebase
 | 
			
		||||
pulls.update_branch_success = Branch update was successful
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@
 | 
			
		||||
		{{end}}
 | 
			
		||||
		<div class="ui top attached header clearing segment gt-relative commit-header {{$class}}">
 | 
			
		||||
			<div class="gt-df gt-mb-4 gt-fw">
 | 
			
		||||
				<h3 class="gt-mb-0 gt-f1"><span class="commit-summary" title="{{.Commit.Summary}}">{{RenderCommitMessage $.Context .Commit.Message $.RepoLink ($.Repository.ComposeMetas ctx)}}</span>{{template "repo/commit_statuses" dict "Status" .CommitStatus "Statuses" .CommitStatuses "root" $}}</h3>
 | 
			
		||||
				<h3 class="gt-mb-0 gt-f1"><span class="commit-summary" title="{{.Commit.Summary}}">{{RenderCommitMessage $.Context .Commit.Message $.RepoLink ($.Repository.ComposeMetas ctx)}}</span>{{template "repo/commit_statuses" dict "Status" .CommitStatus "Statuses" .CommitStatuses}}</h3>
 | 
			
		||||
				{{if not $.PageIsWiki}}
 | 
			
		||||
					<div>
 | 
			
		||||
						<a class="ui primary tiny button" href="{{.SourcePath}}">
 | 
			
		||||
 
 | 
			
		||||
@@ -8,15 +8,7 @@
 | 
			
		||||
			{{template "repo/commit_status" .Status}}
 | 
			
		||||
		</span>
 | 
			
		||||
	{{end}}
 | 
			
		||||
	<div class="tippy-target ui relaxed list divided">
 | 
			
		||||
		{{range .Statuses}}
 | 
			
		||||
			<div class="ui item singular-status gt-df">
 | 
			
		||||
				{{template "repo/commit_status" .}}
 | 
			
		||||
				<span class="ui gt-ml-3 gt-f1">{{.Context}} <span class="text grey">{{.Description}}</span></span>
 | 
			
		||||
				{{if .TargetURL}}
 | 
			
		||||
					<a class="gt-ml-3" href="{{.TargetURL}}" target="_blank" rel="noopener noreferrer">{{ctx.Locale.Tr "repo.pulls.status_checks_details"}}</a>
 | 
			
		||||
				{{end}}
 | 
			
		||||
			</div>
 | 
			
		||||
		{{end}}
 | 
			
		||||
	<div class="tippy-target">
 | 
			
		||||
		{{template "repo/pulls/status" (dict "CommitStatuses" .Statuses "CommitStatus" .Status)}}
 | 
			
		||||
	</div>
 | 
			
		||||
{{end}}
 | 
			
		||||
 
 | 
			
		||||
@@ -66,7 +66,7 @@
 | 
			
		||||
							{{if IsMultilineCommitMessage .Message}}
 | 
			
		||||
							<button class="ui button js-toggle-commit-body ellipsis-button" aria-expanded="false">...</button>
 | 
			
		||||
							{{end}}
 | 
			
		||||
							{{template "repo/commit_statuses" dict "Status" .Status "Statuses" .Statuses "root" $}}
 | 
			
		||||
							{{template "repo/commit_statuses" dict "Status" .Status "Statuses" .Statuses}}
 | 
			
		||||
							{{if IsMultilineCommitMessage .Message}}
 | 
			
		||||
							<pre class="commit-body gt-hidden">{{RenderCommitBody $.Context .Message $commitRepoLink ($.Repository.ComposeMetas ctx)}}</pre>
 | 
			
		||||
							{{end}}
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
		{{$commitLink:= printf "%s/commit/%s" $.comment.Issue.PullRequest.BaseRepo.Link (PathEscape .ID.String)}}
 | 
			
		||||
 | 
			
		||||
		<span class="shabox gt-df gt-ac gt-float-right">
 | 
			
		||||
			{{template "repo/commit_statuses" dict "Status" .Status "Statuses" .Statuses "root" $.root}}
 | 
			
		||||
			{{template "repo/commit_statuses" dict "Status" .Status "Statuses" .Statuses}}
 | 
			
		||||
			{{$class := "ui sha label"}}
 | 
			
		||||
			{{if .Signature}}
 | 
			
		||||
				{{$class = (print $class " isSigned")}}
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,14 @@
 | 
			
		||||
	{{- else if .Issue.PullRequest.CanAutoMerge}}green
 | 
			
		||||
	{{- else}}red{{end}}">{{svg "octicon-git-merge" 40}}</div>
 | 
			
		||||
	<div class="content">
 | 
			
		||||
		{{template "repo/pulls/status" .}}
 | 
			
		||||
		<div class="ui attached segment fitted">
 | 
			
		||||
		{{template "repo/pulls/status" (dict
 | 
			
		||||
			"CommitStatus" .LatestCommitStatus
 | 
			
		||||
			"CommitStatuses" .LatestCommitStatuses
 | 
			
		||||
			"ShowHideChecks" true
 | 
			
		||||
			"is_context_required" .is_context_required
 | 
			
		||||
		)}}
 | 
			
		||||
		</div>
 | 
			
		||||
		{{$showGeneralMergeForm := false}}
 | 
			
		||||
		<div class="ui attached merge-section segment {{if not $.LatestCommitStatus}}no-header{{end}} flex-items-block">
 | 
			
		||||
			{{if .Issue.PullRequest.HasMerged}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,27 +1,43 @@
 | 
			
		||||
{{if $.LatestCommitStatus}}
 | 
			
		||||
	{{if not $.Issue.PullRequest.HasMerged}}
 | 
			
		||||
		<div class="ui top attached header">
 | 
			
		||||
			{{if eq .LatestCommitStatus.State "pending"}}
 | 
			
		||||
{{/*
 | 
			
		||||
Template Attributes:
 | 
			
		||||
* CommitStatus: summary of all commit status state
 | 
			
		||||
* CommitStatuses: all commit status elements
 | 
			
		||||
* ShowHideChecks: whether use a button to show/hide the checks
 | 
			
		||||
* is_context_required: Used in pull request commit status check table
 | 
			
		||||
*/}}
 | 
			
		||||
 | 
			
		||||
{{if .CommitStatus}}
 | 
			
		||||
<div class="commit-status-panel">
 | 
			
		||||
	<div class="ui top attached header commit-status-header">
 | 
			
		||||
		{{if eq .CommitStatus.State "pending"}}
 | 
			
		||||
			{{ctx.Locale.Tr "repo.pulls.status_checking"}}
 | 
			
		||||
			{{else if eq .LatestCommitStatus.State "success"}}
 | 
			
		||||
		{{else if eq .CommitStatus.State "success"}}
 | 
			
		||||
			{{ctx.Locale.Tr "repo.pulls.status_checks_success"}}
 | 
			
		||||
			{{else if eq .LatestCommitStatus.State "warning"}}
 | 
			
		||||
		{{else if eq .CommitStatus.State "warning"}}
 | 
			
		||||
			{{ctx.Locale.Tr "repo.pulls.status_checks_warning"}}
 | 
			
		||||
			{{else if eq .LatestCommitStatus.State "failure"}}
 | 
			
		||||
		{{else if eq .CommitStatus.State "failure"}}
 | 
			
		||||
			{{ctx.Locale.Tr "repo.pulls.status_checks_failure"}}
 | 
			
		||||
			{{else if eq .LatestCommitStatus.State "error"}}
 | 
			
		||||
		{{else if eq .CommitStatus.State "error"}}
 | 
			
		||||
			{{ctx.Locale.Tr "repo.pulls.status_checks_error"}}
 | 
			
		||||
		{{else}}
 | 
			
		||||
			{{ctx.Locale.Tr "repo.pulls.status_checking"}}
 | 
			
		||||
		{{end}}
 | 
			
		||||
 | 
			
		||||
		{{if .ShowHideChecks}}
 | 
			
		||||
		<div class="ui right">
 | 
			
		||||
			<button class="commit-status-hide-checks btn interact-fg"
 | 
			
		||||
			data-show-all="{{ctx.Locale.Tr "repo.pulls.status_checks_show_all"}}"
 | 
			
		||||
			data-hide-all="{{ctx.Locale.Tr "repo.pulls.status_checks_hide_all"}}">
 | 
			
		||||
			{{ctx.Locale.Tr "repo.pulls.status_checks_hide_all"}}</button>
 | 
			
		||||
		</div>
 | 
			
		||||
		{{end}}
 | 
			
		||||
	</div>
 | 
			
		||||
 | 
			
		||||
	{{range $.LatestCommitStatuses}}
 | 
			
		||||
		<div class="ui attached segment pr-status">
 | 
			
		||||
	<div class="commit-status-list">
 | 
			
		||||
		{{range .CommitStatuses}}
 | 
			
		||||
			<div class="commit-status-item">
 | 
			
		||||
				{{template "repo/commit_status" .}}
 | 
			
		||||
			<div class="status-context">
 | 
			
		||||
				<span>{{.Context}} <span class="text grey">{{.Description}}</span></span>
 | 
			
		||||
				<div class="status-context gt-ellipsis">{{.Context}} <span class="text light-2">{{.Description}}</span></div>
 | 
			
		||||
				<div class="ui status-details">
 | 
			
		||||
					{{if $.is_context_required}}
 | 
			
		||||
						{{if (call $.is_context_required .Context)}}<div class="ui label">{{ctx.Locale.Tr "repo.pulls.status_checks_requested"}}</div>{{end}}
 | 
			
		||||
@@ -29,6 +45,7 @@
 | 
			
		||||
					<span>{{if .TargetURL}}<a href="{{.TargetURL}}">{{ctx.Locale.Tr "repo.pulls.status_checks_details"}}</a>{{end}}</span>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
		{{end}}
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
{{end}}
 | 
			
		||||
{{end}}
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@
 | 
			
		||||
							{{template "repo/shabox_badge" dict "root" $ "verification" .LatestCommitVerification}}
 | 
			
		||||
						{{end}}
 | 
			
		||||
					</a>
 | 
			
		||||
					{{template "repo/commit_statuses" dict "Status" .LatestCommitStatus "Statuses" .LatestCommitStatuses "root" $}}
 | 
			
		||||
					{{template "repo/commit_statuses" dict "Status" .LatestCommitStatus "Statuses" .LatestCommitStatuses}}
 | 
			
		||||
					{{$commitLink:= printf "%s/commit/%s" .RepoLink (PathEscape .LatestCommit.ID.String)}}
 | 
			
		||||
					<span class="grey commit-summary" title="{{.LatestCommit.Summary}}"><span class="message-wrapper">{{RenderCommitMessageLinkSubject $.Context .LatestCommit.Message $.RepoLink $commitLink ($.Repository.ComposeMetas ctx)}}</span>
 | 
			
		||||
						{{if IsMultilineCommitMessage .LatestCommit.Message}}
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
						<a class="gt-no-underline issue-title" href="{{if .Link}}{{.Link}}{{else}}{{$.Link}}/{{.Index}}{{end}}">{{RenderEmoji $.Context .Title | RenderCodeBlock}}</a>
 | 
			
		||||
						{{if .IsPull}}
 | 
			
		||||
							{{if (index $.CommitStatuses .PullRequest.ID)}}
 | 
			
		||||
								{{template "repo/commit_statuses" dict "Status" (index $.CommitLastStatus .PullRequest.ID) "Statuses" (index $.CommitStatuses .PullRequest.ID) "root" $}}
 | 
			
		||||
								{{template "repo/commit_statuses" dict "Status" (index $.CommitLastStatus .PullRequest.ID) "Statuses" (index $.CommitStatuses .PullRequest.ID)}}
 | 
			
		||||
							{{end}}
 | 
			
		||||
						{{end}}
 | 
			
		||||
						<span class="labels-list gt-ml-2">
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[data-tippy-root] {
 | 
			
		||||
  max-width: calc(100vw - 10px);
 | 
			
		||||
  max-width: calc(100vw - 32px);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box {
 | 
			
		||||
@@ -18,37 +18,59 @@
 | 
			
		||||
  font-size: 1rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-content {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding: 1rem; /* if you need different padding, use different data-theme */
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* tooltip theme for text tooltips */
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="tooltip"] {
 | 
			
		||||
  background-color: var(--color-tooltip-bg);
 | 
			
		||||
  color: var(--color-tooltip-text);
 | 
			
		||||
  border: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="tooltip"] .tippy-content {
 | 
			
		||||
  padding: 0.5rem 1rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="tooltip"] .tippy-svg-arrow-inner,
 | 
			
		||||
.tippy-box[data-theme="tooltip"] .tippy-svg-arrow-outer {
 | 
			
		||||
  fill: var(--color-tooltip-bg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* menu theme for .ui.menu */
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="menu"] {
 | 
			
		||||
  background-color: var(--color-menu);
 | 
			
		||||
  color: var(--color-text);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="form-fetch-error"] {
 | 
			
		||||
  border-color: var(--color-error-border);
 | 
			
		||||
  background-color: var(--color-error-bg);
 | 
			
		||||
  color: var(--color-error-text);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-content {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding: 1rem;
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="tooltip"] .tippy-content {
 | 
			
		||||
  padding: 0.5rem 1rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="menu"] .tippy-content {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="menu"] .tippy-svg-arrow-inner {
 | 
			
		||||
  fill: var(--color-menu);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* box-with-header theme to look like .ui.attached.segment. can contain .ui.attached.header */
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="box-with-header"] .tippy-content {
 | 
			
		||||
  background: var(--color-box-body);
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="box-with-header"][data-placement^="top"] .tippy-svg-arrow-inner {
 | 
			
		||||
  fill: var(--color-box-body);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="box-with-header"][data-placement^="bottom"] .tippy-svg-arrow-inner {
 | 
			
		||||
  fill: var(--color-box-header);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-placement^="top"] > .tippy-svg-arrow {
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
@@ -107,12 +129,3 @@
 | 
			
		||||
.tippy-svg-arrow-inner {
 | 
			
		||||
  fill: var(--color-body);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="tooltip"] .tippy-svg-arrow-inner,
 | 
			
		||||
.tippy-box[data-theme="tooltip"] .tippy-svg-arrow-outer {
 | 
			
		||||
  fill: var(--color-tooltip-bg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tippy-box[data-theme="menu"] .tippy-svg-arrow-inner {
 | 
			
		||||
  fill: var(--color-menu);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3074,43 +3074,49 @@ tbody.commit-list {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.pr-status {
 | 
			
		||||
  padding: 0 !important; /* To clear fomantic's padding on .ui.segment elements */
 | 
			
		||||
  display: flex;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
.commit-status-header {
 | 
			
		||||
  border: none !important; /* reset the default ".ui.attached.header" styles, to use the outer border */
 | 
			
		||||
  margin: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.pr-status .commit-status {
 | 
			
		||||
  margin: 1em;
 | 
			
		||||
.commit-status-list {
 | 
			
		||||
  max-height: 195px; /* fit exactly 4 items */
 | 
			
		||||
  overflow-x: hidden;
 | 
			
		||||
  transition: max-height .2s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.commit-status-item {
 | 
			
		||||
  padding: 14px 10px !important;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  gap: 8px;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  border-top: 1px solid var(--color-secondary);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.commit-status-item .commit-status {
 | 
			
		||||
  flex-shrink: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.pr-status .status-context {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  justify-content: space-between;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
.commit-status-item .status-context {
 | 
			
		||||
  color: var(--color-text);
 | 
			
		||||
  flex: 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.pr-status .status-context > span {
 | 
			
		||||
  padding: 1em 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.pr-status .status-details {
 | 
			
		||||
.commit-status-item .status-details {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  padding-right: 0.5em;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  justify-content: flex-end;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media (max-width: 767.98px) {
 | 
			
		||||
  .pr-status .status-details {
 | 
			
		||||
  .commit-status-item .status-details {
 | 
			
		||||
    flex-direction: column;
 | 
			
		||||
    align-items: flex-end;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.pr-status .status-details > span {
 | 
			
		||||
.commit-status-item .status-details > span {
 | 
			
		||||
  padding-right: 0.5em; /* To match the alignment with the "required" label */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -66,6 +66,7 @@ export function initCommitStatuses() {
 | 
			
		||||
      placement: top ? 'top-start' : 'bottom-start',
 | 
			
		||||
      interactive: true,
 | 
			
		||||
      role: 'dialog',
 | 
			
		||||
      theme: 'box-with-header',
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								web_src/js/features/repo-issue-pr-status.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								web_src/js/features/repo-issue-pr-status.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
export function initRepoPullRequestCommitStatus() {
 | 
			
		||||
  for (const btn of document.querySelectorAll('.commit-status-hide-checks')) {
 | 
			
		||||
    const panel = btn.closest('.commit-status-panel');
 | 
			
		||||
    const list = panel.querySelector('.commit-status-list');
 | 
			
		||||
    btn.addEventListener('click', () => {
 | 
			
		||||
      list.style.maxHeight = list.style.maxHeight ? '' : '0px'; // toggle
 | 
			
		||||
      list.style.overflow = 'hidden'; // hide scrollbar when hiding
 | 
			
		||||
      btn.textContent = btn.getAttribute(list.style.maxHeight ? 'data-show-all' : 'data-hide-all');
 | 
			
		||||
    });
 | 
			
		||||
    list.addEventListener('animationend', () => list.style.overflow = '');
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -20,6 +20,7 @@ import {initCommentContent, initMarkupContent} from '../markup/content.js';
 | 
			
		||||
import {initCompReactionSelector} from './comp/ReactionSelector.js';
 | 
			
		||||
import {initRepoSettingBranches} from './repo-settings.js';
 | 
			
		||||
import {initRepoPullRequestMergeForm} from './repo-issue-pr-form.js';
 | 
			
		||||
import {initRepoPullRequestCommitStatus} from './repo-issue-pr-status.js';
 | 
			
		||||
import {hideElem, showElem} from '../utils/dom.js';
 | 
			
		||||
import {getComboMarkdownEditor, initComboMarkdownEditor} from './comp/ComboMarkdownEditor.js';
 | 
			
		||||
import {attachRefIssueContextPopup} from './contextpopup.js';
 | 
			
		||||
@@ -546,6 +547,7 @@ export function initRepository() {
 | 
			
		||||
    initCompReactionSelector($(document));
 | 
			
		||||
 | 
			
		||||
    initRepoPullRequestMergeForm();
 | 
			
		||||
    initRepoPullRequestCommitStatus();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Pull request
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ export function createTippy(target, opts = {}) {
 | 
			
		||||
    },
 | 
			
		||||
    arrow: `<svg width="16" height="7"><path d="m0 7 8-7 8 7Z" class="tippy-svg-arrow-outer"/><path d="m0 8 8-7 8 7Z" class="tippy-svg-arrow-inner"/></svg>`,
 | 
			
		||||
    role: 'menu', // HTML role attribute, only tooltips should use "tooltip"
 | 
			
		||||
    theme: other.role || 'menu', // CSS theme, we support either "tooltip" or "menu"
 | 
			
		||||
    theme: other.role || 'menu', // CSS theme, either "tooltip", "menu" or "box-with-header"
 | 
			
		||||
    plugins: [followCursor],
 | 
			
		||||
    ...other,
 | 
			
		||||
  });
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user