├── LICENSE.txt ├── README.md ├── build └── build.py ├── dist ├── css │ ├── picedit.css │ └── picedit.min.css ├── index.html └── js │ ├── picedit.js │ └── picedit.min.js └── src ├── css ├── font.css ├── font.v01.css ├── picedit.css └── picediticons │ ├── Read Me.txt │ ├── demo-files │ ├── demo.css │ └── demo.js │ ├── demo.html │ ├── fonts │ ├── picediticons.eot │ ├── picediticons.svg │ ├── picediticons.ttf │ └── picediticons.woff │ ├── selection.json │ └── style.css ├── index.html ├── js └── picedit.js └── out.php /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Andy V. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | picEdit 2 | ======= 3 | 4 | *This plugin is work in progress! Use with caution!* 5 | 6 | The plugin will turn your form's ``` 10 | 11 |

12 | will change to something more user-friendly: 13 |

14 | 15 |

16 | 17 | **This plugin allows you to receive images from 3 different sources:** 18 | 19 | 1. You can search your computer for images by clicking on the image button in the center of the plugin, it will behave just like a regular file input field, you can also drag-and-drop your image on to the widget (work only in browsers that support drag and drop api) 20 | 2. You can use your computer/tablet web-camera to make a photo by clicking on the camera button in the center of the plugin (work only in browsers that support WebRTC) 21 | 3. You can copy and paste the image from the clipboard (work only in browsers that support clipboard api) 22 | 23 | The plugin allows to perform image rotations, cropping, resizing and pen tool. 24 | Once you're done with the image manipulations you can just upload the form as usual, the updated image will be uploaded along with the form as the a part of the form. 25 | 26 |
Note: Due to limitations of HTML5 Form API the form will be submitted with XMLHttpRequest/Ajax. The submission is handled by picEdit. If your form uses any js plugins or custom javascript this can create issues!
27 | 28 | See the demo here: https://andyvr.github.io/picEdit/ 29 | ###Usage Example 30 | 31 | **Include jquery, the plugin js and css files** 32 | 33 | ``` 34 | 35 | 36 | 37 | ``` 38 | 39 | **Create a form in your html code with the file upload input box ex.:** 40 | 41 | ``` 42 |
43 | Name: 44 | Image: 45 | 46 |
47 | ``` 48 | 49 | **Bind the plugin to the file upload input box, that's it!** 50 | 51 | ``` 52 | 57 | ``` 58 | 59 | 60 | ###Available methods and options 61 | 62 | **defaultImage** 63 | 64 | _type: string, default: false_ - an image to be loaded in the editor by default ('path/to/image') 65 |
use only images located on the same server to prevent CORS issues
66 | 67 | **maxWidth** 68 | 69 | _type: int/auto, default: 400_ - max width for the picedit element (the original image will not be re-scaled if it's wider than maxWidth, this parameter controls image preview only) 70 | 71 | **maxHeight** 72 | 73 | _type: int/auto, default: auto_ - max height for the picedit element (same as with maxWidth parameter) 74 | 75 | **redirectUrl** 76 | 77 | _type: string/bool, default: false_ - the form redirect url. When defined it will redirect the user to the specified url after the form is submitted. 78 | 79 | **imageUpdated** 80 | 81 | _type: func_ - the callback function to be called when the image is updated/changed. Exposes the image object as the first parameter of the function. 82 | ``` 83 | $('#image').picEdit({ 84 | imageUpdated: function(img){ 85 | alert('Image updated!'); 86 | } 87 | }); 88 | ``` 89 | 90 | **formSubmitted** 91 | 92 | _type: func_ - the callback function to be called once the form is submitted to the server. Exposes the XMLHttpRequest response object as the first parameter of the function. 93 | ``` 94 | $('#image').picEdit({ 95 | formSubmitted: function(response){ 96 | alert('Form submitted!'); 97 | } 98 | }); 99 | ``` 100 | 101 | 102 |

103 | 104 |

105 | -------------------------------------------------------------------------------- /build/build.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import os.path 4 | import sys 5 | import re 6 | from httplib2 import Http 7 | from urllib import urlencode 8 | 9 | def main(): 10 | # cd to the script directory 11 | try: __file__ 12 | except NameError: 13 | basepath = '/Users/andreivarabyou/Documents/git/picEdit/build/' 14 | else: 15 | basepath = os.path.dirname(__file__) 16 | if basepath != "": 17 | os.chdir(basepath) 18 | compile_html() 19 | compile_css() 20 | compile_js() 21 | 22 | def compile_js(): 23 | file = open("../dist/js/picedit.js", "r") 24 | src_js = file.read() 25 | file.close() 26 | # get the plugin description 27 | title = re.compile(r'^\/\*.+?\*\/', re.DOTALL | re.IGNORECASE) 28 | title = re.findall(title, src_js) 29 | # minify the js 30 | url = 'http://javascript-minifier.com/raw' 31 | body = {'input': src_js} 32 | headers = {'Content-type': 'application/x-www-form-urlencoded'} 33 | http = Http() 34 | resp, content = http.request(url, "POST", headers=headers, body=urlencode(body)) 35 | file = open("../dist/js/picedit.min.js", "w") 36 | file.write(title[0] + "\n" + content) 37 | file.close() 38 | 39 | def compile_css(): 40 | # concatenate styles and save destination unminified 41 | file = open("../src/css/font.css", "r") 42 | src_style1 = file.read() 43 | file.close() 44 | file = open("../src/css/picedit.css", "r") 45 | src_style2 = file.read() 46 | file.close() 47 | file = open("../dist/css/picedit.css", "w") 48 | css_source = src_style1 + "\n" + src_style2 49 | file.write(css_source) 50 | file.close() 51 | # minify the css 52 | url = 'http://cssminifier.com/raw' 53 | body = {'input': css_source} 54 | headers = {'Content-type': 'application/x-www-form-urlencoded'} 55 | http = Http() 56 | resp, content = http.request(url, "POST", headers=headers, body=urlencode(body)) 57 | file = open("../dist/css/picedit.min.css", "w") 58 | file.write(content) 59 | file.close() 60 | 61 | def compile_html(): 62 | # loads sources from the disk 63 | file = open("../src/index.html", "r") 64 | src_html = file.read() 65 | file.close() 66 | file = open("../src/js/picedit.js", "r") 67 | src_js = file.read() 68 | file.close() 69 | # extract html code 70 | phtm = re.compile(r'.+', re.IGNORECASE | re.DOTALL) 71 | pouthtm = re.findall(phtm, src_html) 72 | # minify the html 73 | url = 'http://www.willpeavy.com/minifier/' 74 | body = {'html': pouthtm[0]} 75 | headers = {'Content-type': 'application/x-www-form-urlencoded'} 76 | http = Http() 77 | resp, content = http.request(url, "POST", headers=headers, body=urlencode(body)) 78 | outhtml = re.findall('()(.+?)( .picedit_control, .picedit_control.active { 146 | opacity: 1; 147 | text-shadow: 0px 0.3px 0px rgba(255, 255, 255, 0.8), 0 0 0 rgba(107, 107, 107, 0.62), 0px 0.3px 0px #FFF; 148 | color: transparent; 149 | } 150 | .picedit_gray_gradient { 151 | background: -moz-linear-gradient(top, rgba(0,0,0,1) 0%, rgba(0,0,0,0.4) 100%); 152 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,1)), color-stop(100%,rgba(0,0,0,0.4))); 153 | background: -webkit-linear-gradient(top, rgba(0,0,0,1) 0%,rgba(0,0,0,0.4) 100%); 154 | background: -o-linear-gradient(top, rgba(0,0,0,1) 0%,rgba(0,0,0,0.4) 100%); 155 | background: -ms-linear-gradient(top, rgba(0,0,0,1) 0%,rgba(0,0,0,0.4) 100%); 156 | background: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%,rgba(0, 0, 0, 0.4) 100%); 157 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000000', endColorstr='#00000000',GradientType=0 ); 158 | } 159 | .picedit_pos_elements {} 160 | .picedit_nav_elements { 161 | position: relative; 162 | width: 100%; 163 | text-align: right; 164 | padding: 0.3em 0; 165 | z-index: 20; 166 | } 167 | .picedit_element { 168 | display: inline-block; 169 | cursor: pointer; 170 | } 171 | .picedit_element > .picedit_control { 172 | font-size: 1.6em; 173 | position: relative; 174 | z-index: 40; 175 | } 176 | .picedit_element > .picedit_control.ico-picedit-arrow-maximise { 177 | } 178 | .picedit_control_menu { 179 | display: inline-block; 180 | position: absolute; 181 | top: 1.3em; 182 | right: 1%; 183 | z-index: 30; 184 | padding-top: 1.3em; 185 | width: auto; 186 | opacity: 0; 187 | -moz-transform: scaleY(0); 188 | -webkit-transform: scaleY(0); 189 | -o-transform: scaleY(0); 190 | -ms-transform: scaleY(0); 191 | transform: scaleY(0); 192 | -webkit-transition: all 200ms ease-out; 193 | -moz-transition: all 200ms ease-out; 194 | -ms-transition: all 200ms ease-out; 195 | -o-transition: all 200ms ease-out; 196 | transition: all 200ms ease-out; 197 | } 198 | .picedit_control_menu label { 199 | display: inline-block; 200 | margin: 0 0.5em; 201 | } 202 | .picedit_control_menu label > span { 203 | } 204 | /*.picedit_element:hover .picedit_control_menu, */.picedit_element.active .picedit_control_menu { 205 | opacity: 1; 206 | -moz-transform: scaleY(1); 207 | -webkit-transform: scaleY(1); 208 | -o-transform: scaleY(1); 209 | -ms-transform: scaleY(1); 210 | transform: scaleY(1); 211 | } 212 | .picedit_control_menu_container { 213 | } 214 | .picedit_tooltip {} 215 | .picedit_tooltip.picedit_elm_1:after, .picedit_tooltip.picedit_elm_1:before { 216 | left: 70%; 217 | } 218 | .picedit_tooltip.picedit_elm_2:after, .picedit_tooltip.picedit_elm_2:before { 219 | left: 96%; 220 | } 221 | .picedit_tooltip.picedit_elm_3:after, .picedit_tooltip.picedit_elm_3:before { 222 | left: 12%; 223 | } 224 | .picedit_tooltip { 225 | position: relative; 226 | background: #ffffff; 227 | border: 1px solid #949494; 228 | padding: 9px 4px 7px; 229 | -webkit-box-shadow: 0em 0em 0.2em 0.1em rgba(95, 95, 95, 0.55); 230 | box-shadow: 0em 0em 0.2em 0.1em rgba(95, 95, 95, 0.55); 231 | white-space: nowrap; 232 | } 233 | .picedit_tooltip:after, .picedit_tooltip:before { 234 | bottom: 100%; 235 | left: 50%; 236 | border: solid transparent; 237 | content: " "; 238 | height: 0; 239 | width: 0; 240 | position: absolute; 241 | pointer-events: none; 242 | } 243 | 244 | .picedit_tooltip:after { 245 | border-color: rgba(255, 255, 255, 0); 246 | border-bottom-color: #ffffff; 247 | border-width: 8px; 248 | margin-left: -8px; 249 | } 250 | .picedit_tooltip:before { 251 | border-color: rgba(204, 204, 204, 0); 252 | border-bottom-color: #cccccc; 253 | border-width: 9px; 254 | margin-left: -9px; 255 | } 256 | .picedit_input { 257 | width: 3em; 258 | } 259 | .picedit_canvas_box { 260 | width: 100%; 261 | height: 100%; 262 | display: block; 263 | text-align: center; 264 | position: relative; 265 | } 266 | .picedit_canvas { 267 | position: absolute; 268 | top: 0; 269 | left: 0; 270 | width: 100%; 271 | height: 100%; 272 | display: none; 273 | z-index: 5; 274 | } 275 | .picedit_action_btns .center { 276 | text-align: center; 277 | font-size: 0.3em; 278 | color: #CACACA; 279 | position: absolute; 280 | bottom: -0.5em; 281 | left: 0; 282 | width: 100%; 283 | height: auto; 284 | font-style: italic; 285 | } 286 | .picedit_action_btns .center:hover { 287 | -webkit-box-shadow: none; 288 | box-shadow: none; 289 | text-shadow: none; 290 | } 291 | .picedit_action_btns { 292 | font-size: 3em; 293 | color: #ddd; 294 | width: 60%; 295 | height: 50%; 296 | display: inline-table; 297 | margin: 12% auto 0% auto; 298 | position: relative; 299 | opacity: 0; 300 | 301 | z-index: 4; 302 | -webkit-transition: all 200ms ease-in-out; 303 | -moz-transition: all 200ms ease-in-out; 304 | -ms-transition: all 200ms ease-in-out; 305 | -o-transition: all 200ms ease-in-out; 306 | transition: all 200ms ease-in-out; 307 | } 308 | .picedit_action_btns > div { 309 | display: table-cell; 310 | vertical-align: middle; 311 | height: 100%; 312 | } 313 | .picedit_action_btns input.imageload { 314 | display: none; 315 | } 316 | .picedit_action_btns > div:hover { 317 | text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.8), 0 0 0 rgba(65, 65, 65, 0.75), 1px 1px 0px #FFF; 318 | } 319 | .picedit_nomargin { 320 | margin: 0; 321 | } 322 | .picedit_message { 323 | position: absolute; 324 | padding: 1.4em 2.5em 1em 1em; 325 | bottom: -100px; 326 | border: 1px solid #eee; 327 | margin-bottom: 3%; 328 | margin-left: 3%; 329 | margin-right: 3%; 330 | z-index: 180; 331 | background-color: #F7F5D4; 332 | opacity: 0.8; 333 | -webkit-border-radius: 4px 4px 4px 4px; 334 | border-radius: 4px 4px 4px 4px; 335 | -webkit-box-shadow: 0 0 2px 1px #D8D8D8; 336 | box-shadow: 0 0 0.3em 0.2em #D8D8D8; 337 | 338 | -webkit-transition: bottom 200ms ease-out; 339 | -moz-transition: bottom 200ms ease-out; 340 | -ms-transition: bottom 200ms ease-out; 341 | -o-transition: bottom 200ms ease-out; 342 | transition: bottom 200ms ease-out; 343 | } 344 | .picedit_message.active { 345 | bottom: 0; 346 | } 347 | .picedit_message > span { 348 | position: absolute; 349 | top: 0.6em; 350 | right: 0.4em; 351 | z-index: 200; 352 | } 353 | .picedit_message.no_close_button > span { 354 | display: none; 355 | } 356 | .picedit_message > div { 357 | font-style: italic; 358 | color: #888; 359 | } 360 | .picedit_drag_resize, .picedit_drag_resize_canvas { 361 | width: 100%; 362 | height: 100%; 363 | position: absolute; 364 | top: 0; 365 | left: 0; 366 | } 367 | .picedit_drag_resize { 368 | z-index: 300; 369 | overflow: hidden; 370 | display: none; 371 | color: #eee; 372 | } 373 | .picedit_drag_resize.active { 374 | display: block; 375 | } 376 | .picedit_drag_resize_canvas { 377 | z-index: 20; 378 | } 379 | .picedit_drag_resize_box { 380 | position: absolute; 381 | top: 20%; 382 | left: 20%; 383 | width: 60%; 384 | height: 60%; 385 | z-index: 30; 386 | border: 1px dashed #eee; 387 | } 388 | .picedit_drag_resize_box_corner_wrap { 389 | position: absolute; 390 | bottom: -1.5em; 391 | right: -1.5em; 392 | padding: 1.5em; 393 | } 394 | .picedit_drag_resize_box_corner { 395 | width: 0px; 396 | height: 0px; 397 | border-style: solid; 398 | border-width: 0 0 1.2em 1.2em; 399 | border-color: transparent transparent #ddd transparent; 400 | opacity: 0.8; 401 | z-index: 40; 402 | cursor: se-resize; 403 | } 404 | .picedit_drag_resize_box_elements { 405 | position: absolute; 406 | bottom: 0; 407 | left: 0; 408 | } 409 | .picedit_colors span { 410 | width: 1.2em; 411 | height: 1.2em; 412 | border: 1px solid #757575; 413 | padding: 0; 414 | vertical-align: middle; 415 | margin: 0.1em; 416 | opacity: 0.3; 417 | } 418 | .picedit_black { 419 | background-color: black; 420 | } 421 | .picedit_red { 422 | background-color: red; 423 | } 424 | .picedit_green { 425 | background-color: green; 426 | } 427 | .picedit_sizes span { 428 | padding: 0.1em; 429 | border-radius: 50%; 430 | background-color: #111; 431 | vertical-align: middle; 432 | margin: 0.1em; 433 | opacity: 0.5; 434 | } 435 | .picedit_large { 436 | width: 1.2em; 437 | height: 1.2em; 438 | } 439 | .picedit_medium { 440 | width: 0.75em; 441 | height: 0.75em; 442 | } 443 | .picedit_small { 444 | width: 0.30em; 445 | height: 0.30em; 446 | } 447 | .picedit_elm_3 { 448 | display: table; 449 | } 450 | .picedit_elm_3 > label { 451 | display: table-cell; 452 | padding-bottom: 0.2em; 453 | padding-top: 0.2em; 454 | padding-left: 0.2em; 455 | padding-right: 0.2em; 456 | } 457 | .picedit_video { 458 | position: absolute; 459 | top: 0; 460 | left: 0; 461 | height: 100%; 462 | width: 100%; 463 | z-index: 100; 464 | display: none; 465 | } 466 | .picedit_video.active { 467 | display: block; 468 | } 469 | .picedit_video video { 470 | width: 100%; 471 | height: auto; 472 | } 473 | .picedit_video_controls { 474 | position: absolute; 475 | bottom: 0.5em; 476 | width: 100%; 477 | text-align: center; 478 | } 479 | .picedit_video_controls span { 480 | font-size: 1.5em; 481 | border: 1px solid #bbb; 482 | padding: 0.3em; 483 | border-radius: 50%; 484 | color: #ccc; 485 | margin: 0 0.4em; 486 | vertical-align: -webkit-baseline-middle; 487 | } 488 | .picedit_sizes span.active { 489 | background-color: #111; 490 | border: 1px solid #757575; 491 | } 492 | .picedit_painter { 493 | display: none; 494 | position: absolute; 495 | z-index: 3; 496 | left: 0; 497 | cursor: crosshair; 498 | top: 0; 499 | width: 100%; 500 | height: 100%; 501 | } 502 | .picedit_painter.active { 503 | display: block; 504 | z-index: 12; 505 | } 506 | .picedit_painter.active + .picedit_canvas { 507 | z-index: 10; 508 | } -------------------------------------------------------------------------------- /dist/css/picedit.min.css: -------------------------------------------------------------------------------- 1 | .picedit_control,.picedit_element{cursor:pointer;display:inline-block}@font-face{font-family:picediticons;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'),url(data:application/font-woff;charset=utf-8;base64,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h4uHCItLBYuHiYeIiIiIh4mHiwh7i4v71JuLBfxkUxWLiYyJjImNio2KjYsIm4sFjYuNjI2MjI2MjYuNCIubBYuNio2KjYmMiYyJiwh7iwWJi4mKiYqKiYqJi4kIi3sFq/hEFYuNio2KjYmMiYyJiwh7iwWJi4mKiYqKiYqJi4kIi3sFi4mMiYyJjYqNio2LCJuLBY2LjYyNjIyNjI2LjQiLmwX39GMVi5v71IuLewWLh4mHiIiIiIeJh4sIe4uL+9SbiwWPi4+JjoiOiI2Hi4cIi3v31IuLmwWLj42Pjo6Ojo+Nj4sIm4uL99R7iwWHi4eNiI6IjomPi48Iy7MVi42KjYqNiYyJjImLCHuLBYmLiYqJioqJiomLiQiLewWLiYyJjImNio2KjYsIm4sFjYuNjI2MjI2MjYuNCIubBYP8LBV7iwWJi4mKiYqKiYqJi4kIi3sFi4mMiYyJjYqNio2LCJuLBY2LjYyNjIyNjI2LjQiLmwWLjYqNio2JjImMiYsI+333IRXV1gWRkZOOlIuVi5OIkYUIo3KL+xNFiwX7Hvc0FX6Lf5CClIKUhpeLmIuYkJeUlJSUl5CYi5iLl4aUgpSCkH+Lfot+hn+CgoKCf4Z+iwiTQhXhNPsii4vZlJQFkZGTj5SLlYuTh5GFCA74kPIVVFTBVQWOiI2Hi4eLh4mHiIiIiIiKh4uHi4eNiI4IVcFUVQWIiIeJh4uHi4iMiI6IjoqPi4+Lj4yPjo4IwsFUwgWIjomPi4+Lj42Ojo6Ojo6Nj4uPi4+JjogIwlTCwgWOjo6Nj4uPi4+JjoiOiIyIi4eLh4qHiIgITvftFYFLBYmCh4SEhYSEg4iCi4KLhY6GkoaRiZKMlIyPjJCKj4uPiY6JjoiOhY2DjYKMf4x8iwiCi4OIhIWEhYeDioIIZvtUBYmCjIOOhY6FkYiTi5OLkYiQhY+FjYOKgomCh4SFhYSEhIiDiwj7FosFgYuEjoaShZGJko2UjJSQk5ORkpGUjpSLlIuVjpaSlZGRk42TCK/3VAWNlImThpGGkYSOg4t+i4GKg4qCioWKh4mGioiIiIiJh4mIi4mKiYqIi4aJgoeEhIUIhISDiIKLgouFjoaShpGJkoyUCJbLBYyUkJOSkZKRk46Tiwj3yosFlIuSiJCFkIWMg4qCCCz8JBWLhomIiIiIiIeJh4sI+9SLBYeL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AAAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAIwIAAAACAAAAAgAAAAIAAAACAAAAAgAAMwIAAAACAAAAAgAAAAIAAAACAAAUAgAAIAIAAEAAAFAAABwAAAAAAA4ArgABAAAAAAABABgAAAABAAAAAAACAA4AagABAAAAAAADABgALgABAAAAAAAEABgAeAABAAAAAAAFABYAGAABAAAAAAAGAAwARgABAAAAAAAKACgAkAADAAEECQABABgAAAADAAEECQACAA4AagADAAEECQADABgALgADAAEECQAEABgAeAADAAEECQAFABYAGAADAAEECQAGABgAUgADAAEECQAKACgAkABwAGkAYwBlAGQAaQB0AGkAYwBvAG4AcwBWAGUAcgBzAGkAbwBuACAAMQAuADAAcABpAGMAZQBkAGkAdABpAGMAbwBuAHNwaWNlZGl0aWNvbnMAcABpAGMAZQBkAGkAdABpAGMAbwBuAHMAUgBlAGcAdQBsAGEAcgBwAGkAYwBlAGQAaQB0AGkAYwBvAG4AcwBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff');font-weight:400;font-style:normal}[class*=" ico-picedit-"],[class^=ico-picedit-]{font-family:picediticons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ico-picedit-infinite-loop:before{content:"\e60f"}.ico-picedit-arrow-maximise:before{content:"\e60e"}.ico-picedit-insertpicture:before{content:"\e60c"}.ico-picedit-clearfont:before{content:"\e60d"}.ico-picedit-eraser:before{content:"\e607"}.ico-picedit-close:before{content:"\e618"}.ico-picedit-pencil:before{content:"\e609"}.ico-picedit-droplet:before{content:"\e61a"}.ico-picedit-picture:before{content:"\e617"}.ico-picedit-camera:before{content:"\e608"}.ico-picedit-undo:before{content:"\e613"}.ico-picedit-redo:before{content:"\e614"}.ico-picedit-bubble:before{content:"\e605"}.ico-picedit-expand:before{content:"\e606"}.ico-picedit-cogs:before{content:"\e604"}.ico-picedit-link:before{content:"\e60b"}.ico-picedit-brightness:before{content:"\e602"}.ico-picedit-contrast:before{content:"\e603"}.ico-picedit-checkmark:before{content:"\e610"}.ico-picedit-crop:before{content:"\e615"}.ico-picedit-font:before{content:"\e612"}.ico-picedit-libreoffice:before{content:"\e619"}.ico-picedit-clock:before{content:"\e601"}.ico-picedit-circle-half:before{content:"\e600"}.picedit_box{display:inline-block;position:relative;border:1px solid #ddd;font-family:"Myriad Pro",Arial,Helvetica,sans-serif;font-size:1rem;width:400px;height:200px;color:#aaa;overflow:hidden}.picedit_action_btns.active,.picedit_canvas_box:hover .picedit_action_btns{z-index:8;opacity:.6}.picedit_canvas_box.dragging{-webkit-box-shadow:inset 0 0 6px 0 #555;box-shadow:inset 0 0 6px 0 #555}.picedit_nav_box{position:absolute;top:0;right:0;width:98%;padding:1% 1% 1.5%;z-index:15;opacity:0;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;-ms-transition:opacity .2s ease-out;-o-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.picedit_nav_box.active,.picedit_nav_box:hover{opacity:.8}.picedit_control{padding:0 .25em;opacity:1;vertical-align:middle;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.picedit_control.active,.picedit_control:hover,.picedit_element.active>.picedit_control{opacity:1;text-shadow:0 .3px 0 rgba(255,255,255,.8),0 0 0 rgba(107,107,107,.62),0 .3px 0 #FFF;color:transparent}.picedit_gray_gradient{background:-moz-linear-gradient(top,rgba(0,0,0,1) 0,rgba(0,0,0,.4) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,1)),color-stop(100%,rgba(0,0,0,.4)));background:-webkit-linear-gradient(top,rgba(0,0,0,1) 0,rgba(0,0,0,.4) 100%);background:-o-linear-gradient(top,rgba(0,0,0,1) 0,rgba(0,0,0,.4) 100%);background:-ms-linear-gradient(top,rgba(0,0,0,1) 0,rgba(0,0,0,.4) 100%);background:linear-gradient(to bottom,rgba(0,0,0,1) 0,rgba(0,0,0,.4) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#000000', endColorstr='#00000000', GradientType=0 )}.picedit_nav_elements{position:relative;width:100%;text-align:right;padding:.3em 0;z-index:20}.picedit_element>.picedit_control{font-size:1.6em;position:relative;z-index:40}.picedit_control_menu{display:inline-block;position:absolute;top:1.3em;right:1%;z-index:30;padding-top:1.3em;width:auto;opacity:0;-moz-transform:scaleY(0);-webkit-transform:scaleY(0);-o-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0);-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;-ms-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out}.picedit_control_menu label{display:inline-block;margin:0 .5em}.picedit_element.active .picedit_control_menu{opacity:1;-moz-transform:scaleY(1);-webkit-transform:scaleY(1);-o-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}.picedit_tooltip.picedit_elm_1:after,.picedit_tooltip.picedit_elm_1:before{left:70%}.picedit_tooltip.picedit_elm_2:after,.picedit_tooltip.picedit_elm_2:before{left:96%}.picedit_tooltip.picedit_elm_3:after,.picedit_tooltip.picedit_elm_3:before{left:12%}.picedit_tooltip{position:relative;background:#fff;border:1px solid #949494;padding:9px 4px 7px;-webkit-box-shadow:0 0 .2em .1em rgba(95,95,95,.55);box-shadow:0 0 .2em .1em rgba(95,95,95,.55);white-space:nowrap}.picedit_tooltip:after,.picedit_tooltip:before{bottom:100%;left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.picedit_tooltip:after{border-color:rgba(255,255,255,0);border-bottom-color:#fff;border-width:8px;margin-left:-8px}.picedit_tooltip:before{border-color:rgba(204,204,204,0);border-bottom-color:#ccc;border-width:9px;margin-left:-9px}.picedit_input{width:3em}.picedit_canvas_box{width:100%;height:100%;display:block;text-align:center;position:relative}.picedit_canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:none;z-index:5}.picedit_action_btns .center{text-align:center;font-size:.3em;color:#CACACA;position:absolute;bottom:-.5em;left:0;width:100%;height:auto;font-style:italic}.picedit_action_btns .center:hover{-webkit-box-shadow:none;box-shadow:none;text-shadow:none}.picedit_action_btns{font-size:3em;color:#ddd;width:60%;height:50%;display:inline-table;margin:12% auto 0;position:relative;opacity:0;z-index:4;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.picedit_action_btns>div{display:table-cell;vertical-align:middle;height:100%}.picedit_action_btns input.imageload,.picedit_message.no_close_button>span{display:none}.picedit_action_btns>div:hover{text-shadow:1px 1px 0 rgba(255,255,255,.8),0 0 0 rgba(65,65,65,.75),1px 1px 0 #FFF}.picedit_nomargin{margin:0}.picedit_message{position:absolute;padding:1.4em 2.5em 1em 1em;bottom:-100px;border:1px solid #eee;margin-bottom:3%;margin-left:3%;margin-right:3%;z-index:180;background-color:#F7F5D4;opacity:.8;-webkit-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 0 2px 1px #D8D8D8;box-shadow:0 0 .3em .2em #D8D8D8;-webkit-transition:bottom .2s ease-out;-moz-transition:bottom .2s ease-out;-ms-transition:bottom .2s ease-out;-o-transition:bottom .2s ease-out;transition:bottom .2s ease-out}.picedit_message.active{bottom:0}.picedit_message>span{position:absolute;top:.6em;right:.4em;z-index:200}.picedit_message>div{font-style:italic;color:#888}.picedit_drag_resize,.picedit_drag_resize_canvas{width:100%;height:100%;position:absolute;top:0;left:0}.picedit_drag_resize{z-index:300;overflow:hidden;display:none;color:#eee}.picedit_drag_resize.active{display:block}.picedit_drag_resize_canvas{z-index:20}.picedit_drag_resize_box{position:absolute;top:20%;left:20%;width:60%;height:60%;z-index:30;border:1px dashed #eee}.picedit_drag_resize_box_corner_wrap{position:absolute;bottom:-1.5em;right:-1.5em;padding:1.5em}.picedit_drag_resize_box_corner{width:0;height:0;border-style:solid;border-width:0 0 1.2em 1.2em;border-color:transparent transparent #ddd;opacity:.8;z-index:40;cursor:se-resize}.picedit_colors span,.picedit_large{width:1.2em;height:1.2em}.picedit_drag_resize_box_elements{position:absolute;bottom:0;left:0}.picedit_colors span{border:1px solid #757575;padding:0;vertical-align:middle;margin:.1em;opacity:.3}.picedit_black{background-color:#000}.picedit_red{background-color:red}.picedit_green{background-color:green}.picedit_sizes span{padding:.1em;border-radius:50%;background-color:#111;vertical-align:middle;margin:.1em;opacity:.5}.picedit_medium{width:.75em;height:.75em}.picedit_small{width:.3em;height:.3em}.picedit_elm_3{display:table}.picedit_elm_3>label{display:table-cell;padding:.2em}.picedit_video{position:absolute;top:0;left:0;height:100%;width:100%;z-index:100;display:none}.picedit_video.active{display:block}.picedit_video video{width:100%;height:auto}.picedit_video_controls{position:absolute;bottom:.5em;width:100%;text-align:center}.picedit_video_controls span{font-size:1.5em;border:1px solid #bbb;padding:.3em;border-radius:50%;color:#ccc;margin:0 .4em;vertical-align:-webkit-baseline-middle}.picedit_sizes span.active{background-color:#111;border:1px solid #757575}.picedit_painter{display:none;position:absolute;z-index:3;left:0;cursor:crosshair;top:0;width:100%;height:100%}.picedit_painter.active{display:block;z-index:12}.picedit_painter.active+.picedit_canvas{z-index:10} -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Untitled Document 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 |
15 | 16 | 17 | 18 |
19 | 20 |
21 | 22 |
23 | 24 |
25 | 26 | 27 | 28 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /dist/js/picedit.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Project: PicEdit 3 | * Description: Creates an image upload box with tools to edit the image on the front-end before uploading it to the server 4 | * Author: Andy V. 5 | * License: MIT 6 | */ 7 | !function(i,t,e,a){"use strict";function s(t,e){this.inputelement=t,this.element=t,this.options=i.extend({},o,e),this._defaults=o,this._name=n,this._image=!1,this._filename="",this._variables={},this._template()}var n="picEdit",o={imageUpdated:function(i){},formSubmitted:function(i){},fileNameChanged:function(i){},fileLoaded:function(i){},redirectUrl:!1,maxWidth:400,maxHeight:"auto",aspectRatio:!0,defaultImage:!1,defaultMessageTimeout:3e3};s.prototype={init:function(){function a(i){if(i||i.length){var t=i[0];s._filename||(s._filename=t.name);var e=new FileReader;e.onload=function(i){s._create_image_with_datasrc(i.target.result,!1,t),s.options.fileLoaded(t),t.name!=s._filename&&(s._filename=t.name,s.options.fileNameChanged(t.name))},e.readAsDataURL(t)}}var s=this,n=i(this.inputelement).prop("type");if("file"==n?this._fileinput=i(this.inputelement):(i(this.inputelement).after(''),this._fileinput=i(this.inputelement).next("input")),!this.check_browser_capabilities())return"file"!=n&&(i(this.inputelement).prop("type","file"),i(this._fileinput).remove()),i(this.inputelement).show(),void i(this.element).remove();if(this._canvas=i(this.element).find(".picedit_canvas > canvas")[0],this._ctx=this._canvas.getContext("2d"),this._videobox=i(this.element).find(".picedit_video"),this._painter=i(this.element).find(".picedit_painter"),this._painter_canvas=this._painter.children("canvas")[0],this._painter_ctx=this._painter_canvas.getContext("2d"),this._painter_painting=!1,this._messagebox=i(this.element).find(".picedit_message"),this._messagetimeout=!1,this._mainbuttons=i(this.element).find(".picedit_action_btns"),this._viewport={width:0,height:0},this._cropping={is_dragging:!1,is_resizing:!1,left:0,top:0,width:0,height:0,cropbox:i(this.element).find(".picedit_drag_resize"),cropframe:i(this.element).find(".picedit_drag_resize_box")},i(this.element).find(".picedit_canvas_box").on("drop",function(t){t.preventDefault(),i(this).removeClass("dragging");var e=(t.dataTransfer||t.originalEvent.dataTransfer).files;a(e)}).on("dragover",function(t){t.preventDefault(),i(this).addClass("dragging")}).on("dragleave",function(t){t.preventDefault(),i(this).removeClass("dragging")}),i(this._fileinput).on("change",function(){a(this.files)}),!t.Clipboard){var o=i(e.createElement("div"));o.prop("contenteditable","true").css({position:"absolute",left:-999,width:0,height:0,overflow:"hidden",outline:0,opacity:0}),i(e.body).prepend(o)}i(e).on("paste",function(i){var t,e=(i.clipboardData||i.originalEvent.clipboardData).items;if(e){for(var a=0;a1?this._filename=t[1]:this._filename=i,this.options.fileNameChanged(this._filename)},hide_messagebox:function(){var i=this._messagebox;i.removeClass("active no_close_button"),setTimeout(function(){i.children("div").html("")},200)},set_loading:function(i){return i&&1==i?this.set_messagebox("Working...",!1,!1):this.set_messagebox("Please Wait...",!1,!1)},set_messagebox:function(i,t,e){if(t="undefined"!=typeof t?t:this.options.defaultMessageTimeout,e="undefined"!=typeof e?e:!0,this._messagebox.addClass("active"),e?this._messagebox.removeClass("no_close_button"):this._messagebox.addClass("no_close_button"),t){clearTimeout(this._messagetimeout);var a=this;this._messagetimeout=setTimeout(function(){a.hide_messagebox()},t)}return this._messagebox.children("div").html(i)},toggle_button:function(t){if(i(t).hasClass("active")){var e=!1;i(t).removeClass("active")}else{var e=!0;i(t).siblings().removeClass("active"),i(t).addClass("active")}var a=i(t).data("variable");if(a){var s=i(t).data("value");s||(s=i(t).val()),s&&e&&(e=s),this._setVariable(a,e)}this._variables.pen_color&&this._variables.pen_size?this.pen_tool_open():this.pen_tool_close()},load_image:function(){this._fileinput.click()},pen_tool_open:function(){return this._image?(this.pen_tool_params_set(),this._painter.addClass("active"),void this._hideAllNav()):this._hideAllNav(1)},pen_tool_params_set:function(){this._painter_canvas.width=0,this._painter_canvas.width=this._canvas.width,this._painter_canvas.height=this._canvas.height,this._painter_ctx.lineJoin="round",this._painter_ctx.lineCap="round",this._painter_ctx.strokeStyle=this._variables.pen_color,this._painter_ctx.lineWidth=this._variables.pen_size},pen_tool_close:function(){this._painter.removeClass("active")},rotate_ccw:function(){if(!this._image)return this._hideAllNav(1);var i=this;this.set_loading(1).delay(200).promise().done(function(){i._doRotation(-90),i._resizeViewport(),i.hide_messagebox()}),this._hideAllNav()},rotate_cw:function(){if(!this._image)return this._hideAllNav(1);var i=this;this.set_loading(1).delay(200).promise().done(function(){i._doRotation(90),i._resizeViewport(),i.hide_messagebox()}),this._hideAllNav()},resize_image:function(){if(!this._image)return this._hideAllNav(1);var i=this;this.set_loading(1).delay(200).promise().done(function(){var t=e.createElement("canvas"),a=t.getContext("2d");t.width=i._variables.resize_width,t.height=i._variables.resize_height,a.drawImage(i._image,0,0,t.width,t.height),i._create_image_with_datasrc(t.toDataURL("image/png"),function(){i.hide_messagebox()})}),this._hideAllNav()},camera_open:function(){var i,t=navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.getUserMedia;if(!t)return this.set_messagebox("Sorry, your browser doesn't support WebRTC!");var e=this;(i=t.bind(navigator))({audio:!1,video:!0},function(i){var t=e._videobox.find("video")[0];t.src=URL.createObjectURL(i),t.onloadedmetadata=function(){t.videoWidth&&t.videoHeight&&(e._image||(e._image={}),e._image.width=t.videoWidth,e._image.height=t.videoHeight,e._resizeViewport())},e._videobox.addClass("active")},function(i){return e.set_messagebox("No video source detected! Please allow camera access!")})},camera_close:function(){this._videobox.removeClass("active")},take_photo:function(){var i=this,t=this._videobox.find("video")[0],a=e.createElement("canvas"),s=a.getContext("2d");a.width=t.clientWidth,a.height=t.clientHeight,s.drawImage(t,0,0,a.width,a.height),this._create_image_with_datasrc(a.toDataURL("image/png"),function(){i._videobox.removeClass("active")})},crop_image:function(){var i=this._calculateCropWindow(),t=this;this.set_loading(1).delay(200).promise().done(function(){var a=e.createElement("canvas"),s=a.getContext("2d");a.width=i.width,a.height=i.height,s.drawImage(t._image,i.left,i.top,i.width,i.height,0,0,i.width,i.height),t._create_image_with_datasrc(a.toDataURL("image/png"),function(){t.hide_messagebox()})}),this.crop_close()},crop_open:function(){return this._image?(this._cropping.cropbox.addClass("active"),void this._hideAllNav()):this._hideAllNav(1)},crop_close:function(){this._cropping.cropbox.removeClass("active")},_create_image_with_datasrc:function(i,t,a,s){var n=this,o=e.createElement("img");s&&o.setAttribute("crossOrigin","anonymous"),a&&(o.file=a),o.src=i,o.onload=function(){if(s){var i=e.createElement("canvas"),a=i.getContext("2d");i.width=o.width,i.height=o.height,a.drawImage(o,0,0),o.src=i.toDataURL("image/png")}n._image=o,n._resizeViewport(),n._paintCanvas(),n.options.imageUpdated(n._image),n._mainbuttons.removeClass("active"),t&&"function"==typeof t&&t(),o.onload=null}},_bindSelectionDrag:function(){var e=this,a=this._cropping.cropframe,s=this._painter,n=this._cropping.cropbox.find(".picedit_drag_resize_box_corner_wrap");i(t).on("mousedown touchstart",function(i){var t=i.clientX?i:i.originalEvent.touches[0];e._cropping.x=t.clientX,e._cropping.y=t.clientY,e._cropping.w=a[0].clientWidth,e._cropping.h=a[0].clientHeight,a.on("mousemove touchmove",function(i){i.stopPropagation(),i.preventDefault(),e._cropping.is_dragging=!0,e._cropping.is_resizing||e._selection_drag_movement(i)}),n.on("mousemove touchmove",function(i){i.stopPropagation(),i.preventDefault(),e._cropping.is_resizing=!0,e._selection_resize_movement(i)}),s.on("mousemove touchmove",function(i){i.stopPropagation(),i.preventDefault(),e._painter_painting=!0,e._painter_movement(i)})}).on("mouseup touchend",function(){e._painter_painting&&e._painter_merge_drawing(),e._cropping.is_dragging=!1,e._cropping.is_resizing=!1,e._painter_painting=!1,e._variables.prev_pos=!1,a.off("mousemove touchmove"),n.off("mousemove touchmove"),s.off("mousemove touchmove")})},_selection_resize_movement:function(i){var t=this._cropping.cropframe[0],e=i.clientX?i:i.originalEvent.touches[0];t.style.width=this._cropping.w+e.clientX-this._cropping.x+"px",t.style.height=this._cropping.h+e.clientY-this._cropping.y+"px"},_selection_drag_movement:function(i){var t=this._cropping.cropframe[0],e=i.pageX?i:i.originalEvent.touches[0];this._cropping.cropframe.offset({top:e.pageY-parseInt(t.clientHeight/2,10),left:e.pageX-parseInt(t.clientWidth/2,10)})},_painter_movement:function(i){var t={},e=i.target||i.srcElement,a=e.getBoundingClientRect(),s=i.clientX?i:i.originalEvent.touches[0];return t.x=s.clientX-a.left,t.y=s.clientY-a.top,this._variables.prev_pos?(this._painter_ctx.beginPath(),this._painter_ctx.moveTo(this._variables.prev_pos.x,this._variables.prev_pos.y),this._painter_ctx.lineTo(t.x,t.y),this._painter_ctx.stroke(),void(this._variables.prev_pos=t)):this._variables.prev_pos=t},_painter_merge_drawing:function(){var i=e.createElement("canvas"),t=i.getContext("2d"),a=this;i.width=this._image.width,i.height=this._image.height,t.drawImage(this._image,0,0,i.width,i.height),t.drawImage(this._painter_canvas,0,0,i.width,i.height),i.width>1280&&i.height>800?this.set_loading().delay(200).promise().done(function(){a._create_image_with_datasrc(i.toDataURL("image/png"),function(){a.pen_tool_params_set(),a.hide_messagebox()})}):this._create_image_with_datasrc(i.toDataURL("image/png"),function(){a.pen_tool_params_set()})},_hideAllNav:function(t){t&&1==t&&this.set_messagebox("Open an image or use your camera to make a photo!"),i(this.element).find(".picedit_nav_box").removeClass("active").find(".picedit_element").removeClass("active")},_paintCanvas:function(){this._canvas.width=this._viewport.width,this._canvas.height=this._viewport.height,this._ctx.drawImage(this._image,0,0,this._viewport.width,this._viewport.height),i(this.element).find(".picedit_canvas").css("display","block")},_calculateCropWindow:function(){var i=this._viewport,t=this._cropping.cropframe[0],e={width:this._image.width,height:this._image.height},a={width:t.clientWidth,height:t.clientHeight,top:t.offsetTop>0?t.offsetTop:.1,left:t.offsetLeft>0?t.offsetLeft:.1};a.width+a.left>i.width&&(a.width=i.width-a.left),a.height+a.top>i.height&&(a.height=i.height-a.top);var s=a.width/i.width,n=a.height/i.height,o={width:parseInt(e.width*s,10),height:parseInt(e.height*n,10)},c=a.top/i.height,r=a.left/i.width;return o.top=parseInt(e.height*c,10),o.left=parseInt(e.width*r,10),o},_doRotation:function(i){var t,a,s=i*Math.PI/180,n=Math.cos(s),o=Math.sin(s);0>o&&(o=-o),0>n&&(n=-n),t=this._image.height*o+this._image.width*n,a=this._image.height*n+this._image.width*o;var c=e.createElement("canvas"),r=c.getContext("2d");c.width=parseInt(t,10),c.height=parseInt(a,10);var d=c.width/2,_=c.height/2;r.clearRect(0,0,c.width,c.height),r.translate(d,_),r.rotate(s),r.drawImage(this._image,-this._image.width/2,-this._image.height/2),this._image.src=c.toDataURL("image/png"),this._paintCanvas(),this.options.imageUpdated(this._image)},_resizeViewport:function(){var t=this._image,e={width:t.width,height:t.height};if("auto"!=this.options.maxWidth&&t.width>this.options.maxWidth&&(e.width=this.options.maxWidth),"auto"!=this.options.maxHeight&&t.height>this.options.maxHeight&&(e.height=this.options.maxHeight),this.options.aspectRatio){var a=t.width,s=t.height,n=a/s;a>e.width&&(e.width=parseInt(e.width,10),e.height=parseInt(e.width/n,10)),s>e.height&&(n=a/s,e.height=parseInt(e.height,10),e.width=parseInt(e.height*n,10))}i(this.element).css({width:e.width,height:e.height}),this._viewport=e,this._setVariable("resize_width",t.width),this._setVariable("resize_height",t.height)},_bindControlButtons:function(){var t=this;i(this.element).find(".picedit_control").bind("click",function(){var e=i(this).data("action");e?t[e](this):i(this).hasClass("picedit_action")&&(i(this).parent(".picedit_element").toggleClass("active").siblings(".picedit_element").removeClass("active"),i(this).parent(".picedit_element").hasClass("active")?i(this).closest(".picedit_nav_box").addClass("active"):i(this).closest(".picedit_nav_box").removeClass("active"))})},_bindInputVariables:function(){var t=this;i(this.element).find(".picedit_input").bind("change keypress paste input",function(){var e=i(this).data("variable");if(e){var a=i(this).val();t._variables[e]=a}if(("resize_width"==e||"resize_height"==e)&&t._variables.resize_proportions){var s=t._image.width/t._image.height;"resize_width"==e?t._setVariable("resize_height",parseInt(a/s,10)):t._setVariable("resize_width",parseInt(a*s,10))}})},_setVariable:function(t,e){this._variables[t]=e,i(this.element).find('[data-variable="'+t+'"]').val(e)},_formsubmit:function(){if(t.FormData){var e=this;this.set_loading().delay(200).promise().done(function(){if(e._theformdata=new FormData(e._theform[0]),e._image){var a=i(e.inputelement).prop("name")||"file",s=e._dataURItoBlob(e._image.src);e._filename?e._filename=e._filename.match(/^[^\.]*/)+"."+s.type.match(/[^\/]*$/):e._filename=s.type.replace("/","."),e._theformdata.append(a,s,e._filename)}var n=new XMLHttpRequest;n.onprogress=function(i){if(i.lengthComputable)var t=i.total;else var t=Math.ceil(1.3*s.size);var a=Math.ceil(i.loaded/t*100);a>100&&(a=100),e.set_messagebox("Please Wait... Uploading... "+a+"% Uploaded.",!1,!1)},n.open(e._theform.prop("method"),e._theform.prop("action"),!0),n.onload=function(i){200!=this.status?e.set_messagebox("Server did not accept data!"):e.options.redirectUrl===!0?t.location.reload():e.options.redirectUrl?t.location=e.options.redirectUrl:e.set_messagebox("Data successfully submitted!"),e.options.formSubmitted(this)},n.send(e._theformdata)})}else this.set_messagebox("Sorry, the FormData API is not supported!");return!1},_dataURItoBlob:function(i){if(!i)return null;for(var t=i.match(/^data\:(.+?)\;/),e=atob(i.split(",")[1]),a=new ArrayBuffer(e.length),s=new Uint8Array(a),n=0;n .picedit_control, .picedit_control.active { 51 | opacity: 1; 52 | text-shadow: 0px 0.3px 0px rgba(255, 255, 255, 0.8), 0 0 0 rgba(107, 107, 107, 0.62), 0px 0.3px 0px #FFF; 53 | color: transparent; 54 | } 55 | .picedit_gray_gradient { 56 | background: -moz-linear-gradient(top, rgba(0,0,0,1) 0%, rgba(0,0,0,0.4) 100%); 57 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,1)), color-stop(100%,rgba(0,0,0,0.4))); 58 | background: -webkit-linear-gradient(top, rgba(0,0,0,1) 0%,rgba(0,0,0,0.4) 100%); 59 | background: -o-linear-gradient(top, rgba(0,0,0,1) 0%,rgba(0,0,0,0.4) 100%); 60 | background: -ms-linear-gradient(top, rgba(0,0,0,1) 0%,rgba(0,0,0,0.4) 100%); 61 | background: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%,rgba(0, 0, 0, 0.4) 100%); 62 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000000', endColorstr='#00000000',GradientType=0 ); 63 | } 64 | .picedit_pos_elements {} 65 | .picedit_nav_elements { 66 | position: relative; 67 | width: 100%; 68 | text-align: right; 69 | padding: 0.3em 0; 70 | z-index: 20; 71 | } 72 | .picedit_element { 73 | display: inline-block; 74 | cursor: pointer; 75 | } 76 | .picedit_element > .picedit_control { 77 | font-size: 1.6em; 78 | position: relative; 79 | z-index: 40; 80 | } 81 | .picedit_element > .picedit_control.ico-picedit-arrow-maximise { 82 | } 83 | .picedit_control_menu { 84 | display: inline-block; 85 | position: absolute; 86 | top: 1.3em; 87 | right: 1%; 88 | z-index: 30; 89 | padding-top: 1.3em; 90 | width: auto; 91 | opacity: 0; 92 | -moz-transform: scaleY(0); 93 | -webkit-transform: scaleY(0); 94 | -o-transform: scaleY(0); 95 | -ms-transform: scaleY(0); 96 | transform: scaleY(0); 97 | -webkit-transition: all 200ms ease-out; 98 | -moz-transition: all 200ms ease-out; 99 | -ms-transition: all 200ms ease-out; 100 | -o-transition: all 200ms ease-out; 101 | transition: all 200ms ease-out; 102 | } 103 | .picedit_control_menu label { 104 | display: inline-block; 105 | margin: 0 0.5em; 106 | } 107 | .picedit_control_menu label > span { 108 | } 109 | /*.picedit_element:hover .picedit_control_menu, */.picedit_element.active .picedit_control_menu { 110 | opacity: 1; 111 | -moz-transform: scaleY(1); 112 | -webkit-transform: scaleY(1); 113 | -o-transform: scaleY(1); 114 | -ms-transform: scaleY(1); 115 | transform: scaleY(1); 116 | } 117 | .picedit_control_menu_container { 118 | } 119 | .picedit_tooltip {} 120 | .picedit_tooltip.picedit_elm_1:after, .picedit_tooltip.picedit_elm_1:before { 121 | left: 70%; 122 | } 123 | .picedit_tooltip.picedit_elm_2:after, .picedit_tooltip.picedit_elm_2:before { 124 | left: 96%; 125 | } 126 | .picedit_tooltip.picedit_elm_3:after, .picedit_tooltip.picedit_elm_3:before { 127 | left: 12%; 128 | } 129 | .picedit_tooltip { 130 | position: relative; 131 | background: #ffffff; 132 | border: 1px solid #949494; 133 | padding: 9px 4px 7px; 134 | -webkit-box-shadow: 0em 0em 0.2em 0.1em rgba(95, 95, 95, 0.55); 135 | box-shadow: 0em 0em 0.2em 0.1em rgba(95, 95, 95, 0.55); 136 | white-space: nowrap; 137 | } 138 | .picedit_tooltip:after, .picedit_tooltip:before { 139 | bottom: 100%; 140 | left: 50%; 141 | border: solid transparent; 142 | content: " "; 143 | height: 0; 144 | width: 0; 145 | position: absolute; 146 | pointer-events: none; 147 | } 148 | 149 | .picedit_tooltip:after { 150 | border-color: rgba(255, 255, 255, 0); 151 | border-bottom-color: #ffffff; 152 | border-width: 8px; 153 | margin-left: -8px; 154 | } 155 | .picedit_tooltip:before { 156 | border-color: rgba(204, 204, 204, 0); 157 | border-bottom-color: #cccccc; 158 | border-width: 9px; 159 | margin-left: -9px; 160 | } 161 | .picedit_input { 162 | width: 3em; 163 | } 164 | .picedit_canvas_box { 165 | width: 100%; 166 | height: 100%; 167 | display: block; 168 | text-align: center; 169 | position: relative; 170 | } 171 | .picedit_canvas { 172 | position: absolute; 173 | top: 0; 174 | left: 0; 175 | width: 100%; 176 | height: 100%; 177 | display: none; 178 | z-index: 5; 179 | } 180 | .picedit_action_btns .center { 181 | text-align: center; 182 | font-size: 0.3em; 183 | color: #CACACA; 184 | position: absolute; 185 | bottom: -0.5em; 186 | left: 0; 187 | width: 100%; 188 | height: auto; 189 | font-style: italic; 190 | } 191 | .picedit_action_btns .center:hover { 192 | -webkit-box-shadow: none; 193 | box-shadow: none; 194 | text-shadow: none; 195 | } 196 | .picedit_action_btns { 197 | font-size: 3em; 198 | color: #ddd; 199 | width: 60%; 200 | height: 50%; 201 | display: inline-table; 202 | margin: 12% auto 0% auto; 203 | position: relative; 204 | opacity: 0; 205 | 206 | z-index: 4; 207 | -webkit-transition: all 200ms ease-in-out; 208 | -moz-transition: all 200ms ease-in-out; 209 | -ms-transition: all 200ms ease-in-out; 210 | -o-transition: all 200ms ease-in-out; 211 | transition: all 200ms ease-in-out; 212 | } 213 | .picedit_action_btns > div { 214 | display: table-cell; 215 | vertical-align: middle; 216 | height: 100%; 217 | } 218 | .picedit_action_btns input.imageload { 219 | display: none; 220 | } 221 | .picedit_action_btns > div:hover { 222 | text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.8), 0 0 0 rgba(65, 65, 65, 0.75), 1px 1px 0px #FFF; 223 | } 224 | .picedit_nomargin { 225 | margin: 0; 226 | } 227 | .picedit_message { 228 | position: absolute; 229 | padding: 1.4em 2.5em 1em 1em; 230 | bottom: -100px; 231 | border: 1px solid #eee; 232 | margin-bottom: 3%; 233 | margin-left: 3%; 234 | margin-right: 3%; 235 | z-index: 180; 236 | background-color: #F7F5D4; 237 | opacity: 0.8; 238 | -webkit-border-radius: 4px 4px 4px 4px; 239 | border-radius: 4px 4px 4px 4px; 240 | -webkit-box-shadow: 0 0 2px 1px #D8D8D8; 241 | box-shadow: 0 0 0.3em 0.2em #D8D8D8; 242 | 243 | -webkit-transition: bottom 200ms ease-out; 244 | -moz-transition: bottom 200ms ease-out; 245 | -ms-transition: bottom 200ms ease-out; 246 | -o-transition: bottom 200ms ease-out; 247 | transition: bottom 200ms ease-out; 248 | } 249 | .picedit_message.active { 250 | bottom: 0; 251 | } 252 | .picedit_message > span { 253 | position: absolute; 254 | top: 0.6em; 255 | right: 0.4em; 256 | z-index: 200; 257 | } 258 | .picedit_message.no_close_button > span { 259 | display: none; 260 | } 261 | .picedit_message > div { 262 | font-style: italic; 263 | color: #888; 264 | } 265 | .picedit_drag_resize, .picedit_drag_resize_canvas { 266 | width: 100%; 267 | height: 100%; 268 | position: absolute; 269 | top: 0; 270 | left: 0; 271 | } 272 | .picedit_drag_resize { 273 | z-index: 300; 274 | overflow: hidden; 275 | display: none; 276 | color: #eee; 277 | } 278 | .picedit_drag_resize.active { 279 | display: block; 280 | } 281 | .picedit_drag_resize_canvas { 282 | z-index: 20; 283 | } 284 | .picedit_drag_resize_box { 285 | position: absolute; 286 | top: 20%; 287 | left: 20%; 288 | width: 60%; 289 | height: 60%; 290 | z-index: 30; 291 | border: 1px dashed #eee; 292 | } 293 | .picedit_drag_resize_box_corner_wrap { 294 | position: absolute; 295 | bottom: -1.5em; 296 | right: -1.5em; 297 | padding: 1.5em; 298 | } 299 | .picedit_drag_resize_box_corner { 300 | width: 0px; 301 | height: 0px; 302 | border-style: solid; 303 | border-width: 0 0 1.2em 1.2em; 304 | border-color: transparent transparent #ddd transparent; 305 | opacity: 0.8; 306 | z-index: 40; 307 | cursor: se-resize; 308 | } 309 | .picedit_drag_resize_box_elements { 310 | position: absolute; 311 | bottom: 0; 312 | left: 0; 313 | } 314 | .picedit_colors span { 315 | width: 1.2em; 316 | height: 1.2em; 317 | border: 1px solid #757575; 318 | padding: 0; 319 | vertical-align: middle; 320 | margin: 0.1em; 321 | opacity: 0.3; 322 | } 323 | .picedit_black { 324 | background-color: black; 325 | } 326 | .picedit_red { 327 | background-color: red; 328 | } 329 | .picedit_green { 330 | background-color: green; 331 | } 332 | .picedit_sizes span { 333 | padding: 0.1em; 334 | border-radius: 50%; 335 | background-color: #111; 336 | vertical-align: middle; 337 | margin: 0.1em; 338 | opacity: 0.5; 339 | } 340 | .picedit_large { 341 | width: 1.2em; 342 | height: 1.2em; 343 | } 344 | .picedit_medium { 345 | width: 0.75em; 346 | height: 0.75em; 347 | } 348 | .picedit_small { 349 | width: 0.30em; 350 | height: 0.30em; 351 | } 352 | .picedit_elm_3 { 353 | display: table; 354 | } 355 | .picedit_elm_3 > label { 356 | display: table-cell; 357 | padding-bottom: 0.2em; 358 | padding-top: 0.2em; 359 | padding-left: 0.2em; 360 | padding-right: 0.2em; 361 | } 362 | .picedit_video { 363 | position: absolute; 364 | top: 0; 365 | left: 0; 366 | height: 100%; 367 | width: 100%; 368 | z-index: 100; 369 | display: none; 370 | } 371 | .picedit_video.active { 372 | display: block; 373 | } 374 | .picedit_video video { 375 | width: 100%; 376 | height: auto; 377 | } 378 | .picedit_video_controls { 379 | position: absolute; 380 | bottom: 0.5em; 381 | width: 100%; 382 | text-align: center; 383 | } 384 | .picedit_video_controls span { 385 | font-size: 1.5em; 386 | border: 1px solid #bbb; 387 | padding: 0.3em; 388 | border-radius: 50%; 389 | color: #ccc; 390 | margin: 0 0.4em; 391 | vertical-align: -webkit-baseline-middle; 392 | } 393 | .picedit_sizes span.active { 394 | background-color: #111; 395 | border: 1px solid #757575; 396 | } 397 | .picedit_painter { 398 | display: none; 399 | position: absolute; 400 | z-index: 3; 401 | left: 0; 402 | cursor: crosshair; 403 | top: 0; 404 | width: 100%; 405 | height: 100%; 406 | } 407 | .picedit_painter.active { 408 | display: block; 409 | z-index: 12; 410 | } 411 | .picedit_painter.active + .picedit_canvas { 412 | z-index: 10; 413 | } -------------------------------------------------------------------------------- /src/css/picediticons/Read Me.txt: -------------------------------------------------------------------------------- 1 | Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures. 2 | 3 | You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects. 4 | 5 | You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu > Manage Projects) to retrieve your icon selection. 6 | -------------------------------------------------------------------------------- /src/css/picediticons/demo-files/demo.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 0; 3 | margin: 0; 4 | font-family: sans-serif; 5 | font-size: 1em; 6 | line-height: 1.5; 7 | color: #555; 8 | background: #fff; 9 | } 10 | h1 { 11 | font-size: 1.5em; 12 | font-weight: normal; 13 | } 14 | small { 15 | font-size: .66666667em; 16 | } 17 | a { 18 | color: #e74c3c; 19 | text-decoration: none; 20 | } 21 | a:hover, a:focus { 22 | box-shadow: 0 1px #e74c3c; 23 | } 24 | .bshadow0, input { 25 | box-shadow: inset 0 -2px #e7e7e7; 26 | } 27 | input:hover { 28 | box-shadow: inset 0 -2px #ccc; 29 | } 30 | input, fieldset { 31 | font-size: 1em; 32 | margin: 0; 33 | padding: 0; 34 | border: 0; 35 | } 36 | input { 37 | color: inherit; 38 | line-height: 1.5; 39 | height: 1.5em; 40 | padding: .25em 0; 41 | } 42 | input:focus { 43 | outline: none; 44 | box-shadow: inset 0 -2px #449fdb; 45 | } 46 | .glyph { 47 | font-size: 16px; 48 | width: 15em; 49 | padding-bottom: 1em; 50 | margin-right: 4em; 51 | margin-bottom: 1em; 52 | float: left; 53 | overflow: hidden; 54 | } 55 | .liga { 56 | width: 80%; 57 | width: calc(100% - 2.5em); 58 | } 59 | .talign-right { 60 | text-align: right; 61 | } 62 | .talign-center { 63 | text-align: center; 64 | } 65 | .bgc1 { 66 | background: #f1f1f1; 67 | } 68 | .fgc1 { 69 | color: #999; 70 | } 71 | .fgc0 { 72 | color: #000; 73 | } 74 | p { 75 | margin-top: 1em; 76 | margin-bottom: 1em; 77 | } 78 | .mvm { 79 | margin-top: .75em; 80 | margin-bottom: .75em; 81 | } 82 | .mtn { 83 | margin-top: 0; 84 | } 85 | .mtl, .mal { 86 | margin-top: 1.5em; 87 | } 88 | .mbl, .mal { 89 | margin-bottom: 1.5em; 90 | } 91 | .mal, .mhl { 92 | margin-left: 1.5em; 93 | margin-right: 1.5em; 94 | } 95 | .mhmm { 96 | margin-left: 1em; 97 | margin-right: 1em; 98 | } 99 | .mls { 100 | margin-left: .25em; 101 | } 102 | .ptl { 103 | padding-top: 1.5em; 104 | } 105 | .pbs, .pvs { 106 | padding-bottom: .25em; 107 | } 108 | .pvs, .pts { 109 | padding-top: .25em; 110 | } 111 | .clearfix { 112 | zoom: 1; 113 | } 114 | .unit { 115 | float: left; 116 | } 117 | .unitRight { 118 | float: right; 119 | } 120 | .size1of2 { 121 | width: 50%; 122 | } 123 | .size1of1 { 124 | width: 100%; 125 | } 126 | .clearfix:before, .clearfix:after { 127 | content: " "; 128 | display: table; 129 | } 130 | .clearfix:after { 131 | clear: both; 132 | } 133 | .noLiga-true { 134 | display: none; 135 | } 136 | .textbox0 { 137 | width: 3em; 138 | background: #f1f1f1; 139 | padding: .25em .5em; 140 | line-height: 1.5; 141 | height: 1.5em; 142 | } 143 | #testDrive { 144 | padding-top: 24px; 145 | } 146 | .fs0 { 147 | font-size: 16px; 148 | } 149 | .fs1 { 150 | font-size: 32px; 151 | } 152 | -------------------------------------------------------------------------------- /src/css/picediticons/demo-files/demo.js: -------------------------------------------------------------------------------- 1 | if (!('boxShadow' in document.body.style)) { 2 | document.body.setAttribute('class', 'noBoxShadow'); 3 | } 4 | 5 | document.body.addEventListener("click", function(e) { 6 | var target = e.target; 7 | if (target.tagName === "INPUT" && 8 | target.getAttribute('class').indexOf('liga') === -1) { 9 | target.select(); 10 | } 11 | }); 12 | 13 | (function() { 14 | var fontSize = document.getElementById('fontSize'), 15 | testDrive = document.getElementById('testDrive'), 16 | testText = document.getElementById('testText'); 17 | function updateTest() { 18 | testDrive.innerHTML = testText.value || String.fromCharCode(160); 19 | if (window.icomoonLiga) { 20 | window.icomoonLiga(testDrive); 21 | } 22 | } 23 | function updateSize() { 24 | testDrive.style.fontSize = fontSize.value + 'px'; 25 | } 26 | fontSize.addEventListener('change', updateSize, false); 27 | testText.addEventListener('input', updateTest, false); 28 | testText.addEventListener('change', updateTest, false); 29 | updateSize(); 30 | }()); 31 | -------------------------------------------------------------------------------- /src/css/picediticons/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IcoMoon Demo 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Font Name: picediticons (Glyphs: 24)

13 |
14 |
15 |

Grid Size: 16

16 |
17 |
18 | ico-picedit-infinite-loop 19 |
20 |
21 | 22 | 23 |
24 |
25 | liga: 26 | 27 |
28 |
29 |
30 |
31 | ico-picedit-arrow-maximise 32 |
33 |
34 | 35 | 36 |
37 |
38 | liga: 39 | 40 |
41 |
42 |
43 |
44 | ico-picedit-insertpicture 45 |
46 |
47 | 48 | 49 |
50 |
51 | liga: 52 | 53 |
54 |
55 |
56 |
57 | ico-picedit-clearfont 58 |
59 |
60 | 61 | 62 |
63 |
64 | liga: 65 | 66 |
67 |
68 |
69 |
70 | ico-picedit-eraser 71 |
72 |
73 | 74 | 75 |
76 |
77 | liga: 78 | 79 |
80 |
81 |
82 |
83 | ico-picedit-close 84 |
85 |
86 | 87 | 88 |
89 |
90 | liga: 91 | 92 |
93 |
94 |
95 |
96 | ico-picedit-pencil 97 |
98 |
99 | 100 | 101 |
102 |
103 | liga: 104 | 105 |
106 |
107 |
108 |
109 | ico-picedit-droplet 110 |
111 |
112 | 113 | 114 |
115 |
116 | liga: 117 | 118 |
119 |
120 |
121 |
122 | ico-picedit-picture 123 |
124 |
125 | 126 | 127 |
128 |
129 | liga: 130 | 131 |
132 |
133 |
134 |
135 | ico-picedit-camera 136 |
137 |
138 | 139 | 140 |
141 |
142 | liga: 143 | 144 |
145 |
146 |
147 |
148 | ico-picedit-undo 149 |
150 |
151 | 152 | 153 |
154 |
155 | liga: 156 | 157 |
158 |
159 |
160 |
161 | ico-picedit-redo 162 |
163 |
164 | 165 | 166 |
167 |
168 | liga: 169 | 170 |
171 |
172 |
173 |
174 | ico-picedit-bubble 175 |
176 |
177 | 178 | 179 |
180 |
181 | liga: 182 | 183 |
184 |
185 |
186 |
187 | ico-picedit-expand 188 |
189 |
190 | 191 | 192 |
193 |
194 | liga: 195 | 196 |
197 |
198 |
199 |
200 | ico-picedit-cogs 201 |
202 |
203 | 204 | 205 |
206 |
207 | liga: 208 | 209 |
210 |
211 |
212 |
213 | ico-picedit-link 214 |
215 |
216 | 217 | 218 |
219 |
220 | liga: 221 | 222 |
223 |
224 |
225 |
226 | ico-picedit-brightness 227 |
228 |
229 | 230 | 231 |
232 |
233 | liga: 234 | 235 |
236 |
237 |
238 |
239 | ico-picedit-contrast 240 |
241 |
242 | 243 | 244 |
245 |
246 | liga: 247 | 248 |
249 |
250 |
251 |
252 | ico-picedit-checkmark 253 |
254 |
255 | 256 | 257 |
258 |
259 | liga: 260 | 261 |
262 |
263 |
264 |
265 | ico-picedit-crop 266 |
267 |
268 | 269 | 270 |
271 |
272 | liga: 273 | 274 |
275 |
276 |
277 |
278 | ico-picedit-font 279 |
280 |
281 | 282 | 283 |
284 |
285 | liga: 286 | 287 |
288 |
289 |
290 |
291 | ico-picedit-libreoffice 292 |
293 |
294 | 295 | 296 |
297 |
298 | liga: 299 | 300 |
301 |
302 |
303 |
304 | ico-picedit-clock 305 |
306 |
307 | 308 | 309 |
310 |
311 | liga: 312 | 313 |
314 |
315 |
316 |
317 | ico-picedit-circle-half 318 |
319 |
320 | 321 | 322 |
323 |
324 | liga: 325 | 326 |
327 |
328 |
329 | 330 | 331 |
332 |

Font Test Drive

333 | 338 | 340 | 341 |
  342 |
343 |
344 | 345 |
346 |

Generated by IcoMoon

347 |
348 | 349 | 350 | 351 | -------------------------------------------------------------------------------- /src/css/picediticons/fonts/picediticons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvr/picEdit/81694032280d03ef940495f51cf81ba76c40d914/src/css/picediticons/fonts/picediticons.eot -------------------------------------------------------------------------------- /src/css/picediticons/fonts/picediticons.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by IcoMoon 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/css/picediticons/fonts/picediticons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvr/picEdit/81694032280d03ef940495f51cf81ba76c40d914/src/css/picediticons/fonts/picediticons.ttf -------------------------------------------------------------------------------- /src/css/picediticons/fonts/picediticons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvr/picEdit/81694032280d03ef940495f51cf81ba76c40d914/src/css/picediticons/fonts/picediticons.woff -------------------------------------------------------------------------------- /src/css/picediticons/selection.json: -------------------------------------------------------------------------------- 1 | { 2 | "IcoMoonType": "selection", 3 | "icons": [ 4 | { 5 | "icon": { 6 | "paths": [ 7 | "M512 1024c-282.75 0-512-229.25-512-512s229.25-512 512-512 512 229.25 512 512-229.25 512-512 512zM512 128c-212.062 0-384 171.938-384 384s171.938 384 384 384 384-171.938 384-384-171.938-384-384-384zM256 512c0-141.376 114.624-256 256-256v512c-141.376 0-256-114.624-256-256z" 8 | ], 9 | "tags": [ 10 | "circle-half", 11 | "contrast" 12 | ], 13 | "grid": 16 14 | }, 15 | "properties": { 16 | "id": 78, 17 | "order": 1, 18 | "prevSize": 32, 19 | "code": 58880, 20 | "name": "circle-half", 21 | "ligatures": "" 22 | }, 23 | "setIdx": 5, 24 | "iconIdx": 78 25 | }, 26 | { 27 | "icon": { 28 | "paths": [ 29 | "M576 448v-192h-128v320h256v-128zM512 0c-282.75 0-512 229.25-512 512s229.25 512 512 512 512-229.25 512-512-229.25-512-512-512zM512 896c-212.062 0-384-171.938-384-384s171.938-384 384-384 384 171.938 384 384-171.938 384-384 384z" 30 | ], 31 | "tags": [ 32 | "clock", 33 | "time" 34 | ], 35 | "grid": 16 36 | }, 37 | "properties": { 38 | "id": 51, 39 | "order": 2, 40 | "prevSize": 32, 41 | "code": 58881, 42 | "name": "clock", 43 | "ligatures": "" 44 | }, 45 | "setIdx": 5, 46 | "iconIdx": 51 47 | }, 48 | { 49 | "icon": { 50 | "paths": [ 51 | "M512 256c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.616-256-256-256zM512 672v-320c88.224 0 160 71.776 160 160s-71.776 160-160 160zM512 832c35.346 0 64 28.654 64 64v64c0 35.346-28.654 64-64 64s-64-28.654-64-64v-64c0-35.346 28.654-64 64-64zM512 192c-35.346 0-64-28.654-64-64v-64c0-35.346 28.654-64 64-64s64 28.654 64 64v64c0 35.346-28.654 64-64 64zM960 448c35.346 0 64 28.654 64 64s-28.654 64-64 64h-64c-35.346 0-64-28.654-64-64s28.654-64 64-64h64zM192 512c0 35.346-28.654 64-64 64h-64c-35.346 0-64-28.654-64-64s28.654-64 64-64h64c35.346 0 64 28.654 64 64zM828.784 738.274l45.256 45.256c24.992 24.992 24.992 65.516 0 90.51-24.994 24.992-65.518 24.992-90.51 0l-45.256-45.256c-24.992-24.992-24.992-65.516 0-90.51 24.994-24.992 65.518-24.992 90.51 0zM195.216 285.726l-45.256-45.256c-24.994-24.994-24.994-65.516 0-90.51 24.994-24.994 65.516-24.994 90.51 0l45.256 45.256c24.994 24.994 24.994 65.516 0 90.51-24.994 24.994-65.516 24.994-90.51 0zM828.784 285.726c-24.992 24.992-65.516 24.992-90.51 0-24.992-24.994-24.992-65.516 0-90.51l45.256-45.254c24.992-24.994 65.516-24.994 90.51 0 24.992 24.994 24.992 65.516 0 90.51l-45.256 45.254zM195.216 738.274c24.992-24.992 65.516-24.992 90.508 0 24.994 24.994 24.994 65.518 0 90.51l-45.254 45.256c-24.994 24.992-65.516 24.992-90.51 0-24.994-24.994-24.994-65.518 0-90.51l45.256-45.256z" 52 | ], 53 | "tags": [ 54 | "brightness-contrast", 55 | "contrast" 56 | ], 57 | "grid": 16 58 | }, 59 | "properties": { 60 | "id": 204, 61 | "order": 3, 62 | "prevSize": 32, 63 | "code": 58882, 64 | "name": "brightness", 65 | "ligatures": "" 66 | }, 67 | "setIdx": 3, 68 | "iconIdx": 204 69 | }, 70 | { 71 | "icon": { 72 | "paths": [ 73 | "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512 512-229.23 512-512-229.23-512-512-512zM128 512c0-212.078 171.922-384 384-384v768c-212.078 0-384-171.922-384-384z" 74 | ], 75 | "tags": [ 76 | "contrast" 77 | ], 78 | "grid": 16 79 | }, 80 | "properties": { 81 | "id": 205, 82 | "order": 4, 83 | "prevSize": 32, 84 | "code": 58883, 85 | "name": "contrast", 86 | "ligatures": "" 87 | }, 88 | "setIdx": 3, 89 | "iconIdx": 205 90 | }, 91 | { 92 | "icon": { 93 | "paths": [ 94 | "M363.722 722.052l41.298-57.816-45.254-45.256-57.818 41.296c-10.722-5.994-22.204-10.774-34.266-14.192l-11.682-70.084h-64l-11.68 70.086c-12.062 3.418-23.544 8.198-34.266 14.192l-57.818-41.298-45.256 45.256 41.298 57.816c-5.994 10.72-10.774 22.206-14.192 34.266l-70.086 11.682v64l70.086 11.682c3.418 12.060 8.198 23.544 14.192 34.266l-41.298 57.816 45.254 45.256 57.818-41.296c10.722 5.994 22.204 10.774 34.266 14.192l11.682 70.084h64l11.68-70.086c12.062-3.418 23.544-8.198 34.266-14.192l57.818 41.296 45.254-45.256-41.298-57.816c5.994-10.72 10.774-22.206 14.192-34.266l70.088-11.68v-64l-70.086-11.682c-3.418-12.060-8.198-23.544-14.192-34.266zM224 864c-35.348 0-64-28.654-64-64s28.652-64 64-64 64 28.654 64 64-28.652 64-64 64zM1024 384v-64l-67.382-12.25c-1.242-8.046-2.832-15.978-4.724-23.79l57.558-37.1-24.492-59.128-66.944 14.468c-4.214-6.91-8.726-13.62-13.492-20.13l39.006-56.342-45.256-45.254-56.342 39.006c-6.512-4.766-13.22-9.276-20.13-13.494l14.468-66.944-59.128-24.494-37.1 57.558c-7.812-1.892-15.744-3.482-23.79-4.724l-12.252-67.382h-64l-12.252 67.382c-8.046 1.242-15.976 2.832-23.79 4.724l-37.098-57.558-59.128 24.492 14.468 66.944c-6.91 4.216-13.62 8.728-20.13 13.494l-56.342-39.006-45.254 45.254 39.006 56.342c-4.766 6.51-9.278 13.22-13.494 20.13l-66.944-14.468-24.492 59.128 57.558 37.1c-1.892 7.812-3.482 15.742-4.724 23.79l-67.384 12.252v64l67.382 12.25c1.242 8.046 2.832 15.978 4.724 23.79l-57.558 37.1 24.492 59.128 66.944-14.468c4.216 6.91 8.728 13.618 13.494 20.13l-39.006 56.342 45.254 45.256 56.342-39.006c6.51 4.766 13.22 9.276 20.13 13.492l-14.468 66.944 59.128 24.492 37.102-57.558c7.81 1.892 15.742 3.482 23.788 4.724l12.252 67.384h64l12.252-67.382c8.044-1.242 15.976-2.832 23.79-4.724l37.1 57.558 59.128-24.492-14.468-66.944c6.91-4.216 13.62-8.726 20.13-13.492l56.342 39.006 45.256-45.256-39.006-56.342c4.766-6.512 9.276-13.22 13.492-20.13l66.944 14.468 24.492-59.13-57.558-37.1c1.892-7.812 3.482-15.742 4.724-23.79l67.382-12.25zM672 491.2c-76.878 0-139.2-62.322-139.2-139.2 0-76.878 62.32-139.2 139.2-139.2s139.2 62.322 139.2 139.2c0 76.878-62.32 139.2-139.2 139.2z" 95 | ], 96 | "tags": [ 97 | "cogs", 98 | "settings", 99 | "gears", 100 | "generate", 101 | "control", 102 | "options" 103 | ], 104 | "grid": 16 105 | }, 106 | "properties": { 107 | "id": 143, 108 | "order": 5, 109 | "prevSize": 32, 110 | "code": 58884, 111 | "name": "cogs", 112 | "ligatures": "" 113 | }, 114 | "setIdx": 3, 115 | "iconIdx": 143 116 | }, 117 | { 118 | "icon": { 119 | "paths": [ 120 | "M512 192c-54.932 0-107.988 8.662-157.694 25.742-46.712 16.054-88.306 38.744-123.628 67.444-66.214 53.798-102.678 122.984-102.678 194.814 0 40.298 11.188 79.378 33.252 116.152 22.752 37.92 56.982 72.586 98.988 100.252 30.356 19.992 50.78 51.948 56.176 87.894 1.8 11.984 2.928 24.088 3.37 36.124 7.47-6.194 14.75-12.846 21.88-19.976 24.154-24.152 56.78-37.49 90.502-37.49 5.368 0 10.762 0.336 16.156 1.024 20.974 2.666 42.398 4.020 63.676 4.020 54.934 0 107.988-8.66 157.694-25.742 46.712-16.054 88.306-38.744 123.628-67.444 66.214-53.796 102.678-122.984 102.678-194.814 0-71.83-36.464-141.016-102.678-194.814-35.322-28.698-76.916-51.39-123.628-67.444-49.706-17.080-102.76-25.742-157.694-25.742zM512 64v0c282.77 0 512 186.25 512 416 0 229.752-229.23 416-512 416-27.156 0-53.81-1.734-79.824-5.044-109.978 109.978-241.25 129.7-368.176 132.596v-26.916c68.536-33.578 128-94.74 128-164.636 0-9.754-0.758-19.33-2.164-28.696-115.796-76.264-189.836-192.754-189.836-323.304 0-229.75 229.23-416 512-416z" 121 | ], 122 | "tags": [ 123 | "bubble", 124 | "comment", 125 | "chat", 126 | "talk" 127 | ], 128 | "grid": 16 129 | }, 130 | "properties": { 131 | "id": 109, 132 | "order": 6, 133 | "prevSize": 32, 134 | "code": 58885, 135 | "name": "bubble", 136 | "ligatures": "" 137 | }, 138 | "setIdx": 3, 139 | "iconIdx": 109 140 | }, 141 | { 142 | "icon": { 143 | "paths": [ 144 | "M1024 0v384l-138.26-138.26-212 212-107.48-107.48 212-212-138.26-138.26zM245.74 138.26l212 212-107.48 107.48-212-212-138.26 138.26v-384h384zM885.74 778.26l138.26-138.26v384h-384l138.26-138.26-212-212 107.48-107.48zM457.74 673.74l-212 212 138.26 138.26h-384v-384l138.26 138.26 212-212z" 145 | ], 146 | "tags": [ 147 | "expand", 148 | "enlarge", 149 | "maximize", 150 | "fullscreen" 151 | ], 152 | "grid": 16 153 | }, 154 | "properties": { 155 | "id": 130, 156 | "order": 7, 157 | "prevSize": 32, 158 | "code": 58886, 159 | "name": "expand", 160 | "ligatures": "" 161 | }, 162 | "setIdx": 3, 163 | "iconIdx": 130 164 | }, 165 | { 166 | "icon": { 167 | "paths": [ 168 | "M304 608c0 114.876 93.124 208 208 208s208-93.124 208-208-93.124-208-208-208-208 93.124-208 208zM960 256h-224c-16-64-32-128-96-128h-256c-64 0-80 64-96 128h-224c-35.2 0-64 28.8-64 64v576c0 35.2 28.8 64 64 64h896c35.2 0 64-28.8 64-64v-576c0-35.2-28.8-64-64-64zM512 892c-156.85 0-284-127.148-284-284 0-156.85 127.15-284 284-284 156.852 0 284 127.15 284 284 0 156.852-127.146 284-284 284zM960 448h-128v-64h128v64z" 169 | ], 170 | "tags": [ 171 | "camera", 172 | "photo", 173 | "picture", 174 | "image" 175 | ], 176 | "grid": 16 177 | }, 178 | "properties": { 179 | "id": 15, 180 | "order": 8, 181 | "prevSize": 32, 182 | "code": 58888, 183 | "name": "camera", 184 | "ligatures": "" 185 | }, 186 | "setIdx": 3, 187 | "iconIdx": 15 188 | }, 189 | { 190 | "icon": { 191 | "paths": [ 192 | "M384 586.666c0 0 203.944-122.36 318.766-74.026 23.802-36.268 47.248-75.336 70.202-115.222-112.326-27.52-260.968-2.752-260.968-2.752s190.212-114.122 306.666-78.4c23.35-42.108 46.054-83.642 67.956-122.304-92.776-6.268-182.622 8.704-182.622 8.704s119.148-71.488 226.578-83.598c33.798-54.86 65.17-97.88 93.422-119.068-561 0-896 640-1024 1024h64l192-320c0 0 64 64 256 0 45.474-15.158 90.948-57.252 135.572-113.934-112.616-28.554-263.572-3.4-263.572-3.4z" 193 | ], 194 | "tags": [ 195 | "quill", 196 | "feather", 197 | "write", 198 | "blog", 199 | "edit" 200 | ], 201 | "grid": 16 202 | }, 203 | "properties": { 204 | "id": 7, 205 | "order": 9, 206 | "prevSize": 32, 207 | "code": 58889, 208 | "name": "pencil", 209 | "ligatures": "" 210 | }, 211 | "setIdx": 3, 212 | "iconIdx": 7 213 | }, 214 | { 215 | "icon": { 216 | "paths": [ 217 | "M953.396 74.642l-4.028-4.042c-94.148-94.134-248.194-94.134-342.326 0l-218.106 218.136c-94.134 94.132-94.134 248.176 0 342.31l4.026 4.026c7.832 7.848 16.146 14.924 24.736 21.458l79.848-79.85c-9.302-5.494-18.126-12.072-26.116-20.060l-4.042-4.042c-51.114-51.098-51.114-134.272 0-185.39l218.128-218.112c51.116-51.118 134.274-51.118 185.386 0l4.042 4.024c51.1 51.116 51.1 134.292 0 185.39l-98.686 98.686c17.132 42.308 25.248 87.4 24.538 132.386l152.604-152.604c94.134-94.136 94.134-248.178-0.004-342.316zM631.042 388.934c-7.832-7.832-16.146-14.922-24.736-21.44l-79.848 79.832c9.304 5.496 18.126 12.074 26.116 20.062l4.042 4.040c51.116 51.116 51.116 134.272 0 185.388l-218.13 218.134c-51.118 51.102-134.276 51.102-185.388 0l-4.042-4.042c-51.098-51.12-51.098-134.276 0-185.388l98.688-98.686c-17.134-42.306-25.246-87.402-24.538-132.386l-152.602 152.598c-94.136 94.132-94.136 248.178 0 342.324l4.026 4.032c94.152 94.128 248.192 94.128 342.328 0l218.11-218.118c94.134-94.132 94.134-248.194 0-342.326l-4.026-4.024z" 218 | ], 219 | "tags": [ 220 | "link", 221 | "chain", 222 | "url", 223 | "uri", 224 | "anchor" 225 | ], 226 | "grid": 16 227 | }, 228 | "properties": { 229 | "id": 195, 230 | "order": 10, 231 | "prevSize": 32, 232 | "code": 58891, 233 | "name": "link", 234 | "ligatures": "" 235 | }, 236 | "setIdx": 3, 237 | "iconIdx": 195 238 | }, 239 | { 240 | "icon": { 241 | "paths": [ 242 | "M992 832q13 0 22.5 9.5t9.5 22.5v128q0 13-9.5 22.5t-22.5 9.5h-128q-13 0-22.5-9.5t-9.5-22.5v-32h-640v32q0 13-9.5 22.5t-22.5 9.5h-128q-13 0-22.5-9.5t-9.5-22.5v-128q0-13 9.5-22.5t22.5-9.5h32v-640h-32q-13 0-22.5-9.5t-9.5-22.5v-128q0-13 9.5-22.5t22.5-9.5h128q13 0 22.5 9.5t9.5 22.5v32h640v-32q0-13 9.5-22.5t22.5-9.5h128q13 0 22.5 9.5t9.5 22.5v128q0 13-9.5 22.5t-22.5 9.5h-32v640h32zM64 944q0 7 4.5 11.5t11.5 4.5h32q7 0 11.5-4.5t4.5-11.5v-32q0-7-4.5-11.5t-11.5-4.5h-32q-7 0-11.5 4.5t-4.5 11.5v32zM128 80q0-7-4.5-11.5t-11.5-4.5h-32q-7 0-11.5 4.5t-4.5 11.5v32q0 7 4.5 11.5t11.5 4.5h32q7 0 11.5-4.5t4.5-11.5v-32zM832 160v-32h-640v32q0 13-9.5 22.5t-22.5 9.5h-32v640h32q13 0 22.5 9.5t9.5 22.5v32h640v-32q0-13 9.5-22.5t22.5-9.5h32v-640h-32q-13 0-22.5-9.5t-9.5-22.5zM960 80q0-7-4.5-11.5t-11.5-4.5h-32q-7 0-11.5 4.5t-4.5 11.5v32q0 7 4.5 11.5t11.5 4.5h32q7 0 11.5-4.5t4.5-11.5v-32zM944 896h-32q-7 0-11.5 4.5t-4.5 11.5v32q0 7 4.5 11.5t11.5 4.5h32q7 0 11.5-4.5t4.5-11.5v-32q0-7-4.5-11.5t-11.5-4.5zM477 615l149-150q18-18 46.5-18t46.5 18l49 49v254h-140zM352 448q-40 0-68-28t-28-68 28-68 68-28 68 28 28 68-28 68-68 28zM367 594l173 174h-284v-156l18-18q18-19 46.5-19t46.5 19z" 243 | ], 244 | "tags": [ 245 | "insertpicture" 246 | ], 247 | "grid": 16 248 | }, 249 | "properties": { 250 | "id": 1713, 251 | "order": 11, 252 | "prevSize": 32, 253 | "code": 58892, 254 | "name": "insertpicture", 255 | "ligatures": "" 256 | }, 257 | "setIdx": 1, 258 | "iconIdx": 1713 259 | }, 260 | { 261 | "icon": { 262 | "paths": [ 263 | "M1015 754l-110 110 109 109q9 9 9 21.5t-8.5 21-21 8.5-21.5-9l-109-109-109 109q-9 9-21.5 9t-21-8.5-8.5-21 9-21.5l109-109-110-110q-9-9-9-21.5t9-21 21-8.5 21 9l110 110 110-110q9-9 21.5-9t21 8.5 8.5 21-9 21.5zM894 64l-21 128q-4 26-25.5 45t-47.5 19-41-19-11-45q4-13 2.5-25t-9.5-20.5-34-13.5-71-5q-26 0-47.5 18.5t-25.5 45.5l-74 384q-4 28 5.5 46t32.5 18q24 0 38 18.5t10 45-24 45.5-44 19h-260q-28 0-44-19t-11.5-45.5 27.5-45 50-18.5q29 0 60-19.5t36-44.5l73-384q5-27-10.5-45.5t-40.5-18.5q-37 0-62 3.5t-38 8-20.5 15-9.5 17-4 20.5q-4 26-25.5 45t-47.5 19-41-19-11-45l22-128q4-27 25.5-45.5t46.5-18.5h620q26 0 41 18.5t11 45.5zM703 864.5q0 13.5-9.5 22.5t-22.5 9h-639q-13 0-22.5-9t-9.5-22.5 9.5-22.5 22.5-9h639q13 0 22.5 9t9.5 22.5z" 264 | ], 265 | "tags": [ 266 | "clearformatting" 267 | ], 268 | "grid": 16 269 | }, 270 | "properties": { 271 | "id": 1720, 272 | "order": 12, 273 | "prevSize": 32, 274 | "code": 58893, 275 | "name": "clearfont", 276 | "ligatures": "" 277 | }, 278 | "setIdx": 1, 279 | "iconIdx": 1720 280 | }, 281 | { 282 | "icon": { 283 | "paths": [ 284 | "M960 1024h-896q-26 0-45-18.5t-19-45.5v-896q0-27 19-45.5t45-18.5h896q27 0 45.5 18.5t18.5 45.5v896q0 27-18.5 45.5t-45.5 18.5zM960 64h-896v896h896v-896zM160 128h256q13 0 22.5 9.5t9.5 22.5v64q0 13-9.5 22.5t-22.5 9.5h-68l165 165 164-165h-69q-13 0-22.5-9.5t-9.5-22.5v-64q0-13 9.5-22.5t22.5-9.5h256q13 0 22.5 9.5t9.5 22.5v64 192q0 13-9.5 22.5t-22.5 9.5h-64q-13 0-22.5-9.5t-9.5-22.5v-69l-164 165 164 163v-67q0-13 9.5-22.5t22.5-9.5h64q13 0 22.5 9.5t9.5 22.5v256q0 13-9.5 22.5t-22.5 9.5h-64-192q-13 0-22.5-9.5t-9.5-22.5v-64q0-13 9.5-22.5t22.5-9.5h71l-165-165-165 165h67q13 0 22.5 9.5t9.5 22.5v64q0 13-9.5 22.5t-22.5 9.5h-256q-13 0-22.5-9.5t-9.5-22.5v-64-192q0-13 9.5-22.5t22.5-9.5h64q13 0 22.5 9.5t9.5 22.5v71l166-167-166-165v69q0 13-9.5 22.5t-22.5 9.5h-64q-13 0-22.5-9.5t-9.5-22.5v-256q0-13 9.5-22.5t22.5-9.5z" 285 | ], 286 | "tags": [ 287 | "uniF485" 288 | ], 289 | "grid": 16 290 | }, 291 | "properties": { 292 | "id": 919, 293 | "order": 13, 294 | "prevSize": 32, 295 | "code": 58894, 296 | "name": "arrow-maximise", 297 | "ligatures": "" 298 | }, 299 | "setIdx": 1, 300 | "iconIdx": 919 301 | }, 302 | { 303 | "icon": { 304 | "paths": [ 305 | "M736 832q-119 0-203.5-84.5t-84.5-203.5q0-66-47-113t-113-47-113 47-47 113 47 113 113 47q67 0 114-48 22 63 64 114-78 62-178 62-119 0-203.5-84.5t-84.5-203.5 84.5-203.5 203.5-84.5 203.5 84.5 84.5 203.5q0 66 47 113t113 47 113-47 47-113-47-113-113-47q-67 0-114 48-22-63-64-114 78-62 178-62 119 0 203.5 84.5t84.5 203.5-84.5 203.5-203.5 84.5z" 306 | ], 307 | "tags": [ 308 | "uniF7B9" 309 | ], 310 | "grid": 16 311 | }, 312 | "properties": { 313 | "id": 131, 314 | "order": 14, 315 | "prevSize": 32, 316 | "code": 58895, 317 | "name": "infinite-loop", 318 | "ligatures": "" 319 | }, 320 | "setIdx": 1, 321 | "iconIdx": 131 322 | }, 323 | { 324 | "icon": { 325 | "paths": [ 326 | "M864 128l-480 480-224-224-160 160 384 384 640-640z" 327 | ], 328 | "tags": [ 329 | "checkmark", 330 | "tick", 331 | "correct", 332 | "accept", 333 | "ok" 334 | ], 335 | "grid": 16 336 | }, 337 | "properties": { 338 | "id": 254, 339 | "order": 15, 340 | "prevSize": 32, 341 | "code": 58896, 342 | "name": "checkmark", 343 | "ligatures": "" 344 | }, 345 | "setIdx": 3, 346 | "iconIdx": 254 347 | }, 348 | { 349 | "icon": { 350 | "paths": [ 351 | "M799.596 16.208c-90.526 0-148.62-16.208-241.848-16.208-301.284 0-441.792 171.584-441.792 345.872 0 102.678 48.64 136.458 144.564 136.458-6.758-14.864-18.914-31.080-18.914-104.034 0-204.010 77.006-263.458 175.636-267.51 0 0-80.918 793.374-315.778 888.542l0 24.672h316.594l108.026-512h197.844l44.072-128h-214.908l51.944-246.19c59.446 12.156 117.542 24.316 167.532 24.316 62.148 0 118.894-18.914 149.968-162.126-37.826 12.16-78.362 16.208-122.94 16.208z" 352 | ], 353 | "tags": [ 354 | "font", 355 | "font family", 356 | "wysiwyg" 357 | ], 358 | "grid": 16 359 | }, 360 | "properties": { 361 | "id": 321, 362 | "order": 16, 363 | "prevSize": 32, 364 | "code": 58898, 365 | "name": "font", 366 | "ligatures": "" 367 | }, 368 | "setIdx": 3, 369 | "iconIdx": 321 370 | }, 371 | { 372 | "icon": { 373 | "paths": [ 374 | "M512 64c-141.384 0-269.376 57.32-362.032 149.978l-149.968-149.978v384h384l-143.532-143.522c69.496-69.492 165.492-112.478 271.532-112.478 212.068 0 384 171.924 384 384 0 114.696-50.292 217.636-130.018 288l84.666 96c106.302-93.816 173.352-231.076 173.352-384 0-282.77-229.23-512-512-512z" 375 | ], 376 | "tags": [ 377 | "undo", 378 | "arrow", 379 | "left" 380 | ], 381 | "grid": 16 382 | }, 383 | "properties": { 384 | "id": 98, 385 | "order": 17, 386 | "prevSize": 32, 387 | "code": 58899, 388 | "name": "undo", 389 | "ligatures": "" 390 | }, 391 | "setIdx": 3, 392 | "iconIdx": 98 393 | }, 394 | { 395 | "icon": { 396 | "paths": [ 397 | "M0 576c0 152.924 67.048 290.184 173.35 384l84.666-96c-79.726-70.364-130.016-173.304-130.016-288 0-212.076 171.93-384 384-384 106.042 0 202.038 42.986 271.53 112.478l-143.53 143.522h384v-384l-149.97 149.978c-92.654-92.658-220.644-149.978-362.030-149.978-282.77 0-512 229.23-512 512z" 398 | ], 399 | "tags": [ 400 | "redo", 401 | "arrow", 402 | "right" 403 | ], 404 | "grid": 16 405 | }, 406 | "properties": { 407 | "id": 99, 408 | "order": 18, 409 | "prevSize": 32, 410 | "code": 58900, 411 | "name": "redo", 412 | "ligatures": "" 413 | }, 414 | "setIdx": 3, 415 | "iconIdx": 99 416 | }, 417 | { 418 | "icon": { 419 | "paths": [ 420 | "M832 256l192-192-64-64-192 192h-448v-192h-128v192h-192v128h192v512h512v192h128v-192h192v-128h-192v-448zM320 320h320l-320 320v-320zM384 704l320-320v320h-320z" 421 | ], 422 | "tags": [ 423 | "crop", 424 | "resize", 425 | "cut" 426 | ], 427 | "grid": 16 428 | }, 429 | "properties": { 430 | "id": 317, 431 | "order": 19, 432 | "prevSize": 32, 433 | "code": 58901, 434 | "name": "crop", 435 | "ligatures": "" 436 | }, 437 | "setIdx": 3, 438 | "iconIdx": 317 439 | }, 440 | { 441 | "icon": { 442 | "paths": [ 443 | "M983.072 216.768l-294.304 296.096 294.304 294.336c12.32 12.288 12.32 32.224 0 44.544l-133.632 133.6c-12.256 12.32-32.192 12.32-44.512 0l-293.824-293.824-292.064 293.824c-12.288 12.32-32.224 12.32-44.544 0l-133.6-133.6c-12.288-12.32-12.288-32.256 0-44.544l292.064-293.824-292.032-292.032c-12.288-12.288-12.288-32.224 0-44.544l133.6-133.6c12.288-12.32 32.224-12.32 44.544 0l291.52 291.52 294.368-296.096c12.32-12.32 32.256-12.32 44.512 0l133.632 133.6c12.256 12.32 12.256 32.256-0.032 44.544z" 444 | ], 445 | "tags": [ 446 | "cancel", 447 | "close", 448 | "dismiss" 449 | ], 450 | "grid": 16 451 | }, 452 | "properties": { 453 | "id": 65, 454 | "order": 20, 455 | "prevSize": 32, 456 | "code": 58904, 457 | "name": "close", 458 | "ligatures": "" 459 | }, 460 | "setIdx": 2, 461 | "iconIdx": 65 462 | }, 463 | { 464 | "icon": { 465 | "paths": [ 466 | "M896 192h-768v640h768v-640zM1024 64v0 896h-1024v-896h1024zM832 768h-640v-128l192-320 263 320 185-128v64zM640 352c0-53.019 42.981-96 96-96s96 42.981 96 96c0 53.019-42.981 96-96 96-53.019 0-96-42.981-96-96z" 467 | ], 468 | "tags": [ 469 | "image", 470 | "picture", 471 | "photo", 472 | "graphic" 473 | ], 474 | "grid": 16 475 | }, 476 | "properties": { 477 | "id": 12, 478 | "order": 21, 479 | "prevSize": 32, 480 | "code": 58903, 481 | "name": "picture", 482 | "ligatures": "" 483 | }, 484 | "setIdx": 3, 485 | "iconIdx": 12 486 | }, 487 | { 488 | "icon": { 489 | "paths": [ 490 | "M534.626 22.628c-12.444-12.444-37.026-22.628-54.626-22.628h-384c-17.6 0-32 14.4-32 32v960c0 17.6 14.4 32 32 32h768c17.6 0 32-14.4 32-32v-576c0-17.6-10.182-42.182-22.626-54.626l-338.748-338.746zM832 960h-704v-896h351.158c2.916 0.48 8.408 2.754 10.81 4.478l337.556 337.554c1.722 2.402 3.996 7.894 4.476 10.81v543.158zM864 0h-192c-17.6 0-21.818 10.182-9.374 22.626l210.746 210.746c12.446 12.446 22.628 8.228 22.628-9.372v-192c0-17.6-14.4-32-32-32z" 491 | ], 492 | "tags": [ 493 | "libreoffice", 494 | "file" 495 | ], 496 | "grid": 16 497 | }, 498 | "properties": { 499 | "id": 433, 500 | "order": 22, 501 | "prevSize": 32, 502 | "code": 58905, 503 | "name": "libreoffice", 504 | "ligatures": "" 505 | }, 506 | "setIdx": 3, 507 | "iconIdx": 433 508 | }, 509 | { 510 | "icon": { 511 | "paths": [ 512 | "M895.94 633.502c-0.012-0.706-0.030-1.402-0.042-2.106-0.032-1.428-0.070-2.854-0.118-4.28-10.030-315.648-383.78-627.116-383.78-627.116s-373.754 311.468-383.78 627.122c-0.044 1.43-0.088 2.852-0.12 4.282-0.014 0.704-0.030 1.402-0.042 2.106-0.036 2.16-0.056 4.324-0.056 6.496 0 2.368 0.028 4.722 0.070 7.078 0.004 0.196 0.006 0.39 0.014 0.586 4.078 208.532 174.396 376.33 383.914 376.33 209.516 0 379.832-167.798 383.918-376.336 0.004-0.196 0.008-0.392 0.010-0.586 0.042-2.356 0.072-4.714 0.072-7.078 0-2.172-0.024-4.336-0.060-6.498zM767.95 644.74l-0.008 0.406c-1.318 67.286-28.532 130.334-76.626 177.548-48.142 47.272-111.83 73.306-179.316 73.306-12.462 0-24.794-0.894-36.924-2.638 139.056-82.846 232.216-234.704 232.216-408.322 0-19.456-1.18-38.634-3.452-57.48 40.272 73.94 62.064 142.8 64.002 203.626l0.004 0.144c0.032 0.948 0.052 1.892 0.078 2.844l0.028 1.448c0.028 1.456 0.048 2.918 0.048 4.378 0 1.584-0.020 3.162-0.050 4.74z" 513 | ], 514 | "tags": [ 515 | "droplet", 516 | "colors", 517 | "water" 518 | ], 519 | "grid": 16 520 | }, 521 | "properties": { 522 | "id": 10, 523 | "order": 23, 524 | "prevSize": 32, 525 | "code": 58906, 526 | "name": "droplet", 527 | "ligatures": "" 528 | }, 529 | "setIdx": 3, 530 | "iconIdx": 10 531 | }, 532 | { 533 | "icon": { 534 | "paths": [ 535 | "M960 1024h-895q-27 0-45.5-18.5t-18.5-45 18.5-45.5 45.5-19h895q27 0 45.5 19t18.5 45.5-18.5 45-45.5 18.5zM827 793q-2 2-8.5 9t-10.5 11-11 9-14 7.5-15 2.5h-256q-7 0-14.5-3t-15-8.5-12-9.5-10.5-10.5-7-7.5l-436-436q-17-18-17-42.5t17-41.5l130.5-130.5 125.5-125.5q17-17 41.5-17t42.5 17l585 586q18 17 18 41.5t-18 42.5q-5 6-52 48t-63 58zM544 372l-172 172 160 160h217l64-64z" 536 | ], 537 | "tags": [ 538 | "eraser" 539 | ], 540 | "grid": 16 541 | }, 542 | "properties": { 543 | "id": 1730, 544 | "order": 24, 545 | "prevSize": 32, 546 | "code": 58887, 547 | "name": "eraser", 548 | "ligatures": "" 549 | }, 550 | "setIdx": 1, 551 | "iconIdx": 1730 552 | } 553 | ], 554 | "height": 1024, 555 | "metadata": { 556 | "name": "picediticons" 557 | }, 558 | "preferences": { 559 | "fontPref": { 560 | "prefix": "ico-picedit-", 561 | "metadata": { 562 | "fontFamily": "picediticons", 563 | "majorVersion": 1, 564 | "minorVersion": 0 565 | }, 566 | "showGlyphs": true, 567 | "metrics": { 568 | "emSize": 512, 569 | "baseline": 6.25, 570 | "whitespace": 50 571 | }, 572 | "resetPoint": 58880, 573 | "showQuickUse": true, 574 | "quickUsageToken": false, 575 | "showMetrics": true, 576 | "showMetadata": false, 577 | "embed": true, 578 | "showVersion": false 579 | }, 580 | "imagePref": { 581 | "color": 0, 582 | "height": 32, 583 | "columns": 16, 584 | "margin": 16, 585 | "png": false, 586 | "sprites": true 587 | }, 588 | "historySize": 100, 589 | "showCodes": true, 590 | "gridSize": 16, 591 | "showLiga": false, 592 | "showGrid": true, 593 | "showGlyphs": true, 594 | "showQuickUse": true 595 | } 596 | } -------------------------------------------------------------------------------- /src/css/picediticons/style.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'picediticons'; 3 | src: url('fonts/picediticons.eot'); 4 | } 5 | @font-face { 6 | font-family: 'picediticons'; 7 | src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'), 8 | url(data:application/font-woff;charset=utf-8;base64,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h4uHCItLBYuHiYeIiIiIh4mHiwh7i4v71JuLBfxkUxWLiYyJjImNio2KjYsIm4sFjYuNjI2MjI2MjYuNCIubBYuNio2KjYmMiYyJiwh7iwWJi4mKiYqKiYqJi4kIi3sFq/hEFYuNio2KjYmMiYyJiwh7iwWJi4mKiYqKiYqJi4kIi3sFi4mMiYyJjYqNio2LCJuLBY2LjYyNjIyNjI2LjQiLmwX39GMVi5v71IuLewWLh4mHiIiIiIeJh4sIe4uL+9SbiwWPi4+JjoiOiI2Hi4cIi3v31IuLmwWLj42Pjo6Ojo+Nj4sIm4uL99R7iwWHi4eNiI6IjomPi48Iy7MVi42KjYqNiYyJjImLCHuLBYmLiYqJioqJiomLiQiLewWLiYyJjImNio2KjYsIm4sFjYuNjI2MjI2MjYuNCIubBYP8LBV7iwWJi4mKiYqKiYqJi4kIi3sFi4mMiYyJjYqNio2LCJuLBY2LjYyNjIyNjI2LjQiLmwWLjYqNio2JjImMiYsI+333IRXV1gWRkZOOlIuVi5OIkYUIo3KL+xNFiwX7Hvc0FX6Lf5CClIKUhpeLmIuYkJeUlJSUl5CYi5iLl4aUgpSCkH+Lfot+hn+CgoKCf4Z+iwiTQhXhNPsii4vZlJQFkZGTj5SLlYuTh5GFCA74kPIVVFTBVQWOiI2Hi4eLh4mHiIiIiIiKh4uHi4eNiI4IVcFUVQWIiIeJh4uHi4iMiI6IjoqPi4+Lj4yPjo4IwsFUwgWIjomPi4+Lj42Ojo6Ojo6Nj4uPi4+JjogIwlTCwgWOjo6Nj4uPi4+JjoiOiIyIi4eLh4qHiIgITvftFYFLBYmCh4SEhYSEg4iCi4KLhY6GkoaRiZKMlIyPjJCKj4uPiY6JjoiOhY2DjYKMf4x8iwiCi4OIhIWEhYeDioIIZvtUBYmCjIOOhY6FkYiTi5OLkYiQhY+FjYOKgomCh4SFhYSEhIiDiwj7FosFgYuEjoaShZGJko2UjJSQk5ORkpGUjpSLlIuVjpaSlZGRk42TCK/3VAWNlImThpGGkYSOg4t+i4GKg4qCioWKh4mGioiIiIiJh4mIi4mKiYqIi4aJgoeEhIUIhISDiIKLgouFjoaShpGJkoyUCJbLBYyUkJOSkZKRk46Tiwj3yosFlIuSiJCFkIWMg4qCCCz8JBWLhomIiIiIiIeJh4sI+9SLBYeL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AAAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAIwIAAAACAAAAAgAAAAIAAAACAAAAAgAAMwIAAAACAAAAAgAAAAIAAAACAAAUAgAAIAIAAEAAAFAAABwAAAAAAA4ArgABAAAAAAABABgAAAABAAAAAAACAA4AagABAAAAAAADABgALgABAAAAAAAEABgAeAABAAAAAAAFABYAGAABAAAAAAAGAAwARgABAAAAAAAKACgAkAADAAEECQABABgAAAADAAEECQACAA4AagADAAEECQADABgALgADAAEECQAEABgAeAADAAEECQAFABYAGAADAAEECQAGABgAUgADAAEECQAKACgAkABwAGkAYwBlAGQAaQB0AGkAYwBvAG4AcwBWAGUAcgBzAGkAbwBuACAAMQAuADAAcABpAGMAZQBkAGkAdABpAGMAbwBuAHNwaWNlZGl0aWNvbnMAcABpAGMAZQBkAGkAdABpAGMAbwBuAHMAUgBlAGcAdQBsAGEAcgBwAGkAYwBlAGQAaQB0AGkAYwBvAG4AcwBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff'); 9 | font-weight: normal; 10 | font-style: normal; 11 | } 12 | 13 | [class^="ico-picedit-"], [class*=" ico-picedit-"] { 14 | font-family: 'picediticons'; 15 | speak: none; 16 | font-style: normal; 17 | font-weight: normal; 18 | font-variant: normal; 19 | text-transform: none; 20 | line-height: 1; 21 | 22 | /* Better Font Rendering =========== */ 23 | -webkit-font-smoothing: antialiased; 24 | -moz-osx-font-smoothing: grayscale; 25 | } 26 | 27 | .ico-picedit-infinite-loop:before { 28 | content: "\e60f"; 29 | } 30 | .ico-picedit-arrow-maximise:before { 31 | content: "\e60e"; 32 | } 33 | .ico-picedit-insertpicture:before { 34 | content: "\e60c"; 35 | } 36 | .ico-picedit-clearfont:before { 37 | content: "\e60d"; 38 | } 39 | .ico-picedit-eraser:before { 40 | content: "\e607"; 41 | } 42 | .ico-picedit-close:before { 43 | content: "\e618"; 44 | } 45 | .ico-picedit-pencil:before { 46 | content: "\e609"; 47 | } 48 | .ico-picedit-droplet:before { 49 | content: "\e61a"; 50 | } 51 | .ico-picedit-picture:before { 52 | content: "\e617"; 53 | } 54 | .ico-picedit-camera:before { 55 | content: "\e608"; 56 | } 57 | .ico-picedit-undo:before { 58 | content: "\e613"; 59 | } 60 | .ico-picedit-redo:before { 61 | content: "\e614"; 62 | } 63 | .ico-picedit-bubble:before { 64 | content: "\e605"; 65 | } 66 | .ico-picedit-expand:before { 67 | content: "\e606"; 68 | } 69 | .ico-picedit-cogs:before { 70 | content: "\e604"; 71 | } 72 | .ico-picedit-link:before { 73 | content: "\e60b"; 74 | } 75 | .ico-picedit-brightness:before { 76 | content: "\e602"; 77 | } 78 | .ico-picedit-contrast:before { 79 | content: "\e603"; 80 | } 81 | .ico-picedit-checkmark:before { 82 | content: "\e610"; 83 | } 84 | .ico-picedit-crop:before { 85 | content: "\e615"; 86 | } 87 | .ico-picedit-font:before { 88 | content: "\e612"; 89 | } 90 | .ico-picedit-libreoffice:before { 91 | content: "\e619"; 92 | } 93 | .ico-picedit-clock:before { 94 | content: "\e601"; 95 | } 96 | .ico-picedit-circle-half:before { 97 | content: "\e600"; 98 | } 99 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Untitled Document 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 |
17 | 18 | 19 |
20 | 21 |
22 | 23 |
24 |
25 | 26 |
27 |
28 |
29 | 30 |
31 | 32 |
33 |
34 | 39 | 42 | 47 |
48 |
49 |
50 | 51 | 52 |
53 | 54 |
55 | 56 | 57 |
58 | 59 |
60 |
61 | 65 | 69 |
70 |
71 |
72 | 73 | 74 |
75 | 76 |
77 |
78 | 82 | 86 | 89 | 93 |
94 |
95 |
96 | 97 |
98 |
99 | 100 |
101 |
102 | 103 |
104 |
105 | 106 |
107 |
108 |
109 |
110 |
or copy/paste image here
111 |
112 |
113 | 114 |
115 | 116 |
117 | 118 | 119 |
120 |
121 | 122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 | 130 | 131 |
132 |
133 |
134 |
135 | 136 | 137 | 138 |
139 | 140 |
141 | 142 |
143 | 144 |
145 | 146 | 147 | 148 | 160 | 161 | 162 | -------------------------------------------------------------------------------- /src/out.php: -------------------------------------------------------------------------------- 1 |
'; 14 | } 15 | 16 | ?> --------------------------------------------------------------------------------