diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..a3a47a2 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,32 @@ +name: Docker +on: [push] + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + Docker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + uses: docker/build-push-action@v3 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..76e3cbe --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/config/* +/tools_config/* +.DS_Store \ No newline at end of file diff --git a/.htaccess.example b/.htaccess.example new file mode 100644 index 0000000..88ed2f2 --- /dev/null +++ b/.htaccess.example @@ -0,0 +1,5 @@ +Options -Indexes +AuthType Basic +AuthName "Restricted content" +AuthUserFile /var/www/html/config/.htpasswd +Require valid-user \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c71ca55 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM php:7.2.2-apache + +# Remove folders from the html-folder (in case of an update) +WORKDIR /var/www/html/ +RUN rm -rf /var/www/html/* + +# Copy all files over to the working directory +COPY ./css/* /var/www/html/css/ +COPY ./other/* /var/www/html/other/ +COPY ./index.php /var/www/html/ + +# Copy config-files over to the working directory +# Uncomment the lines if you have set up a password +COPY ./config/config.env.php /var/www/html/config/config.php +#COPY ./config/.htpasswd /var/www/html/config/.htpasswd +#COPY ./.htaccess.example /var/www/html/.htaccess + +# Run the application +RUN docker-php-ext-install pdo pdo_mysql diff --git a/README.md b/README.md index 69136b7..e78be82 100644 --- a/README.md +++ b/README.md @@ -1,101 +1,34 @@ - # RealDeviceMap-tools Tools for managing RealDeviceMap data + -## rdm-tools.php -### Changes -* Now you can report on all nests at once! -* You don't have to have spawns/stops visible on map to perform reporting anymore. -* Revised optimization function - same super simple algorithm, might be better performing though -* Changes to data storage, functions no longer loop through map objects, coordinates for gyms/stops/spawns are stored separately. Should help with performance - -### Features -* View/hide known gyms, stops, and spawnpoints -* Optionally show only unknown gyms/stops -* Nest polygon import from OSM data, set to last datetime of Niantic OSM sync - * [date:"2018-04-09T01:32:00Z"] - * way["leisure"="park"] - * way["leisure"="recreation_ground"] - * way["landuse"="recreation_ground"] -* CSV and GeoJSON polygon import -* GeoJSON polygon export -* Coordinate generation - blanket fill polygons with route points -* Coordinate optimization - fill polygons with route points optimized for existing known gyms/stops/spawnpoints -* Instance import - view your RDM instances and add/remove route points, then reexport and upload to RDM - -### Installation -Simply upload rdm-tools.php to your favorite webserver, point the database variables to your RDM DB's IP, and configure your username/password. - -### Usage -The map has a variety of control buttons for performing different functions: - -####  Settings -* Nest Migration Date - select the last nest migration. -* Optimization Attempts - number of passes to attempt to optimize coordinates during optimization. -* Circle Size - View distance radius (in meters) to route for. -* Generate all nests - Get a report of spawns for all nests in current map bounds. _See below_. - -#### Map mode -*  Enables full functionality including polygon and routing functions. -*  For viewing points of interest and spawnpoints only. Enables the option to filter unknown points of interest. - -#### View mode -*  Enables/disables viewing gyms as red dots on the map. -*  Enables/disables viewing pokestops as green dots on the map. -*  Enables/disables viewing spawnpoints as blue dots on the map. - -#### Routing and Drawing -*  Enables drawing of polygons on the map. -*  Enables/disables manual placement of route points. Click on the map to drop a route point in the routing layer based on view radius setting. -*  Pulls nest data from OSM and places polygons in the current map bounds covering all parks. -*  Import CSV or GeoJSON polygon data. GeoJSON can contain multiple polygons, each one will be placed individually. -*  Imports an instance from your RDM DB and places the route points in the routing layer based on view radius setting. -*  Clears the current route from the map, leaving polygons behind -*  Clears all route points and polygons from map. -*  Generates a blanket route over all polygons on the map. -*  Takes all visible points - gyms, stops, and spawns - and optimizes a route between them based on view radius (circle size). -*  Opens a textbox to generate lat,lon points for all routing layer coordinates, to be saved as an instance in RDM. - -#### Polygon options - - -Clicking on any polygon will allow you to generate a spawn report, remove it from the map, or export as GeoJSON. - -To generate a spawn report, keep in mind the Nest Migration Date setting. The query generated for your database will only grab spawn data from that point forward. If you are just looking to get data for your area and not specifically reporting on a nest, set the date accordingly before generating your report. Once generated, a modal window will open showing a table of all the spawn counts for that polygon. - - - -Example spawn report for a local nest. - -#### New feature - generate a spawn report for all nests -In the settings menu, a new button is available to create a report for all nests in your current map bounds. Make sure you import nest polygons first! - - - -Example multi-nest report - -#### Route options - - -After a route is generated, you can click on any point of the route to remove it from the map. - -## Example outputs - - -Example route showing a blanket route of 75m circles covering a town for finding new spawn points. - - - -Example route showing the same polygon covered with 500m circles for finding new raids and stops. - - - -Example optimization covering gyms in a polygon - - - -Example optimization covering all nests in map bounds, for finding new spawnpoints in nests - - - -Example optimization covering known spawnpoints in multiple nests. Note that you can remove overlapping circles by clicking on them and choosing delete - the optimization routine still needs some work. +## Changes +* Added more details to the import of administrative boundaries +* Distance between points on routes is colored +* Option to show routes for instances, generate new routes for instances or drawn circles and visualize it directly +* Added Dockerfile to generate a local image +* Autogeneration of the correct circle size for raid instances depending on the specific latitude, option in settings to choose between iv-, raid- or own radius +* Color Picker built in for instance- and polygon-import + +## Installation +1. `git clone https://github.com/PickleRickVE/RealDeviceMap-tools` +2. Enter the new folder `cd RealDeviceMap-tools` and go to the config folder `cd config` +2. Edit `nano config.env.php` and add your credentials for the RDM and/or Nest database. +3. Edit `nano .htpasswd` to set a username and password. The default user is **admin** with password **admin**, you can generate one [here](https://www.web2generators.com/apache-tools/htpasswd-generator). + +### Optional: when running Docker +1. Paste the contents from docker-compose.example.yml in the files where RDM & it's database is located and edit where needed +2. Check Dockerfile and uncomment the line with .htaccess if you want to use a password +3. Run `docker-compose up -d --build rdm_tools` + +## Updates +1. Use git pull in the folder +2. When using Docker, re-run `docker-compose up -d --build rdm_tools` + +## Usage +For more info please use the [wiki](https://github.com/PickleRickVE/RealDeviceMap-tools/wiki). + +## Thanks +* Credit to [abakedapplepie](https://github.com/abakedapplepie) and his creditors for the base +* Credit to [lovasoa](https://github.com/lovasoa) for the traveling salesman script +* Credit to [leevo](https://github.com/xxleevo) for various ideas diff --git a/assets/README.md b/assets/README.md deleted file mode 100644 index 818d7dd..0000000 --- a/assets/README.md +++ /dev/null @@ -1 +0,0 @@ -# README Assets diff --git a/assets/example-all-nests-report.png b/assets/example-all-nests-report.png deleted file mode 100644 index 190fbc3..0000000 Binary files a/assets/example-all-nests-report.png and /dev/null differ diff --git a/assets/example-blanket-route-gym.png b/assets/example-blanket-route-gym.png deleted file mode 100644 index 8f9ac20..0000000 Binary files a/assets/example-blanket-route-gym.png and /dev/null differ diff --git a/assets/example-blanket-route-nest.png b/assets/example-blanket-route-nest.png deleted file mode 100644 index 242805b..0000000 Binary files a/assets/example-blanket-route-nest.png and /dev/null differ diff --git a/assets/example-blanket-route-spawn.png b/assets/example-blanket-route-spawn.png deleted file mode 100644 index 3de4102..0000000 Binary files a/assets/example-blanket-route-spawn.png and /dev/null differ diff --git a/assets/example-optimized-route-gyms.png b/assets/example-optimized-route-gyms.png deleted file mode 100644 index 95c9eb5..0000000 Binary files a/assets/example-optimized-route-gyms.png and /dev/null differ diff --git a/assets/example-optimized-route-nests.png b/assets/example-optimized-route-nests.png deleted file mode 100644 index 9b2c912..0000000 Binary files a/assets/example-optimized-route-nests.png and /dev/null differ diff --git a/assets/example-spawn-report.png b/assets/example-spawn-report.png deleted file mode 100644 index 207c47e..0000000 Binary files a/assets/example-spawn-report.png and /dev/null differ diff --git a/assets/map-clear-all-layers.png b/assets/map-clear-all-layers.png deleted file mode 100644 index afdaf44..0000000 Binary files a/assets/map-clear-all-layers.png and /dev/null differ diff --git a/assets/map-clear-routing-layer.png b/assets/map-clear-routing-layer.png deleted file mode 100644 index 17c85d4..0000000 Binary files a/assets/map-clear-routing-layer.png and /dev/null differ diff --git a/assets/map-draw-polygon.png b/assets/map-draw-polygon.png deleted file mode 100644 index 1976139..0000000 Binary files a/assets/map-draw-polygon.png and /dev/null differ diff --git a/assets/map-generate-route.png b/assets/map-generate-route.png deleted file mode 100644 index ffc7534..0000000 Binary files a/assets/map-generate-route.png and /dev/null differ diff --git a/assets/map-get-output.png b/assets/map-get-output.png deleted file mode 100644 index c7d5605..0000000 Binary files a/assets/map-get-output.png and /dev/null differ diff --git a/assets/map-header.png b/assets/map-header.png index 9618705..d95d1df 100644 Binary files a/assets/map-header.png and b/assets/map-header.png differ diff --git a/assets/map-import-instance.png b/assets/map-import-instance.png deleted file mode 100644 index a6cde15..0000000 Binary files a/assets/map-import-instance.png and /dev/null differ diff --git a/assets/map-import-nests.png b/assets/map-import-nests.png deleted file mode 100644 index 69c4cfa..0000000 Binary files a/assets/map-import-nests.png and /dev/null differ diff --git a/assets/map-import-polygon.png b/assets/map-import-polygon.png deleted file mode 100644 index 589473d..0000000 Binary files a/assets/map-import-polygon.png and /dev/null differ diff --git a/assets/map-optimize-route.png b/assets/map-optimize-route.png deleted file mode 100644 index fe767ec..0000000 Binary files a/assets/map-optimize-route.png and /dev/null differ diff --git a/assets/map-place-circle.png b/assets/map-place-circle.png deleted file mode 100644 index 6e049d1..0000000 Binary files a/assets/map-place-circle.png and /dev/null differ diff --git a/assets/map-routing.png b/assets/map-routing.png deleted file mode 100644 index ef157eb..0000000 Binary files a/assets/map-routing.png and /dev/null differ diff --git a/assets/map-settings.png b/assets/map-settings.png deleted file mode 100644 index ee89a70..0000000 Binary files a/assets/map-settings.png and /dev/null differ diff --git a/assets/map-view-gyms.png b/assets/map-view-gyms.png deleted file mode 100644 index a21dc98..0000000 Binary files a/assets/map-view-gyms.png and /dev/null differ diff --git a/assets/map-view-spawns.png b/assets/map-view-spawns.png deleted file mode 100644 index 841ceee..0000000 Binary files a/assets/map-view-spawns.png and /dev/null differ diff --git a/assets/map-view-stops.png b/assets/map-view-stops.png deleted file mode 100644 index 58b2e1b..0000000 Binary files a/assets/map-view-stops.png and /dev/null differ diff --git a/assets/map-viewing.png b/assets/map-viewing.png deleted file mode 100644 index 17de06f..0000000 Binary files a/assets/map-viewing.png and /dev/null differ diff --git a/assets/polygon-options.png b/assets/polygon-options.png deleted file mode 100644 index f8ceea0..0000000 Binary files a/assets/polygon-options.png and /dev/null differ diff --git a/assets/route-point-options.png b/assets/route-point-options.png deleted file mode 100644 index dc21b68..0000000 Binary files a/assets/route-point-options.png and /dev/null differ diff --git a/assets/settings-button.png b/assets/settings-button.png new file mode 100644 index 0000000..1ee6e60 Binary files /dev/null and b/assets/settings-button.png differ diff --git a/assets/settings.png b/assets/settings.png new file mode 100644 index 0000000..d910b42 Binary files /dev/null and b/assets/settings.png differ diff --git a/config/.htpasswd b/config/.htpasswd new file mode 100644 index 0000000..29351a9 --- /dev/null +++ b/config/.htpasswd @@ -0,0 +1 @@ +admin:$apr1$1edgsm5o$xGC./.P3PARUp1x56wEIx/ \ No newline at end of file diff --git a/config/config.env.php b/config/config.env.php new file mode 100644 index 0000000..0713fef --- /dev/null +++ b/config/config.env.php @@ -0,0 +1,21 @@ + diff --git a/css/leaflet-search.css b/css/leaflet-search.css new file mode 100644 index 0000000..7747d6d --- /dev/null +++ b/css/leaflet-search.css @@ -0,0 +1,134 @@ +/* + * Leaflet Control Search v2.9.7 - 2019-01-14 + * + * Copyright 2019 Stefano Cudini + * stefano.cudini@gmail.com + * http://labs.easyblog.it/ + * + * Licensed under the MIT license. + * + * Demo: + * http://labs.easyblog.it/maps/leaflet-search/ + * + * Source: + * git@github.com:stefanocudini/leaflet-search.git + * + */ + +.leaflet-container .leaflet-control-search { + position:relative; + float:left; + background:#fff; + color:#1978cf; + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + background-color: rgba(255, 255, 255, 0.8); + z-index:1000; + margin-left: 10px; + margin-top: 10px; +} +.leaflet-control-search.search-exp {/*expanded*/ + background: #fff; + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; +} +.leaflet-control-search .search-input { + display:block; + float:left; + background: #fff; + border:1px solid #666; + border-radius:2px; + height:22px; + padding:0 20px 0 2px; + margin:4px 0 4px 4px; +} +.leaflet-control-search.search-load .search-input { + background: url('../other/loader.gif') no-repeat center right #fff; +} +.leaflet-control-search.search-load .search-cancel { + visibility:hidden; +} +.leaflet-control-search .search-cancel { + display:block; + width:22px; + height:22px; + position:absolute; + right:28px; + margin:6px 0; + background: url('../other/search-icon.png') no-repeat 0 -46px; + text-decoration:none; + filter: alpha(opacity=80); + opacity: 0.8; +} +.leaflet-control-search .search-cancel:hover { + filter: alpha(opacity=100); + opacity: 1; +} +.leaflet-control-search .search-cancel span { + display:none;/* comment for cancel button imageless */ + font-size:18px; + line-height:20px; + color:#ccc; + font-weight:bold; +} +.leaflet-control-search .search-cancel:hover span { + color:#aaa; +} +.leaflet-control-search .search-button { + display:block; + float:left; + width:30px; + height:30px; + background: url('../other/search-icon.png') no-repeat 4px 4px #fff; + border-radius:4px; +} +.leaflet-control-search .search-button:hover { + background: url('../other/search-icon.png') no-repeat 4px -20px #fafafa; +} +.leaflet-control-search .search-tooltip { + position:absolute; + top:100%; + left:0; + float:left; + list-style: none; + padding-left: 0; + min-width:120px; + max-height:122px; + box-shadow: 1px 1px 6px rgba(0,0,0,0.4); + background-color: rgba(0, 0, 0, 0.25); + z-index:1010; + overflow-y:auto; + overflow-x:hidden; + cursor: pointer; +} +.leaflet-control-search .search-tip { + margin:2px; + padding:2px 4px; + display:block; + color:black; + background: #eee; + border-radius:.25em; + text-decoration:none; + white-space:nowrap; + vertical-align:center; +} +.leaflet-control-search .search-button:hover { + background-color: #f4f4f4; +} +.leaflet-control-search .search-tip-select, +.leaflet-control-search .search-tip:hover { + background-color: #fff; +} +.leaflet-control-search .search-alert { + cursor:pointer; + clear:both; + font-size:.75em; + margin-bottom:5px; + padding:0 .25em; + color:#e00; + font-weight:bold; + border-radius:.25em; +} \ No newline at end of file diff --git a/css/multi.select.css b/css/multi.select.css new file mode 100644 index 0000000..161b15a --- /dev/null +++ b/css/multi.select.css @@ -0,0 +1,9 @@ +.wrapper{float:left;width:100%;margin:20px 0} +.fill{color:#fff!important} +.button-blue.fill{background-color:#367fa9} +.button-green.fill{background-color:#5F9323} +.button-aqua.fill{background-color:#00acd6}.button-red.fill{background-color:#d73925} +.button-yellow.fill{background-color:#e08e0b}.button-maroon.fill{background-color:#b20e48} +.button-purple.fill{background-color:#555299}.button-grey.fill{background-color:#5d636e} +.multi-button, +.button{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:600;line-height:1.42857143;text-align:left;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:1px;background-color:#fff}.multi-button::after{background-color:transparent;border-left:none;box-sizing:border-box;color:#fff;content:"\2207";display:inline-block;font-family:"FontAwesome";height:100%;margin-left:-17px;padding:4px 4px 0 3px;pointer-events:none;position:absolute;right:0;text-align:center;top:0;vertical-align:middle;width:23px;z-index:2;transition:transform .25s linear;-webkit-transition:-webkit-transform .25s linear}.multi-button.open::after{font-weight:700;-webkit-transform:rotate(180deg);transform:rotate(180deg);padding:6px 4px 0 3px}.test-values{border-radius:4px;margin-left:10px}.button-xsmall{padding:1px 5px;font-size:12px;line-height:1.5;color:#333}.button-small{padding:5px 10px;font-size:12px;line-height:1.5;color:#333}.button-big{padding:10px 16px;font-size:18px;line-height:1.5;color:#333}.multi-button.button-file{position:relative;overflow:hidden}.button-blue{border-color:#367fa9}.button-blue:hover,.button-blue:active{border-color:#367fa9}.button-green{border-color:#5F9323}.button-green:hover,.button-green:active{border-color:#5F9323}.button-aqua{border-color:#00acd6}.button-aqua:hover,.button-aqua:active{border-color:#00acd6}.button-red{border-color:#d73925}.button-red:hover,.button-red:active{border-color:#d73925}.button-yellow{border-color:#e08e0b}.button-yellow:hover,.button-yellow:active{border-color:#e08e0b}.button-maroon{border-color:#b20e48}.button-maroon:hover,.button-maroon:active{border-color:#b20e48}.button-purple{border-color:#555299}.button-purple:hover,.button-purple:active{border-color:#302c85}.button-grey{border-color:#5d636e}.button-grey:hover,.button-grey:active{border-color:#5d636e}.button-file input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;filter:alpha(opacity=0);opacity:0;outline:none;background:white;cursor:inherit;display:block}.multi-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:0 0 1px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);width:100%}.open>.multi-menu{display:block}.multi-menu li{position:relative;padding:5px 10px;margin-top:1px}.multi-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.multi-menu li a span.text{display:inline-block;position:relative}.multi-menu li a span.check-mark{display:none}.multi-menu li.selected a span.check-mark{position:absolute;display:inline-block;right:15px;margin-top:0}.multi-menu li .searchbox{padding:4px 8px}.multi-menu li .searchbox .search-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;margin-bottom:0;width:100%;float:none}.multi-menu li.control,.multi-menu li.control:hover{background-color:#fff!important}.multi-menu li.control a.select-all-none{color:#000!important}.multi-menu li.control:hover a.select-all-none{color:#444!important}.multi-button .multi-menu li:hover{background-color:#efefef}.button-blue .multi-menu li.selected,.button-blue .multi-menu li.selected:hover,.button-blue .multi-menu li.controls{background-color:#3c8dbc}.button-blue .multi-menu li.selected a{color:#fff}.button-green .multi-menu li.selected,.button-green .multi-menu li.selected:hover,.button-green .multi-menu li.controls{background-color:#67a028}.button-green .multi-menu li.selected a{color:#fff}.button-aqua .multi-menu li.selected,.button-aqua .multi-menu li.selected:hover,.button-aqua .multi-menu li.controls{background-color:#00c0ef}.button-aqua .multi-menu li.selected a{color:#fff}.button-red .multi-menu li.selected,.button-red .multi-menu li.selected:hover,.button-red .multi-menu li.controls{background-color:#dd4b39}.button-red .multi-menu li.selected a{color:#fff}.button-yellow .multi-menu li.selected,.button-yellow .multi-menu li.selected:hover,.button-yellow .multi-menu li.controls{background-color:#f39c12}.button-yellow .multi-menu li.selected a{color:#fff}.button-maroon .multi-menu li.selected,.button-maroon .multi-menu li.selected:hover,.button-maroon .multi-menu li.controls{background-color:#B7174F}.button-maroon .multi-menu li.selected a{color:#fff}.button-purple .multi-menu li.selected,.button-purple .multi-menu li.selected:hover,.button-purple .multi-menu li.controls{background-color:#555299}.button-purple .multi-menu li.selected a{color:#fff}.button-grey .multi-menu li.selected,.button-grey .multi-menu li.selected:hover,.button-grey .multi-menu li.controls{background-color:#80848c}.button-grey .multi-menu li.selected a{color:#fff}.multi-button .button-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:94%;display:inline-block;vertical-align:bottom}ol,ul{margin-top:10px;margin-bottom:10px}.list-wrapper{padding-left:0;margin-bottom:20px}.list-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-item .file-name{max-width:90%;width:auto;white-space:nowrap;overflow:hidden!important;text-overflow:ellipsis;display:inline-block}.overflow-list{max-height:302px;overflow-y:auto;overflow-x:hidden;width:20%}.float-left{float:left!important}.float-right{float:right!important}.icon-upload{background-attachment:scroll;background-repeat:no-repeat;background-image:url(../images/icons/upload-up-white.svg);background-position:0 0;background-size:100% auto;margin:0;padding:0;display:inline-block;min-height:15px;min-width:16px}.icon-upload-o{background-attachment:scroll;background-repeat:no-repeat;background-image:url(../images/icons/upload-button.svg);background-position:0 0;background-size:100% auto;margin:0;padding:0;display:inline-block;min-height:14px;min-width:16px}.remove-file{font-weight:700}.remove-icon{position:absolute;bottom:-9px;right:-9px;font-weight:700}.data-display{display:block;float:left;list-style:none}.data-display li{border:1px solid #ccc;margin-left:-1px;float:left;padding:5px 10px;margin-top:-1px;min-width:30px;text-align:center} diff --git a/css/pick-a-color-1.2.3.min.css b/css/pick-a-color-1.2.3.min.css new file mode 100644 index 0000000..341cce6 --- /dev/null +++ b/css/pick-a-color-1.2.3.min.css @@ -0,0 +1,86 @@ + +.pick-a-color-markup *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} +.pick-a-color-markup .hex-pound{padding-left:8px;padding-right:8px}@media screen and (max-width:991px){.pick-a-color-markup .hex-pound{padding:3px 5px 0px 5px;min-height:30px}} +.pick-a-color-markup .pick-a-color{padding:5px}@media screen and (max-width:991px){.pick-a-color-markup .pick-a-color{width:100%;font-size:18px;padding:9px;min-width:222px;height:47px}} +.pick-a-color-markup .input-group-btn .color-dropdown{padding:6px 5px}.pick-a-color-markup .input-group-btn .color-dropdown.no-hex{border-bottom-left-radius:4px;border-top-left-radius:4px} +.pick-a-color-markup .input-group-btn .color-dropdown:focus{background-color:#fff} +@media screen and (max-width:991px){.pick-a-color-markup .input-group-btn .color-dropdown{height:47px}} +.pick-a-color-markup .color-preview{border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 0 2px 2px rgba(0,0,0,0.075);box-shadow:inset 0 0 2px 2px rgba(0,0,0,0.075);height:1.429em;width:1.429em;display:inline-block;cursor:pointer;margin-right:5px}.pick-a-color-markup .color-preview.current-color{margin-bottom:-5px} +@media screen and (max-width:991px){.pick-a-color-markup .color-preview{height:1.875em;width:1.875em}} +.pick-a-color-markup .color-menu{text-align:left;padding:5px 0px;width:330px;font-size:14px;left:auto;}.pick-a-color-markup .color-menu.color-menu--inline{left:-285px}@media screen and (max-width:991px){.pick-a-color-markup .color-menu.color-menu--inline{left:-242px}} +@media screen and (max-width:991px){.pick-a-color-markup .color-menu{left:-242px;width:293px}}.pick-a-color-markup .color-menu.small{width:100px}@media screen and (max-width:991px){.pick-a-color-markup .color-menu.small{left:-105px}} +.pick-a-color-markup .color-menu.no-hex{left:0px} +.pick-a-color-markup .color-menu ul{padding:0px;margin:0px} +.pick-a-color-markup .color-menu li{list-style-type:none;padding:5px 0px;margin:0px} +.pick-a-color-markup .color-menu .color-preview{vertical-align:middle;margin:0px}@media screen and (max-width:991px){.pick-a-color-markup .color-menu .color-preview{height:35px;width:35px}}.pick-a-color-markup .color-menu .color-preview.current-color,.pick-a-color-markup .color-menu .color-preview.white{background-color:#fff} +.pick-a-color-markup .color-menu .color-preview.red{background-color:#f00} +.pick-a-color-markup .color-menu .color-preview.orange{background-color:#f60} +.pick-a-color-markup .color-menu .color-preview.yellow{background-color:#ff0} +.pick-a-color-markup .color-menu .color-preview.green{background-color:#008000} +.pick-a-color-markup .color-menu .color-preview.blue{background-color:#00f} +.pick-a-color-markup .color-menu .color-preview.indigo{background-color:#4a0080} +.pick-a-color-markup .color-menu .color-preview.violet{background-color:#ee81ee} +.pick-a-color-markup .color-menu .color-preview.purple{background-color:#80007f} +.pick-a-color-markup .color-menu .color-preview.black{background-color:#000} +.pick-a-color-markup .color-menu .basicColors-content li>a,.pick-a-color-markup .color-menu .savedColors-content li>a{padding:5px 15px 3px 15px;cursor:default;min-height:25px;color:#333}.pick-a-color-markup .color-menu .basicColors-content li>a:hover,.pick-a-color-markup .color-menu .savedColors-content li>a:hover{background-color:#fff} +@media screen and (max-width:991px){.pick-a-color-markup .color-menu .basicColors-content li>a,.pick-a-color-markup .color-menu .savedColors-content li>a{min-height:40px}} +.pick-a-color-markup .color-menu .basicColors-content li:hover a,.pick-a-color-markup .color-menu .savedColors-content li:hover a{color:#333;background-image:none;filter:none;text-decoration:none;font-weight:bold}@media screen and (max-width:991px){.pick-a-color-markup .color-menu .basicColors-content li:hover a,.pick-a-color-markup .color-menu .savedColors-content li:hover a{background-color:#fff;font-weight:normal}} +.pick-a-color-markup .color-menu .btn.color-select{margin:0px 5px;height:20px;padding:0px 5px;margin-top:0px;line-height:1.5px;border-radius:4px}@media screen and (max-width:991px){.pick-a-color-markup .color-menu .btn.color-select{height:35px}} +.pick-a-color-markup .caret{margin-bottom:3px} +.pick-a-color-markup .color-menu-instructions,.pick-a-color-markup .advanced-instructions{text-align:center;padding:0px 6px;margin:0px;font-size:14px;font-weight:normal}@media screen and (min-width:992px){.pick-a-color-markup .color-menu-instructions,.pick-a-color-markup .advanced-instructions{display:none}} +.pick-a-color-markup .color-label{vertical-align:middle;margin:0px;margin-left:10px;cursor:pointer}@media screen and (max-width:991px){.pick-a-color-markup .color-label{margin-left:8px}} +.pick-a-color-markup .color-box{height:20px;width:200px;position:absolute;left:115px;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 0 2px 2px rgba(0,0,0,0.075);box-shadow:inset 0 0 2px 2px rgba(0,0,0,0.075);cursor:pointer}@media screen and (max-width:991px){.pick-a-color-markup .color-box{width:160px;height:35px}} +.pick-a-color-markup .black .highlight-band-stripe{background-color:#fff} +.pick-a-color-markup .spectrum-white{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#fff), to(#808080));background-image:-webkit-linear-gradient(left, color-stop(#fff 0), color-stop(#808080 100%));background-image:-moz-linear-gradient(left, #fff 0, #808080 100%);background-image:linear-gradient(to right, #fff 0, #808080 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ff808080', GradientType=1)}.pick-a-color-markup .spectrum-white .highlight-band{left:0px} +.pick-a-color-markup .spectrum-red{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #fff), color-stop(.5, #f00), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #fff 0, #f00 50%, #000 100%);background-image:-webkit-linear-gradient(left, #fff 0, #f00 50%, #000 100%);background-image:-o-linear-gradient(left, #fff 0, #f00 50%, #000 100%);background-image:linear-gradient(to right, #fff 0, #f00 50%, #000 100%);background-repeat:repeat-x} +.pick-a-color-markup .spectrum-orange{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #fff), color-stop(.5, #f60), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #fff 0, #f60 50%, #000 100%);background-image:-webkit-linear-gradient(left, #fff 0, #f60 50%, #000 100%);background-image:-o-linear-gradient(left, #fff 0, #f60 50%, #000 100%);background-image:linear-gradient(to right, #fff 0, #f60 50%, #000 100%);background-repeat:repeat-x} +.pick-a-color-markup .spectrum-yellow{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #fff), color-stop(.5, #ff0), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #fff 0, #ff0 50%, #000 100%);background-image:-webkit-linear-gradient(left, #fff 0, #ff0 50%, #000 100%);background-image:-o-linear-gradient(left, #fff 0, #ff0 50%, #000 100%);background-image:linear-gradient(to right, #fff 0, #ff0 50%, #000 100%);background-repeat:repeat-x} +.pick-a-color-markup .spectrum-green{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #80ff80), color-stop(.5, #008000), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #80ff80 0, #008000 50%, #000 100%);background-image:-webkit-linear-gradient(left, #80ff80 0, #008000 50%, #000 100%);background-image:-o-linear-gradient(left, #80ff80 0, #008000 50%, #000 100%);background-image:linear-gradient(to right, #80ff80 0, #008000 50%, #000 100%);background-repeat:repeat-x} +.pick-a-color-markup .spectrum-blue{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #fff), color-stop(.5, #00f), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #fff 0, #00f 50%, #000 100%);background-image:-webkit-linear-gradient(left, #fff 0, #00f 50%, #000 100%);background-image:-o-linear-gradient(left, #fff 0, #00f 50%, #000 100%);background-image:linear-gradient(to right, #fff 0, #00f 50%, #000 100%);background-repeat:repeat-x} +.pick-a-color-markup .spectrum-purple{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #ff80ff), color-stop(.5, #80007f), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #ff80ff 0, #80007f 50%, #000 100%);background-image:-webkit-linear-gradient(left, #ff80ff 0, #80007f 50%, #000 100%);background-image:-o-linear-gradient(left, #ff80ff 0, #80007f 50%, #000 100%);background-image:linear-gradient(to right, #ff80ff 0, #80007f 50%, #000 100%);background-repeat:repeat-x} +.pick-a-color-markup .spectrum-black{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#000), to(#808080));background-image:-webkit-linear-gradient(left, color-stop(#000 0), color-stop(#808080 100%));background-image:-moz-linear-gradient(left, #000 0, #808080 100%);background-image:linear-gradient(to right, #000 0, #808080 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff000000', endColorstr='#ff808080', GradientType=1)}.pick-a-color-markup .spectrum-black .highlight-band{left:0px;border:1px solid #808080} +.pick-a-color-markup .ie-spectrum{height:20px;width:100px;display:inline-block;top:-1}.pick-a-color-markup .ie-spectrum.hue{width:50.5px}@media screen and (max-width:991px){.pick-a-color-markup .ie-spectrum.hue{width:45.5px}} +@media screen and (max-width:991px){.pick-a-color-markup .ie-spectrum{width:80px;height:35px}} +.pick-a-color-markup .red-spectrum-0,.pick-a-color-markup .lightness-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#fff), to(#f00));background-image:-webkit-linear-gradient(left, color-stop(#fff 0), color-stop(#f00 100%));background-image:-moz-linear-gradient(left, #fff 0, #f00 100%);background-image:linear-gradient(to right, #fff 0, #f00 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffff0000', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px} +.pick-a-color-markup .red-spectrum-1,.pick-a-color-markup .lightness-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#f00), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#f00 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #f00 0, #000 100%);background-image:linear-gradient(to right, #f00 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff0000', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px} +.pick-a-color-markup .lightness-spectrum-0,.pick-a-color-markup .lightness-spectrum-1{width:150px}@media screen and (max-width:991px){.pick-a-color-markup .lightness-spectrum-0,.pick-a-color-markup .lightness-spectrum-1{width:135px}} +.pick-a-color-markup .orange-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#fff), to(#f60));background-image:-webkit-linear-gradient(left, color-stop(#fff 0), color-stop(#f60 100%));background-image:-moz-linear-gradient(left, #fff 0, #f60 100%);background-image:linear-gradient(to right, #fff 0, #f60 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffff6600', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px} +.pick-a-color-markup .orange-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#f60), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#f60 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #f60 0, #000 100%);background-image:linear-gradient(to right, #f60 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff6600', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px} +.pick-a-color-markup .yellow-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#fff), to(#ff0));background-image:-webkit-linear-gradient(left, color-stop(#fff 0), color-stop(#ff0 100%));background-image:-moz-linear-gradient(left, #fff 0, #ff0 100%);background-image:linear-gradient(to right, #fff 0, #ff0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffffff00', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px} +.pick-a-color-markup .yellow-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#ff0), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#ff0 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #ff0 0, #000 100%);background-image:linear-gradient(to right, #ff0 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff00', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px} +.pick-a-color-markup .green-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#80ff80), to(#008000));background-image:-webkit-linear-gradient(left, color-stop(#80ff80 0), color-stop(#008000 100%));background-image:-moz-linear-gradient(left, #80ff80 0, #008000 100%);background-image:linear-gradient(to right, #80ff80 0, #008000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff80ff80', endColorstr='#ff008000', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px} +.pick-a-color-markup .green-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#008000), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#008000 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #008000 0, #000 100%);background-image:linear-gradient(to right, #008000 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff008000', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px} +.pick-a-color-markup .blue-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#fff), to(#00f));background-image:-webkit-linear-gradient(left, color-stop(#fff 0), color-stop(#00f 100%));background-image:-moz-linear-gradient(left, #fff 0, #00f 100%);background-image:linear-gradient(to right, #fff 0, #00f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ff0000ff', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px} +.pick-a-color-markup .blue-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#00f), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#00f 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #00f 0, #000 100%);background-image:linear-gradient(to right, #00f 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000ff', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px} +.pick-a-color-markup .purple-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#ff80ff), to(#80007f));background-image:-webkit-linear-gradient(left, color-stop(#ff80ff 0), color-stop(#80007f 100%));background-image:-moz-linear-gradient(left, #ff80ff 0, #80007f 100%);background-image:linear-gradient(to right, #ff80ff 0, #80007f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff80ff', endColorstr='#ff80007f', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px} +.pick-a-color-markup .purple-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#80007f), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#80007f 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #80007f 0, #000 100%);background-image:linear-gradient(to right, #80007f 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff80007f', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px} +.pick-a-color-markup .saturation-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#808080), to(#bf4040));background-image:-webkit-linear-gradient(left, color-stop(#808080 0), color-stop(#bf4040 100%));background-image:-moz-linear-gradient(left, #808080 0, #bf4040 100%);background-image:linear-gradient(to right, #808080 0, #bf4040 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff808080', endColorstr='#ffbf4040', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px;width:150px}@media screen and (max-width:991px){.pick-a-color-markup .saturation-spectrum-0{width:135px}} +.pick-a-color-markup .saturation-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#bf4040), to(#f00));background-image:-webkit-linear-gradient(left, color-stop(#bf4040 0), color-stop(#f00 100%));background-image:-moz-linear-gradient(left, #bf4040 0, #f00 100%);background-image:linear-gradient(to right, #bf4040 0, #f00 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbf4040', endColorstr='#ffff0000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px;width:150px}@media screen and (max-width:991px){.pick-a-color-markup .saturation-spectrum-1{width:135px}} +.pick-a-color-markup .hue-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#f00), to(#ff0));background-image:-webkit-linear-gradient(left, color-stop(#f00 0), color-stop(#ff0 100%));background-image:-moz-linear-gradient(left, #f00 0, #ff0 100%);background-image:linear-gradient(to right, #f00 0, #ff0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff0000', endColorstr='#ffffff00', GradientType=1)} +.pick-a-color-markup .hue-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#ff0), to(#0f0));background-image:-webkit-linear-gradient(left, color-stop(#ff0 0), color-stop(#0f0 100%));background-image:-moz-linear-gradient(left, #ff0 0, #0f0 100%);background-image:linear-gradient(to right, #ff0 0, #0f0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff00', endColorstr='#ff00ff00', GradientType=1)} +.pick-a-color-markup .hue-spectrum-2{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#0f0), to(#0ff));background-image:-webkit-linear-gradient(left, color-stop(#0f0 0), color-stop(#0ff 100%));background-image:-moz-linear-gradient(left, #0f0 0, #0ff 100%);background-image:linear-gradient(to right, #0f0 0, #0ff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff00', endColorstr='#ff00ffff', GradientType=1);left:-1px;position:relative} +.pick-a-color-markup .hue-spectrum-3{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#0ff), to(#00f));background-image:-webkit-linear-gradient(left, color-stop(#0ff 0), color-stop(#00f 100%));background-image:-moz-linear-gradient(left, #0ff 0, #00f 100%);background-image:linear-gradient(to right, #0ff 0, #00f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ffff', endColorstr='#ff0000ff', GradientType=1);left:-1px;position:relative} +.pick-a-color-markup .hue-spectrum-4{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#00f), to(#f0f));background-image:-webkit-linear-gradient(left, color-stop(#00f 0), color-stop(#f0f 100%));background-image:-moz-linear-gradient(left, #00f 0, #f0f 100%);background-image:linear-gradient(to right, #00f 0, #f0f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000ff', endColorstr='#ffff00ff', GradientType=1);left:-1px;position:relative} +.pick-a-color-markup .hue-spectrum-5{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#f0f), to(#f00));background-image:-webkit-linear-gradient(left, color-stop(#f0f 0), color-stop(#f00 100%));background-image:-moz-linear-gradient(left, #f0f 0, #f00 100%);background-image:linear-gradient(to right, #f0f 0, #f00 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00ff', endColorstr='#ffff0000', GradientType=1);left:-2px;position:relative} +.pick-a-color-markup .highlight-band{border:1px solid #222;border-radius:2px;-webkit-box-shadow:1px 1px 1px #333;box-shadow:1px 1px 1px #333;height:19px;width:11px;display:inline-block;cursor:pointer;cursor:-webkit-grab;cursor:-moz-grab;position:absolute;top:-1px;left:94.5px;text-align:center}@media screen and (max-width:991px){.pick-a-color-markup .highlight-band{width:21px;left:69.5px;height:34px}} +.pick-a-color-markup .highlight-band-stripe{min-height:80%;min-width:1px;background-color:#000;opacity:0.40;margin:2px 1px;display:inline-block;-webkit-box-shadow:1px 0 2px 0 #fff;box-shadow:1px 0 2px 0 #fff}@media screen and (max-width:991px){.pick-a-color-markup .highlight-band-stripe{margin:4px 2px}} +.pick-a-color-markup .color-menu-tabs{padding:5px 3px 3px 10px;font-size:12px;color:#333;border-bottom:1px solid #ccc;margin-bottom:5px}.pick-a-color-markup .color-menu-tabs .tab{padding:4px 5px;margin:5px;border-left:1px solid #fff;border-right:1px solid #fff;cursor:pointer;background-color:#fff}.pick-a-color-markup .color-menu-tabs .tab:hover{padding-bottom:6px;border-top:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;border-top-right-radius:4px;border-top-left-radius:4px} +.pick-a-color-markup .color-menu-tabs a{color:#333;text-decoration:none} +.pick-a-color-markup .color-menu-tabs .tab-active{border-bottom:3px solid #fff;padding-bottom:5px;border-top:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;border-top-right-radius:4px;border-top-left-radius:4px} +.pick-a-color-markup .active-content{display:block} +.pick-a-color-markup .inactive-content{display:none} +.pick-a-color-markup .savedColors-content{padding:5px 15px;white-space:normal}.pick-a-color-markup .savedColors-content li.color-item>a{margin-left:7px;padding-left:8px;border-radius:4px} +.pick-a-color-markup .saved-color-col{position:relative;left:-15px;float:left;width:149px}@media screen and (max-width:991px){.pick-a-color-markup .saved-color-col{width:130px}} +.pick-a-color-markup .advanced-content ul{margin-top:10px} +.pick-a-color-markup .advanced-content li{padding:5px 15px 3px 15px;cursor:default;min-height:25px;height:50px;position:relative}@media screen and (max-width:991px){.pick-a-color-markup .advanced-content li{min-height:70px}} +.pick-a-color-markup .advanced-content .color-preview{height:50px;width:300px;float:left;margin:0px 0px 10px 0px;background-color:#f00;text-align:center}.pick-a-color-markup .advanced-content .color-preview .color-select.btn.advanced{margin-top:15px;display:none}@media screen and (max-width:991px){.pick-a-color-markup .advanced-content .color-preview .color-select.btn.advanced{display:inline;margin-top:7px}} +.pick-a-color-markup .advanced-content .color-preview:hover .color-select.btn.advanced{display:inline} +@media screen and (max-width:991px){.pick-a-color-markup .advanced-content .color-preview{width:270px;margin-left:-10px}} +.pick-a-color-markup .advanced-content .spectrum-hue{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #f00), color-stop(17%, #ff0), color-stop(34%, #0f0), color-stop(51%, #0ff), color-stop(68%, #00f), color-stop(85%, #f0f), color-stop(100%, #f00));background-image:-moz-linear-gradient(left center, #f00 0, #ff0 17%, #0f0 24%, #0ff 51%, #00f 68%, #f0f 85%, #f00 100%);background-image:-webkit-linear-gradient(left, #f00 0, #ff0 17%, #0f0 24%, #0ff 51%, #00f 68%, #f0f 85%, #f00 100%);background-image:-o-linear-gradient(left, #f00 0, #ff0 17%, #0f0 24%, #0ff 51%, #00f 68%, #f0f 85%, #f00 100%);background-image:linear-gradient(to right, #f00 0, #ff0 17%, #0f0 24%, #0ff 51%, #00f 68%, #f0f 85%, #f00 100%);background-repeat:repeat-x}.pick-a-color-markup .advanced-content .spectrum-hue .highlight-band{left:0px} +.pick-a-color-markup .advanced-content .spectrum-lightness{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #fff), color-stop(.5, #f00), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #fff 0, #f00 50%, #000 100%);background-image:-webkit-linear-gradient(left, #fff 0, #f00 50%, #000 100%);background-image:-o-linear-gradient(left, #fff 0, #f00 50%, #000 100%);background-image:linear-gradient(to right, #fff 0, #f00 50%, #000 100%);background-repeat:repeat-x} +.pick-a-color-markup .advanced-content .spectrum-saturation{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #808080), color-stop(.5, #f00), color-stop(1, #f00));background-image:-moz-linear-gradient(left center, #808080 0, #f00 50%, #f00 100%);background-image:-webkit-linear-gradient(left, #808080 0, #f00 50%, #f00 100%);background-image:-o-linear-gradient(left, #808080 0, #f00 50%, #f00 100%);background-image:linear-gradient(to right, #808080 0, #f00 50%, #f00 100%);background-repeat:repeat-x}.pick-a-color-markup .advanced-content .spectrum-saturation .highlight-band{left:287px}@media screen and (max-width:991px){.pick-a-color-markup .advanced-content .spectrum-saturation .highlight-band{left:247px}} +.pick-a-color-markup .advanced-content .spectrum-lightness .highlight-band{left:143.5px}@media screen and (max-width:991px){.pick-a-color-markup .advanced-content .spectrum-lightness .highlight-band{left:123.5px}} +.pick-a-color-markup .advanced-content .lightness-text,.pick-a-color-markup .advanced-content .hue-text,.pick-a-color-markup .advanced-content .saturation-text,.pick-a-color-markup .advanced-content .preview-text{vertical-align:middle;text-align:center;display:block} +.pick-a-color-markup .advanced-content .color-box{left:15px;top:25px;width:300px}@media screen and (max-width:991px){.pick-a-color-markup .advanced-content .color-box{width:270px;left:10px}} +.pick-a-color-markup .advanced-content .preview-item{height:80px} +@-moz-document url-prefix(){@media screen and (max-width:991px){div.pick-a-color-markup .color-menu{left:0px}}} diff --git a/deprecated/circle_generator.html b/deprecated/circle_generator.html deleted file mode 100644 index 095a15a..0000000 --- a/deprecated/circle_generator.html +++ /dev/null @@ -1,232 +0,0 @@ - - - -
-