diff --git a/.babelrc b/.babelrc new file mode 100644 index 000000000..9f90cda5d --- /dev/null +++ b/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": ["es2015"], + "plugins": ["add-module-exports", "transform-es3-member-expression-literals", "transform-es3-property-literals"] +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..90913b4b9 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,30 @@ +# http://editorconfig.org + +# A special property that should be specified at the top of the file outside of +# any sections. Set to true to stop .editor config file search on current file +root = true + +[*] +# Indentation style +# Possible values - tab, space +indent_style = space + +# Indentation size in single-spaced characters +# Possible values - an integer, tab +indent_size = 2 + +# Line ending file format +# Possible values - lf, crlf, cr +end_of_line = lf + +# File character encoding +# Possible values - latin1, utf-8, utf-16be, utf-16le +charset = utf-8 + +# Denotes whether to trim whitespace at the end of lines +# Possible values - true, false +trim_trailing_whitespace = true + +# Denotes whether file should end with a newline +# Possible values - true, false +insert_final_newline = true diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 000000000..76d01dbfd --- /dev/null +++ b/.eslintrc @@ -0,0 +1,47 @@ +{ + "ecmaFeatures": { + "globalReturn": true, + "jsx": false, + "modules": true + }, + "rules": { + "strict": 1, + "no-underscore-dangle": 0, + "no-unused-vars": 1, + "curly": 0, + "no-multi-spaces": 1, + "key-spacing": 0, + "no-return-assign": 0, + "consistent-return": 1, + "no-shadow": 1, + "comma-dangle": 0, + "no-use-before-define": 1, + "no-empty": 1, + "new-parens": 1, + "no-cond-assign": 1, + "quotes": [2, "single", "avoid-escape"], + "camelcase": 0, + "new-cap": [1, { "capIsNew": false }], + "no-undef": 1, + "semi": [2, "never"] + }, + "env": { + "browser": true, + "es6": true, + "node": true + }, + "globals": { + "document": false, + "escape": false, + "navigator": false, + "unescape": false, + "window": false, + "describe": true, + "before": true, + "it": true, + "expect": true, + "sinon": true + }, + "parser": "babel-eslint", + "plugins": [], +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..d8b156dce --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +node_modules +dist +.tmp +bower_components +config.local.js +.publish +build +npm-debug.log +styleguide +gh-pages diff --git a/.postcss.js b/.postcss.js new file mode 100644 index 000000000..aa74c3806 --- /dev/null +++ b/.postcss.js @@ -0,0 +1,46 @@ +module.exports = { + use: [ + 'postcss-devtools', + + 'postcss-easy-import', + 'postcss-custom-properties', + 'postcss-custom-media', + + 'postcss-each', + 'postcss-nesting', + + 'postcss-extend', + 'postcss-color-function', + 'postcss-inline-svg', + 'postcss-assets', + 'postcss-url', + 'postcss-calc', + 'autoprefixer', + + // @FIXME: get rid of the following + // when dropping support for ie8 + 'postcss-pseudoelements', + + 'postcss-flexbugs-fixes', + 'postcss-reporter' + ], + 'autoprefixer': { + browsers: ['last 10 versions', 'ie 8', 'ie 9'] + }, + 'postcss-url': { + url: 'copy', + assetsPath: './' + }, + 'postcss-inline-svg': { + path: 'src/' + }, + 'postcss-assets': { + loadPaths: [ 'src/' ], + cachebuster: true + }, + postcss: { + from: 'index.css', + to: 'build/build.css', + map: false, + } +}; diff --git a/.stylelintrc b/.stylelintrc new file mode 100644 index 000000000..7e2490463 --- /dev/null +++ b/.stylelintrc @@ -0,0 +1,12 @@ +{ + "plugins": [ + "stylelint-selector-bem-pattern" + ], + "rules": { + "plugin/selector-bem-pattern": { + "preset": "suit" + }, + "at-rule-empty-line-before": null, + }, + "extends": "stylelint-config-suitcss" +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..bd5b9ef86 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,4 @@ +### 0.1.0-alpha1 + +* Release iniziale + diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 000000000..e635b9ce9 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,66 @@ +# Licenza + +## Componenti distribuiti con il toolkit + +Vengono di seguito elencati i componenti distribuiti con il toolkit +che hanno una propria licenza diversa da CC0. + +- [src/vendor/jquery.min.js](https://jquery.com/) (c) jQuery Foundation, licenza MIT +- [src/vendor/modernizr.js](https://modernizr.com/) licenza MIT +- [src/vendor/polyfill.min.js](https://github.com/inexorabletash/polyfill) Unlicense (Public Domain) +- [src/vendor/rem.min.js](https://github.com/chuckcarpenter/REM-unit-polyfill) (c)) Chuck Carpenter, licenza MIT +- [src/vendor/respond.min.js](https://github.com/scottjehl/Respond) (c) Scott Jehl, licenza MIT +- [src/vendor/selectivzr.js](http://selectivizr.com/) (c) Keith Clark, licenza MIT +- [src/vendor/yepnope.js](http://yepnopejs.com/) (c) Alex Sexton, Ralph Holzmann, licenza MIT + +- [src/modules/megamenu/megamenu.js](https://adobe-accessibility.github.io/Accessible-Mega-Menu/) (c) Adobe Systems Incorporated, licenza Apache 2.0 +- [src/src/modules/carousel/a11y.js](https://github.com/rtrvrtg/owlcarousel2-a11ylayer) (c) 2015 Geoffrey Roberts, licenza MIT +- [src/modules/cookiebar/cookiebar.js](https://github.com/carlwoodhouse/jquery.cookieBar) (c) 2016 Carl Woodhouse, licenza MIT +- [src/components/form/index.css](https://github.com/giuseppeg/suitcss-components-form) (c) Giuseppe Gurgone, licenza MIT +- [src/components/table/index.css](https://github.com/trunkclub/suitcss-components-table) (c) Trunk Club, licenza MIT + +Tramite gli [archivi npm](https://www.npmjs.com/): + +- libreria javascript [frend](https://frend.co/) (c) 2015 Adam Duncan, Tom Digby, licenza MIT +- libreria CSS [suitcss](http://suitcss.github.io/) (c) Nicolas Gallagher, licenza MIT +- [headroom.js](http://wicky.nillia.ms/headroom.js/) (c) 2013 Nick Williams, licenza MIT +- [jquery.cookie](https://www.npmjs.com/package/jquery.cookie) (c) Klaus Hartl, licenza MIT +- [owl carousel](http://www.owlcarousel.owlgraphic.com/) (c) Owl (David Deutsch), licenza MIT +- [throttle-debounce](https://github.com/niksy/throttle-debounce) (c) Ivan Nikolić, Ben Alman, licenza MIT +- [salvattore](http://salvattore.com/) (c) 2013-2014 Rolando Murillo and Giorgio Leveroni, licenza MIT + +### Dipendenze per la fase di compilazione + +- compilatore per i fogli di stile [PostCSS](https://github.com/postcss/postcss) (c) Andrey Sitnik, licenza MIT +- generatore della styleguide [Fractal](https://github.com/frctl/fractal) (c) Mark Perkins, licenza MIT +- bundler per i moduli javascript [Webpack](https://webpack.github.io/) (c) Tobias Koppers, licenza MIT +- transpiler per moduli javascript [Babel](https://babeljs.io/), (c) 2014-2016 Sebastian McKenzie, licenza MIT +- linter per javascript [ESLint](http://eslint.org/), (c) jQuery Foundation and other contributors, licenza MIT +- linter per fogli di stile CSS [Stylelint](http://stylelint.io/) (c) Maxime Thirouin, David Clark & Richard Hallows, licenza MIT + +### Testo completo Licenza MIT + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## Salvo dove diversamente indicato, il software è distribuito con licenza CC0. + +### Creative Commons Zero v1.0 Universal + +Questa è una versione comprensibile ad esseri umani del Codice Legale +([leggi il testo integrale](https://wiki.creativecommons.org/wiki/Publicdomain/zero/1.0/LegalText_(Italian))). + +#### Nessun Diritto d'Autore (No Copyright) + +Questa licenza è accettabile per Opere Culturali Libere. La persona che ha associato un'opera con questo atto ha dedicato l'opera al pubblico dominio attraverso la rinuncia a tutti i suoi diritti sull'opera in tutto il mondo come previsti dalle leggi sul diritto d'autore, inclusi tutti i diritti connessi al diritto d'autore o affini, nella misura consentita dalla legge. + +Puoi copiare, modificare, distribuire ed utilizzare l'opera, anche per fini commerciali, senza chiedere alcun permesso. Guarda le Altre Informazioni di seguito. + +#### Altre informazioni + +In nessun modo CC0 riguarda brevetti e marchi di alcuna persona, né sono pregiudicati i diritti che terzi possono vantare sull'opera o sul modo in cui essa viene utilizzata, come, per esempio, il diritto di sfruttamento pubblicitario e il diritto alla riservatezza. Se non diversamente specificato, la persona che ha identificato l'opera con questo atto non fornisce alcuna garanzia sull'opera stessa, e declina ogni responsabilità per tutti gli utilizzi dell'opera nella più ampia misura consentita dalla legge applicabile. Quando utilizzi o citi l'opera non puoi fare intendere alcun tipo di avallo, riconoscimento o sponsorizzazione da parte dell'autore o della persona che ha associato l'opera con questo atto. diff --git a/docs/come-iniziare.md b/docs/come-iniziare.md new file mode 100644 index 000000000..eccdbff4f --- /dev/null +++ b/docs/come-iniziare.md @@ -0,0 +1,33 @@ +--- +order: 3 +title: Come iniziare +label: Come iniziare +--- + +Puoi visualizzare i componenti grafici nella styleguide +navigando dal menu "Componenti": + +- **Components**: elementi base (form, tipografia, tabelle, griglia responsive, ...) +- **Modules**: elementi e "widget" complessi (carousel, accordion, menu, ...) +- **Templates**: template HTML di pagine intere o porzioni rilevanti di queste +- **Utils**: componenti di utilità (margini, padding, colori, tipografia, ...) + +Nella pagina che illustra ogni elemento è visibile il template HTML che lo realizza: +il **codice HTML** a corredo produce l'output visualizzato se vengono contestualmente +utilizzati i fogli di stile (CSS) e gli script (JS) necessari: è possibile scaricare +i file CSS / JS già compilati e incorporarli in un template HTML +come mostrato nel codice di esempio: + +* CSS / Javascript già compilati @TODO +* `index.html` con layout di pagina di esempio @TODO + +Se vuoi personalizzare gli elementi grafici (es. colori), +seguendo questa modalità sarai obbligato a sovrascrivere +le classi del CSS tramite un ulteriore foglio di stile *ad-hoc*; +questa metodologia non è ottimale laddove le personalizzazioni +risultano essere complesse: in questo caso è consigliato +seguire la procedura descritta in "[Utilizzare l'ambiente di sviluppo](/docs/sviluppare)" +agendo direttamente sul codice sorgente dei fogli di stile del toolkit +per realizzare una *build* personalizzata, prima di integrare il CSS nel layout. + +[Tecnologie utilizzate](/docs/tecnologie) diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..133d39cf6 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,25 @@ +--- +order: 1 +title: Linee guida di design per i siti web della Pubblica Amministrazione +label: Introduzione +--- + +## Implementazione CSS/HTML di riferimento + +L'implementazione di riferimento (toolkit) delle "Linee guida di design" +fornisce componenti grafici e interattivi da incorporare +nei siti web delle Pubbliche Amministrazioni (PA): + +- fogli di stile CSS +- componenti Javascript (es. carousel, navigazione ad albero) +- snippet / template HTML nella forma di una styleguide navigabile + +Il toolkit permette di condividere con le PA (e i loro fornitori) +materiale riutilizzabile, mettendo a fattor comune le diverse esperienze +per poi recepire i contributi e incorporarli. + +L'obiettivo è convogliare l'effort su un insieme di elementi condivisi +che possano esser utilizzati nella realizzazione di un sito +o servizio usabile, accessibile e conforme a quanto indicato nelle Linee Guida. + +[Come iniziare](/docs/come-iniziare) diff --git a/docs/moduli.md b/docs/moduli.md new file mode 100644 index 000000000..307ff2fa6 --- /dev/null +++ b/docs/moduli.md @@ -0,0 +1,44 @@ +--- +order: 25 +title: Creare o modificare un modulo +label: Creare o modificare un modulo +--- + +Gli elementi dell'interfaccia (moduli), contenuti nella directory `src/modules` sono costituiti da: + +1. uno (o più) file **CSS** +2. uno (o più) file **Javascript** +3. uno (o più) snippet HTML di esempio (file \*.tmpl) + +All'interno della directory di ogni modulo deve esser presente almeno una tra queste tre componenti. + +Il codice CSS deve esser collocato in un file `src/modules//index.css` +e importato nell'`index.css` globale contenuto nella directory radice del toolkit. + +Il codice Javascript deve esser collocato in un file `src/modules//index.js` +e importato nell'`index.js` globale contenuto nella directory radice del toolkit. + +Ulteriori **assets** (CSS / JS / immagini) contenuti nella directory del modulo +possono essere importati nei rispettivi file index. + +Il nome dei file con gli snippet HTML *deve* iniziare con quello del modulo, ad esempio: + +- `src/modules//.tmpl` +- `src/modules//--2.tmpl` + +Negli snippet HTML è possibile utilizzare i costrutti del +[linguaggio di templating nunjucks](https://mozilla.github.io/nunjucks/). + +I CSS vengono processati tramite PostCSS (e i relativi plugin presentati nella sezione [Tecnologie](/docs/tecnologie)). + +Nei file Javascript è possibile utilizzare la sintassi [ECMAScript 2015](https://babeljs.io/docs/learn-es2015/). + +### Regole generali nello sviluppo di nuovi moduli + +- i moduli devono essere quanto più possibile indipendenti tra loro +- nei CSS si possono utilizzare le classi di utilità (quelle con prefisso `u-*`), ma **non** incorporare selettori di altri moduli +- [le regole di nomenclatura sono quelle di SUIT CSS](https://github.com/suitcss/suit/blob/master/doc/naming-conventions.md) +- i componenti Javascript devono dichiarare tutte le loro dipendenze nell'`index.js` (es. tramite il costrutto `import`) +- è incoraggiato l'utilizzo del costrutto PostCSS `@extend`, ma **esclusivamente** per estendere le classi di utilità (`u-*`) + +[Struttura del filesystem](/docs/struttura) diff --git a/docs/roadmap.md b/docs/roadmap.md new file mode 100644 index 000000000..a49c0c582 --- /dev/null +++ b/docs/roadmap.md @@ -0,0 +1,55 @@ +--- +order: 100 +title: Roadmap +label: Roadmap +--- + +## v0.1.0 + +- **test cross browser** + +- **verifica accessibilità per i componenti js e i template** + +## v1.0.0 + +- security audit (javascript compilato) + +- refactoring di alcuni componenti + +- refactoring margini e padding responsive + +- stylesheet per media print + +- migliorare (o cassare del tutto) il supporto per IE8/9 (legacy.css) + - considerare se introdurre un fallback per immagini svg + - considerare se utilizzare per i browser obsoleti il foglio di stile per la stampa + +## v2.0.0 + +- profiling + - dimensione degli assets + - profiling javascript e transizioni CSS + +- nuovi componenti + - dropdown + - pager + - lightbox + - agenda + - mappa (openstreetmap) + +- design pattern + - form spid + - entry page servizi + - form multistep + - carrello pagopa + +## v3.0.0 + +- sistema per *custom build* + - personalizzazione automatica dei colori + - possibilità di selezionare i singoli moduli + +- progressive web app + - manifest.json + - service worker + - push notification diff --git a/docs/struttura.md b/docs/struttura.md new file mode 100644 index 000000000..aa407bc24 --- /dev/null +++ b/docs/struttura.md @@ -0,0 +1,87 @@ +--- +order: 30 +title: Struttura del file system +label: Struttura del file system +--- + +La directory `src` contiene le sotto-directory: + +- **components** - componenti base (CSS/HTML) quali form, bottoni, griglia responsive, tipografia, ... +- **fonts** - il font Titillium Web e le direttive CSS @font-face relative +- **icons** - le icone svg / png utilizzate nel progetto e il CSS per l'*icon font* +- **legacy** - CSS per supportare i vecchi browser +- **modules** - CSS/Javascript per i vari elementi dell'interfaccia (es. accordion, carousel, ...) +- **scripts** - Javscript "globali" (non legati a una particolare componente dell'interfaccia) +- **templates** - template HTML per elementi del layout e pagine web +- **themes** - il foglio di stile con le personalizzazioni per uno specifico tema (es. colore principale dal quale viene declinata l'intera *palette*) +- **utils** - CSS contenenti classi di utilità generica (margini, padding, tipografia responsive, ...) +- **vendor** - Javascript da incorporare per garantire un minimo grado di compatibilità con i browser obsoleti (IE8/9) + +``` +. +├── docs +└── src + ├── components + │   ├── button + │   ├── form + │   ├── grid + │   ├── heading + │   ├── prose + │   └── table + ├── fonts + │   └── titillium + │   └── font + ├── icons + │   └── ita + │   ├── font + │   ├── png + │   └── svg + ├── legacy + ├── modules + │   ├── accordion + │   ├── alert + │   ├── breadcrumb + │   ├── bullets + │   ├── callout + │   ├── card + │   ├── carousel + │   ├── cookiebar + │   ├── dialog + │   ├── dot + │   ├── entrypoint + │   ├── footer + │   ├── hamburger + │   ├── header + │   ├── leads + │   ├── linklist + │   ├── megamenu + │   ├── navscroll + │   ├── offcanvas + │   ├── packery + │   ├── scrolltop + │   ├── share + │   ├── skiplinks + │   ├── tooltip + │   └── treeview + ├── scripts + ├── templates + │   ├── formtpl + │   ├── layout + │   ├── pages + │   └── tile + ├── themes + │   └── pac + ├── utils + │   ├── borders + │   ├── colors + │   ├── corners + │   ├── display + │   ├── layout + │   ├── shadows + │   ├── space + │   ├── text + │   └── zindex + └── vendor +``` + +[Realizzare un tema](/docs/tema) diff --git a/docs/sviluppare.md b/docs/sviluppare.md new file mode 100644 index 000000000..953c79ed7 --- /dev/null +++ b/docs/sviluppare.md @@ -0,0 +1,71 @@ +--- +order: 20 +title: Utilizzare l'ambiente di sviluppo +label: Utilizzare l'ambiente di sviluppo +--- + +La procedura di seguito descritta è rivolta sia a chi vuole **contribuire allo sviluppo del toolkit** +sia a chi vuole **utilizzare il CSS personalizzato all'interno di un sito web** +per realizzare quindi un "tema" grafico specifico. + +#### Ottenere i sorgenti + +Per ottenere i sorgenti è possibile scaricare direttamente l'[archivio compresso](@TODO) +da GitHub. + +In alternativa è consigliato il download dei sorgenti tramite +il software di versionamento [Git](https://git-scm.com/); +dopo aver [installato Git](https://git-scm.com/book/it/v1/Per-Iniziare-Installare-Git) +è possibile effettuare una copia del repository in locale digitando da linea di comando: + +``` +git clone @TODO +``` + +L'utilizzo di Git permette di mantenere i sorgenti sincronizzati +con i nuovi rilasci del toolkit nonché di contribuire al progetto +proponendo di incorporare le proprie modifiche nella linea principale di sviluppo, +vedi anche: + +* [Fork a repo](https://help.github.com/articles/fork-a-repo/) +* [Using pull request](https://help.github.com/articles/using-pull-requests/) + +#### Installare il software richiesto + +Per poter compilare i sorgenti (CSS / JS) è richiesta l'installazione di [Node.js / npm](https://nodejs.org). + +Terminata l'installazione, la seguente sequenza di comandi eseguiti all'interno della directory del toolkit +completerà il download delle librerie richieste per lo sviluppo: + +``` +npm i -g @frctl/fractal +npm install +``` + +#### Compilare i sorgenti + +Eseguendo il comando + +``` +npm run build +``` + +nella directory `styleguide` verrano resi disponibili i template HTML +corredati degli *assets* (CSS / JS) necessari pronti per poter esser riutilizzati. + +#### Modificare i sorgenti + +Per poter visualizzare la styleguide in locale (i template HTML con i diversi componenti grafici) +è possibile sostituire come ultimo passaggio (al posto di `npm run build`) il comando + +``` +npm run watch +``` + +e visitare con il browser la pagina [http://localhost:1310](http://localhost:1310) + +A questo punto è possibile modificare i sorgenti: qualsiasi modifica effettuata ai fogli di stile CSS, +Javascript e/o template HTML mentre `npm run watch` rimane in esecuzione risulterà immediatamente visibile +nel browser **senza dover ricaricare manualmente la pagina o lanciare il comando di build**. + +[Creare o modificare un modulo](/docs/moduli) diff --git a/docs/tecnologie.md b/docs/tecnologie.md new file mode 100644 index 000000000..6596c4527 --- /dev/null +++ b/docs/tecnologie.md @@ -0,0 +1,85 @@ +--- +order: 15 +title: Principali tecnologie utilizzate +label: Tecnologie utilizzate +--- + +Il toolkit è basato su alcuni software open source che svolgono +diversi task e di cui è bene possedere una conoscenza anche sommaria +prima di procedere a modificare i sorgenti. + +## npm + +Il tool [npm](https://docs.npmjs.com/getting-started/what-is-npm) è utilizzato per +la gestione delle dipendenze necessarie sia alla fase di sviluppo / compilazione +che per i componenti Javascript integrati lato client (nel browser). + +La lista delle librerie utilizzate è visibile nel file `package.json` (@TODO). + +Prima di incorporare nuove dipendenze è bene verificare che siano presenti nel +[registro npm](https://www.npmjs.com/) in modo da poterle integrare più agevolmente. + +## SUIT CSS + +[SUIT CSS](http://suitcss.github.io/) è una metodologia di implementazione +per i fogli di stile CSS a corredo di un insieme di utilità che ne facilitano +la manutenzione. + +Relativamente al toolkit: + +1. vengono adottate le +[convenzioni di nomenclatura](https://github.com/suitcss/suit/blob/master/doc/naming-conventions.md) +SUIT CSS nella stesura del codice dei fogli di stile + +2. vengono utilizzate le [classi di utilità](https://github.com/suitcss/suit/blob/master/doc/utilities.md) +fornite dalla libreria. Si consiglia in particolare di far riferimento alla +[documentazione online delle classi SUIT CSS](https://github.com/suitcss/utils) +con particolare riferimento alla [griglia responsive](https://github.com/suitcss/components-grid/) + +3. viene utilizzato il [preprocessore CSS di SUIT](https://github.com/suitcss/preprocessor) +integrato da un insieme di plugin *ad-hoc*; è possibile visualizzare la lista dei plugin +nel file `.postcss.js` @TODO contenuto nella directory radice del *repository*. + +## PostCSS + +[PostCSS](http://postcss.org/) è un tool che permette di manipolare i CSS tramite javascript. + +I fogli di stile del toolkit vengono trasformati tramite PostCSS: in questo modo è possibile +usufruire di alcuni costrutti non standard che agevolano il mantenimento del codice. +Puoi far riferimento alla documentazione online dei singoli plugin: + +- [postcss-devtools](https://github.com/postcss/postcss-devtools) +- [postcss-easy-import](https://github.com/TrySound/postcss-easy-import) +- [postcss-custom-properties](https://github.com/postcss/postcss-custom-properties) +- [postcss-custom-media](https://github.com/postcss/postcss-custom-media) +- [postcss-nesting](https://github.com/jonathantneal/postcss-nesting) +- [postcss-extend](https://github.com/travco/postcss-extend) +- [postcss-color-function](https://github.com/postcss/postcss-color-function) +- [postcss-inline-svg](https://github.com/TrySound/postcss-inline-svg) +- [postcss-assets](https://github.com/assetsjs/postcss-assets) +- [postcss-url](https://github.com/postcss/postcss-url) +- [postcss-calc](https://github.com/postcss/postcss-calc) +- [autoprefixer](https://github.com/postcss/autoprefixer) +- [postcss-pseudoelements](https://github.com/axa-ch/postcss-pseudoelements) +- [postcss-flexbugs-fixes](https://github.com/luisrudge/postcss-flexbugs-fixes) +- [postcss-reporter](https://github.com/postcss/postcss-reporter) + +## Verifica della sintassi + +Per il *linting* (ovvero, l'analisi del codice in cerca di errori e/o costrutti con sintassi errata) +vengono utlizzati i due tool: + +- [stylelint](http://stylelint.io/) - per il codice CSS +- [ESLint](http://eslint.org/) - per il codice Javascript + +## Generazione della styleguide e dei moduli CSS / JS + +Questi due tool sono attivati dagli *script npm* secondo le modalità descritte +nel capitolo successivo: ["Utilizzare l'ambiente di sviluppo"](/docs/sviluppare): + +- [fractal](http://fractal.build) è utilizzato per generare la *styleguide* (l'elenco navigabile dei componenti grafici) +- [webpack](https://webpack.github.io) organizza i moduli CSS / Javascript in modo da poter esser utilizzati in produzione + +Non è necessario conoscere il funzionamento di questi software che vengono qui citati per completezza. + +[Utilizzare l'ambiente di sviluppo](/docs/sviluppare) diff --git a/docs/tema.md b/docs/tema.md new file mode 100644 index 000000000..bae4125e6 --- /dev/null +++ b/docs/tema.md @@ -0,0 +1,64 @@ +--- +order: 40 +title: Realizzare un tema +label: Realizzare un tema +--- + +All'interno della directory `src/themes` è presente un CSS di esempio in cui viene mostrato come +sovrascrivere le variabili utilizzate all'interno del toolkit: + +``` +/* src/themes/index.css */ +:root { + --Color-primary: #a8336c; + + --Pac-font-family-sans: Titillium Web, HelveticaNeue-Light, Helvetica Neue Light, + Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; +} + +.Pac { + font-family: var(--Pac-font-family-sans); +} +``` + +Similmente è possibile sovrascrivere qualsiasi variabile contenuta nei moduli CSS, +modificando ad esempio i colori che caratterizzano l'aspetto grafico dei vari elementi. + +Per applicare font e colori personalizzati bisogna: + +1. modificare il file del tema `src/themes/index.css` sovrascrivendo le variabili CSS +2. effettuare una nuova *build* del toolkit tramite `npm run build` (vedi ["Utilizzare l'ambiente di sviluppo"](/docs/sviluppare)) +3. incorporare i CSS generati nei template HTML + +La palette di colori è costruita automaticamente (`src/utils/colors/index.css` @TODO) +applicando tinte e tonalità secondo quanto descritto nel [relativo paragrafo delle Linee Guida](http://design.italia.it/linee-guida/colori/); +in questo modo è sufficiente sovrascrivere la variabile `--Color-primary` per ottenere l'intera *palette*. + +Tutte le modifiche che riguardano uno specifico tema vanno applicate assegnando al tag `body` +la **classe** utilizzata in `src/themes/index.css` (nel caso specifico `Pac`, ma può esser scelta arbitrariamente). + +``` + + ... +``` + +Ciò significa che tale classe deve comparire **necessariamente** come prefisso nei selettori +di ogni nuova regola CSS introdotta dal tema (e/o qualsiasi +modifica ai moduli effettuata sovrascrivendo le regole originali). + +Ad esempio, all'interno di `src/themes/index.css`, per applicare un `padding` alla classe `.Alert` utilizzerò: + +``` +.Pac .Alert { + padding-right: 1em; +} +``` + +e **non** quindi: + +``` +/* No !!! Mai senza prefisso ! */ +.Alert { + padding-right: 1em; +} +``` diff --git a/fractal.js b/fractal.js new file mode 100644 index 000000000..8c0c668c4 --- /dev/null +++ b/fractal.js @@ -0,0 +1,68 @@ +const fractal = module.exports = require('@frctl/fractal').create() + +fractal.set('project.title', 'Italia.it Web Toolkit Styleguide') + +fractal.components.set('path', __dirname + '/src') + +fractal.docs.set('path', __dirname + '/docs') + +fractal.web.set('static.path', __dirname + '/build') + +// prefix all resources url with '/build' +fractal.web.set('static.mount', 'build') + +fractal.web.set('builder.dest', __dirname + '/styleguide') + +fractal.components.set('default.preview', '@preview') + +fractal.components.set('default.status', 'wip') + +const faker = require('faker') +const _ = require('lodash') + +const nunj = require('@frctl/nunjucks')({ + globals: { + __WORD__: _.range(10).map(function() { + return faker.lorem.word() + }), + __WORDS__: _.range(10).map(function() { + return faker.lorem.words() + }), + __TEXTS__: _.range(10).map(function() { + return faker.lorem.paragraph() + }), + __SHORT_TEXTS__: _.range(10).map(function() { + return faker.lorem.sentence() + }), + __LONG_TEXTS__: _.range(10).map(function() { + return faker.lorem.paragraphs() + }), + __IMAGES__: _.range(10).map(function() { + return faker.image.image() + }), + }, +}) + +fractal.components.engine(nunj) +fractal.docs.engine(nunj) + +fractal.components.set('ext', '.tmpl') +fractal.docs.set('ext', '.md') + +/* + * Theme + */ +const mandelbrot = require('@frctl/mandelbrot') + +const myCustomisedTheme = mandelbrot({ + skin: 'blue', + 'nav': ['docs', 'components'], + // ["html", "view", "context", "resources", "info", "notes"] + 'panels': ['html', 'resources', 'info', 'notes'], + 'lang': 'it' +}) + +fractal.components.set('title', 'Componenti') +fractal.docs.set('title', 'Documentazione') + +fractal.web.theme(myCustomisedTheme) diff --git a/index.css b/index.css new file mode 100644 index 000000000..88ab953c4 --- /dev/null +++ b/index.css @@ -0,0 +1,112 @@ +@import "suitcss"; +@import "suitcss-components-form"; + +@import "src/utils/borders"; +@import "src/utils/colors"; +@import "src/utils/corners"; +@import "src/utils/display"; +@import "src/utils/layout"; +@import "src/utils/shadows"; +@import "src/utils/space"; +@import "src/utils/text"; +@import "src/utils/zindex"; + +@import "src/components/button"; +@import "src/components/form"; +@import "src/components/prose"; +@import "src/components/table"; + +@import "src/modules/accordion"; +@import "src/modules/alert"; +@import "src/modules/breadcrumb"; +@import "src/modules/bullets"; +@import "src/modules/callout"; +@import "src/modules/card"; +@import "src/modules/carousel"; +@import "src/modules/cookiebar"; +@import "src/modules/dialog"; +@import "src/modules/dot"; +@import "src/modules/entrypoint"; +@import "src/modules/footer"; +@import "src/modules/hamburger"; +@import "src/modules/header"; +@import "src/modules/leads"; +@import "src/modules/linklist"; +@import "src/modules/megamenu"; +@import "src/modules/masonry"; +@import "src/modules/navscroll"; +@import "src/modules/offcanvas"; +@import "src/modules/scrolltop"; +@import "src/modules/share"; +@import "src/modules/skiplinks"; +@import "src/modules/tooltip"; +@import "src/modules/treeview"; + +/* + * WebFontLoaded: _import "src/fonts/titillium" + * see src/_preview.html + */ +@import "src/icons/ita"; + +@import "src/themes/pac"; + +@import "src/legacy"; + +@custom-media --sm-viewport screen and (min-width: 768px) and (max-width: 992px); +@custom-media --md-viewport screen and (min-width: 992px) and (max-width: 1440px); +@custom-media --lg-viewport screen and (min-width: 1440px); + +:root { + --it-Base-font-size-ratio: 1.8; + --it-Base-font-size: calc(1rem * var(--it-Base-font-size-ratio)); + --it-Base-text-color: #1c2024; +} + +:root { + --Grid-gutter-size: 1.6rem; +} + +/* stylelint-disable */ +/** + * 1. 62.5% = 10px on browsers with base size = 16px + * so we got 10px = 1rem + * 2. See http://stackoverflow.com/questions/7968795/is-it-safe-to-use-the-css-rule-text-rendering-optimizelegibility-on-all-text + */ + /* stylelint-enable */ +html { + font-size: 62.5%; /* 1 */ + font-variant-ligatures: common-ligatures; /* 2 */ + + /* text-rendering: optimizeLegibility; */ +} + +/** + * 1. Trying to avoid collapsing content + */ +body { + color: var(--it-Base-text-color); + font-size: var(--it-Base-font-size); + min-width: 30rem; /* 1 */ +} + +:focus { + outline: #ff8c00 solid 3px; + text-decoration: none; +} + +a:focus { + background: #ff8c00; + outline: #ff8c00 solid 3px; + text-decoration: underline; +} + +a:hover { + text-decoration: underline !important; +} + +:target::before { + content: ""; + display: block; + height: 3em; + margin: -3em 0 0; +} diff --git a/index.js b/index.js new file mode 100644 index 000000000..d47dbb5a9 --- /dev/null +++ b/index.js @@ -0,0 +1,39 @@ +import IwtScripts from './src/scripts' + +import IwtForm from './src/components/form' +import IwtTable from './src/components/table' + +import IwtAccordion from './src/modules/accordion' +import IwtCarousel from './src/modules/carousel' +import IwtCookiebar from './src/modules/cookiebar' +import IwtDialog from './src/modules/dialog' +import IwtPackery from './src/modules/masonry' +import IwtSkiplinks from './src/modules/skiplinks' +import IwtTreeview from './src/modules/treeview' +import IwtOffcanvas from './src/modules/offcanvas' +import IwtHeadroom from './src/modules/header' +import IwtMegamenu from './src/modules/megamenu' +import IwtShare from './src/modules/share' +import IwtTooltip from './src/modules/scrolltop' +import IwtScrolltop from './src/modules/tooltip' + +const __exports = { + IwtTable, + IwtAccordion, + IwtCarousel, + IwtCookiebar, + IwtDialog, + IwtPackery, + IwtTreeview, + IwtSkiplinks, + IwtOffcanvas, + IwtHeadroom, + IwtMegamenu, + IwtTooltip, + IwtScripts, + IwtScrolltop, + IwtShare, + IwtForm +} + +export default __exports diff --git a/package.json b/package.json new file mode 100644 index 000000000..dc9c665b1 --- /dev/null +++ b/package.json @@ -0,0 +1,74 @@ +{ + "name": "ita-web-toolkit", + "version": "0.1.0", + "description": "Implementazione di riferimento per le linee guida di design della PA", + "main": "index.js", + "dependencies": { + "fr-accordion": "^1.0.5", + "fr-bypasslinks": "^1.0.5", + "fr-dialogmodal": "^1.0.2", + "fr-offcanvas": "^1.0.3", + "fr-tooltip": "^1.0.3", + "headroom.js": "^0.9.3", + "jquery.cookie": "^1.4.1", + "owl.carousel": "^2.1.4", + "salvattore": "^1.0.9", + "suitcss": "^2.0.0", + "suitcss-components-form": "^1.0.0", + "suitcss-preprocessor": "^2.0.0", + "throttle-debounce": "^1.0.1" + }, + "devDependencies": { + "@frctl/fractal": "^1.0.8", + "@frctl/nunjucks": "^1.0.1", + "babel": "^6.5.2", + "babel-core": "^6.9.1", + "babel-eslint": "^6.0.4", + "babel-loader": "^6.2.4", + "babel-plugin-add-module-exports": "^0.2.1", + "babel-plugin-transform-es2015-modules-umd": "^6.8.0", + "babel-plugin-transform-es3-member-expression-literals": "^6.8.0", + "babel-plugin-transform-es3-property-literals": "^6.8.0", + "babel-preset-es2015": "^6.9.0", + "cross-env": "^2.0.0", + "css-loader": "^0.25.0", + "eslint": "^3.4.0", + "eslint-loader": "^1.3.0", + "extract-text-webpack-plugin": "^1.0.1", + "faker": "^3.1.0", + "file-loader": "^0.9.0", + "npm-run-all": "^3.1.0", + "postcss-assets": "^4.1.0", + "postcss-color-function": "^2.0.1", + "postcss-copy-assets": "^0.3.0", + "postcss-devtools": "^1.1.0", + "postcss-each": "^0.9.3", + "postcss-extend": "^1.0.1", + "postcss-flexbugs-fixes": "^2.0.0", + "postcss-inline-svg": "^2.0.1", + "postcss-nesting": "^2.3.1", + "postcss-pseudoelements": "^3.0.0", + "postcss-url": "^5.1.2", + "shx": "^0.1.2", + "style-loader": "^0.13.1", + "stylelint-config-suitcss": "^8.0.0", + "stylelint-selector-bem-pattern": "^1.0.0", + "url-loader": "^0.5.7", + "webpack": "^1.13.1" + }, + "scripts": { + "build:resources": "shx mkdir -p build/src && shx cp -r src/vendor build/ && shx cp -r src/icons build/src/icons && shx cp src/_preview.tmpl build/index.html", + "build:css": "suitcss -m -c .postcss.js index.css build/build.css", + "watch:css": "suitcss -w -c .postcss.js index.css build/build.css", + "build:js": "cross-env WEBPACK_ENV=build webpack", + "watch:js": "cross-env WEBPACK_ENV=dev webpack --display-modules --progress --colors --watch", + "build:styleguide": "fractal build", + "watch:styleguide": "fractal start --watch --sync --port 1310", + "watch": "npm-run-all --parallel build:resources watch:css watch:js watch:styleguide", + "build": "npm-run-all build:resources build:css build:js build:styleguide", + "deploy": "git subtree push --prefix styleguide origin gh-pages", + "deploy:force": "git push origin `git subtree split --prefix styleguide master`:gh-pages --force" + }, + "author": "AgID", + "license": "CC0-1.0" +} diff --git a/src/_preview.tmpl b/src/_preview.tmpl new file mode 100644 index 000000000..0f9f94319 --- /dev/null +++ b/src/_preview.tmpl @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + Preview Layout + + + + + {{ yield|safe }} + + + + + + + + + + + + diff --git a/src/components/button/button.config.json b/src/components/button/button.config.json new file mode 100644 index 000000000..81c06154b --- /dev/null +++ b/src/components/button/button.config.json @@ -0,0 +1,26 @@ +{ + "title": "Button", + "variants": [ + { + "name": "default", + "context": { + "modifier": "default", + "type": "u-text-r-xs" + } + }, + { + "name": "info", + "context": { + "modifier": "info", + "type": "u-text-r-xs" + } + }, + { + "name": "danger", + "context": { + "modifier": "danger", + "type": "u-text-r-xs" + } + } + ] +} diff --git a/src/components/button/button.tmpl b/src/components/button/button.tmpl new file mode 100644 index 000000000..35cc64e30 --- /dev/null +++ b/src/components/button/button.tmpl @@ -0,0 +1,23 @@ +
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + Link button {{ modifier }} round shadow +
  • +
diff --git a/src/components/button/index.css b/src/components/button/index.css new file mode 100644 index 000000000..7fe8a6974 --- /dev/null +++ b/src/components/button/index.css @@ -0,0 +1,125 @@ +/** @define Button; */ + +:root { + --Button-default-bg: #65dde0; + --Button-default-color: #004a4d; + --Button-default-border: #50d8dc; + --Button-danger-bg: #b50000; + --Button-danger-color: #fff; + --Button-danger-border: #f00; + --Button-info-bg: #fff; + --Button-info-color: #003e54; + --Button-info-border: #ccc; +} + +.Button { + font-weight: 600; + padding: 0.6em 1.2em; + text-transform: uppercase; + touch-action: manipulation; + vertical-align: middle; + white-space: nowrap; +} + +.Button:active, +.Button.is-pressed { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.Button--shadow { + box-shadow: 0 2px 4px 0 #bdbdbd; +} + +.Button--round { + border-radius: 0.1em; +} + +/** + * Modifier: default buttons + * ========================= + */ +.Button--default, +.Button--default:focus { + background-color: var(--Button-default-bg); + border-color: var(--Button-default-border); + color: var(--Button-default-color); +} + +.Button--default[disabled], +.Button--default.is-disabled { + background-color: var(--Button-default-bg) !important; + border-color: var(--Button-default-border) !important; + color: var(--Button-default-color) !important; +} + +.Button--default:hover { + background-color: color(var(--Button-default-bg) l(-10%)); + border-color: color(var(--Button-default-border) l(-10%)); +} + +.Button--default:active, +.Button--default.is-pressed { + background-color: var(--Button-default-color); + border-color: color(var(--Button-default-color) l(-25%)); + color: var(--Button-default-bg); +} + +/** + * Modifier: danger buttons + * ========================= + */ +.Button--danger, +.Button--danger:focus { + background-color: var(--Button-danger-bg); + border-color: var(--Button-danger-border); + color: var(--Button-danger-color); +} + +.Button--danger[disabled], +.Button--danger.is-disabled { + background-color: var(--Button-danger-bg) !important; + border-color: var(--Button-danger-border) !important; + color: var(--Button-danger-color) !important; +} + +.Button--danger:hover { + background-color: color(var(--Button-danger-bg) l(-10%)); + border-color: color(var(--Button-danger-border) l(-10%)); +} + +.Button--danger:active, +.Button--danger.is-pressed { + background-color: var(--Button-danger-color); + border-color: color(var(--Button-danger-color) l(-25%)); + color: var(--Button-danger-bg); +} + +/** + * Modifier: info buttons + * ========================= + */ +.Button--info, +.Button--info:focus { + background-color: var(--Button-info-bg); + border-color: var(--Button-info-border); + color: var(--Button-info-color); +} + +.Button--info[disabled], +.Button--info.is-disabled { + background-color: var(--Button-info-bg) !important; + border-color: var(--Button-info-border) !important; + color: var(--Button-info-color) !important; +} + +.Button--info:hover { + background-color: color(var(--Button-info-bg) l(-10%)); + border-color: color(var(--Button-info-border) l(-10%)); +} + +.Button--info:active, +.Button--info.is-pressed { + background-color: var(--Button-info-color); + border-color: color(var(--Button-info-color) l(-25%)); + color: var(--Button-info-bg); +} diff --git a/src/components/form/index.css b/src/components/form/index.css new file mode 100644 index 000000000..577f7b787 --- /dev/null +++ b/src/components/form/index.css @@ -0,0 +1,283 @@ +/** @define Form; */ + +/* + * Custom theme for + * https://github.com/giuseppeg/suitcss-components-form + * Copyright (c) Giuseppe Gurgone + */ +:root { + --Form-input-border-color: #ccc; + --Form-input-border-radius: 0; + --Form-state-invalid-border-color: #b50000; + --Form-state-invalid-label-color: #b50000; + --Form-state-invalid-message-color: #b50000; + --Form-state-warning-border-color: #e5ce23; + --Form-state-warning-label-color: #e5ce23; + --Form-state-warning-message-color: #e5ce23; + --Form-label-checked-background: #c6f3f5; + --Form-border-width: 0.4rem; + --Form-choose-height: 1em; + --Form-select-arrow-width: 0.8em; + --Form-select-arrow: inline("icons/ita/img/SVG/expand.svg"); + --Form-radio: svg-load("icons/ita/img/SVG/radio-button.svg", stroke=var(--Color-teal-50)); + --Form-radio-checked: svg-load("icons/ita/img/SVG/radio-button-checked.svg", stroke=var(--Color-teal-50)); + --Form-checkbox: svg-load("icons/ita/img/SVG/checkbox.svg", stroke=var(--Color-teal-50)); + --Form-checkbox-checked: svg-load("icons/ita/img/SVG/checkbox-checked.svg", stroke=var(--Color-teal-50)); + --Form-textarea-min-height: 10em; +} + +.Form--spaced { + @extend .u-margin-top-none; +} + +.Form--spaced .Form-label { + @extend .u-padding-bottom-xxs; +} + +.Form--spaced .Form-input { + @extend .u-margin-top-xxs; +} + +.Form--spaced .Form-fieldset, +.Form--spaced .Form-legend { + @extend .u-margin-bottom-s; +} + +.Form--spaced .Form-field { + @extend .u-margin-top-none; + @extend .u-padding-bottom-l; +} + +.Form--lean .Form-input, +.Form-input--lean { + border-left: none !important; + border-right: none !important; + border-top: none !important; +} + +.Form--ultraLean .Form-input, +.Form-input--ultraLean { + border: none !important; +} + +/* postcss-bem-linter: ignore */ +select.Form-input { + background-color: currentColor; +} + +/* postcss-bem-linter: ignore */ +option:hover { + box-shadow: 0 0 10px 100px #1882a8 inset; +} + +/* .Form-legend.is-required::after, +.Form-label.is-required::after { + content: " * "; +} */ + +.Form-label.is-checked { + background: var(--Form-label-checked-background); +} + +.Form-field.is-invalid .Form-input, +.Form-field.is-warning .Form-input { + border-width: var(--Form-border-width); +} + +.Form-input:not(.is-disabled), +.Form-input:not(:disabled) { + background-color: white; +} + +.Form-textarea { + min-height: var(--Form-textarea-min-height); +} + +/* + * Custom components: label block + * ============================== + */ +.Form-label--block { + background-color: white; + border: 1px solid var(--Form-input-border-color); + border-bottom: 0; + line-height: calc(2 * var(--Form-choose-height)); + min-height: calc(var(--Form-choose-height) + 2 * var(--Form-choose-height)); + padding: calc(var(--Form-choose-height) / 2); +} + +.Form-label--block:last-child { + border-bottom: 1px solid var(--Form-input-border-color); +} + +/* + * Custom components: label as placeholder + * ======================================= + */ +.Form-field--withPlaceholder { + @extend .u-flex; + @extend .u-posRelative; +} + +.Form-field--withPlaceholder .Form-label { + @extend .u-textWeight-400; + @extend .u-posAbsolute; + @extend .u-layoutCenterVertically; + + left: 1em; +} + +.Form-field--withPlaceholder .Form-input:focus + .Form-label, +.Form-field--withPlaceholder .Form-input:valid + .Form-label { + opacity: 0; +} + +/* + * Accessibile tooltip: http://heydonworks.com/practical_aria_examples/ + * ======================================= + */ +.Form-input + [role="tooltip"] { + @extend .u-hidden; +} + +/* postcss-bem-linter: ignore */ +.Form-input.Form-input:focus + [role="tooltip"] { + @extend .u-block; + @extend .u-color-white; + @extend .u-borderRadius-m; + @extend .u-background-grey-80; + @extend .u-borderShadow-xs; + @extend .u-padding-r-all; + @extend .u-posAbsolute; + @extend .u-margin-top-xxs; + + outline: none !important; +} + +/* +* Custom components: checkbox / radio +* =================================== +*/ + +.Form-field--choose .Form-label { + display: inline-block; + font-weight: normal; + width: 100%; +} + +.Form-field--choose .Form-input { + display: inline-block; + margin-right: calc(var(--Form-choose-height) / 2); + width: auto; +} + +.Form-field--choose .Form-input { + height: 0; + opacity: 0; + position: absolute; + z-index: -1; +} + +.Form-fieldIcon { + background-position: center center; + background-repeat: no-repeat; + background-size: 50% 50%; + display: inline-block; + height: 1em; + line-height: 1em; + margin-right: 0.5em; + text-align: center; + user-select: none; + vertical-align: middle; + width: 1em; +} + +/* + +/* postcss-bem-linter: ignore * / +.Form-field--choose input:focus ~ .Form-fieldIcon { + box-shadow: 0 0 0 0.1rem var(--Color-grey-50), + 0 0 0 0.5rem var(--Color-focus); +} + +/* postcss-bem-linter: ignore * / +.Form-field--choose input:checked ~ .Form-fieldIcon { + background-color: var(--Color-teal-70); + color: var(--Color-grey-40); +} + +/* postcss-bem-linter: ignore * / +.Form-field--choose input:active ~ .Form-fieldIcon { + background-color: var(--Color-teal-30); + color: var(--Color-grey-40); +} + +/* postcss-bem-linter: ignore * / +.Form-field--choose [type=checkbox] ~ .Form-fieldIcon { + border-radius: 0.25rem; +} + +/* postcss-bem-linter: ignore * / +.Form-field--choose [type=radio] ~ .Form-fieldIcon { + border-radius: 50%; +} + +*/ + +.Form-field--choose .Form-fieldIcon { + color: var(--Color-teal-50); + font-size: 2em; +} + +/* postcss-bem-linter: ignore */ +.Form-field--choose [type=checkbox] ~ .Form-fieldIcon { + background-image: var(--Form-checkbox); +} + +/* postcss-bem-linter: ignore */ +.Form-field--choose [type=checkbox]:checked ~ .Form-fieldIcon { + background-image: var(--Form-checkbox-checked); +} + +/* postcss-bem-linter: ignore */ +.Form-field--choose [type=radio] ~ .Form-fieldIcon { + background-image: var(--Form-radio); +} + +/* postcss-bem-linter: ignore */ +.Form-field--choose [type=radio]:checked ~ .Form-fieldIcon { + background-image: var(--Form-radio-checked); +} + +/* +* Custom components: fieldset +* =================================== +*/ + +/* postcss-bem-linter: ignore */ +.Form-fieldset > legend { + @extend .u-inlineBlock; + @extend .u-sizeFull; + @extend .u-border-bottom-xxs; + @extend .u-text-r-m; +} + +.Form-field > legend { + @extend .u-textWeight-700; +} + +/* +* Custom components: width +* =================================== +*/ +.Form-input--xs { + max-width: 2em !important; +} + +.Form-input--s { + max-width: 4em !important; +} + +.Form-input--m { + max-width: 6em !important; +} diff --git a/src/components/form/index.js b/src/components/form/index.js new file mode 100644 index 000000000..ec7057c27 --- /dev/null +++ b/src/components/form/index.js @@ -0,0 +1,14 @@ +import $ from 'jquery' + +$(document).ready(function() { + $(':radio, :checkbox').on('change', function() { + if ($(this).is(':radio')) { + $(this).closest('.Form-field').find('.Form-label.is-checked').removeClass('is-checked') + } + if ($(this).is(':checked')) { + $(this).closest('.Form-label').addClass('is-checked') + } else { + $(this).closest('.Form-label').removeClass('is-checked') + } + }) +}) diff --git a/src/components/grid/grid--responsive-alt.tmpl b/src/components/grid/grid--responsive-alt.tmpl new file mode 100644 index 000000000..9a35642fc --- /dev/null +++ b/src/components/grid/grid--responsive-alt.tmpl @@ -0,0 +1,6 @@ +
+
1/4 responsive
+
1/4 responsive
+
1/4 responsive
+
1/4 responsive
+
diff --git a/src/components/grid/grid--responsive.tmpl b/src/components/grid/grid--responsive.tmpl new file mode 100644 index 000000000..0244669f1 --- /dev/null +++ b/src/components/grid/grid--responsive.tmpl @@ -0,0 +1,6 @@ +
+
1/4 responsive
+
1/4 responsive
+
1/4 responsive
+
1/4 responsive
+
diff --git a/src/components/grid/grid.tmpl b/src/components/grid/grid.tmpl new file mode 100644 index 000000000..b74d51cd2 --- /dev/null +++ b/src/components/grid/grid.tmpl @@ -0,0 +1,6 @@ +
+
1/4 fixed
+
1/4 fixed
+
1/4 fixed
+
1/4 fixed
+
diff --git a/src/components/heading/heading--h1.tmpl b/src/components/heading/heading--h1.tmpl new file mode 100644 index 000000000..e2f457265 --- /dev/null +++ b/src/components/heading/heading--h1.tmpl @@ -0,0 +1 @@ +

{{ text | d(__SHORT_TEXTS__[0]) }}

diff --git a/src/components/heading/heading--h2.tmpl b/src/components/heading/heading--h2.tmpl new file mode 100644 index 000000000..18e98d6cd --- /dev/null +++ b/src/components/heading/heading--h2.tmpl @@ -0,0 +1 @@ +

{{ text | d(__SHORT_TEXTS__[0]) }}

diff --git a/src/components/heading/heading--h3.tmpl b/src/components/heading/heading--h3.tmpl new file mode 100644 index 000000000..894525d4b --- /dev/null +++ b/src/components/heading/heading--h3.tmpl @@ -0,0 +1 @@ +

{{ text | d(__SHORT_TEXTS__[0]) }}

diff --git a/src/components/heading/heading--h4.tmpl b/src/components/heading/heading--h4.tmpl new file mode 100644 index 000000000..6a15a9fa4 --- /dev/null +++ b/src/components/heading/heading--h4.tmpl @@ -0,0 +1 @@ +

{{ text | d(__SHORT_TEXTS__[0]) }}

diff --git a/src/components/heading/heading--h5.tmpl b/src/components/heading/heading--h5.tmpl new file mode 100644 index 000000000..35219363f --- /dev/null +++ b/src/components/heading/heading--h5.tmpl @@ -0,0 +1 @@ +
{{ text | d(__SHORT_TEXTS__[0]) }}
diff --git a/src/components/heading/heading--h6.tmpl b/src/components/heading/heading--h6.tmpl new file mode 100644 index 000000000..56adbe70b --- /dev/null +++ b/src/components/heading/heading--h6.tmpl @@ -0,0 +1 @@ +
{{ text | d(__SHORT_TEXTS__[0]) }}
diff --git a/src/components/heading/heading.tmpl b/src/components/heading/heading.tmpl new file mode 100644 index 000000000..032ed037a --- /dev/null +++ b/src/components/heading/heading.tmpl @@ -0,0 +1,8 @@ +
+ {% render '@heading--h1' %} + {% render '@heading--h2' %} + {% render '@heading--h3' %} + {% render '@heading--h4' %} + {% render '@heading--h5' %} + {% render '@heading--h6' %} +
diff --git a/src/components/prose/index.css b/src/components/prose/index.css new file mode 100644 index 000000000..b07efe4fa --- /dev/null +++ b/src/components/prose/index.css @@ -0,0 +1,83 @@ +/** @define Prose; weak; */ + +:root { + --Prose-color-text-primary: #1c2024; + --Prose-color-text-secondary: #5a6772; + --Prose-color-text-highlighted: #b2ebed; + --Prose-color-link: #06c; + --Prose-color-link-hover: #036; + --Prose-color-link-visited: #06c; +} + +.Prose > p, +.Prose > pre { + @extend .u-margin-bottom-xl; +} + +.Prose, +.Prose > p, +.Prose > ul > li, +.Prose > ol > li { + @extend .u-text-r-xs; + @extend .u-lineHeight-xl; + + color: var(--Prose-color-text-primary); +} + +.Prose > p > small { + @extend .u-text-r-xxs; +} + +.Prose p > a { + color: var(--Prose-color-link); +} + +.Prose { + color: var(--Prose-color-text-primary); +} + +.Prose--secondary { + color: var(--Prose-color-text-secondary); +} + +.Prose-blockquote { + @extend .u-border-left-m; + @extend .u-padding-left-l; + @extend .u-margin-bottom-xl; +} + +.Prose-blockquote > p { + @extend .u-text-r-m; + @extend .u-textItalic; + @extend .u-textSecondary; +} + +.Prose > p > a:hover { + color: var(--Prose-color-link-hover); +} + +.Prose > p > a:visited { + color: var(--Prose-color-link-visited); +} + +.Prose > ul, +.Prose > ol { + @extend .u-margin-bottom-xl; + @extend .u-margin-left-xl; + + list-style-position: outside; +} + +.Prose > ul { + list-style-type: square; +} + +.Prose > ol { + list-style-type: decimal; +} + +.Prose > ul > li, +.Prose > ol > li { + @extend .u-padding-top-xxs; + @extend .u-padding-bottom-xxs; +} diff --git a/src/components/prose/prose--blockquote.tmpl b/src/components/prose/prose--blockquote.tmpl new file mode 100644 index 000000000..641040747 --- /dev/null +++ b/src/components/prose/prose--blockquote.tmpl @@ -0,0 +1,3 @@ +
+ {% render '@prose--paragraph', { text: text | d(__SHORT_TEXTS__[0]) } %} +
diff --git a/src/components/prose/prose--code.tmpl b/src/components/prose/prose--code.tmpl new file mode 100644 index 000000000..ee3982ffc --- /dev/null +++ b/src/components/prose/prose--code.tmpl @@ -0,0 +1,5 @@ +
+  
+    {{ text | d(__TEXTS__[0]) }}
+  
+
diff --git a/src/components/prose/prose--paragraph.tmpl b/src/components/prose/prose--paragraph.tmpl new file mode 100644 index 000000000..ca1a31f98 --- /dev/null +++ b/src/components/prose/prose--paragraph.tmpl @@ -0,0 +1 @@ +

{{ text | d(__TEXTS__[0]) }}

diff --git a/src/components/prose/prose.tmpl b/src/components/prose/prose.tmpl new file mode 100644 index 000000000..c7c382102 --- /dev/null +++ b/src/components/prose/prose.tmpl @@ -0,0 +1,33 @@ +
+ + {% render '@heading--h1', {text: 'Titolo H1'} %} + {% render '@heading--h2', {text: 'Titolo H2'} %} + {% render '@heading--h3', {text: 'Titolo H3'} %} + {% render '@heading--h4', {text: 'Titolo H4'} %} + {% render '@heading--h5', {text: 'Titolo H5'} %} + {% render '@heading--h6', {text: 'Titolo H6'} %} + + {% render '@heading--h2', { text: 'Paragafo' } %} + {% render '@prose--paragraph' %} + + {% render '@heading--h2', { text: 'Testo preformattato' } %} + {% render '@prose--code' %} + + {% render '@heading--h2', { text: 'Citazione' } %} + {% render '@prose--blockquote', { text: __SHORT_TEXTS__[0] } %} + + {% render '@heading--h2', { text: 'Liste' } %} + +
    + {% for i in range(0, 9) %} +
  • {{ __SHORT_TEXTS__[i] }}
  • + {% endfor %} +
+ +
    + {% for i in range(0, 9) %} +
  1. {{ __SHORT_TEXTS__[i] }}
  2. + {% endfor %} +
+ +
diff --git a/src/components/table/index.css b/src/components/table/index.css new file mode 100644 index 000000000..d3dd1bf83 --- /dev/null +++ b/src/components/table/index.css @@ -0,0 +1,216 @@ +/** @define Table; */ + +/* + * Fork of suitcss-component-table: + * + * https://github.com/trunkclub/suitcss-components-table + * Copyright (c) 2014 Trunk Club + * + * alas, not included in npm registry. + * + */ + +/** @define Table; weak; */ + +:root { + --Table-border-color: #d6dce3; + --Table-cell-pad-h: 0.5em; + --Table-cell-pad-v: 1em; + --Table-hover-color: #e5f1fa; + --Table-stripe-color: #f6f7f9; +} + +.Table { + background-color: transparent; + border: 0; + border-collapse: collapse; + max-width: 100%; + width: 100%; +} + +.Table td, +.Table th { + padding: var(--Table-cell-pad-v) var(--Table-cell-pad-h); +} + +.Table th:first-child, +.Table td:first-child { + padding-left: var(--Table-cell-pad-v); +} + +.Table th:last-child, +.Table td:last-child { + padding-right: var(--Table-cell-pad-v); +} + +/* Table layout modifier + ========================================================================== */ + +/** + * Fixed + */ +.Table--fixed { + table-layout: fixed; +} + +/* Hover row modifiers + ========================================================================== */ + +.Table--hover tbody tr:hover th, +.Table--hover tbody tr:hover td { + background-color: var(--Table-hover-color); +} + +/* Striped row modifiers + ========================================================================== */ + +/** + * Remove top borders on all cells. + */ +.Table--striped th, +.Table--striped td { + border-top: 0; +} + +.Table--striped tbody tr:nth-child(odd) { + background-color: var(--Table-stripe-color); +} + +/* Border modifiers + ========================================================================== */ + +/** + * Add border around table + */ +.Table--withBorder tr { + border-bottom: 1px var(--Table-border-color) solid; +} + +.Table--withBorder th { + border-bottom: 2px var(--Table-border-color) solid; +} + +.Table--withBorder th, +.Table--withBorder td { + border-top: 1px var(--Table-border-color) solid; +} + +.Table--withBorder thead tr:first-child th, +.Table--withBorder thead tr:first-child td { + border-top: 0; +} + +/* Compact layout modifier + ========================================================================== */ + +/** + * Reduce vertical padding to match horizontal + */ +.Table--compact td, +.Table--compact th { + padding: var(--Table-cell-pad-h); +} + +/* Responsive layout modifier + * http://dbushell.com/2016/03/04/css-only-responsive-tables/ + ========================================================================== */ + +.Table--responsive { + /* + * IE needs inline-block to position scrolling shadows otherwise use: + * display: block; + * max-width: min-content; + */ + border-collapse: collapse; + border-spacing: 0; + display: inline-block; + max-width: 100%; + overflow-x: auto; + vertical-align: top; + + /* optional - looks better for small cell values */ + white-space: nowrap; + width: auto; +} + +.Table--responsive, +.Table--flip tbody { + /* scrolling shadows */ + background: + radial-gradient( + left, + ellipse, + rgba(0, 0, 0, 0.2) 0%, + rgba(0, 0, 0, 0) 75% + ) 0 center, + radial-gradient( + right, + ellipse, + rgba(0, 0, 0, 0.2) 0%, + rgba(0, 0, 0, 0) 75% + ) 100% center; + background-attachment: scroll, scroll; + background-repeat: no-repeat; + background-size: 10px 100%, 10px 100%; + + /* optional - enable iOS momentum scrolling */ + -webkit-overflow-scrolling: touch; +} + +.Table--responsive td:first-child, +.Table--flip tbody tr:first-child { + background-image: linear-gradient(to right, rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 0) 100%); + background-repeat: no-repeat; + background-size: 20px 100%; +} + +.Table--responsive td:last-child, +.Table--flip tbody tr:last-child { + background-image: linear-gradient(to left, rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 0) 100%); + background-position: 100% 0; + background-repeat: no-repeat; + background-size: 20px 100%; +} + +.Table--flip { + background: none; + display: flex; + overflow: hidden; +} + +.Table--flip > thead { + display: flex; + flex-shrink: 0; + min-width: min-content; +} + +.Table--flip > tbody { + display: flex; + overflow-x: auto; + overflow-y: hidden; + position: relative; +} + +.Table--flip > tbody > tr { + border-right: 1px solid var(--Table-border-color); + display: flex; + flex-direction: column; + flex-shrink: 0; + min-width: min-content; +} + +.Table--flip td, +.Table--flip th { + display: block; +} + +.Table--flip td { + background-image: none !important; +} + +/* @FIXME */ +.Table--flip th { + border-bottom: 0 !important; + border-right: 2px solid var(--Table-border-color) !important; + border-top: 1px solid var(--Table-border-color) !important; +} diff --git a/src/components/table/index.js b/src/components/table/index.js new file mode 100644 index 000000000..3065a0320 --- /dev/null +++ b/src/components/table/index.js @@ -0,0 +1,26 @@ +import $ from 'jquery' +import debounce from 'throttle-debounce/throttle' + +const defaultOpts = { + responsiveTableSelector: '.js-tableFlip', + responsiveTableClass: 'Table--flip', + responsiveTableBreakpoint: 768, +} + +const initResponsiveTables = function(opts) { + $(document).ready(function() { + if ($(opts.responsiveTableSelector).length > 0) { + $(window).resize(debounce(250, function() { + if ($(window).width() < opts.responsiveTableBreakpoint) { + $(opts.responsiveTableSelector).addClass(opts.responsiveTableClass) + } else { + $(opts.responsiveTableSelector).removeClass(opts.responsiveTableClass) + } + })) + } + }) +} + +initResponsiveTables(defaultOpts) + +export default { defaultOpts, initResponsiveTables } diff --git a/src/components/table/table--compact.tmpl b/src/components/table/table--compact.tmpl new file mode 100644 index 000000000..dcc83f698 --- /dev/null +++ b/src/components/table/table--compact.tmpl @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
diff --git a/src/components/table/table--complex.tmpl b/src/components/table/table--complex.tmpl new file mode 100644 index 000000000..c31470085 --- /dev/null +++ b/src/components/table/table--complex.tmpl @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tab. txtTab. txtTab. numTab. num
Tab. txtTab. txtTab. numTab. num
Tab. txtTab. txtTab. numTab. num
Tab. txtTab. txtTab. numTab. num
Tab. txtTab. txtTab. numTab. num
diff --git a/src/components/table/table--flip.tmpl b/src/components/table/table--flip.tmpl new file mode 100644 index 000000000..45399974f --- /dev/null +++ b/src/components/table/table--flip.tmpl @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
diff --git a/src/components/table/table--flippable.tmpl b/src/components/table/table--flippable.tmpl new file mode 100644 index 000000000..933d316a8 --- /dev/null +++ b/src/components/table/table--flippable.tmpl @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tab. 1Tab. 2Tab. 3Tab. 4
Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.
Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.
Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.
Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.Veniam amet officia aliquip sunt pariatur sit ea laboris duis laboris adipisicing cupidatat.
diff --git a/src/components/table/table--responsive.tmpl b/src/components/table/table--responsive.tmpl new file mode 100644 index 000000000..06259a939 --- /dev/null +++ b/src/components/table/table--responsive.tmpl @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tab. 1 Irure exercitation enim do Tab. 2 Eu velit est do culpa officia sit .Tab. 3 Esse nulla proident commodo adipisicing nis.Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
diff --git a/src/components/table/table.tmpl b/src/components/table/table.tmpl new file mode 100644 index 000000000..4d2f8b403 --- /dev/null +++ b/src/components/table/table.tmpl @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
Tab. 1Tab. 2Tab. 3Tab. 4
diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-200.eot b/src/fonts/titillium/font/titillium-web-v4-latin-200.eot new file mode 100644 index 000000000..326b32171 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-200.eot differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-200.svg b/src/fonts/titillium/font/titillium-web-v4-latin-200.svg new file mode 100644 index 000000000..73b5b5929 --- /dev/null +++ b/src/fonts/titillium/font/titillium-web-v4-latin-200.svg @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-200.ttf b/src/fonts/titillium/font/titillium-web-v4-latin-200.ttf new file mode 100644 index 000000000..f5e73cef1 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-200.ttf differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-200.woff b/src/fonts/titillium/font/titillium-web-v4-latin-200.woff new file mode 100644 index 000000000..11833f0fb Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-200.woff differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-200.woff2 b/src/fonts/titillium/font/titillium-web-v4-latin-200.woff2 new file mode 100644 index 000000000..3c27af6f8 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-200.woff2 differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-200italic.eot b/src/fonts/titillium/font/titillium-web-v4-latin-200italic.eot new file mode 100644 index 000000000..74ac790ec Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-200italic.eot differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-200italic.svg b/src/fonts/titillium/font/titillium-web-v4-latin-200italic.svg new file mode 100644 index 000000000..d2da9eff9 --- /dev/null +++ b/src/fonts/titillium/font/titillium-web-v4-latin-200italic.svg @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-200italic.ttf b/src/fonts/titillium/font/titillium-web-v4-latin-200italic.ttf new file mode 100644 index 000000000..47a0f3c4a Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-200italic.ttf differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-200italic.woff b/src/fonts/titillium/font/titillium-web-v4-latin-200italic.woff new file mode 100644 index 000000000..0835e0cb5 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-200italic.woff differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-200italic.woff2 b/src/fonts/titillium/font/titillium-web-v4-latin-200italic.woff2 new file mode 100644 index 000000000..1141bf67e Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-200italic.woff2 differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-300.eot b/src/fonts/titillium/font/titillium-web-v4-latin-300.eot new file mode 100644 index 000000000..9c66a48c8 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-300.eot differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-300.svg b/src/fonts/titillium/font/titillium-web-v4-latin-300.svg new file mode 100644 index 000000000..eace85b4e --- /dev/null +++ b/src/fonts/titillium/font/titillium-web-v4-latin-300.svg @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-300.ttf b/src/fonts/titillium/font/titillium-web-v4-latin-300.ttf new file mode 100644 index 000000000..4374667f9 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-300.ttf differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-300.woff b/src/fonts/titillium/font/titillium-web-v4-latin-300.woff new file mode 100644 index 000000000..1fdede29f Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-300.woff differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-300.woff2 b/src/fonts/titillium/font/titillium-web-v4-latin-300.woff2 new file mode 100644 index 000000000..c6e0f0c24 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-300.woff2 differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-300italic.eot b/src/fonts/titillium/font/titillium-web-v4-latin-300italic.eot new file mode 100644 index 000000000..78e285869 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-300italic.eot differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-300italic.svg b/src/fonts/titillium/font/titillium-web-v4-latin-300italic.svg new file mode 100644 index 000000000..438353c38 --- /dev/null +++ b/src/fonts/titillium/font/titillium-web-v4-latin-300italic.svg @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-300italic.ttf b/src/fonts/titillium/font/titillium-web-v4-latin-300italic.ttf new file mode 100644 index 000000000..e898ef6df Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-300italic.ttf differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-300italic.woff b/src/fonts/titillium/font/titillium-web-v4-latin-300italic.woff new file mode 100644 index 000000000..eded44467 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-300italic.woff differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-300italic.woff2 b/src/fonts/titillium/font/titillium-web-v4-latin-300italic.woff2 new file mode 100644 index 000000000..75cb065b2 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-300italic.woff2 differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-600.eot b/src/fonts/titillium/font/titillium-web-v4-latin-600.eot new file mode 100644 index 000000000..c146b6447 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-600.eot differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-600.svg b/src/fonts/titillium/font/titillium-web-v4-latin-600.svg new file mode 100644 index 000000000..989fa2b81 --- /dev/null +++ b/src/fonts/titillium/font/titillium-web-v4-latin-600.svg @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-600.ttf b/src/fonts/titillium/font/titillium-web-v4-latin-600.ttf new file mode 100644 index 000000000..f185119a5 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-600.ttf differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-600.woff b/src/fonts/titillium/font/titillium-web-v4-latin-600.woff new file mode 100644 index 000000000..a17765aff Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-600.woff differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-600.woff2 b/src/fonts/titillium/font/titillium-web-v4-latin-600.woff2 new file mode 100644 index 000000000..e24963e38 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-600.woff2 differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-600italic.eot b/src/fonts/titillium/font/titillium-web-v4-latin-600italic.eot new file mode 100644 index 000000000..46063b9fb Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-600italic.eot differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-600italic.svg b/src/fonts/titillium/font/titillium-web-v4-latin-600italic.svg new file mode 100644 index 000000000..66f1c7b48 --- /dev/null +++ b/src/fonts/titillium/font/titillium-web-v4-latin-600italic.svg @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-600italic.ttf b/src/fonts/titillium/font/titillium-web-v4-latin-600italic.ttf new file mode 100644 index 000000000..30b53b2ca Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-600italic.ttf differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-600italic.woff b/src/fonts/titillium/font/titillium-web-v4-latin-600italic.woff new file mode 100644 index 000000000..7ca126aa4 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-600italic.woff differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-600italic.woff2 b/src/fonts/titillium/font/titillium-web-v4-latin-600italic.woff2 new file mode 100644 index 000000000..f9bbb3ff1 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-600italic.woff2 differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-700.eot b/src/fonts/titillium/font/titillium-web-v4-latin-700.eot new file mode 100644 index 000000000..2e3c91292 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-700.eot differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-700.svg b/src/fonts/titillium/font/titillium-web-v4-latin-700.svg new file mode 100644 index 000000000..758552115 --- /dev/null +++ b/src/fonts/titillium/font/titillium-web-v4-latin-700.svg @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-700.ttf b/src/fonts/titillium/font/titillium-web-v4-latin-700.ttf new file mode 100644 index 000000000..b09d80b85 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-700.ttf differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-700.woff b/src/fonts/titillium/font/titillium-web-v4-latin-700.woff new file mode 100644 index 000000000..55e74f4e5 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-700.woff differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-700.woff2 b/src/fonts/titillium/font/titillium-web-v4-latin-700.woff2 new file mode 100644 index 000000000..29824937f Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-700.woff2 differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-700italic.eot b/src/fonts/titillium/font/titillium-web-v4-latin-700italic.eot new file mode 100644 index 000000000..2b26f03cd Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-700italic.eot differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-700italic.svg b/src/fonts/titillium/font/titillium-web-v4-latin-700italic.svg new file mode 100644 index 000000000..75476819a --- /dev/null +++ b/src/fonts/titillium/font/titillium-web-v4-latin-700italic.svg @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-700italic.ttf b/src/fonts/titillium/font/titillium-web-v4-latin-700italic.ttf new file mode 100644 index 000000000..f9def23ba Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-700italic.ttf differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-700italic.woff b/src/fonts/titillium/font/titillium-web-v4-latin-700italic.woff new file mode 100644 index 000000000..aec5aa4c0 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-700italic.woff differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-700italic.woff2 b/src/fonts/titillium/font/titillium-web-v4-latin-700italic.woff2 new file mode 100644 index 000000000..240c2882c Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-700italic.woff2 differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-900.eot b/src/fonts/titillium/font/titillium-web-v4-latin-900.eot new file mode 100644 index 000000000..42aecf460 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-900.eot differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-900.svg b/src/fonts/titillium/font/titillium-web-v4-latin-900.svg new file mode 100644 index 000000000..aff28097f --- /dev/null +++ b/src/fonts/titillium/font/titillium-web-v4-latin-900.svg @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-900.ttf b/src/fonts/titillium/font/titillium-web-v4-latin-900.ttf new file mode 100644 index 000000000..9bf14e331 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-900.ttf differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-900.woff b/src/fonts/titillium/font/titillium-web-v4-latin-900.woff new file mode 100644 index 000000000..c91aeb37a Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-900.woff differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-900.woff2 b/src/fonts/titillium/font/titillium-web-v4-latin-900.woff2 new file mode 100644 index 000000000..ed4de2912 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-900.woff2 differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-italic.eot b/src/fonts/titillium/font/titillium-web-v4-latin-italic.eot new file mode 100644 index 000000000..340af1b25 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-italic.eot differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-italic.svg b/src/fonts/titillium/font/titillium-web-v4-latin-italic.svg new file mode 100644 index 000000000..6c4dc4a6e --- /dev/null +++ b/src/fonts/titillium/font/titillium-web-v4-latin-italic.svg @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-italic.ttf b/src/fonts/titillium/font/titillium-web-v4-latin-italic.ttf new file mode 100644 index 000000000..6718df9fa Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-italic.ttf differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-italic.woff b/src/fonts/titillium/font/titillium-web-v4-latin-italic.woff new file mode 100644 index 000000000..3b6719870 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-italic.woff differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-italic.woff2 b/src/fonts/titillium/font/titillium-web-v4-latin-italic.woff2 new file mode 100644 index 000000000..ac6250bb6 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-italic.woff2 differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-regular.eot b/src/fonts/titillium/font/titillium-web-v4-latin-regular.eot new file mode 100644 index 000000000..d9f45163f Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-regular.eot differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-regular.svg b/src/fonts/titillium/font/titillium-web-v4-latin-regular.svg new file mode 100644 index 000000000..91af459ff --- /dev/null +++ b/src/fonts/titillium/font/titillium-web-v4-latin-regular.svg @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-regular.ttf b/src/fonts/titillium/font/titillium-web-v4-latin-regular.ttf new file mode 100644 index 000000000..f51be6b83 Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-regular.ttf differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-regular.woff b/src/fonts/titillium/font/titillium-web-v4-latin-regular.woff new file mode 100644 index 000000000..73766235e Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-regular.woff differ diff --git a/src/fonts/titillium/font/titillium-web-v4-latin-regular.woff2 b/src/fonts/titillium/font/titillium-web-v4-latin-regular.woff2 new file mode 100644 index 000000000..4fbc572ab Binary files /dev/null and b/src/fonts/titillium/font/titillium-web-v4-latin-regular.woff2 differ diff --git a/src/fonts/titillium/index.css b/src/fonts/titillium/index.css new file mode 100644 index 000000000..f00315976 --- /dev/null +++ b/src/fonts/titillium/index.css @@ -0,0 +1,172 @@ +/* + * Thanks to + * + * https://google-webfonts-helper.herokuapp.com + * Copyright © 2016 Mario Ranftl | majodev + * + * titillium-web-200 - latin + */ +@font-face { + font-family: "Titillium Web"; + font-style: normal; + font-weight: 200; + src: url("./font/titillium-web-v4-latin-200.eot"); + src: + local("Titillium WebThin"), + local("TitilliumWeb-Thin"), + url("./font/titillium-web-v4-latin-200.eot?#iefix") format("embedded-opentype"), + url("./font/titillium-web-v4-latin-200.woff2") format("woff2"), + url("./font/titillium-web-v4-latin-200.woff") format("woff"), + url("./font/titillium-web-v4-latin-200.ttf") format("truetype"), + url("./font/titillium-web-v4-latin-200.svg#TitilliumWeb") format("svg"); +} + +@font-face { + font-family: "Titillium Web"; + font-style: italic; + font-weight: 200; + src: url("./font/titillium-web-v4-latin-200italic.eot"); + src: + local("Titillium WebThin Italic"), + local("TitilliumWeb-ThinItalic"), + url("./font/titillium-web-v4-latin-200italic.eot?#iefix") format("embedded-opentype"), + url("./font/titillium-web-v4-latin-200italic.woff2") format("woff2"), + url("./font/titillium-web-v4-latin-200italic.woff") format("woff"), + url("./font/titillium-web-v4-latin-200italic.ttf") format("truetype"), + url("./font/titillium-web-v4-latin-200italic.svg#TitilliumWeb") format("svg"); +} + +@font-face { + font-family: "Titillium Web"; + font-style: normal; + font-weight: 300; + src: url("./font/titillium-web-v4-latin-300.eot"); + src: + local("Titillium WebLight"), + local("TitilliumWeb-Light"), + url("./font/titillium-web-v4-latin-300.eot?#iefix") format("embedded-opentype"), + url("./font/titillium-web-v4-latin-300.woff2") format("woff2"), + url("./font/titillium-web-v4-latin-300.woff") format("woff"), + url("./font/titillium-web-v4-latin-300.ttf") format("truetype"), + url("./font/titillium-web-v4-latin-300.svg#TitilliumWeb") format("svg"); +} + +@font-face { + font-family: "Titillium Web"; + font-style: italic; + font-weight: 300; + src: url("./font/titillium-web-v4-latin-300italic.eot"); + src: + local("Titillium WebLight Italic"), + local("TitilliumWeb-LightItalic"), + url("./font/titillium-web-v4-latin-300italic.eot?#iefix") format("embedded-opentype"), + url("./font/titillium-web-v4-latin-300italic.woff2") format("woff2"), + url("./font/titillium-web-v4-latin-300italic.woff") format("woff"), + url("./font/titillium-web-v4-latin-300italic.ttf") format("truetype"), + url("./font/titillium-web-v4-latin-300italic.svg#TitilliumWeb") format("svg"); +} + +@font-face { + font-family: "Titillium Web"; + font-style: normal; + font-weight: 400; + src: url("./font/titillium-web-v4-latin-regular.eot"); + src: + local("Titillium Web"), + local("TitilliumWeb-Regular"), + url("./font/titillium-web-v4-latin-regular.eot?#iefix") format("embedded-opentype"), + url("./font/titillium-web-v4-latin-regular.woff2") format("woff2"), + url("./font/titillium-web-v4-latin-regular.woff") format("woff"), + url("./font/titillium-web-v4-latin-regular.ttf") format("truetype"), + url("./font/titillium-web-v4-latin-regular.svg#TitilliumWeb") format("svg"); +} + +@font-face { + font-family: "Titillium Web"; + font-style: italic; + font-weight: 400; + src: url("./font/titillium-web-v4-latin-italic.eot"); + src: + local("Titillium WebItalic"), + local("TitilliumWeb-Italic"), + url("./font/titillium-web-v4-latin-italic.eot?#iefix") format("embedded-opentype"), + url("./font/titillium-web-v4-latin-italic.woff2") format("woff2"), + url("./font/titillium-web-v4-latin-italic.woff") format("woff"), + url("./font/titillium-web-v4-latin-italic.ttf") format("truetype"), + url("./font/titillium-web-v4-latin-italic.svg#TitilliumWeb") format("svg"); +} + +@font-face { + font-family: "Titillium Web"; + font-style: normal; + font-weight: 600; + src: url("./font/titillium-web-v4-latin-600.eot"); + src: + local("Titillium WebSemiBold"), + local("TitilliumWeb-SemiBold"), + url("./font/titillium-web-v4-latin-600.eot?#iefix") format("embedded-opentype"), + url("./font/titillium-web-v4-latin-600.woff2") format("woff2"), + url("./font/titillium-web-v4-latin-600.woff") format("woff"), + url("./font/titillium-web-v4-latin-600.ttf") format("truetype"), + url("./font/titillium-web-v4-latin-600.svg#TitilliumWeb") format("svg"); +} + +@font-face { + font-family: "Titillium Web"; + font-style: italic; + font-weight: 600; + src: url("./font/titillium-web-v4-latin-600italic.eot"); + src: + local("Titillium WebSemiBold Italic"), + local("TitilliumWeb-SemiBoldItalic"), + url("./font/titillium-web-v4-latin-600italic.eot?#iefix") format("embedded-opentype"), + url("./font/titillium-web-v4-latin-600italic.woff2") format("woff2"), + url("./font/titillium-web-v4-latin-600italic.woff") format("woff"), + url("./font/titillium-web-v4-latin-600italic.ttf") format("truetype"), + url("./font/titillium-web-v4-latin-600italic.svg#TitilliumWeb") format("svg"); +} + +@font-face { + font-family: "Titillium Web"; + font-style: normal; + font-weight: 700; + src: url("./font/titillium-web-v4-latin-700.eot"); + src: + local("Titillium WebBold"), + local("TitilliumWeb-Bold"), + url("./font/titillium-web-v4-latin-700.eot?#iefix") format("embedded-opentype"), + url("./font/titillium-web-v4-latin-700.woff2") format("woff2"), + url("./font/titillium-web-v4-latin-700.woff") format("woff"), + url("./font/titillium-web-v4-latin-700.ttf") format("truetype"), + url("./font/titillium-web-v4-latin-700.svg#TitilliumWeb") format("svg"); +} + +@font-face { + font-family: "Titillium Web"; + font-style: italic; + font-weight: 700; + src: url("./font/titillium-web-v4-latin-700italic.eot"); + src: + local("Titillium WebBold Italic"), + local("TitilliumWeb-BoldItalic"), + url("./font/titillium-web-v4-latin-700italic.eot?#iefix") format("embedded-opentype"), + url("./font/titillium-web-v4-latin-700italic.woff2") format("woff2"), + url("./font/titillium-web-v4-latin-700italic.woff") format("woff"), + url("./font/titillium-web-v4-latin-700italic.ttf") format("truetype"), + url("./font/titillium-web-v4-latin-700italic.svg#TitilliumWeb") format("svg"); +} + +@font-face { + font-family: "Titillium Web"; + font-style: normal; + font-weight: 900; + src: url("./font/titillium-web-v4-latin-900.eot"); + src: + local("Titillium WebBlack"), + local("TitilliumWeb-Black"), + url("./font/titillium-web-v4-latin-900.eot?#iefix") format("embedded-opentype"), + url("./font/titillium-web-v4-latin-900.woff2") format("woff2"), + url("./font/titillium-web-v4-latin-900.woff") format("woff"), + url("./font/titillium-web-v4-latin-900.ttf") format("truetype"), + url("./font/titillium-web-v4-latin-900.svg#TitilliumWeb") format("svg"); +} diff --git a/src/icons/ita/font/Read Me.txt b/src/icons/ita/font/Read Me.txt new file mode 100644 index 000000000..8491652f8 --- /dev/null +++ b/src/icons/ita/font/Read Me.txt @@ -0,0 +1,7 @@ +Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures. + +To use the generated font in desktop programs, you can install the TTF font. In order to copy the character associated with each icon, refer to the text box at the bottom right corner of each glyph in demo.html. The character inside this text box may be invisible; but it can still be copied. See this guide for more info: https://icomoon.io/#docs/local-fonts + +You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects. + +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. diff --git a/src/icons/ita/font/demo-files/demo.css b/src/icons/ita/font/demo-files/demo.css new file mode 100644 index 000000000..39b8991da --- /dev/null +++ b/src/icons/ita/font/demo-files/demo.css @@ -0,0 +1,152 @@ +body { + padding: 0; + margin: 0; + font-family: sans-serif; + font-size: 1em; + line-height: 1.5; + color: #555; + background: #fff; +} +h1 { + font-size: 1.5em; + font-weight: normal; +} +small { + font-size: .66666667em; +} +a { + color: #e74c3c; + text-decoration: none; +} +a:hover, a:focus { + box-shadow: 0 1px #e74c3c; +} +.bshadow0, input { + box-shadow: inset 0 -2px #e7e7e7; +} +input:hover { + box-shadow: inset 0 -2px #ccc; +} +input, fieldset { + font-family: sans-serif; + font-size: 1em; + margin: 0; + padding: 0; + border: 0; +} +input { + color: inherit; + line-height: 1.5; + height: 1.5em; + padding: .25em 0; +} +input:focus { + outline: none; + box-shadow: inset 0 -2px #449fdb; +} +.glyph { + font-size: 16px; + width: 15em; + padding-bottom: 1em; + margin-right: 4em; + margin-bottom: 1em; + float: left; + overflow: hidden; +} +.liga { + width: 80%; + width: calc(100% - 2.5em); +} +.talign-right { + text-align: right; +} +.talign-center { + text-align: center; +} +.bgc1 { + background: #f1f1f1; +} +.fgc1 { + color: #999; +} +.fgc0 { + color: #000; +} +p { + margin-top: 1em; + margin-bottom: 1em; +} +.mvm { + margin-top: .75em; + margin-bottom: .75em; +} +.mtn { + margin-top: 0; +} +.mtl, .mal { + margin-top: 1.5em; +} +.mbl, .mal { + margin-bottom: 1.5em; +} +.mal, .mhl { + margin-left: 1.5em; + margin-right: 1.5em; +} +.mhmm { + margin-left: 1em; + margin-right: 1em; +} +.mls { + margin-left: .25em; +} +.ptl { + padding-top: 1.5em; +} +.pbs, .pvs { + padding-bottom: .25em; +} +.pvs, .pts { + padding-top: .25em; +} +.unit { + float: left; +} +.unitRight { + float: right; +} +.size1of2 { + width: 50%; +} +.size1of1 { + width: 100%; +} +.clearfix:before, .clearfix:after { + content: " "; + display: table; +} +.clearfix:after { + clear: both; +} +.hidden-true { + display: none; +} +.textbox0 { + width: 3em; + background: #f1f1f1; + padding: .25em .5em; + line-height: 1.5; + height: 1.5em; +} +#testDrive { + display: block; + padding-top: 24px; + line-height: 1.5; +} +.fs0 { + font-size: 16px; +} +.fs1 { + font-size: 32px; +} + diff --git a/src/icons/ita/font/demo-files/demo.js b/src/icons/ita/font/demo-files/demo.js new file mode 100644 index 000000000..6f45f1c40 --- /dev/null +++ b/src/icons/ita/font/demo-files/demo.js @@ -0,0 +1,30 @@ +if (!('boxShadow' in document.body.style)) { + document.body.setAttribute('class', 'noBoxShadow'); +} + +document.body.addEventListener("click", function(e) { + var target = e.target; + if (target.tagName === "INPUT" && + target.getAttribute('class').indexOf('liga') === -1) { + target.select(); + } +}); + +(function() { + var fontSize = document.getElementById('fontSize'), + testDrive = document.getElementById('testDrive'), + testText = document.getElementById('testText'); + function updateTest() { + testDrive.innerHTML = testText.value || String.fromCharCode(160); + if (window.icomoonLiga) { + window.icomoonLiga(testDrive); + } + } + function updateSize() { + testDrive.style.fontSize = fontSize.value + 'px'; + } + fontSize.addEventListener('change', updateSize, false); + testText.addEventListener('input', updateTest, false); + testText.addEventListener('change', updateTest, false); + updateSize(); +}()); diff --git a/src/icons/ita/font/demo.html b/src/icons/ita/font/demo.html new file mode 100644 index 000000000..5191cdaba --- /dev/null +++ b/src/icons/ita/font/demo.html @@ -0,0 +1,887 @@ + + + + + IcoMoon Demo + + + + + +
+

Font Name: ita (Glyphs: 53)

+
+
+

Grid Size: Unknown

+
+
+ + + + Icon-slideshare +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-googleplus +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-flickr +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-expand-media +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-list +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-pin +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-facebook +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-share +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-twitter +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-whatsapp +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-rss +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-youtube +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-comment +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-file +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-mail +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-video +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-camera +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-external-link +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-link +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-calendar +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-pdf +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-copy +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-favorite +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-error +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-download +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-upload +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-unlock +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-lock +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-settings +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-search +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-zoom-in +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-zoom-out +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-arrow-down +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-arrow-up +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-more-items +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-more-actions +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-check +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-cancel +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-app +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-refresh +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-close +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-drop-up +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-drop-down +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-collapse +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-expand +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-chevron-right +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-chevron-left +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-arrow-right +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-arrow-left +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-checkbox-checked +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-checkbox +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-radio-button +
+
+ + +
+
+ liga: + +
+
+
+
+ + + + Icon-radio-button-checked +
+
+ + +
+
+ liga: + +
+
+
+ + +
+

Font Test Drive

+ + + +
  +
+
+ +
+

Generated by IcoMoon

+
+ + + + diff --git a/src/icons/ita/font/fonts/ita.eot b/src/icons/ita/font/fonts/ita.eot new file mode 100644 index 000000000..988c47097 Binary files /dev/null and b/src/icons/ita/font/fonts/ita.eot differ diff --git a/src/icons/ita/font/fonts/ita.svg b/src/icons/ita/font/fonts/ita.svg new file mode 100644 index 000000000..b7ee8dec0 --- /dev/null +++ b/src/icons/ita/font/fonts/ita.svg @@ -0,0 +1,63 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/ita/font/fonts/ita.ttf b/src/icons/ita/font/fonts/ita.ttf new file mode 100644 index 000000000..c00c444ca Binary files /dev/null and b/src/icons/ita/font/fonts/ita.ttf differ diff --git a/src/icons/ita/font/fonts/ita.woff b/src/icons/ita/font/fonts/ita.woff new file mode 100644 index 000000000..5ebc2d923 Binary files /dev/null and b/src/icons/ita/font/fonts/ita.woff differ diff --git a/src/icons/ita/font/selection.json b/src/icons/ita/font/selection.json new file mode 100644 index 000000000..089dcbf49 --- /dev/null +++ b/src/icons/ita/font/selection.json @@ -0,0 +1,1691 @@ +{ + "IcoMoonType": "selection", + "icons": [ + { + "icon": { + "paths": [ + "M60.801 0.002v492.799c-12.799-6.4-31.999-19.2-44.8-6.4s6.4 25.6 6.4 38.4c64 64 134.4 108.799 211.2 140.8-19.2 51.199-25.6 108.799-19.2 166.399 12.799 96 76.8 192 179.2 192 51.199 0 102.4-31.999 102.4-89.599v-217.6c12.799 0 25.6 6.4 38.4 12.799v198.4c0 12.799 0 25.6 6.4 38.4 19.2 31.999 57.6 51.199 96 51.199 108.799-6.4 166.399-96 179.2-192 6.4-57.6 0-115.2-19.2-166.399 70.399-31.999 204.799-89.599 223.999-172.8 0-12.799-6.4-12.799-19.2-12.799s-25.6 6.4-31.999 12.799v-486.4h-908.8zM118.401 51.201h819.199v473.599c-12.799 6.4-25.6 12.799-38.4 19.2l-729.6 12.799c-19.2-6.4-38.4-19.2-51.199-25.6v-480zM387.201 300.801c-70.399 0-121.6 51.199-121.6 121.6 0 64 51.199 121.6 121.6 121.6 64 0 121.6-57.6 121.6-121.6s-51.199-121.6-121.6-121.6zM675.2 300.801c-64 0-121.6 51.199-121.6 121.6 0 64 57.6 121.6 121.6 121.6 70.399 0 121.6-57.6 121.6-121.6s-51.199-121.6-121.6-121.6z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "slideshare" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 64, + "id": 0, + "name": "slideshare", + "prevSize": 32, + "code": 83 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M537.599 825.603c0-6.4 0-19.2-6.4-25.6 0-6.4 0-12.799-6.4-19.2 0-6.4-6.4-12.799-12.799-19.2s-12.799-12.799-12.799-19.2c-6.4-6.4-12.799-12.799-19.2-19.2s-12.799-12.799-19.2-19.2c-6.4 0-12.799-6.4-19.2-12.799s-12.799-12.799-19.2-12.799c0-6.4-12.799-6.4-19.2-12.799-12.799-6.4-19.2-12.799-19.2-12.799-6.4 0-19.2 0-31.999 0-25.6 0-44.8 0-64 6.4s-44.8 6.4-64 19.2c-25.6 6.4-44.8 12.799-57.6 25.6-6.4 0-25.6 12.799-38.4 31.999s-19.2 38.4-19.2 64c0 25.6 6.4 51.199 19.2 70.399 12.799 25.6 31.999 38.4 57.6 51.199s44.8 25.6 70.399 25.6c25.6 6.4 51.199 12.799 76.8 12.799s44.8 0 70.399-6.4c19.2-6.4 38.4-12.799 57.6-25.6s31.999-25.6 44.8-44.8c25.6-12.799 31.999-31.999 31.999-57.6v0zM467.199 288.004c0-25.6 0-51.199-6.4-76.8s-19.2-51.199-31.999-76.8c-12.799-25.6-31.999-44.8-51.199-64-25.6-19.2-51.199-25.6-76.8-25.6-38.4 0-64 12.799-89.599 44.8s-31.999 64-31.999 102.4c0 19.2 0 38.4 6.4 57.6s12.799 44.8 19.2 64c6.4 19.2 19.2 38.4 31.999 57.6s25.6 31.999 44.8 38.4c19.2 12.799 38.4 12.799 57.6 12.799 38.4 0 70.399-12.799 83.2-38.4 31.999-19.2 44.8-51.199 44.8-96v0zM384 0.004h268.8l-83.2 44.8h-83.2c25.6 19.2 51.199 44.8 64 76.8 19.2 38.4 25.6 70.399 25.6 108.799 0 31.999-6.4 57.6-12.799 83.2-12.799 25.6-19.2 44.8-31.999 57.6s-25.6 25.6-38.4 38.4c-12.799 12.799-25.6 25.6-31.999 38.4-12.799 12.799-12.799 25.6-12.799 44.8 0 12.799 6.4 19.2 12.799 31.999s12.799 19.2 25.6 31.999c12.799 6.4 25.6 19.2 38.4 31.999 12.799 6.4 25.6 19.2 38.4 31.999s25.6 25.6 38.4 38.4c12.799 12.799 19.2 31.999 25.6 51.199s12.799 38.4 12.799 64c0 64-25.6 121.6-83.2 172.8-64 51.199-147.199 76.8-256 76.8-25.6 0-51.199 0-70.399-6.4-25.6-6.4-51.199-12.799-76.8-19.2-25.6-12.799-44.8-19.2-64-38.4s-31.999-31.999-44.8-51.199c-38.4-25.6-44.8-51.199-44.8-76.8s6.4-51.199 25.6-83.2c12.799-25.6 31.999-44.8 57.6-64s57.6-31.999 89.599-44.8c31.999-6.4 64-19.2 96-19.2 31.999-6.4 57.6-6.4 89.599-6.4-25.6-31.999-38.4-64-38.4-89.599 0-6.4 0-12.799 0-12.799 0-6.4 0-6.4 6.4-12.799 0 0 0-6.4 6.4-12.799 0-6.4 0-6.4 6.4-12.799-19.2 0-31.999 6.4-44.8 6.4-64 0-115.2-19.2-160-57.6-44.8-57.6-70.399-108.799-70.399-172.8 0-51.199 19.2-102.4 64-153.6 38.4-44.8 83.2-76.8 140.8-89.599 38.4-6.4 76.8-6.4 115.2-6.4v0zM1023.998 160.003v76.8h-160v160h-76.8v-160h-160v-76.8h160v-160h76.8v160h160z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "google_plus" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 65, + "id": 1, + "name": "googleplus", + "prevSize": 32, + "code": 71 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 1 + }, + { + "icon": { + "paths": [ + "M832 0c51.199 0 96 19.2 134.4 57.6s57.6 83.2 57.6 134.4v640c0 51.199-19.2 96-57.6 134.4s-83.2 57.6-134.4 57.6h-640c-51.199 0-96-19.2-134.4-57.6s-57.6-83.2-57.6-134.4v-640c0-51.199 19.2-96 57.6-134.4s83.2-57.6 134.4-57.6h640zM467.201 511.999c0-38.4-12.799-70.399-44.8-102.4s-57.6-38.4-102.4-38.4c-38.4 0-70.399 12.799-96 44.8-25.6 25.6-44.8 57.6-44.8 102.4 0 38.4 12.799 70.399 44.8 102.4 25.6 19.2 64 31.999 96 31.999 38.4 0 70.399-12.799 102.4-44.8 25.6-25.6 44.8-57.6 44.8-96zM844.801 511.999c0-38.4-12.799-70.399-44.8-102.4-25.6-25.6-64-38.4-96-38.4-38.4 0-70.399 12.799-102.4 44.8-25.6 25.6-44.8 57.6-44.8 102.4 0 38.4 12.799 70.399 44.8 102.4 25.6 25.6 57.6 44.8 102.4 44.8 38.4 0 70.399-12.799 96-44.8 25.6-38.4 44.8-70.399 44.8-108.799z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "flickr" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 66, + "id": 2, + "name": "flickr", + "prevSize": 32, + "code": 70 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 2 + }, + { + "icon": { + "paths": [ + "M1001.245 1024h-978.489c-11.377 0-22.756-11.377-22.756-22.756v-972.8c0-17.067 11.377-28.444 22.756-28.444h972.8c17.067 0 28.444 11.377 28.444 28.444v972.8c0 11.377-11.377 22.756-22.756 22.756zM51.201 972.8h921.6v-921.6h-921.6v921.6zM768.001 420.977c-11.377 0-22.756-11.377-22.756-22.756v-113.777h-113.777c-11.377 0-22.756-11.377-22.756-22.756-5.689-17.067 5.689-34.133 17.067-34.133h142.223c17.067 0 28.444 17.067 28.444 28.444v142.223c0 11.377-11.377 22.756-28.444 22.756v0zM256.001 420.977c-17.067 0-28.444-11.377-28.444-22.756v-142.223c0-11.377 11.377-28.444 28.444-28.444h142.223c11.377 0 22.756 11.377 22.756 28.444 0 11.377-11.377 22.756-22.756 22.756h-113.777v113.777c-5.689 17.067-17.067 28.444-28.444 28.444v0zM398.224 796.444h-142.223c-17.067 0-28.444-11.377-28.444-28.444v-142.223c0-11.377 11.377-22.756 22.756-22.756s22.756 11.377 22.756 22.756v113.777h113.777c11.377 0 22.756 11.377 22.756 22.756s0 34.133-11.377 34.133v0zM768.001 796.444h-142.223c-11.377 0-22.756-11.377-22.756-22.756s11.377-22.756 22.756-22.756h113.777v-113.777c0-11.377 11.377-22.756 22.756-22.756s22.756 11.377 22.756 22.756v142.223c11.377 5.689 0 17.067-17.067 17.067v0z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "expand_media" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 67, + "id": 3, + "name": "expand-media", + "prevSize": 32, + "code": 9946 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 3 + }, + { + "icon": { + "paths": [ + "M0 455.111h113.777v113.777h-113.777v-113.777z", + "M0 682.667h113.777v113.777h-113.777v-113.777z", + "M0 227.556h113.777v113.777h-113.777v-113.777z", + "M227.556 455.111h796.444v113.777h-796.444v-113.777z", + "M227.556 682.667h796.444v113.777h-796.444v-113.777z", + "M227.556 227.556h796.444v113.777h-796.444v-113.777z" + ], + "attrs": [ + {}, + {}, + {}, + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "list" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {}, + {}, + {}, + {} + ], + "properties": { + "order": 68, + "id": 4, + "name": "list", + "prevSize": 32, + "code": 8803 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 4 + }, + { + "icon": { + "paths": [ + "M812.8 300.8c0 166.4-300.8 723.2-300.8 723.2s-300.8-556.801-300.8-723.2c0-166.4 134.4-300.8 300.8-300.8s300.8 134.4 300.8 300.8z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "pin" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 69, + "id": 5, + "name": "pin", + "prevSize": 32, + "code": 128681 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 5 + }, + { + "icon": { + "paths": [ + "M591.645 335.644h159.289l-17.067 176.356h-142.222v511.999h-210.489v-511.999h-108.089v-176.356h108.089v-108.089c0-73.956 17.067-130.844 51.2-170.666 39.823-39.823 96.711-56.889 176.356-56.889h142.222v176.356h-85.333c-17.067 0-28.444 0-39.823 5.689-11.377 0-17.067 5.689-22.756 11.377-5.689 11.377-5.689 17.067-11.377 22.756 0 5.689 0 17.067 0 28.444v91.023z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "facebook" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 70, + "id": 6, + "name": "facebook", + "prevSize": 32, + "code": 102 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 6 + }, + { + "icon": { + "paths": [ + "M358.4 512c0 6.4 0 6.4 0 12.799l364.799 185.599c31.999-25.6 70.399-44.8 115.2-44.8 102.4 0 179.2 83.2 179.2 179.2 0 102.4-83.2 179.2-179.2 179.2-102.4 0-179.2-83.2-179.2-179.2 0-6.4 0-6.4 0-12.799l-364.799-185.599c-31.999 25.6-70.399 44.8-115.2 44.8-96 0-179.2-76.8-179.2-179.2s83.2-179.2 179.2-179.2c44.8 0 83.2 12.799 115.2 44.8l371.2-185.599c0-6.4 0-6.4 0-12.799 0-102.4 83.2-179.2 179.2-179.2s179.2 83.2 179.2 179.2-83.2 179.2-179.2 179.2c-44.8 0-83.2-12.799-115.2-44.8l-364.799 185.599c-6.4 6.4-6.4 6.4-6.4 12.799z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "share" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 71, + "id": 7, + "name": "share", + "prevSize": 32, + "code": 128226 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 7 + }, + { + "icon": { + "paths": [ + "M1024 196.266c-28.444 39.823-62.577 73.956-108.089 108.089v28.444c0 96.711-22.756 187.733-62.577 278.756-45.511 91.023-113.777 164.977-210.489 227.556-91.023 62.577-199.111 91.023-318.577 91.023s-227.556-28.444-324.267-91.023c11.377 0 28.444 0 51.2 0 96.711 0 182.044-28.444 261.689-85.333-45.511 0-85.333-17.067-119.467-45.511s-62.577-62.577-73.956-102.4c5.689 0 17.067 5.689 34.133 5.689s39.823 0 56.889-5.689c-51.2-11.377-91.023-34.133-119.467-73.956-34.133-51.2-45.511-91.023-45.511-142.223v0c28.444 11.377 56.889 22.756 91.023 28.444-62.577-51.2-91.023-108.089-91.023-182.044 0-34.133 11.377-68.267 28.444-102.4 113.777 136.533 256 210.489 432.356 216.177-5.689-11.377-5.689-28.444-5.689-45.511 0-56.889 17.067-108.089 62.577-147.911 39.823-39.823 91.023-62.577 147.911-62.577 62.577 0 108.089 17.067 153.6 62.577 45.511-11.377 91.023-22.756 130.844-45.511-17.067 45.511-45.511 85.333-91.023 113.777 39.823-5.689 79.644-17.067 119.467-28.444z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "twitter" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 72, + "id": 8, + "name": "twitter", + "prevSize": 32, + "code": 84 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 8 + }, + { + "icon": { + "paths": [ + "M651.377 563.197c5.689 0 28.444 11.377 62.577 28.444 39.823 17.067 56.889 28.444 56.889 34.133 0 0 0 5.689 0 11.377 0 17.067-5.689 34.133-11.377 51.2s-22.756 34.133-45.51 45.51c-22.756 11.377-45.51 17.067-68.266 17.067s-68.266-11.377-125.156-39.823c-39.823-22.756-79.644-45.51-113.777-79.644s-62.577-73.956-96.71-125.156c-28.444-45.51-39.823-91.022-39.823-125.156v-5.689c0-39.823 17.067-73.956 51.2-102.4 5.689-11.377 17.067-17.067 28.444-17.067 0 0 5.689 0 11.377 0s11.377 0 11.377 0 11.377 0 17.067 5.689c5.689 0 5.689 5.689 11.377 17.067 0 11.377 11.377 28.444 22.756 62.577 11.377 28.444 17.067 45.51 17.067 51.2 0 11.377-5.689 22.756-22.756 39.823-11.377 5.689-22.756 17.067-22.756 22.756 0 0 0 5.689 0 11.377 17.067 34.133 39.823 62.577 68.266 91.022 22.756 22.756 56.889 45.51 102.4 68.266 5.689 0 11.377 5.689 17.067 5.689s17.067-11.377 34.133-34.133c17.067-22.756 28.444-34.133 34.133-34.133v0zM520.532 915.906c56.889 0 108.089-11.377 164.977-34.133 51.2-22.756 96.71-51.2 130.843-85.333s68.266-79.644 85.333-130.843c22.756-51.2 34.133-108.089 34.133-164.977s-11.377-108.089-34.133-159.289c-22.756-56.889-51.2-102.4-91.022-136.533s-79.644-68.266-130.843-91.022c-51.2-22.756-108.089-34.133-164.977-34.133s-108.089 17.067-159.289 34.133c-51.2 22.756-96.71 51.2-130.843 91.022s-68.266 79.644-91.022 130.843c-22.756 51.2-28.444 108.089-28.444 164.977 0 91.022 22.756 170.666 79.644 244.622l-51.2 153.599 159.289-51.2c68.266 45.51 142.222 68.266 227.555 68.266zM520.532-0.001c68.266 0 130.843 11.377 193.422 39.823 62.577 22.756 113.777 62.577 159.289 108.089s79.644 96.71 108.089 159.289c28.444 62.577 39.823 125.156 39.823 193.422s-11.377 130.843-39.823 193.422c-22.756 62.577-62.577 113.777-108.089 159.289s-96.71 79.644-159.289 108.089c-62.577 22.756-125.156 39.823-193.422 39.823-85.333 0-164.977-22.756-238.932-62.577l-278.755 85.333 85.333-267.376c-45.51-73.956-68.266-164.977-68.266-255.999 0-68.266 11.377-130.843 39.823-193.422 22.756-62.577 62.577-113.777 108.089-159.289s96.71-79.644 159.289-108.089c56.889-28.444 125.156-39.823 193.422-39.823z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "whatsapp" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 73, + "id": 9, + "name": "whatsapp", + "prevSize": 32, + "code": 87 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 9 + }, + { + "icon": { + "paths": [ + "M280.043 876.906c0 39.603-16.972 73.547-39.603 96.176-28.287 33.945-62.232 45.259-96.176 45.259-39.603 0-73.547-11.314-96.176-39.603s-45.259-62.232-45.259-101.834 11.314-73.547 39.603-96.176 56.575-39.603 96.176-39.603c39.603 0 73.547 11.314 96.176 39.603 28.287 28.287 45.259 62.232 45.259 96.176zM653.436 967.426c0 11.314 0 22.63-11.314 33.945-5.658 11.314-22.63 16.972-33.945 16.972h-96.176c-11.314 0-22.63-5.658-28.287-11.314-11.314-5.658-16.972-16.972-16.972-28.287-11.314-107.492-56.575-203.669-135.779-282.873s-169.724-118.807-282.873-130.121c-11.314 0-22.63-5.658-28.287-16.972-16.972-11.314-16.972-22.63-16.972-33.945v-96.176c0-11.314 5.658-22.63 16.972-33.945 5.658-11.314 16.972-11.314 28.287-11.314h5.658c73.547 5.658 147.094 22.63 220.641 56.575s130.121 73.547 186.696 130.121c56.575 50.917 96.176 118.807 130.121 186.696s50.917 147.094 62.232 220.641v0zM1021.171 973.083c0 11.314 0 22.63-11.314 33.945-5.658 11.314-22.63 16.972-33.945 16.972h-101.834c-11.314 0-22.63-5.658-33.945-11.314-5.658-5.658-11.314-22.63-11.314-28.287-5.658-101.834-28.287-203.669-73.547-294.189-45.259-96.176-96.176-175.382-169.724-243.271-67.89-67.89-147.094-124.465-243.271-169.724s-192.354-79.204-294.189-79.204c-11.314 0-22.63-5.658-28.287-16.972-11.314-11.314-16.972-22.63-16.972-33.945v-101.834c0-11.314 5.658-22.63 16.972-33.945 5.658-11.314 16.972-11.314 28.287-11.314v0c124.465 5.658 248.928 33.945 362.078 84.862 118.807 50.917 220.641 118.807 311.161 214.983 90.52 90.52 158.409 192.354 214.983 305.503 50.917 118.807 79.204 237.613 84.862 367.735v0z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "rss" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 74, + "id": 10, + "name": "rss", + "prevSize": 32, + "code": 128195 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 10 + }, + { + "icon": { + "paths": [ + "M628.019 711.251v121.064c0 25.221-10.088 40.354-20.178 40.354s-20.178-5.045-25.221-10.088v-171.508c10.088-10.088 15.133-15.133 25.221-15.133 15.133 0 20.178 15.133 20.178 35.311v0zM824.749 716.296v25.221h-50.444v-25.221c0-25.221 10.088-40.354 25.221-40.354s25.221 15.133 25.221 40.354v0zM264.827 590.187h60.532v-50.444h-176.551v50.444h60.532v327.882h60.532v-327.882zM431.29 918.069h50.444v-282.482h-50.444v216.907c-10.088 15.133-20.178 25.221-30.266 25.221s-10.088-5.045-10.088-10.088c0 0 0-10.088 0-20.178v-206.817h-50.444v226.995c0 20.178 0 30.266 5.045 40.354 5.045 15.133 15.133 20.178 35.311 20.178s40.354-10.088 60.532-35.311v25.221zM678.463 832.315v-116.019c0-25.221 0-45.399-5.045-55.487-5.045-20.178-20.178-30.266-40.354-30.266s-40.354 10.088-55.487 30.266v-126.109h-50.444v383.37h50.444v-30.266c20.178 20.178 35.311 30.266 55.487 30.266s35.311-10.088 40.354-30.266c5.045-10.088 5.045-25.221 5.045-55.487zM875.192 827.271v-10.088h-50.444c0 20.178 0 30.266 0 35.311 0 10.088-10.088 20.178-20.178 20.178-20.178 0-25.221-15.133-25.221-40.354v-50.444h100.886v-60.532c0-30.266-5.045-50.444-15.133-65.577-15.133-20.178-35.311-30.266-60.532-30.266s-45.399 10.088-60.532 30.266c-10.088 15.133-15.133 35.311-15.133 65.577v100.886c0 30.266 5.045 50.444 20.178 65.577 15.133 20.178 35.311 30.266 60.532 30.266s50.444-10.088 60.532-30.266c10.088-10.088 10.088-20.178 10.088-30.266-5.045 0-5.045-15.133-5.045-30.266zM522.088 302.66v-121.064c0-25.221-10.088-40.354-25.221-40.354s-25.221 15.133-25.221 40.354v121.064c0 25.221 10.088 40.354 25.221 40.354 20.178 0 25.221-15.133 25.221-40.354zM940.769 731.429c0 90.798-5.045 156.375-15.133 201.774-5.045 20.178-15.133 40.354-30.266 55.487-20.178 15.133-35.311 25.221-60.532 25.221-70.62 10.088-176.551 10.088-322.838 10.088s-252.216 0-322.838-5.045c-20.178 0-40.354-10.088-60.532-25.221-15.133-15.133-30.266-35.311-30.266-55.487-10.088-45.399-15.133-110.976-15.133-201.774s5.045-156.375 15.133-201.774c5.045-25.221 15.133-40.354 30.266-60.532 20.178-15.133 35.311-25.221 60.532-25.221 70.62-10.088 176.551-10.088 317.793-10.088s252.216 5.045 322.838 10.088c20.178 0 40.354 10.088 60.532 25.221 15.133 15.133 30.266 35.311 30.266 60.532 15.133 40.354 20.178 105.931 20.178 196.729v0zM365.715 0h60.532l-75.665 226.995v156.375h-55.487v-156.375c-5.045-25.221-15.133-65.577-35.311-121.064-15.133-40.354-25.221-75.665-35.311-105.931h60.532l40.354 151.33 40.354-151.33zM577.577 191.684v100.886c0 30.266-5.045 55.487-15.133 70.62-15.133 20.178-35.311 30.266-60.532 30.266s-45.399-10.088-60.532-30.266c-10.088-15.133-15.133-40.354-15.133-70.62v-100.886c0-30.266 5.045-50.444 15.133-65.577 15.133-20.178 35.311-30.266 60.532-30.266s45.399 10.088 60.532 30.266c10.088 10.088 15.133 35.311 15.133 65.577zM769.261 95.842v287.527h-50.444v-30.266c-20.178 25.221-40.354 35.311-60.532 35.311s-30.266-5.045-35.311-20.178c-5.045-10.088-5.045-25.221-5.045-45.399v-226.995h50.444v211.862c0 10.088 0 20.178 0 20.178 0 10.088 5.045 10.088 10.088 10.088 10.088 0 20.178-10.088 30.266-25.221v-216.907h60.532z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "youtube" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 75, + "id": 11, + "name": "youtube", + "prevSize": 32, + "code": 89 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 11 + }, + { + "icon": { + "paths": [ + "M959.999 64v639.999h-703.998c-19.2 0-31.999 6.4-44.8 19.2l-147.199 147.199v-806.398h895.998zM959.999 0.001h-895.998c-38.4 0-64 25.6-64 64v639.999c0 38.4 0 319.999 0 319.999l256-256h703.998c38.4 0 64-25.6 64-64v-639.999c0-38.4-25.6-64-64-64v0z", + "M255.999 224.001h511.999v64h-511.999v-64z", + "M255.999 416h511.999v64h-511.999v-64z" + ], + "attrs": [ + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "comment" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {} + ], + "properties": { + "order": 76, + "id": 12, + "name": "comment", + "prevSize": 32, + "code": 128172 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 12 + }, + { + "icon": { + "paths": [ + "M967.111 113.779h-170.666v-56.889c0-34.133-22.756-56.889-56.889-56.889h-682.666c-34.133 0-56.889 22.756-56.889 56.889v796.443c0 34.133 22.756 56.889 56.889 56.889h170.666v56.889c0 34.133 22.756 56.889 56.889 56.889h682.666c34.133 0 56.889-22.756 56.889-56.889v-796.443c0-34.133-22.756-56.889-56.889-56.889zM56.891 853.334v-796.443h682.666v796.443h-682.666zM967.111 967.111h-682.666v-56.889h455.11c34.133 0 56.889-22.756 56.889-56.889v-682.666h170.666v796.443z", + "M170.668 256.001h455.11v56.889h-455.11v-56.889z", + "M170.668 426.668h455.11v56.889h-455.11v-56.889z", + "M170.668 597.334h455.11v56.889h-455.11v-56.889z" + ], + "attrs": [ + {}, + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "file" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {}, + {} + ], + "properties": { + "order": 77, + "id": 13, + "name": "file", + "prevSize": 32, + "code": 128196 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 13 + }, + { + "icon": { + "paths": [ + "M967.111 170.667h-910.222c-34.133 0-56.889 22.756-56.889 56.889v568.889c0 34.133 22.756 56.889 56.889 56.889h910.222c34.133 0 56.889-22.756 56.889-56.889v-568.889c0-34.133-22.756-56.889-56.889-56.889zM938.667 227.556l-426.666 307.2-426.666-307.2h853.332zM56.891 796.444v-517.689l455.11 329.956 455.11-329.956v517.689h-910.222z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "mail" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 78, + "id": 14, + "name": "mail", + "prevSize": 32, + "code": 128231 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 14 + }, + { + "icon": { + "paths": [ + "M995.556 216.179c-5.689-5.689-17.067-5.689-22.756-5.689-11.377 0-22.756 5.689-34.133 11.377l-142.222 113.777v-108.089c0-34.133-22.756-56.889-56.889-56.889h-682.667c-34.133 0-56.889 22.756-56.889 56.889v568.89c0 34.133 22.756 56.889 56.889 56.889h682.667c34.133 0 56.889-22.756 56.889-56.889v-96.711l142.222 113.777c11.377 5.689 22.756 11.377 34.133 11.377 5.689 0 17.067 0 22.756-5.689 17.067-11.377 28.444-28.444 28.444-45.511v-511.999c0-17.067-11.377-39.823-28.444-45.511zM739.557 796.445h-682.667v-568.89h682.667v568.89zM972.8 768.001l-176.356-136.533v-227.556l176.356-147.91v511.999z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "video" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 79, + "id": 15, + "name": "video", + "prevSize": 32, + "code": 127909 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 15 + }, + { + "icon": { + "paths": [ + "M967.111 227.556v568.889h-910.222v-568.889h910.222zM967.111 170.667h-910.222c-34.133 0-56.889 22.756-56.889 56.889v568.889c0 34.133 22.756 56.889 56.889 56.889h910.222c34.133 0 56.889-22.756 56.889-56.889v-568.889c0-34.133-22.756-56.889-56.889-56.889v0z", + "M682.667 341.334c96.711 0 170.666 73.956 170.666 170.666s-73.956 170.666-170.666 170.666-170.666-73.956-170.666-170.666 73.956-170.666 170.666-170.666zM682.667 284.444c-125.156 0-227.556 102.4-227.556 227.556s102.4 227.556 227.556 227.556 227.556-102.4 227.556-227.556-102.4-227.556-227.556-227.556v0z", + "M398.224 341.334c0 31.419-25.471 56.889-56.889 56.889s-56.889-25.471-56.889-56.889c0-31.419 25.471-56.889 56.889-56.889s56.889 25.471 56.889 56.889z" + ], + "attrs": [ + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "camera" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {} + ], + "properties": { + "order": 80, + "id": 16, + "name": "camera", + "prevSize": 32, + "code": 128247 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 16 + }, + { + "icon": { + "paths": [ + "M448.001 128c-249.6 0-448 198.4-448 448s198.4 448 448 448 448-198.4 448-448h-64c0 211.2-172.8 384-384 384s-384-172.8-384-384 172.8-384 384-384v-64z", + "M960.001 0.001h-448v64h396.799l-486.4 486.4 44.8 44.8 492.799-492.799v409.6h64v-511.999z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "external_link" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 81, + "id": 17, + "name": "external-link", + "prevSize": 32, + "code": 128413 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 17 + }, + { + "icon": { + "paths": [ + "M500.622 369.779c34.133 0 62.577 22.756 62.577 56.889v119.466h62.577v-119.466c0-62.577-56.889-113.777-125.155-113.777v0h-375.465c-68.266 0-125.155 51.2-125.155 113.777v227.555c0 62.577 56.889 113.777 125.155 113.777h250.31v-56.889h-250.31c-34.133 0-62.577-22.756-62.577-56.889v-227.555c0-34.133 28.444-56.889 62.577-56.889h375.465z", + "M523.378 654.222c-34.133 0-62.577-22.756-62.577-56.889v-119.466h-62.577v119.466c0 62.577 56.889 113.777 125.155 113.777v0h375.465c68.266 0 125.155-51.2 125.155-113.777v-227.555c0-62.577-56.889-113.777-125.155-113.777h-250.31v56.889h250.31c34.133 0 62.577 22.756 62.577 56.889v227.555c0 34.133-28.444 56.889-62.577 56.889h-375.465z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "link" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 82, + "id": 18, + "name": "link", + "prevSize": 32, + "code": 128279, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 18 + }, + { + "icon": { + "paths": [ + "M769.591 642.384v127.204h-127.204v-127.204h127.204zM769.591 578.781h-127.204c-38.161 0-63.603 25.441-63.603 63.603v127.204c0 38.161 25.441 63.603 63.603 63.603h127.204c38.161 0 63.603-25.441 63.603-63.603v-127.204c0-38.161-25.441-63.603-63.603-63.603v0z", + "M960.399 133.565h-133.565v-69.962c0-38.161-25.441-63.603-63.603-63.603s-63.603 25.441-63.603 63.603v69.962h-381.615v-69.962c0-38.161-25.441-63.603-63.603-63.603s-63.603 25.441-63.603 63.603v69.962h-127.204c-38.161 0-63.603 25.441-63.603 63.603v763.229c0 38.161 25.441 63.603 63.603 63.603h890.433c38.161 0 63.603-25.441 63.603-63.603v-763.229c6.361-31.801-19.081-63.603-57.242-63.603zM960.399 960.396h-890.433v-566.061h890.433v566.061zM960.399 330.732h-890.433v-133.565h127.204c0 38.161 25.441 63.603 63.603 63.603s63.603-25.441 63.603-63.603v0h381.615c0 38.161 25.441 63.603 63.603 63.603s63.603-25.441 63.603-63.603v0h133.565v133.565z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "calendar" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 83, + "id": 19, + "name": "calendar", + "prevSize": 32, + "code": 128197, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 19 + }, + { + "icon": { + "paths": [ + "M967.111 113.779h-170.666v-56.889c0-34.133-22.756-56.889-56.889-56.889h-682.666c-34.133 0-56.889 22.756-56.889 56.889v796.443c0 34.133 22.756 56.889 56.889 56.889h170.666v56.889c0 34.133 22.756 56.889 56.889 56.889h682.666c34.133 0 56.889-22.756 56.889-56.889v-796.443c0-34.133-22.756-56.889-56.889-56.889zM56.891 853.334v-796.443h682.666v796.443h-682.666zM967.111 967.111h-682.666v-56.889h455.11c34.133 0 56.889-22.756 56.889-56.889v-682.666h170.666v796.443z", + "M193.424 466.49h-39.823v73.956h-45.511v-250.31h91.023c56.889 0 85.333 28.444 85.333 85.333 0 28.444-5.689 51.2-22.756 68.267s-39.823 22.756-68.267 22.756zM153.601 420.978h39.823c22.756 0 39.823-17.067 39.823-45.511 0-17.067-5.689-28.444-11.377-34.133-5.689 0-11.377-5.689-28.444-5.689h-39.823v85.333z", + "M398.224 534.757h-79.644v-244.622h79.644c22.756 0 39.823 0 51.2 5.689s22.756 11.377 34.133 22.756c5.689 11.377 11.377 22.756 17.067 34.133s5.689 34.133 5.689 51.2 0 39.823-5.689 56.889c0 17.067-5.689 28.444-17.067 39.823-5.689 11.377-17.067 17.067-34.133 22.756-11.377 11.377-28.444 11.377-51.2 11.377zM449.424 438.045c0-5.689 0-17.067 0-34.133s0-22.756 0-34.133c0-5.689-5.689-17.067-5.689-22.756 0 0-5.689-5.689-17.067-5.689-5.689 0-17.067-5.689-28.444-5.689h-28.444v159.289h28.444c17.067 0 28.444-5.689 39.823-11.377 5.689-11.377 11.377-22.756 11.377-45.511z", + "M546.134 534.757v-244.622h153.6v45.511h-108.089v73.956h91.023v45.511h-85.333v85.333h-51.2z" + ], + "attrs": [ + {}, + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "pdf" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {}, + {} + ], + "properties": { + "order": 84, + "id": 20, + "name": "pdf", + "prevSize": 32, + "code": 128459, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 20 + }, + { + "icon": { + "paths": [ + "M967.111 113.779h-170.666v-56.889c0-34.133-22.756-56.889-56.889-56.889h-682.666c-34.133 0-56.889 22.756-56.889 56.889v796.443c0 34.133 22.756 56.889 56.889 56.889h170.666v56.889c0 34.133 22.756 56.889 56.889 56.889h682.666c34.133 0 56.889-22.756 56.889-56.889v-796.443c0-34.133-22.756-56.889-56.889-56.889zM56.891 853.334v-796.443h682.666v796.443h-682.666zM967.111 967.111h-682.666v-56.889h455.11c34.133 0 56.889-22.756 56.889-56.889v-682.666h170.666v796.443z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "copy" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 85, + "id": 21, + "name": "copy", + "prevSize": 32, + "code": 128461, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 21 + }, + { + "icon": { + "paths": [ + "M745.244 113.777v0c113.777 0 221.867 68.267 221.867 199.111 0 193.423-301.511 466.489-455.111 580.267-153.6-119.467-455.111-392.533-455.111-580.267 0-136.533 113.777-199.111 216.177-199.111 85.333 0 153.6 39.823 193.423 102.4 11.377 17.067 28.444 28.444 51.2 28.444 0 0 0 0 0 0 22.756 0 39.823-11.377 51.2-34.133 28.444-56.889 96.711-96.711 176.356-96.711zM745.244 56.889c-96.711 0-187.733 45.511-233.244 136.533-51.2-91.023-147.911-136.533-238.933-136.533-136.533 0-273.067 91.023-273.067 256 0 284.444 512 654.223 512 654.223s512-369.777 512-654.223c0-164.977-142.223-256-278.756-256v0z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "favorite" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 86, + "id": 22, + "name": "favorite", + "prevSize": 32, + "code": 9825, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 22 + }, + { + "icon": { + "paths": [ + "M512 51.2c255.999 0 460.8 204.8 460.8 460.8s-204.8 460.8-460.8 460.8-460.8-204.8-460.8-460.8 204.8-460.8 460.8-460.8zM512 0c-281.6 0-512 230.4-512 512s230.4 512 512 512 512-230.4 512-512-230.4-512-512-512v0z", + "M460.8 767.999c0-30.72 20.48-51.2 51.2-51.2s51.2 20.48 51.2 51.2c0 30.72-20.48 51.2-51.2 51.2s-51.2-20.48-51.2-51.2z", + "M481.28 665.6l-10.24-460.8h81.92l-10.24 460.8z" + ], + "attrs": [ + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "error" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {} + ], + "properties": { + "order": 87, + "id": 23, + "name": "error", + "prevSize": 32, + "code": 128500, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 23 + }, + { + "icon": { + "paths": [ + "M18.506 962.312h986.988v61.687h-986.988v-61.687z", + "M660.047 61.685v400.963h191.229l-339.277 320.771-339.277-320.771h185.060v-400.963h302.265zM721.734 0h-425.638v400.963h-277.59l493.493 462.65 493.493-462.65h-283.759v-400.963z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "download" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 88, + "id": 24, + "name": "download", + "prevSize": 32, + "code": 11015 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 24 + }, + { + "icon": { + "paths": [ + "M15.515 0h992.97v62.061h-992.97v-62.061z", + "M511.999 242.037l341.334 322.716h-186.182v397.188h-297.891v-403.393h-198.593l341.334-316.509zM511.999 155.152l-496.484 465.455h285.479v403.393h428.218v-403.393h279.273l-496.484-465.455z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "upload" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 89, + "id": 25, + "name": "upload", + "prevSize": 32, + "code": 11014 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 25 + }, + { + "icon": { + "paths": [ + "M609.521 682.665c0 53.861-43.663 97.523-97.523 97.523s-97.523-43.663-97.523-97.523c0-53.861 43.663-97.523 97.523-97.523s97.523 43.663 97.523 97.523z", + "M853.332 341.332h-92.648v-97.523c0-136.534-107.277-243.809-243.809-243.809s-243.809 107.277-243.809 243.809v0h48.762c0-107.277 87.771-195.048 195.048-195.048s195.048 87.771 195.048 195.048v97.523h-541.257c-29.257 0-48.762 19.505-48.762 48.762v585.143c0 29.257 19.505 48.762 48.762 48.762h682.666c29.257 0 48.762-19.505 48.762-48.762v-585.143c0-29.257-19.505-48.762-48.762-48.762zM853.332 975.237h-682.666v-585.143h682.666v585.143z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "unlock" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 90, + "id": 26, + "name": "unlock", + "prevSize": 32, + "code": 128275 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 26 + }, + { + "icon": { + "paths": [ + "M609.522 682.665c0 53.861-43.663 97.523-97.523 97.523s-97.523-43.663-97.523-97.523c0-53.861 43.663-97.523 97.523-97.523s97.523 43.663 97.523 97.523z", + "M853.333 341.332h-92.648v-97.523c0-136.534-107.277-243.809-243.809-243.809s-243.809 107.277-243.809 243.809v0 97.523h-102.4c-29.257 0-48.762 19.505-48.762 48.762v585.143c0 29.257 19.505 48.762 48.762 48.762h682.666c29.257 0 48.762-19.505 48.762-48.762v-585.143c0-29.257-19.505-48.762-48.762-48.762zM321.828 243.808c0-107.277 87.771-195.048 195.048-195.048s195.048 87.771 195.048 195.048v97.523h-390.095v-97.523zM853.333 975.237h-682.666v-585.143h682.666v585.143z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "lock" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 91, + "id": 27, + "name": "lock", + "prevSize": 32, + "code": 128274 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 27 + }, + { + "icon": { + "paths": [ + "M591.36 51.201l15.36 112.64 5.12 30.72 25.6 10.24c25.6 10.24 51.2 25.6 76.8 40.96l25.6 15.36 20.48-5.12 107.52-46.080 81.92 138.24-92.16 71.68-20.48 15.36 5.12 30.72c0 15.36 5.12 30.72 5.12 46.080s0 25.6-5.12 46.080l-5.12 30.72 20.48 15.36 92.16 71.68-81.92 138.24-107.52-46.080-25.6-10.24-20.48 15.36c-25.6 20.48-51.2 35.84-76.8 46.080l-25.6 10.24-5.12 30.72-15.36 112.64h-158.72l-15.36-112.64-10.24-30.72-25.6-10.24c-25.6-10.24-51.2-25.6-76.8-40.96l-25.6-15.36-20.48 5.12-107.52 46.080-81.92-138.24 92.16-71.68 20.48-15.36-5.12-30.72c0-15.36-5.12-30.72-5.12-46.080s0-25.6 5.12-46.080l5.12-30.72-20.48-15.36-92.16-66.56 81.92-143.36 107.52 46.080 25.6 10.24 20.48-20.48c25.6-15.36 51.2-30.72 76.8-40.96l25.6-10.24 5.12-30.72 15.36-112.64h163.84zM509.44 742.401c128 0 230.4-102.4 230.4-230.4s-102.4-230.4-230.4-230.4-230.4 102.4-230.4 230.4 102.4 230.4 230.4 230.4zM611.84-0h-204.8c-10.24 0-25.6 10.24-25.6 20.48l-20.48 138.24c-30.72 10.24-56.32 30.72-87.040 51.2l-122.88-51.2c-5.12-5.12-10.24-5.12-10.24-5.12-10.24 0-20.48 5.12-25.6 15.36l-102.4 179.2c-5.12 5.12 0 20.48 10.24 30.72l107.52 81.92c0 15.36-5.12 30.72-5.12 51.2s0 35.84 5.12 51.2l-107.52 87.040c-10.24 5.12-10.24 20.48-5.12 30.72l102.4 179.2c0 5.12 10.24 10.24 20.48 10.24 5.12 0 5.12 0 10.24 0l128-51.2c25.6 20.48 56.32 35.84 87.040 51.2l20.48 133.12c0 10.24 10.24 20.48 25.6 20.48h204.8c10.24 0 25.6-10.24 25.6-20.48l20.48-133.12c30.72-10.24 61.44-30.72 87.040-51.2l128 51.2c5.12 0 5.12 0 10.24 0 10.24 0 15.36-5.12 20.48-15.36l102.4-179.2c5.12-10.24 5.12-25.6-5.12-30.72l-117.76-81.92c0-15.36 5.12-30.72 5.12-51.2s0-35.84-5.12-51.2l107.52-87.040c10.24-5.12 10.24-20.48 5.12-30.72l-102.4-179.2c0-5.12-10.24-10.24-20.48-10.24-5.12 0-5.12 0-10.24 0l-128 51.2c-25.6-20.48-56.32-35.84-87.040-51.2l-20.48-138.24c5.12-5.12-5.12-15.36-20.48-15.36v0zM509.44 691.201c-97.28 0-179.2-81.92-179.2-179.2s81.92-179.2 179.2-179.2 179.2 81.92 179.2 179.2-81.92 179.2-179.2 179.2v0z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "settings" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 92, + "id": 28, + "name": "settings", + "prevSize": 32, + "code": 9881 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 28 + }, + { + "icon": { + "paths": [ + "M0 983.955l320.357-320.357c-62.927-68.648-97.251-160.179-97.251-263.151 0-223.106 177.341-400.447 400.447-400.447s400.447 177.341 400.447 400.447c0 223.106-177.341 400.447-400.447 400.447-102.972 0-194.503-40.045-263.151-97.251l-320.357 320.357-40.045-40.045zM617.832 749.407c188.782 0 343.24-154.458 343.24-343.24s-154.458-343.24-343.24-343.24-343.24 154.458-343.24 343.24 154.458 343.24 343.24 343.24z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "search" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 93, + "id": 29, + "name": "search", + "prevSize": 32, + "code": 128269 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 29 + }, + { + "icon": { + "paths": [ + "M0 983.955l320.357-320.357c-62.927-68.648-97.251-160.179-97.251-263.151 0-223.106 177.341-400.447 400.447-400.447s400.447 177.341 400.447 400.447c0 223.106-177.341 400.447-400.447 400.447-102.972 0-194.503-40.045-263.151-97.251l-320.357 320.357-40.045-40.045zM623.553 749.407c188.782 0 343.24-154.458 343.24-343.24s-154.458-343.24-343.24-343.24-343.24 154.458-343.24 343.24 154.458 343.24 343.24 343.24z", + "M451.933 383.285h143.017v-143.017h57.207v143.017h143.017v57.207h-143.017v143.017h-57.207v-143.017h-143.017z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "zoom_in" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 94, + "id": 30, + "name": "zoom-in", + "prevSize": 32, + "code": 9906 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 30 + }, + { + "icon": { + "paths": [ + "M0 983.955l320.357-320.357c-62.927-68.648-97.251-160.179-97.251-263.151 0-223.106 177.341-400.447 400.447-400.447s400.447 177.341 400.447 400.447c0 223.106-177.341 400.447-400.447 400.447-102.972 0-194.503-40.045-263.151-97.251l-320.357 320.357-40.045-40.045zM617.832 749.407c188.782 0 343.24-154.458 343.24-343.24s-154.458-343.24-343.24-343.24-343.24 154.458-343.24 343.24 154.458 343.24 343.24 343.24z", + "M795.172 371.843h-343.24v57.207h343.24v-57.207z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "zoom_out" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 95, + "id": 31, + "name": "zoom-out", + "prevSize": 32, + "code": 128271 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 31 + }, + { + "icon": { + "paths": [ + "M448 0v780.8l-358.4-358.4-89.6 89.6 512 512 89.6-89.6 422.4-416-89.6-96-358.4 358.4v-780.8z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "arrow_down" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 96, + "id": 32, + "name": "arrow-down", + "prevSize": 32, + "code": 11107 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 32 + }, + { + "icon": { + "paths": [ + "M576 1024v-780.8l358.4 358.4 89.6-89.6-512-512-89.6 89.6-422.4 416 89.6 96 358.4-358.4v780.8z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "arrow_up" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 97, + "id": 33, + "name": "arrow-up", + "prevSize": 32, + "code": 11016 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 33 + }, + { + "icon": { + "paths": [ + "M640 512c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z", + "M640 128c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z", + "M640 896c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z" + ], + "attrs": [ + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "more_vertical" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {} + ], + "properties": { + "order": 98, + "id": 34, + "name": "more-items", + "prevSize": 32, + "code": 8942 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 34 + }, + { + "icon": { + "paths": [ + "M640.001 512c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z", + "M256 512c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z", + "M1024.001 512c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z" + ], + "attrs": [ + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "more" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {} + ], + "properties": { + "order": 99, + "id": 35, + "name": "more-actions", + "prevSize": 32, + "code": 8943 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 35 + }, + { + "icon": { + "paths": [ + "M1024 213.835l-90.353-84.329-590.306 596.33-259.012-259.012-84.329 90.353 259.012 252.988h-6.024l90.353 84.329 84.329-84.329z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "check" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 100, + "id": 36, + "name": "check", + "prevSize": 32, + "code": 10003 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 36 + }, + { + "icon": { + "paths": [ + "M1024 512c0 281.6-230.4 512-512 512s-512-230.4-512-512 230.4-512 512-512 512 230.4 512 512zM803.84 296.96l-71.68-71.68-220.16 215.040-215.040-220.16-76.8 76.8 215.040 215.040-215.040 215.040 71.68 71.68 215.040-215.040 215.040 215.040 71.68-71.68-209.919-215.040 220.16-215.040z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "cancel" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 101, + "id": 37, + "name": "cancel", + "prevSize": 32, + "code": 9747 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 37 + }, + { + "icon": { + "paths": [ + "M0.001 256h256v-256h-256v256zM384.001 1023.999h256v-256h-256v256zM0.001 1023.999h256v-256h-256v256zM0.001 639.999h256v-256h-256v256zM384.001 639.999h256v-256h-256v256zM768 0.001v256h256v-256h-256zM384.001 256h256v-256h-256v256zM768 639.999h256v-256h-256v256zM768 1023.999h256v-256h-256v256z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "app" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 102, + "id": 38, + "name": "app", + "prevSize": 32, + "code": 128242 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 38 + }, + { + "icon": { + "paths": [ + "M910.221 512.001c0 221.867-176.356 398.223-398.223 398.223s-398.223-176.356-398.223-398.223c0-221.867 176.356-398.223 398.223-398.223 96.711 0 187.733 34.133 261.689 96.711l-130.844 130.844h324.267v-318.577l-113.777 113.777c-91.023-91.023-216.177-136.533-341.333-136.533-284.444 0-512 227.556-512 512s227.556 512 512 512 512-227.556 512-512h-113.777z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "refresh" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 103, + "id": 39, + "name": "refresh", + "prevSize": 32, + "code": 10227 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 39 + }, + { + "icon": { + "paths": [ + "M1024 106.985l-106.985-106.985-405.015 405.015-405.015-405.015-106.985 106.985 405.015 405.015-405.015 405.015 106.985 106.985 405.015-405.015 405.015 405.015 106.985-106.985-405.015-405.015z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "close" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 104, + "id": 40, + "name": "close", + "prevSize": 32, + "code": 128501 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 40 + }, + { + "icon": { + "paths": [ + "M1024 256l-512 512-512-512z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "drop_up" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 105, + "id": 41, + "name": "drop-up", + "prevSize": 32, + "code": 9660 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 41 + }, + { + "icon": { + "paths": [ + "M0 768l512-512 512 512z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "drop_down" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 106, + "id": 42, + "name": "drop-down", + "prevSize": 32, + "code": 9650 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 42 + }, + { + "icon": { + "paths": [ + "M904.534 827.733l119.466-119.466-512-512-512 512 119.466 119.466 392.534-392.534 392.534 392.534z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "collapse" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 107, + "id": 43, + "name": "collapse", + "prevSize": 32, + "code": 9207 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 43 + }, + { + "icon": { + "paths": [ + "M119.466 196.267l-119.466 119.466 512 512 512-512-119.466-119.466-392.534 392.534-392.534-392.534z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "expand" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 108, + "id": 44, + "name": "expand", + "prevSize": 32, + "code": 9206 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 44 + }, + { + "icon": { + "paths": [ + "M196.267 904.534l119.466 119.466 512-512-512-512-119.466 119.466 392.534 392.534-392.534 392.534z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "chevron_right" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 109, + "id": 45, + "name": "chevron-right", + "prevSize": 32, + "code": 9205 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 45 + }, + { + "icon": { + "paths": [ + "M827.733 119.466l-119.466-119.466-512 512 512 512 119.466-119.466-392.534-392.534 392.534-392.534z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "chevron_left" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 110, + "id": 46, + "name": "chevron-left", + "prevSize": 32, + "code": 9204 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 46 + }, + { + "icon": { + "paths": [ + "M0 576h780.8l-358.4 358.4 89.6 89.6 512-512-89.6-89.6-416-422.4-96 89.6 358.4 358.4h-780.8z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "arrow_right" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 111, + "id": 47, + "name": "arrow-right", + "prevSize": 32, + "code": 10230 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 47 + }, + { + "icon": { + "paths": [ + "M1024 448h-780.8l358.4-358.4-89.6-89.6-512 512 89.6 89.6 416 422.4 89.6-89.6-352.001-358.4h780.8z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "arrow_left" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 112, + "id": 48, + "name": "arrow-left", + "prevSize": 32, + "code": 10229 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 48 + }, + { + "icon": { + "paths": [ + "M910.222 0h-796.445c-62.577 0-113.777 51.2-113.777 113.777v796.445c0 62.577 51.2 113.777 113.777 113.777h796.445c62.577 0 113.777-51.2 113.777-113.777v-796.445c0-62.577-51.2-113.777-113.777-113.777zM398.222 796.445l-284.444-284.444 79.644-79.644 204.8 204.8 432.357-432.357 79.644 79.644-512.001 512.001z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "check_box_checked" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 113, + "id": 49, + "name": "checkbox-checked", + "prevSize": 32, + "code": 9745 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 49 + }, + { + "icon": { + "paths": [ + "M910.222 113.778v796.445h-796.445v-796.445h796.445zM910.222 0h-796.445c-62.577 0-113.777 51.2-113.777 113.777v796.445c0 62.577 51.2 113.777 113.777 113.777h796.445c62.577 0 113.777-51.2 113.777-113.777v-796.445c0-62.577-51.2-113.777-113.777-113.777z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "check_box" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 114, + "id": 50, + "name": "checkbox", + "prevSize": 32, + "code": 9744 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 50 + }, + { + "icon": { + "paths": [ + "M512 0c-281.6 0-512 230.4-512 512s230.4 512 512 512 512-230.4 512-512c0-281.6-230.4-512-512-512zM512 921.599c-225.279 0-409.599-184.32-409.599-409.599s184.32-409.599 409.599-409.599 409.599 184.32 409.599 409.599c0 225.279-184.32 409.599-409.599 409.599z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "radio button" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 115, + "id": 51, + "name": "radio-button", + "prevSize": 32, + "code": 9711 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 51 + }, + { + "icon": { + "paths": [ + "M512 256.001c-143.36 0-255.999 112.64-255.999 255.999s112.64 255.999 255.999 255.999 255.999-112.64 255.999-255.999-112.64-255.999-255.999-255.999zM512 0c-281.6 0-512 230.4-512 512s230.4 512 512 512 512-230.4 512-512-230.4-512-512-512zM512 921.599c-225.279 0-409.599-184.32-409.599-409.599s184.32-409.599 409.599-409.599 409.599 184.32 409.599 409.599-184.32 409.599-409.599 409.599z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "radio button checked" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 116, + "id": 52, + "name": "radio-button-checked", + "prevSize": 32, + "code": 9737 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 52 + } + ], + "height": 1024, + "metadata": { + "name": "ita", + "url": "https://github.com/italia-it", + "designer": "Daniela De Blasis", + "license": "CC0", + "licenseURL": "https://creativecommons.org/publicdomain/zero/1.0/" + }, + "preferences": { + "showGlyphs": true, + "showCodes": true, + "showQuickUse": true, + "showQuickUse2": true, + "showSVGs": true, + "fontPref": { + "prefix": "Icon-", + "metadata": { + "fontFamily": "ita", + "majorVersion": 1, + "minorVersion": 0, + "fontURL": "https://github.com/italia-it", + "copyright": "AgID", + "designer": "Daniela De Blasis", + "license": "CC0", + "licenseURL": "https://creativecommons.org/publicdomain/zero/1.0/" + }, + "metrics": { + "emSize": 1024, + "baseline": 6.25, + "whitespace": 50 + }, + "embed": false, + "showMetadata": true, + "cssVars": false, + "showSelector": false, + "showMetrics": false, + "showVersion": true + }, + "imagePref": { + "prefix": "Icon-", + "png": true, + "useClassSelector": true, + "color": 0, + "bgColor": 16777215, + "classSelector": ".Icon", + "height": 32, + "columns": 16, + "margin": 16 + }, + "historySize": 100, + "gridSize": 16, + "showLiga": false + } +} \ No newline at end of file diff --git a/src/icons/ita/font/style.css b/src/icons/ita/font/style.css new file mode 100644 index 000000000..877edc208 --- /dev/null +++ b/src/icons/ita/font/style.css @@ -0,0 +1,247 @@ +@font-face { + font-family: "ita"; + font-style: normal; + font-weight: normal; + src: url("./fonts/ita.eot?5gkhyh"); + src: + url("./fonts/ita.eot?5gkhyh#iefix") format("embedded-opentype"), + url("./fonts/ita.ttf?5gkhyh") format("truetype"), + url("./fonts/ita.woff?5gkhyh") format("woff"), + url("./fonts/ita.svg?5gkhyh#ita") format("svg"); +} + +.Icon, +[class^="Icon-"], +[class*=" Icon-"] { + font-family: "ita" !important; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + speak: none; + text-transform: none; +} + +.Icon::before, +[class^="Icon-"]::before, +[class*=" Icon-"]::before { + font-size: 1em; +} + +.Icon--flipped { + transform: scale(-1, 1); +} + +.Icon-slideshare::before { + content: "\53"; +} + +.Icon-googleplus::before { + content: "\47"; +} + +.Icon-flickr::before { + content: "\46"; +} + +.Icon-expand-media::before { + content: "\26da"; +} + +.Icon-list::before { + content: "\2263"; +} + +.Icon-pin::before { + content: "\1f6a9"; +} + +.Icon-facebook::before { + content: "\66"; +} + +.Icon-share::before { + content: "\1f4e2"; +} + +.Icon-twitter::before { + content: "\54"; +} + +.Icon-whatsapp::before { + content: "\57"; +} + +.Icon-rss::before { + content: "\1f4c3"; +} + +.Icon-youtube::before { + content: "\59"; +} + +.Icon-comment::before { + content: "\1f4ac"; +} + +.Icon-file::before { + content: "\1f4c4"; +} + +.Icon-mail::before { + content: "\1f4e7"; +} + +.Icon-video::before { + content: "\1f3a5"; +} + +.Icon-camera::before { + content: "\1f4f7"; +} + +.Icon-external-link::before { + content: "\1f59d"; +} + +.Icon-link::before { + content: "\1f517"; +} + +.Icon-calendar::before { + content: "\1f4c5"; +} + +.Icon-pdf::before { + content: "\1f5cb"; +} + +.Icon-copy::before { + content: "\1f5cd"; +} + +.Icon-favorite::before { + content: "\2661"; +} + +.Icon-error::before { + content: "\1f5f4"; +} + +.Icon-download::before { + content: "\2b07"; +} + +.Icon-upload::before { + content: "\2b06"; +} + +.Icon-unlock::before { + content: "\1f513"; +} + +.Icon-lock::before { + content: "\1f512"; +} + +.Icon-settings::before { + content: "\2699"; +} + +.Icon-search::before { + content: "\1f50d"; +} + +.Icon-zoom-in::before { + content: "\26b2"; +} + +.Icon-zoom-out::before { + content: "\1f50f"; +} + +.Icon-arrow-down::before { + content: "\2b63"; +} + +.Icon-arrow-up::before { + content: "\2b08"; +} + +.Icon-more-items::before { + content: "\22ee"; +} + +.Icon-more-actions::before { + content: "\22ef"; +} + +.Icon-check::before { + content: "\2713"; +} + +.Icon-cancel::before { + content: "\2613"; +} + +.Icon-app::before { + content: "\1f4f2"; +} + +.Icon-refresh::before { + content: "\27f3"; +} + +.Icon-close::before { + content: "\1f5f5"; +} + +.Icon-drop-up::before { + content: "\25bc"; +} + +.Icon-drop-down::before { + content: "\25b2"; +} + +.Icon-collapse::before { + content: "\23f7"; +} + +.Icon-expand::before { + content: "\23f6"; +} + +.Icon-chevron-right::before { + content: "\23f5"; +} + +.Icon-chevron-left::before { + content: "\23f4"; +} + +.Icon-arrow-right::before { + content: "\27f6"; +} + +.Icon-arrow-left::before { + content: "\27f5"; +} + +.Icon-checkbox-checked::before { + content: "\2611"; +} + +.Icon-checkbox::before { + content: "\2610"; +} + +.Icon-radio-button::before { + content: "\25ef"; +} + +.Icon-radio-button-checked::before { + content: "\2609"; +} diff --git a/src/icons/ita/img/PNG/app.png b/src/icons/ita/img/PNG/app.png new file mode 100644 index 000000000..bc9de700e Binary files /dev/null and b/src/icons/ita/img/PNG/app.png differ diff --git a/src/icons/ita/img/PNG/arrow-down.png b/src/icons/ita/img/PNG/arrow-down.png new file mode 100644 index 000000000..af49f8501 Binary files /dev/null and b/src/icons/ita/img/PNG/arrow-down.png differ diff --git a/src/icons/ita/img/PNG/arrow-left.png b/src/icons/ita/img/PNG/arrow-left.png new file mode 100644 index 000000000..8e7942a4c Binary files /dev/null and b/src/icons/ita/img/PNG/arrow-left.png differ diff --git a/src/icons/ita/img/PNG/arrow-right.png b/src/icons/ita/img/PNG/arrow-right.png new file mode 100644 index 000000000..c95857672 Binary files /dev/null and b/src/icons/ita/img/PNG/arrow-right.png differ diff --git a/src/icons/ita/img/PNG/arrow-up.png b/src/icons/ita/img/PNG/arrow-up.png new file mode 100644 index 000000000..eb1ace042 Binary files /dev/null and b/src/icons/ita/img/PNG/arrow-up.png differ diff --git a/src/icons/ita/img/PNG/calendar.png b/src/icons/ita/img/PNG/calendar.png new file mode 100644 index 000000000..d5fcd6a47 Binary files /dev/null and b/src/icons/ita/img/PNG/calendar.png differ diff --git a/src/icons/ita/img/PNG/camera.png b/src/icons/ita/img/PNG/camera.png new file mode 100644 index 000000000..7ef3c037e Binary files /dev/null and b/src/icons/ita/img/PNG/camera.png differ diff --git a/src/icons/ita/img/PNG/cancel.png b/src/icons/ita/img/PNG/cancel.png new file mode 100644 index 000000000..391a172a2 Binary files /dev/null and b/src/icons/ita/img/PNG/cancel.png differ diff --git a/src/icons/ita/img/PNG/check.png b/src/icons/ita/img/PNG/check.png new file mode 100644 index 000000000..4bbbe7dcc Binary files /dev/null and b/src/icons/ita/img/PNG/check.png differ diff --git a/src/icons/ita/img/PNG/checkbox-checked.png b/src/icons/ita/img/PNG/checkbox-checked.png new file mode 100644 index 000000000..727a8cfc6 Binary files /dev/null and b/src/icons/ita/img/PNG/checkbox-checked.png differ diff --git a/src/icons/ita/img/PNG/checkbox.png b/src/icons/ita/img/PNG/checkbox.png new file mode 100644 index 000000000..8d2612b9e Binary files /dev/null and b/src/icons/ita/img/PNG/checkbox.png differ diff --git a/src/icons/ita/img/PNG/chevron-left.png b/src/icons/ita/img/PNG/chevron-left.png new file mode 100644 index 000000000..8dcc8677e Binary files /dev/null and b/src/icons/ita/img/PNG/chevron-left.png differ diff --git a/src/icons/ita/img/PNG/chevron-right.png b/src/icons/ita/img/PNG/chevron-right.png new file mode 100644 index 000000000..3531b7055 Binary files /dev/null and b/src/icons/ita/img/PNG/chevron-right.png differ diff --git a/src/icons/ita/img/PNG/close.png b/src/icons/ita/img/PNG/close.png new file mode 100644 index 000000000..5237da873 Binary files /dev/null and b/src/icons/ita/img/PNG/close.png differ diff --git a/src/icons/ita/img/PNG/collapse.png b/src/icons/ita/img/PNG/collapse.png new file mode 100644 index 000000000..5d37ce247 Binary files /dev/null and b/src/icons/ita/img/PNG/collapse.png differ diff --git a/src/icons/ita/img/PNG/comment.png b/src/icons/ita/img/PNG/comment.png new file mode 100644 index 000000000..2ec348b2d Binary files /dev/null and b/src/icons/ita/img/PNG/comment.png differ diff --git a/src/icons/ita/img/PNG/copy.png b/src/icons/ita/img/PNG/copy.png new file mode 100644 index 000000000..5f43bdf47 Binary files /dev/null and b/src/icons/ita/img/PNG/copy.png differ diff --git a/src/icons/ita/img/PNG/download.png b/src/icons/ita/img/PNG/download.png new file mode 100644 index 000000000..540816b63 Binary files /dev/null and b/src/icons/ita/img/PNG/download.png differ diff --git a/src/icons/ita/img/PNG/drop-down.png b/src/icons/ita/img/PNG/drop-down.png new file mode 100644 index 000000000..ab072f5b2 Binary files /dev/null and b/src/icons/ita/img/PNG/drop-down.png differ diff --git a/src/icons/ita/img/PNG/drop-up.png b/src/icons/ita/img/PNG/drop-up.png new file mode 100644 index 000000000..0e3c4b557 Binary files /dev/null and b/src/icons/ita/img/PNG/drop-up.png differ diff --git a/src/icons/ita/img/PNG/error.png b/src/icons/ita/img/PNG/error.png new file mode 100644 index 000000000..d5731df08 Binary files /dev/null and b/src/icons/ita/img/PNG/error.png differ diff --git a/src/icons/ita/img/PNG/expand-media.png b/src/icons/ita/img/PNG/expand-media.png new file mode 100644 index 000000000..70aba8d5b Binary files /dev/null and b/src/icons/ita/img/PNG/expand-media.png differ diff --git a/src/icons/ita/img/PNG/expand.png b/src/icons/ita/img/PNG/expand.png new file mode 100644 index 000000000..87fbadd25 Binary files /dev/null and b/src/icons/ita/img/PNG/expand.png differ diff --git a/src/icons/ita/img/PNG/external-link.png b/src/icons/ita/img/PNG/external-link.png new file mode 100644 index 000000000..1b9d0dd1d Binary files /dev/null and b/src/icons/ita/img/PNG/external-link.png differ diff --git a/src/icons/ita/img/PNG/facebook.png b/src/icons/ita/img/PNG/facebook.png new file mode 100644 index 000000000..e9d05b14f Binary files /dev/null and b/src/icons/ita/img/PNG/facebook.png differ diff --git a/src/icons/ita/img/PNG/favorite.png b/src/icons/ita/img/PNG/favorite.png new file mode 100644 index 000000000..e4ab0bb29 Binary files /dev/null and b/src/icons/ita/img/PNG/favorite.png differ diff --git a/src/icons/ita/img/PNG/file.png b/src/icons/ita/img/PNG/file.png new file mode 100644 index 000000000..6ab8d3599 Binary files /dev/null and b/src/icons/ita/img/PNG/file.png differ diff --git a/src/icons/ita/img/PNG/flickr.png b/src/icons/ita/img/PNG/flickr.png new file mode 100644 index 000000000..cc460ff0e Binary files /dev/null and b/src/icons/ita/img/PNG/flickr.png differ diff --git a/src/icons/ita/img/PNG/googleplus.png b/src/icons/ita/img/PNG/googleplus.png new file mode 100644 index 000000000..92b88345b Binary files /dev/null and b/src/icons/ita/img/PNG/googleplus.png differ diff --git a/src/icons/ita/img/PNG/link.png b/src/icons/ita/img/PNG/link.png new file mode 100644 index 000000000..a72fea815 Binary files /dev/null and b/src/icons/ita/img/PNG/link.png differ diff --git a/src/icons/ita/img/PNG/list.png b/src/icons/ita/img/PNG/list.png new file mode 100644 index 000000000..693da44b8 Binary files /dev/null and b/src/icons/ita/img/PNG/list.png differ diff --git a/src/icons/ita/img/PNG/lock.png b/src/icons/ita/img/PNG/lock.png new file mode 100644 index 000000000..3abaf2b0f Binary files /dev/null and b/src/icons/ita/img/PNG/lock.png differ diff --git a/src/icons/ita/img/PNG/mail.png b/src/icons/ita/img/PNG/mail.png new file mode 100644 index 000000000..fd67ae561 Binary files /dev/null and b/src/icons/ita/img/PNG/mail.png differ diff --git a/src/icons/ita/img/PNG/more-actions.png b/src/icons/ita/img/PNG/more-actions.png new file mode 100644 index 000000000..fee6acf9b Binary files /dev/null and b/src/icons/ita/img/PNG/more-actions.png differ diff --git a/src/icons/ita/img/PNG/more-items.png b/src/icons/ita/img/PNG/more-items.png new file mode 100644 index 000000000..4d0234352 Binary files /dev/null and b/src/icons/ita/img/PNG/more-items.png differ diff --git a/src/icons/ita/img/PNG/pdf.png b/src/icons/ita/img/PNG/pdf.png new file mode 100644 index 000000000..6e4b896af Binary files /dev/null and b/src/icons/ita/img/PNG/pdf.png differ diff --git a/src/icons/ita/img/PNG/pin.png b/src/icons/ita/img/PNG/pin.png new file mode 100644 index 000000000..fa56bd521 Binary files /dev/null and b/src/icons/ita/img/PNG/pin.png differ diff --git a/src/icons/ita/img/PNG/radio-button-checked.png b/src/icons/ita/img/PNG/radio-button-checked.png new file mode 100644 index 000000000..51c9dd7ec Binary files /dev/null and b/src/icons/ita/img/PNG/radio-button-checked.png differ diff --git a/src/icons/ita/img/PNG/radio-button.png b/src/icons/ita/img/PNG/radio-button.png new file mode 100644 index 000000000..c94753f64 Binary files /dev/null and b/src/icons/ita/img/PNG/radio-button.png differ diff --git a/src/icons/ita/img/PNG/refresh.png b/src/icons/ita/img/PNG/refresh.png new file mode 100644 index 000000000..80e2fa2c6 Binary files /dev/null and b/src/icons/ita/img/PNG/refresh.png differ diff --git a/src/icons/ita/img/PNG/rss.png b/src/icons/ita/img/PNG/rss.png new file mode 100644 index 000000000..f2b9e0785 Binary files /dev/null and b/src/icons/ita/img/PNG/rss.png differ diff --git a/src/icons/ita/img/PNG/search.png b/src/icons/ita/img/PNG/search.png new file mode 100644 index 000000000..03039e36c Binary files /dev/null and b/src/icons/ita/img/PNG/search.png differ diff --git a/src/icons/ita/img/PNG/settings.png b/src/icons/ita/img/PNG/settings.png new file mode 100644 index 000000000..9cc8053e0 Binary files /dev/null and b/src/icons/ita/img/PNG/settings.png differ diff --git a/src/icons/ita/img/PNG/share.png b/src/icons/ita/img/PNG/share.png new file mode 100644 index 000000000..309e8f41d Binary files /dev/null and b/src/icons/ita/img/PNG/share.png differ diff --git a/src/icons/ita/img/PNG/slideshare.png b/src/icons/ita/img/PNG/slideshare.png new file mode 100644 index 000000000..3fdd3d32c Binary files /dev/null and b/src/icons/ita/img/PNG/slideshare.png differ diff --git a/src/icons/ita/img/PNG/twitter.png b/src/icons/ita/img/PNG/twitter.png new file mode 100644 index 000000000..69db4c733 Binary files /dev/null and b/src/icons/ita/img/PNG/twitter.png differ diff --git a/src/icons/ita/img/PNG/unlock.png b/src/icons/ita/img/PNG/unlock.png new file mode 100644 index 000000000..604d9f404 Binary files /dev/null and b/src/icons/ita/img/PNG/unlock.png differ diff --git a/src/icons/ita/img/PNG/upload.png b/src/icons/ita/img/PNG/upload.png new file mode 100644 index 000000000..0a273fcd1 Binary files /dev/null and b/src/icons/ita/img/PNG/upload.png differ diff --git a/src/icons/ita/img/PNG/video.png b/src/icons/ita/img/PNG/video.png new file mode 100644 index 000000000..4429fc1f7 Binary files /dev/null and b/src/icons/ita/img/PNG/video.png differ diff --git a/src/icons/ita/img/PNG/whatsapp.png b/src/icons/ita/img/PNG/whatsapp.png new file mode 100644 index 000000000..042e7579f Binary files /dev/null and b/src/icons/ita/img/PNG/whatsapp.png differ diff --git a/src/icons/ita/img/PNG/youtube.png b/src/icons/ita/img/PNG/youtube.png new file mode 100644 index 000000000..c95edc237 Binary files /dev/null and b/src/icons/ita/img/PNG/youtube.png differ diff --git a/src/icons/ita/img/PNG/zoom-in.png b/src/icons/ita/img/PNG/zoom-in.png new file mode 100644 index 000000000..3a6d3d9c8 Binary files /dev/null and b/src/icons/ita/img/PNG/zoom-in.png differ diff --git a/src/icons/ita/img/PNG/zoom-out.png b/src/icons/ita/img/PNG/zoom-out.png new file mode 100644 index 000000000..930e9ccdf Binary files /dev/null and b/src/icons/ita/img/PNG/zoom-out.png differ diff --git a/src/icons/ita/img/Read Me.txt b/src/icons/ita/img/Read Me.txt new file mode 100644 index 000000000..51f229da6 --- /dev/null +++ b/src/icons/ita/img/Read Me.txt @@ -0,0 +1,15 @@ +The *SVG* folder contains the icons you selected as separate SVG files. + +If you prefer using PNGs, PDFs, or CSS sprites, refer to the Preferences panel of the IcoMoon app before downloading your zip pack. + +*demo.html* lists the icons that you selected. To insert your icons as inline SVGs (with the element), copy the element (that contains symbol definitions) from the source of the demo.html file, below your own HTML's tag. After copying this SVG, you can reference your glyphs like the following: + + + +You can get this code from the SVG tab of the IcoMoon app, or by referring to the source of the demo.html file. To see how you can change the color/size of your icons using CSS, refer to the example provided in the *style.css* file. + +If you prefer to reference an external SVG (containing ) instead of embedding it in HTML, you will need to use *svgxuse.js* in order to support IE 9+. In browsers that don't support referencing external SVGs (such as IE 9), this polyfill sends one HTTP request to fetch and cache all symbol definitions. See *demo-external-svg.html* for this approach. This demo references the *symbol-defs.svg* file and uses the aforementioned polyfill. Note that it must be hosted on a web server to work +properly. Learn more aobut this polyfill here: https://github.com/Keyamoon/svgxuse + +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. + diff --git a/src/icons/ita/img/SVG/app.svg b/src/icons/ita/img/SVG/app.svg new file mode 100644 index 000000000..a599cc3f3 --- /dev/null +++ b/src/icons/ita/img/SVG/app.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/arrow-down.svg b/src/icons/ita/img/SVG/arrow-down.svg new file mode 100644 index 000000000..88b0df3b5 --- /dev/null +++ b/src/icons/ita/img/SVG/arrow-down.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/arrow-left.svg b/src/icons/ita/img/SVG/arrow-left.svg new file mode 100644 index 000000000..4a5c84592 --- /dev/null +++ b/src/icons/ita/img/SVG/arrow-left.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/arrow-right.svg b/src/icons/ita/img/SVG/arrow-right.svg new file mode 100644 index 000000000..29b0947f3 --- /dev/null +++ b/src/icons/ita/img/SVG/arrow-right.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/arrow-up.svg b/src/icons/ita/img/SVG/arrow-up.svg new file mode 100644 index 000000000..d42a417c7 --- /dev/null +++ b/src/icons/ita/img/SVG/arrow-up.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/calendar.svg b/src/icons/ita/img/SVG/calendar.svg new file mode 100644 index 000000000..3ee2ac003 --- /dev/null +++ b/src/icons/ita/img/SVG/calendar.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/icons/ita/img/SVG/camera.svg b/src/icons/ita/img/SVG/camera.svg new file mode 100644 index 000000000..f9cc026ff --- /dev/null +++ b/src/icons/ita/img/SVG/camera.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/icons/ita/img/SVG/cancel.svg b/src/icons/ita/img/SVG/cancel.svg new file mode 100644 index 000000000..011b9d22b --- /dev/null +++ b/src/icons/ita/img/SVG/cancel.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/check.svg b/src/icons/ita/img/SVG/check.svg new file mode 100644 index 000000000..518a810d2 --- /dev/null +++ b/src/icons/ita/img/SVG/check.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/checkbox-checked.svg b/src/icons/ita/img/SVG/checkbox-checked.svg new file mode 100644 index 000000000..328ed1ec1 --- /dev/null +++ b/src/icons/ita/img/SVG/checkbox-checked.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/checkbox.svg b/src/icons/ita/img/SVG/checkbox.svg new file mode 100644 index 000000000..1a43be747 --- /dev/null +++ b/src/icons/ita/img/SVG/checkbox.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/chevron-left.svg b/src/icons/ita/img/SVG/chevron-left.svg new file mode 100644 index 000000000..39fc16d9f --- /dev/null +++ b/src/icons/ita/img/SVG/chevron-left.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/chevron-right.svg b/src/icons/ita/img/SVG/chevron-right.svg new file mode 100644 index 000000000..e378fb07a --- /dev/null +++ b/src/icons/ita/img/SVG/chevron-right.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/close.svg b/src/icons/ita/img/SVG/close.svg new file mode 100644 index 000000000..84f5848e5 --- /dev/null +++ b/src/icons/ita/img/SVG/close.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/collapse.svg b/src/icons/ita/img/SVG/collapse.svg new file mode 100644 index 000000000..1097ebf71 --- /dev/null +++ b/src/icons/ita/img/SVG/collapse.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/comment.svg b/src/icons/ita/img/SVG/comment.svg new file mode 100644 index 000000000..fffffda03 --- /dev/null +++ b/src/icons/ita/img/SVG/comment.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/icons/ita/img/SVG/copy.svg b/src/icons/ita/img/SVG/copy.svg new file mode 100644 index 000000000..e7fa98922 --- /dev/null +++ b/src/icons/ita/img/SVG/copy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/download.svg b/src/icons/ita/img/SVG/download.svg new file mode 100644 index 000000000..a9f7081e8 --- /dev/null +++ b/src/icons/ita/img/SVG/download.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/icons/ita/img/SVG/drop-down.svg b/src/icons/ita/img/SVG/drop-down.svg new file mode 100644 index 000000000..897cbbdac --- /dev/null +++ b/src/icons/ita/img/SVG/drop-down.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/drop-up.svg b/src/icons/ita/img/SVG/drop-up.svg new file mode 100644 index 000000000..0afef7ffb --- /dev/null +++ b/src/icons/ita/img/SVG/drop-up.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/error.svg b/src/icons/ita/img/SVG/error.svg new file mode 100644 index 000000000..a2d6a8436 --- /dev/null +++ b/src/icons/ita/img/SVG/error.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/icons/ita/img/SVG/expand-media.svg b/src/icons/ita/img/SVG/expand-media.svg new file mode 100644 index 000000000..a5872be81 --- /dev/null +++ b/src/icons/ita/img/SVG/expand-media.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/expand.svg b/src/icons/ita/img/SVG/expand.svg new file mode 100644 index 000000000..cc86bee59 --- /dev/null +++ b/src/icons/ita/img/SVG/expand.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/external-link.svg b/src/icons/ita/img/SVG/external-link.svg new file mode 100644 index 000000000..8a7c5b578 --- /dev/null +++ b/src/icons/ita/img/SVG/external-link.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/icons/ita/img/SVG/facebook.svg b/src/icons/ita/img/SVG/facebook.svg new file mode 100644 index 000000000..fbc444425 --- /dev/null +++ b/src/icons/ita/img/SVG/facebook.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/favorite.svg b/src/icons/ita/img/SVG/favorite.svg new file mode 100644 index 000000000..9d45366d1 --- /dev/null +++ b/src/icons/ita/img/SVG/favorite.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/file.svg b/src/icons/ita/img/SVG/file.svg new file mode 100644 index 000000000..42871118a --- /dev/null +++ b/src/icons/ita/img/SVG/file.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/icons/ita/img/SVG/flickr.svg b/src/icons/ita/img/SVG/flickr.svg new file mode 100644 index 000000000..7652d285f --- /dev/null +++ b/src/icons/ita/img/SVG/flickr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/googleplus.svg b/src/icons/ita/img/SVG/googleplus.svg new file mode 100644 index 000000000..7ba9f3261 --- /dev/null +++ b/src/icons/ita/img/SVG/googleplus.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/link.svg b/src/icons/ita/img/SVG/link.svg new file mode 100644 index 000000000..5ff08955f --- /dev/null +++ b/src/icons/ita/img/SVG/link.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/icons/ita/img/SVG/list.svg b/src/icons/ita/img/SVG/list.svg new file mode 100644 index 000000000..a4335fa17 --- /dev/null +++ b/src/icons/ita/img/SVG/list.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/icons/ita/img/SVG/lock.svg b/src/icons/ita/img/SVG/lock.svg new file mode 100644 index 000000000..12d40344e --- /dev/null +++ b/src/icons/ita/img/SVG/lock.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/icons/ita/img/SVG/mail.svg b/src/icons/ita/img/SVG/mail.svg new file mode 100644 index 000000000..2b4509286 --- /dev/null +++ b/src/icons/ita/img/SVG/mail.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/more-actions.svg b/src/icons/ita/img/SVG/more-actions.svg new file mode 100644 index 000000000..033b42619 --- /dev/null +++ b/src/icons/ita/img/SVG/more-actions.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/icons/ita/img/SVG/more-items.svg b/src/icons/ita/img/SVG/more-items.svg new file mode 100644 index 000000000..43389fd76 --- /dev/null +++ b/src/icons/ita/img/SVG/more-items.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/icons/ita/img/SVG/pdf.svg b/src/icons/ita/img/SVG/pdf.svg new file mode 100644 index 000000000..ceb923d47 --- /dev/null +++ b/src/icons/ita/img/SVG/pdf.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/icons/ita/img/SVG/pin.svg b/src/icons/ita/img/SVG/pin.svg new file mode 100644 index 000000000..868af9025 --- /dev/null +++ b/src/icons/ita/img/SVG/pin.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/radio-button-checked.svg b/src/icons/ita/img/SVG/radio-button-checked.svg new file mode 100644 index 000000000..0b7a46fbb --- /dev/null +++ b/src/icons/ita/img/SVG/radio-button-checked.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/radio-button.svg b/src/icons/ita/img/SVG/radio-button.svg new file mode 100644 index 000000000..0c1297c81 --- /dev/null +++ b/src/icons/ita/img/SVG/radio-button.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/refresh.svg b/src/icons/ita/img/SVG/refresh.svg new file mode 100644 index 000000000..c7e30f0f8 --- /dev/null +++ b/src/icons/ita/img/SVG/refresh.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/rss.svg b/src/icons/ita/img/SVG/rss.svg new file mode 100644 index 000000000..aa4a1df06 --- /dev/null +++ b/src/icons/ita/img/SVG/rss.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/search.svg b/src/icons/ita/img/SVG/search.svg new file mode 100644 index 000000000..33fc60493 --- /dev/null +++ b/src/icons/ita/img/SVG/search.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/settings.svg b/src/icons/ita/img/SVG/settings.svg new file mode 100644 index 000000000..8a1c725a8 --- /dev/null +++ b/src/icons/ita/img/SVG/settings.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/share.svg b/src/icons/ita/img/SVG/share.svg new file mode 100644 index 000000000..e982a0d12 --- /dev/null +++ b/src/icons/ita/img/SVG/share.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/slideshare.svg b/src/icons/ita/img/SVG/slideshare.svg new file mode 100644 index 000000000..1b6aaf9e3 --- /dev/null +++ b/src/icons/ita/img/SVG/slideshare.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/twitter.svg b/src/icons/ita/img/SVG/twitter.svg new file mode 100644 index 000000000..7bb0dd0fc --- /dev/null +++ b/src/icons/ita/img/SVG/twitter.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/unlock.svg b/src/icons/ita/img/SVG/unlock.svg new file mode 100644 index 000000000..8c143f423 --- /dev/null +++ b/src/icons/ita/img/SVG/unlock.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/icons/ita/img/SVG/upload.svg b/src/icons/ita/img/SVG/upload.svg new file mode 100644 index 000000000..ec2ee6a49 --- /dev/null +++ b/src/icons/ita/img/SVG/upload.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/icons/ita/img/SVG/video.svg b/src/icons/ita/img/SVG/video.svg new file mode 100644 index 000000000..a41f4f614 --- /dev/null +++ b/src/icons/ita/img/SVG/video.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/whatsapp.svg b/src/icons/ita/img/SVG/whatsapp.svg new file mode 100644 index 000000000..a919934b8 --- /dev/null +++ b/src/icons/ita/img/SVG/whatsapp.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/youtube.svg b/src/icons/ita/img/SVG/youtube.svg new file mode 100644 index 000000000..5076483e5 --- /dev/null +++ b/src/icons/ita/img/SVG/youtube.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/ita/img/SVG/zoom-in.svg b/src/icons/ita/img/SVG/zoom-in.svg new file mode 100644 index 000000000..a0e858815 --- /dev/null +++ b/src/icons/ita/img/SVG/zoom-in.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/icons/ita/img/SVG/zoom-out.svg b/src/icons/ita/img/SVG/zoom-out.svg new file mode 100644 index 000000000..d62927645 --- /dev/null +++ b/src/icons/ita/img/SVG/zoom-out.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/icons/ita/img/demo-external-svg.html b/src/icons/ita/img/demo-external-svg.html new file mode 100644 index 000000000..4cfc8e51f --- /dev/null +++ b/src/icons/ita/img/demo-external-svg.html @@ -0,0 +1,286 @@ + + + + IcoMoon - SVG Icons + + + + + + +
+
+

SVG Icons - Generated by IcoMoon

Notice: This demo (along with "symbol-defs.svg" and "svgxuse.js" files) should be hosted on a web server to work properly.

+
+
+
+

Grid Size: 0

+
+
+ Icon-slideshare +
+
+
+
+ Icon-googleplus +
+
+
+
+ Icon-flickr +
+
+
+
+ Icon-expand-media +
+
+
+
+ Icon-list +
+
+
+
+ Icon-pin +
+
+
+
+ Icon-facebook +
+
+
+
+ Icon-share +
+
+
+
+ Icon-twitter +
+
+
+
+ Icon-whatsapp +
+
+
+
+ Icon-rss +
+
+
+
+ Icon-youtube +
+
+
+
+ Icon-comment +
+
+
+
+ Icon-file +
+
+
+
+ Icon-mail +
+
+
+
+ Icon-video +
+
+
+
+ Icon-camera +
+
+
+
+ Icon-external-link +
+
+
+
+ Icon-link +
+
+
+
+ Icon-calendar +
+
+
+
+ Icon-pdf +
+
+
+
+ Icon-copy +
+
+
+
+ Icon-favorite +
+
+
+
+ Icon-error +
+
+
+
+ Icon-download +
+
+
+
+ Icon-upload +
+
+
+
+ Icon-unlock +
+
+
+
+ Icon-lock +
+
+
+
+ Icon-settings +
+
+
+
+ Icon-search +
+
+
+
+ Icon-zoom-in +
+
+
+
+ Icon-zoom-out +
+
+
+
+ Icon-arrow-down +
+
+
+
+ Icon-arrow-up +
+
+
+
+ Icon-more-items +
+
+
+
+ Icon-more-actions +
+
+
+
+ Icon-check +
+
+
+
+ Icon-cancel +
+
+
+
+ Icon-app +
+
+
+
+ Icon-refresh +
+
+
+
+ Icon-close +
+
+
+
+ Icon-drop-up +
+
+
+
+ Icon-drop-down +
+
+
+
+ Icon-collapse +
+
+
+
+ Icon-expand +
+
+
+
+ Icon-chevron-right +
+
+
+
+ Icon-chevron-left +
+
+
+
+ Icon-arrow-right +
+
+
+
+ Icon-arrow-left +
+
+
+
+ Icon-checkbox-checked +
+
+
+
+ Icon-checkbox +
+
+
+
+ Icon-radio-button +
+
+
+
+ Icon-radio-button-checked +
+
+
+ + + diff --git a/src/icons/ita/img/demo-files/demo.css b/src/icons/ita/img/demo-files/demo.css new file mode 100644 index 000000000..59acc1239 --- /dev/null +++ b/src/icons/ita/img/demo-files/demo.css @@ -0,0 +1,148 @@ +body { + padding: 0; + margin: 0; + font-family: sans-serif; + font-size: 1em; + line-height: 1.5; + color: #555; + background: #fff; +} +h1 { + font-size: 1.5em; + font-weight: normal; + box-shadow: 0 1px #ddd, 0 2px #fff, 0 3px #ddd; +} +small { + font-size: .66666667em; +} +a { + color: #e74c3c; + text-decoration: none; +} +a:hover, a:focus { + box-shadow: 0 1px #e74c3c; +} +.bshadow0, input { + box-shadow: inset 0 -2px #e7e7e7; +} +input:hover { + box-shadow: inset 0 -2px #ccc; +} +input, fieldset { + font-size: 1em; + margin: 0; + padding: 0; + border: 0; +} +input { + color: inherit; + line-height: 1.5; + height: 1.5em; + padding: .25em 0; +} +input:focus { + outline: none; + box-shadow: inset 0 -2px #449fdb; +} +.glyph { + font-size: 16px; + width: 17em; + margin-right: 1.5em; + float: left; + overflow: hidden; +} +svg { + color: #000; +} +.liga { + width: 80%; + width: calc(100% - 2.5em); +} +.talign-right { + text-align: right; +} +.talign-center { + text-align: center; +} +.bgc1 { + background: #f1f1f1; +} +.fgc0 { + color: #000; +} +.fgc1 { + color: #999; +} +p { + margin-top: 1em; + margin-bottom: 1em; +} +.mvm { + margin-top: .75em; + margin-bottom: .75em; +} +.mtn { + margin-top: 0; +} +.mtl, .mal { + margin-top: 1.5em; +} +.mbl, .mal { + margin-bottom: 1.5em; +} +.mal, .mhl { + margin-left: 1.5em; + margin-right: 1.5em; +} +.mhmm { + margin-left: 1em; + margin-right: 1em; +} +.mls { + margin-left: .25em; +} +.ptl { + padding-top: 1.5em; +} +.pbs, .pvs { + padding-bottom: .25em; +} +.pvs, .pts { + padding-top: .25em; +} +.unit { + float: left; +} +.unitRight { + float: right; +} +.size1of2 { + width: 50%; +} +.size1of1 { + width: 100%; +} +.clearfix:before, .clearfix:after { + content: " "; + display: table; +} +.clearfix:after { + clear: both; +} +.hidden-true { + display: none; +} +.textbox0 { + width: 3em; + background: #f1f1f1; + padding: .25em .5em; + line-height: 1.5; + height: 1.5em; +} +.fs0 { + font-size: 16px; +} +.fs1 { + font-size: 32px; +} + diff --git a/src/icons/ita/img/demo.html b/src/icons/ita/img/demo.html new file mode 100644 index 000000000..a1b3cedc2 --- /dev/null +++ b/src/icons/ita/img/demo.html @@ -0,0 +1,533 @@ + + + + IcoMoon - SVG Icons + + + + + + + + + +slideshare + + + +googleplus + + + +flickr + + + +expand-media + + + +list + + + + + + + + +pin + + + +facebook + + + +share + + + +twitter + + + +whatsapp + + + +rss + + + +youtube + + + +comment + + + + + +file + + + + + + +mail + + + +video + + + +camera + + + + + +external-link + + + + +link + + + + +calendar + + + + +pdf + + + + + + +copy + + + +favorite + + + +error + + + + + +download + + + + +upload + + + + +unlock + + + + +lock + + + + +settings + + + +search + + + +zoom-in + + + + +zoom-out + + + + +arrow-down + + + +arrow-up + + + +more-items + + + + + +more-actions + + + + + +check + + + +cancel + + + +app + + + +refresh + + + +close + + + +drop-up + + + +drop-down + + + +collapse + + + +expand + + + +chevron-right + + + +chevron-left + + + +arrow-right + + + +arrow-left + + + +checkbox-checked + + + +checkbox + + + +radio-button + + + +radio-button-checked + + + + + +
+
+

SVG Icons - Generated by IcoMoon

+
+
+
+

Grid Size: 0

+
+
+ Icon-slideshare +
+
+
+
+ Icon-googleplus +
+
+
+
+ Icon-flickr +
+
+
+
+ Icon-expand-media +
+
+
+
+ Icon-list +
+
+
+
+ Icon-pin +
+
+
+
+ Icon-facebook +
+
+
+
+ Icon-share +
+
+
+
+ Icon-twitter +
+
+
+
+ Icon-whatsapp +
+
+
+
+ Icon-rss +
+
+
+
+ Icon-youtube +
+
+
+
+ Icon-comment +
+
+
+
+ Icon-file +
+
+
+
+ Icon-mail +
+
+
+
+ Icon-video +
+
+
+
+ Icon-camera +
+
+
+
+ Icon-external-link +
+
+
+
+ Icon-link +
+
+
+
+ Icon-calendar +
+
+
+
+ Icon-pdf +
+
+
+
+ Icon-copy +
+
+
+
+ Icon-favorite +
+
+
+
+ Icon-error +
+
+
+
+ Icon-download +
+
+
+
+ Icon-upload +
+
+
+
+ Icon-unlock +
+
+
+
+ Icon-lock +
+
+
+
+ Icon-settings +
+
+
+
+ Icon-search +
+
+
+
+ Icon-zoom-in +
+
+
+
+ Icon-zoom-out +
+
+
+
+ Icon-arrow-down +
+
+
+
+ Icon-arrow-up +
+
+
+
+ Icon-more-items +
+
+
+
+ Icon-more-actions +
+
+
+
+ Icon-check +
+
+
+
+ Icon-cancel +
+
+
+
+ Icon-app +
+
+
+
+ Icon-refresh +
+
+
+
+ Icon-close +
+
+
+
+ Icon-drop-up +
+
+
+
+ Icon-drop-down +
+
+
+
+ Icon-collapse +
+
+
+
+ Icon-expand +
+
+
+
+ Icon-chevron-right +
+
+
+
+ Icon-chevron-left +
+
+
+
+ Icon-arrow-right +
+
+
+
+ Icon-arrow-left +
+
+
+
+ Icon-checkbox-checked +
+
+
+
+ Icon-checkbox +
+
+
+
+ Icon-radio-button +
+
+
+
+ Icon-radio-button-checked +
+
+
+ + + diff --git a/src/icons/ita/img/selection.json b/src/icons/ita/img/selection.json new file mode 100644 index 000000000..49221a488 --- /dev/null +++ b/src/icons/ita/img/selection.json @@ -0,0 +1,1684 @@ +{ + "IcoMoonType": "selection", + "icons": [ + { + "icon": { + "paths": [ + "M60.801 0.002v492.799c-12.799-6.4-31.999-19.2-44.8-6.4s6.4 25.6 6.4 38.4c64 64 134.4 108.799 211.2 140.8-19.2 51.199-25.6 108.799-19.2 166.399 12.799 96 76.8 192 179.2 192 51.199 0 102.4-31.999 102.4-89.599v-217.6c12.799 0 25.6 6.4 38.4 12.799v198.4c0 12.799 0 25.6 6.4 38.4 19.2 31.999 57.6 51.199 96 51.199 108.799-6.4 166.399-96 179.2-192 6.4-57.6 0-115.2-19.2-166.399 70.399-31.999 204.799-89.599 223.999-172.8 0-12.799-6.4-12.799-19.2-12.799s-25.6 6.4-31.999 12.799v-486.4h-908.8zM118.401 51.201h819.199v473.599c-12.799 6.4-25.6 12.799-38.4 19.2l-729.6 12.799c-19.2-6.4-38.4-19.2-51.199-25.6v-480zM387.201 300.801c-70.399 0-121.6 51.199-121.6 121.6 0 64 51.199 121.6 121.6 121.6 64 0 121.6-57.6 121.6-121.6s-51.199-121.6-121.6-121.6zM675.2 300.801c-64 0-121.6 51.199-121.6 121.6 0 64 57.6 121.6 121.6 121.6 70.399 0 121.6-57.6 121.6-121.6s-51.199-121.6-121.6-121.6z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "slideshare" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 64, + "id": 0, + "name": "slideshare", + "prevSize": 32, + "code": 83 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M537.599 825.603c0-6.4 0-19.2-6.4-25.6 0-6.4 0-12.799-6.4-19.2 0-6.4-6.4-12.799-12.799-19.2s-12.799-12.799-12.799-19.2c-6.4-6.4-12.799-12.799-19.2-19.2s-12.799-12.799-19.2-19.2c-6.4 0-12.799-6.4-19.2-12.799s-12.799-12.799-19.2-12.799c0-6.4-12.799-6.4-19.2-12.799-12.799-6.4-19.2-12.799-19.2-12.799-6.4 0-19.2 0-31.999 0-25.6 0-44.8 0-64 6.4s-44.8 6.4-64 19.2c-25.6 6.4-44.8 12.799-57.6 25.6-6.4 0-25.6 12.799-38.4 31.999s-19.2 38.4-19.2 64c0 25.6 6.4 51.199 19.2 70.399 12.799 25.6 31.999 38.4 57.6 51.199s44.8 25.6 70.399 25.6c25.6 6.4 51.199 12.799 76.8 12.799s44.8 0 70.399-6.4c19.2-6.4 38.4-12.799 57.6-25.6s31.999-25.6 44.8-44.8c25.6-12.799 31.999-31.999 31.999-57.6v0zM467.199 288.004c0-25.6 0-51.199-6.4-76.8s-19.2-51.199-31.999-76.8c-12.799-25.6-31.999-44.8-51.199-64-25.6-19.2-51.199-25.6-76.8-25.6-38.4 0-64 12.799-89.599 44.8s-31.999 64-31.999 102.4c0 19.2 0 38.4 6.4 57.6s12.799 44.8 19.2 64c6.4 19.2 19.2 38.4 31.999 57.6s25.6 31.999 44.8 38.4c19.2 12.799 38.4 12.799 57.6 12.799 38.4 0 70.399-12.799 83.2-38.4 31.999-19.2 44.8-51.199 44.8-96v0zM384 0.004h268.8l-83.2 44.8h-83.2c25.6 19.2 51.199 44.8 64 76.8 19.2 38.4 25.6 70.399 25.6 108.799 0 31.999-6.4 57.6-12.799 83.2-12.799 25.6-19.2 44.8-31.999 57.6s-25.6 25.6-38.4 38.4c-12.799 12.799-25.6 25.6-31.999 38.4-12.799 12.799-12.799 25.6-12.799 44.8 0 12.799 6.4 19.2 12.799 31.999s12.799 19.2 25.6 31.999c12.799 6.4 25.6 19.2 38.4 31.999 12.799 6.4 25.6 19.2 38.4 31.999s25.6 25.6 38.4 38.4c12.799 12.799 19.2 31.999 25.6 51.199s12.799 38.4 12.799 64c0 64-25.6 121.6-83.2 172.8-64 51.199-147.199 76.8-256 76.8-25.6 0-51.199 0-70.399-6.4-25.6-6.4-51.199-12.799-76.8-19.2-25.6-12.799-44.8-19.2-64-38.4s-31.999-31.999-44.8-51.199c-38.4-25.6-44.8-51.199-44.8-76.8s6.4-51.199 25.6-83.2c12.799-25.6 31.999-44.8 57.6-64s57.6-31.999 89.599-44.8c31.999-6.4 64-19.2 96-19.2 31.999-6.4 57.6-6.4 89.599-6.4-25.6-31.999-38.4-64-38.4-89.599 0-6.4 0-12.799 0-12.799 0-6.4 0-6.4 6.4-12.799 0 0 0-6.4 6.4-12.799 0-6.4 0-6.4 6.4-12.799-19.2 0-31.999 6.4-44.8 6.4-64 0-115.2-19.2-160-57.6-44.8-57.6-70.399-108.799-70.399-172.8 0-51.199 19.2-102.4 64-153.6 38.4-44.8 83.2-76.8 140.8-89.599 38.4-6.4 76.8-6.4 115.2-6.4v0zM1023.998 160.003v76.8h-160v160h-76.8v-160h-160v-76.8h160v-160h76.8v160h160z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "google_plus" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 65, + "id": 1, + "name": "googleplus", + "prevSize": 32, + "code": 71 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 1 + }, + { + "icon": { + "paths": [ + "M832 0c51.199 0 96 19.2 134.4 57.6s57.6 83.2 57.6 134.4v640c0 51.199-19.2 96-57.6 134.4s-83.2 57.6-134.4 57.6h-640c-51.199 0-96-19.2-134.4-57.6s-57.6-83.2-57.6-134.4v-640c0-51.199 19.2-96 57.6-134.4s83.2-57.6 134.4-57.6h640zM467.201 511.999c0-38.4-12.799-70.399-44.8-102.4s-57.6-38.4-102.4-38.4c-38.4 0-70.399 12.799-96 44.8-25.6 25.6-44.8 57.6-44.8 102.4 0 38.4 12.799 70.399 44.8 102.4 25.6 19.2 64 31.999 96 31.999 38.4 0 70.399-12.799 102.4-44.8 25.6-25.6 44.8-57.6 44.8-96zM844.801 511.999c0-38.4-12.799-70.399-44.8-102.4-25.6-25.6-64-38.4-96-38.4-38.4 0-70.399 12.799-102.4 44.8-25.6 25.6-44.8 57.6-44.8 102.4 0 38.4 12.799 70.399 44.8 102.4 25.6 25.6 57.6 44.8 102.4 44.8 38.4 0 70.399-12.799 96-44.8 25.6-38.4 44.8-70.399 44.8-108.799z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "flickr" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 66, + "id": 2, + "name": "flickr", + "prevSize": 32, + "code": 70 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 2 + }, + { + "icon": { + "paths": [ + "M1001.245 1024h-978.489c-11.377 0-22.756-11.377-22.756-22.756v-972.8c0-17.067 11.377-28.444 22.756-28.444h972.8c17.067 0 28.444 11.377 28.444 28.444v972.8c0 11.377-11.377 22.756-22.756 22.756zM51.201 972.8h921.6v-921.6h-921.6v921.6zM768.001 420.977c-11.377 0-22.756-11.377-22.756-22.756v-113.777h-113.777c-11.377 0-22.756-11.377-22.756-22.756-5.689-17.067 5.689-34.133 17.067-34.133h142.223c17.067 0 28.444 17.067 28.444 28.444v142.223c0 11.377-11.377 22.756-28.444 22.756v0zM256.001 420.977c-17.067 0-28.444-11.377-28.444-22.756v-142.223c0-11.377 11.377-28.444 28.444-28.444h142.223c11.377 0 22.756 11.377 22.756 28.444 0 11.377-11.377 22.756-22.756 22.756h-113.777v113.777c-5.689 17.067-17.067 28.444-28.444 28.444v0zM398.224 796.444h-142.223c-17.067 0-28.444-11.377-28.444-28.444v-142.223c0-11.377 11.377-22.756 22.756-22.756s22.756 11.377 22.756 22.756v113.777h113.777c11.377 0 22.756 11.377 22.756 22.756s0 34.133-11.377 34.133v0zM768.001 796.444h-142.223c-11.377 0-22.756-11.377-22.756-22.756s11.377-22.756 22.756-22.756h113.777v-113.777c0-11.377 11.377-22.756 22.756-22.756s22.756 11.377 22.756 22.756v142.223c11.377 5.689 0 17.067-17.067 17.067v0z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "expand_media" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 67, + "id": 3, + "name": "expand-media", + "prevSize": 32, + "code": 9946 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 3 + }, + { + "icon": { + "paths": [ + "M0 455.111h113.777v113.777h-113.777v-113.777z", + "M0 682.667h113.777v113.777h-113.777v-113.777z", + "M0 227.556h113.777v113.777h-113.777v-113.777z", + "M227.556 455.111h796.444v113.777h-796.444v-113.777z", + "M227.556 682.667h796.444v113.777h-796.444v-113.777z", + "M227.556 227.556h796.444v113.777h-796.444v-113.777z" + ], + "attrs": [ + {}, + {}, + {}, + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "list" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {}, + {}, + {}, + {} + ], + "properties": { + "order": 68, + "id": 4, + "name": "list", + "prevSize": 32, + "code": 8803 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 4 + }, + { + "icon": { + "paths": [ + "M812.8 300.8c0 166.4-300.8 723.2-300.8 723.2s-300.8-556.801-300.8-723.2c0-166.4 134.4-300.8 300.8-300.8s300.8 134.4 300.8 300.8z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "pin" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 69, + "id": 5, + "name": "pin", + "prevSize": 32, + "code": 128681 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 5 + }, + { + "icon": { + "paths": [ + "M591.645 335.644h159.289l-17.067 176.356h-142.222v511.999h-210.489v-511.999h-108.089v-176.356h108.089v-108.089c0-73.956 17.067-130.844 51.2-170.666 39.823-39.823 96.711-56.889 176.356-56.889h142.222v176.356h-85.333c-17.067 0-28.444 0-39.823 5.689-11.377 0-17.067 5.689-22.756 11.377-5.689 11.377-5.689 17.067-11.377 22.756 0 5.689 0 17.067 0 28.444v91.023z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "facebook" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 70, + "id": 6, + "name": "facebook", + "prevSize": 32, + "code": 102 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 6 + }, + { + "icon": { + "paths": [ + "M358.4 512c0 6.4 0 6.4 0 12.799l364.799 185.599c31.999-25.6 70.399-44.8 115.2-44.8 102.4 0 179.2 83.2 179.2 179.2 0 102.4-83.2 179.2-179.2 179.2-102.4 0-179.2-83.2-179.2-179.2 0-6.4 0-6.4 0-12.799l-364.799-185.599c-31.999 25.6-70.399 44.8-115.2 44.8-96 0-179.2-76.8-179.2-179.2s83.2-179.2 179.2-179.2c44.8 0 83.2 12.799 115.2 44.8l371.2-185.599c0-6.4 0-6.4 0-12.799 0-102.4 83.2-179.2 179.2-179.2s179.2 83.2 179.2 179.2-83.2 179.2-179.2 179.2c-44.8 0-83.2-12.799-115.2-44.8l-364.799 185.599c-6.4 6.4-6.4 6.4-6.4 12.799z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "share" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 71, + "id": 7, + "name": "share", + "prevSize": 32, + "code": 128226 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 7 + }, + { + "icon": { + "paths": [ + "M1024 196.266c-28.444 39.823-62.577 73.956-108.089 108.089v28.444c0 96.711-22.756 187.733-62.577 278.756-45.511 91.023-113.777 164.977-210.489 227.556-91.023 62.577-199.111 91.023-318.577 91.023s-227.556-28.444-324.267-91.023c11.377 0 28.444 0 51.2 0 96.711 0 182.044-28.444 261.689-85.333-45.511 0-85.333-17.067-119.467-45.511s-62.577-62.577-73.956-102.4c5.689 0 17.067 5.689 34.133 5.689s39.823 0 56.889-5.689c-51.2-11.377-91.023-34.133-119.467-73.956-34.133-51.2-45.511-91.023-45.511-142.223v0c28.444 11.377 56.889 22.756 91.023 28.444-62.577-51.2-91.023-108.089-91.023-182.044 0-34.133 11.377-68.267 28.444-102.4 113.777 136.533 256 210.489 432.356 216.177-5.689-11.377-5.689-28.444-5.689-45.511 0-56.889 17.067-108.089 62.577-147.911 39.823-39.823 91.023-62.577 147.911-62.577 62.577 0 108.089 17.067 153.6 62.577 45.511-11.377 91.023-22.756 130.844-45.511-17.067 45.511-45.511 85.333-91.023 113.777 39.823-5.689 79.644-17.067 119.467-28.444z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "twitter" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 72, + "id": 8, + "name": "twitter", + "prevSize": 32, + "code": 84 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 8 + }, + { + "icon": { + "paths": [ + "M651.377 563.197c5.689 0 28.444 11.377 62.577 28.444 39.823 17.067 56.889 28.444 56.889 34.133 0 0 0 5.689 0 11.377 0 17.067-5.689 34.133-11.377 51.2s-22.756 34.133-45.51 45.51c-22.756 11.377-45.51 17.067-68.266 17.067s-68.266-11.377-125.156-39.823c-39.823-22.756-79.644-45.51-113.777-79.644s-62.577-73.956-96.71-125.156c-28.444-45.51-39.823-91.022-39.823-125.156v-5.689c0-39.823 17.067-73.956 51.2-102.4 5.689-11.377 17.067-17.067 28.444-17.067 0 0 5.689 0 11.377 0s11.377 0 11.377 0 11.377 0 17.067 5.689c5.689 0 5.689 5.689 11.377 17.067 0 11.377 11.377 28.444 22.756 62.577 11.377 28.444 17.067 45.51 17.067 51.2 0 11.377-5.689 22.756-22.756 39.823-11.377 5.689-22.756 17.067-22.756 22.756 0 0 0 5.689 0 11.377 17.067 34.133 39.823 62.577 68.266 91.022 22.756 22.756 56.889 45.51 102.4 68.266 5.689 0 11.377 5.689 17.067 5.689s17.067-11.377 34.133-34.133c17.067-22.756 28.444-34.133 34.133-34.133v0zM520.532 915.906c56.889 0 108.089-11.377 164.977-34.133 51.2-22.756 96.71-51.2 130.843-85.333s68.266-79.644 85.333-130.843c22.756-51.2 34.133-108.089 34.133-164.977s-11.377-108.089-34.133-159.289c-22.756-56.889-51.2-102.4-91.022-136.533s-79.644-68.266-130.843-91.022c-51.2-22.756-108.089-34.133-164.977-34.133s-108.089 17.067-159.289 34.133c-51.2 22.756-96.71 51.2-130.843 91.022s-68.266 79.644-91.022 130.843c-22.756 51.2-28.444 108.089-28.444 164.977 0 91.022 22.756 170.666 79.644 244.622l-51.2 153.599 159.289-51.2c68.266 45.51 142.222 68.266 227.555 68.266zM520.532-0.001c68.266 0 130.843 11.377 193.422 39.823 62.577 22.756 113.777 62.577 159.289 108.089s79.644 96.71 108.089 159.289c28.444 62.577 39.823 125.156 39.823 193.422s-11.377 130.843-39.823 193.422c-22.756 62.577-62.577 113.777-108.089 159.289s-96.71 79.644-159.289 108.089c-62.577 22.756-125.156 39.823-193.422 39.823-85.333 0-164.977-22.756-238.932-62.577l-278.755 85.333 85.333-267.376c-45.51-73.956-68.266-164.977-68.266-255.999 0-68.266 11.377-130.843 39.823-193.422 22.756-62.577 62.577-113.777 108.089-159.289s96.71-79.644 159.289-108.089c56.889-28.444 125.156-39.823 193.422-39.823z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "whatsapp" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 73, + "id": 9, + "name": "whatsapp", + "prevSize": 32, + "code": 87 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 9 + }, + { + "icon": { + "paths": [ + "M280.043 876.906c0 39.603-16.972 73.547-39.603 96.176-28.287 33.945-62.232 45.259-96.176 45.259-39.603 0-73.547-11.314-96.176-39.603s-45.259-62.232-45.259-101.834 11.314-73.547 39.603-96.176 56.575-39.603 96.176-39.603c39.603 0 73.547 11.314 96.176 39.603 28.287 28.287 45.259 62.232 45.259 96.176zM653.436 967.426c0 11.314 0 22.63-11.314 33.945-5.658 11.314-22.63 16.972-33.945 16.972h-96.176c-11.314 0-22.63-5.658-28.287-11.314-11.314-5.658-16.972-16.972-16.972-28.287-11.314-107.492-56.575-203.669-135.779-282.873s-169.724-118.807-282.873-130.121c-11.314 0-22.63-5.658-28.287-16.972-16.972-11.314-16.972-22.63-16.972-33.945v-96.176c0-11.314 5.658-22.63 16.972-33.945 5.658-11.314 16.972-11.314 28.287-11.314h5.658c73.547 5.658 147.094 22.63 220.641 56.575s130.121 73.547 186.696 130.121c56.575 50.917 96.176 118.807 130.121 186.696s50.917 147.094 62.232 220.641v0zM1021.171 973.083c0 11.314 0 22.63-11.314 33.945-5.658 11.314-22.63 16.972-33.945 16.972h-101.834c-11.314 0-22.63-5.658-33.945-11.314-5.658-5.658-11.314-22.63-11.314-28.287-5.658-101.834-28.287-203.669-73.547-294.189-45.259-96.176-96.176-175.382-169.724-243.271-67.89-67.89-147.094-124.465-243.271-169.724s-192.354-79.204-294.189-79.204c-11.314 0-22.63-5.658-28.287-16.972-11.314-11.314-16.972-22.63-16.972-33.945v-101.834c0-11.314 5.658-22.63 16.972-33.945 5.658-11.314 16.972-11.314 28.287-11.314v0c124.465 5.658 248.928 33.945 362.078 84.862 118.807 50.917 220.641 118.807 311.161 214.983 90.52 90.52 158.409 192.354 214.983 305.503 50.917 118.807 79.204 237.613 84.862 367.735v0z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "rss" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 74, + "id": 10, + "name": "rss", + "prevSize": 32, + "code": 128195 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 10 + }, + { + "icon": { + "paths": [ + "M628.019 711.251v121.064c0 25.221-10.088 40.354-20.178 40.354s-20.178-5.045-25.221-10.088v-171.508c10.088-10.088 15.133-15.133 25.221-15.133 15.133 0 20.178 15.133 20.178 35.311v0zM824.749 716.296v25.221h-50.444v-25.221c0-25.221 10.088-40.354 25.221-40.354s25.221 15.133 25.221 40.354v0zM264.827 590.187h60.532v-50.444h-176.551v50.444h60.532v327.882h60.532v-327.882zM431.29 918.069h50.444v-282.482h-50.444v216.907c-10.088 15.133-20.178 25.221-30.266 25.221s-10.088-5.045-10.088-10.088c0 0 0-10.088 0-20.178v-206.817h-50.444v226.995c0 20.178 0 30.266 5.045 40.354 5.045 15.133 15.133 20.178 35.311 20.178s40.354-10.088 60.532-35.311v25.221zM678.463 832.315v-116.019c0-25.221 0-45.399-5.045-55.487-5.045-20.178-20.178-30.266-40.354-30.266s-40.354 10.088-55.487 30.266v-126.109h-50.444v383.37h50.444v-30.266c20.178 20.178 35.311 30.266 55.487 30.266s35.311-10.088 40.354-30.266c5.045-10.088 5.045-25.221 5.045-55.487zM875.192 827.271v-10.088h-50.444c0 20.178 0 30.266 0 35.311 0 10.088-10.088 20.178-20.178 20.178-20.178 0-25.221-15.133-25.221-40.354v-50.444h100.886v-60.532c0-30.266-5.045-50.444-15.133-65.577-15.133-20.178-35.311-30.266-60.532-30.266s-45.399 10.088-60.532 30.266c-10.088 15.133-15.133 35.311-15.133 65.577v100.886c0 30.266 5.045 50.444 20.178 65.577 15.133 20.178 35.311 30.266 60.532 30.266s50.444-10.088 60.532-30.266c10.088-10.088 10.088-20.178 10.088-30.266-5.045 0-5.045-15.133-5.045-30.266zM522.088 302.66v-121.064c0-25.221-10.088-40.354-25.221-40.354s-25.221 15.133-25.221 40.354v121.064c0 25.221 10.088 40.354 25.221 40.354 20.178 0 25.221-15.133 25.221-40.354zM940.769 731.429c0 90.798-5.045 156.375-15.133 201.774-5.045 20.178-15.133 40.354-30.266 55.487-20.178 15.133-35.311 25.221-60.532 25.221-70.62 10.088-176.551 10.088-322.838 10.088s-252.216 0-322.838-5.045c-20.178 0-40.354-10.088-60.532-25.221-15.133-15.133-30.266-35.311-30.266-55.487-10.088-45.399-15.133-110.976-15.133-201.774s5.045-156.375 15.133-201.774c5.045-25.221 15.133-40.354 30.266-60.532 20.178-15.133 35.311-25.221 60.532-25.221 70.62-10.088 176.551-10.088 317.793-10.088s252.216 5.045 322.838 10.088c20.178 0 40.354 10.088 60.532 25.221 15.133 15.133 30.266 35.311 30.266 60.532 15.133 40.354 20.178 105.931 20.178 196.729v0zM365.715 0h60.532l-75.665 226.995v156.375h-55.487v-156.375c-5.045-25.221-15.133-65.577-35.311-121.064-15.133-40.354-25.221-75.665-35.311-105.931h60.532l40.354 151.33 40.354-151.33zM577.577 191.684v100.886c0 30.266-5.045 55.487-15.133 70.62-15.133 20.178-35.311 30.266-60.532 30.266s-45.399-10.088-60.532-30.266c-10.088-15.133-15.133-40.354-15.133-70.62v-100.886c0-30.266 5.045-50.444 15.133-65.577 15.133-20.178 35.311-30.266 60.532-30.266s45.399 10.088 60.532 30.266c10.088 10.088 15.133 35.311 15.133 65.577zM769.261 95.842v287.527h-50.444v-30.266c-20.178 25.221-40.354 35.311-60.532 35.311s-30.266-5.045-35.311-20.178c-5.045-10.088-5.045-25.221-5.045-45.399v-226.995h50.444v211.862c0 10.088 0 20.178 0 20.178 0 10.088 5.045 10.088 10.088 10.088 10.088 0 20.178-10.088 30.266-25.221v-216.907h60.532z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "youtube" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 75, + "id": 11, + "name": "youtube", + "prevSize": 32, + "code": 89 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 11 + }, + { + "icon": { + "paths": [ + "M959.999 64v639.999h-703.998c-19.2 0-31.999 6.4-44.8 19.2l-147.199 147.199v-806.398h895.998zM959.999 0.001h-895.998c-38.4 0-64 25.6-64 64v639.999c0 38.4 0 319.999 0 319.999l256-256h703.998c38.4 0 64-25.6 64-64v-639.999c0-38.4-25.6-64-64-64v0z", + "M255.999 224.001h511.999v64h-511.999v-64z", + "M255.999 416h511.999v64h-511.999v-64z" + ], + "attrs": [ + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "comment" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {} + ], + "properties": { + "order": 76, + "id": 12, + "name": "comment", + "prevSize": 32, + "code": 128172 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 12 + }, + { + "icon": { + "paths": [ + "M967.111 113.779h-170.666v-56.889c0-34.133-22.756-56.889-56.889-56.889h-682.666c-34.133 0-56.889 22.756-56.889 56.889v796.443c0 34.133 22.756 56.889 56.889 56.889h170.666v56.889c0 34.133 22.756 56.889 56.889 56.889h682.666c34.133 0 56.889-22.756 56.889-56.889v-796.443c0-34.133-22.756-56.889-56.889-56.889zM56.891 853.334v-796.443h682.666v796.443h-682.666zM967.111 967.111h-682.666v-56.889h455.11c34.133 0 56.889-22.756 56.889-56.889v-682.666h170.666v796.443z", + "M170.668 256.001h455.11v56.889h-455.11v-56.889z", + "M170.668 426.668h455.11v56.889h-455.11v-56.889z", + "M170.668 597.334h455.11v56.889h-455.11v-56.889z" + ], + "attrs": [ + {}, + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "file" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {}, + {} + ], + "properties": { + "order": 77, + "id": 13, + "name": "file", + "prevSize": 32, + "code": 128196 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 13 + }, + { + "icon": { + "paths": [ + "M967.111 170.667h-910.222c-34.133 0-56.889 22.756-56.889 56.889v568.889c0 34.133 22.756 56.889 56.889 56.889h910.222c34.133 0 56.889-22.756 56.889-56.889v-568.889c0-34.133-22.756-56.889-56.889-56.889zM938.667 227.556l-426.666 307.2-426.666-307.2h853.332zM56.891 796.444v-517.689l455.11 329.956 455.11-329.956v517.689h-910.222z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "mail" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 78, + "id": 14, + "name": "mail", + "prevSize": 32, + "code": 128231 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 14 + }, + { + "icon": { + "paths": [ + "M995.556 216.179c-5.689-5.689-17.067-5.689-22.756-5.689-11.377 0-22.756 5.689-34.133 11.377l-142.222 113.777v-108.089c0-34.133-22.756-56.889-56.889-56.889h-682.667c-34.133 0-56.889 22.756-56.889 56.889v568.89c0 34.133 22.756 56.889 56.889 56.889h682.667c34.133 0 56.889-22.756 56.889-56.889v-96.711l142.222 113.777c11.377 5.689 22.756 11.377 34.133 11.377 5.689 0 17.067 0 22.756-5.689 17.067-11.377 28.444-28.444 28.444-45.511v-511.999c0-17.067-11.377-39.823-28.444-45.511zM739.557 796.445h-682.667v-568.89h682.667v568.89zM972.8 768.001l-176.356-136.533v-227.556l176.356-147.91v511.999z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "video" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 79, + "id": 15, + "name": "video", + "prevSize": 32, + "code": 127909 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 15 + }, + { + "icon": { + "paths": [ + "M967.111 227.556v568.889h-910.222v-568.889h910.222zM967.111 170.667h-910.222c-34.133 0-56.889 22.756-56.889 56.889v568.889c0 34.133 22.756 56.889 56.889 56.889h910.222c34.133 0 56.889-22.756 56.889-56.889v-568.889c0-34.133-22.756-56.889-56.889-56.889v0z", + "M682.667 341.334c96.711 0 170.666 73.956 170.666 170.666s-73.956 170.666-170.666 170.666-170.666-73.956-170.666-170.666 73.956-170.666 170.666-170.666zM682.667 284.444c-125.156 0-227.556 102.4-227.556 227.556s102.4 227.556 227.556 227.556 227.556-102.4 227.556-227.556-102.4-227.556-227.556-227.556v0z", + "M398.224 341.334c0 31.419-25.471 56.889-56.889 56.889s-56.889-25.471-56.889-56.889c0-31.419 25.471-56.889 56.889-56.889s56.889 25.471 56.889 56.889z" + ], + "attrs": [ + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "camera" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {} + ], + "properties": { + "order": 80, + "id": 16, + "name": "camera", + "prevSize": 32, + "code": 128247 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 16 + }, + { + "icon": { + "paths": [ + "M448.001 128c-249.6 0-448 198.4-448 448s198.4 448 448 448 448-198.4 448-448h-64c0 211.2-172.8 384-384 384s-384-172.8-384-384 172.8-384 384-384v-64z", + "M960.001 0.001h-448v64h396.799l-486.4 486.4 44.8 44.8 492.799-492.799v409.6h64v-511.999z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "external_link" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 81, + "id": 17, + "name": "external-link", + "prevSize": 32, + "code": 128413 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 17 + }, + { + "icon": { + "paths": [ + "M500.622 369.779c34.133 0 62.577 22.756 62.577 56.889v119.466h62.577v-119.466c0-62.577-56.889-113.777-125.155-113.777v0h-375.465c-68.266 0-125.155 51.2-125.155 113.777v227.555c0 62.577 56.889 113.777 125.155 113.777h250.31v-56.889h-250.31c-34.133 0-62.577-22.756-62.577-56.889v-227.555c0-34.133 28.444-56.889 62.577-56.889h375.465z", + "M523.378 654.222c-34.133 0-62.577-22.756-62.577-56.889v-119.466h-62.577v119.466c0 62.577 56.889 113.777 125.155 113.777v0h375.465c68.266 0 125.155-51.2 125.155-113.777v-227.555c0-62.577-56.889-113.777-125.155-113.777h-250.31v56.889h250.31c34.133 0 62.577 22.756 62.577 56.889v227.555c0 34.133-28.444 56.889-62.577 56.889h-375.465z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "link" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 82, + "id": 18, + "name": "link", + "prevSize": 32, + "code": 128279, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 18 + }, + { + "icon": { + "paths": [ + "M769.591 642.384v127.204h-127.204v-127.204h127.204zM769.591 578.781h-127.204c-38.161 0-63.603 25.441-63.603 63.603v127.204c0 38.161 25.441 63.603 63.603 63.603h127.204c38.161 0 63.603-25.441 63.603-63.603v-127.204c0-38.161-25.441-63.603-63.603-63.603v0z", + "M960.399 133.565h-133.565v-69.962c0-38.161-25.441-63.603-63.603-63.603s-63.603 25.441-63.603 63.603v69.962h-381.615v-69.962c0-38.161-25.441-63.603-63.603-63.603s-63.603 25.441-63.603 63.603v69.962h-127.204c-38.161 0-63.603 25.441-63.603 63.603v763.229c0 38.161 25.441 63.603 63.603 63.603h890.433c38.161 0 63.603-25.441 63.603-63.603v-763.229c6.361-31.801-19.081-63.603-57.242-63.603zM960.399 960.396h-890.433v-566.061h890.433v566.061zM960.399 330.732h-890.433v-133.565h127.204c0 38.161 25.441 63.603 63.603 63.603s63.603-25.441 63.603-63.603v0h381.615c0 38.161 25.441 63.603 63.603 63.603s63.603-25.441 63.603-63.603v0h133.565v133.565z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "calendar" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 83, + "id": 19, + "name": "calendar", + "prevSize": 32, + "code": 128197, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 19 + }, + { + "icon": { + "paths": [ + "M967.111 113.779h-170.666v-56.889c0-34.133-22.756-56.889-56.889-56.889h-682.666c-34.133 0-56.889 22.756-56.889 56.889v796.443c0 34.133 22.756 56.889 56.889 56.889h170.666v56.889c0 34.133 22.756 56.889 56.889 56.889h682.666c34.133 0 56.889-22.756 56.889-56.889v-796.443c0-34.133-22.756-56.889-56.889-56.889zM56.891 853.334v-796.443h682.666v796.443h-682.666zM967.111 967.111h-682.666v-56.889h455.11c34.133 0 56.889-22.756 56.889-56.889v-682.666h170.666v796.443z", + "M193.424 466.49h-39.823v73.956h-45.511v-250.31h91.023c56.889 0 85.333 28.444 85.333 85.333 0 28.444-5.689 51.2-22.756 68.267s-39.823 22.756-68.267 22.756zM153.601 420.978h39.823c22.756 0 39.823-17.067 39.823-45.511 0-17.067-5.689-28.444-11.377-34.133-5.689 0-11.377-5.689-28.444-5.689h-39.823v85.333z", + "M398.224 534.757h-79.644v-244.622h79.644c22.756 0 39.823 0 51.2 5.689s22.756 11.377 34.133 22.756c5.689 11.377 11.377 22.756 17.067 34.133s5.689 34.133 5.689 51.2 0 39.823-5.689 56.889c0 17.067-5.689 28.444-17.067 39.823-5.689 11.377-17.067 17.067-34.133 22.756-11.377 11.377-28.444 11.377-51.2 11.377zM449.424 438.045c0-5.689 0-17.067 0-34.133s0-22.756 0-34.133c0-5.689-5.689-17.067-5.689-22.756 0 0-5.689-5.689-17.067-5.689-5.689 0-17.067-5.689-28.444-5.689h-28.444v159.289h28.444c17.067 0 28.444-5.689 39.823-11.377 5.689-11.377 11.377-22.756 11.377-45.511z", + "M546.134 534.757v-244.622h153.6v45.511h-108.089v73.956h91.023v45.511h-85.333v85.333h-51.2z" + ], + "attrs": [ + {}, + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "pdf" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {}, + {} + ], + "properties": { + "order": 84, + "id": 20, + "name": "pdf", + "prevSize": 32, + "code": 128459, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 20 + }, + { + "icon": { + "paths": [ + "M967.111 113.779h-170.666v-56.889c0-34.133-22.756-56.889-56.889-56.889h-682.666c-34.133 0-56.889 22.756-56.889 56.889v796.443c0 34.133 22.756 56.889 56.889 56.889h170.666v56.889c0 34.133 22.756 56.889 56.889 56.889h682.666c34.133 0 56.889-22.756 56.889-56.889v-796.443c0-34.133-22.756-56.889-56.889-56.889zM56.891 853.334v-796.443h682.666v796.443h-682.666zM967.111 967.111h-682.666v-56.889h455.11c34.133 0 56.889-22.756 56.889-56.889v-682.666h170.666v796.443z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "copy" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 85, + "id": 21, + "name": "copy", + "prevSize": 32, + "code": 128461, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 21 + }, + { + "icon": { + "paths": [ + "M745.244 113.777v0c113.777 0 221.867 68.267 221.867 199.111 0 193.423-301.511 466.489-455.111 580.267-153.6-119.467-455.111-392.533-455.111-580.267 0-136.533 113.777-199.111 216.177-199.111 85.333 0 153.6 39.823 193.423 102.4 11.377 17.067 28.444 28.444 51.2 28.444 0 0 0 0 0 0 22.756 0 39.823-11.377 51.2-34.133 28.444-56.889 96.711-96.711 176.356-96.711zM745.244 56.889c-96.711 0-187.733 45.511-233.244 136.533-51.2-91.023-147.911-136.533-238.933-136.533-136.533 0-273.067 91.023-273.067 256 0 284.444 512 654.223 512 654.223s512-369.777 512-654.223c0-164.977-142.223-256-278.756-256v0z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "favorite" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 86, + "id": 22, + "name": "favorite", + "prevSize": 32, + "code": 9825, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 22 + }, + { + "icon": { + "paths": [ + "M512 51.2c255.999 0 460.8 204.8 460.8 460.8s-204.8 460.8-460.8 460.8-460.8-204.8-460.8-460.8 204.8-460.8 460.8-460.8zM512 0c-281.6 0-512 230.4-512 512s230.4 512 512 512 512-230.4 512-512-230.4-512-512-512v0z", + "M460.8 767.999c0-30.72 20.48-51.2 51.2-51.2s51.2 20.48 51.2 51.2c0 30.72-20.48 51.2-51.2 51.2s-51.2-20.48-51.2-51.2z", + "M481.28 665.6l-10.24-460.8h81.92l-10.24 460.8z" + ], + "attrs": [ + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "error" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {} + ], + "properties": { + "order": 87, + "id": 23, + "name": "error", + "prevSize": 32, + "code": 128500, + "ligatures": "" + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 23 + }, + { + "icon": { + "paths": [ + "M18.506 962.312h986.988v61.687h-986.988v-61.687z", + "M660.047 61.685v400.963h191.229l-339.277 320.771-339.277-320.771h185.060v-400.963h302.265zM721.734 0h-425.638v400.963h-277.59l493.493 462.65 493.493-462.65h-283.759v-400.963z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "download" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 88, + "id": 24, + "name": "download", + "prevSize": 32, + "code": 11015 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 24 + }, + { + "icon": { + "paths": [ + "M15.515 0h992.97v62.061h-992.97v-62.061z", + "M511.999 242.037l341.334 322.716h-186.182v397.188h-297.891v-403.393h-198.593l341.334-316.509zM511.999 155.152l-496.484 465.455h285.479v403.393h428.218v-403.393h279.273l-496.484-465.455z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "upload" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 89, + "id": 25, + "name": "upload", + "prevSize": 32, + "code": 11014 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 25 + }, + { + "icon": { + "paths": [ + "M609.521 682.665c0 53.861-43.663 97.523-97.523 97.523s-97.523-43.663-97.523-97.523c0-53.861 43.663-97.523 97.523-97.523s97.523 43.663 97.523 97.523z", + "M853.332 341.332h-92.648v-97.523c0-136.534-107.277-243.809-243.809-243.809s-243.809 107.277-243.809 243.809v0h48.762c0-107.277 87.771-195.048 195.048-195.048s195.048 87.771 195.048 195.048v97.523h-541.257c-29.257 0-48.762 19.505-48.762 48.762v585.143c0 29.257 19.505 48.762 48.762 48.762h682.666c29.257 0 48.762-19.505 48.762-48.762v-585.143c0-29.257-19.505-48.762-48.762-48.762zM853.332 975.237h-682.666v-585.143h682.666v585.143z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "unlock" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 90, + "id": 26, + "name": "unlock", + "prevSize": 32, + "code": 128275 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 26 + }, + { + "icon": { + "paths": [ + "M609.522 682.665c0 53.861-43.663 97.523-97.523 97.523s-97.523-43.663-97.523-97.523c0-53.861 43.663-97.523 97.523-97.523s97.523 43.663 97.523 97.523z", + "M853.333 341.332h-92.648v-97.523c0-136.534-107.277-243.809-243.809-243.809s-243.809 107.277-243.809 243.809v0 97.523h-102.4c-29.257 0-48.762 19.505-48.762 48.762v585.143c0 29.257 19.505 48.762 48.762 48.762h682.666c29.257 0 48.762-19.505 48.762-48.762v-585.143c0-29.257-19.505-48.762-48.762-48.762zM321.828 243.808c0-107.277 87.771-195.048 195.048-195.048s195.048 87.771 195.048 195.048v97.523h-390.095v-97.523zM853.333 975.237h-682.666v-585.143h682.666v585.143z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "lock" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 91, + "id": 27, + "name": "lock", + "prevSize": 32, + "code": 128274 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 27 + }, + { + "icon": { + "paths": [ + "M591.36 51.201l15.36 112.64 5.12 30.72 25.6 10.24c25.6 10.24 51.2 25.6 76.8 40.96l25.6 15.36 20.48-5.12 107.52-46.080 81.92 138.24-92.16 71.68-20.48 15.36 5.12 30.72c0 15.36 5.12 30.72 5.12 46.080s0 25.6-5.12 46.080l-5.12 30.72 20.48 15.36 92.16 71.68-81.92 138.24-107.52-46.080-25.6-10.24-20.48 15.36c-25.6 20.48-51.2 35.84-76.8 46.080l-25.6 10.24-5.12 30.72-15.36 112.64h-158.72l-15.36-112.64-10.24-30.72-25.6-10.24c-25.6-10.24-51.2-25.6-76.8-40.96l-25.6-15.36-20.48 5.12-107.52 46.080-81.92-138.24 92.16-71.68 20.48-15.36-5.12-30.72c0-15.36-5.12-30.72-5.12-46.080s0-25.6 5.12-46.080l5.12-30.72-20.48-15.36-92.16-66.56 81.92-143.36 107.52 46.080 25.6 10.24 20.48-20.48c25.6-15.36 51.2-30.72 76.8-40.96l25.6-10.24 5.12-30.72 15.36-112.64h163.84zM509.44 742.401c128 0 230.4-102.4 230.4-230.4s-102.4-230.4-230.4-230.4-230.4 102.4-230.4 230.4 102.4 230.4 230.4 230.4zM611.84-0h-204.8c-10.24 0-25.6 10.24-25.6 20.48l-20.48 138.24c-30.72 10.24-56.32 30.72-87.040 51.2l-122.88-51.2c-5.12-5.12-10.24-5.12-10.24-5.12-10.24 0-20.48 5.12-25.6 15.36l-102.4 179.2c-5.12 5.12 0 20.48 10.24 30.72l107.52 81.92c0 15.36-5.12 30.72-5.12 51.2s0 35.84 5.12 51.2l-107.52 87.040c-10.24 5.12-10.24 20.48-5.12 30.72l102.4 179.2c0 5.12 10.24 10.24 20.48 10.24 5.12 0 5.12 0 10.24 0l128-51.2c25.6 20.48 56.32 35.84 87.040 51.2l20.48 133.12c0 10.24 10.24 20.48 25.6 20.48h204.8c10.24 0 25.6-10.24 25.6-20.48l20.48-133.12c30.72-10.24 61.44-30.72 87.040-51.2l128 51.2c5.12 0 5.12 0 10.24 0 10.24 0 15.36-5.12 20.48-15.36l102.4-179.2c5.12-10.24 5.12-25.6-5.12-30.72l-117.76-81.92c0-15.36 5.12-30.72 5.12-51.2s0-35.84-5.12-51.2l107.52-87.040c10.24-5.12 10.24-20.48 5.12-30.72l-102.4-179.2c0-5.12-10.24-10.24-20.48-10.24-5.12 0-5.12 0-10.24 0l-128 51.2c-25.6-20.48-56.32-35.84-87.040-51.2l-20.48-138.24c5.12-5.12-5.12-15.36-20.48-15.36v0zM509.44 691.201c-97.28 0-179.2-81.92-179.2-179.2s81.92-179.2 179.2-179.2 179.2 81.92 179.2 179.2-81.92 179.2-179.2 179.2v0z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "settings" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 92, + "id": 28, + "name": "settings", + "prevSize": 32, + "code": 9881 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 28 + }, + { + "icon": { + "paths": [ + "M0 983.955l320.357-320.357c-62.927-68.648-97.251-160.179-97.251-263.151 0-223.106 177.341-400.447 400.447-400.447s400.447 177.341 400.447 400.447c0 223.106-177.341 400.447-400.447 400.447-102.972 0-194.503-40.045-263.151-97.251l-320.357 320.357-40.045-40.045zM617.832 749.407c188.782 0 343.24-154.458 343.24-343.24s-154.458-343.24-343.24-343.24-343.24 154.458-343.24 343.24 154.458 343.24 343.24 343.24z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "search" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 93, + "id": 29, + "name": "search", + "prevSize": 32, + "code": 128269 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 29 + }, + { + "icon": { + "paths": [ + "M0 983.955l320.357-320.357c-62.927-68.648-97.251-160.179-97.251-263.151 0-223.106 177.341-400.447 400.447-400.447s400.447 177.341 400.447 400.447c0 223.106-177.341 400.447-400.447 400.447-102.972 0-194.503-40.045-263.151-97.251l-320.357 320.357-40.045-40.045zM623.553 749.407c188.782 0 343.24-154.458 343.24-343.24s-154.458-343.24-343.24-343.24-343.24 154.458-343.24 343.24 154.458 343.24 343.24 343.24z", + "M451.933 383.285h143.017v-143.017h57.207v143.017h143.017v57.207h-143.017v143.017h-57.207v-143.017h-143.017z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "zoom_in" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 94, + "id": 30, + "name": "zoom-in", + "prevSize": 32, + "code": 9906 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 30 + }, + { + "icon": { + "paths": [ + "M0 983.955l320.357-320.357c-62.927-68.648-97.251-160.179-97.251-263.151 0-223.106 177.341-400.447 400.447-400.447s400.447 177.341 400.447 400.447c0 223.106-177.341 400.447-400.447 400.447-102.972 0-194.503-40.045-263.151-97.251l-320.357 320.357-40.045-40.045zM617.832 749.407c188.782 0 343.24-154.458 343.24-343.24s-154.458-343.24-343.24-343.24-343.24 154.458-343.24 343.24 154.458 343.24 343.24 343.24z", + "M795.172 371.843h-343.24v57.207h343.24v-57.207z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "zoom_out" + ], + "grid": 0 + }, + "attrs": [ + {}, + {} + ], + "properties": { + "order": 95, + "id": 31, + "name": "zoom-out", + "prevSize": 32, + "code": 128271 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 31 + }, + { + "icon": { + "paths": [ + "M448 0v780.8l-358.4-358.4-89.6 89.6 512 512 89.6-89.6 422.4-416-89.6-96-358.4 358.4v-780.8z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "arrow_down" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 96, + "id": 32, + "name": "arrow-down", + "prevSize": 32, + "code": 11107 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 32 + }, + { + "icon": { + "paths": [ + "M576 1024v-780.8l358.4 358.4 89.6-89.6-512-512-89.6 89.6-422.4 416 89.6 96 358.4-358.4v780.8z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "arrow_up" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 97, + "id": 33, + "name": "arrow-up", + "prevSize": 32, + "code": 11016 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 33 + }, + { + "icon": { + "paths": [ + "M640 512c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z", + "M640 128c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z", + "M640 896c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z" + ], + "attrs": [ + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "more_vertical" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {} + ], + "properties": { + "order": 98, + "id": 34, + "name": "more-items", + "prevSize": 32, + "code": 8942 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 34 + }, + { + "icon": { + "paths": [ + "M640.001 512c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z", + "M256 512c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z", + "M1024.001 512c0 70.692-57.308 128-128 128s-128-57.308-128-128c0-70.692 57.308-128 128-128s128 57.308 128 128z" + ], + "attrs": [ + {}, + {}, + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "more" + ], + "grid": 0 + }, + "attrs": [ + {}, + {}, + {} + ], + "properties": { + "order": 99, + "id": 35, + "name": "more-actions", + "prevSize": 32, + "code": 8943 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 35 + }, + { + "icon": { + "paths": [ + "M1024 213.835l-90.353-84.329-590.306 596.33-259.012-259.012-84.329 90.353 259.012 252.988h-6.024l90.353 84.329 84.329-84.329z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "check" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 100, + "id": 36, + "name": "check", + "prevSize": 32, + "code": 10003 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 36 + }, + { + "icon": { + "paths": [ + "M1024 512c0 281.6-230.4 512-512 512s-512-230.4-512-512 230.4-512 512-512 512 230.4 512 512zM803.84 296.96l-71.68-71.68-220.16 215.040-215.040-220.16-76.8 76.8 215.040 215.040-215.040 215.040 71.68 71.68 215.040-215.040 215.040 215.040 71.68-71.68-209.919-215.040 220.16-215.040z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "cancel" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 101, + "id": 37, + "name": "cancel", + "prevSize": 32, + "code": 9747 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 37 + }, + { + "icon": { + "paths": [ + "M0.001 256h256v-256h-256v256zM384.001 1023.999h256v-256h-256v256zM0.001 1023.999h256v-256h-256v256zM0.001 639.999h256v-256h-256v256zM384.001 639.999h256v-256h-256v256zM768 0.001v256h256v-256h-256zM384.001 256h256v-256h-256v256zM768 639.999h256v-256h-256v256zM768 1023.999h256v-256h-256v256z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "app" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 102, + "id": 38, + "name": "app", + "prevSize": 32, + "code": 128242 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 38 + }, + { + "icon": { + "paths": [ + "M910.221 512.001c0 221.867-176.356 398.223-398.223 398.223s-398.223-176.356-398.223-398.223c0-221.867 176.356-398.223 398.223-398.223 96.711 0 187.733 34.133 261.689 96.711l-130.844 130.844h324.267v-318.577l-113.777 113.777c-91.023-91.023-216.177-136.533-341.333-136.533-284.444 0-512 227.556-512 512s227.556 512 512 512 512-227.556 512-512h-113.777z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "refresh" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 103, + "id": 39, + "name": "refresh", + "prevSize": 32, + "code": 10227 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 39 + }, + { + "icon": { + "paths": [ + "M1024 106.985l-106.985-106.985-405.015 405.015-405.015-405.015-106.985 106.985 405.015 405.015-405.015 405.015 106.985 106.985 405.015-405.015 405.015 405.015 106.985-106.985-405.015-405.015z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "close" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 104, + "id": 40, + "name": "close", + "prevSize": 32, + "code": 128501 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 40 + }, + { + "icon": { + "paths": [ + "M1024 256l-512 512-512-512z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "drop_up" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 105, + "id": 41, + "name": "drop-up", + "prevSize": 32, + "code": 9660 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 41 + }, + { + "icon": { + "paths": [ + "M0 768l512-512 512 512z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "drop_down" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 106, + "id": 42, + "name": "drop-down", + "prevSize": 32, + "code": 9650 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 42 + }, + { + "icon": { + "paths": [ + "M904.534 827.733l119.466-119.466-512-512-512 512 119.466 119.466 392.534-392.534 392.534 392.534z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "collapse" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 107, + "id": 43, + "name": "collapse", + "prevSize": 32, + "code": 9207 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 43 + }, + { + "icon": { + "paths": [ + "M119.466 196.267l-119.466 119.466 512 512 512-512-119.466-119.466-392.534 392.534-392.534-392.534z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "expand" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 108, + "id": 44, + "name": "expand", + "prevSize": 32, + "code": 9206 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 44 + }, + { + "icon": { + "paths": [ + "M196.267 904.534l119.466 119.466 512-512-512-512-119.466 119.466 392.534 392.534-392.534 392.534z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "chevron_right" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 109, + "id": 45, + "name": "chevron-right", + "prevSize": 32, + "code": 9205 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 45 + }, + { + "icon": { + "paths": [ + "M827.733 119.466l-119.466-119.466-512 512 512 512 119.466-119.466-392.534-392.534 392.534-392.534z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "chevron_left" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 110, + "id": 46, + "name": "chevron-left", + "prevSize": 32, + "code": 9204 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 46 + }, + { + "icon": { + "paths": [ + "M0 576h780.8l-358.4 358.4 89.6 89.6 512-512-89.6-89.6-416-422.4-96 89.6 358.4 358.4h-780.8z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "arrow_right" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 111, + "id": 47, + "name": "arrow-right", + "prevSize": 32, + "code": 10230 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 47 + }, + { + "icon": { + "paths": [ + "M1024 448h-780.8l358.4-358.4-89.6-89.6-512 512 89.6 89.6 416 422.4 89.6-89.6-352.001-358.4h780.8z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "arrow_left" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 112, + "id": 48, + "name": "arrow-left", + "prevSize": 32, + "code": 10229 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 48 + }, + { + "icon": { + "paths": [ + "M910.222 0h-796.445c-62.577 0-113.777 51.2-113.777 113.777v796.445c0 62.577 51.2 113.777 113.777 113.777h796.445c62.577 0 113.777-51.2 113.777-113.777v-796.445c0-62.577-51.2-113.777-113.777-113.777zM398.222 796.445l-284.444-284.444 79.644-79.644 204.8 204.8 432.357-432.357 79.644 79.644-512.001 512.001z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "check_box_checked" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 113, + "id": 49, + "name": "checkbox-checked", + "prevSize": 32, + "code": 9745 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 49 + }, + { + "icon": { + "paths": [ + "M910.222 113.778v796.445h-796.445v-796.445h796.445zM910.222 0h-796.445c-62.577 0-113.777 51.2-113.777 113.777v796.445c0 62.577 51.2 113.777 113.777 113.777h796.445c62.577 0 113.777-51.2 113.777-113.777v-796.445c0-62.577-51.2-113.777-113.777-113.777z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "check_box" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 114, + "id": 50, + "name": "checkbox", + "prevSize": 32, + "code": 9744 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 50 + }, + { + "icon": { + "paths": [ + "M512 0c-281.6 0-512 230.4-512 512s230.4 512 512 512 512-230.4 512-512c0-281.6-230.4-512-512-512zM512 921.599c-225.279 0-409.599-184.32-409.599-409.599s184.32-409.599 409.599-409.599 409.599 184.32 409.599 409.599c0 225.279-184.32 409.599-409.599 409.599z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "radio button" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 115, + "id": 51, + "name": "radio-button", + "prevSize": 32, + "code": 9711 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 51 + }, + { + "icon": { + "paths": [ + "M512 256.001c-143.36 0-255.999 112.64-255.999 255.999s112.64 255.999 255.999 255.999 255.999-112.64 255.999-255.999-112.64-255.999-255.999-255.999zM512 0c-281.6 0-512 230.4-512 512s230.4 512 512 512 512-230.4 512-512-230.4-512-512-512zM512 921.599c-225.279 0-409.599-184.32-409.599-409.599s184.32-409.599 409.599-409.599 409.599 184.32 409.599 409.599-184.32 409.599-409.599 409.599z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "radio button checked" + ], + "grid": 0 + }, + "attrs": [ + {} + ], + "properties": { + "order": 116, + "id": 52, + "name": "radio-button-checked", + "prevSize": 32, + "code": 9737 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 52 + } + ], + "height": 1024, + "preferences": { + "showGlyphs": true, + "showCodes": true, + "showQuickUse": true, + "showQuickUse2": true, + "showSVGs": true, + "fontPref": { + "prefix": "Icon-", + "metadata": { + "fontFamily": "ita", + "majorVersion": 1, + "minorVersion": 0, + "fontURL": "https://github.com/italia-it", + "copyright": "AgID", + "designer": "Daniela De Blasis", + "license": "CC0", + "licenseURL": "https://creativecommons.org/publicdomain/zero/1.0/" + }, + "metrics": { + "emSize": 1024, + "baseline": 6.25, + "whitespace": 50 + }, + "embed": false, + "showMetadata": true, + "cssVars": false, + "showSelector": false, + "showMetrics": false, + "showVersion": true + }, + "imagePref": { + "prefix": "Icon-", + "png": true, + "useClassSelector": true, + "color": 0, + "bgColor": 16777215, + "classSelector": ".Icon", + "height": 32, + "columns": 16, + "margin": 16 + }, + "historySize": 100, + "gridSize": 16, + "showLiga": false + } +} \ No newline at end of file diff --git a/src/icons/ita/img/style.css b/src/icons/ita/img/style.css new file mode 100644 index 000000000..e27758d87 --- /dev/null +++ b/src/icons/ita/img/style.css @@ -0,0 +1,16 @@ +.Icon { + display: inline-block; + width: 1em; + height: 1em; + stroke-width: 0; + stroke: currentColor; + fill: currentColor; +} + +/* ========================================== +Single-colored icons can be modified like so: +.Icon-name { + font-size: 32px; + color: red; +} +========================================== */ diff --git a/src/icons/ita/img/svgxuse.js b/src/icons/ita/img/svgxuse.js new file mode 100644 index 000000000..296f7b942 --- /dev/null +++ b/src/icons/ita/img/svgxuse.js @@ -0,0 +1,203 @@ +/*! + * @copyright Copyright (c) 2016 IcoMoon.io + * @license Licensed under MIT license + * See https://github.com/Keyamoon/svgxuse + * @version 1.1.20 + */ +/*jslint browser: true */ +/*global XDomainRequest, MutationObserver, window */ +(function () { + 'use strict'; + if (window && window.addEventListener) { + var cache = Object.create(null); // holds xhr objects to prevent multiple requests + var checkUseElems; + var tid; // timeout id + var debouncedCheck = function () { + clearTimeout(tid); + tid = setTimeout(checkUseElems, 100); + }; + var unobserveChanges = function () { + return; + }; + var observeChanges = function () { + var observer; + window.addEventListener('resize', debouncedCheck, false); + window.addEventListener('orientationchange', debouncedCheck, false); + if (window.MutationObserver) { + observer = new MutationObserver(debouncedCheck); + observer.observe(document.documentElement, { + childList: true, + subtree: true, + attributes: true + }); + unobserveChanges = function () { + try { + observer.disconnect(); + window.removeEventListener('resize', debouncedCheck, false); + window.removeEventListener('orientationchange', debouncedCheck, false); + } catch (ignore) {} + }; + } else { + document.documentElement.addEventListener('DOMSubtreeModified', debouncedCheck, false); + unobserveChanges = function () { + document.documentElement.removeEventListener('DOMSubtreeModified', debouncedCheck, false); + window.removeEventListener('resize', debouncedCheck, false); + window.removeEventListener('orientationchange', debouncedCheck, false); + }; + } + }; + var createRequest = function (url) { + // In IE 9, cross domain requests can only be sent using XDomainRequest. + // XDomainRequest would fail if CORS headers are not set. + // Therefore, XDomainRequest should only be used with cross domain requests. + function getHostname(href) { + var a = document.createElement('a'); + a.href = href; + return a.hostname; + } + var Request; + var hname = location.hostname; + var hname2; + if (window.XMLHttpRequest) { + Request = new XMLHttpRequest(); + hname2 = getHostname(url); + if (Request.withCredentials === undefined && hname2 !== '' && hname2 !== hname) { + Request = XDomainRequest || undefined; + } else { + Request = XMLHttpRequest; + } + } + return Request; + }; + var xlinkNS = 'http://www.w3.org/1999/xlink'; + checkUseElems = function () { + var base; + var bcr; + var fallback = ''; // optional fallback URL in case no base path to SVG file was given and no symbol definition was found. + var hash; + var i; + var inProgressCount = 0; + var isHidden; + var Request; + var url; + var uses; + var xhr; + function observeIfDone() { + // If done with making changes, start watching for chagnes in DOM again + inProgressCount -= 1; + if (inProgressCount === 0) { // if all xhrs were resolved + unobserveChanges(); // make sure to remove old handlers + observeChanges(); // watch for changes to DOM + } + } + function attrUpdateFunc(spec) { + return function () { + if (cache[spec.base] !== true) { + spec.useEl.setAttributeNS(xlinkNS, 'xlink:href', '#' + spec.hash); + } + }; + } + function onloadFunc(xhr) { + return function () { + var body = document.body; + var x = document.createElement('x'); + var svg; + xhr.onload = null; + x.innerHTML = xhr.responseText; + svg = x.getElementsByTagName('svg')[0]; + if (svg) { + svg.setAttribute('aria-hidden', 'true'); + svg.style.position = 'absolute'; + svg.style.width = 0; + svg.style.height = 0; + svg.style.overflow = 'hidden'; + body.insertBefore(svg, body.firstChild); + } + observeIfDone(); + }; + } + function onErrorTimeout(xhr) { + return function () { + xhr.onerror = null; + xhr.ontimeout = null; + observeIfDone(); + }; + } + unobserveChanges(); // stop watching for changes to DOM + // find all use elements + uses = document.getElementsByTagName('use'); + for (i = 0; i < uses.length; i += 1) { + try { + bcr = uses[i].getBoundingClientRect(); + } catch (ignore) { + // failed to get bounding rectangle of the use element + bcr = false; + } + url = uses[i].getAttributeNS(xlinkNS, 'href').split('#'); + base = url[0]; + hash = url[1]; + isHidden = bcr && bcr.left === 0 && bcr.right === 0 && bcr.top === 0 && bcr.bottom === 0; + if (bcr && bcr.width === 0 && bcr.height === 0 && !isHidden) { + // the use element is empty + // if there is a reference to an external SVG, try to fetch it + // use the optional fallback URL if there is no reference to an external SVG + if (fallback && !base.length && hash && !document.getElementById(hash)) { + base = fallback; + } + if (base.length) { + // schedule updating xlink:href + xhr = cache[base]; + if (xhr !== true) { + // true signifies that prepending the SVG was not required + setTimeout(attrUpdateFunc({ + useEl: uses[i], + base: base, + hash: hash + }), 0); + } + if (xhr === undefined) { + Request = createRequest(base); + if (Request !== undefined) { + xhr = new Request(); + cache[base] = xhr; + xhr.onload = onloadFunc(xhr); + xhr.onerror = onErrorTimeout(xhr); + xhr.ontimeout = onErrorTimeout(xhr); + xhr.open('GET', base); + xhr.send(); + inProgressCount += 1; + } + } + } + } else { + if (!isHidden) { + if (cache[base] === undefined) { + // remember this URL if the use element was not empty and no request was sent + cache[base] = true; + } else if (cache[base].onload) { + // if it turns out that prepending the SVG is not necessary, + // abort the in-progress xhr. + cache[base].abort(); + delete cache[base].onload; + cache[base] = true; + } + } else if (base.length && cache[base]) { + attrUpdateFunc({ + useEl: uses[i], + base: base, + hash: hash + })(); + } + } + } + uses = ''; + inProgressCount += 1; + observeIfDone(); + }; + // The load event fires when all resources have finished loading, which allows detecting whether SVG use elements are empty. + window.addEventListener('load', function winLoad() { + window.removeEventListener('load', winLoad, false); // to prevent memory leaks + tid = setTimeout(checkUseElems, 0); + }, false); + } +}()); diff --git a/src/icons/ita/img/symbol-defs.svg b/src/icons/ita/img/symbol-defs.svg new file mode 100644 index 000000000..73df1e1b0 --- /dev/null +++ b/src/icons/ita/img/symbol-defs.svg @@ -0,0 +1,246 @@ + + + +slideshare + + + +googleplus + + + +flickr + + + +expand-media + + + +list + + + + + + + + +pin + + + +facebook + + + +share + + + +twitter + + + +whatsapp + + + +rss + + + +youtube + + + +comment + + + + + +file + + + + + + +mail + + + +video + + + +camera + + + + + +external-link + + + + +link + + + + +calendar + + + + +pdf + + + + + + +copy + + + +favorite + + + +error + + + + + +download + + + + +upload + + + + +unlock + + + + +lock + + + + +settings + + + +search + + + +zoom-in + + + + +zoom-out + + + + +arrow-down + + + +arrow-up + + + +more-items + + + + + +more-actions + + + + + +check + + + +cancel + + + +app + + + +refresh + + + +close + + + +drop-up + + + +drop-down + + + +collapse + + + +expand + + + +chevron-right + + + +chevron-left + + + +arrow-right + + + +arrow-left + + + +checkbox-checked + + + +checkbox + + + +radio-button + + + +radio-button-checked + + + + diff --git a/src/icons/ita/index.css b/src/icons/ita/index.css new file mode 100644 index 000000000..c8959de8a --- /dev/null +++ b/src/icons/ita/index.css @@ -0,0 +1,6 @@ +/* + * Generated with Icomoon App + * + * https://icomoon.io/app + */ +@import "./font/style.css"; diff --git a/src/legacy/index.css b/src/legacy/index.css new file mode 100644 index 000000000..e95bc2ff3 --- /dev/null +++ b/src/legacy/index.css @@ -0,0 +1,131 @@ +/* + * FIXME: + * + * Hall of shame + * The bare minimum to support ancient devices + * Mostly IE8 / IE9 + * + */ + +.ie89 .Grid { + display: block !important; + font-size: 0; + text-align: left; +} + +.ie89 .u-flex, +.ie89 .Grid-cell, +.ie89 .Header, +.ie89 .Header > *, +.ie89 .Header-utils > * { + box-sizing: border-box; + display: inline-block !important; + font-size: 1.8rem; + margin-left: 0; + margin-right: 0; + padding: 0; + position: static !important; + text-align: left; + vertical-align: top; + width: 100%; +} + +.ie89 .Grid--withGutter { + margin: 0 -8px !important; +} + +.ie89 .Grid--withGutter > .Grid-cell { + padding: 0 8px !important; +} + +/* + * Header is static + */ +.ie89 body { + padding: 0 !important; +} + +.ie89 header { + padding-bottom: 1% !important; +} + +.ie89 .Header-serviceLink { + height: 3em; + line-height: 3em; +} + +.ie89 .Header-searchTrigger { + display: none !important; +} + +.ie89 .Header-utils > * { + float: right !important; + text-align: right !important; +} + +.ie89 .Header-search .Form-field { + float: right; + text-align: right; +} + +.ie89 .Header-search .Form-field input { + padding: 0.3em; +} + +.ie89 .Header-search label { + margin-top: 1em; +} + +.ie89 .Header-search button, +.ie89 .Header-search .Form-input { + float: left !important; + width: auto !important; +} + +.ie89 .Header-navbar > * { + vertical-align: middle; +} + +/* IE8 */ + +.ie8 .Megamenu-item { + display: inline-block !important; +} + +.ie8 .Header-navbar { + background: var(--Color-primary) !important; + color: white !important; +} + +.ie8 .Cookiebar, +.ie8 .Footer { + color: white !important; +} + +.ie8 .Header-socialIcons { + min-width: 12em; +} + +.ie8 .Header-socialIcons li, +.ie8 .Header-owner a, +.ie8 .Header-serviceLink a, +.ie8 .Header-serviceLink span, +.ie8 .Header-navbar a { + color: white !important; + display: inline !important; +} + +.ie8 .Skiplinks a { + top: -10em; +} + +/* + * CSS transform does not work in IE8 + */ +.ie8 .Offcanvas--right.is-ready[aria-hidden="false"] .Offcanvas-content { + left: auto !important; +} + +.ie8 .Offcanvas--left.is-ready[aria-hidden="false"] .Offcanvas-content { + right: auto !important; +} diff --git a/src/modules/accordion/accordion.tmpl b/src/modules/accordion/accordion.tmpl new file mode 100644 index 000000000..c94fea220 --- /dev/null +++ b/src/modules/accordion/accordion.tmpl @@ -0,0 +1,12 @@ +
+ + {% for i in range(0, 5) %} +

+ {{ __SHORT_TEXTS__[i] }} +

+
+ {% render '@prose--paragraph', { text: __TEXTS__[i] } %} +
+ {% endfor %} + +
diff --git a/src/modules/accordion/index.css b/src/modules/accordion/index.css new file mode 100644 index 000000000..e802c7663 --- /dev/null +++ b/src/modules/accordion/index.css @@ -0,0 +1,61 @@ +/** @define Accordion */ + +:root { + --Accordion-border-color: #d8d8d8; + --Accordion-link-arrow-up: inline("icons/ita/img/SVG/collapse.svg"); + --Accordion-link-arrow-down: inline("icons/ita/img/SVG/expand.svg"); + --Accordion-link-padding: 0.5em; + --Accordion-link-arrow-width: 0.8em; +} + +.Accordion { + @extend .u-color-grey-30; + @extend .u-border-top-xxs; + @extend .u-border-bottom-xxs; +} + +.Accordion-panel { + transition: height 250ms ease-out, visibility 250ms; +} + +.Accordion-header { + @extend .u-color-grey-30; + @extend .u-border-top-xxs; + @extend .u-block; + @extend .u-text-r-m; + @extend .u-textWeight-400; + @extend .u-nbfc; +} + +.Accordion-header:hover { + @extend .u-background-5; +} + +.Accordion-link { + @extend .u-block; + @extend .u-textClean; + @extend .u-padding-all-s; +} + +.Accordion-link { + @extend .u-color-50; +} + +.Accordion-link--leaf { + @extend .u-padding-left-xl; +} + +.Accordion-header { + background-image: var(--Accordion-link-arrow-down); + background-position: right var(--Accordion-link-padding) center; + background-repeat: no-repeat; + background-size: var(--Accordion-link-arrow-width); + padding-right: + calc( + var(--Accordion-link-arrow-width) + (2 * var(--Accordion-link-padding)) + ); +} + +.Accordion-header[aria-expanded="true"] { + background-image: var(--Accordion-link-arrow-up); +} diff --git a/src/modules/accordion/index.js b/src/modules/accordion/index.js new file mode 100644 index 000000000..3dfb6a3a2 --- /dev/null +++ b/src/modules/accordion/index.js @@ -0,0 +1,22 @@ +import Fraccordion from 'fr-accordion' + +/* eslint-disable no-unused-vars */ + +import stylesheet from 'fr-accordion/accordion.css' + +/* eslint-enable */ + +const accordion = Fraccordion({ + // String - Use header id on element to tie each accordion panel to its header - see panelIdPrefix + headerIdPrefix: 'accordion-header', + // String - Use panel id on element to tie each accordion header to its panel - see headerIdPrefix + panelIdPrefix: 'accordion-panel', + // Boolean - If set to false, all accordion panels will be closed on init() + firstPanelsOpenByDefault: false, + // Boolean - If set to false, each accordion instance will only allow a single panel to be open at a time + multiselectable: false, + // String - Class name that will be added to the selector when the component has been initialised + readyClass: 'fr-accordion--is-ready' +}) + +export default { accordion, Fraccordion } diff --git a/src/modules/alert/alert.config.json b/src/modules/alert/alert.config.json new file mode 100644 index 000000000..c54a59529 --- /dev/null +++ b/src/modules/alert/alert.config.json @@ -0,0 +1,37 @@ +{ + "title": "Alert", + "variants": [ + { + "name": "default", + "hidden": true + }, + { + "name": "error", + "context": { + "modifier": "error", + "text": "Si è verificato un errore !" + } + }, + { + "name": "warning", + "context": { + "modifier": "warning", + "text": "Attenzione !" + } + }, + { + "name": "success", + "context": { + "modifier": "success", + "text": "Operazione eseguita con successo" + } + }, + { + "name": "info", + "context": { + "modifier": "info", + "text": "Ulteriori informazioni" + } + } + ] +} diff --git a/src/modules/alert/alert.tmpl b/src/modules/alert/alert.tmpl new file mode 100644 index 000000000..16f6776be --- /dev/null +++ b/src/modules/alert/alert.tmpl @@ -0,0 +1,4 @@ + diff --git a/src/modules/alert/index.css b/src/modules/alert/index.css new file mode 100644 index 000000000..56e5ec013 --- /dev/null +++ b/src/modules/alert/index.css @@ -0,0 +1,58 @@ +/** @define Alert */ + +:root { + --Alert-error-bg: #ffcbcb; + --Alert-error-color: #1e1212; + --Alert-error-border: #b50000; + --Alert-warning-bg: #ffef9f; + --Alert-warning-color: #685815; + --Alert-warning-border: #1e1212; + --Alert-success-bg: #dff0d8; + --Alert-success-color: #3c763d; + --Alert-success-border: #d6e9c6; + --Alert-info-bg: #c6f3f5; + --Alert-info-color: #006366; + --Alert-info-border: #1e1212; +} + +.Alert { + border-left-style: solid; + border-left-width: 0.5em; + padding-left: 1em; +} + +.Alert--error { + border-left-color: color(var(--Alert-error-bg) l(-40%)); + color: var(--Alert-error-color); +} + +.Alert--error.is-full { + background: var(--Alert-error-bg); +} + +.Alert--warning { + border-left-color: color(var(--Alert-warning-bg) l(-40%)); + color: var(--Alert-warning-color); +} + +.Alert--warning.is-full { + background: var(--Alert-warning-bg); +} + +.Alert--success { + border-left-color: color(var(--Alert-success-bg) l(-40%)); + color: var(--Alert-success-color); +} + +.Alert--success.is-full { + background: var(--Alert-success-bg); +} + +.Alert--info { + border-left-color: color(var(--Alert-info-bg) l(-40%)); + color: var(--Alert-info-color); +} + +.Alert--info.is-full { + background: var(--Alert-info-bg); +} diff --git a/src/modules/breadcrumb/breadcrumb.tmpl b/src/modules/breadcrumb/breadcrumb.tmpl new file mode 100644 index 000000000..65422c0bd --- /dev/null +++ b/src/modules/breadcrumb/breadcrumb.tmpl @@ -0,0 +1,8 @@ + diff --git a/src/modules/breadcrumb/index.css b/src/modules/breadcrumb/index.css new file mode 100644 index 000000000..3984878f3 --- /dev/null +++ b/src/modules/breadcrumb/index.css @@ -0,0 +1,22 @@ +/** @define Breadcrumb; */ + +.Breadcrumb-item { + @extend .u-inline; +} + +.Breadcrumb-link { + @extend .u-textClean; + @extend .u-text-r-xs; + @extend .u-textWeight-700; + @extend .u-padding-right-xs; +} + +.Breadcrumb-item::after { + @extend .u-margin-right-xs; + + content: " › "; +} + +.Breadcrumb-item:last-child::after { + content: none; +} diff --git a/src/modules/bullets/bullets.tmpl b/src/modules/bullets/bullets.tmpl new file mode 100644 index 000000000..4cdccd2f9 --- /dev/null +++ b/src/modules/bullets/bullets.tmpl @@ -0,0 +1,10 @@ +
    + {% for i in range(0, 9) %} +
  1. +

    + {{ __SHORT_TEXTS__[i] }}
    + {{ __LONG_TEXTS__[i] }} +

    +
  2. + {% endfor %} +
diff --git a/src/modules/bullets/index.css b/src/modules/bullets/index.css new file mode 100644 index 000000000..c0b47bdcf --- /dev/null +++ b/src/modules/bullets/index.css @@ -0,0 +1,29 @@ +/** @define Bullets; weak; */ + +.Bullets { + counter-reset: Bullets; +} + +.Bullets > li { + @extend .u-flex; + + counter-increment: Bullets; +} + +.Bullets > li::before { + @extend .u-background-50; + @extend .u-color-white; + @extend .u-borderRadius-circle; + @extend .u-inlineBlock; + @extend .u-textCenter; + @extend .u-textWeight-700; + @extend .u-sizeFit; + @extend .u-text-r-s; + + content: counter(Bullets); + height: 2em; + line-height: 200%; + margin-right: 0.5em; + min-width: 2em; + width: 2em; +} diff --git a/src/modules/callout/callout.config.json b/src/modules/callout/callout.config.json new file mode 100644 index 000000000..4782b727d --- /dev/null +++ b/src/modules/callout/callout.config.json @@ -0,0 +1,33 @@ +{ + "title": "Callout", + "variants": [ + { + "name": "default", + "hidden": true + }, + { + "name": "must", + "context": { + "modifier": "must" + } + }, + { + "name": "should", + "context": { + "modifier": "should" + } + }, + { + "name": "could", + "context": { + "modifier": "could" + } + }, + { + "name": "example", + "context": { + "modifier": "example" + } + } + ] +} diff --git a/src/modules/callout/callout.tmpl b/src/modules/callout/callout.tmpl new file mode 100644 index 000000000..49676e506 --- /dev/null +++ b/src/modules/callout/callout.tmpl @@ -0,0 +1,4 @@ +
+ {{ modifier }} + {% render '@prose--paragraph' %} +
diff --git a/src/modules/callout/index.css b/src/modules/callout/index.css new file mode 100644 index 000000000..51a867bcd --- /dev/null +++ b/src/modules/callout/index.css @@ -0,0 +1,59 @@ +/** @define Callout; weak; */ + +:root { + --Callout-color-must: #f4e6f5; + --Callout-color-should: #d1e7ff; + --Callout-color-could: #ebf5ef; + --Callout-color-example: #e6e5e3; + --Callout-border-top-color: #aaa; + --Callout-space-unit: 0.5em; +} + +.Callout { + border-top: 1px solid var(--Callout-border-top-color); + padding: 1em; +} + +.Callout mark { + background: transparent; + display: block; + font-weight: bold; + margin-bottom: 1em; + width: 100%; +} + +.Callout--must { + background: var(--Callout-color-must); + border-top-color: color(var(--Callout-color-must) l(-40%)); +} + +.Callout--must mark { + color: color(var(--Callout-color-must) l(-40%)); +} + +.Callout--should { + background: var(--Callout-color-should); + border-top-color: color(var(--Callout-color-should) l(-40%)); +} + +.Callout--should mark { + color: color(var(--Callout-color-should) l(-40%)); +} + +.Callout--could { + background: var(--Callout-color-could); + border-top-color: color(var(--Callout-color-could) l(-40%)); +} + +.Callout--could mark { + color: color(var(--Callout-color-could) l(-40%)); +} + +.Callout--example { + background: var(--Callout-color-example); + border-top-color: color(var(--Callout-color-example) l(-40%)); +} + +.Callout--example mark { + color: color(var(--Callout-color-example) l(-40%)); +} diff --git a/src/modules/card/_card--gallery.tmpl b/src/modules/card/_card--gallery.tmpl new file mode 100644 index 000000000..670fd0482 --- /dev/null +++ b/src/modules/card/_card--gallery.tmpl @@ -0,0 +1,17 @@ +
+
+ +
+ +

Foto

+

13 ottobre 2016

+
+
+ +
diff --git a/src/modules/card/card.config.json b/src/modules/card/card.config.json new file mode 100644 index 000000000..8b5fd607e --- /dev/null +++ b/src/modules/card/card.config.json @@ -0,0 +1,29 @@ +{ + "title": "Card", + "variants": [ + { + "name": "default", + "context": { + "modifier": "Card--withBorder" + } + }, + { + "name": "shadow", + "context": { + "modifier": "Card--shadow" + } + }, + { + "name": "round", + "context": { + "modifier": "Card--withBorder Card--round" + } + }, + { + "name": "all", + "context": { + "modifier": "Card--shadow Card--round" + } + } + ] +} diff --git a/src/modules/card/card.tmpl b/src/modules/card/card.tmpl new file mode 100644 index 000000000..427671032 --- /dev/null +++ b/src/modules/card/card.tmpl @@ -0,0 +1,14 @@ +
+
+
+
+ +
+
+

{{ __WORDS__[1] }}

+

{{ __SHORT_TEXTS__[1] }}

+

{{ __TEXTS__[1] }}

+
+
+
+
diff --git a/src/modules/card/index.css b/src/modules/card/index.css new file mode 100644 index 000000000..b3a434772 --- /dev/null +++ b/src/modules/card/index.css @@ -0,0 +1,54 @@ +/** @define Card; */ + +.Card { + overflow: hidden; +} + +.Card--withBorder { + @extend .u-border-all-xxs; +} + +.Card--shadow { + @extend .u-borderShadow-xxs; + @extend .u-border-none; +} + +.Card--round { + @extend .u-borderRadius-m; +} + +.Card-extra { + @extend .u-text-h6; + @extend .u-margin-bottom-l; + @extend .u-textClean; +} + +.Card-extraLink { + @extend .u-textClean; +} + +.Card-content { + @extend .u-text-r-l; + @extend .u-padding-r-all; +} + +.Card-title { + @extend .u-text-h4; + @extend .u-margin-r-bottom; + @extend .u-layout-prose; +} + +.Card-titleLink { + @extend .u-text-m; + @extend .u-color-black; + @extend .u-textWeight-400; + @extend .u-textClean; +} + +.Card-text { + @extend .u-text-r-xs; + @extend .u-layout-prose; + @extend .u-lineHeight-xl; + @extend .u-textSecondary; + @extend .u-margin-bottom-l; +} diff --git a/src/modules/carousel/a11y.js b/src/modules/carousel/a11y.js new file mode 100644 index 000000000..2732772d2 --- /dev/null +++ b/src/modules/carousel/a11y.js @@ -0,0 +1,315 @@ +/** + * Owl Carousel v2 Accessibility Plugin + * Version 0.2.1 + * + * https://github.com/rtrvrtg/owlcarousel2-a11ylayer + * + * The MIT License (MIT) + * + * Copyright (c) 2015 Geoffrey Roberts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * + * © Geoffrey Roberts 2016 + */ + +; +(function($, window) { + + var Owl2A11y = function(carousel) { + this._core = carousel + this._initialized = false + + this._core._options = $.extend(Owl2A11y.defaults, this._core.options) + + this.$element = this._core.$element + + var setCurrent = $.proxy(function(e) { + this.setCurrent(e) + }, this) + + this._handlers = { + 'initialized.owl.carousel': $.proxy(function(e) { + this.setupRoot() + if (e.namespace && !this._initialized) { + this.setupFocus() + this.setupKeyboard() + } + this.setCurrent(e) + }, this), + 'changed.owl.carousel': setCurrent, + 'translated.owl.carousel': setCurrent, + 'refreshed.owl.carousel': setCurrent, + 'resized.owl.carousel': setCurrent + } + this.$element.on(this._handlers) + } + + + /* PREFERENCES */ + + /** + * Contains default parameters, if there were any. + */ + Owl2A11y.defaults = {} + + + /* EVENT HANDLERS */ + + /** + * Adds support for things that don't map nicely to the root object + * such as event handlers. + */ + Owl2A11y.eventHandlers = {} + + /** + * Get a callback for keyup events within this carousel. + * + * @return callback + * An event callback that takes an Event as an argument. + */ + Owl2A11y.prototype.getDocumentKeyUp = function() { + var self = this + return function(e) { + var eventTarg = $(e.target), + targ = self.focused(eventTarg), + action = null + + if (!!targ) { + if (e.keyCode == 37 || e.keyCode == 38) { + action = 'prev.owl.carousel' + } else if (e.keyCode == 39 || e.keyCode == 40) { + action = 'next.owl.carousel' + } else if (e.keyCode == 13) { + if (eventTarg.hasClass('owl-prev')) action = 'prev.owl.carousel' + else if (eventTarg.hasClass('owl-next')) action = 'next.owl.carousel' + else if (eventTarg.hasClass('owl-dot')) action = 'click' + } + + if (!!action) targ.trigger(action) + + } + } + } + + + /* SETUP AND TEAR DOWN */ + + /** + * Assign attributes to the root element. + */ + Owl2A11y.prototype.setupRoot = function() { + // @FIXME + // this.$element.attr({ + // role: 'listbox', + // tabindex: '0' + // }) + } + + /** + * Setup keyboard events for this carousel. + */ + Owl2A11y.prototype.setupKeyboard = function() { + // Only needed to initialise once for the entire document + if (!this.$element.attr('data-owl-access-keyup')) { + this.$element.bind('keyup', this.getDocumentKeyUp()) + .attr('data-owl-access-keyup', '1') + } + this.$element.attr('data-owl-carousel-focusable', '1') + } + + /** + * Setup focusing behaviour for the carousel. + */ + Owl2A11y.prototype.setupFocus = function() { + // Only needed to initialise once for the entire document + this.$element.bind('focusin', function() { + $(this).attr({ + 'data-owl-carousel-focused': '1', + 'aria-live': 'polite' + }).trigger('stop.owl.autoplay') + }).bind('focusout', function() { + $(this).attr({ + 'data-owl-carousel-focused': '0', + 'aria-live': 'off' + }).trigger('play.owl.autoplay') + }) + + // Add tabindex to allow navigation to be focused. + if (!!this._core._plugins.navigation) { + var navPlugin = this._core._plugins.navigation, + toFocus = [] + if (!!navPlugin._controls.$previous) { + toFocus.push(navPlugin._controls.$previous) + } + if (!!navPlugin._controls.$next) { + toFocus.push(navPlugin._controls.$next) + } + if (!!navPlugin._controls.$indicators) { + toFocus.push(navPlugin._controls.$indicators.children()) + } + $.each(toFocus, function() { + this.attr('tabindex', '0') + }) + } + } + + /** + * Assign attributes to the root element. + */ + Owl2A11y.prototype.destroy = function() { + this.$element.unbind('keyup', this.eventHandlers.documentKeyUp) + .removeAttr('data-owl-access-keyup data-owl-carousel-focusable') + .unbind('focusin focusout') + } + + + /* HELPER FUNCTIONS */ + + /** + * Identifies all focusable elements within a given element. + * + * @param DOMElement elem + * A DOM element. + * + * @return jQuery + * A jQuery object that may refer to zero or more focusable elements. + */ + Owl2A11y.prototype.focusableElems = function(elem) { + return $(elem).find('a, input, select, button, *[tabindex]') + } + + /** + * Identifies all focusable elements within a given element. + * + * @param jQeury elems + * A jQuery object that may refer to zero or more focusable elements. + * @param boolean enable + * Whether focus is to be enabled on these elements or not. + */ + Owl2A11y.prototype.adjustFocus = function(elems, enable) { + elems.each(function() { + var item = $(this) + var newTabIndex = '0', + storeTabIndex = '0', + currentTabIndex = item.attr('tabindex'), + storedTabIndex = item.attr('data-owl-temp-tabindex') + + if (enable) { + newTabIndex = ( + typeof(storedTabIndex) != 'undefined' && (storedTabIndex != '-1') ? + item.attr('data-owl-temp-tabindex') : + '0' + ) + storedTabIndex = newTabIndex + } else { + newTabIndex = '-1' + storedTabIndex = ( + (typeof(currentTabIndex) != 'undefined') || (currentTabIndex != '-1') ? + currentTabIndex : + '0' + ) + } + + item.attr({ + tabindex: newTabIndex, + 'data-owl-temp-tabindex': storeTabIndex + }) + }) + } + + /** + * Get the root element if we are focused within it. + * + * @param DOMElement targ + * An element that might be within this carousel. + * + * @return mixed + * Either the jQuery element containing the root element, or NULL. + */ + Owl2A11y.prototype.focused = function(targ) { + var targ = $(targ) + if (targ.attr('data-owl-carousel-focused') == 1) { + return targ + } + var closest = targ.closest('[data-owl-carousel-focused="1"]') + if (closest.length > 0) return closest + return null + } + + + /* UPDATE FUNCTIONS */ + + /** + * Identify active elements, set WAI-ARIA sttributes accordingly, + * scroll to show element if we need to, and set up focusing. + * + * @param Event e + * The triggering event. + */ + Owl2A11y.prototype.setCurrent = function() { + var targ = this.focused($(':focus')), + element = this._core.$element, + stage = this._core.$stage, + focusableElems = this.focusableElems, + adjustFocus = this.adjustFocus + + if (!!stage) { + var offs = stage.offset() + if (!!targ) { + window.scrollTo( + offs.left, + offs.top - parseInt($('body').css('padding-top'), 10) + ) + } + + this._core.$stage.children().each(function() { + var item = $(this) + var focusable = focusableElems(this) + + // Use the active class to determine if we can see it or not. + // Pretty lazy, but the Owl API doesn't make it easy to tell + // from indices alone. + if (item.hasClass('active')) { + item.attr('aria-hidden', 'false') + adjustFocus(focusable, true) + } else { + item.attr('aria-hidden', 'true') + adjustFocus(focusable, false) + } + }) + + if (!!targ) { + // Focus on the root element after we're done moving, + // but only if we're not using the controls. + setTimeout(function() { + var newFocus = element + if ($(':focus').closest('.owl-controls').length) { + newFocus = $(':focus') + } + newFocus.focus() + }, 250) + } + } + } + + $.fn.owlCarousel.Constructor.Plugins['Owl2A11y'] = Owl2A11y + +})(window.Zepto || window.jQuery, window) diff --git a/src/modules/carousel/carousel.tmpl b/src/modules/carousel/carousel.tmpl new file mode 100644 index 000000000..e12c158e6 --- /dev/null +++ b/src/modules/carousel/carousel.tmpl @@ -0,0 +1,34 @@ +
+
+ +
+ + + +
+ + +

È possibile navigare le slide utilizzando i tasti freccia

+
+ +
+ + +

+ Vedi tutte le gallerie +

+
+
diff --git a/src/modules/carousel/index.css b/src/modules/carousel/index.css new file mode 100644 index 000000000..e98e0b37f --- /dev/null +++ b/src/modules/carousel/index.css @@ -0,0 +1,3 @@ +@import "owl.carousel/dist/assets/owl.carousel.css"; + +/** @define Carousel; weak */ diff --git a/src/modules/carousel/index.js b/src/modules/carousel/index.js new file mode 100644 index 000000000..c1850599a --- /dev/null +++ b/src/modules/carousel/index.js @@ -0,0 +1,68 @@ +import $ from 'jquery' + +/* eslint-disable no-unused-vars */ + +import owlCarousel from 'owl.carousel' +import a11y from './a11y' + +/* eslint-enable no-unused-vars */ + +const opts = { + owlPrev: '.owl-prev', + owlNext: '.owl-next', + owlItem: '.owl-item', + jsSelector: '.owl-carousel', + owlOpts: { + nav: false, + // navText: ['precedente', 'successivo'], + items: 3, + dots: false, + loop: false, + margin: 16, + mouseDrag: true, + URLhashListener: true, + startPosition: 'URLHash', + responsive: { + 0: { + items: 1 + }, + 768: { + items: 2 + }, + 992: { + items: 3 + } + } + } +} + +const init = function() { + const $owl = $(opts.jsSelector) + + $(opts.owlPrev).click(() => $owl.trigger('prev.owl.carousel')) + $(opts.owlNext).click(() => $owl.trigger('next.owl.carousel')) + + $owl.on('initialized.owl.carousel changed.owl.carousel refreshed.owl.carousel', (event) => { + if (!event.namespace) return + + var carousel = event.relatedTarget, + element = event.target, + current = carousel.current() + + $(`${opts.owlNext}[aria-controls='${element.id}']`) + .toggleClass('u-visibilityHidden', current === carousel.maximum()) + + $(`${opts.owlPrev}[aria-controls='${element.id}']`) + .toggleClass('u-visibilityHidden', current === carousel.minimum()) + }) + + // must be called after events initialization + $owl.owlCarousel(opts.owlOpts) +} + +$(document).ready(init) + +export default { + opts, + init +} diff --git a/src/modules/cookiebar/cookiebar.js b/src/modules/cookiebar/cookiebar.js new file mode 100644 index 000000000..360c7727a --- /dev/null +++ b/src/modules/cookiebar/cookiebar.js @@ -0,0 +1,75 @@ +/* global jQuery, define */ + +/* + * Fork of + * + * https://github.com/carlwoodhouse/jquery.cookieBar + * The MIT License (MIT) + * Copyright (c) 2016 Carl Woodhouse + * + * + */ +(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(['jquery'], factory) + } else if (typeof exports === 'object') { + // CommonJS + factory(require('jquery')) + } else { + // Browser globals + factory(jQuery) + } +}(function($) { + + $.fn.cookieBar = function(options) { + var settings = $.extend({ + 'acceptButton': '.js-cookieBarAccept', + 'secure': false, + 'path': '/', + 'domain': '', + 'threshold': 500 + }, options) + + var _accept = function() { + $.cookie('cookiebar', 'hide', { + path: settings.path, + secure: settings.secure, + domain: settings.domain, + expires: 30 + }) + $(document).trigger('accept.cookiebar') + } + + $.cookieBar = $.cookieBar || {} + + $.cookieBar.isAccepted = function() { + return $.cookie('cookiebar') === 'hide' + } + + return this.each(function() { + var $cookiebar = $(this) + + if (!$.cookieBar.isAccepted()) { + if (settings.threshold > 0) { + $(window).on('scroll.cookiebar', (function() { + if ($(window).scrollTop() > settings.threshold) { + $(window).unbind('scroll.cookiebar') + _accept() + $cookiebar.hide() + } + })) + } + $cookiebar.show() + } + + $cookiebar.find(settings.acceptButton).click(function() { + $cookiebar.hide() + _accept() + return false + }) + }) + + } + +})) diff --git a/src/modules/cookiebar/cookiebar.tmpl b/src/modules/cookiebar/cookiebar.tmpl new file mode 100644 index 000000000..25ecda582 --- /dev/null +++ b/src/modules/cookiebar/cookiebar.tmpl @@ -0,0 +1,9 @@ + diff --git a/src/modules/cookiebar/index.css b/src/modules/cookiebar/index.css new file mode 100644 index 000000000..f4818ab49 --- /dev/null +++ b/src/modules/cookiebar/index.css @@ -0,0 +1,10 @@ +/** @define CookieBar */ + +.CookieBar { + bottom: 0; + display: none; + left: 0; + position: fixed; + width: 100%; + z-index: 1200; +} diff --git a/src/modules/cookiebar/index.js b/src/modules/cookiebar/index.js new file mode 100644 index 000000000..2832fe0b4 --- /dev/null +++ b/src/modules/cookiebar/index.js @@ -0,0 +1,23 @@ +import $ from 'jquery' + +/* eslint-disable no-unused-vars */ + +import cookie from 'jquery.cookie' +import cookieBar from './cookiebar' + +/* eslint-enable no-unused-vars */ + +const opts = { + 'acceptButton': '.js-cookieBarAccept', + 'secure': false, + 'path': '/', + 'domain': '' +} + +$(document).ready(function() { + $('.js-CookieBar').cookieBar(opts) +}) + +export default { + opts +} diff --git a/src/modules/dialog/dialog.tmpl b/src/modules/dialog/dialog.tmpl new file mode 100644 index 000000000..13e9d088d --- /dev/null +++ b/src/modules/dialog/dialog.tmpl @@ -0,0 +1,25 @@ + + + + diff --git a/src/modules/dialog/index.css b/src/modules/dialog/index.css new file mode 100644 index 000000000..2f09b5c0e --- /dev/null +++ b/src/modules/dialog/index.css @@ -0,0 +1,20 @@ +/** @define Dialog; */ + +/* postcss-bem-linter: ignore */ +.Dialog.fr-dialogmodal--is-ready[aria-hidden=false] { + background-color: rgba(34, 34, 34, 0.8); + box-shadow: 0 3.75em 0 0 rgba(34, 34, 34, 0.8); + transition: background-color 0.15s ease-out; +} + +.Dialog-content { + max-height: 90%; + overflow: auto; +} + +.Dialog-content--centered { + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-60%); +} diff --git a/src/modules/dialog/index.js b/src/modules/dialog/index.js new file mode 100644 index 000000000..0560ed835 --- /dev/null +++ b/src/modules/dialog/index.js @@ -0,0 +1,32 @@ +import Frdialogmodal from 'fr-dialogmodal' + +/* eslint-disable no-unused-vars */ + +import stylesheet from 'fr-dialogmodal/dialogmodal.css' + +/* eslint-enable */ + +var dialog = Frdialogmodal({ + // String - Outer container selector, hook for JS init() method + selector: '.js-fr-dialogmodal', + + // String - Modal selector, the element that represents the modal + modalSelector: '.js-fr-dialogmodal-modal', + + // String - Selector for the open button + openSelector: '.js-fr-dialogmodal-open', + + // String - Selector for the close button + closeSelector: '.js-fr-dialogmodal-close', + + // Boolean - Switches the dialog role to alertdialog, only use this when representing an alert, error or warning + isAlert: false, + + // String - Class name that will be added to the selector when the component has been initialised + readyClass: 'fr-dialogmodal--is-ready', + + // String - Class name that will be added to the selector when the component is active + activeClass: 'fr-dialogmodal--is-active' +}) + +export default { dialog, Frdialogmodal } diff --git a/src/modules/dot/index.css b/src/modules/dot/index.css new file mode 100644 index 000000000..3d0902193 --- /dev/null +++ b/src/modules/dot/index.css @@ -0,0 +1,11 @@ +/** @define Dot */ + +.Dot { + @extend .u-borderRadius-circle; + @extend .u-text-xxs; + @extend .u-inlineBlock; + @extend .u-margin-right-xxs; + + height: 1em; + width: 1em; +} diff --git a/src/modules/entrypoint/entrypoint--responsive.tmpl b/src/modules/entrypoint/entrypoint--responsive.tmpl new file mode 100644 index 000000000..f91ec118e --- /dev/null +++ b/src/modules/entrypoint/entrypoint--responsive.tmpl @@ -0,0 +1,20 @@ + diff --git a/src/modules/entrypoint/entrypoint.tmpl b/src/modules/entrypoint/entrypoint.tmpl new file mode 100644 index 000000000..9007acaed --- /dev/null +++ b/src/modules/entrypoint/entrypoint.tmpl @@ -0,0 +1,20 @@ + diff --git a/src/modules/entrypoint/index.css b/src/modules/entrypoint/index.css new file mode 100644 index 000000000..54c67af75 --- /dev/null +++ b/src/modules/entrypoint/index.css @@ -0,0 +1,10 @@ +/** @define Entrypoint; */ + +.Entrypoint-item { + @extend .u-sizeFill; + @extend .u-borderRadius-m; + @extend .u-margin-bottom-xs; + @extend .u-borderShadow-xxs; + @extend .u-text-r-l; + @extend .u-padding-r-all; +} diff --git a/src/modules/footer/footer.config.json b/src/modules/footer/footer.config.json new file mode 100644 index 000000000..3bbd5c5ff --- /dev/null +++ b/src/modules/footer/footer.config.json @@ -0,0 +1,9 @@ +{ + "title": "Footer", + "context": { + "site": { + "name": "Comune di Civitella Roveto", + "url": "www.comune.civitellaroveto.aq.it" + } + } +} diff --git a/src/modules/footer/footer.tmpl b/src/modules/footer/footer.tmpl new file mode 100644 index 000000000..c9d4b6377 --- /dev/null +++ b/src/modules/footer/footer.tmpl @@ -0,0 +1,64 @@ + diff --git a/src/modules/footer/index.css b/src/modules/footer/index.css new file mode 100644 index 000000000..1ea6807d9 --- /dev/null +++ b/src/modules/footer/index.css @@ -0,0 +1,109 @@ +/** @define Footer; weak */ + +:root { + --Footer-color-link: #65dcdf; +} + +.Footer { + @extend .u-background-grey-80; + @extend .u-color-white; + @extend .u-padding-bottom-xxl; + @extend .u-padding-top-xxl; +} + +.Footer a { + color: var(--Footer-color-link); +} + +.Footer-logo { + @extend .u-floatLeft; + @extend .u-padding-right-xl; +} + +.Footer-link { + @extend .u-text-r-s; +} + +.Footer-siteName { + @extend .u-text-r-l; +} + +.Footer-blockTitle { + @extend .u-text-r-m; + @extend .u-padding-bottom-xl; + @extend .u-color-white; +} + +.Footer-subBlock { + @extend .u-color-grey-50; + @extend .u-border-top-xxs; + @extend .u-padding-all-s; +} + +.Footer-subTitle { + @extend .u-text-r-m; + @extend .u-color-white; + @extend .u-textWeight-400; + @extend .u-padding-bottom-l; +} + +.Footer-block { + @extend .u-text-xxl; + @extend .u-margin-r-top; + @extend .u-margin-r-bottom; +} + +.Footer-block address { + @extend .u-text-r-xxs; + @extend .u-textNormal; + @extend .u-color-grey-10; +} + +.Footer-block ul { + @extend .u-sizeFull; +} + +.Footer-block li { + @extend .u-color-grey-50; + @extend .u-border-top-xxs; + @extend .u-padding-top-s; + @extend .u-padding-bottom-s; +} + +.Footer-block a { + @extend .u-text-r-xxs; + @extend .u-textWeight-700; +} + +.Footer-links { + @extend .u-border-top-xxs; + @extend .u-margin-top-xxl; + @extend .u-padding-top-xs; + @extend .u-sizeFull; +} + +.Footer-links li { + @extend .u-inlineBlock; + @extend .u-margin-left-xs; + @extend .u-margin-right-xs; +} + +.Footer-links a { + @extend .u-text-r-xxs; +} + +.Footer-socialIcons > li { + @extend .u-inlineBlock; + @extend .u-margin-right-s; + @extend .u-border-none; +} + +.Footer-socialIcons [class^="Icon-"], +.Footer-socialIcons [class*=" Icon-"] { + @extend .u-inlineBlock; + @extend .u-background-teal-50; + @extend .u-color-grey-80; + @extend .u-padding-all-xs; + @extend .u-borderRadius-circle; + @extend .u-text-r-m; +} diff --git a/src/modules/hamburger/index.css b/src/modules/hamburger/index.css new file mode 100644 index 000000000..aa8fe3062 --- /dev/null +++ b/src/modules/hamburger/index.css @@ -0,0 +1,92 @@ +/** @define Hamburger */ + +/* + * Hamburger animation + * ------------------------------------------------------------ + * Thanks to http://elijahmanor.com/css-animated-hamburger-icon/ + */ + +:root { + --Hamburger-width: 4.6rem; + --Hamburger-height: 1.2rem; + --Hamburger-pad: 0.2rem; +} + +/* + * .Hamburger-toggle { + * margin-top: calc(var(--Hamburger-height) + var(--Hamburger-pad)); + * } +*/ + +.Hamburger-toggle, +.Hamburger-toggle::before, +.Hamburger-toggle::after { + background: white; + content: " "; + display: block; + height: calc(var(--Hamburger-height) / 3); + position: relative; + width: calc(var(--Hamburger-width) * 0.7); +} + +/* + * 1. Make the whole area clickable + */ +.Hamburger-toggleContainer { + cursor: pointer; + padding-bottom: calc(var(--Hamburger-height) + var(--Hamburger-pad)); + padding-top: calc(var(--Hamburger-height) + var(--Hamburger-pad)); +} + +@media (--sm-viewport), (--md-viewport), (--lg-viewport) { + .Hamburger-toggle, + .Hamburger-toggle::before, + .Hamburger-toggle::after { + width: var(--Hamburger-width); + } +} + +.Hamburger-toggle::before { + top: -calc((var(--Hamburger-height) + var(--Hamburger-pad)) * 0.8); +} + +.Hamburger-toggle::after { + bottom: -calc((-var(--Hamburger-height) / 3) + (var(--Hamburger-height) + var(--Hamburger-pad)) * 0.8); +} + +@media (--sm-viewport), (--md-viewport), (--lg-viewport) { + .Hamburger-toggle::before { + top: -calc(var(--Hamburger-height) + var(--Hamburger-pad)); + } + + .Hamburger-toggle::after { + bottom: -calc((-var(--Hamburger-height) / 3) + var(--Hamburger-height) + var(--Hamburger-pad)); + } +} + +.Hamburger-toggle, +.Hamburger-toggle::before, +.Hamburger-toggle::after { + transition: all 500ms ease-in-out; +} + +.Hamburger-toggle.is-active { + background-color: transparent; +} + +.Hamburger-toggle.is-active::before { + top: calc(var(--Hamburger-height) / 3) !important; +} + +.Hamburger-toggle.is-active::before, +.Hamburger-toggle.is-active::after { + top: 0; +} + +.Hamburger-toggle.is-active::before { + transform: rotate(45deg); +} + +.Hamburger-toggle.is-active::after { + transform: rotate(-45deg); +} diff --git a/src/modules/header/header.config.json b/src/modules/header/header.config.json new file mode 100644 index 000000000..85f54b0d8 --- /dev/null +++ b/src/modules/header/header.config.json @@ -0,0 +1,20 @@ +{ + "title": "Header", + "context": { + "site": { + "name": "Nome della Pubblica Amministrazione" + } + }, + "variants": [{ + "name": "default", + "context": { + "clone": false + } + }, { + "name": "clone menu", + "context": { + "menu": true, + "clone": true + } + }] +} diff --git a/src/modules/header/header.tmpl b/src/modules/header/header.tmpl new file mode 100644 index 000000000..6acadd0a3 --- /dev/null +++ b/src/modules/header/header.tmpl @@ -0,0 +1,88 @@ +{% render '@skiplinks' %} + +
+ + + +
+ + + + + + + +
+ + +
+ +
+
+

Seguici su:

+ +
+ +
+ ITA + ENG +
+
+ +
+ + {% if menu %} +
+ {% if clone %} + + {% elif megamenu %} + {% render '@megamenu' %} + {% else %} + + {% endif %} +
+ {% endif %} + +
+ +{% render '@offcanvas', { showOpenButton: false } %} diff --git a/src/modules/header/index.css b/src/modules/header/index.css new file mode 100644 index 000000000..f66fe7d8a --- /dev/null +++ b/src/modules/header/index.css @@ -0,0 +1,428 @@ +/* @define Header; weak */ + +.Header { + @extend .u-layout-centerContent; +} + +.Header a:focus { + background: transparent; +} + +/* + * 1. See .Header-titleLink + */ +.Header-banner { + @extend .u-background-95; + @extend .u-posRelative; + @extend .u-color-60; + @extend .u-border-bottom-xxs; + @extend .u-padding-top-xs; + @extend .u-padding-bottom-xs; + @extend .u-padding-left-s; + @media (--sm-viewport), (--md-viewport), (--lg-viewport) { + @extend .u-padding-top-s; + @extend .u-padding-bottom-s; + } + @media (--sm-viewport) { + @extend .u-padding-left-none; + } + @media (--md-viewport) { + @extend .u-padding-left-s; /* 1 */ + } + @media (--lg-viewport) { + padding-left: calc((1 / 8 + 1 / 12) * 100%) !important; + } +} + +/* + * 1. Fixed for every theme. + */ +.Header-serviceLink { + @extend .u-flex; + @extend .u-flexAlignItemsCenter; + @extend .u-flexJustifyCenter; + @extend .u-padding-left-xl; + @extend .u-padding-right-xl; + @extend .u-posAbsolute; + + background: #06c; /* 1 */ + height: 100%; + right: 0; + top: 0; +} + +.Header-serviceLink a { + @extend .u-color-white; + @extend .u-text-r-xxs; + @extend .u-textWeight-700; + @extend .u-textClean; + + text-transform: uppercase; +} + +.Header-serviceLink span { + @extend .u-hidden; + @extend .u-md-inline; + @extend .u-lg-inline; +} + +.Header-owner a { + @extend .u-sm-before4of12; + @extend .u-md-before3of12; + @extend .u-text-xxs; + @extend .u-text-sm-xs; + @extend .u-text-md-s; + @extend .u-text-lg-s; + @extend .u-color-white; + @extend .u-textClean; +} + +/* ========================================== */ + +.Header-navbar { + @extend .u-background-50; + + @extend .u-padding-top-s; + @extend .u-padding-bottom-s; + @extend .u-padding-right-xs; + @extend .u-padding-left-xs; + + @media (--sm-viewport) { + @extend .u-padding-top-s; + @extend .u-padding-bottom-s; + @extend .u-padding-right-xs; + } + + @media (--md-viewport) { + @extend .u-padding-top-m; + @extend .u-padding-bottom-m; + @extend .u-padding-right-l; + } + + @media (--lg-viewport) { + @extend .u-padding-top-m; + @extend .u-padding-bottom-m; + @extend .u-padding-right-xxl; + } +} + +/* Burger button + ========================================== */ + +.Header-toggle { + @extend .u-size2of12; + @extend .u-lg-size1of8; + @extend .u-textCenter; +} + +.Header-toggle > * { + @extend .u-inlineBlock; + @extend .u-linkClean; +} + +.Header-toggleText { + @extend .u-hidden; + @extend .u-sm-block; + @extend .u-md-block; + @extend .u-lg-block; + + @extend .u-color-white; + @extend .u-text-r-xxs; + @extend .u-textWeight-700; + @extend .u-textClean; + + letter-spacing: 0.1em !important; + margin-bottom: -calc(1rem + var(--Hamburger-height)); + margin-top: calc(1rem + var(--Hamburger-height)); + text-transform: uppercase; +} + +/* Logo image + ========================================== */ + +.Header-logo { + @extend .u-size2of12; + @extend .u-sm-size2of12; + @extend .u-md-size1of12; + @extend .u-lg-size1of12; + @extend .u-textCenter; +} + +.Header-logo img { + @extend .u-alignMiddle; + + height: 4.5rem; + width: 4.5rem; + + @media (--sm-viewport), (--md-viewport), (--lg-viewport) { + height: 7.5rem; + width: 7.5rem; + } +} + +/* Title link + ========================================== */ + +.Header-title { + @extend .u-flex; + @extend .u-flexAlignItemsCenter; + + @extend .u-lineHeight-xxs; + + @extend .u-size6of12; + @extend .u-sm-size4of12; + @extend .u-md-size5of12; + @extend .u-lg-size5of12; + + @media (--md-viewport), (--lg-viewport) { + @extend .u-lineHeight-m; + } +} + +.Header-titleLink { + @media (--md-viewport) { + @extend .u-padding-left-s; + } +} + +.Header-titleLink a { + @extend .u-inlineBlock; + @extend .u-text-xs; + @extend .u-text-sm-m; + @extend .u-text-md-l; + @extend .u-text-lg-l; + @extend .u-lineHeight-m; + @extend .u-textWeight-700; + @extend .u-color-white; + @extend .u-textClean; + @extend .u-padding-left-xxs; + @extend .u-padding-right-xxs; +} + +.Header-titleLink small { + @extend .u-text-xxs; + @extend .u-text-sm-xs; + @extend .u-text-md-m; + @extend .u-text-lg-m; + @extend .u-textWeight-400; + @extend .u-color-white; + @extend .u-textClean; +} + +/* Search button for small screens + ========================================== */ + +.Header-searchTrigger { + @extend .u-sizeFill; + @extend .u-sm-hidden; + @extend .u-md-hidden; + @extend .u-lg-hidden; + @extend .u-textRight; +} + +.Header-searchTrigger button { + @extend .u-inlineBlock; + @extend .u-linkClean; + @extend .u-background-40; + @extend .u-color-white; + @extend .u-padding-all-s; + @extend .u-text-r-xxs; +} + +/* Utils block (social + languages + search form) + ================================================ */ + +.Header-utils { + @extend .u-block; + @extend .u-margin-top-xxs; + @extend .u-textRight; + + @extend .u-sizeFull; + @extend .u-sm-size4of12; + @extend .u-md-size4of12; + @extend .u-lg-size4of12; + + @media (--sm-viewport) { + @extend .u-margin-top-xs; + @extend .u-margin-bottom-xs; + } +} + +/* + * Hide utils on small screens + */ +.Header-utils > * { + @extend .u-hidden; + @extend .u-sm-block; + @extend .u-md-block; + @extend .u-lg-block; + @extend .u-floatRight; + @extend .u-cf; + + width: 100%; +} + +/* Search form + ================================================ */ + +.Header-search { + @extend .u-padding-all-xxs; + @media (--sm-viewport), (--md-viewport), (--lg-viewport) { + @extend .u-margin-bottom-m; + @extend .u-padding-left-m; + @extend .u-padding-right-none; + @extend .u-floatRight; + + max-width: 24em; + } +} + +.Header-search.is-active { + @extend .u-block; + @extend .u-background-40; + @extend .u-margin-top-xs; + @extend .u-padding-all-xxs; +} + +/* Lanaguage bar + ================================================ */ + +.Header-language { + @extend .u-color-white; + @extend .u-text-r-xs; + @extend .u-textWeight-700; + @extend .u-padding-left-s; + @extend .u-padding-right-s; + @extend .u-textClean; + @extend .u-margin-left-xs; + + border: 2px solid white; +} + +.Header-language.is-active { + @extend .u-background-white; + @extend .u-color-50; +} + +/* Social icons / link + ================================================ */ + +.Header-social { + @extend .u-text-r-xs; + @extend .u-color-white; + @extend .u-margin-left-s; + @extend .u-margin-bottom-m; +} + +.Header-social > * { + @extend .u-hidden; + @extend .u-md-inlineBlock; + @extend .u-lg-inlineBlock; +} + +.Header-socialIcons { + @extend .u-padding-left-xxs; + @extend .u-text-r-xs; +} + +.Header-socialIcons > li { + @extend .u-inlineBlock; +} + +.Header-socialIcons [class^="Icon-"], +.Header-socialIcons [class*=" Icon-"] { + @extend .u-inlineBlock; + @extend .u-background-white; + @extend .u-color-50; + @extend .u-padding-all-xs; + @extend .u-borderRadius-circle; + @extend .u-margin-left-xs; +} + +/* + * Headroom.js for sticky header + * ============================= + */ +.Headroom { + max-height: 100em; + width: 100%; +} + +.Headroom--fixed, +.Headroom--pinned { + transform: translateY(0%); +} + +/* + * 1. Allow transition on element heights + */ +.Headroom-hideme { + max-height: 5em; /* 1 */ + transition: all 250ms ease; + will-change: all; +} + +.Headroom--fixed.Headroom--not-top .Headroom-hideme, +.Headroom--pinned.Headroom--not-top .Headroom-hideme { + margin: 0 !important; + max-height: 0; + overflow-y: hidden; + padding-bottom: 0 !important; + padding-top: 0 !important; +} + +.js .Headroom--fixed, +.Headroom--pinned.Headroom--not-top { + @extend .u-zindex-40; + + min-width: 30rem; + position: fixed; + top: 0; +} + +.Headroom--fixed.Headroom--not-top .Header-titleLink, +.Headroom--pinned.Headroom--not-top .Header-titleLink { + @extend .u-flexAlignSelfCenter; + @extend .u-flex; +} + +.Headroom--fixed.Headroom--not-top .Header-titleLink a, +.Headroom--pinned.Headroom--not-top .Header-titleLink a { + @extend .u-text-xxs; + @extend .u-text-sm-xs; + @extend .u-text-md-s; + @extend .u-text-lg-m; + @extend .u-textWeight-400; +} + +.Headroom--fixed.Headroom--not-top .Header-toggleText, +.Headroom--fixed.Headroom--not-top .Header-titleLink small, +.Headroom--pinned.Headroom--not-top .Header-titleLink small { + @extend .u-hidden; +} + +.Headroom--fixed.Headroom--not-top .Header-navbar, +.Headroom--pinned.Headroom--not-top .Header-navbar { + @extend .u-padding-top-xxs; + @extend .u-padding-bottom-none; + @media (--sm-viewport), (--md-viewport), (--lg-viewport) { + @extend .u-padding-top-xxs; + @extend .u-padding-bottom-xxs; + } +} + +.Headroom--fixed.Headroom--not-top .Header-logo img, +.Headroom--pinned.Headroom--not-top .Header-logo img { + max-height: 3em; + max-width: 3em; +} + +.Headroom--fixed.Headroom--not-top .Header-search, +.Headroom--pinned.Headroom--not-top .Header-search { + @extend .u-margin-bottom-xxs; + @extend .u-padding-bottom-xxs; +} + +.Headroom--unpinned { + /* transform: translateY(-100%); */ +} diff --git a/src/modules/header/index.js b/src/modules/header/index.js new file mode 100644 index 000000000..91a627fd6 --- /dev/null +++ b/src/modules/header/index.js @@ -0,0 +1,136 @@ +import $ from 'jquery' +import Headroom from 'headroom.js' +import debounce from 'throttle-debounce/throttle' + +// Headroom for fixed sticky header + +const myElement = document.querySelector('header') + +const opts = { + // vertical offset in px before element is first unpinned + offset: 0, + // you can specify tolerance individually for up/down scroll + tolerance: { + up: 20, + down: 10 + }, + // css classes to apply + classes: { + // when element is initialised + initial: 'Headroom', + // when scrolling up + pinned: 'Headroom--pinned', + // when scrolling down + unpinned: 'Headroom--unpinned', + // when above offset + top: 'Headroom--top', + // when below offset + notTop: 'Headroom--not-top', + // when at bottom of scoll area + bottom: 'Headroom--bottom', + // when not at bottom of scroll area + notBottom: 'Headroom--not-bottom' + }, + // element to listen to scroll events on, defaults to `window` + scroller: window, + // callback when pinned, `this` is headroom object + onPin: function() {}, + // callback when unpinned, `this` is headroom object + onUnpin: function() {}, + // callback when above offset, `this` is headroom object + onTop: function() {}, + // callback when below offset, `this` is headroom object + onNotTop: function() {}, + // callback when at bottom of page, `this` is headroom object + onBottom: function() {}, + // callback when moving away from bottom of page, `this` is headroom object + onNotBottom: function() {} +} + +let headroom = null + +if (myElement) { + headroom = new Headroom(myElement, opts) + headroom.init() +} + +/* + * Make space when using fixed header. + * + * The no-js alternative is to set up body padding inside CSS + * assuming you know the exact header height in pixel + * (expanded and minimized for all viewport width) + */ +const headroomFixed = '.Headroom--fixed' + +if ($('.' + opts.classes.initial).is(headroomFixed)) { + const INTERVAL = 250 + + let windowWidth = $(window).width() + + // Needs to be here due to CSS transition (see on Safari) + let headerHeight = $(headroomFixed).height() + + const _adjustPadding = function() { + const paddingTop = headerHeight + + $('body').css({ + paddingTop: paddingTop + 'px' + }) + } + + // Set up padding on page load + $(document).ready(() => { + $(headroomFixed).css({ + position: 'fixed', + top: 0 + }) + _adjustPadding() + }) + + // Make padding respond to window resize + $(window).resize(debounce(INTERVAL, function() { + const newWindowWidth = $(window).width() + const height = $(headroomFixed).height() + // Android browser triggers a resize event on scroll to top + // so we check for changes in window width + if (newWindowWidth !== windowWidth) { + windowWidth = newWindowWidth + headerHeight = height + setTimeout(_adjustPadding, INTERVAL) + } + })) + + $(headroomFixed).on('transitionend', debounce(INTERVAL, function() { + const height = $(this).height() + if (headerHeight < height) { + // This happens *only* after a resize + // _and_ when scrolling to top + headerHeight = height + _adjustPadding() + } + })) + +} + +/* + * Toggle search-form visibility for mobile + */ +$('.js-Header-search-trigger').click((e) => { + $('.js-Header-search-trigger').each((i, el) => { + const $el = $(el) + if ('true' === $el.attr('aria-hidden')) { + $el.attr('aria-hidden', 'false') + $el.removeClass('u-hiddenVisually') + } else { + $el.attr('aria-hidden', 'true') + $el.addClass('u-hiddenVisually') + } + }) + $($(e.target).attr('aria-controls')).toggleClass('is-active') +}) + +export default { + Headroom, + headroom +} diff --git a/src/modules/leads/index.css b/src/modules/leads/index.css new file mode 100644 index 000000000..780299ef3 --- /dev/null +++ b/src/modules/leads/index.css @@ -0,0 +1,26 @@ +/** @define Utilities */ + +.Leads { + @extend .u-padding-r-top; + @extend .u-padding-r-bottom; +} + +.Leads-title { + @extend .u-text-h3; + @extend .u-margin-r-bottom; +} + +.Leads-link { + @extend .u-text-r-m; + @extend .u-padding-r-top; + @extend .u-padding-r-bottom; + @extend .u-sizeFull; + @extend .u-border-top-xxs; + @extend .u-textClean; +} + +/* postcss-bem-linter: ignore */ +.Leads-link::after { + content: " › "; + margin-left: 0.2em; +} diff --git a/src/modules/leads/leads.tmpl b/src/modules/leads/leads.tmpl new file mode 100644 index 000000000..c2bdc6785 --- /dev/null +++ b/src/modules/leads/leads.tmpl @@ -0,0 +1,17 @@ +
+

Utilità

+ +
diff --git a/src/modules/linklist/index.css b/src/modules/linklist/index.css new file mode 100644 index 000000000..ea66c3ead --- /dev/null +++ b/src/modules/linklist/index.css @@ -0,0 +1,94 @@ +/** @define Linklist; weak; */ + +:root { + --Linklist-border-color: #d8d8d8; + --Linklist-link-arrow-up: inline("icons/ita/img/SVG/collapse.svg"); + --Linklist-link-arrow-down: inline("icons/ita/img/SVG/expand.svg"); + --Linklist-link-padding: 0.5em; + --Linklist-link-arrow-width: 0.8em; +} + +/* + * FIXME: + * -webkit-overflow-scrolling: touch; + */ +.Linklist { + @extend .u-color-grey-30; +} + +.Linklist li { + @extend .u-color-grey-30; + @extend .u-border-top-xxs; + @extend .u-block; + @extend .u-nbfc; +} + +.Linklist-link, +.Linklist a { + @extend .u-block; + @extend .u-color-50; + @extend .u-textClean; + @extend .u-padding-r-bottom; + @extend .u-padding-r-top; +} + +.Linklist--padded > li > .Linklist-link, +.Linklist--padded > li > a, +.Linklist--padded > li > a:hover { + @extend .u-padding-left-s; +} + +.Linklist a:hover { + @extend .u-background-5; +} + +.Linklist ul ul ul > li > a, +.Linklist ul ul ul > li > a:hover { + padding-left: 2.5em !important; +} + +.Linklist ul ul > li > a, +.Linklist ul ul > li > a:hover { + padding-left: 2em !important; +} + +.Linklist ul > li > a, +.Linklist ul > li > a:hover { + padding-left: 1.5em !important; +} + +.Linklist-link.Linklist-link--lev1, +.Linklist-link.Linklist-link--lev1:hover { + @extend .u-color-white; + @extend .u-background-90; +} + +.Linklist-link.Linklist-link--lev2, +.Linklist-link.Linklist-link--lev2:hover { + @extend .u-color-95; + @extend .u-background-20; +} + +.Linklist-link.Linklist-link--lev3 { + @extend .u-color-95; + @extend .u-background-10; +} + +.Linklist-link.is-expanded, +.Linklist-link.is-collapsed { + background-position: right var(--Linklist-link-padding) center; + background-repeat: no-repeat; + background-size: var(--Linklist-link-arrow-width); + padding-right: + calc( + var(--Linklist-link-arrow-width) + (2 * var(--Linklist-link-padding)) + ); +} + +.Linklist-link.is-collapsed { + background-image: var(--Linklist-link-arrow-down); +} + +.Linklist-link.is-expanded { + background-image: var(--Linklist-link-arrow-up); +} diff --git a/src/modules/linklist/linklist.config.json b/src/modules/linklist/linklist.config.json new file mode 100644 index 000000000..3ecdd8352 --- /dev/null +++ b/src/modules/linklist/linklist.config.json @@ -0,0 +1,17 @@ +{ + "title": "Linklist", + "variants": [ + { + "name": "default", + "context": { + "modifier": "" + } + }, + { + "name": "padded", + "context": { + "modifier": "Linklist--padded" + } + } + ] +} diff --git a/src/modules/linklist/linklist.tmpl b/src/modules/linklist/linklist.tmpl new file mode 100644 index 000000000..b25ac121a --- /dev/null +++ b/src/modules/linklist/linklist.tmpl @@ -0,0 +1,17 @@ + diff --git a/src/modules/masonry/index.css b/src/modules/masonry/index.css new file mode 100644 index 000000000..e6398b7e4 --- /dev/null +++ b/src/modules/masonry/index.css @@ -0,0 +1,21 @@ +.Masonry-item { + @extend .u-padding-right-xs; + @extend .u-padding-left-xs; + @extend .u-padding-bottom-s; +} + +[data-columns]::before { + content: "1 .u-floatLeft.u-sizeFull"; + + @media (--sm-viewport) { + content: "1 .u-floatLeft.u-sizeFull"; + } + + @media (--md-viewport) { + content: "2 .u-floatLeft.u-size1of2"; + } + + @media (--lg-viewport) { + content: "3 .u-floatLeft.u-size1of3"; + } +} diff --git a/src/modules/masonry/index.js b/src/modules/masonry/index.js new file mode 100644 index 000000000..3425b74f0 --- /dev/null +++ b/src/modules/masonry/index.js @@ -0,0 +1,7 @@ +import Salvattore from 'salvattore' + +console.log(Salvattore) + +export default { + Salvattore +} diff --git a/src/modules/megamenu/index.css b/src/modules/megamenu/index.css new file mode 100644 index 000000000..f96b95012 --- /dev/null +++ b/src/modules/megamenu/index.css @@ -0,0 +1,165 @@ +/** @define Megamenu; weak; */ + +:root { + --Megamenu-border-color: #dedede; + --Megamenu-arrow-width: 0.5em; +} + +.Megamenu-list { + @extend .u-block; + @extend .u-posRelative; + @extend .u-zindex-40; +} + +/* a top level navigation item in the mega menu */ +.Megamenu-item { + @extend .u-inlineBlock; +} + +/* first descendant link within a top level navigation item */ +.Megamenu-item > a { + @extend .u-block; + @extend .u-padding-top-s; + @extend .u-padding-bottom-s; + @extend .u-padding-right-xxl; + @extend .u-padding-left-xxl; +} + +/* focus/open states of first descendant link within a top level + navigation item + .Megamenu-subnavGroup > li > ul > li > a.is-focus { + } +*/ + +/* open state of first descendant link within a top level + navigation item */ +.Megamenu-item > a.is-open { + @extend .u-zindex-min; +} + +/* sub-navigation panel */ +.Megamenu.is-ready .Megamenu-subnav { + @extend .u-hidden; + @extend .u-posAbsolute; + @extend .u-zindex-max; + + left: 0; + width: 100%; +} + +/* sub-navigation panel open state */ +.Megamenu.is-ready .Megamenu-subnav.is-open { + @extend .u-block; +} + +/* list of items within sub-navigation panel */ +.Megamenu-subnavGroup { + @extend .u-inlineBlock; + @extend .u-alignTop; +} + +/* list item within sub-navigation panel */ +.Megamenu-subnavGroup > li { + @extend .u-block; +} + +/* Some custom style */ + +.Megamenu--styled .Megamenu-list { + @extend .u-nbfcAlt; + @extend .u-background-grey-20; + @extend .u-color-white; + @extend .u-border-top-xxs; +} + +.Megamenu--styled .Megamenu-item > a, +.Megamenu--styled .Megamenu-subnavGroup > li > a { + @extend .u-textClean; + @extend .u-color-grey-10; + @extend .u-text-r-s; + @extend .u-posRelative; +} + +.Megamenu--styled .Megamenu-item > a { + @extend .u-color-grey-80; +} + +.Megamenu--styled .Megamenu-list > li > a[aria-expanded=false]::after { + border-left: var(--Megamenu-arrow-width) solid transparent; + border-right: var(--Megamenu-arrow-width) solid transparent; + border-top: var(--Megamenu-arrow-width) solid #fff; + bottom: 40%; + content: ""; + display: block; + height: 0; + position: absolute; + right: var(--Megamenu-arrow-width); + width: 0; +} + +.Megamenu--styled .Megamenu-list > li > a[aria-expanded=true]::after { + border-bottom: var(--Megamenu-arrow-width) solid var(--Color-grey-80); + border-left: var(--Megamenu-arrow-width) solid transparent; + border-right: var(--Megamenu-arrow-width) solid transparent; + bottom: 0; + content: ""; + display: block; + height: 0; + left: calc(50% - var(--Megamenu-arrow-width)); + position: absolute; + width: 0; +} + +.Megamenu--styled .Megamenu-subnav { + @extend .u-background-grey-80; + @extend .u-padding-all-l; + @extend .u-borderShadow-m; +} + +.Megamenu--styled .Megamenu-subnavGroup > li { + @extend .u-color-grey-50; + @extend .u-padding-top-s; + @extend .u-padding-bottom-s; + @extend .u-margin-right-xxl; + @extend .u-border-bottom-xxs; +} + +.Megamenu--styled .Megamenu-subnavGroup > li:last-child { + border-bottom: none !important; +} + +.Megamenu--styled .Megamenu-subnavGroup { + @extend .u-textLeft; + + min-width: 19%; +} + +.Megamenu--styled .Megamenu-subnavGroup > li > ul { + @extend .u-padding-top-xs; + @extend .u-margin-top-s; + @extend .u-padding-bottom-xs; + @extend .u-border-top-xxs; +} + +/* + * Max depth = 3 levels + */ +.Megamenu--styled .Megamenu-subnavGroup > li > ul li { + @extend .u-padding-top-xxs; + @extend .u-padding-bottom-xxs; +} + +.Megamenu--styled .Megamenu-subnavGroup > li > ul > li a { + @extend .u-text-r-xs; + @extend .u-color-grey-10; +} + +.Megamenu--styled .Megamenu-subnavGroup > li > ul > li > ul > li > a { + @extend .u-text-r-xxs; + @extend .u-color-grey-10; +} + +.Megamenu--styled .Megamenu-subnavGroup > li > ul > li > ul { + @extend .u-margin-top-xs; + @extend .u-margin-bottom-xs; +} diff --git a/src/modules/megamenu/index.js b/src/modules/megamenu/index.js new file mode 100644 index 000000000..3b2f29701 --- /dev/null +++ b/src/modules/megamenu/index.js @@ -0,0 +1,91 @@ +import $ from 'jquery' +import Megamenu from './megamenu' + +// ASAP hide megamenu panels +$('.js-megamenu').addClass('is-ready') + +const opts = { + /* if false open menu on hover */ + openOnClick: true, + + /* prefix for generated unique id attributes, which are required + to indicate aria-owns, aria-controls and aria-labelledby */ + uuidPrefix: 'megamenu', + + /* css class used to define the megamenu styling */ + menuClass: 'Megamenu', + + menuListClass: 'Megamenu-list', + + /* css class for a top-level navigation item in the megamenu */ + topNavItemClass: 'Megamenu-item', + + /* css class for a megamenu panel */ + panelClass: 'Megamenu-subnav', + + /* css class for a group of items within a megamenu panel */ + panelGroupClass: 'Megamenu-subnavGroup', + + /* css class for the hover state */ + hoverClass: 'is-hover', + + /* css class for the focus state */ + focusClass: 'is-focus', + + /* css class for the open state */ + openClass: 'is-open' +} + +/* + * Takes a Treeview and makes it work with Megamenu + */ +const listToMegaMenu = ($ul, _opts) => { + const attrs = 'class aria-expanded aria-hidden role tabindex' + return $ul + .clone() + .removeAttr(attrs) + .addClass(_opts.menuListClass) + .find('*') + .removeAttr(attrs) + .end() + .find('> li') + .each(function(i, li) { + $(li) + .addClass(_opts.topNavItemClass) + .find('a') + // make item tabbable, this is required ! + .attr('href', '#') + .end() + .find('> ul > li') + .unwrap() + .wrap(`
    `) + .end() + .find('> ul') + .wrapAll(`
    `) + }) + .end() +} + +$(document).ready(function() { + $('.js-megamenu').each((i, el) => { + const $el = $(el) + const rel = $(el).data('rel') + if ($el.find('ul').length === 0 && rel && $(rel).length > 0) { + let $menu = listToMegaMenu($(rel), opts) + $el.append($menu) + // @FIXME: make space for javascript rendered megamenu + if ($('header').css('position') === 'fixed') { + $('body').css({ + paddingTop: '+=' + $el.height() + 'px' + }) + } + } + $el.accessibleMegaMenu(opts) + }) +}) + +export default { + opts, + listToMegaMenu, + Megamenu +} diff --git a/src/modules/megamenu/megamenu.js b/src/modules/megamenu/megamenu.js new file mode 100644 index 000000000..3c21bc9c8 --- /dev/null +++ b/src/modules/megamenu/megamenu.js @@ -0,0 +1,887 @@ +/* +Copyright © 2013 Adobe Systems Incorporated. + +Licensed under the Apache License, Version 2.0 (the “License”) +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an “AS IS” BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/** + * @fileOverview accessibleMegaMenu plugin + * + *

    Licensed under the Apache License, Version 2.0 (the “License”) + *
    Copyright © 2013 Adobe Systems Incorporated. + *
    Project page https://github.com/adobe-accessibility/Accessible-Mega-Menu + * @version 0.1 + * @author Michael Jordan + * @requires jquery + */ + +/*jslint browser: true, devel: true, plusplus: true, nomen: true */ +/*global jQuery */ +(function($, window, document) { + var pluginName = 'accessibleMegaMenu', + defaults = { + openOnClick: false, + uuidPrefix: 'accessible-megamenu', // unique ID's are required to indicate aria-owns, aria-controls and aria-labelledby + menuClass: 'accessible-megamenu', // default css class used to define the megamenu styling + topNavItemClass: 'accessible-megamenu-top-nav-item', // default css class for a top-level navigation item in the megamenu + panelClass: 'accessible-megamenu-panel', // default css class for a megamenu panel + panelGroupClass: 'accessible-megamenu-panel-group', // default css class for a group of items within a megamenu panel + hoverClass: 'hover', // default css class for the hover state + focusClass: 'focus', // default css class for the focus state + openClass: 'open' // default css class for the open state + }, + Keyboard = { + BACKSPACE: 8, + COMMA: 188, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + LEFT: 37, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SPACE: 32, + TAB: 9, + UP: 38, + keyMap: { + 48: '0', + 49: '1', + 50: '2', + 51: '3', + 52: '4', + 53: '5', + 54: '6', + 55: '7', + 56: '8', + 57: '9', + 59: '', + 65: 'a', + 66: 'b', + 67: 'c', + 68: 'd', + 69: 'e', + 70: 'f', + 71: 'g', + 72: 'h', + 73: 'i', + 74: 'j', + 75: 'k', + 76: 'l', + 77: 'm', + 78: 'n', + 79: 'o', + 80: 'p', + 81: 'q', + 82: 'r', + 83: 's', + 84: 't', + 85: 'u', + 86: 'v', + 87: 'w', + 88: 'x', + 89: 'y', + 90: 'z', + 96: '0', + 97: '1', + 98: '2', + 99: '3', + 100: '4', + 101: '5', + 102: '6', + 103: '7', + 104: '8', + 105: '9', + 190: '.' + } + } + /** + * @desc Creates a new accessible mega menu instance. + * @param {jquery} element + * @param {object} [options] Mega Menu options + * @param {string} [options.uuidPrefix=accessible-megamenu] - Prefix for generated unique id attributes, which are required to indicate aria-owns, aria-controls and aria-labelledby + * @param {string} [options.menuClass=accessible-megamenu] - CSS class used to define the megamenu styling + * @param {string} [options.topNavItemClass=accessible-megamenu-top-nav-item] - CSS class for a top-level navigation item in the megamenu + * @param {string} [options.panelClass=accessible-megamenu-panel] - CSS class for a megamenu panel + * @param {string} [options.panelGroupClass=accessible-megamenu-panel-group] - CSS class for a group of items within a megamenu panel + * @param {string} [options.hoverClass=hover] - CSS class for the hover state + * @param {string} [options.focusClass=focus] - CSS class for the focus state + * @param {string} [options.openClass=open] - CSS class for the open state + * @constructor + */ + function AccessibleMegaMenu(element, options) { + this.element = element + + // merge optional settings and defaults into settings + this.settings = $.extend({}, defaults, options) + + this._defaults = defaults + this._name = pluginName + + this.mouseTimeoutID = null + this.focusTimeoutID = null + this.mouseFocused = false + this.justFocused = false + + this.init() + } + + AccessibleMegaMenu.prototype = (function() { + + /* private attributes and methods ------------------------ */ + var uuid = 0, + keydownTimeoutDuration = 1000, + keydownSearchString = '', + isTouch = typeof window.hasOwnProperty === 'function' && !!window.hasOwnProperty('ontouchstart'), + _getPlugin, + _addUniqueId, + _togglePanel, + _clickHandler, + _clickOutsideHandler, + _DOMAttrModifiedHandler, + _focusInHandler, + _focusOutHandler, + _keyDownHandler, + _mouseDownHandler, + _mouseOverHandler, + _mouseOutHandler, + _toggleExpandedEventHandlers + + /** + * @name jQuery.fn.accessibleMegaMenu~_getPlugin + * @desc Returns the parent accessibleMegaMenu instance for a given element + * @param {jQuery} element + * @memberof jQuery.fn.accessibleMegaMenu + * @inner + * @private + */ + _getPlugin = function(element) { + return $(element).closest(':data(plugin_' + pluginName + ')').data('plugin_' + pluginName) + } + + /** + * @name jQuery.fn.accessibleMegaMenu~_addUniqueId + * @desc Adds a unique id and element. + * The id string starts with the + * string defined in settings.uuidPrefix. + * @param {jQuery} element + * @memberof jQuery.fn.accessibleMegaMenu + * @inner + * @private + */ + _addUniqueId = function(element) { + element = $(element) + var settings = this.settings + if (!element.attr('id')) { + element.attr('id', settings.uuidPrefix + '-' + new Date().getTime() + '-' + (++uuid)) + } + } + + /** + * @name jQuery.fn.accessibleMegaMenu~_togglePanel + * @desc Toggle the display of mega menu panels in response to an event. + * The optional boolean value 'hide' forces all panels to hide. + * @param {event} event + * @param {Boolean} [hide] Hide all mega menu panels when true + * @memberof jQuery.fn.accessibleMegaMenu + * @inner + * @private + */ + _togglePanel = function(event, hide) { + var target = $(event.target), + that = this, + settings = this.settings, + menu = this.menu, + topli = target.closest('.' + settings.topNavItemClass), + panel = target.hasClass(settings.panelClass) ? target : target.closest('.' + settings.panelClass), + newfocus + + _toggleExpandedEventHandlers.call(this, true) + + if (hide) { + topli = menu.find('.' + settings.topNavItemClass + ' .' + settings.openClass + ':first').closest('.' + settings.topNavItemClass) + if (!(topli.is(event.relatedTarget) || topli.has(event.relatedTarget).length > 0)) { + if ((event.type === 'mouseout' || event.type === 'focusout') && topli.has(document.activeElement).length > 0) { + return + } + topli.find('[aria-expanded]') + .attr('aria-expanded', 'false') + .removeClass(settings.openClass) + .filter('.' + settings.panelClass) + .attr('aria-hidden', 'true') + if ((event.type === 'keydown' && event.keyCode === Keyboard.ESCAPE) || event.type === 'DOMAttrModified') { + newfocus = topli.find(':tabbable:first') + setTimeout(function() { + menu.find('[aria-expanded].' + that.settings.panelClass).off('DOMAttrModified.accessible-megamenu') + newfocus.focus() + that.justFocused = false + }, 99) + } + } else if (topli.length === 0) { + menu.find('[aria-expanded=true]') + .attr('aria-expanded', 'false') + .removeClass(settings.openClass) + .filter('.' + settings.panelClass) + .attr('aria-hidden', 'true') + } + } else { + clearTimeout(that.focusTimeoutID) + topli.siblings() + .find('[aria-expanded]') + .attr('aria-expanded', 'false') + .removeClass(settings.openClass) + .filter('.' + settings.panelClass) + .attr('aria-hidden', 'true') + topli.find('[aria-expanded]') + .attr('aria-expanded', 'true') + .addClass(settings.openClass) + .filter('.' + settings.panelClass) + .attr('aria-hidden', 'false') + if (event.type === 'mouseover' && target.is(':tabbable') && topli.length === 1 && panel.length === 0 && menu.has(document.activeElement).length > 0) { + target.focus() + that.justFocused = false + } + + _toggleExpandedEventHandlers.call(that) + } + } + + /** + * @name jQuery.fn.accessibleMegaMenu~_clickHandler + * @desc Handle click event on mega menu item + * @param {event} Event object + * @memberof jQuery.fn.accessibleMegaMenu + * @inner + * @private + */ + _clickHandler = function(event) { + var target = $(event.currentTarget), + topli = target.closest('.' + this.settings.topNavItemClass), + panel = target.closest('.' + this.settings.panelClass) + if (topli.length === 1 && + panel.length === 0 && + topli.find('.' + this.settings.panelClass).length === 1) { + if (!target.hasClass(this.settings.openClass)) { + event.preventDefault() + event.stopPropagation() + _togglePanel.call(this, event) + this.justFocused = false + } else { + if (this.justFocused) { + event.preventDefault() + event.stopPropagation() + this.justFocused = false + } else if (isTouch) { + event.preventDefault() + event.stopPropagation() + _togglePanel.call(this, event, target.hasClass(this.settings.openClass)) + } + } + } + } + + /** + * @name jQuery.fn.accessibleMegaMenu~_clickOutsideHandler + * @desc Handle click event outside of a the megamenu + * @param {event} Event object + * @memberof jQuery.fn.accessibleMegaMenu + * @inner + * @private + */ + _clickOutsideHandler = function(event) { + if ($(event.target).closest(this.menu).length === 0) { + event.preventDefault() + event.stopPropagation() + _togglePanel.call(this, event, true) + } + } + + /** + * @name jQuery.fn.accessibleMegaMenu~_DOMAttrModifiedHandler + * @desc Handle DOMAttrModified event on panel to respond to Windows 8 Narrator ExpandCollapse pattern + * @param {event} Event object + * @memberof jQuery.fn.accessibleMegaMenu + * @inner + * @private + */ + _DOMAttrModifiedHandler = function(event) { + if (event.originalEvent.attrName === 'aria-expanded' && + event.originalEvent.newValue === 'false' && + $(event.target).hasClass(this.settings.openClass)) { + event.preventDefault() + event.stopPropagation() + _togglePanel.call(this, event, true) + } + } + + /** + * @name jQuery.fn.accessibleMegaMenu~_focusInHandler + * @desc Handle focusin event on mega menu item. + * @param {event} Event object + * @memberof jQuery.fn.accessibleMegaMenu + * @inner + * @private + */ + _focusInHandler = function(event) { + clearTimeout(this.focusTimeoutID) + var target = $(event.target), + panel = target.closest('.' + this.settings.panelClass) + target + .addClass(this.settings.focusClass) + .on('click.accessible-megamenu', $.proxy(_clickHandler, this)) + this.justFocused = !this.mouseFocused + this.mouseFocused = false + if (this.panels.not(panel).filter('.' + this.settings.openClass).length) { + _togglePanel.call(this, event) + } + } + + /** + * @name jQuery.fn.accessibleMegaMenu~_focusOutHandler + * @desc Handle focusout event on mega menu item. + * @param {event} Event object + * @memberof jQuery.fn.accessibleMegaMenu + * @inner + * @private + */ + _focusOutHandler = function(event) { + this.justFocused = false + var that = this, + target = $(event.target), + topli = target.closest('.' + this.settings.topNavItemClass) + + target + // .removeClass(this.settings.focusClass) + .off('click.accessible-megamenu') + + if (window.cvox) { + // If ChromeVox is running... + that.focusTimeoutID = setTimeout(function() { + window.cvox.Api.getCurrentNode(function(node) { + if (topli.has(node).length) { + // and the current node being voiced is in + // the mega menu, clearTimeout, + // so the panel stays open. + clearTimeout(that.focusTimeoutID) + } else { + that.focusTimeoutID = setTimeout(function(scope, _event, hide) { + _togglePanel.call(scope, _event, hide) + }, 275, that, event, true) + } + }) + }, 25) + } else { + that.focusTimeoutID = setTimeout(function() { + _togglePanel.call(that, event, true) + }, 300) + } + } + + /** + * @name jQuery.fn.accessibleMegaMenu~_keyDownHandler + * @desc Handle keydown event on mega menu. + * @param {event} Event object + * @memberof jQuery.fn.accessibleMegaMenu + * @inner + * @private + */ + _keyDownHandler = function(event) { + var that = (this.constructor === AccessibleMegaMenu) ? this : _getPlugin(this), // determine the AccessibleMegaMenu plugin instance + settings = that.settings, + target = $($(this).is('.' + settings.hoverClass + ':tabbable') ? this : event.target), // if the element is hovered the target is this, otherwise, its the focused element + menu = that.menu, + topnavitems = that.topnavitems, + topli = target.closest('.' + settings.topNavItemClass), + tabbables = menu.find(':tabbable'), + panel = target.hasClass(settings.panelClass) ? target : target.closest('.' + settings.panelClass), + panelGroups = panel.find('.' + settings.panelGroupClass), + currentPanelGroup = target.closest('.' + settings.panelGroupClass), + next, + keycode = event.keyCode || event.which, + start, + i, + o, + label, + found = false, + newString = Keyboard.keyMap[event.keyCode] || '', + regex, + isTopNavItem = (topli.length === 1 && panel.length === 0) + + if (target.is('input:focus, select:focus, textarea:focus, button:focus')) { + // if the event target is a form element we should handle keydown normally + return + } + + if (target.is('.' + settings.hoverClass + ':tabbable')) { + $('html').off('keydown.accessible-megamenu') + } + + switch (keycode) { + case Keyboard.ESCAPE: + _togglePanel.call(that, event, true) + break + case Keyboard.DOWN: + event.preventDefault() + if (isTopNavItem) { + _togglePanel.call(that, event) + found = (topli.find('.' + settings.panelClass + ' :tabbable:first').focus().length === 1) + } else { + found = (tabbables.filter(':gt(' + tabbables.index(target) + '):first').focus().length === 1) + } + + if (!found && window.opera && opera.toString() === '[object Opera]' && (event.ctrlKey || event.metaKey)) { + tabbables = $(':tabbable') + i = tabbables.index(target) + found = ($(':tabbable:gt(' + $(':tabbable').index(target) + '):first').focus().length === 1) + } + break + case Keyboard.UP: + event.preventDefault() + if (isTopNavItem && target.hasClass(settings.openClass)) { + _togglePanel.call(that, event, true) + next = topnavitems.filter(':lt(' + topnavitems.index(topli) + '):last') + if (next.children('.' + settings.panelClass).length) { + found = (next.children() + .attr('aria-expanded', 'true') + .addClass(settings.openClass) + .filter('.' + settings.panelClass) + .attr('aria-hidden', 'false') + .find(':tabbable:last') + .focus() === 1) + } + } else if (!isTopNavItem) { + found = (tabbables.filter(':lt(' + tabbables.index(target) + '):last').focus().length === 1) + } + + if (!found && window.opera && opera.toString() === '[object Opera]' && (event.ctrlKey || event.metaKey)) { + tabbables = $(':tabbable') + i = tabbables.index(target) + found = ($(':tabbable:lt(' + $(':tabbable').index(target) + '):first').focus().length === 1) + } + break + case Keyboard.RIGHT: + event.preventDefault() + if (isTopNavItem) { + found = (topnavitems.filter(':gt(' + topnavitems.index(topli) + '):first').find(':tabbable:first').focus().length === 1) + } else { + if (panelGroups.length && currentPanelGroup.length) { + // if the current panel contains panel groups, and we are able to focus the first tabbable element of the next panel group + found = (panelGroups.filter(':gt(' + panelGroups.index(currentPanelGroup) + '):first').find(':tabbable:first').focus().length === 1) + } + + if (!found) { + found = (topli.find(':tabbable:first').focus().length === 1) + } + } + break + case Keyboard.LEFT: + event.preventDefault() + if (isTopNavItem) { + found = (topnavitems.filter(':lt(' + topnavitems.index(topli) + '):last').find(':tabbable:first').focus().length === 1) + } else { + if (panelGroups.length && currentPanelGroup.length) { + // if the current panel contains panel groups, and we are able to focus the first tabbable element of the previous panel group + found = (panelGroups.filter(':lt(' + panelGroups.index(currentPanelGroup) + '):last').find(':tabbable:first').focus().length === 1) + } + + if (!found) { + found = (topli.find(':tabbable:first').focus().length === 1) + } + } + break + case Keyboard.TAB: + i = tabbables.index(target) + if (event.shiftKey && isTopNavItem && target.hasClass(settings.openClass)) { + _togglePanel.call(that, event, true) + next = topnavitems.filter(':lt(' + topnavitems.index(topli) + '):last') + if (next.children('.' + settings.panelClass).length) { + found = next.children() + .attr('aria-expanded', 'true') + .addClass(settings.openClass) + .filter('.' + settings.panelClass) + .attr('aria-hidden', 'false') + .find(':tabbable:last') + .focus() + } + } else if (event.shiftKey && i > 0) { + found = (tabbables.filter(':lt(' + i + '):last').focus().length === 1) + } else if (!event.shiftKey && i < tabbables.length - 1) { + found = (tabbables.filter(':gt(' + i + '):first').focus().length === 1) + } else if (window.opera && opera.toString() === '[object Opera]') { + tabbables = $(':tabbable') + i = tabbables.index(target) + if (event.shiftKey) { + found = ($(':tabbable:lt(' + $(':tabbable').index(target) + '):last').focus().length === 1) + } else { + found = ($(':tabbable:gt(' + $(':tabbable').index(target) + '):first').focus().length === 1) + } + } + + if (found) { + event.preventDefault() + } + break + case Keyboard.SPACE: + if (isTopNavItem) { + event.preventDefault() + _clickHandler.call(that, event) + } else { + return + } + break + case Keyboard.ENTER: + return + break + default: + // alphanumeric filter + clearTimeout(this.keydownTimeoutID) + + keydownSearchString += newString !== keydownSearchString ? newString : '' + + if (keydownSearchString.length === 0) { + return + } + + this.keydownTimeoutID = setTimeout(function() { + keydownSearchString = '' + }, keydownTimeoutDuration) + + if (isTopNavItem && !target.hasClass(settings.openClass)) { + tabbables = tabbables.filter(':not(.' + settings.panelClass + ' :tabbable)') + } else { + tabbables = topli.find(':tabbable') + } + + if (event.shiftKey) { + tabbables = $(tabbables.get() + .reverse()) + } + + for (i = 0; i < tabbables.length; i++) { + o = tabbables.eq(i) + if (o.is(target)) { + start = (keydownSearchString.length === 1) ? i + 1 : i + break + } + } + + regex = new RegExp('^' + keydownSearchString.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&'), 'i') + + for (i = start; i < tabbables.length; i++) { + o = tabbables.eq(i) + label = $.trim(o.text()) + if (regex.test(label)) { + found = true + o.focus() + break + } + } + if (!found) { + for (i = 0; i < start; i++) { + o = tabbables.eq(i) + label = $.trim(o.text()) + if (regex.test(label)) { + o.focus() + break + } + } + } + break + } + that.justFocused = false + } + + /** + * @name jQuery.fn.accessibleMegaMenu~_mouseDownHandler + * @desc Handle mousedown event on mega menu. + * @param {event} Event object + * @memberof accessibleMegaMenu + * @inner + * @private + */ + _mouseDownHandler = function(event) { + if ($(event.target).is(this.settings.panelClass) || $(event.target).closest(':focusable').length) { + this.mouseFocused = true + } + this.mouseTimeoutID = setTimeout(function() { + clearTimeout(this.focusTimeoutID) + }, 1) + } + + /** + * @name jQuery.fn.accessibleMegaMenu~_mouseOverHandler + * @desc Handle mouseover event on mega menu. + * @param {event} Event object + * @memberof jQuery.fn.accessibleMegaMenu + * @inner + * @private + */ + _mouseOverHandler = function(event) { + clearTimeout(this.mouseTimeoutID) + $(event.target) + .addClass(this.settings.hoverClass) + _togglePanel.call(this, event) + if ($(event.target).is(':tabbable')) { + $('html').on('keydown.accessible-megamenu', $.proxy(_keyDownHandler, event.target)) + } + } + + /** + * @name jQuery.fn.accessibleMegaMenu~_mouseOutHandler + * @desc Handle mouseout event on mega menu. + * @param {event} Event object + * @memberof jQuery.fn.accessibleMegaMenu + * @inner + * @private + */ + _mouseOutHandler = function(event) { + var that = this + $(event.target) + .removeClass(that.settings.hoverClass) + + that.mouseTimeoutID = setTimeout(function() { + _togglePanel.call(that, event, true) + }, 250) + if ($(event.target).is(':tabbable')) { + $('html').off('keydown.accessible-megamenu') + } + } + + _toggleExpandedEventHandlers = function(hide) { + var menu = this.menu + if (hide) { + $('html').off('mouseup.outside-accessible-megamenu, touchend.outside-accessible-megamenu, mspointerup.outside-accessible-megamenu, pointerup.outside-accessible-megamenu') + + menu.find('[aria-expanded].' + this.settings.panelClass).off('DOMAttrModified.accessible-megamenu') + } else { + $('html').on('mouseup.outside-accessible-megamenu, touchend.outside-accessible-megamenu, mspointerup.outside-accessible-megamenu, pointerup.outside-accessible-megamenu', $.proxy(_clickOutsideHandler, this)) + + /* Narrator in Windows 8 automatically toggles the aria-expanded property on double tap or click. + To respond to the change to collapse the panel, we must add a listener for a DOMAttrModified event. */ + menu.find('[aria-expanded=true].' + this.settings.panelClass).on('DOMAttrModified.accessible-megamenu', $.proxy(_DOMAttrModifiedHandler, this)) + } + } + + /* public attributes and methods ------------------------- */ + return { + constructor: AccessibleMegaMenu, + + /** + * @lends jQuery.fn.accessibleMegaMenu + * @desc Initializes an instance of the accessibleMegaMenu plugins + * @memberof jQuery.fn.accessibleMegaMenu + * @instance + */ + init: function() { + var settings = this.settings, + nav = $(this.element), + menu = nav.children().first(), + // Only filter to those items with the selector class + topnavitems = this.settings.topNavItems ? + menu.children(this.settings.topNavItems) : + menu.children() + this.start(settings, nav, menu, topnavitems) + }, + + start: function(settings, nav, menu, topnavitems) { + var that = this + this.settings = settings + this.menu = menu + this.topnavitems = topnavitems + + nav.attr('role', 'navigation') + menu.addClass(settings.menuClass) + topnavitems.each(function(i, topnavitem) { + var topnavitemlink, topnavitempanel + topnavitem = $(topnavitem) + topnavitem.addClass(settings.topNavItemClass) + topnavitemlink = topnavitem.find(':tabbable:first') + topnavitempanel = topnavitem.children(':not(:tabbable):last') + _addUniqueId.call(that, topnavitemlink) + if (topnavitempanel.length) { + _addUniqueId.call(that, topnavitempanel) + topnavitemlink.attr({ + 'aria-haspopup': true, + 'aria-controls': topnavitempanel.attr('id'), + 'aria-expanded': false + }) + + topnavitempanel.attr({ + 'role': 'group', + 'aria-expanded': false, + 'aria-hidden': true + }) + .addClass(settings.panelClass) + .not('[aria-labelledby]') + .attr('aria-labelledby', topnavitemlink.attr('id')) + } + }) + + this.panels = menu.find('.' + settings.panelClass) + + menu.on('focusin.accessible-megamenu', ':focusable, .' + settings.panelClass, $.proxy(_focusInHandler, this)) + .on('focusout.accessible-megamenu', ':focusable, .' + settings.panelClass, $.proxy(_focusOutHandler, this)) + .on('keydown.accessible-megamenu', $.proxy(_keyDownHandler, this)) + .on('mousedown.accessible-megamenu', $.proxy(_mouseDownHandler, this)) + + if (!settings.openOnClick) { + menu.on('mouseover.accessible-megamenu', $.proxy(_mouseOverHandler, this)) + .on('mouseout.accessible-megamenu', $.proxy(_mouseOutHandler, this)) + } + else { + menu.on('click.accessible-megamenu', $.proxy(_mouseOverHandler, this)) + } + + if (isTouch) { + menu.on('touchstart.accessible-megamenu', $.proxy(_clickHandler, this)) + } + + menu.find('hr').attr('role', 'separator') + + if ($(document.activeElement).closest(menu).length) { + $(document.activeElement).trigger('focusin.accessible-megamenu') + } + }, + + /** + * @desc Get default values + * @example $(selector).accessibleMegaMenu('getDefaults') + * @return {object} + * @memberof jQuery.fn.accessibleMegaMenu + * @instance + */ + getDefaults: function() { + return this._defaults + }, + + /** + * @desc Get any option set to plugin using its name (as string) + * @example $(selector).accessibleMegaMenu('getOption', some_option) + * @param {string} opt + * @return {string} + * @memberof jQuery.fn.accessibleMegaMenu + * @instance + */ + getOption: function(opt) { + return this.settings[opt] + }, + + /** + * @desc Get all options + * @example $(selector).accessibleMegaMenu('getAllOptions') + * @return {object} + * @memberof jQuery.fn.accessibleMegaMenu + * @instance + */ + getAllOptions: function() { + return this.settings + }, + + /** + * @desc Set option + * @example $(selector).accessibleMegaMenu('setOption', 'option_name', 'option_value', reinitialize) + * @param {string} opt - Option name + * @param {string} val - Option value + * @param {boolean} [reinitialize] - boolean to re-initialize the menu. + * @memberof jQuery.fn.accessibleMegaMenu + * @instance + */ + setOption: function(opt, value, reinitialize) { + this.settings[opt] = value + if (reinitialize) { + this.init() + } + } + } + }()) + + /* + * @param {object} [options] Mega Menu options + * @param {string} [options.uuidPrefix=accessible-megamenu] - Prefix for generated unique id attributes, which are required to indicate aria-owns, aria-controls and aria-labelledby + * @param {string} [options.menuClass=accessible-megamenu] - CSS class used to define the megamenu styling + * @param {string} [options.topNavItemClass=accessible-megamenu-top-nav-item] - CSS class for a top-level navigation item in the megamenu + * @param {string} [options.panelClass=accessible-megamenu-panel] - CSS class for a megamenu panel + * @param {string} [options.panelGroupClass=accessible-megamenu-panel-group] - CSS class for a group of items within a megamenu panel + * @param {string} [options.hoverClass=hover] - CSS class for the hover state + * @param {string} [options.focusClass=focus] - CSS class for the focus state + * @param {string} [options.openClass=open] - CSS class for the open state + */ + $.fn[pluginName] = function(options) { + return this.each(function() { + if (!$.data(this, 'plugin_' + pluginName)) { + $.data(this, 'plugin_' + pluginName, new $.fn[pluginName].AccessibleMegaMenu(this, options)) + } + }) + } + + $.fn[pluginName].AccessibleMegaMenu = AccessibleMegaMenu + + /* :focusable and :tabbable selectors from + https://raw.github.com/jquery/jquery-ui/master/ui/jquery.ui.core.js */ + + /** + * @private + */ + function visible(element) { + return $.expr.filters.visible(element) && !$(element).parents().addBack().filter(function() { + return $.css(this, 'visibility') === 'hidden' + }).length + } + + /** + * @private + */ + function focusable(element, isTabIndexNotNaN) { + var map, mapName, img, + nodeName = element.nodeName.toLowerCase() + if ('area' === nodeName) { + map = element.parentNode + mapName = map.name + if (!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') { + return false + } + img = $('img[usemap=#' + mapName + ']')[0] + return !!img && visible(img) + } + return (/input|select|textarea|button|object/.test(nodeName) ? !element.disabled : + 'a' === nodeName ? + element.href || isTabIndexNotNaN : + isTabIndexNotNaN) && + // the element and all of its ancestors must be visible + visible(element) + } + + $.extend($.expr[':'], { + data: $.expr.createPseudo ? $.expr.createPseudo(function(dataName) { + return function(elem) { + return !!$.data(elem, dataName) + } + }) : // support: jQuery <1.8 + function(elem, i, match) { + return !!$.data(elem, match[3]) + }, + + focusable: function(element) { + return focusable(element, !isNaN($.attr(element, 'tabindex'))) + }, + + tabbable: function(element) { + var tabIndex = $.attr(element, 'tabindex'), + isTabIndexNaN = isNaN(tabIndex) + return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN) + } + }) +}(jQuery, window, document)) diff --git a/src/modules/megamenu/megamenu.tmpl b/src/modules/megamenu/megamenu.tmpl new file mode 100644 index 000000000..3cfe58dc8 --- /dev/null +++ b/src/modules/megamenu/megamenu.tmpl @@ -0,0 +1,76 @@ +

    diff --git a/src/modules/navscroll/index.css b/src/modules/navscroll/index.css new file mode 100644 index 000000000..582e8c6ce --- /dev/null +++ b/src/modules/navscroll/index.css @@ -0,0 +1,51 @@ +/** @define Navscroll; weak; */ + +.Navscroll > ul { + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + overflow-x: auto; + text-align: justify; + white-space: nowrap; +} + +.Navscroll > ul > li { + display: inline-block; +} + +/* + * Thanks to http://codepen.io/jordanmoore/pen/pnlAi + */ +.Navscroll--withHint > ul { + background: + linear-gradient(90deg, white 30%, rgba(255, 255, 255, 0)), + linear-gradient(90deg, rgba(255, 255, 255, 0), white 70%) 100% 0, + radial-gradient( + 0 50%, + farthest-side, + rgba(0, 0, 0, 0.2), + rgba(0, 0, 0, 0) + ), + radial-gradient( + 100% 50%, + farthest-side, + rgba(0, 0, 0, 0.2), + rgba(0, 0, 0, 0) + ) 100% 0; + background: + linear-gradient(90deg, white 30%, rgba(255, 255, 255, 0)), + linear-gradient(90deg, rgba(255, 255, 255, 0), white 70%) 100% 0, + radial-gradient( + farthest-side at 0 50%, + rgba(0, 0, 0, 0.2), + rgba(0, 0, 0, 0) + ), + radial-gradient( + farthest-side at 100% 50%, + rgba(0, 0, 0, 0.2), + rgba(0, 0, 0, 0) + ) 100% 0; + background-attachment: local, local, scroll, scroll; + background-color: white; + background-repeat: no-repeat; + background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%; +} diff --git a/src/modules/navscroll/navscroll.tmpl b/src/modules/navscroll/navscroll.tmpl new file mode 100644 index 000000000..03c455052 --- /dev/null +++ b/src/modules/navscroll/navscroll.tmpl @@ -0,0 +1,7 @@ + diff --git a/src/modules/offcanvas/index.css b/src/modules/offcanvas/index.css new file mode 100644 index 000000000..245210aaa --- /dev/null +++ b/src/modules/offcanvas/index.css @@ -0,0 +1,79 @@ +/** @define Offcanvas; */ + +:root { + --Offcanvas-width: 22em; + --Offcanvas-max-width: 80%; +} + +/* postcss-bem-linter: ignore */ +.Offcanvas, +.Offcanvas-content { + max-width: var(--Offcanvas-max-width); + width: var(--Offcanvas-width); +} + +.no-js .Offcanvas:target { + @extend .u-block; +} + +.Offcanvas-toggleContainer { + cursor: pointer; +} + +.Offcanvas:target .Offcanvas-content, +.Offcanvas.is-ready .Offcanvas-content { + @extend .u-zindex-max; + @extend .u-borderShadow-m; + + height: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; + position: fixed; + top: 0; + transform: translateX(0); + transition: transform 200ms ease-out; + will-change: translateX; +} + +.Offcanvas--right:target .Offcanvas-content, +.Offcanvas--right.is-ready .Offcanvas-content { + left: 100%; +} + +.Offcanvas--left:target .Offcanvas-content, +.Offcanvas--left.is-ready .Offcanvas-content { + right: 100%; +} + +/* postcss-bem-linter: ignore */ +.Offcanvas:not(:target) .Offcanvas-content, +.Offcanvas.is-ready[aria-hidden="true"] .Offcanvas-content { + transition: transform 200ms ease-out, visibility 200ms; +} + +/* postcss-bem-linter: ignore */ +.Offcanvas--right:target .Offcanvas-content, +.Offcanvas--right.is-ready[aria-hidden="false"] .Offcanvas-content { + transform: translateX(-100%); +} + +/* postcss-bem-linter: ignore */ +.Offcanvas--left:target .Offcanvas-content, +.Offcanvas--left.is-ready[aria-hidden="false"] .Offcanvas-content { + transform: translateX(100%); +} + +.Offcanvas--modal:target::after, +.Offcanvas--modal.is-active::after { + @extend .u-zindex-50; + + background: black; + content: " "; + display: block; + height: 100%; + left: 0; + opacity: 0.5; + position: fixed; + top: 0; + width: 100%; +} diff --git a/src/modules/offcanvas/index.js b/src/modules/offcanvas/index.js new file mode 100644 index 000000000..1bc5d10cf --- /dev/null +++ b/src/modules/offcanvas/index.js @@ -0,0 +1,95 @@ +import $ from 'jquery' + +import Froffcanvas from 'fr-offcanvas/offcanvas' + +/* eslint-disable no-unused-vars */ + +import stylesheet from 'fr-offcanvas/offcanvas.css' + +/* eslint-enable */ + +const opts = { + // String - panel + panelSelector: '.Offcanvas', + + // String - content + contentSelector: '.Offcanvas-content', + + // String - content + modalSelector: '.Offcanvas--modal', + + // String - trigger + jsSelector: '.js-fr-offcanvas-open', + + // String - Selector for the open button(s) + openSelector: '.js-fr-offcanvas-open', + + // String - Selector for the close button + closeSelector: '.js-fr-offcanvas-close', + + // String - Class name that will be added to the selector when the component has been initialised + readyClass: 'is-ready', + + // String - Class name that will be added to the selector when the panel is visible + activeClass: 'is-active' +} + +/* + * Prevent scroll on body when offcanvas is visible + * (the touchmove handler targets iOS devices) + */ +const _handleModalScroll = () => { + $(opts.contentSelector).on('transitionend', function() { + if (!$(opts.panelSelector).hasClass(opts.activeClass)) { + $(window).off('scroll.offcanvas') + $(document).off('touchmove.offcanvas') + } else { + const _scrollTop = $(window).scrollTop() + $(window).on('scroll.offcanvas', () => $(window).scrollTop(_scrollTop)) + $(document).on('touchmove.offcanvas', () => $(window).scrollTop(_scrollTop)) + } + }) +} + +/* + * FIXME: hack to show / hide the background panel + */ +const _handleModal = (e) => { + if (e && $(opts.panelSelector).hasClass(opts.activeClass) && + !$(e.target).is(opts.contentSelector)) { + // for some odd reason plain jquery click() does not work here + // // so we add that get(0) call + $(opts.closeSelector).get(0).click() + } + // we're using "one" here instead of "bind" because + // otherwise $(opts.closeSelector).click() would trigger + // a click on modal again looping forever + $(opts.modalSelector).one('click', _handleModal) +} + +let _exports = { + Froffcanvas, + opts +} + +$(document).ready(() => { + let _scrollTop = $(window).scrollTop() + + $(opts.openSelector) + .add($(opts.closeSelector)) + .click((e) => { + _scrollTop = $(window).scrollTop() + e.preventDefault() + }) + + $(opts.panelSelector).on('focus', () => { + $(window).scrollTop(_scrollTop) + }) + + _handleModal() + _handleModalScroll() + + _exports.offcanvas = Froffcanvas(opts) +}) + +export default _exports diff --git a/src/modules/offcanvas/offcanvas.config.json b/src/modules/offcanvas/offcanvas.config.json new file mode 100644 index 000000000..3c366291c --- /dev/null +++ b/src/modules/offcanvas/offcanvas.config.json @@ -0,0 +1,6 @@ +{ + "title": "Offcanvas", + "context": { + "showOpenButton": true + } +} diff --git a/src/modules/offcanvas/offcanvas.tmpl b/src/modules/offcanvas/offcanvas.tmpl new file mode 100644 index 000000000..777092b33 --- /dev/null +++ b/src/modules/offcanvas/offcanvas.tmpl @@ -0,0 +1,20 @@ +{% if showOpenButton %} + +{% endif %} + + diff --git a/src/modules/scrolltop/index.css b/src/modules/scrolltop/index.css new file mode 100644 index 000000000..85925996b --- /dev/null +++ b/src/modules/scrolltop/index.css @@ -0,0 +1,31 @@ +/** @define ScrollTop */ + +.ScrollTop { + @extend .u-posFixed; + @extend .u-background-95; + @extend .u-color-white; + @extend .u-borderRadius-circle; + @extend .u-borderShadow-xs; + @extend .u-textCenter; + @extend .u-linkClean; + @extend .u-zindex-max; + @extend .u-text-r-xxs; + + border: 2px solid white; + bottom: 1em; + height: 3em; + right: 1em; + width: 3em; +} + +.ScrollTop-icon { + @extend .u-inlineBlock; + @extend .u-posRelative; + @extend .u-color-white; + @extend .u-textCenter; + @extend .u-text-l; + @extend .u-textWeight-700; + + font-size: 2em; + top: 15%; +} diff --git a/src/modules/scrolltop/index.js b/src/modules/scrolltop/index.js new file mode 100644 index 000000000..5eb4542ed --- /dev/null +++ b/src/modules/scrolltop/index.js @@ -0,0 +1,17 @@ +import $ from 'jquery' +import debounce from 'throttle-debounce/throttle' + +const threshold = 100 + +const _toggleScrolltop = () => { + ($(window).scrollTop() > threshold) ? + $('.js-scrollTop').show() : + $('.js-scrollTop').hide() +} + +$(window).scroll(debounce(500, _toggleScrolltop)) +$(document).ready(_toggleScrolltop) + +export default { + threshold +} diff --git a/src/modules/scrolltop/scrolltop.tmpl b/src/modules/scrolltop/scrolltop.tmpl new file mode 100644 index 000000000..be1a3cb31 --- /dev/null +++ b/src/modules/scrolltop/scrolltop.tmpl @@ -0,0 +1,4 @@ + + + torna all'inizio del contenuto + diff --git a/src/modules/share/index.css b/src/modules/share/index.css new file mode 100644 index 000000000..80b3c51c0 --- /dev/null +++ b/src/modules/share/index.css @@ -0,0 +1,58 @@ +/** @define Share; weak */ + +.Share > ul > li { + @extend .u-background-50; + @extend .u-floatLeft; + @extend .u-textCenter; + @extend .u-color-white; + @extend .u-border-right-xxs; + @extend .u-text-r-l; + height: 1.5em; + width: 1.8em; +} + +.Share-reveal > a > span, +.Share > ul > li > a { + @extend .u-inlineBlock; + @extend .u-alignMiddle; + @extend .u-color-white; + @extend .u-textClean; + @extend .u-posRelative; + @extend .u-layoutCenterVertically; +} + +.Share-reveal { + @extend .u-floatLeft; + @extend .u-background-grey-20; + @extend .u-text-r-l; + cursor: pointer; + height: 1.5em; + line-height: 1.5em; +} + +.Share-revealIcon { + @extend .u-color-white; + @extend .u-floatLeft; + @extend .u-background-50; + @extend .u-textCenter; + height: 100%; + line-height: 1.5em !important; + width: 1.8em; +} + +.Share-revealIcon.is-open { + @extend .u-color-50; + @extend .u-background-grey-20; +} + +.Share-revealText { + @extend .u-color-grey-50; + @extend .u-text-r-l; + @extend .u-textWeight-400; + padding-left: 1em; + padding-right: 1em; +} + +.Share-revealText:hover { + text-decoration: underline; +} diff --git a/src/modules/share/index.js b/src/modules/share/index.js new file mode 100644 index 000000000..4c9e7a7ff --- /dev/null +++ b/src/modules/share/index.js @@ -0,0 +1,20 @@ +import $ from 'jquery' + +const hideClass = 'u-jsHiddenVisually' + +$('.js-Share').click((e) => { + const $el = $(e.currentTarget) + const $share = $el.closest('.Share') + const $buttons = $share.find('ul') + + $buttons + .toggleClass(hideClass) + + $share + .find('.Share-revealText') + .toggleClass(hideClass) + + $share + .find('.Share-revealIcon') + .toggleClass('is-open') +}) diff --git a/src/modules/share/share.tmpl b/src/modules/share/share.tmpl new file mode 100644 index 000000000..aadc65212 --- /dev/null +++ b/src/modules/share/share.tmpl @@ -0,0 +1,15 @@ + diff --git a/src/modules/skiplinks/index.css b/src/modules/skiplinks/index.css new file mode 100644 index 000000000..b8dd45f1d --- /dev/null +++ b/src/modules/skiplinks/index.css @@ -0,0 +1,21 @@ +/** @define Skiplinks; weak */ + +.Skiplinks { + @extend .u-sizeFull; + @extend .u-padding-left-xxl; +} + +.Skiplinks > li { + @extend .u-inlineBlock; + @extend .u-alignMiddle; +} + +.Skiplinks > li > a { + @extend .u-background-white; + @extend .u-padding-top-xs; + @extend .u-padding-bottom-xs; + @extend .u-padding-left-l; + @extend .u-padding-right-l; + @extend .u-textClean; + @extend .u-color-50; +} diff --git a/src/modules/skiplinks/index.js b/src/modules/skiplinks/index.js new file mode 100644 index 000000000..90ab88197 --- /dev/null +++ b/src/modules/skiplinks/index.js @@ -0,0 +1,13 @@ +import Frbypasslinks from 'fr-bypasslinks' + +/* eslint-disable no-unused-vars */ + +import stylesheet from 'fr-bypasslinks/bypasslinks.css' + +/* eslint-enable */ + +const bypassLinks = Frbypasslinks({ + selector: '.js-fr-bypasslinks' +}) + +export default { bypassLinks, Frbypasslinks } diff --git a/src/modules/skiplinks/skiplinks.tmpl b/src/modules/skiplinks/skiplinks.tmpl new file mode 100644 index 000000000..a47139a17 --- /dev/null +++ b/src/modules/skiplinks/skiplinks.tmpl @@ -0,0 +1,4 @@ + diff --git a/src/modules/tooltip/index.css b/src/modules/tooltip/index.css new file mode 100644 index 000000000..eb1d2e691 --- /dev/null +++ b/src/modules/tooltip/index.css @@ -0,0 +1,56 @@ +/** @define Tooltip */ + +:root { + --Tooltip-color: #b4efef; +} + +.Tooltip--styled .Tooltip-tooltip { + @extend .u-padding-all-s; + @extend .u-zindex-max; + @extend .u-borderShadow-xxl; + @extend .u-background-white; + + border: 3px solid var(--Tooltip-color); + left: 50%; + max-width: 40em; + min-height: 60%; + overflow: auto; + position: fixed !important; + top: 50%; + transform: translateX(-50%) translateY(-40%); + width: 60%; +} + +.Tooltip--styled .Tooltip-toggle { + background: var(--Tooltip-color); + cursor: help; +} + +/* .Tooltip--styled .Tooltip-tooltip::after { + border: solid transparent; + border-color: transparent; + border-top-color: var(--Tooltip-color); + border-width: 1em; + bottom: -2em; + content: ""; + height: 0; + left: 50%; + margin-left: -1em; + position: absolute; + width: 0; +} */ + +/* .Tooltip--styled .Tooltip-tooltip::before { + border: solid transparent; + border-color: transparent; + border-top-color: white; + border-width: 0.5em; + bottom: -1em; + content: ""; + height: 0; + left: 50%; + margin-left: -0.5em; + position: absolute; + width: 0; + z-index: 9999; +} */ diff --git a/src/modules/tooltip/index.js b/src/modules/tooltip/index.js new file mode 100644 index 000000000..a649c0f61 --- /dev/null +++ b/src/modules/tooltip/index.js @@ -0,0 +1,26 @@ +import Frtooltip from 'fr-tooltip' + +/* eslint-disable no-unused-vars */ + +import stylesheet from 'fr-tooltip/tooltip.css' + +/* eslint-enable */ + +var tooltip = Frtooltip({ + // String - Container selector, hook for JS init() method + selector: '.js-fr-tooltip', + + // String - Selector to define the tooltip element + tooltipSelector: '.js-fr-tooltip-tooltip', + + // String - Selector to define the toggle element controlling the tooltip + toggleSelector: '.js-fr-tooltip-toggle', + + // String - Prefix for the id applied to each tooltip as a reference for the toggle + tooltipIdPrefix: 'tooltip', + + // String - Class name that will be added to the selector when the component has been initialised + readyClass: 'fr-tooltip--is-ready' +}) + +export default { tooltip, Frtooltip } diff --git a/src/modules/tooltip/tooltip.tmpl b/src/modules/tooltip/tooltip.tmpl new file mode 100644 index 000000000..7ff6f9bc3 --- /dev/null +++ b/src/modules/tooltip/tooltip.tmpl @@ -0,0 +1,13 @@ +
    +

    + {{ __LONG_TEXTS__[0] }} + + + {{ __WORD__[0] }} + + {{ __LONG_TEXTS__[1] }} + + + {{ __TEXTS__[0] }} +

    +
    diff --git a/src/modules/treeview/index.css b/src/modules/treeview/index.css new file mode 100644 index 000000000..3c8aacd65 --- /dev/null +++ b/src/modules/treeview/index.css @@ -0,0 +1,59 @@ +/** @define Treeview; weak; */ + +:root { + --Treeview-link-padding: 0.5em; + --Treeview-link-arrow-width: 0.8em; + --Treeview-link-arrow-up: inline("icons/ita/img/SVG/collapse.svg"); + --Treeview-link-arrow-down: inline("icons/ita/img/SVG/expand.svg"); +} + +.Treeview [aria-expanded] > a { + background-image: var(--Treeview-link-arrow-down); + background-position: right var(--Treeview-link-padding) center; + background-repeat: no-repeat; + background-size: var(--Treeview-link-arrow-width); + padding-right: + calc( + var(--Treeview-link-arrow-width) + (2 * var(--Treeview-link-padding)) + ); +} + +.Treeview [aria-expanded="true"] > a { + background-image: var(--Treeview-link-arrow-up); +} + +.Treeview [aria-hidden="true"] { + display: none; +} + +.Treeview ul li { + border-color: white !important; +} + +/* FIXME: overrides focus unset */ +.Treeview li[tabindex]:focus { + outline: 3px solid #ff8c00 !important; +} + +.Treeview li[aria-expanded=true] > a, +.Treeview li[aria-expanded=true] > a:hover { + @extend .u-background-grey-10; +} + +.Treeview ul ul ul a, +.Treeview ul ul ul a:hover { + @extend .u-color-white; + @extend .u-background-90; +} + +.Treeview ul ul a, +.Treeview ul ul a:hover { + @extend .u-color-95; + @extend .u-background-20; +} + +.Treeview ul a, +.Treeview ul a:hover { + @extend .u-color-90; + @extend .u-background-10; +} diff --git a/src/modules/treeview/index.js b/src/modules/treeview/index.js new file mode 100644 index 000000000..e1fe9bddc --- /dev/null +++ b/src/modules/treeview/index.js @@ -0,0 +1,391 @@ +import $ from 'jquery' + +/* + * TODO: + * - arrow up + * - repack as a frend _component and CSS + * - refactor without jQuery + */ + +/* + * Porting of http://www.oaa-accessibility.org/examplep/treeview1/ + */ +const Frtreeview = function({ + selector: selector = '.js-fr-treeview', + openOnClick: openOnClick = true, + classFocused: classFocused = 'fr-tree-focus', + classParent: classParent = 'fr-tree-parent', + multiselectable: multiselectable = false + // readyClass: readyClass = 'fr-accordion--is-ready', +} = {}) { + + // CONSTANTS + const doc = document + const docEl = doc.documentElement + const _q = (el, ctx = doc) => [].slice.call(ctx.querySelectorAll(el)) + + // SUPPORTS + if (!('querySelector' in doc) || !('addEventListener' in window) || !docEl.classList) return null + + // SETUP + // set treeview element NodeLists + let treeviewContainers = _q(selector) + + const keys = { + tab: 9, + enter: 13, + space: 32, + pageup: 33, + pagedown: 34, + end: 35, + home: 36, + left: 37, + up: 38, + right: 39, + down: 40, + asterisk: 106 + } + + function _collapseAll(treeview) { + treeview.$parents.each(function() { + if ($(this).attr('aria-expanded') == 'false') { + $(this).children('ul').attr('aria-hidden', 'true') + } + }) + treeview.$visibleItems = treeview.$el.find('li:visible') + } + + function _expandGroup(treeview, $item) { + let $group = $item.children('ul') + $group.slideDown(250, () => { + $group.attr('aria-hidden', 'false') + $item.attr('aria-expanded', 'true') + treeview.$visibleItems = treeview.$el.find('li:visible') + }) + } + + function _collapseGroup(treeview, $item) { + let $group = $item.children('ul') + $group.slideUp(250, () => { + $group.attr('aria-hidden', 'true') + $item.attr('aria-expanded', 'false') + treeview.$visibleItems = treeview.$el.find('li:visible') + }) + } + + function _collapseSiblings(treeview, $item) { + $item.closest('ul') + .find('> .' + classParent) + .not($item) + .each((i, el) => { + _collapseGroup(treeview, $(el)) + }) + } + + function _toggleGroup(treeview, $item) { + if (!multiselectable) { + _collapseSiblings(treeview, $item) + } + if ($item.attr('aria-expanded') == 'true') { + _collapseGroup(treeview, $item) + } else { + _expandGroup(treeview, $item) + } + } + + function _updateStyling(treeview, $item) { + treeview.$items.removeClass(classFocused).attr('tabindex', '-1') + $item.addClass(classFocused).attr('tabindex', '0') + } + + function _handleKeyDown(treeview, $item, e) { + let curNdx = treeview.$visibleItems.index($item) + + if ((e.altKey || e.ctrlKey) || + (e.shiftKey && e.keyCode != keys.tab)) { + return true + } + + switch (e.keyCode) { + case keys.tab: + { + treeview.$activeItem = null + $item.removeClass(classFocused) + return true + } + + case keys.home: + { + treeview.$activeItem = treeview.$parents.first() + treeview.$activeItem.focus() + e.stopPropagation() + return false + } + + case keys.end: + { + treeview.$activeItem = treeview.$visibleItems.last() + treeview.$activeItem.focus() + e.stopPropagation() + return false + } + + case keys.enter: + case keys.space: + { + if (!$item.is('.' + classParent)) { + // do nothing + } else { + _toggleGroup(treeview, $item) + } + e.stopPropagation() + return false + } + + case keys.left: + { + if ($item.is('.' + classParent) && $item.attr('aria-expanded') == 'true') { + _collapseGroup(treeview, $item) + } else { + let $itemUL = $item.parent() + let $itemParent = $itemUL.parent() + treeview.$activeItem = $itemParent + treeview.$activeItem.focus() + } + e.stopPropagation() + return false + } + + case keys.right: + { + if (!$item.is('.' + classParent)) { + // do nothing + } else if ($item.attr('aria-expanded') == 'false') { + _expandGroup(treeview, $item) + } else { + treeview.$activeItem = $item.children('ul').children('li').first() + treeview.$activeItem.focus() + } + e.stopPropagation() + return false + } + + case keys.up: + { + if (curNdx > 0) { + let $prev = treeview.$visibleItems.eq(curNdx - 1) + treeview.$activeItem = $prev + $prev.focus() + } + e.stopPropagation() + return false + } + + case keys.down: + { + if (curNdx < treeview.$visibleItems.length - 1) { + let $next = treeview.$visibleItems.eq(curNdx + 1) + treeview.$activeItem = $next + $next.focus() + } + e.stopPropagation() + return false + } + + case keys.asterisk: + { + treeview.$parents.each(function() { + _expandGroup(treeview, $(this)) + }) + e.stopPropagation() + return false + } + + } + return true + } + + function _handleKeyPress(treeview, $item, e) { + if (e.altKey || e.ctrlKey || e.shiftKey) { + // do nothing + return true + } + + switch (e.keyCode) { + case keys.tab: + { + return true + } + case keys.enter: + case keys.home: + case keys.end: + case keys.left: + case keys.right: + case keys.up: + case keys.down: + { + e.stopPropagation() + return false + } + default: + { + let chr = String.fromCharCode(e.which) + let bMatch = false + let itemNdx = treeview.$visibleItems.index($item) + let itemCnt = treeview.$visibleItems.length + let curNdx = itemNdx + 1 + + // check if the active item was the last one on the list + if (curNdx == itemCnt) { + curNdx = 0 + } + + // Iterate through the menu items (starting from the current item and wrapping) until a match is found + // or the loop returns to the current menu item + while (curNdx != itemNdx) { + + let $curItem = treeview.$visibleItems.eq(curNdx) + let titleChr = $curItem.text().charAt(0) + + if ($curItem.is('.' + classParent)) { + titleChr = $curItem.find('span').text().charAt(0) + } + + if (titleChr.toLowerCase() == chr) { + bMatch = true + break + } + + curNdx = curNdx + 1 + + if (curNdx == itemCnt) { + // reached the end of the list, start again at the beginning + curNdx = 0 + } + } + + if (bMatch == true) { + treeview.$activeItem = treeview.$visibleItems.eq(curNdx) + treeview.$activeItem.focus() + } + + e.stopPropagation() + return false + } + } + + return true + } + + function _handleDblClick(treeview, $item, e) { + if (e.altKey || e.ctrlKey || e.shiftKey) { + // do nothing + return true + } + treeview.$activeItem = $item + _updateStyling(treeview, $item) + _toggleGroup(treeview, $item) + e.stopPropagation() + return false + } + + function _handleClick(treeview, $item, e) { + if (e.altKey || e.ctrlKey || e.shiftKey) { + // do nothing + return true + } + treeview.$activeItem = treeview.$el + _updateStyling(treeview, $item) + e.stopPropagation() + return false + } + + function _bindEvents(treeview) { + if (openOnClick) { + treeview.$parents.click(function(e) { + return _handleDblClick(treeview, $(this), e) + }) + } else { + treeview.$parents.click(function(e) { + return _handleDblClick(treeview, $(this), e) + }) + treeview.$items.click(function(e) { + return _handleClick(treeview, $(this), e) + }) + } + + treeview.$items.keydown(function(e) { + return _handleKeyDown(treeview, $(this), e) + }) + + treeview.$items.keypress(function(e) { + return _handleKeyPress(treeview, $(this), e) + }) + + $(document).click(function() { + if (treeview.$activeItem != null) { + treeview.$activeItem.removeClass(classFocused) + treeview.$activeItem = null + } + return true + }) + } + + function destroy() { + /* TODO */ + } + + function _addA11y($el) { + $el.attr('role', 'tree') + + // Put role="treeitem" on every LI + // Put aria-expanded="false" on every LI (if it has no aria-expanded attr) + // Put tabindex="-1" on every LI (if it's not the first one) + // Put class= on every LI that contains an UL + $el.find('li').each(function(i, li) { + const $li = $(li) + $li + .attr('role', 'treeitem') + .attr('tabindex', (0 === i) ? '0' : '-1') + if ($li.find('ul').length !== 0) { + if (!li.hasAttribute('aria-expanded')) { + $li.attr('aria-expanded', 'false') + } + $li.addClass(classParent) + } + }) + // Put role="group" on every contained UL + $el.find('ul').attr('role', 'group') + } + + function init() { + if (treeviewContainers.length) { + treeviewContainers.forEach((treeviewContainer) => { + const $el = $(treeviewContainer) + _addA11y($el) + let treeview = { + $el: $el, + $items: $el.find('li'), + $parents: $el.find('.' + classParent), + $visibleItems: null, + $activeItem: null + } + _collapseAll(treeview) + _bindEvents(treeview) + }) + } + } + + init() + + // REVEAL API + return { + init, + destroy + } + +} + +new Frtreeview() + +export default { Frtreeview } diff --git a/src/modules/treeview/treeview.tmpl b/src/modules/treeview/treeview.tmpl new file mode 100644 index 000000000..8a52c8350 --- /dev/null +++ b/src/modules/treeview/treeview.tmpl @@ -0,0 +1,50 @@ + diff --git a/src/scripts/console.js b/src/scripts/console.js new file mode 100644 index 000000000..7a66feb2b --- /dev/null +++ b/src/scripts/console.js @@ -0,0 +1,22 @@ +// Avoid `console` errors in browsers that lack a console. +(function() { + var method + var noop = function() {} + var methods = [ + 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', + 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', + 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', + 'timeStamp', 'trace', 'warn' + ] + var length = methods.length + var console = (window.console = window.console || {}) + + while (length--) { + method = methods[length] + + // Only stub undefined methods. + if (!console[method]) { + console[method] = noop + } + } +}()) diff --git a/src/scripts/index.js b/src/scripts/index.js new file mode 100644 index 000000000..d02354c79 --- /dev/null +++ b/src/scripts/index.js @@ -0,0 +1,2 @@ +require('./console') +require('./scrollto') diff --git a/src/scripts/scrollto.js b/src/scripts/scrollto.js new file mode 100644 index 000000000..7114a9bed --- /dev/null +++ b/src/scripts/scrollto.js @@ -0,0 +1,13 @@ +import $ from 'jquery' + +$(document).ready(() => { + const $header = $('header') + $('.js-scrollTo').on('click', function(event) { + const offset = $($.attr(this, 'href')).offset() + $('html, body').animate({ + scrollTop: (offset ? offset.top : 0) - + ($header.length ? $header.height() : 0) + }, 250) + event.preventDefault() + }) +}) diff --git a/src/templates/formtpl/_formtpl--search.tmpl b/src/templates/formtpl/_formtpl--search.tmpl new file mode 100644 index 000000000..1c163d233 --- /dev/null +++ b/src/templates/formtpl/_formtpl--search.tmpl @@ -0,0 +1,9 @@ +
    +
    + + + +
    +
    diff --git a/src/templates/formtpl/formtpl--errors.tmpl b/src/templates/formtpl/formtpl--errors.tmpl new file mode 100644 index 000000000..fb890e2f6 --- /dev/null +++ b/src/templates/formtpl/formtpl--errors.tmpl @@ -0,0 +1,26 @@ +
    + +
    +

    + È necessario correggere alcuni errori prima di poter inviare il form +

    +
    + +
    + +
    + +
    +
    + + +

    Messaggio di allerta

    +
    +
    + +
    + diff --git a/src/templates/formtpl/formtpl--filters.tmpl b/src/templates/formtpl/formtpl--filters.tmpl new file mode 100644 index 000000000..4d6cd833b --- /dev/null +++ b/src/templates/formtpl/formtpl--filters.tmpl @@ -0,0 +1,27 @@ +
    + +
    +
    + +
    + + +
    + +
    + + + +
    + +
    +
    + +
    diff --git a/src/templates/formtpl/formtpl.tmpl b/src/templates/formtpl/formtpl.tmpl new file mode 100644 index 000000000..ae73bb9e9 --- /dev/null +++ b/src/templates/formtpl/formtpl.tmpl @@ -0,0 +1,107 @@ +
    +
    +

    Tutti i campi sono richiesti salvo dove espressamente indicato

    +
    + +
    + Informazioni anagrafiche + +
    + + +
    + +
    + + +
    + +
    + Sesso + + +
    + +
    + + + +
    + +
    + +
    + Indirizzo del domicilio + +
    +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + +
    + + +
    + +
    + + +
    +
    +
    + +
    + Altre informazioni + +
    + +

    indica la taglia, non la cardinalità

    + +
    + +
    + Privacy + + +
    + +
    + + +
    +
    + +
    + +
    + + +
    diff --git a/src/templates/layout/_layout--landing.tmpl b/src/templates/layout/_layout--landing.tmpl new file mode 100644 index 000000000..8655494f3 --- /dev/null +++ b/src/templates/layout/_layout--landing.tmpl @@ -0,0 +1,23 @@ +
    +

    Home di sezione

    +
    + + {% for i in [1, 2, 3, 4, 5, 6, 7, 8] %} +
    +
    +

    Area tematica

    +

    + {{ __TEXTS__[i] }} +

    +

    +
    +
    + {% endfor %} + +
    +
    diff --git a/src/templates/layout/_layout--section.tmpl b/src/templates/layout/_layout--section.tmpl new file mode 100644 index 000000000..103bee9aa --- /dev/null +++ b/src/templates/layout/_layout--section.tmpl @@ -0,0 +1,40 @@ +
    +

    + + Esplora contenuti correlati +

    + +
    + {% render '@breadcrumb' %} +
    + +
    +

    + Titolo della sezione +

    +
    +
    +
    +

    + {{ __LONG_TEXTS__[1] }} +

    +

    + {{ __LONG_TEXTS__[2] }} +

    +

    + {{ __LONG_TEXTS__[3] }} +

    +
    +
    +
    +
    + {% render '@share' %} +
    + + torna all'inizio del contenuto +
    +
    +
    +
    diff --git a/src/templates/layout/layout--alt.tmpl b/src/templates/layout/layout--alt.tmpl new file mode 100644 index 000000000..9decd625a --- /dev/null +++ b/src/templates/layout/layout--alt.tmpl @@ -0,0 +1,49 @@ +
    +
    + + {% for i in [1, 2] %} +
    +
    +
    + +
    +
    +

    {{ __WORDS__[1] }}

    +

    {{ __SHORT_TEXTS__[1] }}

    +

    10 Luglio 2016

    +

    {{ __TEXTS__[1] }}

    +
    +
    +
    + +
    +
    +
    + +
    +
    +

    {{ __WORDS__[1] }}

    +

    {{ __SHORT_TEXTS__[2] }}

    +

    10 Luglio 2016

    +

    {{ __TEXTS__[2] }}

    +
    +
    +
    + +
    +
    +
    + +
    +
    +

    {{ __WORDS__[1] }}

    +

    {{ __SHORT_TEXTS__[3] }}

    +

    10 Luglio 2016

    +

    {{ __TEXTS__[3] }}

    +
    +
    +
    + {% endfor %} + +
    +
    diff --git a/src/templates/layout/layout--gallery.tmpl b/src/templates/layout/layout--gallery.tmpl new file mode 100644 index 000000000..3b4ff0cdc --- /dev/null +++ b/src/templates/layout/layout--gallery.tmpl @@ -0,0 +1,14 @@ +
    +
    +
    +

    Gallerie

    +
    +
    + {% for i in [1, 2, 3, 4, 5, 6, 7, 8, 9] %} +
    + {% render '@card--gallery', { text: __SHORT_TEXTS__[i] } %} +
    + {% endfor %} +
    +
    +
    diff --git a/src/templates/layout/layout--grid.tmpl b/src/templates/layout/layout--grid.tmpl new file mode 100644 index 000000000..ec56b54ef --- /dev/null +++ b/src/templates/layout/layout--grid.tmpl @@ -0,0 +1,39 @@ +
    +
    + +
    +
    +

    {{ __WORDS__[1] | capitalize }}

    +
    + +
    + +
    + +
    + +
    +
    + ... +
    +
    + {% render '@tile', { title: __SHORT_TEXTS__[1] } %} +
    +
    +
    + +
    + {% render '@tile', { text: __TEXTS__[2] } %} +
    + + {% for i in [1, 2, 3, 4] %} +
    + {% render '@tile', { text: __TEXTS__[i + 2] } %} +
    + {% endfor %} +
    + +
    +
    diff --git a/src/templates/layout/layout--masonry.tmpl b/src/templates/layout/layout--masonry.tmpl new file mode 100644 index 000000000..a0a709068 --- /dev/null +++ b/src/templates/layout/layout--masonry.tmpl @@ -0,0 +1,50 @@ +{% for i in [1, 2] %} +
    +
    + + {% for i in [1, 2] %} +
    +
    +
    + +
    +
    +

    {{ __WORDS__[1] }}

    +

    {{ __SHORT_TEXTS__[1] }}

    +

    + {{ __TEXTS__[1] }} +

    +
    +
    +
    +
    +
    +
    + +
    +
    +

    {{ __WORDS__[1] }}

    +

    {{ __SHORT_TEXTS__[2] }}

    +

    + {{ __TEXTS__[2] }} +

    +
    +
    +
    +
    +
    +
    + +
    +
    +

    {{ __WORDS__[1] }}

    +

    {{ __SHORT_TEXTS__[3] }}

    +

    {{ __SHORT_TEXTS__[3] }}

    +
    +
    +
    + {% endfor %} + +
    +
    +{% endfor %} diff --git a/src/templates/layout/layout--news.tmpl b/src/templates/layout/layout--news.tmpl new file mode 100644 index 000000000..323797627 --- /dev/null +++ b/src/templates/layout/layout--news.tmpl @@ -0,0 +1,28 @@ +
    + +
    +
    +

    + + La categoria +

    +

    + 12 Dicembre 2012 +

    +
    +
    +

    {{ __WORDS__[1] | capitalize }}

    +

    + {{ __SHORT_TEXTS__[1] | capitalize }} + {{ __SHORT_TEXTS__[2] }} + {{ __SHORT_TEXTS__[3] }} + {{ __SHORT_TEXTS__[4] }} +

    +
    +
    + +
    + ... +
    + +
    diff --git a/src/templates/layout/layout--twitter.tmpl b/src/templates/layout/layout--twitter.tmpl new file mode 100644 index 000000000..0570b7e51 --- /dev/null +++ b/src/templates/layout/layout--twitter.tmpl @@ -0,0 +1,24 @@ +
    +
    + +
    +
    + {% for i in [1, 2, 3] %} +
    + {% render '@tile--twitter', { text: __TEXTS__[i] | truncate(s, 140, false, end='.')} %} +
    + {% endfor %} +
    +
    +
    +
    diff --git a/src/templates/layout/layout.tmpl b/src/templates/layout/layout.tmpl new file mode 100644 index 000000000..adfdef127 --- /dev/null +++ b/src/templates/layout/layout.tmpl @@ -0,0 +1,23 @@ +
    +
    +
    +
    +

    Notizie

    +
    + +
    + + {% for a in [1, 2] %} +
    + {% for b in [1, 2, 3, 4] %} +
    + {% render '@tile' %} +
    + {% endfor %} +
    + {% endfor %} + +
    +
    diff --git a/src/templates/pages/_page--content.tmpl b/src/templates/pages/_page--content.tmpl new file mode 100644 index 000000000..3984a3243 --- /dev/null +++ b/src/templates/pages/_page--content.tmpl @@ -0,0 +1,40 @@ +
    + +
    + {% render '@layout--news' %} +
    + +
    + {% render '@entrypoint' %} +
    + +
    +
    + {% render '@layout--grid' %} +
    +
    + +
    + {% render '@layout--twitter' %} +
    + +
    + {% render '@carousel' %} +
    + +
    +
    + {% render '@leads' %} +
    +
    + +
    +
    + {% render '@footer' %} +
    +
    + + {% render '@scrolltop' %} + {% render '@cookiebar' %} + +
    diff --git a/src/templates/pages/page--landing.tmpl b/src/templates/pages/page--landing.tmpl new file mode 100644 index 000000000..6f8e6b769 --- /dev/null +++ b/src/templates/pages/page--landing.tmpl @@ -0,0 +1,19 @@ +{% render '@header' %} + +
    +
    + {% render '@breadcrumb' %} +
    + + {% render '@layout--landing' %} + +
    +
    + {% render '@footer' %} +
    +
    + + {% render '@scrolltop' %} + {% render '@cookiebar' %} + +
    diff --git a/src/templates/pages/page--megamenu.tmpl b/src/templates/pages/page--megamenu.tmpl new file mode 100644 index 000000000..81a2a9e54 --- /dev/null +++ b/src/templates/pages/page--megamenu.tmpl @@ -0,0 +1,2 @@ +{% render '@header', { menu: true, megamenu: true, clone: true }, true %} +{% render '@page--content' %} diff --git a/src/templates/pages/page--menu.tmpl b/src/templates/pages/page--menu.tmpl new file mode 100644 index 000000000..1914a03aa --- /dev/null +++ b/src/templates/pages/page--menu.tmpl @@ -0,0 +1,2 @@ +{% render '@header', { menu: true, megamenu: false }, true %} +{% render '@page--content' %} diff --git a/src/templates/pages/page--section.tmpl b/src/templates/pages/page--section.tmpl new file mode 100644 index 000000000..ddd36cd57 --- /dev/null +++ b/src/templates/pages/page--section.tmpl @@ -0,0 +1,15 @@ +{% render '@header' %} + +
    + {% render '@layout--section' %} + +
    +
    + {% render '@footer' %} +
    +
    + + {% render '@scrolltop' %} + {% render '@cookiebar' %} + +
    diff --git a/src/templates/pages/page.tmpl b/src/templates/pages/page.tmpl new file mode 100644 index 000000000..7be6c28c9 --- /dev/null +++ b/src/templates/pages/page.tmpl @@ -0,0 +1,2 @@ +{% render '@header' %} +{% render '@page--content' %} diff --git a/src/templates/tile/tile--gallery.tmpl b/src/templates/tile/tile--gallery.tmpl new file mode 100644 index 000000000..42ebb11a6 --- /dev/null +++ b/src/templates/tile/tile--gallery.tmpl @@ -0,0 +1,16 @@ +
    +
    + + + +
    +

    Foto

    +
    + +

    + {{ text | d(__SHORT_TEXTS__[0]) }} +

    +
    +
    +
    +
    diff --git a/src/templates/tile/tile--twitter.tmpl b/src/templates/tile/tile--twitter.tmpl new file mode 100644 index 000000000..1e2040ddc --- /dev/null +++ b/src/templates/tile/tile--twitter.tmpl @@ -0,0 +1,17 @@ +
    +
    +
    +

    {{ title | d(__WORDS__[0]) }}

    +

    10 Luglio 2016

    +
    +

    + {{ text | d(__SHORT_TEXTS__[0]) }} +

    +

    + + + visualizza su twitter + +

    +
    +
    diff --git a/src/templates/tile/tile.tmpl b/src/templates/tile/tile.tmpl new file mode 100644 index 000000000..56cc618ad --- /dev/null +++ b/src/templates/tile/tile.tmpl @@ -0,0 +1,14 @@ +
    +

    + + categoria + 12 Maggio 2016 +

    +

    + {{ title | d(__SHORT_TEXTS__[0]) }} + +

    +

    + {{ text | d(__TEXTS__[0]) }} +

    +
    diff --git a/src/themes/pac/index.css b/src/themes/pac/index.css new file mode 100644 index 000000000..47b30fcd9 --- /dev/null +++ b/src/themes/pac/index.css @@ -0,0 +1,22 @@ +/* + * Only apply to body + * class="it-Pac" + */ +.Pac { + font-family: var(--Pac-font-family-sans); +} + +/** + * Fonts + */ +:root { + --Pac-font-family-sans: Titillium Web, HelveticaNeue-Light, Helvetica Neue Light, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; +} + +/** + * Brand color + */ +:root { + --Color-primary: #0066cc; +} + diff --git a/src/utils/borders/borders--alt.tmpl b/src/utils/borders/borders--alt.tmpl new file mode 100644 index 000000000..278191d67 --- /dev/null +++ b/src/utils/borders/borders--alt.tmpl @@ -0,0 +1,28 @@ +
    +

    u-borderAlt

    +

    + La classe u-borderAlt è utilizzata per evitare il "collasso" dei bordi durante la ridisposizione adattiva dei box della griglia. +

    +

    + È possibile visualizzare l'effetto ridimensionando la viewport. +

    +
    + +
    +
    +
    +

    + u-borderAlt +

    +
    +
    +
    +
    +

    + u-borderAlt +

    +
    +
    +
    + +
    diff --git a/src/utils/borders/borders.tmpl b/src/utils/borders/borders.tmpl new file mode 100644 index 000000000..a1182e5c2 --- /dev/null +++ b/src/utils/borders/borders.tmpl @@ -0,0 +1,9 @@ +{% for pos in ['top', 'right', 'bottom', 'left', 'all'] %} {% for size in ['xxs', 'm', 'l'] %} +
    +
    +

    + u-border-{{ pos }}-{{ size }} +

    +
    +
    +{% endfor %} {% endfor %} diff --git a/src/utils/borders/index.css b/src/utils/borders/index.css new file mode 100644 index 000000000..ebe030242 --- /dev/null +++ b/src/utils/borders/index.css @@ -0,0 +1,41 @@ +/** @define utilities; */ + +:root { + --Border-size-unit: 0.1rem; +} + +.u-border-top-xxs { border-top: var(--Border-size-unit) solid currentColor !important; } +.u-border-right-xxs { border-right: var(--Border-size-unit) solid currentColor !important; } +.u-border-bottom-xxs { border-bottom: var(--Border-size-unit) solid currentColor !important; } +.u-border-left-xxs { border-left: var(--Border-size-unit) solid currentColor !important; } +.u-border-all-xxs { border: var(--Border-size-unit) solid currentColor !important; } + +.u-border-top-m { border-top: calc(10 * var(--Border-size-unit)) solid currentColor !important; } +.u-border-right-m { border-right: calc(10 * var(--Border-size-unit)) solid currentColor !important; } +.u-border-bottom-m { border-bottom: calc(10 * var(--Border-size-unit)) solid currentColor !important; } +.u-border-left-m { border-left: calc(10 * var(--Border-size-unit)) solid currentColor !important; } +.u-border-all-m { border: calc(10 * var(--Border-size-unit)) solid currentColor !important; } + +.u-border-top-l { border-top: calc(15 * var(--Border-size-unit)) solid currentColor !important; } +.u-border-right-l { border-right: calc(15 * var(--Border-size-unit)) solid currentColor !important; } +.u-border-bottom-l { border-bottom: calc(15 * var(--Border-size-unit)) solid currentColor !important; } +.u-border-left-l { border-left: calc(15 * var(--Border-size-unit)) solid currentColor !important; } +.u-border-all-l { border: calc(15 * var(--Border-size-unit)) solid currentColor !important; } + +/* + * Border for responsive cell + * see http://codepen.io/Hawkun/pen/rsIEp + */ +.u-borderAlt { + box-shadow: + 0.1em 0 0 0 currentColor, + 0 0.1em 0 0 currentColor, + 0.1em 0.1em 0 0 currentColor, + 0.1em 0 0 0 currentColor inset, + 0 0.1em 0 0 currentColor inset; + padding: 0.1em; +} + +.u-border-none { + border: none !important; +} diff --git a/src/utils/colors/README.md b/src/utils/colors/README.md new file mode 100644 index 000000000..aacd9b4c7 --- /dev/null +++ b/src/utils/colors/README.md @@ -0,0 +1,9 @@ +In modo simile ai colori di sfondo, +è possibile impostare il colore del testo applicando le classi u-color- equivalenti, +ad esempio + +``` +

    + Magna veniam exercitation est incididunt eu nostrud aute dolore adipisicing ipsum labore deserunt reprehenderit. +

    +``` diff --git a/src/utils/colors/colors.tmpl b/src/utils/colors/colors.tmpl new file mode 100644 index 000000000..ab23294f3 --- /dev/null +++ b/src/utils/colors/colors.tmpl @@ -0,0 +1,42 @@ + +
    + {% for background in ['black', 'white'] %} +
    +
    +

    u-background-{{ background }}

    +
    + {% endfor %} +
    + +
    + +
    + {% for background in ['5', '10', '20', '30', '40', '50', '60', '70', '80', '90', '95'] %} +
    +
    +

    u-background-{{ background }}

    +
    + {% endfor %} +
    + +
    + +
    + {% for background in ['30', '50', '70'] %} +
    +
    +

    u-background-teal-{{ background }}

    +
    + {% endfor %} +
    + +
    + +
    + {% for background in ['10', '20', '30', '40', '50', '60', '80', '90'] %} +
    +
    +

    u-background-grey-{{ background }}

    +
    + {% endfor %} +
    diff --git a/src/utils/colors/index.css b/src/utils/colors/index.css new file mode 100644 index 000000000..72a005ce3 --- /dev/null +++ b/src/utils/colors/index.css @@ -0,0 +1,221 @@ +/** @define utilities */ + +:root { + --Color-black: #000; + --Color-white: #fff; + --Color-grey-10: #f5f5f0; + --Color-grey-20: #eee; + --Color-grey-30: #ddd; + --Color-grey-40: #a5abb0; + --Color-grey-50: #5a6772; + --Color-grey-60: #444e57; + --Color-grey-80: #30373d; + --Color-grey-90: #1c2024; + --Color-teal-30: #00c5ca; + --Color-teal-50: #65dcdf; + --Color-teal-70: #004a4d; + --Color-focus: #ff8c00; +} + +/* + * To be overridden by themes + */ +:root { + --Color-primary: #111; +} + +.u-color-black { + color: var(--Color-black) !important; +} + +.u-background-black { + background-color: var(--Color-black) !important; +} + +.u-color-white { + color: var(--Color-white) !important; +} + +.u-background-white { + background-color: var(--Color-white) !important; +} + +.u-color-grey-10 { + color: var(--Color-grey-10) !important; +} + +.u-background-grey-10 { + background-color: var(--Color-grey-10) !important; +} + +.u-color-grey-20 { + color: var(--Color-grey-20) !important; +} + +.u-background-grey-20 { + background-color: var(--Color-grey-20) !important; +} + +.u-color-grey-30 { + color: var(--Color-grey-30) !important; +} + +.u-background-grey-30 { + background-color: var(--Color-grey-30) !important; +} + +.u-color-grey-40 { + color: var(--Color-grey-40) !important; +} + +.u-background-grey-40 { + background-color: var(--Color-grey-40) !important; +} + +.u-color-grey-50 { + color: var(--Color-grey-50) !important; +} + +.u-background-grey-50 { + background-color: var(--Color-grey-50) !important; +} + +.u-color-grey-60 { + color: var(--Color-grey-60) !important; +} + +.u-background-grey-60 { + background-color: var(--Color-grey-60) !important; +} + +.u-color-grey-80 { + color: var(--Color-grey-80) !important; +} + +.u-background-grey-80 { + background-color: var(--Color-grey-80) !important; +} + +.u-color-grey-90 { + color: var(--Color-grey-90) !important; +} + +.u-background-grey-90 { + background-color: var(--Color-grey-90) !important; +} + +/* Link / buttons */ + +.u-color-teal-30 { + color: var(--Color-teal-30) !important; +} + +.u-background-teal-30 { + background-color: var(--Color-teal-30) !important; +} + +.u-color-teal-50 { + color: var(--Color-teal-50) !important; +} + +.u-background-teal-50 { + background-color: var(--Color-teal-50) !important; +} + +.u-color-teal-70 { + color: var(--Color-teal-70) !important; +} + +.u-background-teal-70 { + background-color: var(--Color-teal-70) !important; +} + +/* Color primary */ + +.u-color-5 { + color: color(var(--Color-primary) l(+50%) s(-50%)) !important; +} + +.u-background-5 { + background-color: color(var(--Color-primary) l(+50%) s(-50%)) !important; +} + +.u-color-10 { + color: color(var(--Color-primary) l(+40%) s(-40%)) !important; +} + +.u-background-10 { + background-color: color(var(--Color-primary) l(+40%) s(-40%)) !important; +} + +.u-color-20 { + color: color(var(--Color-primary) l(+30%) s(-30%)) !important; +} + +.u-background-20 { + background-color: color(var(--Color-primary) l(+30%) s(-30%)) !important; +} + +.u-color-30 { + color: color(var(--Color-primary) l(+20%) s(-20%)) !important; +} + +.u-background-30 { + background-color: color(var(--Color-primary) l(+20%) s(-20%)) !important; +} + +.u-color-40 { + color: color(var(--Color-primary) l(+8%) s(-15%)) !important; +} + +.u-background-40 { + background-color: color(var(--Color-primary) l(+8%) s(-15%)) !important; +} + +.u-color-50 { + color: var(--Color-primary) !important; +} + +.u-background-50 { + background-color: var(--Color-primary) !important; +} + +.u-color-60 { + color: color(var(--Color-primary) l(-5%)) !important; +} + +.u-background-60 { + background-color: color(var(--Color-primary) l(-5%)) !important; +} + +.u-color-70 { + color: color(var(--Color-primary) l(-10%)) !important; +} + +.u-background-70 { + background-color: color(var(--Color-primary) l(-10%)) !important; +} + +.u-color-80 { + color: color(var(--Color-primary) l(-15%)) !important; +} + +.u-background-80 { + background-color: color(var(--Color-primary) l(-15%)) !important; +} + +.u-color-90 { + color: color(var(--Color-primary) l(-20%)) !important; +} + +.u-background-90 { + background-color: color(var(--Color-primary) l(-20%)) !important; +} + +.u-color-95 { + color: color(var(--Color-primary) l(-25%)) !important; +} + +.u-background-95 { + background-color: color(var(--Color-primary) l(-25%)) !important; +} diff --git a/src/utils/corners/corners.tmpl b/src/utils/corners/corners.tmpl new file mode 100644 index 000000000..85c5c377a --- /dev/null +++ b/src/utils/corners/corners.tmpl @@ -0,0 +1,5 @@ +{% for i in ['s', 'm', 'l', 'circle']%} +
    +

    u-borderRadius-{{ i }}

    +
    +{% endfor %} diff --git a/src/utils/corners/index.css b/src/utils/corners/index.css new file mode 100644 index 000000000..bda04cf6d --- /dev/null +++ b/src/utils/corners/index.css @@ -0,0 +1,17 @@ +/** @define utilities; */ + +.u-borderRadius-s { + border-radius: 2px !important; +} + +.u-borderRadius-m { + border-radius: 4px !important; +} + +.u-borderRadius-l { + border-radius: 8px !important; +} + +.u-borderRadius-circle { + border-radius: 50% !important; +} diff --git a/src/utils/display/display-lg.css b/src/utils/display/display-lg.css new file mode 100644 index 000000000..43134c6a7 --- /dev/null +++ b/src/utils/display/display-lg.css @@ -0,0 +1,38 @@ +/** @define utilities; */ + +@media (--lg-viewport) { + .u-lg-block { + display: block !important; + } + + .u-lg-hidden { + display: none !important; + } + + .u-lg-inline { + display: inline !important; + } + + /** + * 1. Fix for Firefox bug: an image styled `max-width:100%` within an + * inline-block will display at its default size, and not limit its width to + * 100% of an ancestral container. + */ + + .u-lg-inlineBlock { + display: inline-block !important; + max-width: 100%; /* 1 */ + } + + .u-lg-table { + display: table !important; + } + + .u-lg-tableCell { + display: table-cell !important; + } + + .u-lg-tableRow { + display: table-row !important; + } +} diff --git a/src/utils/display/display-md.css b/src/utils/display/display-md.css new file mode 100644 index 000000000..6ef047d2f --- /dev/null +++ b/src/utils/display/display-md.css @@ -0,0 +1,38 @@ +/** @define utilities; */ + +@media (--md-viewport) { + .u-md-block { + display: block !important; + } + + .u-md-hidden { + display: none !important; + } + + .u-md-inline { + display: inline !important; + } + + /** + * 1. Fix for Firefox bug: an image styled `max-width:100%` within an + * inline-block will display at its default size, and not limit its width to + * 100% of an ancestral container. + */ + + .u-md-inlineBlock { + display: inline-block !important; + max-width: 100%; /* 1 */ + } + + .u-md-table { + display: table !important; + } + + .u-md-tableCell { + display: table-cell !important; + } + + .u-md-tableRow { + display: table-row !important; + } +} diff --git a/src/utils/display/display-sm.css b/src/utils/display/display-sm.css new file mode 100644 index 000000000..8e32036f7 --- /dev/null +++ b/src/utils/display/display-sm.css @@ -0,0 +1,38 @@ +/** @define utilities; */ + +@media (--sm-viewport) { + .u-sm-block { + display: block !important; + } + + .u-sm-hidden { + display: none !important; + } + + .u-sm-inline { + display: inline !important; + } + + /** + * 1. Fix for Firefox bug: an image styled `max-width:100%` within an + * inline-block will display at its default size, and not limit its width to + * 100% of an ancestral container. + */ + + .u-sm-inlineBlock { + display: inline-block !important; + max-width: 100%; /* 1 */ + } + + .u-sm-table { + display: table !important; + } + + .u-sm-tableCell { + display: table-cell !important; + } + + .u-sm-tableRow { + display: table-row !important; + } +} diff --git a/src/utils/display/index.css b/src/utils/display/index.css new file mode 100644 index 000000000..13ee4b1f3 --- /dev/null +++ b/src/utils/display/index.css @@ -0,0 +1,33 @@ +@import "./display-sm.css"; +@import "./display-md.css"; +@import "./display-lg.css"; + +.u-visibilityHidden { + visibility: hidden !important; +} + +/* postcss-bem-linter: ignore */ +.js .u-jsVisibilityHidden { + visibility: hidden; +} + +/* postcss-bem-linter: ignore */ +.js .u-jsDisplayNone { + display: none; +} + +/* postcss-bem-linter: ignore */ +.js .u-jsHiddenVisually { + @extend .u-hiddenVisually; +} + +/* postcss-bem-linter: ignore */ +.no-js .u-nojsDisplayNone { + display: none; +} + +@media print { + .u-hiddenPrint { + display: none !important; + } +} diff --git a/src/utils/layout/index.css b/src/utils/layout/index.css new file mode 100644 index 000000000..6e10aba99 --- /dev/null +++ b/src/utils/layout/index.css @@ -0,0 +1,117 @@ +/** @define utilities; */ + +:root { + --Layout-container-wide: 144rem; + --Layout-container-wider: 168rem; + --Layout-container-medium: 128rem; + --Layout-gutter: 0.8rem; + --Layout-gutter-wide: 2.4rem; + --Layout-prose-width: 32em; +} + +.u-layout-withGutter { + padding-left: calc(1.5 * var(--Layout-gutter)) !important; + padding-right: calc(1.5 * var(--Layout-gutter)) !important; +} + +@media (--sm-viewport) { + .u-layout-sm-withGutter { + padding-left: calc(2 * var(--Layout-gutter)) !important; + padding-right: calc(2 * var(--Layout-gutter)) !important; + } +} + +@media (--md-viewport) { + .u-layout-md-withGutter { + padding-left: calc(2.5 * var(--Layout-gutter)) !important; + padding-right: calc(2.5 * var(--Layout-gutter)) !important; + } +} + +@media (--lg-viewport) { + .u-layout-lg-withGutter { + padding-left: calc(3 * var(--Layout-gutter)) !important; + padding-right: calc(3 * var(--Layout-gutter)) !important; + } +} + +.u-layout-r-withGutter { + @extend .u-layout-withGutter; + @extend .u-layout-sm-withGutter; + @extend .u-layout-md-withGutter; + @extend .u-layout-lg-withGutter; +} + +.u-layout-constrain { + min-width: 30rem; +} + +.u-layout-wide { + max-width: var(--Layout-container-wide) !important; +} + +.u-layout-wider { + max-width: var(--Layout-container-wider) !important; +} + +.u-layout-medium { + max-width: var(--Layout-container-medium) !important; +} + +.u-layoutCenter { + margin: auto !important; +} + +.u-layoutCenterVertically { + top: 50% !important; + transform: translateY(-50%) !important; +} + +/* postcss-bem-linter: ignore */ +.u-layout-centerContent > * { + margin-left: auto !important; + margin-right: auto !important; +} + +.u-layout-centerLeft { + @extend .u-flex; + @extend .u-flexJustifyCenter; + @extend .u-md-flexJustifyStart; + @extend .u-lg-flexJustifyStart; + @extend .u-md-size1of2; + @extend .u-lg-size1of2; +} + +.u-layout-centerRight { + @extend .u-flex; + @extend .u-flexJustifyCenter; + @extend .u-md-flexJustifyEnd; + @extend .u-lg-flexJustifyEnd; + @extend .u-md-size1of2; + @extend .u-lg-size1of2; +} + +.u-layout-prose { + max-width: var(--Layout-prose-width) !important; +} + +.u-layout-release { + max-width: none !important; +} + +/* + * https://css-tricks.com/full-width-containers-limited-width-parents/ + */ +.u-layout-releaseFull { + left: 50%; + margin-left: -50vw; + margin-right: -50vw; + position: relative; + right: 50%; + width: 100vw; +} + +.u-layout-matchHeight { + @extend .u-flex; + @extend .u-flexAlignSelfStretch; +} diff --git a/src/utils/shadows/index.css b/src/utils/shadows/index.css new file mode 100644 index 000000000..bbf63ed0e --- /dev/null +++ b/src/utils/shadows/index.css @@ -0,0 +1,26 @@ +/** @define utilities; */ + +.u-borderShadow-xxs { + box-shadow: 0 1px 2px 0 rgba(50, 50, 50, 0.35) !important; +} + +.u-borderShadow-xs { + box-shadow: 1px 1px 2px #aaa !important; +} + +.u-borderShadow-m { + box-shadow: 0 8px 24px 0 rgba(50, 50, 50, 0.3) !important; +} + +.u-borderShadow-xxl { + box-shadow: 1px 1px 80px 1px rgba(0, 0, 0, 0.35) !important; +} + +.u-hasScrollHint::after { + background: linear-gradient(to left, currentColor, rgba(0, 0, 0, 0)); + position: absolute; + right: 0; + top: 0; + transition: opacity 0.3s 0s, visibility 0s 0s; + width: 1em; +} diff --git a/src/utils/shadows/shadows.tmpl b/src/utils/shadows/shadows.tmpl new file mode 100644 index 000000000..1d22b7632 --- /dev/null +++ b/src/utils/shadows/shadows.tmpl @@ -0,0 +1,5 @@ +{% for i in ['xxs', 'xs', 'm', 'xxl']%} +
    +

    u-borderShadow-{{ i }}

    +
    +{% endfor %} diff --git a/src/utils/space/fixed.css b/src/utils/space/fixed.css new file mode 100644 index 000000000..8974a7bd2 --- /dev/null +++ b/src/utils/space/fixed.css @@ -0,0 +1,105 @@ +/** @define utilities; */ + +:root { + --Spacing-unit-fixed: 0.4rem; +} + +/* All */ + +.u-padding-all-none { padding: 0 !important; } +.u-padding-all-xxs { padding: var(--Spacing-unit-fixed) !important; } +.u-padding-all-xs { padding: calc(2 * var(--Spacing-unit-fixed)) !important; } +.u-padding-all-s { padding: calc(4 * var(--Spacing-unit-fixed)) !important; } +.u-padding-all-m { padding: calc(5 * var(--Spacing-unit-fixed)) !important; } +.u-padding-all-l { padding: calc(6 * var(--Spacing-unit-fixed)) !important; } +.u-padding-all-xl { padding: calc(8 * var(--Spacing-unit-fixed)) !important; } +.u-padding-all-xxl { padding: calc(10 * var(--Spacing-unit-fixed)) !important; } + +.u-margin-all-none { margin: 0 !important; } +.u-margin-all-xxs { margin: var(--Spacing-unit-fixed) !important; } +.u-margin-all-xs { margin: calc(2 * var(--Spacing-unit-fixed)) !important; } +.u-margin-all-s { margin: calc(4 * var(--Spacing-unit-fixed)) !important; } +.u-margin-all-m { margin: calc(5 * var(--Spacing-unit-fixed)) !important; } +.u-margin-all-l { margin: calc(6 * var(--Spacing-unit-fixed)) !important; } +.u-margin-all-xl { margin: calc(8 * var(--Spacing-unit-fixed)) !important; } +.u-margin-all-xxl { margin: calc(10 * var(--Spacing-unit-fixed)) !important; } + +/* Top */ + +.u-padding-top-none { padding-top: 0 !important; } +.u-padding-top-xxs { padding-top: var(--Spacing-unit-fixed) !important; } +.u-padding-top-xs { padding-top: calc(2 * var(--Spacing-unit-fixed)) !important; } +.u-padding-top-s { padding-top: calc(4 * var(--Spacing-unit-fixed)) !important; } +.u-padding-top-m { padding-top: calc(5 * var(--Spacing-unit-fixed)) !important; } +.u-padding-top-l { padding-top: calc(6 * var(--Spacing-unit-fixed)) !important; } +.u-padding-top-xl { padding-top: calc(8 * var(--Spacing-unit-fixed)) !important; } +.u-padding-top-xxl { padding-top: calc(10 * var(--Spacing-unit-fixed)) !important; } + +.u-margin-top-none { margin-top: 0 !important; } +.u-margin-top-xxs { margin-top: var(--Spacing-unit-fixed) !important; } +.u-margin-top-xs { margin-top: calc(2 * var(--Spacing-unit-fixed)) !important; } +.u-margin-top-s { margin-top: calc(4 * var(--Spacing-unit-fixed)) !important; } +.u-margin-top-m { margin-top: calc(5 * var(--Spacing-unit-fixed)) !important; } +.u-margin-top-l { margin-top: calc(6 * var(--Spacing-unit-fixed)) !important; } +.u-margin-top-xl { margin-top: calc(8 * var(--Spacing-unit-fixed)) !important; } +.u-margin-top-xxl { margin-top: calc(10 * var(--Spacing-unit-fixed)) !important; } + +/* Bottom */ + +.u-padding-bottom-none { padding-bottom: 0 !important; } +.u-padding-bottom-xxs { padding-bottom: var(--Spacing-unit-fixed) !important; } +.u-padding-bottom-xs { padding-bottom: calc(2 * var(--Spacing-unit-fixed)) !important; } +.u-padding-bottom-s { padding-bottom: calc(4 * var(--Spacing-unit-fixed)) !important; } +.u-padding-bottom-m { padding-bottom: calc(5 * var(--Spacing-unit-fixed)) !important; } +.u-padding-bottom-l { padding-bottom: calc(6 * var(--Spacing-unit-fixed)) !important; } +.u-padding-bottom-xl { padding-bottom: calc(8 * var(--Spacing-unit-fixed)) !important; } +.u-padding-bottom-xxl { padding-bottom: calc(10 * var(--Spacing-unit-fixed)) !important; } + +.u-margin-bottom-none { margin-bottom: 0 !important; } +.u-margin-bottom-xxs { margin-bottom: var(--Spacing-unit-fixed) !important; } +.u-margin-bottom-xs { margin-bottom: calc(2 * var(--Spacing-unit-fixed)) !important; } +.u-margin-bottom-s { margin-bottom: calc(4 * var(--Spacing-unit-fixed)) !important; } +.u-margin-bottom-m { margin-bottom: calc(5 * var(--Spacing-unit-fixed)) !important; } +.u-margin-bottom-l { margin-bottom: calc(6 * var(--Spacing-unit-fixed)) !important; } +.u-margin-bottom-xl { margin-bottom: calc(8 * var(--Spacing-unit-fixed)) !important; } +.u-margin-bottom-xxl { margin-bottom: calc(10 * var(--Spacing-unit-fixed)) !important; } + +/* Left */ + +.u-padding-left-none { padding-left: 0 !important; } +.u-padding-left-xxs { padding-left: var(--Spacing-unit-fixed) !important; } +.u-padding-left-xs { padding-left: calc(2 * var(--Spacing-unit-fixed)) !important; } +.u-padding-left-s { padding-left: calc(4 * var(--Spacing-unit-fixed)) !important; } +.u-padding-left-m { padding-left: calc(5 * var(--Spacing-unit-fixed)) !important; } +.u-padding-left-l { padding-left: calc(6 * var(--Spacing-unit-fixed)) !important; } +.u-padding-left-xl { padding-left: calc(8 * var(--Spacing-unit-fixed)) !important; } +.u-padding-left-xxl { padding-left: calc(10 * var(--Spacing-unit-fixed)) !important; } + +.u-margin-left-none { margin-left: 0 !important; } +.u-margin-left-xxs { margin-left: var(--Spacing-unit-fixed) !important; } +.u-margin-left-xs { margin-left: calc(2 * var(--Spacing-unit-fixed)) !important; } +.u-margin-left-s { margin-left: calc(4 * var(--Spacing-unit-fixed)) !important; } +.u-margin-left-m { margin-left: calc(5 * var(--Spacing-unit-fixed)) !important; } +.u-margin-left-l { margin-left: calc(6 * var(--Spacing-unit-fixed)) !important; } +.u-margin-left-xl { margin-left: calc(8 * var(--Spacing-unit-fixed)) !important; } +.u-margin-left-xxl { margin-left: calc(10 * var(--Spacing-unit-fixed)) !important; } + +/* Right */ + +.u-padding-right-none { padding-right: 0 !important; } +.u-padding-right-xxs { padding-right: var(--Spacing-unit-fixed) !important; } +.u-padding-right-xs { padding-right: calc(2 * var(--Spacing-unit-fixed)) !important; } +.u-padding-right-s { padding-right: calc(4 * var(--Spacing-unit-fixed)) !important; } +.u-padding-right-m { padding-right: calc(5 * var(--Spacing-unit-fixed)) !important; } +.u-padding-right-l { padding-right: calc(6 * var(--Spacing-unit-fixed)) !important; } +.u-padding-right-xl { padding-right: calc(8 * var(--Spacing-unit-fixed)) !important; } +.u-padding-right-xxl { padding-right: calc(10 * var(--Spacing-unit-fixed)) !important; } + +.u-margin-right-none { margin-right: 0 !important; } +.u-margin-right-xxs { margin-right: var(--Spacing-unit-fixed) !important; } +.u-margin-right-xs { margin-right: calc(2 * var(--Spacing-unit-fixed)) !important; } +.u-margin-right-s { margin-right: calc(4 * var(--Spacing-unit-fixed)) !important; } +.u-margin-right-m { margin-right: calc(5 * var(--Spacing-unit-fixed)) !important; } +.u-margin-right-l { margin-right: calc(6 * var(--Spacing-unit-fixed)) !important; } +.u-margin-right-xl { margin-right: calc(8 * var(--Spacing-unit-fixed)) !important; } +.u-margin-right-xxl { margin-right: calc(10 * var(--Spacing-unit-fixed)) !important; } diff --git a/src/utils/space/index.css b/src/utils/space/index.css new file mode 100644 index 000000000..408237c5b --- /dev/null +++ b/src/utils/space/index.css @@ -0,0 +1,2 @@ +@import "./fixed.css"; +@import "./relative.css"; diff --git a/src/utils/space/relative.css b/src/utils/space/relative.css new file mode 100644 index 000000000..fd513a815 --- /dev/null +++ b/src/utils/space/relative.css @@ -0,0 +1,38 @@ +/** @define utilities; */ + +/* All */ + +.u-padding-r-all { padding: 1em !important; } +.u-margin-r-all { margin: 1em !important; } + +/* Top */ +.u-padding-r-top { padding-top: 1em !important; } +.u-margin-r-top { margin-top: 1em !important; } + +/* Bottom */ +.u-padding-r-bottom { padding-bottom: 1em !important; } +.u-margin-r-bottom { margin-bottom: 1em !important; } + +/* Left */ +.u-padding-r-left { padding-left: 1em !important; } +.u-margin-r-left { margin-left: 1em !important; } + +/* Right */ +.u-padding-r-right { padding-right: 1em !important; } +.u-margin-r-right { margin-right: 1em !important; } + +/* Font size reset for inner elements */ + +/* postcss-bem-linter: ignore */ +.u-padding-r-all > *, +.u-margin-r-all > *, +.u-padding-r-top > *, +.u-margin-r-top > *, +.u-padding-r-bottom > *, +.u-margin-r-bottom > *, +.u-padding-r-left > *, +.u-margin-r-left > *, +.u-padding-r-right > *, +.u-margin-r-right > * { + font-size: medium; +} diff --git a/src/utils/space/space--responsive.tmpl b/src/utils/space/space--responsive.tmpl new file mode 100644 index 000000000..d39cb1041 --- /dev/null +++ b/src/utils/space/space--responsive.tmpl @@ -0,0 +1,9 @@ +{% for pm in ['padding', 'margin'] %} {% for pos in ['top', 'right', 'bottom', 'left', 'all'] %} {% for size in ['xxs', 'xs', 's', 'm', 'l', 'xl', 'xxl'] %} +
    +
    +

    + u-text-r-{{ size }} u-{{ pm }}-r-{{ pos }} +

    +
    +
    +{% endfor %} {% endfor %} {% endfor %} diff --git a/src/utils/space/space.tmpl b/src/utils/space/space.tmpl new file mode 100644 index 000000000..c813ce489 --- /dev/null +++ b/src/utils/space/space.tmpl @@ -0,0 +1,9 @@ +{% for pm in ['padding', 'margin'] %} {% for pos in ['top', 'right', 'bottom', 'left', 'all'] %} {% for size in ['xxs', 'xs', 's', 'm', 'l', 'xl', 'xxl'] %} +
    +
    +

    + u-{{ pm }}-{{ pos }}-{{ size }} +

    +
    +
    +{% endfor %} {% endfor %} {% endfor %} diff --git a/src/utils/text/index.css b/src/utils/text/index.css new file mode 100644 index 000000000..19c98f063 --- /dev/null +++ b/src/utils/text/index.css @@ -0,0 +1,187 @@ +/** @define utilities */ + +@import "./text.css"; +@import "./text-sm.css"; +@import "./text-md.css"; +@import "./text-lg.css"; +@import "./lineheight.css"; + +:root { + --Text-color-text-primary: #333; + --Text-color-text-secondary: #5a6772; + --Text-preFormatted-font: + Consolas, + "Andale Mono WT", + "Andale Mono", + "Lucida Console", + "Lucida Sans Typewriter", + "DejaVu Sans Mono", + "Bitstream Vera Sans Mono", + "Liberation Mono", + "Nimbus Mono L", + Monaco, + "Courier New", + Courier, + monospace; +} + +.u-textSecondary { + color: var(--Text-color-text-secondary) !important; +} + +/* + * 1. antialiasing firefox per mac + * 2. antialiasing chrome, safari per mac + */ +.u-textSmooth { + -moz-osx-font-smoothing: grayscale !important; /* 1 */ + -webkit-font-smoothing: antialiased !important; /* 2 */ +} + +.u-textClean { + text-decoration: none !important; +} + +.u-textWeight-200 { + font-weight: 200 !important; +} + +.u-textWeight-300 { + font-weight: 300 !important; +} + +.u-textWeight-400 { + font-weight: 400 !important; +} + +.u-textWeight-600 { + font-weight: 600 !important; +} + +.u-textWeight-700 { + font-weight: 700 !important; +} + +.u-textWeight-900 { + font-weight: 900 !important; +} + +.u-textNormal { + font-style: normal !important; +} + +.u-textItalic { + font-style: italic !important; +} + +.u-textPreformatted { + font-family: var(--Text-preFormatted-font) !important; + max-height: 32em; + overflow-x: auto !important; +} + +.u-textPreformatted:hover, +.u-textPreformatted:focus { + max-width: min-content; + width: min-content; +} + +/* + * Responsive font sizing + * ==================================== + */ +.u-text-r-xxl { + @extend .u-text-xxl; + @extend .u-text-sm-xxl; + @extend .u-text-lg-xxl; + @extend .u-text-md-xxl; +} + +.u-text-r-xl { + @extend .u-text-xl; + @extend .u-text-sm-xl; + @extend .u-text-lg-xl; + @extend .u-text-md-xl; +} + +.u-text-r-l { + @extend .u-text-l; + @extend .u-text-sm-l; + @extend .u-text-lg-l; + @extend .u-text-md-l; +} + +.u-text-r-m { + @extend .u-text-m; + @extend .u-text-sm-m; + @extend .u-text-lg-m; + @extend .u-text-md-m; +} + +.u-text-r-s { + @extend .u-text-s; + @extend .u-text-sm-s; + @extend .u-text-lg-s; + @extend .u-text-md-s; +} + +.u-text-r-xs { + @extend .u-text-xs; + @extend .u-text-sm-xs; + @extend .u-text-lg-xs; + @extend .u-text-md-xs; +} + +.u-text-r-xxs { + @extend .u-text-xxs; + @extend .u-text-sm-xxs; + @extend .u-text-lg-xxs; + @extend .u-text-md-xxs; +} + +.u-text-p { + @extend .u-text-r-xs; + @extend .u-lineHeight-xl; +} + +/* + * Heading - set default margins + * ===================================== + */ + +.u-text-h1 { + @extend .u-text-r-xxl; + @extend .u-textWeight-700; + @extend .u-margin-bottom-s; +} + +.u-text-h2 { + @extend .u-text-r-xl; + @extend .u-textWeight-700; + @extend .u-margin-bottom-s; +} + +.u-text-h3 { + @extend .u-text-r-l; + @extend .u-textWeight-700; + @extend .u-margin-bottom-s; +} + +.u-text-h4 { + @extend .u-text-r-m; + @extend .u-textWeight-700; + @extend .u-margin-bottom-s; +} + +.u-text-h5 { + @extend .u-text-r-s; + @extend .u-textWeight-400; + @extend .u-margin-bottom-s; + @extend .u-textSecondary; +} + +.u-text-h6 { + @extend .u-text-r-xs; + @extend .u-textWeight-700; + @extend .u-margin-bottom-s; +} diff --git a/src/utils/text/lineheight.css b/src/utils/text/lineheight.css new file mode 100644 index 000000000..b09efa346 --- /dev/null +++ b/src/utils/text/lineheight.css @@ -0,0 +1,23 @@ +.u-lineHeight-xxs { + line-height: 0.1 !important; +} + +.u-lineHeight-xs { + line-height: 0.5 !important; +} + +.u-lineHeight-s { + line-height: 1 !important; +} + +.u-lineHeight-m { + line-height: 1.2 !important; +} + +.u-lineHeight-l { + line-height: 1.4 !important; +} + +.u-lineHeight-xl { + line-height: 1.55 !important; +} diff --git a/src/utils/text/text-lg.css b/src/utils/text/text-lg.css new file mode 100644 index 000000000..31506f623 --- /dev/null +++ b/src/utils/text/text-lg.css @@ -0,0 +1,34 @@ +/** @define utilities; */ + +@media (--lg-viewport) { + .u-text-lg-xxl { + font-size: 5.4rem !important; + } + + .u-text-lg-xl { + font-size: 4rem !important; + } + + .u-text-lg-l { + font-size: 3.2rem !important; + } + + .u-text-lg-m { + font-size: 2.3rem !important; + letter-spacing: 0.007em !important; + } + + .u-text-lg-s { + font-size: 2.1rem !important; + letter-spacing: 0.005em !important; + } + + .u-text-lg-xs { + font-size: 1.8rem !important; + letter-spacing: 0.01em !important; + } + + .u-text-lg-xxs { + font-size: 1.5rem !important; + } +} diff --git a/src/utils/text/text-md.css b/src/utils/text/text-md.css new file mode 100644 index 000000000..2f46c5803 --- /dev/null +++ b/src/utils/text/text-md.css @@ -0,0 +1,34 @@ +/** @define utilities; */ + +@media (--md-viewport) { + .u-text-md-xxl { + font-size: 4.4rem !important; + } + + .u-text-md-xl { + font-size: 3.6rem !important; + } + + .u-text-md-l { + font-size: 2.8rem !important; + } + + .u-text-md-m { + font-size: 2.1rem !important; + letter-spacing: 0.007em !important; + } + + .u-text-md-s { + font-size: 2.1rem !important; + letter-spacing: 0.005em !important; + } + + .u-text-md-xs { + font-size: 1.8rem !important; + letter-spacing: 0.01em !important; + } + + .u-text-md-xxs { + font-size: 1.5rem !important; + } +} diff --git a/src/utils/text/text-sm.css b/src/utils/text/text-sm.css new file mode 100644 index 000000000..35f016888 --- /dev/null +++ b/src/utils/text/text-sm.css @@ -0,0 +1,35 @@ +/** @define utilities; */ + +@media (--sm-viewport) { + .u-text-sm-xxl { + font-size: 3.2rem !important; + } + + .u-text-sm-xl { + font-size: 3rem !important; + } + + .u-text-sm-l { + font-size: 2.4rem !important; + } + + .u-text-sm-m { + font-size: 2.1rem !important; + letter-spacing: 0.007em !important; + } + + .u-text-sm-s { + font-size: 2rem !important; + letter-spacing: 0.005em !important; + } + + .u-text-sm-xs { + font-size: 1.8rem !important; + letter-spacing: 0.01em !important; + } + + .u-text-sm-xxs { + font-size: 1.5rem !important; + } + +} diff --git a/src/utils/text/text.css b/src/utils/text/text.css new file mode 100644 index 000000000..a2bdcf113 --- /dev/null +++ b/src/utils/text/text.css @@ -0,0 +1,32 @@ +/** @define utilities; */ + +.u-text-xxl { + font-size: 3.2rem !important; +} + +.u-text-xl { + font-size: 2.8rem !important; +} + +.u-text-l { + font-size: 2.2rem !important; +} + +.u-text-m { + font-size: 2rem !important; + letter-spacing: 0.007em !important; +} + +.u-text-s { + font-size: 1.8rem !important; + letter-spacing: 0.005em !important; +} + +.u-text-xs { + font-size: 1.6rem !important; + letter-spacing: 0.01em !important; +} + +.u-text-xxs { + font-size: 1.4rem !important; +} diff --git a/src/utils/text/text.tmpl b/src/utils/text/text.tmpl new file mode 100644 index 000000000..ffd144ddf --- /dev/null +++ b/src/utils/text/text.tmpl @@ -0,0 +1,11 @@ +{% for class in [ 'u-textSmooth', 'u-textClean', 'u-textWeight-200', 'u-textWeight-300', 'u-textWeight-400', 'u-textWeight-600', 'u-textWeight-700', 'u-textWeight-900', 'u-textNormal', 'u-textItalic', 'u-textPreformatted', 'u-text-r-xxl', 'u-text-r-xl', +'u-text-r-l', 'u-text-r-m', 'u-text-r-s', 'u-text-r-xs', 'u-text-r-xxs', 'u-text-p', 'u-text-h1', 'u-text-h2', 'u-text-h3', 'u-text-h4', 'u-text-h5', 'u-text-h6' ] %} + +
    +

    {{ class }}

    +

    + {{ __TEXTS__[1] }} +

    +
    + +{% endfor %} diff --git a/src/utils/zindex/index.css b/src/utils/zindex/index.css new file mode 100644 index 000000000..8ec7852d3 --- /dev/null +++ b/src/utils/zindex/index.css @@ -0,0 +1,25 @@ +/** @define utilities; */ + +.u-zindex-min { + z-index: 1; +} + +.u-zindex-20 { + z-index: 20; +} + +.u-zindex-30 { + z-index: 30; +} + +.u-zindex-40 { + z-index: 40; +} + +.u-zindex-50 { + z-index: 50; +} + +.u-zindex-max { + z-index: 999999; +} diff --git a/src/vendor/jquery.min.js b/src/vendor/jquery.min.js new file mode 100644 index 000000000..0f60b7bd0 --- /dev/null +++ b/src/vendor/jquery.min.js @@ -0,0 +1,5 @@ +/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; + +return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
    a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ha=/^\s+/,ia=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja=/<([\w:]+)/,ka=/\s*$/g,ra={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:k.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},sa=da(y),ta=sa.appendChild(y.createElement("div"));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xa(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Aa(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xa(b).text=a.text,ya(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&&Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,"script"),d.length>0&&za(d,!i&&ua(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement("div")),i=(ja.exec(f)||["",""])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&ha.test(f)&&p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f="table"!==i||ka.test(f)?""!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ua(p,"input"),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),"script"),g&&za(h),c)){e=0;while(f=h[e++])oa.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&za(ua(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,""):void 0;if(!("string"!=typeof a||ma.test(a)||!k.htmlSerialize&&ga.test(a)||!k.leadingWhitespace&&ha.test(a)||ra[(ja.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ia,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&na.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ua(i,"script"),xa),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ua(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f>j;j++)d=g[j],oa.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qa,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),"none"!==c&&c||(Ca=(Ca||m("