mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Replace coloris with vanilla-colorful (#30201)
Found [a better color picker](https://github.com/web-padawan/vanilla-colorful) that [does not rely](https://github.com/mdbassit/Coloris/issues/139) on `querySelectorAll` or a global shared instance, and is also around a third of the size of the previous one. The popover is handled by tippy.js for which I introduced a new "bare" theme and it uses a new sibling-based mechanism which should prove useful later to create tippy popovers via HTML only. <img width="846" alt="Screenshot 2024-03-31 at 04 03 38" src="https://github.com/go-gitea/gitea/assets/115237/7639b911-a2d7-4f5c-bffd-a9d84561e747">
This commit is contained in:
		| @@ -3,11 +3,12 @@ import {isDocumentFragmentOrElementNode} from '../utils/dom.js'; | ||||
| import {formatDatetime} from '../utils/time.js'; | ||||
|  | ||||
| const visibleInstances = new Set(); | ||||
| const arrowSvg = `<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>`; | ||||
|  | ||||
| export function createTippy(target, opts = {}) { | ||||
|   // the callback functions should be destructured from opts, | ||||
|   // because we should use our own wrapper functions to handle them, do not let the user override them | ||||
|   const {onHide, onShow, onDestroy, role, theme, ...other} = opts; | ||||
|   const {onHide, onShow, onDestroy, role, theme, arrow, ...other} = opts; | ||||
|  | ||||
|   const instance = tippy(target, { | ||||
|     appendTo: document.body, | ||||
| @@ -35,9 +36,9 @@ export function createTippy(target, opts = {}) { | ||||
|       visibleInstances.add(instance); | ||||
|       return onShow?.(instance); | ||||
|     }, | ||||
|     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>`, | ||||
|     arrow: arrow || (theme === 'bare' ? false : arrowSvg), | ||||
|     role: role || 'menu', // HTML role attribute | ||||
|     theme: theme || role || 'menu', // CSS theme, either "tooltip", "menu" or "box-with-header" | ||||
|     theme: theme || role || 'menu', // CSS theme, either "tooltip", "menu", "box-with-header" or "bare" | ||||
|     plugins: [followCursor], | ||||
|     ...other, | ||||
|   }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user