| 
					
				 | 
			
			
				@@ -1,11 +1,66 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import React, { lazy } from "react"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import React from "react"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { Popover } from "./Popover"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const TwitterPicker = lazy(() => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  import( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /* webpackPrefetch: true */ "react-color/lib/components/twitter/Twitter" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import "./ColorPicker.css"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// This is a narrow reimplementation of the awesome react-color Twitter component 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// https://github.com/casesandberg/react-color/blob/master/src/components/twitter/Twitter.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const Picker = function({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  colors, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  color, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  onChange 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  colors: string[]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  color: string | undefined; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  onChange: (color: string) => void; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const [innerValue, setInnerValue] = React.useState(color); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  React.useEffect(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    setInnerValue(color); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, [color]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <div className="color-picker"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div className="color-picker-triangle-shadow"></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div className="color-picker-triangle"></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div className="color-picker-content"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {colors.map(color => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            className="color-picker-swatch" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              onChange(color); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            title={color} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tabIndex={0} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            style={{ backgroundColor: color }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {color === "transparent" ? ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div className="color-picker-transparent"></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) : ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              undefined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div className="color-picker-hash">#</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div style={{ position: "relative" }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            spellCheck={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            className="color-picker-input" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onChange={e => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              const value = e.target.value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (value.match(/^([0-9a-f]{3}|[0-9a-f]{6}|transparent)$/)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                onChange(value === "transparent" ? "transparent" : "#" + value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              setInnerValue(value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            value={(innerValue || "").replace(/^#/, "")} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div style={{ clear: "both" }}></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export function ColorPicker({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   type, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -27,12 +82,11 @@ export function ColorPicker({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <React.Suspense fallback=""> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {isActive ? ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <Popover onCloseRequest={() => setActive(false)}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <TwitterPicker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <Picker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               colors={colors[type]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              width="205px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               color={color || undefined} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               onChange={changedColor => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                onChange(changedColor.hex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                onChange(changedColor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </Popover> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -74,7 +128,7 @@ const colors = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     "#FF9DA7", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     "#9C755F", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     "#BAB0AB", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    "#FFFFFF" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "transparent" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   elementStroke: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     "#324E6B", 
			 |