packages feed

palette 0.1.0.5 → 0.3

raw patch · 19 files changed

+351/−13 lines, 19 filesdep +MonadRandomdep ~containers

Dependencies added: MonadRandom

Dependency ranges changed: containers

Files

CHANGES.markdown view
@@ -1,3 +1,8 @@+0.1.0.5-r1 (23 Sep 2017)+------------------------++- allow base-4.10 for GHC-8.2+ 0.1.0.5 (22 August 2017) ------------------------ 
+ diagrams/src_Data_Colour_Palette_RandomColor_blue.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(79,33,207)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(0,12,125)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(16,34,232)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(50,151,161)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(71,138,214)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(52,109,158)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(0,63,252)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(60,140,214)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(22,43,240)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(0,43,235)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_cielab.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(139,253,131)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(55,206,182)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(333,79,68)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-140,68,-15)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(83,-85,99)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-286,29,139)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(313,185,201)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(172,195,233)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(254,103,-76)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-4649,300,424)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_dark.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(98,9,145)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(190,19,242)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(161,5,67)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(189,144,9)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(219,11,132)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(37,12,135)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(12,1,107)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(199,12,133)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(214,15,154)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(82,133,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_green.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(127,184,29)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(203,222,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(15,209,63)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(164,201,62)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(69,209,69)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(161,204,67)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(0,110,104)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(74,227,64)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(30,153,14)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(7,204,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_labpalette.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="80.7692" stroke-opacity="1" viewBox="0 0 350 81" font-size="1" width="350.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(148,-120,-256)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 336.5385,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-256,148,-105)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 269.2308,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-14,29,143)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 201.9231,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(210,184,181)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 134.6154,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-256,98,148)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 67.3077,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_light.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(215,156,247)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(238,189,252)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(255,158,197)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(242,216,136)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(252,167,217)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(137,115,222)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(190,184,245)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(250,167,221)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(237,123,203)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(211,250,147)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_monochrome.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(38,38,38)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(64,64,64)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(61,61,61)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(117,117,117)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(87,87,87)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(181,181,181)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(176,176,176)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(89,89,89)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(3,3,3)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(125,125,125)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_orange.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(199,104,32)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(178,98,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(186,79,13)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(214,165,66)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(196,152,65)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(194,122,64)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(189,142,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(191,99,54)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(240,185,22)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(232,101,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_palette.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="80.7692" stroke-opacity="1" viewBox="0 0 350 81" font-size="1" width="350.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(71,43,141)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 336.5385,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(192,109,62)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 269.2308,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(151,170,54)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 201.9231,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(109,232,77)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 134.6154,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(121,77,232)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 67.3077,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_pink.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(217,35,199)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(201,0,198)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(206,15,209)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(207,67,217)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(180,72,219)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(195,72,217)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(222,0,159)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(232,65,199)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(196,20,219)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(235,0,149)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_purple.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(170,36,227)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(56,0,140)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(57,11,156)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(160,72,232)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(97,61,184)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(117,63,191)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(80,0,166)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(116,57,204)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(69,11,122)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(90,0,207)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_random.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(9,2,13)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(79,19,97)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(64,47,54)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(99,96,85)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(64,14,43)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(3,3,5)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(32,26,87)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(178,55,135)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(89,20,68)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(46,56,29)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_red.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(184,29,73)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(232,0,39)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(247,17,36)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(237,74,144)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(255,84,130)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(252,86,83)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(184,0,15)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(184,51,95)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(224,20,98)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(181,36,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_yellow.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(201,207,33)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(212,187,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(247,228,17)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(235,235,73)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(224,224,74)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(252,250,83)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(227,200,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(214,204,60)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(226,230,21)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(235,196,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
palette.cabal view
@@ -1,8 +1,8 @@ Name:                palette-Version:             0.1.0.5+Version:             0.3 Synopsis:            Utilities for choosing and creating color schemes. Description:         Sets of predefined colors and tools for choosing and-                     creating color schemes.+                     creating color schemes. Random colors.  Homepage:            http://projects.haskell.org/diagrams License:             BSD3@@ -15,7 +15,7 @@ Cabal-version:       >=1.18 Extra-source-files:  README.markdown, CHANGES.markdown, diagrams/*.svg Extra-doc-files:     diagrams/*.svg-Tested-with:         GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1+Tested-with:         GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1, GHC == 8.2.1 Source-repository head   type:     git   location: http://github.com/diagrams/palette.git@@ -26,10 +26,11 @@                        Data.Colour.Palette.Harmony                        Data.Colour.Palette.BrewerSet                        Data.Colour.Palette.Types+                       Data.Colour.Palette.RandomColor -  Build-depends:       base >= 4.2 && < 4.10,+  Build-depends:       base >= 4.2 && < 4.11,                        array >= 0.4 && < 0.6,                        colour >= 2.3 && <3.0,-                       containers >= 0.5 && < 0.6.0.0-+                       containers >= 0.5 && < 0.6,+                       MonadRandom >= 0.5 && < 0.6   hs-source-dirs:      src
src/Data/Colour/Palette/Harmony.hs view
@@ -29,14 +29,15 @@          , analogic          , accentAnalogic          , bwg+         , colorRamp         ) where  import           Data.Colour-import           Data.Colour.SRGB         (RGB(..), toSRGB, sRGB)-import           Data.Colour.RGBSpace.HSV import           Data.Colour.Names import           Data.Colour.Palette.Types+import           Data.Colour.RGBSpace.HSV+import           Data.Colour.SRGB          (RGB (..), sRGB, toSRGB)  -- > import Data.Colour.Palette.Harmony -- > import Data.Colour.SRGB (sRGB24read)@@ -48,7 +49,7 @@ -- >     a = 1 / (fromIntegral n) :: Turn -- >     w = wedge 1 (0 :: Turn) a # lw 0 -- >     r = 1/4 - 1/(2*(fromIntegral n))--- > base = sRGB24read "#bd4932"+-- > base = sRGB24read "#95a78d" -- > mono = wheel $ monochrome base -- > comp = wheel $ complement base -- > tria = wheel $ triad base@@ -107,17 +108,17 @@ -- | Tints a color by adding blending t * white + (1 - t) color. --   t should be between 0 and 1. tint :: Double -> Kolor -> Kolor-tint t c = blend t white c+tint t = blend t white  -- | Alter the tone of a color by adding blending t * gray + (1 - t) color. --   t should be between 0 and 1. tone :: Double -> Kolor -> Kolor-tone t c = blend t gray c+tone t = blend t gray  -- | Shades a color by adding blending s * black + (1 - t) color. --   t should be between 0 and 1. shade :: Double -> Kolor -> Kolor-shade t c = blend t black c+shade t = blend t black  -- | Create a monochromatic set of 5 colors based in the input color. -- <<diagrams/src_Data_Colour_Palette_Harmony_mono.svg#diagram=mono&width=200>>@@ -160,3 +161,15 @@ -- <<diagrams/src_Data_Colour_Palette_Harmony_bw.svg#diagram=bw&width=200>> bwg :: Kolor -> [Kolor] bwg c = [c, tint 0.8 c, tone 0.8 c, shade 0.9 c]++-- | Interpolate n colors from a list of colors using linear piecewise+-- interpolation to add additional colors to a palette.+colorRamp :: Int -> [Kolor] -> [Kolor]+colorRamp n xs0 = if n <= length xs0 then take n xs0 else take n (go 0 xs0)+  where+    di = fromIntegral (length xs0 - 1) / fromIntegral (n - 1)+    go _ [x] = [x]+    go i xs'@(x1 : xs@(x2 : _))+        | i > 1 = go (i - 1) xs+        | otherwise = blend i x2 x1 : go (i + di) xs'+    go _ _ = []
+ src/Data/Colour/Palette/RandomColor.hs view
@@ -0,0 +1,246 @@+{-# LANGUAGE LambdaCase #-}+-----------------------------------------------------------------------------+-- |+-- Module      :  Palette.RandomColor+-- Copyright   :  (c) 2018 Jeffrey Rosenbluth+-- License     :  BSD-style (see LICENSE)+-- Maintainer  :  jeffrey.rosenbluth@gmail.com+--+-- Functions to create random colors.+-- Includes a port of [David Merfield's](https://github.com/davidmerfield/randomColor)+-- randomColor.+-----------------------------------------------------------------------------++module Data.Colour.Palette.RandomColor+  ( -- * A Library for generating random colors.++    -- ** Choose a random color from CIELAB colorspace.+    randomCIELab+  , randomCIELabPalette++    -- ** Choose a random color using David Merfield's algorithm+  , randomColor+  , randomPalette+  , randomHarmony++  -- ** Choose a random HSV component++  , randomHue+  , randomSaturation+  , randomBrightness++  ) where++import           Control.Monad.Random+import           Data.Colour+import           Data.Colour.CIE+import           Data.Colour.CIE.Illuminant+import           Data.Colour.Palette.Harmony+import           Data.Colour.Palette.Types+import           Data.Colour.RGBSpace.HSV+import           Data.Colour.SRGB            (RGB (..), sRGB)+import           Data.List                   (find)+import           Data.Maybe                  (fromMaybe)++getColorDefinition :: Hue -> ColorDefinition+getColorDefinition = \case+  HueMonochrome -> ColorDefinition Nothing [(0,0),(100, 0)]+  HueRed        -> ColorDefinition (Just (-26,18))+                     [ (20,100), (30,92), (40,89), (50,85), (60,78), (70,70)+                     , (80,60), (90,55), (100,50)+                     ]+  HueOrange     -> ColorDefinition (Just (19,46))+                     [ (20,100), (30,93), (40,88), (50,86), (60,85), (70,70)+                     , (100,70)+                     ]+  HueYellow     -> ColorDefinition (Just (47,62))+                     [ (25,100), (40,94), (50,89), (60,86), (70,84), (80,82)+                     , (90,80), (100,75)+                     ]+  HueGreen      -> ColorDefinition (Just (63,178))+                     [ (30,100), (40,90), (50,85), (60,81), (70,74), (80,64)+                     , (90,50), (100,40)+                     ]+  HueBlue       -> ColorDefinition (Just (179,257))+                     [ (20,100), (30,86), (40,80), (50,74), (60,60), (70,52)+                     , (80,44), (90,39), (100,35)+                     ]+  HuePurple     -> ColorDefinition (Just (258,282))+                     [ (20,100), (30,87), (40,79), (50,70), (60,65), (70,59)+                     , (80,52), (90,45), (100,42)+                     ]+  HuePink       -> ColorDefinition (Just (283,334))+                     [ (20,100), (30,90), (40,86), (60,84), (80,80), (90,75)+                     , (100,73)+                     ]+  HueRandom     -> ColorDefinition (Just (0, 359)) []++getHue :: Int -> Hue+getHue n+  | n' == 0   = HueMonochrome+  | n' >= 283 = HuePink+  | n' >= 258 = HuePurple+  | n' >= 179 = HueBlue+  | n' >= 63  = HueGreen+  | n' >= 47  = HueYellow+  | n' >= 19  = HueOrange+  | n' >= -26 = HueRed+  where+    n' = if n >= 334 && n <= 360 then n - 360 else n++-- | return a random hue in the range [lo, hi] as a 'Double'.+--   lo should be >= 0 and hi < 360.+--   Instead of storing red as two seperate ranges we create a single+--   contiguous range using negative numbers.+randomHue :: MonadRandom m => Hue -> m Int+randomHue h = do+  hue <- getRandomR (lo, hi)+  return $ if hue < 0 then hue + 360 else hue+  where+    hr = hueRange . getColorDefinition $ h+    (lo, hi) = fromMaybe (0, 0) hr++saturationRange :: Hue -> (Int, Int)+saturationRange hue = result+  where+    lbs = lowerBounds $ getColorDefinition hue+    result = case lbs of+      [] -> error "Can\'t obtain saturationRange from an empty lowerBounds"+      xs -> (fst . head $ lbs, fst . last $ lbs)++randomSaturation :: MonadRandom m => Hue -> Luminosity -> m Int+randomSaturation HueMonochrome _         = return 0+randomSaturation _             LumRandom = getRandomR (0, 100)+randomSaturation hue           lum       = case lum of+  LumBright -> getRandomR (55, hi)+  LumDark   -> getRandomR (hi - 10, hi)+  LumLight  -> getRandomR (lo, 55)+  where+    (lo, hi) = saturationRange hue++minBrightness :: Hue -> Int -> Int+minBrightness hue saturationValue = round $ fromMaybe 0 result+  where+    lbs = lowerBounds $ getColorDefinition hue+    tup a  = zip (0:a) a+    inRange j (k, n) = j >= k && j <= n+    result = do+      (s1, s2) <- find (inRange saturationValue) (tup $ fst <$> lbs)+      v1       <- lookup s1 lbs+      v2       <- lookup s2 lbs+      let m = fromIntegral (v2 - v1) / fromIntegral (s2 -s1)+          b = fromIntegral v1 - m * fromIntegral s1+      return $ m * fromIntegral saturationValue + b++-- | Pick a random brightness value given a 'Hue', 'Luminosity' and saturation.+randomBrightness :: MonadRandom m => Hue -> Luminosity -> Int -> m Int+randomBrightness hue lum saturationValue = getRandomR (bMin, bMax)+  where+    b            = minBrightness hue saturationValue+    (bMin, bMax) = case lum of+      LumBright -> (b, 100)+      LumDark   -> (b, b + 20)+      LumLight  -> ((b + 100) `div` 2, 100)+      LumRandom -> (0, 100)++-- | Generate a random opaque color.+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_red.svg>>+--+-- > randomColor HueRed LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_orange.svg>>+--+-- > randomColor HueOrange LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_yellow.svg>>+--+-- > randomColor HueYellow LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_green.svg>>+--+-- > randomColor HueGreen LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_blue.svg>>+--+-- > randomColor HueBlue LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_purple.svg>>+--+-- > randomColor HuePurple LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_pink.svg>>+--+-- > randomColor HuePink LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_monochrome.svg>>+--+-- > randomColor HueMonochrome LumRandom+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_light.svg>>+--+-- > randomColor HueRandom LumLight+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_dark.svg>>+--+-- > randomColor HueRandom LumDark+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_random.svg>>+--+-- > randomColor HueRandom LumRandom+-- /Better to use 'randomCIELab' for truly random colors/.+randomColor :: MonadRandom m => Hue -> Luminosity -> m Kolor+randomColor hue lum = do+  hueValue <- randomHue hue+  let hue'  = getHue hueValue+  satValue <- randomSaturation hue' lum+  briValue <- randomBrightness hue' lum satValue+  let (RGB r g b) = hsv (fromIntegral hueValue)+                        (fromIntegral satValue / 100)+                        (fromIntegral briValue / 100)+  return $ sRGB r g b++-- | Return a random harmony based on a seed color.+randomHarmony :: MonadRandom m => Kolor -> m [Kolor]+randomHarmony c = do+  harmony <- uniform+             [ monochrome+             , complement+             , triad+             , tetrad+             , analogic+             , accentAnalogic+             ]+  return $ harmony c++-- | Generate a random color palette. First choose a random color then choose a+--   random harmony and apply it.+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_palette.svg>>+--+-- > randomPalette+randomPalette :: MonadRandom m => Hue -> Luminosity ->m [Kolor]+randomPalette hue lum = randomColor hue lum >>= randomHarmony++-- | Generate a random color from CIELAB (a perceptually uniform color space)+--   with a White point of 'd65'. Probably the best choice if you want a totally+--   random color.+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_cielab.svg>>+--+-- > randomCIELab+randomCIELab :: MonadRandom m => m Kolor+randomCIELab = do+  l <- getRandomR (0, 100)+  a <- getRandomR (-100, 100)+  b <- getRandomR (-100, 100)+  return $ cieLAB d65 l a b++-- | Generate a random color palette using 'randomCIELab'. First choose a+--   random color then choose a random harmony and apply it.+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_labpalette.svg>>+--+-- > randomCIELabPalette+randomCIELabPalette :: MonadRandom m => m [Kolor]+randomCIELabPalette = randomCIELab >>= randomHarmony
src/Data/Colour/Palette/Types.hs view
@@ -12,8 +12,39 @@ module Data.Colour.Palette.Types        (          Kolor+       , Hue(..)+       , Luminosity(..)+       , ColorDefinition(..)+        ) where -import Data.Colour+import           Data.Colour +-- | A convenient alias. type Kolor = Colour Double++-- | Used to select the hue range in 'randomColor'.+data Hue+  = HueMonochrome+  | HueRed+  | HueOrange+  | HueYellow+  | HueGreen+  | HueBlue+  | HuePurple+  | HuePink+  | HueRandom+  deriving (Show, Eq)++-- | Used to select the luminosity range in 'randomColor'.+data Luminosity+  = LumBright+  | LumLight+  | LumDark+  | LumRandom+  deriving (Show, Eq)++data ColorDefinition = ColorDefinition+  { hueRange    :: Maybe (Int, Int)+  , lowerBounds :: [(Int, Int)]+  }