Closes #103 replace text by icons for action

This commit is contained in:
Jeremie Pardou-Piquemal 2020-07-19 21:09:12 +02:00 committed by Jérémie Pardou-Piquemal
parent 50fde24990
commit 93f7423948
15 changed files with 706 additions and 64 deletions

View file

@ -55,7 +55,7 @@ describe("Item interactions", () => {
.parents(".item")
.click(500, 500, { force: true });
cy.contains("Hide").click();
cy.get('[title = "Reveal/Hide"]').click();
// Check after
cy.get("img[src='/games/JC.jpg']").should("have.css", "opacity", "0");
@ -75,7 +75,7 @@ describe("Item interactions", () => {
.parents(".item")
.click(500, 500, { force: true });
cy.contains("Tap").click();
cy.get('[title = "Tap/Untap"]').click();
// Check after
cy.get("img[src='/games/JC.jpg']")

View file

@ -13,6 +13,16 @@ import { getDefaultActionsFromItem } from "./Item/allItems";
import { useTranslation } from "react-i18next";
import { nanoid } from "nanoid";
import deleteIcon from "../../../images/delete.svg";
import stackIcon from "../../../images/stack.svg";
import duplicateIcon from "../../../images/duplicate.svg";
import seeIcon from "../../../images/see.svg";
import flipIcon from "../../../images/flip.svg";
import lockIcon from "../../../images/lock.svg";
import rotateIcon from "../../../images/rotate.svg";
import shuffleIcon from "../../../images/shuffle.svg";
import tapIcon from "../../../images/tap.svg";
const getActionsFromItem = (item) => {
const defaultActions = getDefaultActionsFromItem(item);
const { actions = [] } = item;
@ -233,44 +243,53 @@ export const useItemActions = () => {
action: toggleFlip,
label: t("Reveal") + "/" + t("Hide"),
shortcut: "f",
icon: flipIcon,
},
flipSelf: {
action: toggleFlipSelf,
label: t("Reveal for me"),
shortcut: "o",
icon: seeIcon,
},
tap: {
action: toggleTap,
label: t("Tap") + "/" + t("Untap"),
shortcut: "t",
icon: tapIcon,
},
rotate90: {
action: rotate.bind(null, 90),
label: t("Rotate 90"),
icon: rotateIcon,
},
rotate60: {
action: rotate.bind(null, 60),
label: t("Rotate 60"),
icon: rotateIcon,
},
rotate45: {
action: rotate.bind(null, 45),
label: t("Rotate 45"),
icon: rotateIcon,
},
rotate30: {
action: rotate.bind(null, 30),
label: t("Rotate 30"),
icon: rotateIcon,
},
stack: {
action: align,
label: t("Stack"),
shortcut: "",
multiple: true,
icon: stackIcon,
},
shuffle: {
action: shuffleSelectedItems,
label: t("Shuffle"),
shortcut: "",
multiple: true,
icon: shuffleIcon,
},
clone: {
action: cloneItem,
@ -278,11 +297,13 @@ export const useItemActions = () => {
shortcut: " ",
disableDblclick: true,
edit: true,
icon: duplicateIcon,
},
lock: {
action: toggleLock,
label: t("Unlock") + "/" + t("Lock"),
disableDblclick: true,
icon: lockIcon,
},
remove: {
action: removeItems,
@ -290,6 +311,7 @@ export const useItemActions = () => {
shortcut: "r",
edit: true,
disableDblclick: true,
icon: deleteIcon,
},
}),
[

View file

@ -25,6 +25,23 @@ const SelectedPane = styled.div.attrs(() => ({ className: "card" }))`
overflow-y: scroll;
`;
const ActionPane = styled.div`
position: fixed;
left: 0em;
top: 5px;
display: flex;
background-color: transparent;
justify-content: center;
width: 50%;
z-index: 10001;
margin: 0 25%;
& button{
margin 0 6px;
padding: 0.4em;
height: 40px
}
`;
const CardContent = styled.div.attrs(() => ({ className: "content" }))`
display: flex;
flex-direction: column;
@ -119,59 +136,51 @@ export const SelectedItems = ({ edit }) => {
});
};*/
if (selectedItems.length === 1 && edit) {
return (
<SelectedPane>
{selectedItems.map((itemId) => (
<div className="card" key={itemId}>
<header>
<h3>{t("Edit item")}</h3>
</header>
<CardContent>
<ItemFormFactory
itemId={itemId}
onSubmitHandler={onSubmitHandler}
/>
{availableActions.map((action) => {
const { label, action: handler, multiple } = actionMap[action];
if (multiple && selectedItems.length < 2) return null;
return (
<button key={action} onClick={handler}>
{label}
</button>
);
})}
</CardContent>
</div>
))}
</SelectedPane>
);
}
const showEditPane = selectedItems.length === 1 && edit;
return (
<SelectedPane>
<div className="card">
<header>
<h3>{t("items selected", { count: selectedItems.length })}</h3>
</header>
<CardContent>
{availableActions.map((action) => {
const {
label,
action: handler,
multiple,
edit: onlyEdit,
} = actionMap[action];
if (multiple && selectedItems.length < 2) return null;
if (onlyEdit && !edit) return null;
return (
<button key={action} onClick={handler}>
{label}
</button>
);
})}
</CardContent>
</div>
</SelectedPane>
<>
{showEditPane && (
<SelectedPane>
{selectedItems.map((itemId) => (
<div className="card" key={itemId}>
<header>
<h3>{t("Edit item")}</h3>
</header>
<CardContent>
<ItemFormFactory
itemId={itemId}
onSubmitHandler={onSubmitHandler}
/>
</CardContent>
</div>
))}
</SelectedPane>
)}
<ActionPane>
<h3>#{selectedItems.length}</h3>
{availableActions.map((action) => {
const {
label,
action: handler,
multiple,
edit: onlyEdit,
icon,
} = actionMap[action];
if (multiple && selectedItems.length < 2) return null;
if (onlyEdit && !edit) return null;
return (
<button key={action} onClick={handler} title={label}>
<img
src={icon}
style={{ width: "25px", height: "24px" }}
alt={label}
/>
</button>
);
})}
</ActionPane>
</>
);
};

View file

@ -37,8 +37,8 @@
"Layer": "Layer",
"Color": "Color",
"Radius": "Radius",
"items selected": "One item selected",
"items selected_plural": "{{count}} items selected",
"items": "One item",
"items_plural": "{{count}} items",
"Rectangle": "Rectangle",
"Image": "Image",
"Round": "Round",

View file

@ -37,8 +37,8 @@
"Layer": "Couche",
"Color": "Couleur",
"Radius": "Rayon",
"items selected": "Un élément sélectionné",
"items selected_plural": "{{count}} éléments sélectionnés",
"items": "Un élément",
"items_plural": "{{count}} éléments",
"Rectangle": "Rectangle",
"Image": "Image",
"Round": "Rond",

82
src/images/delete.svg Normal file
View file

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 22 28"
x="0px"
y="0px"
version="1.1"
id="svg12"
sodipodi:docname="delete.svg"
width="22"
height="28"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata18">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Dashboard, ui, basic, essential, Sort</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs16" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="865"
inkscape:window-height="480"
id="namedview14"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="5.9"
inkscape:cx="11"
inkscape:cy="30.338983"
inkscape:window-x="335"
inkscape:window-y="77"
inkscape:window-maximized="0"
inkscape:current-layer="svg12" />
<title
id="title2">Dashboard, ui, basic, essential, Sort</title>
<g
data-name="Layer 5"
id="g6"
transform="translate(-5,-2)">
<path
d="M 20,25 V 14 a 1,1 0 0 1 2,0 v 11 a 1,1 0 0 1 -2,0 z m -9,1 a 1,1 0 0 0 1,-1 V 14 a 1,1 0 0 0 -2,0 v 11 a 1,1 0 0 0 1,1 z M 27,8 v 2 a 1,1 0 0 1 -1,1 v 16 a 3,3 0 0 1 -3,3 H 9 A 3,3 0 0 1 6,27 V 11 A 1,1 0 0 1 5,10 V 8 A 3,3 0 0 1 8,5 h 4 a 3,3 0 0 1 3,-3 h 2 a 3,3 0 0 1 3,3 h 4 a 3,3 0 0 1 3,3 z M 14,5 h 4 A 1,1 0 0 0 17,4 h -2 a 1,1 0 0 0 -1,1 z m 10,6 H 8 v 16 a 1,1 0 0 0 1,1 h 14 a 1,1 0 0 0 1,-1 z M 25,8 A 1,1 0 0 0 24,7 H 8 A 1,1 0 0 0 7,8 v 1 h 18 z m -9,18 a 1,1 0 0 0 1,-1 V 14 a 1,1 0 0 0 -2,0 v 11 a 1,1 0 0 0 1,1 z"
id="path4"
inkscape:connector-curvature="0" />
</g>
<text
x="-5"
y="45"
font-size="5px"
font-weight="bold"
id="text8"
style="font-weight:bold;font-size:5px;font-family:'Helvetica Neue', Helvetica, Arial-Unicode, Arial, Sans-serif;fill:#000000">Created by Caesar Rizky Kurniawan</text>
<text
x="-5"
y="50"
font-size="5px"
font-weight="bold"
id="text10"
style="font-weight:bold;font-size:5px;font-family:'Helvetica Neue', Helvetica, Arial-Unicode, Arial, Sans-serif;fill:#000000">from the Noun Project</text>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

51
src/images/duplicate.svg Normal file
View file

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
viewBox="0 0 67.198997 67.190002"
enable-background="new 0 0 100 100"
xml:space="preserve"
id="svg8"
sodipodi:docname="duplicate.svg"
width="67.198997"
height="67.190002"
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
id="metadata14"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs12" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="865"
inkscape:window-height="480"
id="namedview10"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="1.888"
inkscape:cx="33.599"
inkscape:cy="21.095"
inkscape:window-x="1985"
inkscape:window-y="294"
inkscape:window-maximized="0"
inkscape:current-layer="svg8" /><path
d="M 55.198,50.39 H 28.8 c -6.627,0 -12,-5.373 -12,-12 V 12 c 0,-6.627 5.372,-12 12,-12 h 26.399 c 6.628,0 12,5.373 12,12 v 26.389 c 0,6.628 -5.373,12.001 -12.001,12.001 z M 60.03,12.031 c 0,-2.651 -2.149,-4.8 -4.8,-4.8 H 28.821 c -2.651,0 -4.8,2.149 -4.8,4.8 v 26.402 c 0,2.651 2.149,4.8 4.8,4.8 H 55.23 c 2.651,0 4.8,-2.149 4.8,-4.8 z m -7.22,16.813 h -7.246 v 7.193 c 0,1.312 -1.064,2.377 -2.377,2.377 h -2.4 c -1.313,0 -2.377,-1.064 -2.377,-2.377 v -7.193 h -7.246 c -1.313,0 -2.376,-1.064 -2.376,-2.377 v -2.454 c 0,-1.313 1.064,-2.377 2.376,-2.377 H 38.41 V 14.39 c 0,-1.313 1.064,-2.377 2.377,-2.377 h 2.4 c 1.313,0 2.377,1.064 2.377,2.377 v 7.246 h 7.246 c 1.313,0 2.377,1.064 2.377,2.377 v 2.454 c 0,1.313 -1.064,2.377 -2.377,2.377 z M 12.021,60.033 h 21.556 c 2.624,0 4.749,-2.108 4.792,-4.722 h 7.217 C 45.519,61.881 40.184,67.19 33.599,67.19 H 12 c -6.627,0 -12,-5.373 -12,-12 V 33.601 C 0,26.976 5.369,21.606 11.993,21.602 v 7.287 c -2.637,0.016 -4.771,2.156 -4.771,4.797 v 21.548 c -0.001,2.65 2.148,4.799 4.799,4.799 z"
id="path2"
inkscape:connector-curvature="0"
style="clip-rule:evenodd;fill-rule:evenodd" /></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -1,7 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg:svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="20"
height="14"
viewBox="0 0 20 14"
version="1.1"
id="svg6"
sodipodi:docname="eye.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<svg:metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>
eye
</title>
<path d="M10 7.5a2.5 2.5 0 1 0 2.5 2.5A2.5 2.5 0 0 0 10 7.5zm0 7a4.5 4.5 0 1 1 4.5-4.5 4.5 4.5 0 0 1-4.5 4.5zM10 3C3 3 0 10 0 10s3 7 10 7 10-7 10-7-3-7-10-7z"/>
<script xmlns=""/></svg>
</dc:title>
</cc:Work>
</rdf:RDF>
</svg:metadata>
<svg:defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="865"
inkscape:window-height="480"
id="namedview8"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="11.8"
inkscape:cx="10"
inkscape:cy="7"
inkscape:window-x="575"
inkscape:window-y="192"
inkscape:window-maximized="0"
inkscape:current-layer="svg6" />
<svg:title
id="title2">
eye
</svg:title>
<svg:path
d="M 10,4.5 A 2.5,2.5 0 1 0 12.5,7 2.5,2.5 0 0 0 10,4.5 Z m 0,7 A 4.5,4.5 0 1 1 14.5,7 4.5,4.5 0 0 1 10,11.5 Z M 10,0 C 3,0 0,7 0,7 0,7 3,14 10,14 17,14 20,7 20,7 20,7 17,0 10,0 Z"
id="path4"
inkscape:connector-curvature="0" />
<script />
</svg:svg>

Before

Width:  |  Height:  |  Size: 339 B

After

Width:  |  Height:  |  Size: 1.8 KiB

57
src/images/flip.svg Normal file
View file

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
viewBox="0 0 28.342005 27.799999"
xml:space="preserve"
id="svg12"
sodipodi:docname="flip.svg"
width="28.342005"
height="27.799999"
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
id="metadata18"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs16" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="865"
inkscape:window-height="480"
id="namedview14"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="1.8541911"
inkscape:cx="7.562993"
inkscape:cy="-12.688818"
inkscape:window-x="0"
inkscape:window-y="48"
inkscape:window-maximized="0"
inkscape:current-layer="svg12" /><style
type="text/css"
id="style2">
.st0{fill:#010101;}
</style><g
id="g6"
transform="translate(-3.8579955,-4.1)"><path
class="st0"
d="m 32.2,7.9 v 20.2 c 0,2.1 -1.7,3.8 -3.8,3.8 h -13 c -2.1,0 -3.8,-1.7 -3.8,-3.8 v -3.3 l 2.8,0.6 V 28 c 0,0.6 0.5,1.1 1.1,1.1 h 12.8 c 0.6,0 1.1,-0.5 1.1,-1.1 V 8.1 C 29.4,7.5 28.9,7 28.3,7 H 15.5 c -0.6,0 -1.1,0.5 -1.1,1.1 v 7.5 l -2.8,-0.2 v -2.5 c -5.6,2.6 -4.3,3.9 -1.2,4.6 0.4,0.1 0.8,0.2 1.2,0.2 0.9,0.1 1.9,0.2 2.8,0.3 0.6,0.1 1.2,0.1 1.8,0.1 2,0.1 3.5,0.1 3.5,0.1 v -3.1 c 0,-0.5 0.6,-0.4 0.8,-0.2 l 5.8,4 2.3,1.6 c 0.2,0.2 0.2,0.5 0,0.8 l -2.3,1.6 -2.8,2 -2.9,2 c -0.1,0.1 -0.3,0.2 -0.4,0.2 -0.1,0 -0.4,0 -0.4,-0.3 V 24.3 C 18.3,24 16.9,23.8 15.6,23.5 15.2,23.4 14.9,23.3 14.5,23.3 13.5,23.1 12.5,22.8 11.7,22.6 11,22.4 10.4,22.2 9.8,22 -4.6,16.9 11.7,10.9 11.7,10.9 v -3 c 0,-2.1 1.7,-3.8 3.8,-3.8 h 13 c 2,0 3.7,1.7 3.7,3.8 z"
id="path4"
inkscape:connector-curvature="0"
style="fill:#010101" /></g></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

54
src/images/lock.svg Normal file
View file

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
viewBox="0 0 75.601318 94.9"
xml:space="preserve"
id="svg26"
sodipodi:docname="lock.svg"
width="75.601318"
height="94.900002"
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
id="metadata32"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs30" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="865"
inkscape:window-height="480"
id="namedview28"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.236"
inkscape:cx="-0.42807022"
inkscape:cy="-212.42139"
inkscape:window-x="0"
inkscape:window-y="48"
inkscape:window-maximized="0"
inkscape:current-layer="svg26" /><g
id="g16"
transform="translate(-12.2,-2.5)"><path
d="M 75.4,36.8 H 34.1 V 24.6 c 0,-8.8 7.1,-15.9 15.9,-15.9 8.8,0 15.9,7.1 15.9,15.9 0,1.7 1.4,3.1 3.1,3.1 1.7,0 3.1,-1.4 3.1,-3.1 C 72.1,12.4 62.2,2.5 50,2.5 37.8,2.5 27.9,12.4 27.9,24.6 v 12.2 h -3.3 c -6.9,0 -12.4,5.6 -12.4,12.4 V 85 c 0,6.9 5.6,12.4 12.4,12.4 h 50.8 c 6.9,0 12.4,-5.6 12.4,-12.4 V 49.2 C 87.9,42.3 82.3,36.8 75.4,36.8 Z m 6.2,48.3 c 0,3.4 -2.8,6.2 -6.2,6.2 H 24.6 c -3.4,0 -6.2,-2.8 -6.2,-6.2 V 49.2 c 0,-3.4 2.8,-6.2 6.2,-6.2 h 50.8 c 3.4,0 6.2,2.8 6.2,6.2 z"
id="path12"
inkscape:connector-curvature="0" /><path
d="m 59.8,57.6 -12.5,12.5 -7,-7 c -1.2,-1.2 -3.2,-1.2 -4.4,0 -1.2,1.2 -1.2,3.2 0,4.4 l 9.2,9.2 c 0.6,0.6 1.4,0.9 2.2,0.9 0.8,0 1.6,-0.3 2.2,-0.9 L 64.2,62 c 1.2,-1.2 1.2,-3.2 0,-4.4 -1.2,-1.2 -3.2,-1.2 -4.4,0 z"
id="path14"
inkscape:connector-curvature="0" /></g></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

53
src/images/rotate.svg Normal file
View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
viewBox="0 0 90 90"
enable-background="new 0 0 100 100"
xml:space="preserve"
id="svg10"
sodipodi:docname="rotate.svg"
width="90"
height="90"
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
id="metadata16"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs14" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="865"
inkscape:window-height="480"
id="namedview12"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="1.888"
inkscape:cx="45"
inkscape:cy="32.5"
inkscape:window-x="0"
inkscape:window-y="48"
inkscape:window-maximized="0"
inkscape:current-layer="svg10" /><path
d="M 45,0 C 33,0 21.7,4.7 13.2,13.2 4.7,21.7 0,33 0,45 0,46.4 1.1,47.5 2.5,47.5 3.9,47.5 5,46.4 5,45 5,34.3 9.2,24.3 16.7,16.7 24.3,9.2 34.3,5 45,5 55.7,5 65.7,9.2 73.3,16.7 80.8,24.3 85,34.3 85,45 85,55.7 80.8,65.7 73.3,73.3 65.7,80.8 55.7,85 45,85 35.2,85 25.9,81.5 18.5,75 l 4.7,-4.7 c 0.6,-0.6 0.9,-1.6 0.6,-2.4 C 23.6,67 22.9,66.4 22,66.1 L 4.3,61.4 C 3.4,61.2 2.5,61.4 1.9,62 1.3,62.6 1,63.6 1.3,64.4 L 6,82.2 c 0.2,0.9 0.9,1.5 1.8,1.8 0.2,0.1 0.4,0.1 0.6,0.1 0.7,0 1.3,-0.3 1.8,-0.7 L 15,78.6 C 23.3,85.9 33.8,90 45,90 57,90 68.3,85.3 76.8,76.8 85.3,68.3 90,57 90,45 90,33 85.3,21.7 76.8,13.2 68.3,4.7 57,0 45,0 Z M 9.7,76.7 7.2,67.3 l 9.4,2.5 z"
id="path2"
inkscape:connector-curvature="0" /><path
d="m 62.5,45 c 0,-9.6 -7.9,-17.5 -17.5,-17.5 -9.6,0 -17.5,7.9 -17.5,17.5 0,9.6 7.9,17.5 17.5,17.5 9.6,0 17.5,-7.9 17.5,-17.5 z m -30,0 c 0,-6.9 5.6,-12.5 12.5,-12.5 6.9,0 12.5,5.6 12.5,12.5 0,6.9 -5.6,12.5 -12.5,12.5 -6.9,0 -12.5,-5.6 -12.5,-12.5 z"
id="path4"
inkscape:connector-curvature="0" /></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

57
src/images/see.svg Normal file
View file

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
viewBox="0 0 95 50.400002"
xml:space="preserve"
id="svg26"
sodipodi:docname="see.svg"
width="95"
height="50.400002"
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
id="metadata32"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs30" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1440"
inkscape:window-height="872"
id="namedview28"
showgrid="false"
inkscape:measure-start="0,0"
inkscape:measure-end="0,0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="2.6700352"
inkscape:cx="50.229393"
inkscape:cy="79.334597"
inkscape:window-x="0"
inkscape:window-y="48"
inkscape:window-maximized="1"
inkscape:current-layer="svg26" /><g
id="g16"
transform="translate(-2.5,-24.8)"><path
d="M 96.3,46.9 C 95.4,46 75.4,24.8 50,24.8 24.6,24.8 4.6,46 3.7,46.9 2.1,48.7 2.1,51.4 3.7,53.1 4.6,54 24.6,75.2 50,75.2 75.4,75.2 95.4,54 96.3,53.1 c 1.6,-1.7 1.6,-4.5 0,-6.2 z M 50,63 c -7.2,0 -13,-5.8 -13,-13 0,-7.2 5.8,-13 13,-13 7.2,0 13,5.8 13,13 0,7.2 -5.8,13 -13,13 z M 31.2,38.5 c -2.1,3.4 -3.3,7.3 -3.3,11.5 0,4.2 1.3,8.2 3.3,11.5 C 23.5,58 17.2,53.1 13.7,50 17.2,46.9 23.5,42 31.2,38.5 Z m 37.6,23 c 2.1,-3.4 3.3,-7.3 3.3,-11.5 0,-4.2 -1.3,-8.2 -3.3,-11.5 7.7,3.5 14,8.4 17.5,11.5 -3.5,3.1 -9.8,8 -17.5,11.5 z"
id="path12"
inkscape:connector-curvature="0" /><circle
cx="50"
cy="50"
r="7.0999999"
id="circle14" /></g></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

63
src/images/shuffle.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.5 KiB

70
src/images/stack.svg Normal file
View file

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
viewBox="0 0 82.000008 74.000038"
id="svg10"
sodipodi:docname="stack.svg"
width="82.000008"
height="74.000038"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata16">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs14" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="865"
inkscape:window-height="480"
id="namedview12"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="1.888"
inkscape:cx="46.181736"
inkscape:cy="21.322054"
inkscape:window-x="0"
inkscape:window-y="48"
inkscape:window-maximized="0"
inkscape:current-layer="svg10" />
<g
transform="translate(-8.999998,-965.36216)"
id="g4">
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;stroke:none;enable-background:accumulate"
d="m 49.999998,965.36216 -41,20.87184 41,20.8717 41.000004,-20.8717 z m -29.375,31.07054 -11.625,5.9295 41,20.8718 41.000004,-20.8718 -11.625,-5.9295 -27.468804,13.9936 -1.9062,0.9783 -1.9063,-0.9783 z m 0,16.1282 -11.625,5.9295 41,20.8718 41.000004,-20.8718 -11.625,-5.9295 -27.468804,13.9936 -1.9062,0.9784 -1.9063,-0.9784 z"
marker="none"
visibility="visible"
display="inline"
overflow="visible"
id="path2"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

66
src/images/tap.svg Normal file
View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 85 80.492493"
version="1.1"
x="0px"
y="0px"
id="svg10"
sodipodi:docname="tap.svg"
width="85"
height="80.492493"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata16">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs14" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="865"
inkscape:window-height="480"
id="namedview12"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="1.888"
inkscape:cx="42.5"
inkscape:cy="27.74624"
inkscape:window-x="0"
inkscape:window-y="48"
inkscape:window-maximized="0"
inkscape:current-layer="svg10" />
<g
transform="translate(-7.5,-962.11591)"
id="g4">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 12.96053,962.11591 c -3.00393,0 -5.46053,2.4569 -5.46053,5.4608 v 49.08829 c 0,3.0039 2.4566,5.4605 5.46053,5.4605 h 19.5298 v 15.0221 c 0,3.0039 2.4566,5.4608 5.46053,5.4608 h 49.08828 c 3.00393,0 5.46086,-2.4569 5.46086,-5.4608 v -32.647 c 0,-3.0039 -2.45693,-5.46089 -5.46086,-5.46089 H 64.33546 c 1.88741,4.03869 2.94461,8.53879 2.94461,13.27999 v 1.087 h 5.48814 l -8.56506,14.8344 -8.56472,-14.8344 h 5.06524 v -1.087 c 0,-4.8884 -1.39571,-9.4393 -3.81001,-13.27999 h -5.82499 v -6.4261 c 2.29644,1.7822 4.27231,3.9562 5.82499,6.4261 h 7.4418 c -2.81604,-6.0257 -7.48479,-11.0217 -13.26679,-14.249 v -17.214 c 0,-3.0039 -2.45693,-5.4608 -5.46087,-5.4608 z m 0,2.4661 H 45.6078 c 1.68035,0 2.99471,1.3144 2.99471,2.9947 v 15.9764 c -3.92006,-1.7565 -8.26048,-2.7349 -12.82398,-2.7349 h -3.2882 v 6.5764 h 3.2882 c 4.69662,0 9.0813,1.2886 12.82398,3.5309 v 8.1142 H 37.95086 c -3.00393,0 -5.46053,2.45699 -5.46053,5.46089 v 15.1588 h -19.5298 c -1.68035,0 -2.99438,-1.314 -2.99438,-2.9944 v -49.08829 c 0,-1.6803 1.31403,-2.9947 2.99438,-2.9947 z"
id="path2"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB