@thednp/color-picker 0.0.1-alpha1 → 0.0.1-alpha2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +40 -19
  3. package/dist/css/color-picker.css +481 -337
  4. package/dist/css/color-picker.min.css +2 -0
  5. package/dist/css/color-picker.rtl.css +506 -0
  6. package/dist/css/color-picker.rtl.min.css +2 -0
  7. package/dist/js/color-picker-element-esm.js +3810 -2
  8. package/dist/js/color-picker-element-esm.min.js +2 -0
  9. package/dist/js/color-picker-element.js +2009 -1242
  10. package/dist/js/color-picker-element.min.js +2 -2
  11. package/dist/js/color-picker-esm.js +3704 -0
  12. package/dist/js/color-picker-esm.min.js +2 -0
  13. package/dist/js/color-picker.js +1962 -1256
  14. package/dist/js/color-picker.min.js +2 -2
  15. package/package.json +18 -9
  16. package/src/js/color-palette.js +62 -0
  17. package/src/js/color-picker-element.js +55 -13
  18. package/src/js/color-picker.js +686 -595
  19. package/src/js/color.js +615 -349
  20. package/src/js/index.js +0 -9
  21. package/src/js/util/colorNames.js +2 -152
  22. package/src/js/util/colorPickerLabels.js +22 -0
  23. package/src/js/util/getColorControls.js +103 -0
  24. package/src/js/util/getColorForm.js +27 -19
  25. package/src/js/util/getColorMenu.js +95 -0
  26. package/src/js/util/isValidJSON.js +13 -0
  27. package/src/js/util/nonColors.js +5 -0
  28. package/src/js/util/templates.js +1 -0
  29. package/src/scss/color-picker.rtl.scss +23 -0
  30. package/src/scss/color-picker.scss +430 -0
  31. package/types/cp.d.ts +263 -160
  32. package/types/index.d.ts +9 -2
  33. package/types/source/source.ts +2 -1
  34. package/types/source/types.d.ts +28 -5
  35. package/dist/js/color-picker.esm.js +0 -2998
  36. package/dist/js/color-picker.esm.min.js +0 -2
  37. package/src/js/util/getColorControl.js +0 -49
  38. package/src/js/util/init.js +0 -14
@@ -0,0 +1,2 @@
1
+ // ColorPickerElement v0.0.1alpha2 | thednp © 2022 | MIT-License
2
+ 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,a={...e},s=n(r);return delete a.tagName,o(s,a),s}const r=(t,e,o)=>t.setAttribute(e,o),a=(t,e)=>t.getAttribute(e);function s(t,e){const o=getComputedStyle(t);return e in o?o[e]:""}const i=(t,e)=>{o(t.style,e)},l=["transparent","currentColor","inherit","revert","initial"],c=["rgb","hex","hsl","hsb","hwb"],h="deg|rad|grad|turn",u=`[-\\+]?\\d*\\.?\\d+(?:${h})?`,g="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",p=`(?:${g})|(?:${u})`,d=`[\\s|\\(]+(${p})[,|\\s]+(${g})[,|\\s]+(${g})[,|\\s|\\/\\s]*(${g})?\\s*\\)?`,b={CSS_UNIT:new RegExp(p),hwb:new RegExp("hwb"+d),rgb:new RegExp("rgb(?:a)?"+d),hsl:new RegExp("hsl(?:a)?"+d),hsv:new RegExp("hsv(?:a)?"+d),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 f(t){return(""+t).includes(".")&&1===parseFloat(t)}function m(t){return(""+t).includes("%")}function w(t){return Boolean(b.CSS_UNIT.exec(String(t)))}function v(t,e){let o=t;return f(o)&&(o="100%"),o=360===e?o:Math.min(e,Math.max(0,parseFloat(o))),function(t){return h.split("|").some(e=>(""+t).includes(e))}(t)&&(o=t.replace(new RegExp(h),"")),m(o)&&(o=parseInt(String(o*e),10)/100),Math.abs(o-e)<1e-6?1:(o=360===e?(o<0?o%e+e:o%e)/parseFloat(String(e)):o%e/parseFloat(String(e)),o)}function x(t){let e=parseFloat(""+t);return(Number.isNaN(e)||e<0||e>1)&&(e=1),e}function $(t){return Math.min(1,Math.max(0,t))}function k(e){const o=t(n).head;var n;i(o,{color:e});const r=s(o,"color");return i(o,{color:""}),r}function y(t){return Math.round(255*t).toString(16)}function M(t){return S(t)/255}function S(t){return parseInt(t,16)}function A(t){return 1===t.length?"0"+t:String(t)}function H(t,e,o){const n=t/255,r=e/255,a=o/255,s=Math.max(n,r,a),i=Math.min(n,r,a);let l=0,c=0;const h=(s+i)/2;if(s===i)c=0,l=0;else{const t=s-i;switch(c=h>.5?t/(2-s-i):t/(s+i),s){case n:l=(r-a)/t+(r<a?6:0);break;case r:l=(a-n)/t+2;break;case a:l=(n-r)/t+4}l/=6}return{h:l,s:c,l:h}}function P(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 N(t,e,o){const n=t/255,r=e/255,a=o/255;let s=0,i=0;const l=Math.min(n,r,a),c=Math.max(n,r,a),h=1-c;if(c===l)return{h:0,w:l,b:h};n===l?(s=r-a,i=3):(s=r===l?a-n:n-r,i=r===l?5:1);const u=(i-s/(c-l))/6;return{h:1===u?0:u,w:l,b:h}}function E(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:a}=L(t,1,.5);return[n,r,a]=[n,r,a].map(t=>t/255*(1-e-o)+e).map(t=>255*t),{r:n,g:r,b:a}}function L(t,e,o){let n=0,r=0,a=0;if(0===e)r=o,a=o,n=o;else{const s=o<.5?o*(1+e):o+e-o*e,i=2*o-s;n=P(i,s,t+1/3),r=P(i,s,t),a=P(i,s,t-1/3)}return[n,r,a]=[n,r,a].map(t=>255*t),{r:n,g:r,b:a}}function C(t,e,o){const n=t/255,r=e/255,a=o/255,s=Math.max(n,r,a),i=Math.min(n,r,a);let l=0;const c=s,h=s-i,u=0===s?0:h/s;if(s===i)l=0;else{switch(s){case n:l=(r-a)/h+(r<a?6:0);break;case r:l=(a-n)/h+2;break;case a:l=(n-r)/h+4}l/=6}return{h:l,s:u,v:c}}function T(t,e,o){const n=6*t,r=e,a=o,s=Math.floor(n),i=n-s,l=a*(1-r),c=a*(1-i*r),h=a*(1-(1-i)*r),u=s%6;return{r:255*[a,c,l,l,h,a][u],g:255*[h,a,a,c,l,l][u],b:255*[l,l,h,a,a,c][u]}}function R(t,e,o,n){const r=[A(Math.round(t).toString(16)),A(Math.round(e).toString(16)),A(Math.round(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 D(t,e,o,n,r){const a=[A(Math.round(t).toString(16)),A(Math.round(e).toString(16)),A(Math.round(o).toString(16)),A(y(n))];return r&&a[0].charAt(0)===a[0].charAt(1)&&a[1].charAt(0)===a[1].charAt(1)&&a[2].charAt(0)===a[2].charAt(1)&&a[3].charAt(0)===a[3].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}function F(t){return{r:t>>16,g:(65280&t)>>8,b:255&t}}function O(t){let e=t.trim().toLowerCase();if(0===e.length)return{r:0,g:0,b:0,a:0};let o=!1;if(function(t){return!["#",...c].some(e=>t.includes(e))&&!/[0-9]/.test(t)}(e))e=k(e),o=!0;else if(l.includes(e)){const t="transparent"===e,o=t?0:255;return{r:o,g:o,b:o,a:t?0:1,format:"rgb"}}let[,n,r,a,s]=b.rgb.exec(e)||[];return n&&r&&a?{r:n,g:r,b:a,a:void 0!==s?s:1,format:"rgb"}:([,n,r,a,s]=b.hsl.exec(e)||[],n&&r&&a?{h:n,s:r,l:a,a:void 0!==s?s:1,format:"hsl"}:([,n,r,a,s]=b.hsv.exec(e)||[],n&&r&&a?{h:n,s:r,v:a,a:void 0!==s?s:1,format:"hsv"}:([,n,r,a,s]=b.hwb.exec(e)||[],n&&r&&a?{h:n,w:r,b:a,a:void 0!==s?s:1,format:"hwb"}:([,n,r,a,s]=b.hex8.exec(e)||[],n&&r&&a&&s?{r:S(n),g:S(r),b:S(a),a:M(s),format:o?"rgb":"hex"}:([,n,r,a]=b.hex6.exec(e)||[],n&&r&&a?{r:S(n),g:S(r),b:S(a),format:o?"rgb":"hex"}:([,n,r,a,s]=b.hex4.exec(e)||[],n&&r&&a&&s?{r:S(n+n),g:S(r+r),b:S(a+a),a:M(s+s),format:o?"rgb":"hex"}:([,n,r,a]=b.hex3.exec(e)||[],!!(n&&r&&a)&&{r:S(n+n),g:S(r+r),b:S(a+a),format:o?"rgb":"hex"})))))))}function K(t){let e={r:0,g:0,b:0},o=t,n=1,r=null,a=null,s=null,i=null,l=null,c=null,h=!1,u="hex";return"string"==typeof t&&(o=O(t),o&&(h=!0)),"object"==typeof o&&(w(o.r)&&w(o.g)&&w(o.b)?(e={r:o.r,g:o.g,b:o.b},h=!0,u="rgb"):w(o.h)&&w(o.s)&&w(o.v)?(({h:c,s:r,v:a}=o),c="number"==typeof c?c:v(c,360),r="number"==typeof r?r:v(r,100),a="number"==typeof a?a:v(a,100),e=T(c,r,a),h=!0,u="hsv"):w(o.h)&&w(o.s)&&w(o.l)?(({h:c,s:r,l:s}=o),c="number"==typeof c?c:v(c,360),r="number"==typeof r?r:v(r,100),s="number"==typeof s?s:v(s,100),e=L(c,r,s),h=!0,u="hsl"):w(o.h)&&w(o.w)&&w(o.b)&&(({h:c,w:i,b:l}=o),c="number"==typeof c?c:v(c,360),i="number"==typeof i?i:v(i,100),l="number"==typeof l?l:v(l,100),e=E(c,i,l),h=!0,u="hwb"),w(o.a)&&(n=o.a,n=m(""+n)?v(n,100):n)),{ok:h,format:o.format||u,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:x(n)}}class I{constructor(t,e){let o=t;const n=e&&c.includes(e)?e:"rgb";o instanceof I&&(o=K(o)),"number"==typeof o&&(o=F(o));const{r:r,g:a,b:s,a:i,ok:l,format:h}=K(o);this.originalInput=o,this.r=r,this.g=a,this.b=s,this.a=i,this.ok=l,this.format=n||h,r<1&&(this.r=Math.round(r)),a<1&&(this.g=Math.round(a)),s<1&&(this.b=Math.round(s))}get isValid(){return this.ok}get isDark(){return this.brightness<128}get luminance(){const{r:t,g:e,b:o}=this;let n=0,r=0,a=0;const s=t/255,i=e/255,l=o/255;return n=s<=.03928?s/12.92:((s+.055)/1.055)**2.4,r=i<=.03928?i/12.92:((i+.055)/1.055)**2.4,a=l<=.03928?l/12.92:((l+.055)/1.055)**2.4,.2126*n+.7152*r+.0722*a}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,[r,a,s]=[t,e,o].map(t=>Math.round(t));return{r:r,g:a,b:s,a:Math.round(100*n)/100}}toRgbString(){const{r:t,g:e,b:o,a:n}=this.toRgb();return 1===n?`rgb(${t}, ${e}, ${o})`:`rgba(${t}, ${e}, ${o}, ${n})`}toRgbCSS4String(){const{r:t,g:e,b:o,a:n}=this.toRgb();return`rgb(${t} ${e} ${o}${1===n?"":` / ${Math.round(100*n)}%`})`}toHex(t){const{r:e,g:o,b:n,a:r}=this.toRgb();return 1===r?R(e,o,n,t):D(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 D(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:a,v:s}=C(t,e,o);return{h:r,s:a,v:s,a:n}}toHsl(){const{r:t,g:e,b:o,a:n}=this.toRgb(),{h:r,s:a,l:s}=H(t,e,o);return{h:r,s:a,l:s,a:n}}toHslString(){let{h:t,s:e,l:o,a:n}=this.toHsl();return t=Math.round(360*t),e=Math.round(100*e),o=Math.round(100*o),n=Math.round(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=Math.round(360*t),e=Math.round(100*e),o=Math.round(100*o),n=Math.round(100*n);return`hsl(${t}deg ${e}% ${o}%${n<100?` / ${Math.round(n)}%`:""})`}toHwb(){const{r:t,g:e,b:o,a:n}=this,{h:r,w:a,b:s}=N(t,e,o);return{h:r,w:a,b:s,a:n}}toHwbString(){let{h:t,w:e,b:o,a:n}=this.toHwb();t=Math.round(360*t),e=Math.round(100*e),o=Math.round(100*o),n=Math.round(100*n);return`hwb(${t}deg ${e}% ${o}%${n<100?` / ${Math.round(n)}%`:""})`}setAlpha(t){return this.a=x(t),this}saturate(t){if("number"!=typeof t)return this;const{h:e,s:n,l:r}=this.toHsl(),{r:a,g:s,b:i}=L(e,$(n+t/100),r);return o(this,{r:a,g:s,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:a,g:s,b:i}=L(e,n,$(r+t/100));return o(this,{r:a,g:s,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:a,g:s,b:i}=L($((360*e+t)%360/360),n,r);return o(this,{r:a,g:s,b:i}),this}clone(){return new I(this)}toString(t){const{format:e}=this;return"hex"===e?this.toHexString(t):"hsl"===e?this.toHslString():"hwb"===e?this.toHwbString():this.toRgbString()}}o(I,{ANGLES:h,CSS_ANGLE:u,CSS_INTEGER:"[-\\+]?\\d+%?",CSS_NUMBER:"[-\\+]?\\d*\\.\\d+%?",CSS_UNIT:g,CSS_UNIT2:p,PERMISSIVE_MATCH:d,matchers:b,isOnePointZero:f,isPercentage:m,isValidCSSUnit:w,pad2:A,clamp01:$,bound01:v,boundAlpha:x,getRGBFromName:k,convertHexToDecimal:M,convertDecimalToHex:y,rgbToHsl:H,rgbToHex:R,rgbToHsv:C,rgbToHwb:N,rgbaToHex:D,hslToRgb:L,hsvToRgb:T,hueToRgb:P,hwbToRgb:E,parseIntFromHex:S,numberInputToObject:F,stringInputToObject:O,inputToRGB:K,ObjectAssign:o});const V={};function U(t){const e=this,{type:o}=t;(V[o]?[...V[o]]:[]).forEach(n=>{const[r,a]=n;[...a].forEach(n=>{if(r===e){const[e,a]=n;e.apply(r,[t]),a&&a.once&&_(r,o,e,a)}})})}const B=(t,e,o,n)=>{V[e]||(V[e]=new Map);const r=V[e];r.has(t)||r.set(t,new Map);const a=r.get(t),{size:s}=a;a&&a.set(o,n),s||t.addEventListener(e,U,n)},_=(t,e,o,n)=>{const r=V[e],a=r&&r.get(t),s=a&&a.get(o),{options:i}=void 0!==s?s:{options:n};a&&a.has(o)&&a.delete(o),!r||a&&a.size||r.delete(t),r&&r.size||delete V[e],a&&a.size||t.removeEventListener(e,U,i)},j="ArrowDown",W="ArrowUp",z="ArrowLeft",G="ArrowRight",X="Enter",Y="Space",{userAgentData:q}=navigator,J=q,{userAgent:Z}=navigator,Q=Z,tt=/iPhone|iPad|iPod|Android/i;let et=!1;et=J?J.brands.some(t=>tt.test(t.brand)):tt.test(Q);const ot=et;let nt=0,rt=0;const at=new Map;function st(t,e){const{width:o,height:n,top:r,right:a,bottom:s,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:a/l,bottom:s/c,left:i/l,x:i/l,y:r/c}}const it=[Element,HTMLElement];function lt(o,n){const r=e.some(t=>n instanceof t)?n:t();return it.some(t=>o instanceof t)?o:r.querySelector(o)}function ct(o,n){return(n&&e.some(t=>n instanceof t)?n:t()).getElementsByClassName(o)}function ht(e,n){if("string"==typeof n)return t().createElementNS(e,n);const{tagName:r}=n,a={...n},s=ht(e,r);return delete a.tagName,o(s,a),s}const ut=new Map,gt={set:(t,e,o)=>{const n=lt(t);if(!n)return;ut.has(e)||ut.set(e,new Map);ut.get(e).set(n,o)},getAllFor:t=>ut.get(t)||null,get:(t,e)=>{const o=lt(t),n=gt.getAllFor(e);return o&&n&&n.get(o)||null},remove:(t,e)=>{const o=lt(t),n=ut.get(e);n&&o&&(n.delete(o),0===n.size&&ut.delete(e))}};function pt(t){return"true"===t||"false"!==t&&(Number.isNaN(+t)?""===t||"null"===t?null:t:+t)}const dt=t=>Object.keys(t);const bt=t=>t.focus();function ft(t,e){return t.classList.contains(e)}function mt(t,e){t.classList.add(e)}function wt(t,e){t.classList.remove(e)}const vt=(t,e)=>t.removeAttribute(e),xt={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"},$t=["white","black","grey","red","orange","brown","gold","olive","yellow","lime","green","teal","cyan","blue","violet","magenta","pink"];class kt{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("The ColorPalette requires minimum 2 arguments");[o,n]=t}const a=[],s=360/o,i=100/(n+(n%2?0:1))/100,l=Math.round((n-(n%2?1:0))/2);for(let t=0;t<l;t+=1)r=[...r,.5+i*(t+1)];for(let t=0;t<n-l-1;t+=1)r=[.5-i*(t+1),...r];for(let t=0;t<o;t+=1){const o=(e+t*s)%360/360;r.forEach(t=>{a.push(new I({h:o,s:1,l:t}).toHexString())})}this.hue=e,this.hueSteps=o,this.lightSteps=n,this.colors=a}}function yt(t,e,o){const{input:s,format:l,componentLabels:c}=t,{defaultsLabel:h,presetsLabel:u}=c,g="color-options"===o,p=e instanceof kt,d=g?u:h;let b=p?e.colors:e;b=b instanceof Array?b:[];const f=b.length,{lightSteps:m}=p?e:{lightSteps:null};let w=m||Math.max(...[5,6,7,8,9,10].filter(t=>f>2*t&&!(f%t)));w=Number.isFinite(w)?w:5;const v=g&&f>w;let x=1;x=v&&f<27?2:x,x=f>=27?3:x,x=f>=36?4:x,x=f>=45?5:x;const $=v&&f>x*w;let k=o;k+=$?" scrollable":"",k+=v?" multiline":"";const y=v?"1px":"0.25rem";let M=v?1.75:2;M=f%10||!v?M:1.5;const S=(x-(f<27?1:2)||1)*M+"rem",A=`calc(${x} * ${M}rem + ${x-1} * ${y})`,H=`repeat(${w}, ${M}rem)`,P=`repeat(auto-fill, ${M}rem)`,N=n({tagName:"ul",className:k});if(r(N,"role","listbox"),r(N,"aria-label",""+d),g){if($){const t="this.style.height=";r(N,"onmouseout",`${t}'${S}'`),r(N,"onmouseover",`${t}'${A}'`)}i(N,{height:$?S:"",gridTemplateColumns:H,gridTemplateRows:P,gap:y})}return b.forEach(t=>{const[e,o]=t.trim().split(":"),c=new I(e,l).toString()===a(s,"value"),h=n({tagName:"li",className:"color-option"+(c?" active":""),innerText:""+(o||t)});r(h,"tabindex","0"),r(h,"data-value",""+e),r(h,"role","option"),r(h,"aria-selected",c?"true":"false"),g&&i(h,{width:M+"rem",height:M+"rem",backgroundColor:t}),N.append(h)}),N}function Mt(t){try{JSON.parse(t)}catch(t){return!1}return!0}const St={componentLabels:xt,colorLabels:$t,format:"rgb",colorPresets:void 0,colorKeywords:l};function At(t){const{input:e,parent:s,format:i,id:c,componentLabels:h,colorKeywords:u,colorPresets:g}=t,p=a(e,"value")||"#fff",{toggleLabel:d,pickerLabel:b,formatLabel:f,hexLabel:m}=h,w=l.includes(p)?"#fff":p;t.color=new I(w,i);const v=ot?" mobile":"",x="hex"===i?m:i.toUpperCase(),$=n({id:"picker-btn-"+c,tagName:"button",className:"picker-toggle btn-appearance"});r($,"aria-expanded","false"),r($,"aria-haspopup","true"),$.append(n({tagName:"span",className:"v-hidden",innerText:`${b}. ${f}: ${x}`}));const k=n({tagName:"div",className:"color-dropdown picker"+v});r(k,"aria-labelledby","picker-btn-"+c),r(k,"role","group");const y=function(t){const{format:e,componentLabels:o}=t,{hueLabel:a,alphaLabel:s,lightnessLabel:i,saturationLabel:l,whitenessLabel:c,blacknessLabel:h}=o,u="hsl"===e?360:100,g="hsl"===e?100:360;let p="hsl"===e?`${a} & ${i}`:`${i} & ${l}`;p="hwb"===e?`${c} & ${h}`:p;const d="hsl"===e?""+l:""+a,b=n({tagName:"div",className:"color-controls "+e});return[{i:1,c:"color-pointer",l:p,min:0,max:u},{i:2,c:"color-slider",l:d,min:0,max:g},{i:3,c:"color-slider",l:s,min:0,max:100}].forEach(t=>{const{i:e,c:o,l:a,min:s,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",a),r(c,"role","slider"),r(c,"tabindex","0"),r(c,"aria-valuemin",""+s),r(c,"aria-valuemax",""+i),l.append(c),b.append(l)}),b}(t),M=function(t){const{format:e,id:a,componentLabels:s}=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?["#"]:(c=t,c.toUpperCase()).split("");var c;const h=`color_${e}_${t}_${a}`,u=s[t+"Label"],g=n({tagName:"label"});r(g,"for",h),g.append(n({tagName:"span",ariaHidden:"true",innerText:l+":"}),n({tagName:"span",className:"v-hidden",innerText:u}));const p=n({tagName:"input",id:h,type:"hex"===e?"text":"number",value:"alpha"===t?"100":"0",className:"color-input "+t});r(p,"autocomplete","off"),r(p,"spellcheck","false");let d="100",b="1";"alpha"!==t&&("rgb"===e?(d="255",b="1"):"hue"===t&&(d="360",b="1")),o(p,{min:"0",max:d,step:b}),i.append(g,p)}),i}(t);if(k.append(y,M),e.before($),s.append(k),u||g){const e=n({tagName:"div",className:"color-dropdown scrollable menu"+v});if(g instanceof Array&&g.length||g instanceof kt&&g.colors){const o=yt(t,g,"color-options");e.append(o)}if(u&&u.length){const o=yt(t,u,"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 a=encodeURI("http://www.w3.org/2000/svg"),i=ht(a,{tagName:"svg"});r(i,"xmlns",a),r(i,"viewBox","0 0 512 512"),r(i,"aria-hidden","true");const l=ht(a,{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),s.append(o,e)}u&&l.includes(p)&&(t.value=p),r(e,"tabindex","-1")}function Ht(t,e){const o=e?B:_,{input:n,pickerToggle:r,menuToggle:a}=t;o(n,"focusin",t.showPicker),o(r,"click",t.togglePicker),o(n,"keydown",t.keyToggle),a&&o(a,"click",t.toggleMenu)}function Pt(e,o){const n=o?B:_,{input:r,colorMenu:a,parent:s}=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)),a&&(n(a,"click",e.menuClickHandler),n(a,"keydown",e.menuKeyHandler)),n(i,c.move,e.pointerMove),n(i,c.up,e.pointerUp),n(s,"focusout",e.handleFocusOut),n(l,"keyup",e.handleDismiss)}function Nt(t){var e,o;e=t.input,o=new CustomEvent("colorpicker.change"),e.dispatchEvent(o)}function Et(t){t&&["bottom","top"].forEach(e=>wt(t,e))}function Lt(t,e){const{colorPicker:o,colorMenu:n,menuToggle:a,pickerToggle:s,parent:i}=t,l=e===o,c=l?n:o,h=l?a:s,u=l?s:a;ft(i,"open")||mt(i,"open"),c&&(wt(c,"show"),Et(c)),mt(e,"bottom"),e.offsetHeight,mt(e,"show"),l&&t.update(),t.show(),r(u,"aria-expanded","true"),h&&r(h,"aria-expanded","false")}class Ct{constructor(t,e){const n=this,r=lt(t);if(!r)throw new TypeError(`ColorPicker target ${t} cannot be found.`);n.input=r;const s=function t(e,o){return e?e.closest(o)||t(e.getRootNode().host,o):null}(r,".color-picker,color-picker");if(!s)throw new TypeError("ColorPicker requires a specific markup to work.");n.parent=s,n.id=function t(e,o){let n=o?nt:rt;if(o){const r=t(e),a=at.get(r)||new Map;at.has(r)||at.set(r,a),a.has(o)?n=a.get(o):(a.set(o,n),nt+=1)}else{const t=e.id||e;at.has(t)?n=at.get(t):(at.set(t,n),rt+=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:c,colorKeywords:h,colorPresets:u}=function(t,e,o,n){const r={...t.dataset},s={},i={};return dt(r).forEach(t=>{const e=n&&t.includes(n)?t.replace(n,"").replace(/[A-Z]/,t=>t.toLowerCase()):t;i[e]=pt(r[t])}),dt(o).forEach(t=>{o[t]=pt(o[t])}),dt(e).forEach(n=>{s[n]=n in o?o[n]:n in i?i[n]:"title"===n?a(t,"title"):e[n]}),s}(this.isCE?s:r,St,e||{});let g=$t;c instanceof Array&&17===c.length?g=c:c&&17===c.split(",").length&&(g=c.split(",")),$t.forEach((t,e)=>{n.colorLabels[t]=g[e].trim()});const p=o({},xt),d=l&&Mt(l)?JSON.parse(l):l||{};if(n.componentLabels=o(p,d),n.color=new I("white",i),n.format=i,h instanceof Array?n.colorKeywords=h:"string"==typeof h&&h.length&&(n.colorKeywords=h.split(",")),u instanceof Array)n.colorPresets=u;else if("string"==typeof u&&u.length)if(Mt(u)){const{hue:t,hueSteps:e,lightSteps:o}=JSON.parse(u);n.colorPresets=new kt(t,e,o)}else n.colorPresets=u.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),At(n);const[b,f]=ct("color-dropdown",s);n.pickerToggle=lt(".picker-toggle",s),n.menuToggle=lt(".menu-toggle",s),n.colorPicker=b,n.colorMenu=f,n.inputs=[...ct("color-input",s)];const[m]=ct("color-controls",s);n.controls=m,n.controlKnobs=[...ct("knob",m)],n.visuals=[...ct("visual-control",m)],n.update(),Ht(n,!0),gt.set(r,"color-picker",n)}get value(){return this.input.value}set value(t){this.input.value=t}get includeNonColor(){return this.colorKeywords instanceof Array&&this.colorKeywords.some(t=>l.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 I(t).isValid}updateVisuals(){const{format:t,controlPositions:e,visuals:o}=this,[n,r,a]=o,{offsetWidth:s,offsetHeight:l}=n,c="hsl"===t?e.c1x/s:e.c2y/l,{r:h,g:u,b:g}=I.hslToRgb(c,1,.5),p="linear-gradient(rgb(255,255,255) 0%, rgb(255,255,255) 100%)",d=1-e.c3y/l,b=Math.round(100*d)/100;if("hsl"!==t){const t=new I({h:c,s:1,l:.5,a:d}).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%)";i(n,{background:`linear-gradient(rgba(0,0,0,0) 0%, rgba(0,0,0,${b}) 100%),\n linear-gradient(to right, rgba(255,255,255,${b}) 0%, ${t} 100%),\n ${p}`}),i(r,{background:e})}else{const t=Math.round(e.c2y/l*100),o=new I({r:255,g:0,b:0,a:d}).saturate(-t).toRgbString(),a=new I({r:255,g:255,b:0,a:d}).saturate(-t).toRgbString(),s=new I({r:0,g:255,b:0,a:d}).saturate(-t).toRgbString(),c=new I({r:0,g:255,b:255,a:d}).saturate(-t).toRgbString(),f=new I({r:0,g:0,b:255,a:d}).saturate(-t).toRgbString(),m=new I({r:255,g:0,b:255,a:d}).saturate(-t).toRgbString(),w=new I({r:255,g:0,b:0,a:d}).saturate(-t).toRgbString();i(n,{background:`${`linear-gradient(rgba(255,255,255,${b}) 0%, rgba(255,255,255,0) 50%),\n linear-gradient(rgba(0,0,0,0) 50%, rgba(0,0,0,${b}) 100%)`},${`linear-gradient(to right,\n ${o} 0%, ${a} 16.67%, ${s} 33.33%, ${c} 50%,\n ${f} 66.67%, ${m} 83.33%, ${w} 100%)`},${p}`});const{r:v,g:x,b:$}=new I({r:h,g:u,b:g}).greyscale().toRgb();i(r,{background:`linear-gradient(rgb(${h},${u},${g}) 0%, rgb(${v},${x},${$}) 100%)`})}i(a,{background:`linear-gradient(rgba(${h},${u},${g},1) 0%,rgba(${h},${u},${g},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);(ot&&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:a}=e,i=a&&ft(a,"color-options"),l=[...a.children],c=i&&s(a,"grid-template-columns").split(" ").length,h=l.indexOf(e),u=h>-1&&c&&l[h-c],g=h>-1&&c&&l[h+c];[j,W,Y].includes(o)&&t.preventDefault(),i?u&&o===W?bt(u):g&&o===j?bt(g):n&&o===z?bt(n):r&&o===G&&bt(r):n&&[z,W].includes(o)?bt(n):r&&[G,j].includes(o)&&bt(r),[X,Y].includes(o)&&this.menuClickHandler({target:e})}menuClickHandler(t){const e=this,{target:n}=t,{colorMenu:s}=e,i=(a(n,"data-value")||"").trim();if(!i.length)return;const c=lt("li.active",s);let h=l.includes(i)?"white":i;h="transparent"===i?"rgba(0,0,0,0)":i;const{r:u,g:g,b:p,a:d}=new I(h);o(e.color,{r:u,g:g,b:p,a:d}),e.update(),c&&(wt(c,"active"),vt(c,"aria-selected")),c!==n&&(mt(n,"active"),r(n,"aria-selected","true"),l.includes(i)&&(e.value=i),Nt(e))}pointerDown(t){const e=this,{type:o,target:n,touches:r,pageX:a,pageY:s}=t,{colorMenu:i,visuals:l,controlKnobs:c}=e,[h,u,g]=l,[p,d,b]=c,f=ft(n,"visual-control")?n:lt(".visual-control",n.parentElement),m=st(f),w="touchstart"===o?r[0].pageX:a,v="touchstart"===o?r[0].pageY:s,x=w-window.pageXOffset-m.left,$=v-window.pageYOffset-m.top;if(n===h||n===p?(e.dragElement=f,e.changeControl1(x,$)):n===u||n===d?(e.dragElement=f,e.changeControl2($)):n!==g&&n!==b||(e.dragElement=f,e.changeAlpha($)),i){const t=lt("li.active",i);t&&(wt(t,"active"),vt(t,"aria-selected"))}t.preventDefault()}pointerUp({target:e}){const o=this,{parent:n}=o,r=t(n),a=null!==lt(".color-picker,color-picker.open",r),s=r.getSelection();o.dragElement||s.toString().length||n.contains(e)||o.hide(a),o.dragElement=null}pointerMove(t){const e=this,{dragElement:o,visuals:n}=e,[r,a,s]=n,{type:i,touches:l,pageX:c,pageY:h}=t;if(!o)return;const u=st(o),g="touchmove"===i?l[0].pageX:c,p="touchmove"===i?l[0].pageY:h,d=g-window.pageXOffset-u.left,b=p-window.pageYOffset-u.top;o===r&&e.changeControl1(d,b),o===a&&e.changeControl2(b),o===s&&e.changeAlpha(b)}handleKnobs(e){const{target:o,code:n}=e,r=this;if(![W,j,z,G].includes(n))return;e.preventDefault();const{controlKnobs:a}=r,[s,i,l]=a,{activeElement:c}=t(s);if(a.find(t=>t===c)){let t=0,a=0;o===s?([z,G].includes(n)?r.controlPositions.c1x+=n===G?1:-1:[W,j].includes(n)&&(r.controlPositions.c1y+=n===j?1:-1),t=r.controlPositions.c1x,a=r.controlPositions.c1y,r.changeControl1(t,a)):o===i?(r.controlPositions.c2y+=[j,G].includes(n)?1:-1,a=r.controlPositions.c2y,r.changeControl2(a)):o===l&&(r.controlPositions.c3y+=[j,G].includes(n)?1:-1,a=r.controlPositions.c3y,r.changeAlpha(a)),r.handleScroll(e)}}changeHandler(){const e=this;let n;const{inputs:r,format:a,value:s,input:i,controlPositions:c,visuals:h}=e,{activeElement:u}=t(i),{offsetHeight:g}=h[0],[p,,,d]=r,[b,f,m,w]="rgb"===a?r.map(t=>parseFloat(t.value)/(t===d?100:1)):r.map(t=>parseFloat(t.value)/(t!==p?100:360)),v=e.includeNonColor&&l.includes(s),x=d?w:1-c.c3y/g;if(u===i||u&&r.includes(u)){n=u===i?v?"white":s:"hex"===a?p.value:"hsl"===a?{h:b,s:f,l:m,a:x}:"hwb"===a?{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 I(n);o(e.color,{r:t,g:r,b:l,a:c}),e.setControlPositions(),e.updateAppearance(),e.updateInputs(),e.updateControls(),e.updateVisuals(),u===i&&v&&(e.value=s)}}changeControl1(t,e){let[n,r]=[0,0];const{format:a,controlPositions:s,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 h="hsl"===a?n/c:s.c2y/l,u="hsl"===a?1-s.c2y/l:n/c,g=1-r/l,p=1-s.c3y/l,d="hsl"===a?{h:h,s:u,l:g,a:p}:{h:h,s:u,v:g,a:p},{r:b,g:f,b:m,a:w}=new I(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:a,offsetWidth:s}=r[0];let i=0;t>a?i=a:t>=0&&(i=t);const l="hsl"===e?n.c1x/s:i/a,c="hsl"===e?1-i/a:n.c1x/s,h=1-n.c1y/a,u=1-n.c3y/a,g="hsl"===e?{h:l,s:c,l:h,a:u}:{h:l,s:c,v:h,a:u},{r:p,g:d,b:b,a:f}=new I(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=st(e),{top:a,bottom:s}=r,{offsetHeight:i}=e,l=(c=e,t(c).documentElement).clientHeight;var c;const h=ft(o,"show")?o:n;if(!h)return;const{offsetHeight:u}=h,g=l-s,p=a,d=a+u+i>l,b=a-u<0;(ft(h,"bottom")||!b)&&g<p&&d?(wt(h,"bottom"),mt(h,"top")):(wt(h,"top"),mt(h,"bottom"))}setControlPositions(){const{format:t,visuals:e,color:o,hsl:n,hsv:r}=this,{offsetHeight:a,offsetWidth:s}=e[0],i=o.a,l=n.h,c="hsl"!==t?r.s:n.s,h="hsl"!==t?r.v:n.l;this.controlPositions.c1x="hsl"!==t?c*s:l*s,this.controlPositions.c1y=(1-h)*a,this.controlPositions.c2y="hsl"!==t?l*a:(1-c)*a,this.controlPositions.c3y=(1-i)*a}updateAppearance(){const t=this,{componentLabels:e,colorLabels:o,color:n,parent:a,hsl:s,hsv:l,hex:c,format:h,controlKnobs:u}=t,{appearanceLabel:g,hexLabel:p,valueLabel:d}=e,{r:b,g:f,b:m}=n.toRgb(),[w,v,x]=u,$=Math.round(360*s.h),k=n.a,y="hsl"===h?s.s:l.s,M=Math.round(100*y),S=Math.round(100*s.l),A=100*l.v;let H;if(100===S&&0===M)H=o.white;else if(0===S)H=o.black;else if(0===M)H=o.grey;else if($<15||$>=345)H=o.red;else if($>=15&&$<45)H=A>80&&M>80?o.orange:o.brown;else if($>=45&&$<75){const t=$>=54&&$<75&&A<80;H=$>46&&$<54&&A<80&&M>90?o.gold:o.yellow,H=t?o.olive:H}else $>=75&&$<155?H=A<68?o.green:o.lime:$>=155&&$<175?H=o.teal:$>=175&&$<195?H=o.cyan:$>=195&&$<255?H=o.blue:$>=255&&$<270?H=o.violet:$>=270&&$<295?H=o.magenta:$>=295&&$<345&&(H=o.pink);let P=`${p} ${c.split("").join(" ")}`;if("hsl"===h)P=`HSL: ${$}°, ${M}%, ${S}%`,r(w,"aria-description",`${d}: ${P}. ${g}: ${H}.`),r(w,"aria-valuetext",`${$}° & ${S}%`),r(w,"aria-valuenow",""+$),r(v,"aria-valuetext",M+"%"),r(v,"aria-valuenow",""+M);else if("hwb"===h){const{hwb:e}=t,o=Math.round(100*e.w),n=Math.round(100*e.b);P=`HWB: ${$}°, ${o}%, ${n}%`,r(w,"aria-description",`${d}: ${P}. ${g}: ${H}.`),r(w,"aria-valuetext",`${o}% & ${n}%`),r(w,"aria-valuenow",""+o),r(v,"aria-valuetext",$+"%"),r(v,"aria-valuenow",""+$)}else P="rgb"===h?`RGB: ${b}, ${f}, ${m}`:P,r(v,"aria-description",`${d}: ${P}. ${g}: ${H}.`),r(w,"aria-valuetext",`${S}% & ${M}%`),r(w,"aria-valuenow",""+S),r(v,"aria-valuetext",$+"°"),r(v,"aria-valuenow",""+$);const N=Math.round(100*k);r(x,"aria-valuetext",N+"%"),r(x,"aria-valuenow",""+N);const E=n.toString();i(t.input,{backgroundColor:E}),t.isDark?(ft(a,"txt-light")&&wt(a,"txt-light"),ft(a,"txt-dark")||mt(a,"txt-dark")):(ft(a,"txt-dark")&&wt(a,"txt-dark"),ft(a,"txt-light")||mt(a,"txt-light"))}updateControls(){const{controlKnobs:t,controlPositions:e}=this,[o,n,r]=t;i(o,{transform:`translate3d(${e.c1x-4}px,${e.c1y-4}px,0)`}),i(n,{transform:`translate3d(0,${e.c2y-4}px,0)`}),i(r,{transform:`translate3d(0,${e.c3y-4}px,0)`})}updateInputs(t){const e=this,{value:o,format:n,inputs:r,color:a,hsl:s}=e,[i,l,c,h]=r,u=Math.round(100*a.a),g=Math.round(360*s.h);let p;if("hex"===n)p=e.color.toHexString(!0),i.value=e.hex;else if("hsl"===n){const t=Math.round(100*s.l),o=Math.round(100*s.s);p=e.color.toHslString(),i.value=""+g,l.value=""+o,c.value=""+t,h.value=""+u}else if("hwb"===n){const{w:t,b:o}=e.hwb,n=Math.round(100*t),r=Math.round(100*o);p=e.color.toHwbString(),i.value=""+g,l.value=""+n,c.value=""+r,h.value=""+u}else if("rgb"===n){const{r:t,g:o,b:n}=e.rgb;p=e.color.toRgbString(),i.value=""+t,l.value=""+o,c.value=""+n,h.value=""+u}e.value=""+p,t||p===o||Nt(e)}keyToggle(e){const o=this,{menuToggle:n}=o,{activeElement:r}=t(n),{code:a}=e;[X,Y].includes(a)&&(n&&r===n||!r)&&(e.preventDefault(),r?o.toggleMenu():o.togglePicker(e))}togglePicker(t){t.preventDefault();const e=this,{colorPicker:o}=e;e.isOpen&&ft(o,"show")?e.hide(!0):Lt(e,o)}showPicker(){const t=this,{colorPicker:e}=t;ft(e,"show")||Lt(t,e)}toggleMenu(){const t=this,{colorMenu:e}=t;t.isOpen&&ft(e,"show")?t.hide(!0):Lt(t,e)}show(){const t=this,{menuToggle:e}=t;t.isOpen||(Pt(t,!0),t.updateDropdownPosition(),t.isOpen=!0,r(t.input,"tabindex","0"),e&&r(e,"tabindex","0"))}hide(t){const e=this;if(e.isOpen){const{pickerToggle:o,menuToggle:n,colorPicker:a,colorMenu:i,parent:l,input:c}=e,h=ft(a,"show"),u=h?a:i,g=h?o:n,p=u&&function(t){const e=s(t,"transitionProperty"),o=s(t,"transitionDuration"),n=o.includes("ms")?1:1e3,r=e&&"none"!==e?parseFloat(o)*n:0;return Number.isNaN(r)?0:r}(u);u&&(wt(u,"show"),r(g,"aria-expanded","false"),setTimeout(()=>{Et(u),lt(".show",l)||(wt(l,"open"),Pt(e),e.isOpen=!1)},p)),e.isValid||(e.value=e.color.toString()),t||bt(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()}),i(t,{backgroundColor:""}),["txt-light","txt-dark"].forEach(t=>wt(e,t)),gt.remove(t,"color-picker")}}o(Ct,{Color:I,Version:"0.0.1alpha2",getInstance:t=>{return e=t,o="color-picker",gt.get(e,o);var e,o},init:t=>new Ct(t),selector:'[data-function="color-picker"]'});let Tt=0;class Rt 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=(s="input",((i=this)&&e.some(t=>i instanceof t)?i:t()).getElementsByTagName(s));var s,i;if(!o.length){const t=a(this,"data-label"),e=a(this,"data-value")||"#069",o=a(this,"data-format")||"rgb",s=n({tagName:"input",type:"text",className:"color-preview btn-appearance"});let i=a(this,"data-id");i||(i=`color-picker-${o}-${Tt}`,Tt+=1);const l=n({tagName:"label",innerText:t||"Color Picker"});this.before(l),r(l,"for",i),r(s,"id",i),r(s,"name",i),r(s,"autocomplete","off"),r(s,"spellcheck","false"),r(s,"value",e),this.append(s)}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}}o(Rt,{Color:I,ColorPicker:Ct,Version:"0.0.1alpha2"}),customElements.define("color-picker",Rt);export default Rt;