@thednp/color-picker 0.0.2-alpha1 → 0.0.2-alpha4
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +2 -1
- package/dist/js/color-esm.js +94 -105
- package/dist/js/color-esm.min.js +2 -2
- package/dist/js/color-palette-esm.js +105 -119
- package/dist/js/color-palette-esm.min.js +2 -2
- package/dist/js/color-palette.js +105 -119
- package/dist/js/color-palette.min.js +2 -2
- package/dist/js/color-picker-element-esm.js +279 -375
- package/dist/js/color-picker-element-esm.min.js +2 -2
- package/dist/js/color-picker-element.js +279 -375
- package/dist/js/color-picker-element.min.js +2 -2
- package/dist/js/color-picker-esm.js +235 -323
- package/dist/js/color-picker-esm.min.js +2 -2
- package/dist/js/color-picker.js +235 -323
- package/dist/js/color-picker.min.js +2 -2
- package/dist/js/color.js +94 -105
- package/dist/js/color.min.js +2 -2
- package/package.json +7 -4
- package/src/js/color-palette.js +10 -13
- package/src/js/color-picker-element.js +46 -54
- package/src/js/color-picker.js +131 -206
- package/src/js/color.js +93 -106
- package/types/cp.d.ts +31 -29
- package/types/source/types.d.ts +1 -1
@@ -1,2 +1,2 @@
|
|
1
|
-
// ColorPickerElement v0.0.
|
2
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ColorPickerElement=e()}(this,(function(){"use strict";function t(t){return t instanceof HTMLElement?t.ownerDocument:t instanceof Window?t.document:window.document}const e=[Document,Element,HTMLElement];const o=(t,e)=>Object.assign(t,e);function n(e){if("string"==typeof e)return t().createElement(e);const{tagName:r}=e,s={...e},a=n(r);return delete s.tagName,o(a,s),a}const r=(t,e,o)=>t.setAttribute(e,o),s=(t,e)=>t.getAttribute(e),{head:a}=document;function i(t,e){const o=getComputedStyle(t);return e in o?o[e]:""}const l=(t,e)=>{o(t.style,e)},c=t=>t.toLowerCase(),u=["transparent","currentColor","inherit","revert","initial"];function h(t){const e=Math.floor(t);return t-e<.5?e:Math.round(t)}const g=["rgb","hex","hsl","hsv","hwb"],p="[-\\+]?\\d*\\.?\\d+(?:deg|rad|grad|turn)?",d="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",b=`(?:${d})|(?:${p})`,f="(?:[,|\\s]+)",m=`(?:[\\s|\\(\\s|\\s\\(\\s]+)?(${b})${f}(${d})${f}(${d})(?:[,|\\/\\s]*)?(${d})?(?:[\\s|\\)\\s]+)?`,w={CSS_UNIT:new RegExp(b),hwb:new RegExp("hwb"+m),rgb:new RegExp("rgb(?:a)?"+m),hsl:new RegExp("hsl(?:a)?"+m),hsv:new RegExp("hsv(?:a)?"+m),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function v(t){return(""+t).includes(".")&&1===parseFloat(t)}function x(t){return(""+t).includes("%")}function $(t){return!u.includes(t)&&!["#",...g].some(e=>t.includes(e))&&["rgb(255, 255, 255)","rgb(0, 0, 0)"].every(e=>{l(a,{color:t});const o=i(a,"color");return l(a,{color:""}),o!==e})}function y(t){return Boolean(w.CSS_UNIT.exec(String(t)))}function k(t,e){let o=t;v(t)&&(o="100%");const n=x(o);return o=360===e?parseFloat(o):Math.min(e,Math.max(0,parseFloat(o))),n&&(o=o*e/100),Math.abs(o-e)<1e-6?1:(o=360===e?(o<0?o%e+e:o%e)/e:o%e/e,o)}function S(t){let e=parseFloat(""+t);return(Number.isNaN(e)||e<0||e>1)&&(e=1),e}function P(t){return Math.min(1,Math.max(0,t))}function E(t){l(a,{color:t});const e=i(a,"color");return l(a,{color:""}),e}function H(t){return h(255*t).toString(16)}function A(t){return N(t)/255}function N(t){return parseInt(t,16)}function C(t){return 1===t.length?"0"+t:String(t)}function L(t,e,o){const n=t/255,r=e/255,s=o/255,a=Math.max(n,r,s),i=Math.min(n,r,s);let l=0,c=0;const u=(a+i)/2;if(a===i)c=0,l=0;else{const t=a-i;switch(c=u>.5?t/(2-a-i):t/(a+i),a){case n:l=(r-s)/t+(r<s?6:0);break;case r:l=(s-n)/t+2;break;case s:l=(n-r)/t+4}l/=6}return{h:l,s:c,l:u}}function M(t,e,o){let n=o;return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*n*(e-t):n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}function T(t,e,o){let n=0,r=0,s=0;if(0===e)r=o,s=o,n=o;else{const a=o<.5?o*(1+e):o+e-o*e,i=2*o-a;n=M(i,a,t+1/3),r=M(i,a,t),s=M(i,a,t-1/3)}return[n,r,s]=[n,r,s].map(t=>255*t),{r:n,g:r,b:s}}function R(t,e,o){const n=t/255,r=e/255,s=o/255;let a=0,i=0;const l=Math.min(n,r,s),c=Math.max(n,r,s),u=1-c;if(c===l)return{h:0,w:l,b:u};n===l?(a=r-s,i=3):(a=r===l?s-n:n-r,i=r===l?5:1);const h=(i-a/(c-l))/6;return{h:1===h?0:h,w:l,b:u}}function D(t,e,o){if(e+o>=1){const t=e/(e+o)*255;return{r:t,g:t,b:t}}let{r:n,g:r,b:s}=T(t,1,.5);return[n,r,s]=[n,r,s].map(t=>t/255*(1-e-o)+e).map(t=>255*t),{r:n,g:r,b:s}}function F(t,e,o){const n=t/255,r=e/255,s=o/255,a=Math.max(n,r,s),i=Math.min(n,r,s);let l=0;const c=a,u=a-i,h=0===a?0:u/a;if(a===i)l=0;else{switch(a){case n:l=(r-s)/u+(r<s?6:0);break;case r:l=(s-n)/u+2;break;case s:l=(n-r)/u+4}l/=6}return{h:l,s:h,v:c}}function O(t,e,o){const n=6*t,r=e,s=o,a=Math.floor(n),i=n-a,l=s*(1-r),c=s*(1-i*r),u=s*(1-(1-i)*r),h=a%6;let g=[s,c,l,l,u,s][h],p=[u,s,s,c,l,l][h],d=[l,l,u,s,s,c][h];return[g,p,d]=[g,p,d].map(t=>255*t),{r:g,g:p,b:d}}function K(t,e,o,n){const r=[C(h(t).toString(16)),C(h(e).toString(16)),C(h(o).toString(16))];return n&&r[0].charAt(0)===r[0].charAt(1)&&r[1].charAt(0)===r[1].charAt(1)&&r[2].charAt(0)===r[2].charAt(1)?r[0].charAt(0)+r[1].charAt(0)+r[2].charAt(0):r.join("")}function I(t,e,o,n,r){const s=[C(h(t).toString(16)),C(h(e).toString(16)),C(h(o).toString(16)),C(H(n))];return r&&s[0].charAt(0)===s[0].charAt(1)&&s[1].charAt(0)===s[1].charAt(1)&&s[2].charAt(0)===s[2].charAt(1)&&s[3].charAt(0)===s[3].charAt(1)?s[0].charAt(0)+s[1].charAt(0)+s[2].charAt(0)+s[3].charAt(0):s.join("")}function V(t){let e=c(t.trim());if(0===e.length)return{r:0,g:0,b:0,a:1};let o=!1;if($(e))e=E(e),o=!0;else if(u.includes(e)){return{r:0,g:0,b:0,a:"transparent"===e?0:1,format:"rgb",ok:!0}}let[,n,r,s,a]=w.rgb.exec(e)||[];return n&&r&&s?{r:n,g:r,b:s,a:void 0!==a?a:1,format:"rgb"}:([,n,r,s,a]=w.hsl.exec(e)||[],n&&r&&s?{h:n,s:r,l:s,a:void 0!==a?a:1,format:"hsl"}:([,n,r,s,a]=w.hsv.exec(e)||[],n&&r&&s?{h:n,s:r,v:s,a:void 0!==a?a:1,format:"hsv"}:([,n,r,s,a]=w.hwb.exec(e)||[],n&&r&&s?{h:n,w:r,b:s,a:void 0!==a?a:1,format:"hwb"}:([,n,r,s,a]=w.hex8.exec(e)||[],n&&r&&s&&a?{r:N(n),g:N(r),b:N(s),a:A(a),format:o?"rgb":"hex"}:([,n,r,s]=w.hex6.exec(e)||[],n&&r&&s?{r:N(n),g:N(r),b:N(s),format:o?"rgb":"hex"}:([,n,r,s,a]=w.hex4.exec(e)||[],n&&r&&s&&a?{r:N(n+n),g:N(r+r),b:N(s+s),a:A(a+a),format:o?"rgb":"hex"}:([,n,r,s]=w.hex3.exec(e)||[],!!(n&&r&&s)&&{r:N(n+n),g:N(r+r),b:N(s+s),format:o?"rgb":"hex"})))))))}function B(t){let e={r:0,g:0,b:0},o=t,n=1,r=null,s=null,a=null,i=null,l=null,c=null,u=null,h=null,p=!1;const d="object"==typeof o&&o.format;let b=d&&g.includes(d)?d:"rgb";return"string"==typeof t&&(o=V(t),o&&(p=!0)),"object"==typeof o&&(y(o.r)&&y(o.g)&&y(o.b)?(({r:u,g:h,b:l}=o),[u,h,l]=[u,h,l].map(t=>255*k(t,x(t)?100:255)),e={r:u,g:h,b:l},p=!0,b="rgb"):y(o.h)&&y(o.s)&&y(o.v)?(({h:c,s:r,v:s}=o),c="number"==typeof c?c:k(c,360),r="number"==typeof r?r:k(r,100),s="number"==typeof s?s:k(s,100),e=O(c,r,s),p=!0,b="hsv"):y(o.h)&&y(o.s)&&y(o.l)?(({h:c,s:r,l:a}=o),c="number"==typeof c?c:k(c,360),r="number"==typeof r?r:k(r,100),a="number"==typeof a?a:k(a,100),e=T(c,r,a),p=!0,b="hsl"):y(o.h)&&y(o.w)&&y(o.b)&&(({h:c,w:i,b:l}=o),c="number"==typeof c?c:k(c,360),i="number"==typeof i?i:k(i,100),l="number"==typeof l?l:k(l,100),e=D(c,i,l),p=!0,b="hwb"),y(o.a)&&(n=o.a,n=x(""+n)||parseFloat(n)>1?k(n,100):n)),void 0===o&&(p=!0),{ok:p,format:b,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:S(n)}}class U{constructor(t,e){let o=t;const n=e&&g.includes(e)?e:"rgb";if(o instanceof U&&(o=B(o)),"number"==typeof o){o=`#${2===(""+o).length?"0":"00"}${o}`}const{r:r,g:s,b:a,a:i,ok:l,format:c}=B(o);this.originalInput=t,this.r=r,this.g=s,this.b=a,this.a=i,this.ok=l,this.format=n||c}get isValid(){return this.ok}get isDark(){return this.brightness<120}get luminance(){const{r:t,g:e,b:o}=this;let n=0,r=0,s=0;const a=t/255,i=e/255,l=o/255;return n=a<=.03928?a/12.92:((a+.055)/1.055)**2.4,r=i<=.03928?i/12.92:((i+.055)/1.055)**2.4,s=l<=.03928?l/12.92:((l+.055)/1.055)**2.4,.2126*n+.7152*r+.0722*s}get brightness(){const{r:t,g:e,b:o}=this;return(299*t+587*e+114*o)/1e3}toRgb(){const{r:t,g:e,b:o,a:n}=this;return{r:t,g:e,b:o,a:h(100*n)/100}}toRgbString(){const{r:t,g:e,b:o,a:n}=this.toRgb(),[r,s,a]=[t,e,o].map(h);return 1===n?`rgb(${r}, ${s}, ${a})`:`rgba(${r}, ${s}, ${a}, ${n})`}toRgbCSS4String(){const{r:t,g:e,b:o,a:n}=this.toRgb(),[r,s,a]=[t,e,o].map(h);return`rgb(${r} ${s} ${a}${1===n?"":` / ${h(100*n)}%`})`}toHex(t){const{r:e,g:o,b:n,a:r}=this.toRgb();return 1===r?K(e,o,n,t):I(e,o,n,r,t)}toHexString(t){return"#"+this.toHex(t)}toHex8(t){const{r:e,g:o,b:n,a:r}=this.toRgb();return I(e,o,n,r,t)}toHex8String(t){return"#"+this.toHex8(t)}toHsv(){const{r:t,g:e,b:o,a:n}=this.toRgb(),{h:r,s:s,v:a}=F(t,e,o);return{h:r,s:s,v:a,a:n}}toHsl(){const{r:t,g:e,b:o,a:n}=this.toRgb(),{h:r,s:s,l:a}=L(t,e,o);return{h:r,s:s,l:a,a:n}}toHslString(){let{h:t,s:e,l:o,a:n}=this.toHsl();return t=h(360*t),e=h(100*e),o=h(100*o),n=h(100*n)/100,1===n?`hsl(${t}, ${e}%, ${o}%)`:`hsla(${t}, ${e}%, ${o}%, ${n})`}toHslCSS4String(){let{h:t,s:e,l:o,a:n}=this.toHsl();t=h(360*t),e=h(100*e),o=h(100*o),n=h(100*n);return`hsl(${t}deg ${e}% ${o}%${n<100?` / ${h(n)}%`:""})`}toHwb(){const{r:t,g:e,b:o,a:n}=this,{h:r,w:s,b:a}=R(t,e,o);return{h:r,w:s,b:a,a:n}}toHwbString(){let{h:t,w:e,b:o,a:n}=this.toHwb();t=h(360*t),e=h(100*e),o=h(100*o),n=h(100*n);return`hwb(${t}deg ${e}% ${o}%${n<100?` / ${h(n)}%`:""})`}setAlpha(t){return this.a=S(t),this}saturate(t){if("number"!=typeof t)return this;const{h:e,s:n,l:r}=this.toHsl(),{r:s,g:a,b:i}=T(e,P(n+t/100),r);return o(this,{r:s,g:a,b:i}),this}desaturate(t){return"number"==typeof t?this.saturate(-t):this}greyscale(){return this.saturate(-100)}lighten(t){if("number"!=typeof t)return this;const{h:e,s:n,l:r}=this.toHsl(),{r:s,g:a,b:i}=T(e,n,P(r+t/100));return o(this,{r:s,g:a,b:i}),this}darken(t){return"number"==typeof t?this.lighten(-t):this}spin(t){if("number"!=typeof t)return this;const{h:e,s:n,l:r}=this.toHsl(),{r:s,g:a,b:i}=T(P((360*e+t)%360/360),n,r);return o(this,{r:s,g:a,b:i}),this}clone(){return new U(this)}toString(t){const{format:e}=this;return"hex"===e?this.toHexString(t):"hsl"===e?this.toHslString():"hwb"===e?this.toHwbString():this.toRgbString()}}o(U,{ANGLES:"deg|rad|grad|turn",CSS_ANGLE:p,CSS_INTEGER:"[-\\+]?\\d+%?",CSS_NUMBER:"[-\\+]?\\d*\\.\\d+%?",CSS_UNIT:d,CSS_UNIT2:b,PERMISSIVE_MATCH:m,matchers:w,isOnePointZero:v,isPercentage:x,isValidCSSUnit:y,isColorName:$,pad2:C,clamp01:P,bound01:k,boundAlpha:S,getRGBFromName:E,convertHexToDecimal:A,convertDecimalToHex:H,rgbToHsl:L,rgbToHex:K,rgbToHsv:F,rgbToHwb:R,rgbaToHex:I,hslToRgb:T,hsvToRgb:O,hueToRgb:M,hwbToRgb:D,parseIntFromHex:N,stringInputToObject:V,inputToRGB:B,roundPart:h,getElementStyle:i,setElementStyle:l,ObjectAssign:o});const _={};function j(t){const e=this,{type:o}=t;(_[o]?[..._[o]]:[]).forEach(n=>{const[r,s]=n;[...s].forEach(n=>{if(r===e){const[e,s]=n;e.apply(r,[t]),s&&s.once&&z(r,o,e,s)}})})}const W=(t,e,o,n)=>{_[e]||(_[e]=new Map);const r=_[e];r.has(t)||r.set(t,new Map);const s=r.get(t),{size:a}=s;s&&s.set(o,n),a||t.addEventListener(e,j,n)},z=(t,e,o,n)=>{const r=_[e],s=r&&r.get(t),a=s&&s.get(o),{options:i}=void 0!==a?a:{options:n};s&&s.has(o)&&s.delete(o),!r||s&&s.size||r.delete(t),r&&r.size||delete _[e],s&&s.size||t.removeEventListener(e,j,i)},G="ArrowDown",X="ArrowUp",Y="ArrowLeft",q="ArrowRight",J="Enter",Z="Space";let Q=0,tt=0;const et=new Map;function ot(t,e){const{width:o,height:n,top:r,right:s,bottom:a,left:i}=t.getBoundingClientRect();let l=1,c=1;if(e&&t instanceof HTMLElement){const{offsetWidth:e,offsetHeight:r}=t;l=e>0&&Math.round(o)/e||1,c=r>0&&Math.round(n)/r||1}return{width:o/l,height:n/c,top:r/c,right:s/l,bottom:a/c,left:i/l,x:i/l,y:r/c}}const nt=[Element,HTMLElement];function rt(o,n){const r=e.some(t=>n instanceof t)?n:t();return nt.some(t=>o instanceof t)?o:r.querySelector(o)}function st(o,n){return(n&&e.some(t=>n instanceof t)?n:t()).getElementsByClassName(o)}const at=new Map,it={set:(t,e,o)=>{const n=rt(t);if(!n)return;at.has(e)||at.set(e,new Map);at.get(e).set(n,o)},getAllFor:t=>at.get(t)||null,get:(t,e)=>{const o=rt(t),n=it.getAllFor(e);return o&&n&&n.get(o)||null},remove:(t,e)=>{const o=rt(t),n=at.get(e);n&&o&&(n.delete(o),0===n.size&&at.delete(e))}};function lt(t){return"true"===t||"false"!==t&&(Number.isNaN(+t)?""===t||"null"===t?null:t:+t)}const ct=t=>Object.keys(t);const ut=t=>t.focus();function ht(t,e){return t.classList.contains(e)}function gt(t,e){t.classList.add(e)}function pt(t,e){t.classList.remove(e)}const dt=(t,e)=>t.removeAttribute(e);class bt{constructor(...t){let e=0,o=12,n=10,r=[.5];if(3===t.length)[e,o,n]=t;else{if(2!==t.length)throw TypeError("ColorPalette requires minimum 2 arguments");if([o,n]=t,[o,n].some(t=>t<1))throw TypeError("ColorPalette: when 2 arguments used, both must be larger than 0.")}const s=[],a=360/o,i=h((n-(n%2?1:0))/2),l=100/(n+(n%2?0:1))/100;let c=.25;c=[4,5].includes(n)?.2:c,c=[6,7].includes(n)?.15:c,c=[8,9].includes(n)?.11:c,c=[10,11].includes(n)?.09:c,c=[12,13].includes(n)?.075:c,c=n>13?l:c;for(let t=1;t<i+1;t+=1)r=[...r,.5+c*t];for(let t=1;t<n-i;t+=1)r=[.5-c*t,...r];for(let t=0;t<o;t+=1){const o=(e+t*a)%360/360;r.forEach(t=>{s.push(new U({h:o,s:1,l:t}))})}this.hue=e,this.hueSteps=o,this.lightSteps=n,this.colors=s}}o(bt,{Color:U});const ft={pickerLabel:"Colour Picker",appearanceLabel:"Colour Appearance",valueLabel:"Colour Value",toggleLabel:"Select Colour",presetsLabel:"Colour Presets",defaultsLabel:"Colour Defaults",formatLabel:"Format",alphaLabel:"Alpha",hexLabel:"Hexadecimal",hueLabel:"Hue",whitenessLabel:"Whiteness",blacknessLabel:"Blackness",saturationLabel:"Saturation",lightnessLabel:"Lightness",redLabel:"Red",greenLabel:"Green",blueLabel:"Blue"},mt=["white","black","grey","red","orange","brown","gold","olive","yellow","lime","green","teal","cyan","blue","violet","magenta","pink"];function wt(t){try{JSON.parse(t)}catch(t){return!1}return!0}const vt=t=>t.toUpperCase();function xt(e,n){if("string"==typeof n)return t().createElementNS(e,n);const{tagName:r}=n,s={...n},a=xt(e,r);return delete s.tagName,o(a,s),a}function $t(t,e,o){const{input:a,format:i,componentLabels:c}=t,{defaultsLabel:u,presetsLabel:h}=c,g="color-options"===o,p=e instanceof bt,d=g?h:u;let b=p?e.colors:e;b=b instanceof Array?b:[];const f=b.length,{lightSteps:m}=p?e:{lightSteps:null},w=m||[9,10].find(t=>f>2*t&&!(f%t))||5,v=g&&f>w;let x=2;x=v&&f>=2*w?3:x,x=f>=3*w?4:x,x=f>=4*w?5:x;const $=x-(f<3*w?1:2),y=v&&f>$*w;let k=o;k+=y?" scrollable":"",k+=v?" multiline":"";const S=v?"1px":"0.25rem";let P=v?1.75:2;P=w>5&&v?1.5:P;const E=($||1)*P+"rem",H=`calc(${x} * ${P}rem + ${x-1} * ${S})`,A=n({tagName:"ul",className:k});var N,C;return r(A,"role","listbox"),r(A,"aria-label",d),y&&(N=A,ct(C={"--grid-item-size":P+"rem","--grid-fit":w,"--grid-gap":S,"--grid-height":E,"--grid-hover-height":H}).forEach(t=>{N.style.setProperty(t,C[t])})),b.forEach(t=>{let[e,o]="string"==typeof t?t.trim().split(":"):[];t instanceof U&&(e=t.toHexString(),o=e);const c=new U(t instanceof U?t:e,i).toString()===s(a,"value"),u=n({tagName:"li",className:"color-option"+(c?" active":""),innerText:""+(o||e)});r(u,"tabindex","0"),r(u,"data-value",""+e),r(u,"role","option"),r(u,"aria-selected",c?"true":"false"),g&&l(u,{backgroundColor:e}),A.append(u)}),A}function yt(t){const{input:e,parent:a,format:i,id:l,componentLabels:c,colorKeywords:h,colorPresets:g}=t,p=s(e,"value")||"#fff",{toggleLabel:d,pickerLabel:b,formatLabel:f,hexLabel:m}=c,w=u.includes(p)?"#fff":p;t.color=new U(w,i);const v="hex"===i?m:vt(i),x=n({id:"picker-btn-"+l,tagName:"button",className:"picker-toggle btn-appearance"});r(x,"aria-expanded","false"),r(x,"aria-haspopup","true"),x.append(n({tagName:"span",className:"v-hidden",innerText:`${b}. ${f}: ${v}`}));const $=n({tagName:"div",className:"color-dropdown picker"});r($,"aria-labelledby","picker-btn-"+l),r($,"role","group");const y=function(t){const{format:e,componentLabels:o}=t,{hueLabel:s,alphaLabel:a,lightnessLabel:i,saturationLabel:l,whitenessLabel:c,blacknessLabel:u}=o,h="hsl"===e?360:100,g="hsl"===e?100:360;let p="hsl"===e?`${s} & ${i}`:`${i} & ${l}`;p="hwb"===e?`${c} & ${u}`:p;const d="hsl"===e?""+l:""+s,b=n({tagName:"div",className:"color-controls "+e});return[{i:1,c:"color-pointer",l:p,min:0,max:h},{i:2,c:"color-slider",l:d,min:0,max:g},{i:3,c:"color-slider",l:a,min:0,max:100}].forEach(t=>{const{i:e,c:o,l:s,min:a,max:i}=t,l=n({tagName:"div",className:"color-control"});r(l,"role","presentation"),l.append(n({tagName:"div",className:"visual-control visual-control"+e}));const c=n({tagName:"div",className:o+" knob",ariaLive:"polite"});r(c,"aria-label",s),r(c,"role","slider"),r(c,"tabindex","0"),r(c,"aria-valuemin",""+a),r(c,"aria-valuemax",""+i),l.append(c),b.append(l)}),b}(t),k=function(t){const{format:e,id:s,componentLabels:a}=t,i=n({tagName:"div",className:"color-form "+e});let l=["hex"];return"rgb"===e?l=["red","green","blue","alpha"]:"hsl"===e?l=["hue","saturation","lightness","alpha"]:"hwb"===e&&(l=["hue","whiteness","blackness","alpha"]),l.forEach(t=>{const[l]="hex"===e?["#"]:vt(t).split(""),c=`color_${e}_${t}_${s}`,u=a[t+"Label"],h=n({tagName:"label"});r(h,"for",c),h.append(n({tagName:"span",ariaHidden:"true",innerText:l+":"}),n({tagName:"span",className:"v-hidden",innerText:u}));const g=n({tagName:"input",id:c,type:"hex"===e?"text":"number",value:"alpha"===t?"100":"0",className:"color-input "+t});r(g,"autocomplete","off"),r(g,"spellcheck","false");let p="100",d="1";"alpha"!==t&&("rgb"===e?(p="255",d="1"):"hue"===t&&(p="360",d="1")),o(g,{min:"0",max:p,step:d}),i.append(h,g)}),i}(t);if($.append(y,k),e.before(x),a.append($),h||g){const e=n({tagName:"div",className:"color-dropdown scrollable menu"});if(g instanceof Array&&g.length||g instanceof bt&&g.colors){const o=$t(t,g,"color-options");e.append(o)}if(h&&h.length){const o=$t(t,h,"color-defaults");e.append(o)}const o=n({tagName:"button",className:"menu-toggle btn-appearance"});r(o,"tabindex","-1"),r(o,"aria-expanded","false"),r(o,"aria-haspopup","true");const s=encodeURI("http://www.w3.org/2000/svg"),i=xt(s,{tagName:"svg"});r(i,"xmlns",s),r(i,"viewBox","0 0 512 512"),r(i,"aria-hidden","true");const l=xt(s,{tagName:"path"});r(l,"d","M98,158l157,156L411,158l27,27L255,368L71,185L98,158z"),r(l,"fill","#fff"),i.append(l),o.append(n({tagName:"span",className:"v-hidden",innerText:""+d}),i),a.append(o,e)}h&&u.includes(p)&&(t.value=p),r(e,"tabindex","-1")}const kt={componentLabels:ft,colorLabels:mt,format:"rgb",colorPresets:!1,colorKeywords:!1},St=t=>{return e=t,o="color-picker",it.get(e,o);var e,o};function Pt(t,e){const o=e?W:z,{input:n,pickerToggle:r,menuToggle:s}=t;o(n,"focusin",t.showPicker),o(r,"click",t.togglePicker),o(n,"keydown",t.keyToggle),s&&o(s,"click",t.toggleMenu)}function Et(e,o){const n=o?W:z,{input:r,colorMenu:s,parent:a}=e,i=t(r),l=function(t){if(null==t)return window;if(!(t instanceof Window)){const{ownerDocument:e}=t;return e&&e.defaultView||window}return t}(r),c="ontouchstart"in i?{down:"touchstart",move:"touchmove",up:"touchend"}:{down:"mousedown",move:"mousemove",up:"mouseup"};n(e.controls,c.down,e.pointerDown),e.controlKnobs.forEach(t=>n(t,"keydown",e.handleKnobs)),n(l,"scroll",e.handleScroll),n(l,"resize",e.update),[r,...e.inputs].forEach(t=>n(t,"change",e.changeHandler)),s&&(n(s,"click",e.menuClickHandler),n(s,"keydown",e.menuKeyHandler)),n(i,c.move,e.pointerMove),n(i,c.up,e.pointerUp),n(a,"focusout",e.handleFocusOut),n(l,"keyup",e.handleDismiss)}function Ht(t){var e,o;e=t.input,o=new CustomEvent("colorpicker.change"),e.dispatchEvent(o)}function At(t){t&&["bottom","top"].forEach(e=>pt(t,e))}function Nt(t,e){const{colorPicker:o,colorMenu:n,menuToggle:s,pickerToggle:a,parent:i}=t,l=e===o,c=l?n:o,u=l?s:a,h=l?a:s;ht(i,"open")||gt(i,"open"),c&&(pt(c,"show"),At(c)),gt(e,"bottom"),e.offsetHeight,gt(e,"show"),l&&t.update(),t.isOpen||(Et(t,!0),t.updateDropdownPosition(),t.isOpen=!0,r(t.input,"tabindex","0"),s&&r(s,"tabindex","0")),r(h,"aria-expanded","true"),u&&r(u,"aria-expanded","false")}class Ct{constructor(t,e){const n=this,r=rt(t);if(!r)throw new TypeError(`ColorPicker target ${t} cannot be found.`);n.input=r;const a=function t(e,o){return e?e.closest(o)||t(e.getRootNode().host,o):null}(r,".color-picker,color-picker");if(!a)throw new TypeError("ColorPicker requires a specific markup to work.");n.parent=a,n.id=function t(e,o){let n=o?Q:tt;if(o){const r=t(e),s=et.get(r)||new Map;et.has(r)||et.set(r,s),s.has(o)?n=s.get(o):(s.set(o,n),Q+=1)}else{const t=e.id||e;et.has(t)?n=et.get(t):(et.set(t,n),tt+=1)}return n}(r,"color-picker"),n.dragElement=null,n.isOpen=!1,n.controlPositions={c1x:0,c1y:0,c2y:0,c3y:0},n.colorLabels={},n.colorKeywords=void 0,n.colorPresets=void 0;const{format:i,componentLabels:l,colorLabels:u,colorKeywords:h,colorPresets:g}=function(t,e,o,n){const r={...t.dataset},a={},i={};return ct(r).forEach(t=>{const e=n&&t.includes(n)?t.replace(n,"").replace(/[A-Z]/,t=>c(t)):t;i[e]=lt(r[t])}),ct(o).forEach(t=>{o[t]=lt(o[t])}),ct(e).forEach(n=>{a[n]=n in o?o[n]:n in i?i[n]:"title"===n?s(t,"title"):e[n]}),a}(this.isCE?a:r,kt,e||{});let p=mt;u instanceof Array&&17===u.length?p=u:u&&17===u.split(",").length&&(p=u.split(",")),mt.forEach((t,e)=>{n.colorLabels[t]=p[e].trim()});const d=o({},ft),b=l&&wt(l)?JSON.parse(l):l||{};if(n.componentLabels=o(d,b),n.color=new U("white",i),n.format=i,h instanceof Array?n.colorKeywords=h:"string"==typeof h&&h.length&&(n.colorKeywords=h.split(",")),g instanceof Array)n.colorPresets=g;else if("string"==typeof g&&g.length)if(wt(g)){const{hue:t,hueSteps:e,lightSteps:o}=JSON.parse(g);n.colorPresets=new bt(t,e,o)}else n.colorPresets=g.split(",").map(t=>t.trim());n.showPicker=n.showPicker.bind(n),n.togglePicker=n.togglePicker.bind(n),n.toggleMenu=n.toggleMenu.bind(n),n.menuClickHandler=n.menuClickHandler.bind(n),n.menuKeyHandler=n.menuKeyHandler.bind(n),n.pointerDown=n.pointerDown.bind(n),n.pointerMove=n.pointerMove.bind(n),n.pointerUp=n.pointerUp.bind(n),n.update=n.update.bind(n),n.handleScroll=n.handleScroll.bind(n),n.handleFocusOut=n.handleFocusOut.bind(n),n.changeHandler=n.changeHandler.bind(n),n.handleDismiss=n.handleDismiss.bind(n),n.keyToggle=n.keyToggle.bind(n),n.handleKnobs=n.handleKnobs.bind(n),yt(n);const[f,m]=st("color-dropdown",a);n.pickerToggle=rt(".picker-toggle",a),n.menuToggle=rt(".menu-toggle",a),n.colorPicker=f,n.colorMenu=m,n.inputs=[...st("color-input",a)];const[w]=st("color-controls",a);n.controls=w,n.controlKnobs=[...st("knob",w)],n.visuals=[...st("visual-control",w)],n.update(),Pt(n,!0),it.set(r,"color-picker",n)}get value(){return this.input.value}set value(t){this.input.value=t}get hasNonColor(){return this.colorKeywords instanceof Array&&this.colorKeywords.some(t=>u.includes(t))}get isCE(){return"color-picker"===this.parent.localName}get hex(){return this.color.toHex(!0)}get hsv(){return this.color.toHsv()}get hsl(){return this.color.toHsl()}get hwb(){return this.color.toHwb()}get rgb(){return this.color.toRgb()}get brightness(){return this.color.brightness}get luminance(){return this.color.luminance}get isDark(){const{color:t,brightness:e}=this;return e<120&&t.a>.33}get isValid(){const t=this.input.value;return""!==t&&new U(t).isValid}updateVisuals(){const{format:t,controlPositions:e,visuals:o}=this,[n,r,s]=o,{offsetWidth:a,offsetHeight:i}=n,c="hsl"===t?e.c1x/a:e.c2y/i,{r:u,g:g,b:p}=U.hslToRgb(c,1,.5),d="linear-gradient(rgb(255,255,255) 0%, rgb(255,255,255) 100%)",b=1-e.c3y/i,f=h(100*b)/100;if("hsl"!==t){const t=new U({h:c,s:1,l:.5,a:b}).toRgbString(),e="linear-gradient(\n rgb(255,0,0) 0%, rgb(255,255,0) 16.67%,\n rgb(0,255,0) 33.33%, rgb(0,255,255) 50%,\n rgb(0,0,255) 66.67%, rgb(255,0,255) 83.33%,\n rgb(255,0,0) 100%)";l(n,{background:`linear-gradient(rgba(0,0,0,0) 0%, rgba(0,0,0,${f}) 100%),\n linear-gradient(to right, rgba(255,255,255,${f}) 0%, ${t} 100%),\n ${d}`}),l(r,{background:e})}else{const t=h(e.c2y/i*100),o=new U({r:255,g:0,b:0,a:b}).saturate(-t).toRgbString(),s=new U({r:255,g:255,b:0,a:b}).saturate(-t).toRgbString(),a=new U({r:0,g:255,b:0,a:b}).saturate(-t).toRgbString(),c=new U({r:0,g:255,b:255,a:b}).saturate(-t).toRgbString(),m=new U({r:0,g:0,b:255,a:b}).saturate(-t).toRgbString(),w=new U({r:255,g:0,b:255,a:b}).saturate(-t).toRgbString(),v=new U({r:255,g:0,b:0,a:b}).saturate(-t).toRgbString();l(n,{background:`${`linear-gradient(rgba(255,255,255,${f}) 0%, rgba(255,255,255,0) 50%),\n linear-gradient(rgba(0,0,0,0) 50%, rgba(0,0,0,${f}) 100%)`},${`linear-gradient(to right,\n ${o} 0%, ${s} 16.67%, ${a} 33.33%, ${c} 50%,\n ${m} 66.67%, ${w} 83.33%, ${v} 100%)`},${d}`});const{r:x,g:$,b:y}=new U({r:u,g:g,b:p}).greyscale().toRgb();l(r,{background:`linear-gradient(rgb(${u},${g},${p}) 0%, rgb(${x},${$},${y}) 100%)`})}l(s,{background:`linear-gradient(rgba(${u},${g},${p},1) 0%,rgba(${u},${g},${p},0) 100%)`})}handleFocusOut({relatedTarget:t}){t&&!this.parent.contains(t)&&this.hide(!0)}handleDismiss({code:t}){const e=this;e.isOpen&&"Escape"===t&&e.hide()}handleScroll(e){const{activeElement:o}=t(this.input);("touchmove"===e.type&&this.dragElement||o&&this.controlKnobs.includes(o))&&(e.stopPropagation(),e.preventDefault()),this.updateDropdownPosition()}menuKeyHandler(t){const{target:e,code:o}=t,{previousElementSibling:n,nextElementSibling:r,parentElement:s}=e,a=s&&ht(s,"color-options"),l=[...s.children],c=a&&i(s,"grid-template-columns").split(" ").length,u=l.indexOf(e),h=u>-1&&c&&l[u-c],g=u>-1&&c&&l[u+c];[G,X,Z].includes(o)&&t.preventDefault(),a?h&&o===X?ut(h):g&&o===G?ut(g):n&&o===Y?ut(n):r&&o===q&&ut(r):n&&[Y,X].includes(o)?ut(n):r&&[q,G].includes(o)&&ut(r),[J,Z].includes(o)&&this.menuClickHandler({target:e})}menuClickHandler(t){const e=this,{target:n}=t,{colorMenu:a}=e,i=(s(n,"data-value")||"").trim();if(!i.length)return;const l=rt("li.active",a);let c=u.includes(i)?"white":i;c="transparent"===i?"rgba(0,0,0,0)":i;const{r:h,g:g,b:p,a:d}=new U(c);o(e.color,{r:h,g:g,b:p,a:d}),e.update(),l!==n&&(l&&(pt(l,"active"),dt(l,"aria-selected")),gt(n,"active"),r(n,"aria-selected","true"),u.includes(i)&&(e.value=i),Ht(e))}pointerDown(t){const e=this,{type:o,target:n,touches:r,pageX:s,pageY:a}=t,{colorMenu:i,visuals:l,controlKnobs:c}=e,[u,h,g]=l,[p,d,b]=c,f=ht(n,"visual-control")?n:rt(".visual-control",n.parentElement),m=ot(f),w="touchstart"===o?r[0].pageX:s,v="touchstart"===o?r[0].pageY:a,x=w-window.pageXOffset-m.left,$=v-window.pageYOffset-m.top;if(n===u||n===p?(e.dragElement=f,e.changeControl1(x,$)):n===h||n===d?(e.dragElement=f,e.changeControl2($)):n!==g&&n!==b||(e.dragElement=f,e.changeAlpha($)),i){const t=rt("li.active",i);t&&(pt(t,"active"),dt(t,"aria-selected"))}t.preventDefault()}pointerUp({target:e}){const o=this,{parent:n}=o,r=t(n),s=null!==rt(".color-picker,color-picker.open",r),a=r.getSelection();o.dragElement||a.toString().length||n.contains(e)||o.hide(s),o.dragElement=null}pointerMove(t){const e=this,{dragElement:o,visuals:n}=e,[r,s,a]=n,{type:i,touches:l,pageX:c,pageY:u}=t;if(!o)return;const h=ot(o),g="touchmove"===i?l[0].pageX:c,p="touchmove"===i?l[0].pageY:u,d=g-window.pageXOffset-h.left,b=p-window.pageYOffset-h.top;o===r&&e.changeControl1(d,b),o===s&&e.changeControl2(b),o===a&&e.changeAlpha(b)}handleKnobs(e){const{target:o,code:n}=e,r=this;if(![X,G,Y,q].includes(n))return;e.preventDefault();const{format:s,controlKnobs:a,visuals:i}=r,{offsetWidth:l,offsetHeight:c}=i[0],[u,h,g]=a,{activeElement:p}=t(u),d=c/("hsl"===s?100:360);if(a.find(t=>t===p)){let t=0,a=0;if(o===u){const e=l/("hsl"===s?360:100);[Y,q].includes(n)?r.controlPositions.c1x+=n===q?e:-e:[X,G].includes(n)&&(r.controlPositions.c1y+=n===G?d:-d),t=r.controlPositions.c1x,a=r.controlPositions.c1y,r.changeControl1(t,a)}else o===h?(r.controlPositions.c2y+=[G,q].includes(n)?d:-d,a=r.controlPositions.c2y,r.changeControl2(a)):o===g&&(r.controlPositions.c3y+=[G,q].includes(n)?d:-d,a=r.controlPositions.c3y,r.changeAlpha(a));r.handleScroll(e)}}changeHandler(){const e=this;let n;const{inputs:r,format:s,value:a,input:i,controlPositions:l,visuals:c}=e,{activeElement:h}=t(i),{offsetHeight:g}=c[0],[p,,,d]=r,[b,f,m,w]="rgb"===s?r.map(t=>parseFloat(t.value)/(t===d?100:1)):r.map(t=>parseFloat(t.value)/(t!==p?100:360)),v=e.hasNonColor&&u.includes(a),x=d?w:1-l.c3y/g;if(h===i||h&&r.includes(h)){n=h===i?v?"white":a:"hex"===s?p.value:"hsl"===s?{h:b,s:f,l:m,a:x}:"hwb"===s?{h:b,w:f,b:m,a:x}:{r:b,g:f,b:m,a:x};const{r:t,g:r,b:l,a:c}=new U(n);o(e.color,{r:t,g:r,b:l,a:c}),e.setControlPositions(),e.updateAppearance(),e.updateInputs(),e.updateControls(),e.updateVisuals(),h===i&&v&&(e.value=a)}}changeControl1(t,e){let[n,r]=[0,0];const{format:s,controlPositions:a,visuals:i}=this,{offsetHeight:l,offsetWidth:c}=i[0];t>c?n=c:t>=0&&(n=t),e>l?r=l:e>=0&&(r=e);const u="hsl"===s?n/c:a.c2y/l,h="hsl"===s?1-a.c2y/l:n/c,g=1-r/l,p=1-a.c3y/l,d="hsl"===s?{h:u,s:h,l:g,a:p}:{h:u,s:h,v:g,a:p},{r:b,g:f,b:m,a:w}=new U(d);o(this.color,{r:b,g:f,b:m,a:w}),this.controlPositions.c1x=n,this.controlPositions.c1y=r,this.updateAppearance(),this.updateInputs(),this.updateControls(),this.updateVisuals()}changeControl2(t){const{format:e,controlPositions:n,visuals:r}=this,{offsetHeight:s,offsetWidth:a}=r[0];let i=0;t>s?i=s:t>=0&&(i=t);const l="hsl"===e?n.c1x/a:i/s,c="hsl"===e?1-i/s:n.c1x/a,u=1-n.c1y/s,h=1-n.c3y/s,g="hsl"===e?{h:l,s:c,l:u,a:h}:{h:l,s:c,v:u,a:h},{r:p,g:d,b:b,a:f}=new U(g);o(this.color,{r:p,g:d,b:b,a:f}),this.controlPositions.c2y=i,this.updateAppearance(),this.updateInputs(),this.updateControls(),this.updateVisuals()}changeAlpha(t){const{visuals:e}=this,{offsetHeight:o}=e[0];let n=0;t>o?n=o:t>=0&&(n=t);const r=1-n/o;this.color.setAlpha(r),this.controlPositions.c3y=n,this.updateAppearance(),this.updateInputs(),this.updateControls(),this.updateVisuals()}update(){this.updateDropdownPosition(),this.updateAppearance(),this.setControlPositions(),this.updateInputs(!0),this.updateControls(),this.updateVisuals()}updateDropdownPosition(){const{input:e,colorPicker:o,colorMenu:n}=this,r=ot(e),{top:s,bottom:a}=r,{offsetHeight:i}=e,l=(c=e,t(c).documentElement).clientHeight;var c;const u=ht(o,"show")?o:n;if(!u)return;const{offsetHeight:h}=u,g=l-a,p=s,d=s+h+i>l,b=s-h<0;(ht(u,"bottom")||!b)&&g<p&&d?(pt(u,"bottom"),gt(u,"top")):(pt(u,"top"),gt(u,"bottom"))}setControlPositions(){const{format:t,visuals:e,color:o,hsl:n,hsv:r}=this,{offsetHeight:s,offsetWidth:a}=e[0],i=o.a,l=n.h,c="hsl"!==t?r.s:n.s,u="hsl"!==t?r.v:n.l;this.controlPositions.c1x="hsl"!==t?c*a:l*a,this.controlPositions.c1y=(1-u)*s,this.controlPositions.c2y="hsl"!==t?l*s:(1-c)*s,this.controlPositions.c3y=(1-i)*s}updateAppearance(){const t=this,{componentLabels:e,colorLabels:o,color:n,parent:s,hsl:a,hsv:i,hex:c,format:u,controlKnobs:g}=t,{appearanceLabel:p,hexLabel:d,valueLabel:b}=e,{r:f,g:m,b:w}=n.toRgb(),[v,x,$]=g,y=h(360*a.h),k=n.a,S=h(100*("hsl"===u?a.s:i.s)),P=h(100*a.l),E=100*i.v;let H;if(100===P&&0===S)H=o.white;else if(0===P)H=o.black;else if(0===S)H=o.grey;else if(y<15||y>=345)H=o.red;else if(y>=15&&y<45)H=E>80&&S>80?o.orange:o.brown;else if(y>=45&&y<75){const t=y>=54&&y<75&&E<80;H=y>46&&y<54&&E<80&&S>90?o.gold:o.yellow,H=t?o.olive:H}else y>=75&&y<155?H=E<68?o.green:o.lime:y>=155&&y<175?H=o.teal:y>=175&&y<195?H=o.cyan:y>=195&&y<255?H=o.blue:y>=255&&y<270?H=o.violet:y>=270&&y<295?H=o.magenta:y>=295&&y<345&&(H=o.pink);let A=`${d} ${c.split("").join(" ")}`;if("hsl"===u)A=`HSL: ${y}°, ${S}%, ${P}%`,r(v,"aria-description",`${b}: ${A}. ${p}: ${H}.`),r(v,"aria-valuetext",`${y}° & ${P}%`),r(v,"aria-valuenow",""+y),r(x,"aria-valuetext",S+"%"),r(x,"aria-valuenow",""+S);else if("hwb"===u){const{hwb:e}=t,o=h(100*e.w),n=h(100*e.b);A=`HWB: ${y}°, ${o}%, ${n}%`,r(v,"aria-description",`${b}: ${A}. ${p}: ${H}.`),r(v,"aria-valuetext",`${o}% & ${n}%`),r(v,"aria-valuenow",""+o),r(x,"aria-valuetext",y+"%"),r(x,"aria-valuenow",""+y)}else A="rgb"===u?`RGB: ${f}, ${m}, ${w}`:A,r(x,"aria-description",`${b}: ${A}. ${p}: ${H}.`),r(v,"aria-valuetext",`${P}% & ${S}%`),r(v,"aria-valuenow",""+P),r(x,"aria-valuetext",y+"°"),r(x,"aria-valuenow",""+y);const N=h(100*k);r($,"aria-valuetext",N+"%"),r($,"aria-valuenow",""+N);const C=n.toString();l(t.input,{backgroundColor:C}),t.isDark?(ht(s,"txt-light")&&pt(s,"txt-light"),ht(s,"txt-dark")||gt(s,"txt-dark")):(ht(s,"txt-dark")&&pt(s,"txt-dark"),ht(s,"txt-light")||gt(s,"txt-light"))}updateControls(){const{controlKnobs:t,controlPositions:e}=this;let{c1x:o,c1y:n,c2y:r,c3y:s}=e;const[a,i,c]=t;[o,n,r,s]=[o,n,r,s].map(h),l(a,{transform:`translate3d(${o-4}px,${n-4}px,0)`}),l(i,{transform:`translate3d(0,${r-4}px,0)`}),l(c,{transform:`translate3d(0,${s-4}px,0)`})}updateInputs(t){const e=this,{value:o,format:n,inputs:r,color:s,hsl:a}=e,[i,l,c,u]=r,g=h(100*s.a),p=h(360*a.h);let d;if("hex"===n)d=e.color.toHexString(!0),i.value=e.hex;else if("hsl"===n){const t=h(100*a.l),o=h(100*a.s);d=e.color.toHslString(),i.value=""+p,l.value=""+o,c.value=""+t,u.value=""+g}else if("hwb"===n){const{w:t,b:o}=e.hwb,n=h(100*t),r=h(100*o);d=e.color.toHwbString(),i.value=""+p,l.value=""+n,c.value=""+r,u.value=""+g}else if("rgb"===n){let{r:t,g:o,b:n}=e.rgb;[t,o,n]=[t,o,n].map(h),d=e.color.toRgbString(),i.value=""+t,l.value=""+o,c.value=""+n,u.value=""+g}e.value=""+d,t||d===o||Ht(e)}keyToggle(e){const o=this,{menuToggle:n}=o,{activeElement:r}=t(n),{code:s}=e;[J,Z].includes(s)&&(n&&r===n||!r)&&(e.preventDefault(),r?o.toggleMenu():o.togglePicker(e))}togglePicker(t){t.preventDefault();const e=this,{colorPicker:o}=e;e.isOpen&&ht(o,"show")?e.hide(!0):Nt(e,o)}showPicker(){const t=this,{colorPicker:e}=t;["top","bottom"].some(t=>ht(e,t))||Nt(t,e)}toggleMenu(){const t=this,{colorMenu:e}=t;t.isOpen&&ht(e,"show")?t.hide(!0):Nt(t,e)}hide(t){const e=this;if(e.isOpen){const{pickerToggle:o,menuToggle:n,colorPicker:s,colorMenu:a,parent:l,input:c}=e,u=ht(s,"show"),h=u?s:a,g=u?o:n,p=h&&function(t){const e=i(t,"transitionProperty"),o=i(t,"transitionDuration"),n=o.includes("ms")?1:1e3,r=e&&"none"!==e?parseFloat(o)*n:0;return Number.isNaN(r)?0:r}(h);h&&(pt(h,"show"),r(g,"aria-expanded","false"),setTimeout(()=>{At(h),rt(".show",l)||(pt(l,"open"),Et(e),e.isOpen=!1)},p)),e.isValid||(e.value=e.color.toString()),t||ut(o),r(c,"tabindex","-1"),n&&r(n,"tabindex","-1")}}dispose(){const{input:t,parent:e}=this;this.hide(!0),Pt(this),[...e.children].forEach(e=>{e!==t&&e.remove()}),dt(t,"tabindex"),l(t,{backgroundColor:""}),["txt-light","txt-dark"].forEach(t=>pt(e,t)),it.remove(t,"color-picker")}}o(Ct,{Color:U,ColorPalette:bt,Version:"0.0.2alpha1",getInstance:St,init:t=>new Ct(t),selector:'[data-function="color-picker"]',roundPart:h,setElementStyle:l,setAttribute:r,getBoundingClientRect:ot});let Lt=0;class Mt extends HTMLElement{constructor(){super(),this.isDisconnected=!0,this.attachShadow({mode:"open"})}get value(){return this.input?this.input.value:null}connectedCallback(){if(this.colorPicker)return void(this.isDisconnected&&(this.isDisconnected=!1));const o=(a="input",((i=this)&&e.some(t=>i instanceof t)?i:t()).getElementsByTagName(a));var a,i;if(!o.length){const t=s(this,"data-label"),e=s(this,"data-value")||"#069",o=s(this,"data-format")||"rgb",a=n({tagName:"input",type:"text",className:"color-preview btn-appearance"});let i=s(this,"data-id");i||(i=`color-picker-${o}-${Lt}`,Lt+=1);const l=n({tagName:"label",innerText:t||"Color Picker"});this.before(l),r(l,"for",i),r(a,"id",i),r(a,"name",i),r(a,"autocomplete","off"),r(a,"spellcheck","false"),r(a,"value",e),this.append(a)}const[l]=o;l&&(this.input=l,this.colorPicker=new Ct(l),this.color=this.colorPicker.color,this.shadowRoot&&this.shadowRoot.append(n("slot")),this.isDisconnected=!1)}disconnectedCallback(){this.colorPicker&&this.colorPicker.dispose(),this.isDisconnected=!0}}return o(Mt,{Color:U,ColorPicker:Ct,ColorPalette:bt,getInstance:St,Version:"0.0.2alpha1"}),customElements.define("color-picker",Mt),Mt}));
|
1
|
+
// ColorPickerElement v0.0.2alpha4 | thednp © 2022 | MIT-License
|
2
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ColorPickerElement=e()}(this,(function(){"use strict";function t(t){return t instanceof HTMLElement?t.ownerDocument:t instanceof Window?t.document:window.document}const e=[Document,Element,HTMLElement];const o=(t,e)=>Object.assign(t,e);function n(e){if("string"==typeof e)return t().createElement(e);const{tagName:r}=e,s={...e},a=n(r);return delete s.tagName,o(a,s),a}const r=(t,e,o)=>t.setAttribute(e,o),s=(t,e)=>t.getAttribute(e),{head:a}=document;function i(t,e){const o=getComputedStyle(t);return e in o?o[e]:""}const l=(t,e)=>{o(t.style,e)},c=t=>t.toLowerCase(),u=["transparent","currentColor","inherit","revert","initial"];function h(t){const e=Math.floor(t);return t-e<.5?e:Math.round(t)}const g=["rgb","hex","hsl","hsv","hwb"],p="[-\\+]?\\d*\\.?\\d+(?:deg|rad|grad|turn)?",d="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",b=`(?:${d})|(?:${p})`,f="(?:[,|\\s]+)",m=`(?:[\\s|\\(\\s|\\s\\(\\s]+)?(${b})${f}(${d})${f}(${d})(?:[,|\\/\\s]*)?(${d})?(?:[\\s|\\)\\s]+)?`,v={CSS_UNIT:new RegExp(b),hwb:new RegExp("hwb"+m),rgb:new RegExp("rgb(?:a)?"+m),hsl:new RegExp("hsl(?:a)?"+m),hsv:new RegExp("hsv(?:a)?"+m),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function w(t){return(""+t).includes(".")&&1===parseFloat(t)}function x(t){return(""+t).includes("%")}function y(t){return!u.includes(t)&&!["#",...g].some(e=>t.includes(e))&&(!!["black","white"].includes(t)||["rgb(255, 255, 255)","rgb(0, 0, 0)"].every(e=>{l(a,{color:t});const o=i(a,"color");return l(a,{color:""}),o!==e}))}function $(t){return Boolean(v.CSS_UNIT.exec(String(t)))}function k(t,e){let o=t;if("number"==typeof t&&0===Math.min(t,0)&&1===Math.max(t,1))return t;w(t)&&(o="100%");const n=x(o);return o=360===e?parseFloat(o):Math.min(e,Math.max(0,parseFloat(o))),n&&(o=o*e/100),Math.abs(o-e)<1e-6?1:(o=360===e?(o<0?o%e+e:o%e)/e:o%e/e,o)}function S(t){let e=parseFloat(""+t);return(Number.isNaN(e)||e<0||e>1)&&(e=1),e}function H(t){return Math.min(1,Math.max(0,t))}function A(t){l(a,{color:t});const e=i(a,"color");return l(a,{color:""}),e}function E(t){return h(255*t).toString(16)}function L(t){return P(t)/255}function P(t){return parseInt(t,16)}function N(t){return 1===t.length?"0"+t:String(t)}function C(t,e,o){const n=Math.max(t,e,o),r=Math.min(t,e,o);let s=0,a=0;const i=(n+r)/2;if(n===r)a=0,s=0;else{const l=n-r;a=i>.5?l/(2-n-r):l/(n+r),n===t&&(s=(e-o)/l+(e<o?6:0)),n===e&&(s=(o-t)/l+2),n===o&&(s=(t-e)/l+4),s/=6}return{h:s,s:a,l:i}}function M(t,e,o){let n=o;return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*n*(e-t):n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}function T(t,e,o){let n=0,r=0,s=0;if(0===e)r=o,s=o,n=o;else{const a=o<.5?o*(1+e):o+e-o*e,i=2*o-a;n=M(i,a,t+1/3),r=M(i,a,t),s=M(i,a,t-1/3)}return{r:n,g:r,b:s}}function R(t,e,o){let n=0,r=0;const s=Math.min(t,e,o),a=Math.max(t,e,o),i=1-a;if(a===s)return{h:0,w:s,b:i};t===s?(n=e-o,r=3):(n=e===s?o-t:t-e,r=e===s?5:1);const l=(r-n/(a-s))/6;return{h:1===l?0:l,w:s,b:i}}function F(t,e,o){if(e+o>=1){const t=e/(e+o);return{r:t,g:t,b:t}}let{r:n,g:r,b:s}=T(t,1,.5);return[n,r,s]=[n,r,s].map(t=>t*(1-e-o)+e),{r:n,g:r,b:s}}function D(t,e,o){const n=Math.max(t,e,o),r=Math.min(t,e,o);let s=0;const a=n-r;return n===r?s=0:(t===n&&(s=(e-o)/a+(e<o?6:0)),e===n&&(s=(o-t)/a+2),o===n&&(s=(t-e)/a+4),s/=6),{h:s,s:0===n?0:a/n,v:n}}function K(t,e,o){const n=6*t,r=e,s=o,a=Math.floor(n),i=n-a,l=s*(1-r),c=s*(1-i*r),u=s*(1-(1-i)*r),h=a%6;return{r:[s,c,l,l,u,s][h],g:[u,s,s,c,l,l][h],b:[l,l,u,s,s,c][h]}}function O(t,e,o,n){const r=[N(h(t).toString(16)),N(h(e).toString(16)),N(h(o).toString(16))];return n&&r[0].charAt(0)===r[0].charAt(1)&&r[1].charAt(0)===r[1].charAt(1)&&r[2].charAt(0)===r[2].charAt(1)?r[0].charAt(0)+r[1].charAt(0)+r[2].charAt(0):r.join("")}function I(t,e,o,n,r){const s=[N(h(t).toString(16)),N(h(e).toString(16)),N(h(o).toString(16)),N(E(n))];return r&&s[0].charAt(0)===s[0].charAt(1)&&s[1].charAt(0)===s[1].charAt(1)&&s[2].charAt(0)===s[2].charAt(1)&&s[3].charAt(0)===s[3].charAt(1)?s[0].charAt(0)+s[1].charAt(0)+s[2].charAt(0)+s[3].charAt(0):s.join("")}function V(t){let e=c(t.trim());if(0===e.length)return{r:0,g:0,b:0,a:1};if(y(e))e=A(e);else if(u.includes(e)){return{r:0,g:0,b:0,a:"transparent"===e?0:1,format:"rgb",ok:!0}}let[,o,n,r,s]=v.rgb.exec(e)||[];return o&&n&&r?{r:o,g:n,b:r,a:void 0!==s?s:1,format:"rgb"}:([,o,n,r,s]=v.hsl.exec(e)||[],o&&n&&r?{h:o,s:n,l:r,a:void 0!==s?s:1,format:"hsl"}:([,o,n,r,s]=v.hsv.exec(e)||[],o&&n&&r?{h:o,s:n,v:r,a:void 0!==s?s:1,format:"hsv"}:([,o,n,r,s]=v.hwb.exec(e)||[],o&&n&&r?{h:o,w:n,b:r,a:void 0!==s?s:1,format:"hwb"}:([,o,n,r,s]=v.hex8.exec(e)||[],o&&n&&r&&s?{r:P(o),g:P(n),b:P(r),a:L(s),format:"hex"}:([,o,n,r]=v.hex6.exec(e)||[],o&&n&&r?{r:P(o),g:P(n),b:P(r),format:"hex"}:([,o,n,r,s]=v.hex4.exec(e)||[],o&&n&&r&&s?{r:P(o+o),g:P(n+n),b:P(r+r),a:L(s+s),format:"hex"}:([,o,n,r]=v.hex3.exec(e)||[],!!(o&&n&&r)&&{r:P(o+o),g:P(n+n),b:P(r+r),format:"hex"})))))))}function B(t){let e={r:0,g:0,b:0},o=t,n=1,r=null,s=null,a=null,i=null,l=null,c=null,u=null,h=null,p=!1;const d="object"==typeof o&&o.format;let b=d&&g.includes(d)?d:"rgb";return"string"==typeof t&&(o=V(t),o&&(p=!0)),"object"==typeof o&&($(o.r)&&$(o.g)&&$(o.b)&&(({r:u,g:h,b:l}=o),[u,h,l]=[u,h,l].map(t=>k(t,x(t)?100:255)),e={r:u,g:h,b:l},p=!0,b=o.format||"rgb"),$(o.h)&&$(o.s)&&$(o.v)&&(({h:c,s:r,v:s}=o),c=k(c,360),r=k(r,100),s=k(s,100),e=K(c,r,s),p=!0,b="hsv"),$(o.h)&&$(o.s)&&$(o.l)&&(({h:c,s:r,l:a}=o),c=k(c,360),r=k(r,100),a=k(a,100),e=T(c,r,a),p=!0,b="hsl"),$(o.h)&&$(o.w)&&$(o.b)&&(({h:c,w:i,b:l}=o),c=k(c,360),i=k(i,100),l=k(l,100),e=F(c,i,l),p=!0,b="hwb"),$(o.a)&&(n=o.a,n=x(""+n)||parseFloat(n)>1?k(n,100):n)),void 0===o&&(p=!0),{ok:p,format:b,r:e.r,g:e.g,b:e.b,a:S(n)}}class U{constructor(t,e){let o=t;const n=e&&g.includes(e)?e:"";o instanceof U&&(o=B(o));const{r:r,g:s,b:a,a:i,ok:l,format:c}=B(o);this.originalInput=t,this.r=r,this.g=s,this.b=a,this.a=i,this.ok=l,this.format=n||c}get isValid(){return this.ok}get isDark(){return this.brightness<120}get luminance(){const{r:t,g:e,b:o}=this;let n=0,r=0,s=0;return n=t<=.03928?t/12.92:((t+.055)/1.055)**2.4,r=e<=.03928?e/12.92:((e+.055)/1.055)**2.4,s=o<=.03928?o/12.92:((o+.055)/1.055)**2.4,.2126*n+.7152*r+.0722*s}get brightness(){const{r:t,g:e,b:o}=this.toRgb();return(299*t+587*e+114*o)/1e3}toRgb(){let{r:t,g:e,b:o,a:n}=this;return[t,e,o]=[t,e,o].map(t=>h(255*t*100)/100),n=h(100*n)/100,{r:t,g:e,b:o,a:n}}toRgbString(){const{r:t,g:e,b:o,a:n}=this.toRgb(),[r,s,a]=[t,e,o].map(h);return 1===n?`rgb(${r}, ${s}, ${a})`:`rgba(${r}, ${s}, ${a}, ${n})`}toRgbCSS4String(){const{r:t,g:e,b:o,a:n}=this.toRgb(),[r,s,a]=[t,e,o].map(h);return`rgb(${r} ${s} ${a}${1===n?"":` / ${h(100*n)}%`})`}toHex(t){const{r:e,g:o,b:n,a:r}=this.toRgb();return 1===r?O(e,o,n,t):I(e,o,n,r,t)}toHexString(t){return"#"+this.toHex(t)}toHex8(t){const{r:e,g:o,b:n,a:r}=this.toRgb();return I(e,o,n,r,t)}toHex8String(t){return"#"+this.toHex8(t)}toHsv(){const{r:t,g:e,b:o,a:n}=this,{h:r,s:s,v:a}=D(t,e,o);return{h:r,s:s,v:a,a:n}}toHsl(){const{r:t,g:e,b:o,a:n}=this,{h:r,s:s,l:a}=C(t,e,o);return{h:r,s:s,l:a,a:n}}toHslString(){let{h:t,s:e,l:o,a:n}=this.toHsl();return t=h(360*t),e=h(100*e),o=h(100*o),n=h(100*n)/100,1===n?`hsl(${t}, ${e}%, ${o}%)`:`hsla(${t}, ${e}%, ${o}%, ${n})`}toHslCSS4String(){let{h:t,s:e,l:o,a:n}=this.toHsl();t=h(360*t),e=h(100*e),o=h(100*o),n=h(100*n);return`hsl(${t}deg ${e}% ${o}%${n<100?` / ${h(n)}%`:""})`}toHwb(){const{r:t,g:e,b:o,a:n}=this,{h:r,w:s,b:a}=R(t,e,o);return{h:r,w:s,b:a,a:n}}toHwbString(){let{h:t,w:e,b:o,a:n}=this.toHwb();t=h(360*t),e=h(100*e),o=h(100*o),n=h(100*n);return`hwb(${t}deg ${e}% ${o}%${n<100?` / ${h(n)}%`:""})`}setAlpha(t){return"number"!=typeof t||(this.a=S(t)),this}saturate(t){if("number"!=typeof t)return this;const{h:e,s:n,l:r}=this.toHsl(),{r:s,g:a,b:i}=T(e,H(n+t/100),r);return o(this,{r:s,g:a,b:i}),this}desaturate(t){return"number"==typeof t?this.saturate(-t):this}greyscale(){return this.saturate(-100)}lighten(t){if("number"!=typeof t)return this;const{h:e,s:n,l:r}=this.toHsl(),{r:s,g:a,b:i}=T(e,n,H(r+t/100));return o(this,{r:s,g:a,b:i}),this}darken(t){return"number"==typeof t?this.lighten(-t):this}spin(t){if("number"!=typeof t)return this;const{h:e,s:n,l:r}=this.toHsl(),{r:s,g:a,b:i}=T(H((360*e+t)%360/360),n,r);return o(this,{r:s,g:a,b:i}),this}clone(){return new U(this)}toString(t){const{format:e}=this;return"hex"===e?this.toHexString(t):"hsl"===e?this.toHslString():"hwb"===e?this.toHwbString():this.toRgbString()}}o(U,{ANGLES:"deg|rad|grad|turn",CSS_ANGLE:p,CSS_INTEGER:"[-\\+]?\\d+%?",CSS_NUMBER:"[-\\+]?\\d*\\.\\d+%?",CSS_UNIT:d,CSS_UNIT2:b,PERMISSIVE_MATCH:m,matchers:v,isOnePointZero:w,isPercentage:x,isValidCSSUnit:$,isColorName:y,pad2:N,clamp01:H,bound01:k,boundAlpha:S,getRGBFromName:A,convertHexToDecimal:L,convertDecimalToHex:E,rgbToHsl:C,rgbToHex:O,rgbToHsv:D,rgbToHwb:R,rgbaToHex:I,hslToRgb:T,hsvToRgb:K,hueToRgb:M,hwbToRgb:F,parseIntFromHex:P,stringInputToObject:V,inputToRGB:B,roundPart:h,getElementStyle:i,setElementStyle:l,ObjectAssign:o});const _={};function j(t){const e=this,{type:o}=t;(_[o]?[..._[o]]:[]).forEach(n=>{const[r,s]=n;[...s].forEach(n=>{if(r===e){const[e,s]=n;e.apply(r,[t]),s&&s.once&&z(r,o,e,s)}})})}const W=(t,e,o,n)=>{_[e]||(_[e]=new Map);const r=_[e];r.has(t)||r.set(t,new Map);const s=r.get(t),{size:a}=s;s&&s.set(o,n),a||t.addEventListener(e,j,n)},z=(t,e,o,n)=>{const r=_[e],s=r&&r.get(t),a=s&&s.get(o),{options:i}=void 0!==a?a:{options:n};s&&s.has(o)&&s.delete(o),!r||s&&s.size||r.delete(t),r&&r.size||delete _[e],s&&s.size||t.removeEventListener(e,j,i)},G="ArrowDown",X="ArrowUp",Y="ArrowLeft",J="ArrowRight",q="Enter",Z="Space";function Q(e){return t(e).documentElement}let tt=0,et=0;const ot=new Map;function nt(t,e){const{width:o,height:n,top:r,right:s,bottom:a,left:i}=t.getBoundingClientRect();let l=1,c=1;if(e&&t instanceof HTMLElement){const{offsetWidth:e,offsetHeight:r}=t;l=e>0&&Math.round(o)/e||1,c=r>0&&Math.round(n)/r||1}return{width:o/l,height:n/c,top:r/c,right:s/l,bottom:a/c,left:i/l,x:i/l,y:r/c}}const rt=[Element,HTMLElement];function st(o,n){const r=e.some(t=>n instanceof t)?n:t();return rt.some(t=>o instanceof t)?o:r.querySelector(o)}function at(o,n){return(n&&e.some(t=>n instanceof t)?n:t()).getElementsByClassName(o)}const it=new Map,lt={set:(t,e,o)=>{const n=st(t);if(!n)return;it.has(e)||it.set(e,new Map);it.get(e).set(n,o)},getAllFor:t=>it.get(t)||null,get:(t,e)=>{const o=st(t),n=lt.getAllFor(e);return o&&n&&n.get(o)||null},remove:(t,e)=>{const o=st(t),n=it.get(e);n&&o&&(n.delete(o),0===n.size&&it.delete(e))}};function ct(t){return"true"===t||"false"!==t&&(Number.isNaN(+t)?""===t||"null"===t?null:t:+t)}const ut=t=>Object.keys(t);const ht=t=>t.focus();function gt(t,e){return t.classList.contains(e)}function pt(t,e){t.classList.add(e)}function dt(t,e){t.classList.remove(e)}const bt=(t,e)=>t.removeAttribute(e);class ft{constructor(...t){let e=0,o=12,n=10,r=[.5];if(3===t.length)[e,o,n]=t;else if(2===t.length&&([o,n]=t,[o,n].some(t=>t<1)))throw TypeError("ColorPalette: both arguments must be higher than 0.");const s=[],a=360/o,i=h((n-(n%2?1:0))/2),l=[[1,2,3],[4,5],[6,7],[8,9],[10,11],[12,13]],c=l.find(t=>t.includes(n)),u=c?[.25,.2,.15,.11,.09,.075][l.indexOf(c)]:100/(n+(n%2?0:1))/100;for(let t=1;t<i+1;t+=1)r=[...r,.5+u*t];for(let t=1;t<n-i;t+=1)r=[.5-u*t,...r];for(let t=0;t<o;t+=1){const o=(e+t*a)%360/360;r.forEach(t=>{s.push(new U({h:o,s:1,l:t}))})}this.hue=e,this.hueSteps=o,this.lightSteps=n,this.colors=s}}o(ft,{Color:U});const mt={pickerLabel:"Colour Picker",appearanceLabel:"Colour Appearance",valueLabel:"Colour Value",toggleLabel:"Select Colour",presetsLabel:"Colour Presets",defaultsLabel:"Colour Defaults",formatLabel:"Format",alphaLabel:"Alpha",hexLabel:"Hexadecimal",hueLabel:"Hue",whitenessLabel:"Whiteness",blacknessLabel:"Blackness",saturationLabel:"Saturation",lightnessLabel:"Lightness",redLabel:"Red",greenLabel:"Green",blueLabel:"Blue"},vt=["white","black","grey","red","orange","brown","gold","olive","yellow","lime","green","teal","cyan","blue","violet","magenta","pink"];function wt(t){try{JSON.parse(t)}catch(t){return!1}return!0}const xt=t=>t.toUpperCase();function yt(e,n){if("string"==typeof n)return t().createElementNS(e,n);const{tagName:r}=n,s={...n},a=yt(e,r);return delete s.tagName,o(a,s),a}function $t(t,e,o){const{input:a,format:i,componentLabels:c}=t,{defaultsLabel:u,presetsLabel:h}=c,g="color-options"===o,p=e instanceof ft,d=g?h:u;let b=p?e.colors:e;b=b instanceof Array?b:[];const f=b.length,{lightSteps:m}=p?e:{lightSteps:null},v=m||[9,10].find(t=>f>2*t&&!(f%t))||5,w=g&&f>v;let x=2;x=w&&f>=2*v?3:x,x=f>=3*v?4:x,x=f>=4*v?5:x;const y=x-(f<3*v?1:2),$=w&&f>y*v;let k=o;k+=$?" scrollable":"",k+=w?" multiline":"";const S=w?"1px":"0.25rem";let H=w?1.75:2;H=v>5&&w?1.5:H;const A=(y||1)*H+"rem",E=`calc(${x} * ${H}rem + ${x-1} * ${S})`,L=n({tagName:"ul",className:k});var P,N;return r(L,"role","listbox"),r(L,"aria-label",d),$&&(P=L,ut(N={"--grid-item-size":H+"rem","--grid-fit":v,"--grid-gap":S,"--grid-height":A,"--grid-hover-height":E}).forEach(t=>{P.style.setProperty(t,N[t])})),b.forEach(t=>{let[e,o]="string"==typeof t?t.trim().split(":"):[];t instanceof U&&(e=t.toHexString(),o=e);const c=new U(t instanceof U?t:e,i).toString()===s(a,"value"),u=n({tagName:"li",className:"color-option"+(c?" active":""),innerText:""+(o||e)});r(u,"tabindex","0"),r(u,"data-value",""+e),r(u,"role","option"),r(u,"aria-selected",c?"true":"false"),g&&l(u,{backgroundColor:e}),L.append(u)}),L}function kt(t){const{input:e,parent:a,format:i,id:l,componentLabels:c,colorKeywords:h,colorPresets:g}=t,p=s(e,"value")||"#fff",{toggleLabel:d,pickerLabel:b,formatLabel:f,hexLabel:m}=c,v=u.includes(p)?"#fff":p;t.color=new U(v,i);const w="hex"===i?m:xt(i),x=n({id:"picker-btn-"+l,tagName:"button",className:"picker-toggle btn-appearance"});r(x,"aria-expanded","false"),r(x,"aria-haspopup","true"),x.append(n({tagName:"span",className:"v-hidden",innerText:`${b}. ${f}: ${w}`}));const y=n({tagName:"div",className:"color-dropdown picker"});r(y,"aria-labelledby","picker-btn-"+l),r(y,"role","group");const $=function(t){const{format:e,componentLabels:o}=t,{hueLabel:s,alphaLabel:a,lightnessLabel:i,saturationLabel:l,whitenessLabel:c,blacknessLabel:u}=o,h="hsl"===e?360:100,g="hsl"===e?100:360;let p="hsl"===e?`${s} & ${i}`:`${i} & ${l}`;p="hwb"===e?`${c} & ${u}`:p;const d="hsl"===e?""+l:""+s,b=n({tagName:"div",className:"color-controls "+e});return[{i:1,c:"color-pointer",l:p,min:0,max:h},{i:2,c:"color-slider",l:d,min:0,max:g},{i:3,c:"color-slider",l:a,min:0,max:100}].forEach(t=>{const{i:e,c:o,l:s,min:a,max:i}=t,l=n({tagName:"div",className:"color-control"});r(l,"role","presentation"),l.append(n({tagName:"div",className:"visual-control visual-control"+e}));const c=n({tagName:"div",className:o+" knob",ariaLive:"polite"});r(c,"aria-label",s),r(c,"role","slider"),r(c,"tabindex","0"),r(c,"aria-valuemin",""+a),r(c,"aria-valuemax",""+i),l.append(c),b.append(l)}),b}(t),k=function(t){const{format:e,id:s,componentLabels:a}=t,i=n({tagName:"div",className:"color-form "+e});let l=["hex"];return"rgb"===e?l=["red","green","blue","alpha"]:"hsl"===e?l=["hue","saturation","lightness","alpha"]:"hwb"===e&&(l=["hue","whiteness","blackness","alpha"]),l.forEach(t=>{const[l]="hex"===e?["#"]:xt(t).split(""),c=`color_${e}_${t}_${s}`,u=a[t+"Label"],h=n({tagName:"label"});r(h,"for",c),h.append(n({tagName:"span",ariaHidden:"true",innerText:l+":"}),n({tagName:"span",className:"v-hidden",innerText:u}));const g=n({tagName:"input",id:c,type:"hex"===e?"text":"number",value:"alpha"===t?"100":"0",className:"color-input "+t});r(g,"autocomplete","off"),r(g,"spellcheck","false");let p="100",d="1";"alpha"!==t&&("rgb"===e?(p="255",d="1"):"hue"===t&&(p="360",d="1")),o(g,{min:"0",max:p,step:d}),i.append(h,g)}),i}(t);if(y.append($,k),e.before(x),a.append(y),h||g){const e=n({tagName:"div",className:"color-dropdown scrollable menu"});if(g instanceof Array&&g.length||g instanceof ft&&g.colors){const o=$t(t,g,"color-options");e.append(o)}if(h&&h.length){const o=$t(t,h,"color-defaults");e.append(o)}const o=n({tagName:"button",className:"menu-toggle btn-appearance"});r(o,"tabindex","-1"),r(o,"aria-expanded","false"),r(o,"aria-haspopup","true");const s=encodeURI("http://www.w3.org/2000/svg"),i=yt(s,{tagName:"svg"});r(i,"xmlns",s),r(i,"viewBox","0 0 512 512"),r(i,"aria-hidden","true");const l=yt(s,{tagName:"path"});r(l,"d","M98,158l157,156L411,158l27,27L255,368L71,185L98,158z"),r(l,"fill","#fff"),i.append(l),o.append(n({tagName:"span",className:"v-hidden",innerText:""+d}),i),a.append(o,e)}h&&u.includes(p)&&(t.value=p),r(e,"tabindex","-1")}const St={componentLabels:mt,colorLabels:vt,format:"rgb",colorPresets:!1,colorKeywords:!1};function Ht(t,e){const o=e?W:z,{input:n,pickerToggle:r,menuToggle:s}=t;o(n,"focusin",t.showPicker),o(r,"click",t.togglePicker),s&&o(s,"click",t.toggleMenu)}function At(e,o){const n=o?W:z,{input:r,colorMenu:s,parent:a}=e,i=t(r),l=function(t){if(null==t)return window;if(!(t instanceof Window)){const{ownerDocument:e}=t;return e&&e.defaultView||window}return t}(r),c="ontouchstart"in i?{down:"touchstart",move:"touchmove",up:"touchend"}:{down:"mousedown",move:"mousemove",up:"mouseup"};n(e.controls,c.down,e.pointerDown),e.controlKnobs.forEach(t=>n(t,"keydown",e.handleKnobs)),n(l,"scroll",e.handleScroll),n(l,"resize",e.update),[r,...e.inputs].forEach(t=>n(t,"change",e.changeHandler)),s&&(n(s,"click",e.menuClickHandler),n(s,"keydown",e.menuKeyHandler)),n(i,c.move,e.pointerMove),n(i,c.up,e.pointerUp),n(a,"focusout",e.handleFocusOut),n(i,"keyup",e.handleDismiss)}function Et(t){var e,o;e=t.input,o=new CustomEvent("colorpicker.change"),e.dispatchEvent(o)}function Lt(t){t&&["bottom","top"].forEach(e=>dt(t,e))}function Pt(t,e){const{colorPicker:o,colorMenu:n,menuToggle:s,pickerToggle:a,parent:i}=t,l=e===o,c=l?n:o,u=l?s:a,h=l?a:s;gt(i,"open")||pt(i,"open"),c&&(dt(c,"show"),Lt(c)),pt(e,"bottom"),e.offsetHeight,pt(e,"show"),l&&t.update(),t.isOpen||(At(t,!0),t.updateDropdownPosition(),t.isOpen=!0,r(t.input,"tabindex","0"),s&&r(s,"tabindex","0")),r(h,"aria-expanded","true"),u&&r(u,"aria-expanded","false")}class Nt{constructor(t,e){const n=this,r=st(t);if(!r)throw new TypeError(`ColorPicker target "${t}" cannot be found.`);n.input=r;const a=function t(e,o){return e?e.closest(o)||t(e.getRootNode().host,o):null}(r,".color-picker,color-picker");if(!a)throw new TypeError("ColorPicker requires a specific markup to work.");n.parent=a,n.id=function t(e,o){let n=o?tt:et;if(o){const r=t(e),s=ot.get(r)||new Map;ot.has(r)||ot.set(r,s),s.has(o)?n=s.get(o):(s.set(o,n),tt+=1)}else{const t=e.id||e;ot.has(t)?n=ot.get(t):(ot.set(t,n),et+=1)}return n}(r,"color-picker"),n.dragElement=null,n.isOpen=!1,n.controlPositions={c1x:0,c1y:0,c2y:0,c3y:0},n.colorLabels={},n.colorKeywords=void 0,n.colorPresets=void 0;const{format:i,componentLabels:l,colorLabels:u,colorKeywords:h,colorPresets:g}=function(t,e,o,n){const r={...t.dataset},a={},i={};return ut(r).forEach(t=>{const e=n&&t.includes(n)?t.replace(n,"").replace(/[A-Z]/,t=>c(t)):t;i[e]=ct(r[t])}),ut(o).forEach(t=>{o[t]=ct(o[t])}),ut(e).forEach(n=>{a[n]=n in o?o[n]:n in i?i[n]:"title"===n?s(t,"title"):e[n]}),a}(this.isCE?a:r,St,e||{});let p=vt;u instanceof Array&&17===u.length?p=u:u&&17===u.split(",").length&&(p=u.split(",")),vt.forEach((t,e)=>{n.colorLabels[t]=p[e].trim()});const d=l&&wt(l)?JSON.parse(l):l;if(n.componentLabels=o(mt,d),n.color=new U(r.value||"#fff",i),n.format=i,h instanceof Array?n.colorKeywords=h:"string"==typeof h&&h.length&&(n.colorKeywords=h.split(",").map(t=>t.trim())),g instanceof Array)n.colorPresets=g;else if("string"==typeof g&&g.length)if(wt(g)){const{hue:t,hueSteps:e,lightSteps:o}=JSON.parse(g);n.colorPresets=new ft(t,e,o)}else n.colorPresets=g.split(",").map(t=>t.trim());n.showPicker=n.showPicker.bind(n),n.togglePicker=n.togglePicker.bind(n),n.toggleMenu=n.toggleMenu.bind(n),n.menuClickHandler=n.menuClickHandler.bind(n),n.menuKeyHandler=n.menuKeyHandler.bind(n),n.pointerDown=n.pointerDown.bind(n),n.pointerMove=n.pointerMove.bind(n),n.pointerUp=n.pointerUp.bind(n),n.update=n.update.bind(n),n.handleScroll=n.handleScroll.bind(n),n.handleFocusOut=n.handleFocusOut.bind(n),n.changeHandler=n.changeHandler.bind(n),n.handleDismiss=n.handleDismiss.bind(n),n.handleKnobs=n.handleKnobs.bind(n),kt(n);const[b,f]=at("color-dropdown",a);n.pickerToggle=st(".picker-toggle",a),n.menuToggle=st(".menu-toggle",a),n.colorPicker=b,n.colorMenu=f,n.inputs=[...at("color-input",a)];const[m]=at("color-controls",a);n.controls=m,n.controlKnobs=[...at("knob",m)],n.visuals=[...at("visual-control",m)],n.update(),Ht(n,!0),lt.set(r,"color-picker",n)}get value(){return this.input.value}set value(t){this.input.value=t}get hasNonColor(){return this.colorKeywords instanceof Array&&this.colorKeywords.some(t=>u.includes(t))}get isCE(){return"color-picker"===this.parent.localName}get hex(){return this.color.toHex(!0)}get hsv(){return this.color.toHsv()}get hsl(){return this.color.toHsl()}get hwb(){return this.color.toHwb()}get rgb(){return this.color.toRgb()}get brightness(){return this.color.brightness}get luminance(){return this.color.luminance}get isDark(){const{color:t,brightness:e}=this;return e<120&&t.a>.33}get isValid(){const t=this.input.value;return""!==t&&new U(t).isValid}get appearance(){const{colorLabels:t,hsl:e,hsv:o,format:n}=this,r=h(360*e.h),s=h(100*("hsl"===n?e.s:o.s)),a=h(100*e.l),i=100*o.v;let l;if(100===a&&0===s)l=t.white;else if(0===a)l=t.black;else if(0===s)l=t.grey;else if(r<15||r>=345)l=t.red;else if(r>=15&&r<45)l=i>80&&s>80?t.orange:t.brown;else if(r>=45&&r<75){const e=r>=54&&r<75&&i<80;l=r>46&&r<54&&i<80&&s>90?t.gold:t.yellow,l=e?t.olive:l}else r>=75&&r<155?l=i<68?t.green:t.lime:r>=155&&r<175?l=t.teal:r>=175&&r<195?l=t.cyan:r>=195&&r<255?l=t.blue:r>=255&&r<270?l=t.violet:r>=270&&r<295?l=t.magenta:r>=295&&r<345&&(l=t.pink);return l}updateVisuals(){const{controlPositions:t,visuals:e}=this,[o,n,r]=e,{offsetHeight:s}=o,a=t.c2y/s,{r:i,g:c,b:u}=new U({h:a,s:1,l:.5}).toRgb(),g=1-t.c3y/s,p=h(100*g)/100,d=new U({h:a,s:1,l:.5,a:g}).toRgbString();l(o,{background:`linear-gradient(rgba(0,0,0,0) 0%, rgba(0,0,0,${p}) 100%),\n linear-gradient(to right, rgba(255,255,255,${p}) 0%, ${d} 100%),\n linear-gradient(rgb(255,255,255) 0%, rgb(255,255,255) 100%)`}),l(n,{background:"linear-gradient(\n rgb(255,0,0) 0%, rgb(255,255,0) 16.67%,\n rgb(0,255,0) 33.33%, rgb(0,255,255) 50%,\n rgb(0,0,255) 66.67%, rgb(255,0,255) 83.33%,\n rgb(255,0,0) 100%)"}),l(r,{background:`linear-gradient(rgba(${i},${c},${u},1) 0%,rgba(${i},${c},${u},0) 100%)`})}handleFocusOut({relatedTarget:t}){t&&!this.parent.contains(t)&&this.hide(!0)}handleDismiss({code:t}){const e=this;e.isOpen&&"Escape"===t&&e.hide()}handleScroll(e){const{activeElement:o}=t(this.input);("touchmove"===e.type&&this.dragElement||o&&this.controlKnobs.includes(o))&&(e.stopPropagation(),e.preventDefault()),this.updateDropdownPosition()}menuKeyHandler(t){const{target:e,code:o}=t,{previousElementSibling:n,nextElementSibling:r,parentElement:s}=e,a=s&>(s,"color-options"),l=[...s.children],c=a&&i(s,"grid-template-columns").split(" ").length,u=l.indexOf(e),h=u>-1&&c&&l[u-c],g=u>-1&&c&&l[u+c];[G,X,Z].includes(o)&&t.preventDefault(),a?h&&o===X?ht(h):g&&o===G?ht(g):n&&o===Y?ht(n):r&&o===J&&ht(r):n&&[Y,X].includes(o)?ht(n):r&&[J,G].includes(o)&&ht(r),[q,Z].includes(o)&&this.menuClickHandler({target:e})}menuClickHandler(t){const e=this,{target:n}=t,{colorMenu:a}=e,i=(s(n,"data-value")||"").trim();if(!i.length)return;const l=st("li.active",a);let c=u.includes(i)?"white":i;c="transparent"===i?"rgba(0,0,0,0)":i;const{r:h,g:g,b:p,a:d}=new U(c);o(e.color,{r:h,g:g,b:p,a:d}),e.update(),l!==n&&(l&&(dt(l,"active"),bt(l,"aria-selected")),pt(n,"active"),r(n,"aria-selected","true"),u.includes(i)&&(e.value=i),Et(e))}pointerDown(t){const e=this,{type:o,target:n,touches:r,pageX:s,pageY:a}=t,{colorMenu:i,visuals:l,controlKnobs:c}=e,[u,h,g]=l,[p,d,b]=c,f=c.includes(n)?n.previousElementSibling:n,m=nt(f),v=Q(u),w="touchstart"===o?r[0].pageX:s,x="touchstart"===o?r[0].pageY:a,y=w-v.scrollLeft-m.left,$=x-v.scrollTop-m.top;if(n===u||n===p?(e.dragElement=f,e.changeControl1(y,$)):n===h||n===d?(e.dragElement=f,e.changeControl2($)):n!==g&&n!==b||(e.dragElement=f,e.changeAlpha($)),i){const t=st("li.active",i);t&&(dt(t,"active"),bt(t,"aria-selected"))}t.preventDefault()}pointerUp({target:e}){const o=this,{parent:n}=o,r=t(n),s=null!==st(".color-picker,color-picker.open",r),a=r.getSelection();o.dragElement||a.toString().length||n.contains(e)||o.hide(s),o.dragElement=null}pointerMove(t){const e=this,{dragElement:o,visuals:n}=e,[r,s,a]=n,{type:i,touches:l,pageX:c,pageY:u}=t;if(!o)return;const h=nt(o),g=Q(r),p="touchmove"===i?l[0].pageX:c,d="touchmove"===i?l[0].pageY:u,b=p-g.scrollLeft-h.left,f=d-g.scrollTop-h.top;o===r&&e.changeControl1(b,f),o===s&&e.changeControl2(f),o===a&&e.changeAlpha(f)}handleKnobs(e){const{target:o,code:n}=e,r=this;if(![X,G,Y,J].includes(n))return;e.preventDefault();const{controlKnobs:s,visuals:a}=r,{offsetWidth:i,offsetHeight:l}=a[0],[c,u,h]=s,{activeElement:g}=t(c),p=l/360;if(s.find(t=>t===g)){let t=0,s=0;if(o===c){const e=i/100;[Y,J].includes(n)?r.controlPositions.c1x+=n===J?e:-e:[X,G].includes(n)&&(r.controlPositions.c1y+=n===G?p:-p),t=r.controlPositions.c1x,s=r.controlPositions.c1y,r.changeControl1(t,s)}else o===u?(r.controlPositions.c2y+=[G,J].includes(n)?p:-p,s=r.controlPositions.c2y,r.changeControl2(s)):o===h&&(r.controlPositions.c3y+=[G,J].includes(n)?p:-p,s=r.controlPositions.c3y,r.changeAlpha(s));r.handleScroll(e)}}changeHandler(){const e=this;let n;const{inputs:r,format:s,value:a,input:i,controlPositions:l,visuals:c}=e,{activeElement:h}=t(i),{offsetHeight:g}=c[0],[p,,,d]=r,[b,f,m,v]="rgb"===s?r.map(t=>parseFloat(t.value)/(t===d?100:1)):r.map(t=>parseFloat(t.value)/(t!==p?100:360)),w=e.hasNonColor&&u.includes(a),x=d?v:1-l.c3y/g;if(h===i||h&&r.includes(h)){n=h===i?w?"transparent"===a?"rgba(0,0,0,0)":"rgb(0,0,0)":a:"hex"===s?p.value:"hsl"===s?{h:b,s:f,l:m,a:x}:"hwb"===s?{h:b,w:f,b:m,a:x}:{r:b,g:f,b:m,a:x};const{r:t,g:r,b:l,a:c}=new U(n);o(e.color,{r:t,g:r,b:l,a:c}),e.setControlPositions(),e.updateAppearance(),e.updateInputs(),e.updateControls(),e.updateVisuals(),h===i&&w&&(e.value=a)}}changeControl1(t,e){let[n,r]=[0,0];const{controlPositions:s,visuals:a}=this,{offsetHeight:i,offsetWidth:l}=a[0];t>l?n=l:t>=0&&(n=t),e>i?r=i:e>=0&&(r=e);const c=s.c2y/i,u=n/l,h=1-r/i,g=1-s.c3y/i,{r:p,g:d,b:b,a:f}=new U({h:c,s:u,v:h,a:g});o(this.color,{r:p,g:d,b:b,a:f}),this.controlPositions.c1x=n,this.controlPositions.c1y=r,this.updateAppearance(),this.updateInputs(),this.updateControls(),this.updateVisuals()}changeControl2(t){const{controlPositions:e,visuals:n}=this,{offsetHeight:r,offsetWidth:s}=n[0];let a=0;t>r?a=r:t>=0&&(a=t);const i=a/r,l=e.c1x/s,c=1-e.c1y/r,u=1-e.c3y/r,{r:h,g:g,b:p,a:d}=new U({h:i,s:l,v:c,a:u});o(this.color,{r:h,g:g,b:p,a:d}),this.controlPositions.c2y=a,this.updateAppearance(),this.updateInputs(),this.updateControls(),this.updateVisuals()}changeAlpha(t){const{visuals:e}=this,{offsetHeight:o}=e[0];let n=0;t>o?n=o:t>=0&&(n=t);const r=1-n/o;this.color.setAlpha(r),this.controlPositions.c3y=n,this.updateAppearance(),this.updateInputs(),this.updateControls(),this.updateVisuals()}update(){this.updateDropdownPosition(),this.updateAppearance(),this.setControlPositions(),this.updateInputs(!0),this.updateControls(),this.updateVisuals()}updateDropdownPosition(){const{input:t,colorPicker:e,colorMenu:o}=this,n=nt(t),{top:r,bottom:s}=n,{offsetHeight:a}=t,i=Q(t).clientHeight,l=gt(e,"show")?e:o;if(!l)return;const{offsetHeight:c}=l,u=i-s,h=r,g=r+c+a>i,p=r-c<0;(gt(l,"bottom")||!p)&&u<h&&g?(dt(l,"bottom"),pt(l,"top")):(dt(l,"top"),pt(l,"bottom"))}setControlPositions(){const{visuals:t,color:e,hsv:o}=this,{offsetHeight:n,offsetWidth:r}=t[0],s=e.a,a=o.h,i=o.s,l=o.v;this.controlPositions.c1x=i*r,this.controlPositions.c1y=(1-l)*n,this.controlPositions.c2y=a*n,this.controlPositions.c3y=(1-s)*n}updateAppearance(){const t=this,{componentLabels:e,color:o,parent:n,hsv:s,hex:a,format:i,controlKnobs:c}=t,{appearanceLabel:u,hexLabel:g,valueLabel:p}=e;let{r:d,g:b,b:f}=o.toRgb();const[m,v,w]=c,x=h(360*s.h),y=o.a,$=h(100*s.s),k=h(100*s.v),S=t.appearance;let H=`${g} ${a.split("").join(" ")}`;if("hwb"===i){const{hwb:e}=t,o=h(100*e.w),n=h(100*e.b);H=`HWB: ${x}°, ${o}%, ${n}%`,r(m,"aria-valuetext",`${o}% & ${n}%`),r(m,"aria-valuenow",""+o),r(v,"aria-description",`${p}: ${H}. ${u}: ${S}.`),r(v,"aria-valuetext",x+"%"),r(v,"aria-valuenow",""+x)}else[d,b,f]=[d,b,f].map(h),H="hsl"===i?`HSL: ${x}°, ${$}%, ${k}%`:H,H="rgb"===i?`RGB: ${d}, ${b}, ${f}`:H,r(m,"aria-valuetext",`${k}% & ${$}%`),r(m,"aria-valuenow",""+k),r(v,"aria-description",`${p}: ${H}. ${u}: ${S}.`),r(v,"aria-valuetext",x+"°"),r(v,"aria-valuenow",""+x);const A=h(100*y);r(w,"aria-valuetext",A+"%"),r(w,"aria-valuenow",""+A);const E=o.toString();l(t.input,{backgroundColor:E}),t.isDark?(gt(n,"txt-light")&&dt(n,"txt-light"),gt(n,"txt-dark")||pt(n,"txt-dark")):(gt(n,"txt-dark")&&dt(n,"txt-dark"),gt(n,"txt-light")||pt(n,"txt-light"))}updateControls(){const{controlKnobs:t,controlPositions:e}=this;let{c1x:o,c1y:n,c2y:r,c3y:s}=e;const[a,i,c]=t;[o,n,r,s]=[o,n,r,s].map(h),l(a,{transform:`translate3d(${o-4}px,${n-4}px,0)`}),l(i,{transform:`translate3d(0,${r-4}px,0)`}),l(c,{transform:`translate3d(0,${s-4}px,0)`})}updateInputs(t){const e=this,{value:o,format:n,inputs:r,color:s,hsl:a}=e,[i,l,c,u]=r,g=h(100*s.a),p=h(360*a.h);let d;if("hex"===n)d=e.color.toHexString(!0),i.value=e.hex;else if("hsl"===n){const t=h(100*a.l),o=h(100*a.s);d=e.color.toHslString(),i.value=""+p,l.value=""+o,c.value=""+t,u.value=""+g}else if("hwb"===n){const{w:t,b:o}=e.hwb,n=h(100*t),r=h(100*o);d=e.color.toHwbString(),i.value=""+p,l.value=""+n,c.value=""+r,u.value=""+g}else if("rgb"===n){let{r:t,g:o,b:n}=e.rgb;[t,o,n]=[t,o,n].map(h),d=e.color.toRgbString(),i.value=""+t,l.value=""+o,c.value=""+n,u.value=""+g}e.value=""+d,t||d===o||Et(e)}togglePicker(t){t&&t.preventDefault();const e=this,{colorPicker:o}=e;e.isOpen&>(o,"show")?e.hide(!0):Pt(e,o)}showPicker(){const t=this,{colorPicker:e}=t;["top","bottom"].some(t=>gt(e,t))||Pt(t,e)}toggleMenu(t){t&&t.preventDefault();const e=this,{colorMenu:o}=e;e.isOpen&>(o,"show")?e.hide(!0):Pt(e,o)}hide(t){const e=this;if(e.isOpen){const{pickerToggle:o,menuToggle:n,colorPicker:s,colorMenu:a,parent:l,input:c}=e,u=gt(s,"show"),h=u?s:a,g=u?o:n,p=h&&function(t){const e=i(t,"transitionProperty"),o=i(t,"transitionDuration"),n=o.includes("ms")?1:1e3,r=e&&"none"!==e?parseFloat(o)*n:0;return Number.isNaN(r)?0:r}(h);e.value=e.color.toString(!0),h&&(dt(h,"show"),r(g,"aria-expanded","false"),setTimeout(()=>{Lt(h),st(".show",l)||(dt(l,"open"),At(e),e.isOpen=!1)},p)),t||ht(o),r(c,"tabindex","-1"),n&&r(n,"tabindex","-1")}}dispose(){const{input:t,parent:e}=this;this.hide(!0),Ht(this),[...e.children].forEach(e=>{e!==t&&e.remove()}),bt(t,"tabindex"),l(t,{backgroundColor:""}),["txt-light","txt-dark"].forEach(t=>dt(e,t)),lt.remove(t,"color-picker")}}o(Nt,{Color:U,ColorPalette:ft,Version:"0.0.2alpha4",getInstance:t=>{return e=t,o="color-picker",lt.get(e,o);var e,o},init:t=>new Nt(t),selector:'[data-function="color-picker"]',roundPart:h,setElementStyle:l,setAttribute:r,getBoundingClientRect:nt});let Ct=0;class Mt extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}get value(){return this.input&&this.input.value}connectedCallback(){if(this.input)return;let[o]=(a="input",((i=this)&&e.some(t=>i instanceof t)?i:t()).getElementsByTagName(a));var a,i;const l=o&&s(o,"value")||s(this,"data-value")||"#fff",c=o&&s(o,"format")||s(this,"data-format")||"rgb";let u=o&&s(o,"id")||s(this,"data-id");u||(u=`color-picker-${c}-${Ct}`,Ct+=1),o||(o=n({tagName:"input",type:"text",className:"color-preview btn-appearance"}),r(o,"id",u),r(o,"name",u),r(o,"autocomplete","off"),r(o,"spellcheck","false"),r(o,"value",l),this.append(o)),this.input=o,this.colorPicker=new Nt(o),this.shadowRoot.append(n("slot"))}disconnectedCallback(){const{input:t,colorPicker:e,shadowRoot:n}=this;e&&e.dispose(),t&&t.remove(),n&&(n.innerHTML=""),o(this,{colorPicker:void 0,input:void 0})}}return o(Mt,{Color:U,ColorPicker:Nt,ColorPalette:ft,getInstance:Nt.getInstance,Version:"0.0.2alpha4"}),customElements.define("color-picker",Mt),Mt}));
|