diff --git a/.env b/.env
index 0793630..111c908 100644
--- a/.env
+++ b/.env
@@ -1,3 +1,3 @@
REACT_APP_TAB_TITLE=Gepafin
-REACT_APP_API_EXECUTION_ADDRESS=
+REACT_APP_API_EXECUTION_ADDRESS=https://api-dev-gepafin.memento.credit/v1/
REACT_APP_LOGO_FILENAME=logo.svg
\ No newline at end of file
diff --git a/.linguirc b/.linguirc
deleted file mode 100644
index f5143a3..0000000
--- a/.linguirc
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "locales": [
- "en",
- "it"
- ],
- "sourceLocale": "it",
- "catalogs": [
- {
- "path": "src/locales/{locale}/messages",
- "include": [
- "src"
- ]
- }
- ],
- "format": "po"
-}
\ No newline at end of file
diff --git a/.npmrc b/.npmrc
deleted file mode 100644
index bc75b80..0000000
--- a/.npmrc
+++ /dev/null
@@ -1,2 +0,0 @@
-@sinossi:registry=https://git.sinossi.it/api/v4/projects/271/packages/npm/
-//git.sinossi.it/api/v4/projects/271/packages/npm/:_authToken=kdP6WxGtg71-MzJZDRe9
diff --git a/README.md b/README.md
index cea3fca..86475cf 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,7 @@
# GEPAFIN-FE
Gepafin Front End
+
+## Commands
+`npm run start` - start development server
+`npm run build:dev` - make build based on 'dev' env variables
+`npm run build:prod` - make build based on 'prod' env variables
diff --git a/environments/dev/dev.env b/environments/dev/dev.env
index 0793630..111c908 100644
--- a/environments/dev/dev.env
+++ b/environments/dev/dev.env
@@ -1,3 +1,3 @@
REACT_APP_TAB_TITLE=Gepafin
-REACT_APP_API_EXECUTION_ADDRESS=
+REACT_APP_API_EXECUTION_ADDRESS=https://api-dev-gepafin.memento.credit/v1/
REACT_APP_LOGO_FILENAME=logo.svg
\ No newline at end of file
diff --git a/environments/staging/staging.env b/environments/staging/staging.env
deleted file mode 100644
index 0793630..0000000
--- a/environments/staging/staging.env
+++ /dev/null
@@ -1,3 +0,0 @@
-REACT_APP_TAB_TITLE=Gepafin
-REACT_APP_API_EXECUTION_ADDRESS=
-REACT_APP_LOGO_FILENAME=logo.svg
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 33fcc8c..f88904d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -19,6 +19,8 @@
"jwt-decode": "4.0.0",
"klona": "2.0.6",
"luxon": "3.5.0",
+ "primeicons": "^7.0.0",
+ "primereact": "^10.8.2",
"ramda": "0.30.1",
"react": "18.3.1",
"react-dom": "18.3.1",
@@ -31,10 +33,11 @@
"devDependencies": {
"@babel/cli": "7.24.8",
"@babel/core": "7.25.2",
- "@babel/plugin-syntax-jsx": "^7.24.7",
- "@wordpress/babel-plugin-makepot": "^6.5.0",
+ "@babel/plugin-syntax-jsx": "7.24.7",
+ "@wordpress/babel-plugin-makepot": "6.5.0",
"babel-plugin-macros": "3.1.0",
- "sass": "1.77.8"
+ "sass": "1.77.8",
+ "sass-loader": "^16.0.0"
}
},
"node_modules/@alloc/quick-lru": {
@@ -4091,6 +4094,14 @@
"@types/react": "*"
}
},
+ "node_modules/@types/react-transition-group": {
+ "version": "4.4.10",
+ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz",
+ "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
"node_modules/@types/resolve": {
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
@@ -6921,6 +6932,15 @@
"utila": "~0.4"
}
},
+ "node_modules/dom-helpers": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+ "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ }
+ },
"node_modules/dom-serializer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
@@ -14650,6 +14670,33 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
},
+ "node_modules/primeicons": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/primeicons/-/primeicons-7.0.0.tgz",
+ "integrity": "sha512-jK3Et9UzwzTsd6tzl2RmwrVY/b8raJ3QZLzoDACj+oTJ0oX7L9Hy+XnVwgo4QVKlKpnP/Ur13SXV/pVh4LzaDw=="
+ },
+ "node_modules/primereact": {
+ "version": "10.8.2",
+ "resolved": "https://registry.npmjs.org/primereact/-/primereact-10.8.2.tgz",
+ "integrity": "sha512-bf7vktogGh0PmKT9WLDcJQoQNqqFqcAlP2crUqccnlTu63FNnQV82qEYyaFvE12Qd5qhm3EYmpsHjpf6/+olTQ==",
+ "dependencies": {
+ "@types/react-transition-group": "^4.4.1",
+ "react-transition-group": "^4.4.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -15193,6 +15240,43 @@
}
}
},
+ "node_modules/react-scripts/node_modules/sass-loader": {
+ "version": "12.6.0",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
+ "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
+ "dependencies": {
+ "klona": "^2.0.4",
+ "neo-async": "^2.6.2"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "fibers": ">= 3.1.0",
+ "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0",
+ "sass": "^1.3.0",
+ "sass-embedded": "*",
+ "webpack": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "fibers": {
+ "optional": true
+ },
+ "node-sass": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-scripts/node_modules/semver": {
"version": "7.6.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
@@ -15227,6 +15311,21 @@
}
}
},
+ "node_modules/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.6.0",
+ "react-dom": ">=16.6.0"
+ }
+ },
"node_modules/read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -15806,29 +15905,29 @@
}
},
"node_modules/sass-loader": {
- "version": "12.6.0",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
- "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
+ "version": "16.0.0",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.0.tgz",
+ "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==",
+ "dev": true,
"dependencies": {
- "klona": "^2.0.4",
"neo-async": "^2.6.2"
},
"engines": {
- "node": ">= 12.13.0"
+ "node": ">= 18.12.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependencies": {
- "fibers": ">= 3.1.0",
- "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0",
+ "@rspack/core": "0.x || 1.x",
+ "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
"sass": "^1.3.0",
"sass-embedded": "*",
"webpack": "^5.0.0"
},
"peerDependenciesMeta": {
- "fibers": {
+ "@rspack/core": {
"optional": true
},
"node-sass": {
@@ -15839,6 +15938,9 @@
},
"sass-embedded": {
"optional": true
+ },
+ "webpack": {
+ "optional": true
}
}
},
diff --git a/package.json b/package.json
index 840486b..52deb1f 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,8 @@
"jwt-decode": "4.0.0",
"klona": "2.0.6",
"luxon": "3.5.0",
+ "primeicons": "^7.0.0",
+ "primereact": "^10.8.2",
"ramda": "0.30.1",
"react": "18.3.1",
"react-dom": "18.3.1",
@@ -26,10 +28,11 @@
"devDependencies": {
"@babel/cli": "7.24.8",
"@babel/core": "7.25.2",
- "@babel/plugin-syntax-jsx": "^7.24.7",
- "@wordpress/babel-plugin-makepot": "^6.5.0",
+ "@babel/plugin-syntax-jsx": "7.24.7",
+ "@wordpress/babel-plugin-makepot": "6.5.0",
"babel-plugin-macros": "3.1.0",
- "sass": "1.77.8"
+ "sass": "1.77.8",
+ "sass-loader": "16.0.0"
},
"scripts": {
"start": "GENERATE_SOURCEMAP=false react-scripts start",
@@ -37,12 +40,9 @@
"start:prod": "cp environments/prod/* public/loaded-files && rm public/loaded-files/prod.env && cp environments/prod/prod.env .env && react-scripts start",
"build": "react-scripts build",
"build:dev": "cp environments/dev/* public/loaded-files && rm public/loaded-files/dev.env && cp environments/dev/dev.env .env && react-scripts build",
- "build:staging": "cp environments/staging/* public/loaded-files && rm public/loaded-files/staging.env && cp environments/staging/staging.env .env && react-scripts build",
"build:prod": "cp environments/prod/* public/loaded-files && rm public/loaded-files/prod.env && cp environments/prod/prod.env .env && react-scripts build",
"test": "react-scripts test",
- "eject": "react-scripts eject",
- "extract": "lingui extract",
- "compile": "lingui compile"
+ "eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
diff --git a/src/App.js b/src/App.js
index da36446..1063464 100644
--- a/src/App.js
+++ b/src/App.js
@@ -3,6 +3,7 @@ import { BrowserRouter } from 'react-router-dom';
import Routes from './routes';
import { createI18n, setLocaleData } from '@wordpress/i18n';
import { I18nProvider } from '@wordpress/react-i18n';
+import './assets/scss/theme.scss';
const i18n = createI18n({}, 'gepafin');
diff --git a/src/assets/scss/components/appPage.css b/src/assets/scss/components/appPage.css
new file mode 100644
index 0000000..6b3d2e8
--- /dev/null
+++ b/src/assets/scss/components/appPage.css
@@ -0,0 +1,22 @@
+.appPage {
+ display: flex;
+ flex-direction: column;
+
+ h1 {
+ color: var(--primary-color);
+ font-size: 28px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ margin: 28px 0;
+ }
+
+ h2 {
+ color: var(--Black);
+ font-size: 21px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ margin: 24px 0;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/statsBigBadges.css b/src/assets/scss/components/statsBigBadges.css
new file mode 100644
index 0000000..8a60fd9
--- /dev/null
+++ b/src/assets/scss/components/statsBigBadges.css
@@ -0,0 +1,47 @@
+.statsBigBadges {
+ display: flex;
+ flex-direction: column;
+ padding: 24px 0;
+}
+.statsBigBadges__grid {
+ display: grid;
+ align-items: center;
+ grid-template-columns: repeat(auto-fit, minmax(460px, 1fr));
+ gap: 24px;
+}
+
+.statsBigBadges__gridItem {
+ display: flex;
+ justify-content: space-between;
+ padding: 28px;
+ border-radius: 6px;
+ border: 1px solid var(--yellow-500);
+ background: var(--card-full-background-color-2);
+ align-items: center;
+ gap: 48px;
+
+ span {
+ color: #FFF;
+ font-size: 21px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ }
+
+ span:nth-last-of-type(1) {
+ font-size: 28px;
+ }
+
+ &:nth-of-type(2) {
+ border: 1px solid var(--yellow-500);
+ background: var(--card-full-background-color-3);
+ }
+ &:nth-of-type(3) {
+ border: 1px solid var(--yellow-500);
+ background: var(--card-full-background-color-4);
+ }
+ &:nth-of-type(4) {
+ border: 1px solid var(--yellow-500);
+ background: var(--card-full-background-color-1);
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/topBar.css b/src/assets/scss/components/topBar.css
new file mode 100644
index 0000000..4378537
--- /dev/null
+++ b/src/assets/scss/components/topBar.css
@@ -0,0 +1,49 @@
+.topBar {
+ background: var(--horizontalMenu-background)
+}
+.topBar__endContent {
+ display: flex;
+ gap: 24px;
+ align-items: center;
+}
+.topBar__profileBtn {
+ display: flex;
+ gap: 14px;
+}
+.topBar__icon {
+ font-size: 1.3rem;
+ color: var(--text-color-secondary)
+}
+.topBar__menuProfileItem {
+ display: flex;
+ gap: 7px;
+ padding: 0.75rem 1rem;
+
+ .p-avatar {
+ width: 40px;
+ height: 40px;
+ flex: 0 0 auto;
+ }
+
+ .userInfo {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+ width: 120px;
+ }
+
+ span {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+
+ .userName {
+ font-weight: bold;
+ }
+}
+.topBar__menuProfile {
+ .p-menu-separator {
+ border-color: var(--menu-borderColor);
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/_extensions.scss b/src/assets/scss/gepafin/_extensions.scss
new file mode 100644
index 0000000..f5dbaa4
--- /dev/null
+++ b/src/assets/scss/gepafin/_extensions.scss
@@ -0,0 +1 @@
+/* Customizations to the designer theme should be defined here */
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/_fonts.scss b/src/assets/scss/gepafin/_fonts.scss
new file mode 100644
index 0000000..e69de29
diff --git a/src/assets/scss/gepafin/_variables.scss b/src/assets/scss/gepafin/_variables.scss
new file mode 100644
index 0000000..7fe6834
--- /dev/null
+++ b/src/assets/scss/gepafin/_variables.scss
@@ -0,0 +1,87 @@
+$primaryColor: #4A644E;
+$primaryDarkColor: #4A644E;
+$primaryDarkerColor: #4A644E;
+$primaryTextColor: #ffffff;
+
+$chipBg: $primaryColor;
+$chipTextColor: $primaryTextColor;
+$chipBorderRadius: 16px !default;
+$chipFocusBg: $primaryColor;
+$chipFocusTextColor: $primaryTextColor;
+
+$colors: (
+ "blue": #2196F3,
+ "green": #4caf50,
+ "yellow": #FBC02D,
+ "cyan": #00BCD4,
+ "pink": #E91E63,
+ "indigo": #3F51B5,
+ "teal": #009688,
+ "orange": #F57C00,
+ "bluegray": #607D8B,
+ "purple": #9C27B0,
+ "red": #FF4032,
+ "primary": $primaryColor
+);
+
+
+@import './variables/_general.scss';
+@import './variables/_form.scss';
+@import './variables/_button.scss';
+@import './variables/_panel.scss';
+@import './variables/_data.scss';
+@import './variables/_overlay.scss';
+@import './variables/_message.scss';
+@import './variables/_menu.scss';
+@import './variables/_media.scss';
+@import './variables/_misc.scss';
+
+:root {
+ font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ --font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ --surface-a:#ffffff;
+ --surface-b:#f8f9fa;
+ --surface-c:#e9ecef;
+ --surface-d:#dee2e6;
+ --surface-e:#ffffff;
+ --surface-f:#ffffff;
+ --text-color:#4B5563;
+ --text-color-secondary:#6B7280;
+ --primary-color:#4A644E;
+ --primary-color-text:#ffffff;
+ --surface-0: #ffffff;
+ --surface-50: #FAFAFA;
+ --surface-100: #F5F5F5;
+ --surface-200: #EEEEEE;
+ --surface-300: #E0E0E0;
+ --surface-400: #BDBDBD;
+ --surface-500: #9E9E9E;
+ --surface-600: #757575;
+ --surface-700: #616161;
+ --surface-800: #424242;
+ --surface-900: #212121;
+ --gray-50: #FAFAFA;
+ --gray-100: #F5F5F5;
+ --gray-200: #EEEEEE;
+ --gray-300: #E0E0E0;
+ --gray-400: #BDBDBD;
+ --gray-500: #9E9E9E;
+ --gray-600: #757575;
+ --gray-700: #616161;
+ --gray-800: #424242;
+ --gray-900: #212121;
+ --content-padding:#{$panelContentPadding};
+ --inline-spacing:#{$inlineSpacing};
+ --border-radius:#{$borderRadius};
+ --surface-ground:#EFF3F8;
+ --surface-section:#ffffff;
+ --surface-card:#ffffff;
+ --surface-overlay:#ffffff;
+ --surface-border:#DFE7EF;
+ --surface-hover:#F6F9FC;
+ --focus-ring: #{$focusShadow};
+ --maskbg: #{$maskBg};
+ --highlight-bg: #{$highlightBg};
+ --highlight-text-color: #{$highlightTextColor};
+ color-scheme: light;
+}
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/gepafin-theme.scss b/src/assets/scss/gepafin/gepafin-theme.scss
new file mode 100644
index 0000000..0f56e7e
--- /dev/null
+++ b/src/assets/scss/gepafin/gepafin-theme.scss
@@ -0,0 +1,4 @@
+@import './_variables.scss';
+@import './_fonts.scss';
+@import '../theme-base/_components.scss';
+@import './_extensions.scss';
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/css/main.css b/src/assets/scss/gepafin/sassdoc/assets/css/main.css
new file mode 100644
index 0000000..c8fe8e7
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/css/main.css
@@ -0,0 +1 @@
+.container:after,.header:after,.searchbar:after{content:"";display:table;clear:both}.visually-hidden{width:1px;height:1px;position:absolute;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.sidebar__title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}code[class*='language-'],pre[class*='language-']{color:black;text-shadow:0 1px white;font-family:Consolas, Monaco, 'Andale Mono', monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*='language-']::-moz-selection,pre[class*='language-'] ::-moz-selection,code[class*='language-']::-moz-selection,code[class*='language-'] ::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*='language-']::selection,pre[class*='language-'] ::selection,code[class*='language-']::selection,code[class*='language-'] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*='language-'],pre[class*='language-']{text-shadow:none}}pre[class*='language-']{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*='language-'],pre[class*='language-']{background:white}:not(pre)>code[class*='language-']{padding:.1em;border-radius:.3em}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:slategray}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol{color:#905}.token.selector,.token.attr-name,.token.string,.token.builtin{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#a67f59;background:rgba(255,255,255,0.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.regex,.token.important{color:#e90}.token.important{font-weight:bold}.token.entity{cursor:help}html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,*::after,*::before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{font:1em/1.35 "Open Sans","Helvetica Neue Light","Helvetica Neue","Helvetica","Arial",sans-serif;overflow:auto;margin:0}a{transition:0.15s;text-decoration:none;color:#dd5a6f}a:hover,a:hover code{color:#333}table p{margin:0 0 .5rem}:not(pre)>code{color:#dd5a6f;white-space:nowrap;font-weight:normal}@media (max-width: 800px){table,tbody,tr,td,th{display:block}thead{width:1px;height:1px;position:absolute;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}tr{padding-bottom:1em;margin-bottom:1em;border-bottom:2px solid #ddd}td::before,th::before{content:attr(data-label) ": ";text-transform:capitalize;font-weight:bold}td p,th p{display:inline}}.layout-toggle{display:none}@media (min-width: 801px){.layout-toggle{position:absolute;top:8px;left:20px;font-size:2em;cursor:pointer;color:white;display:block}}@media (min-width: 801px){.sidebar-closed .sidebar{-webkit-transform:translateX(-280px);-ms-transform:translateX(-280px);transform:translateX(-280px)}.sidebar-closed .main{padding-left:0}.sidebar-closed .header{left:0}}.list-unstyled{padding-left:0;list-style:none;line-height:1.5;margin-top:0;margin-bottom:1.5rem}.list-inline li{display:inline-block}.container{max-width:100%;width:1170px;margin:0 auto;padding:0 2rem}.relative{position:relative}.clear{clear:both}.header{position:fixed;top:0;right:0;left:280px;box-shadow:0 2px 5px rgba(0,0,0,0.26);padding:1em 0;background:#dd5a6f;color:#e0e0e0;z-index:4000}@media (max-width: 800px){.header{left:0}}@media (min-width: 801px){.header{transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1)}}.header__title{font-weight:500;text-align:center;margin:0 0 0.5em 0}.header__title a{color:#e0e0e0}@media (min-width: 801px){.header__title{float:left;font-size:1em;margin-top:.25em;margin-bottom:0}}.searchbar{display:inline-block;float:right}@media (max-width: 800px){.searchbar{display:block;float:none}}.searchbar__form{float:right;position:relative}@media (max-width: 800px){.searchbar__form{float:none}}@media (min-width: 801px){.searchbar__form{min-width:15em}}.searchbar__field{border:none;padding:0.5em;font-size:1em;margin:0;width:100%;box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0}.searchbar__suggestions{position:absolute;top:100%;right:0;left:0;box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0;background:white;padding:0;margin:0;list-style:none;z-index:2}.searchbar__suggestions:empty{display:none}.searchbar__suggestions .selected{background:#ddd}.searchbar__suggestions li{border-bottom:1px solid #e0e0e0}.searchbar__suggestions li:last-of-type{border:none}.searchbar__suggestions a{display:block;padding:0.5em;font-size:0.9em}.searchbar__suggestions a:hover,.searchbar__suggestions a:active,.searchbar__suggestions a:focus{background:#e0e0e0}.searchbar__suggestions code{margin-right:.5em}@media (min-width: 801px){.sidebar{position:fixed;top:0;bottom:0;left:0;overflow:auto;box-shadow:1px 0 1.5px rgba(0,0,0,0.12);width:280px;z-index:2;border-right:1px solid #e0e0e0;transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1)}}@media (max-width: 800px){.sidebar{margin-top:4em}}.sidebar__annotation{color:#5c4863}.sidebar__item{font-size:0.9em}.sidebar__item a{padding:0.5em 4.5em;display:block;text-decoration:none;color:#333}.sidebar__item:hover,.sidebar__item:active,.sidebar__item:focus{background:#e0e0e0}.sidebar__item.is-collapsed+*{display:none}.sidebar__item--heading{padding:1em 1.5em}.sidebar__item--heading a{font-weight:bold}.sidebar__item--sub-heading{padding:0.5em 2.5em}.sidebar__item--sub-heading a{color:#888}.sidebar__item--heading,.sidebar__item--sub-heading{position:relative}.sidebar__item--heading:after,.sidebar__item--sub-heading:after{position:absolute;top:50%;right:2em;content:'\25BC';margin-top:-0.5em;color:#ddd;font-size:0.7em}.sidebar__item--heading.is-collapsed:after,.sidebar__item--sub-heading.is-collapsed:after{content:'\25B6'}.sidebar__item--heading a,.sidebar__item--sub-heading a{padding:0;display:inline}.sidebar__description{color:#e0e0e0;padding-right:2em}.sidebar__header{border-bottom:1px solid #e0e0e0}.sidebar__title{font-size:1em;margin:0;padding:1.45em}.btn-toggle{background:#EFEFEF;border:none;border-bottom:1px solid #e0e0e0;display:block;padding:1em;width:100%;cursor:pointer;color:#999;font-weight:bold;margin:0;transition:0.15s ease-out}.btn-toggle:hover,.btn-toggle:active,.btn-toggle:focus{background:#DFDFDF}.main{background:#f9f9f9;position:relative}@media (min-width: 801px){.main{transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1);padding-left:280px;padding-top:4em;min-height:45em}}.main__section{margin-top:5em;border-top:5px solid rgba(92,72,99,0.2)}.header+.main__section{margin-top:0;border-top:none}.main__heading,.main__heading--secondary{padding:1em 0;margin-top:0}@media (min-width: 801px){.main__heading,.main__heading--secondary{padding:2em 0 0}}.main__heading{color:#5c4863;font-size:3.5em;text-align:center;border-bottom:5px solid rgba(92,72,99,0.2);padding-bottom:.5em;margin-bottom:1em;background:rgba(92,72,99,0.1)}.main__heading--secondary{font-size:3em;color:#dd5a6f;text-transform:uppercase;font-weight:bold;padding-top:0;margin-bottom:-3rem;position:relative}.main__heading--secondary .container{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.main__heading--secondary::before{content:'';position:absolute;left:0;right:0;bottom:0.15em;height:0.2em;background-color:#dd5a6f}.main__description{margin-bottom:1.5rem}.footer{background:#e0e0e0;padding:1em 0}.footer .container{position:relative}.footer__project-info{float:left}.footer__watermark{position:absolute;right:0;top:-0.7em}.footer__watermark img{display:block;max-width:7em}.project-info__name,.project-info__version,.project-info__license{display:inline-block}.project-info__version,.project-info__license{color:#555}.project-info__license{text-indent:-0.25em}.main__section{margin-bottom:4.5rem}.item__heading{color:#333;margin:4.5rem 0 1.5rem 0;position:relative;font-size:2em;font-weight:300;float:left}.item__name{color:#dd5a6f}.item__example{margin-bottom:1.5rem}.item__example,.item__code{box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0;word-wrap:break-word;line-height:1.42}.item__code{padding-right:7em;clear:both;cursor:pointer}.item__code--togglable::after{position:absolute;right:0;bottom:-2.5em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;color:#c4c4c4;font-size:0.8em;transition:0.2s ease-out}.item__code--togglable:hover::after,.item__code--togglable:active::after,.item__code--togglable:focus::after{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.item__code--togglable[data-current-state='expanded']::after{content:'Click to collapse.'}.item__code--togglable[data-current-state='collapsed']::after{content:'Click to expand.'}.example__description{padding:1em;background:#EFEFEF}.example__description p{margin:0}.example__code[class*='language-']{margin:0}.item__anchor{font-size:0.6em;color:#eeafb9}@media (min-width: 801px){.item__anchor{position:absolute;right:101%;bottom:.25em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0}.item:hover .item__anchor{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}}.item__deprecated{display:inline-block;overflow:hidden;margin-top:5.5em;margin-left:1em}.item__deprecated strong{float:left;color:#c00;text-transform:uppercase}.item__deprecated p{float:left;margin:0;padding-left:0.5em}.item__type{color:#ddd;text-transform:capitalize;font-size:0.75em}.item__alias,.item__aliased{color:#ddd;font-size:0.8em}.item__sub-heading{color:#333;margin-top:0;margin-bottom:1.5rem;font-size:1.2em}.item__parameters{width:100%;margin-bottom:1em;border-collapse:collapse}.item__parameters thead th{vertical-align:bottom;border-bottom:2px solid #ddd;border-top:none;text-align:left;color:#707070}.item__parameters tbody th{text-align:left}.item__parameters td,.item__parameters th{padding:0.5em 0.5em 0.5em 0;vertical-align:top}@media (min-width: 801px){tbody>.item__parameter:first-of-type>td{border-top:none}.item__parameters td,.item__parameters th{border-top:1px solid #ddd}}.item__access{text-transform:capitalize;color:#5c4863;font-size:0.8em}.item__since{float:right;padding-top:0.9em;color:#c4c4c4;margin-bottom:1em}.item__source-link{position:absolute;top:1px;right:1px;background:white;padding:1em;z-index:2;color:#c4c4c4}.item__cross-type{color:#4d4d4d;font-family:'Consolas', 'Monaco', 'Andale Mono', monospace;font-size:0.8em}.item__description{margin-bottom:1.5rem}li.item__description{margin-bottom:0}.item__description--inline>*{display:inline-block;margin:0}.item__code-wrapper{position:relative;clear:both;margin-bottom:1.5rem}.color-preview--inline{padding:2px 4px;border:1px solid rgba(0,0,0,0.1);border-radius:3px}.color-preview--block{width:2em;height:2em;position:absolute;top:140%;right:0;top:calc(100% + 20px);border:1px solid rgba(0,0,0,0.1);border-radius:3px}
diff --git a/src/assets/scss/gepafin/sassdoc/assets/images/favicon.png b/src/assets/scss/gepafin/sassdoc/assets/images/favicon.png
new file mode 100644
index 0000000..585fb53
Binary files /dev/null and b/src/assets/scss/gepafin/sassdoc/assets/images/favicon.png differ
diff --git a/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_compact.svg b/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_compact.svg
new file mode 100644
index 0000000..0f590c9
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_compact.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_inline.svg b/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_inline.svg
new file mode 100644
index 0000000..68b0103
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_inline.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_compact.svg b/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_compact.svg
new file mode 100644
index 0000000..7f9ef80
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_compact.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_inline.svg b/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_inline.svg
new file mode 100644
index 0000000..120ffd2
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_inline.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/js/main.js b/src/assets/scss/gepafin/sassdoc/assets/js/main.js
new file mode 100644
index 0000000..015842a
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/js/main.js
@@ -0,0 +1,56 @@
+/* global document */
+
+(function ($, global) {
+ 'use strict';
+
+ // Constructor
+ var App = function (conf) {
+ this.conf = $.extend({
+ // Search module
+ search: new global.Search(),
+
+ // Sidebar module
+ sidebar: new global.Sidebar(),
+
+ // Initialisation
+ init: true
+ }, conf || {});
+
+ // Launch the module
+ if (this.conf.init !== false) {
+ this.initialize();
+ }
+ };
+
+ // Initialisation method
+ App.prototype.initialize = function () {
+ this.codePreview();
+ };
+
+ // Toggle code preview collapsed/expanded modes
+ App.prototype.codePreview = function () {
+ var $item;
+ var $code;
+ var switchTo;
+
+ $('.item__code--togglable').on('click', function () {
+ $item = $(this);
+ $code = $item.find('code');
+ switchTo = $item.attr('data-current-state') === 'expanded' ? 'collapsed' : 'expanded';
+
+ $item.attr('data-current-state', switchTo);
+ $code.html($item.attr('data-' + switchTo));
+ Prism.highlightElement($code[0]);
+ });
+ };
+
+ global.App = App;
+}(window.jQuery, window));
+
+(function ($, global) {
+
+ $(document).ready(function () {
+ var app = new global.App();
+ });
+
+}(window.jQuery, window));
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/js/main.min.js b/src/assets/scss/gepafin/sassdoc/assets/js/main.min.js
new file mode 100644
index 0000000..b81f9d4
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/js/main.min.js
@@ -0,0 +1 @@
+!function(t){function e(t,n){this.list=t,this.options=n=n||{};var i,o,s;for(i=0,keys=["sort","includeScore","shouldSort"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=s in n?n[s]:e.defaultOptions[s];for(i=0,keys=["searchFn","sortFn","keys","getFn"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=n[s]||e.defaultOptions[s]}var n=function(t,e){if(e=e||{},this.options=e,this.options.location=e.location||n.defaultOptions.location,this.options.distance="distance"in e?e.distance:n.defaultOptions.distance,this.options.threshold="threshold"in e?e.threshold:n.defaultOptions.threshold,this.options.maxPatternLength=e.maxPatternLength||n.defaultOptions.maxPatternLength,this.pattern=e.caseSensitive?t:t.toLowerCase(),this.patternLen=t.length,this.patternLen>this.options.maxPatternLength)throw new Error("Pattern length is too long");this.matchmask=1<i;)this._bitapScore(e,l+o)<=u?i=o:d=o,o=Math.floor((d-i)/2+i);for(d=o,s=Math.max(1,l-o+1),r=Math.min(l+o,c)+this.patternLen,a=Array(r+2),a[r+1]=(1<=s;n--)if(p=this.patternAlphabet[t.charAt(n-1)],a[n]=0===e?(a[n+1]<<1|1)&p:(a[n+1]<<1|1)&p|((h[n+1]|h[n])<<1|1)|h[n+1],a[n]&this.matchmask&&(g=this._bitapScore(e,n-1),u>=g)){if(u=g,f=n-1,m.push(f),!(f>l))break;s=Math.max(1,2*l-f)}if(this._bitapScore(e+1,l)>u)break;h=a}return{isMatch:f>=0,score:g}};var i={deepValue:function(t,e){for(var n=0,e=e.split("."),i=e.length;i>n;n++){if(!t)return null;t=t[e[n]]}return t}};e.defaultOptions={id:null,caseSensitive:!1,includeScore:!1,shouldSort:!0,searchFn:n,sortFn:function(t,e){return t.score-e.score},getFn:i.deepValue,keys:[]},e.prototype.search=function(t){var e,n,o,s,r,a=new this.options.searchFn(t,this.options),h=this.list,p=h.length,c=this.options,l=this.options.keys,u=l.length,f=[],d={},g=[],m=function(t,e,n){void 0!==t&&null!==t&&"string"==typeof t&&(s=a.search(t),s.isMatch&&(r=d[n],r?r.score=Math.min(r.score,s.score):(d[n]={item:e,score:s.score},f.push(d[n]))))};if("string"==typeof h[0])for(var e=0;p>e;e++)m(h[e],e,e);else for(var e=0;p>e;e++)for(o=h[e],n=0;u>n;n++)m(this.options.getFn(o,l[n]),o,e);c.shouldSort&&f.sort(c.sortFn);for(var y=c.includeScore?function(t){return f[t]}:function(t){return f[t].item},L=c.id?function(t){return i.deepValue(y(t),c.id)}:function(t){return y(t)},e=0,v=f.length;v>e;e++)g.push(L(e));return g},"object"==typeof exports?module.exports=e:"function"==typeof define&&define.amd?define(function(){return e}):t.Fuse=e}(this);(function($,global){var Sidebar=function(conf){this.conf=$.extend({collapsedClass:"is-collapsed",storageKey:"_sassdoc_sidebar_index",indexAttribute:"data-slug",toggleBtn:".js-btn-toggle",init:true},conf||{});if(this.conf.init===true){this.initialize()}};Sidebar.prototype.initialize=function(){this.conf.nodes=$("["+this.conf.indexAttribute+"]");this.load();this.updateDOM();this.bind();this.loadToggle()};Sidebar.prototype.loadToggle=function(){$("",{"class":"layout-toggle",html:"×","data-alt":"→"}).appendTo($(".header"));$(".layout-toggle").on("click",function(){var $this=$(this);var alt;$("body").toggleClass("sidebar-closed");alt=$this.html();$this.html($this.data("alt"));$this.data("alt",alt)})};Sidebar.prototype.load=function(){var index="localStorage"in global?global.localStorage.getItem(this.conf.storageKey):null;this.index=index?JSON.parse(index):this.buildIndex()};Sidebar.prototype.buildIndex=function(){var index={};var $item;this.conf.nodes.each($.proxy(function(index,item){$item=$(item);index[$item.attr(this.conf.indexAttribute)]=!$item.hasClass(this.conf.collapsedClass)},this));return index};Sidebar.prototype.updateDOM=function(){var item;for(item in this.index){if(this.index[item]===false){$("["+this.conf.indexAttribute+'="'+item+'"]').addClass(this.conf.collapsedClass)}}};Sidebar.prototype.save=function(){if(!("localStorage"in global)){return}global.localStorage.setItem(this.conf.storageKey,JSON.stringify(this.index))};Sidebar.prototype.bind=function(){var $item,slug,fn,text;var collapsed=false;global.onbeforeunload=$.proxy(function(){this.save()},this);$(this.conf.toggleBtn).on("click",$.proxy(function(event){$node=$(event.target);text=$node.attr("data-alt");$node.attr("data-alt",$node.text());$node.text(text);fn=collapsed===true?"removeClass":"addClass";this.conf.nodes.each($.proxy(function(index,item){$item=$(item);slug=$item.attr(this.conf.indexAttribute);this.index[slug]=collapsed;$("["+this.conf.indexAttribute+'="'+slug+'"]')[fn](this.conf.collapsedClass)},this));collapsed=!collapsed;this.save()},this));this.conf.nodes.on("click",$.proxy(function(event){$item=$(event.target);slug=$item.attr(this.conf.indexAttribute);this.index[slug]=!this.index[slug];$item.toggleClass(this.conf.collapsedClass)},this))};global.Sidebar=Sidebar})(window.jQuery,window);(function($,global){var Search=function(conf){this.conf=$.extend({search:{items:".sassdoc__item",input:"#js-search-input",form:"#js-search",suggestionsWrapper:"#js-search-suggestions"},fuse:{keys:["name"],threshold:.3},init:true},conf||{});if(this.conf.init===true){this.initialize()}};Search.prototype.initialize=function(){this.index=new Fuse($.map($(this.conf.search.items),function(item){var $item=$(item);return{group:$item.data("group"),name:$item.data("name"),type:$item.data("type"),node:$item}}),this.conf.fuse);this.initializeSearch()};Search.prototype.fillSuggestions=function(items){var searchSuggestions=$(this.conf.search.suggestionsWrapper);searchSuggestions.html("");var suggestions=$.map(items.slice(0,10),function(item){var $li=$("",{"data-group":item.group,"data-type":item.type,"data-name":item.name,html:''+item.type.slice(0,3)+" "+item.name+""});searchSuggestions.append($li);return $li});return suggestions};Search.prototype.search=function(term){return this.fillSuggestions(this.index.search(term))};Search.prototype.initializeSearch=function(){var searchForm=$(this.conf.search.form);var searchInput=$(this.conf.search.input);var searchSuggestions=$(this.conf.search.suggestionsWrapper);var currentSelection=-1;var suggestions=[];var selected;var self=this;searchSuggestions.on("click",function(e){var target=$(event.target);if(target.nodeName==="A"){searchInput.val(target.parent().data("name"));suggestions=self.fillSuggestions([])}});searchForm.on("keyup",function(e){e.preventDefault();if(e.keyCode===13){if(selected){suggestions=self.fillSuggestions([]);searchInput.val(selected.data("name"));window.location=selected.children().first().attr("href")}e.stopPropagation()}if(e.keyCode===40){currentSelection=(currentSelection+1)%suggestions.length}if(e.keyCode===38){currentSelection=currentSelection-1;if(currentSelection<0){currentSelection=suggestions.length-1}}if(suggestions[currentSelection]){if(selected){selected.removeClass("selected")}selected=suggestions[currentSelection];selected.addClass("selected")}});searchInput.on("keyup",function(e){if(e.keyCode!==40&&e.keyCode!==38){currentSelection=-1;suggestions=self.search($(this).val())}else{e.preventDefault()}}).on("search",function(){suggestions=self.search($(this).val())})};global.Search=Search})(window.jQuery,window);(function($,global){"use strict";var App=function(conf){this.conf=$.extend({search:new global.Search,sidebar:new global.Sidebar,init:true},conf||{});if(this.conf.init!==false){this.initialize()}};App.prototype.initialize=function(){this.codePreview()};App.prototype.codePreview=function(){var $item;var $code;var switchTo;$(".item__code--togglable").on("click",function(){$item=$(this);$code=$item.find("code");switchTo=$item.attr("data-current-state")==="expanded"?"collapsed":"expanded";$item.attr("data-current-state",switchTo);$code.html($item.attr("data-"+switchTo));Prism.highlightElement($code[0])})};global.App=App})(window.jQuery,window);(function($,global){$(document).ready(function(){var app=new global.App})})(window.jQuery,window);var self=typeof window!="undefined"?window:{},Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content)):t.util.type(e)==="Array"?e.map(t.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(p instanceof i)continue;a.lastIndex=0;var d=a.exec(p);if(d){l&&(c=d[1].length);var v=d.index-1+c,d=d[0].slice(c),m=d.length,g=v+m,y=p.slice(0,v+1),b=p.slice(g+1),w=[h,1];y&&w.push(y);var E=new i(u,f?t.tokenize(d,f):d);w.push(E);b&&w.push(b);Array.prototype.splice.apply(s,w)}}}return s},hooks:{all:{},add:function(e,n){var r=t.hooks.all;r[e]=r[e]||[];r[e].push(n)},run:function(e,n){var r=t.hooks.all[e];if(!r||!r.length)return;for(var i=0,s;s=r[i++];)s(n)}}},n=t.Token=function(e,t){this.type=e;this.content=t};n.stringify=function(e,r,i){if(typeof e=="string")return e;if(Object.prototype.toString.call(e)=="[object Array]")return e.map(function(t){return n.stringify(t,r,e)}).join("");var s={type:e.type,content:n.stringify(e.content,r,i),tag:"span",classes:["token",e.type],attributes:{},language:r,parent:i};s.type=="comment"&&(s.attributes.spellcheck="true");t.hooks.run("wrap",s);var o="";for(var u in s.attributes)o+=u+'="'+(s.attributes[u]||"")+'"';return"<"+s.tag+' class="'+s.classes.join(" ")+'" '+o+">"+s.content+""+s.tag+">"};if(!self.document){if(!self.addEventListener)return self.Prism;self.addEventListener("message",function(e){var n=JSON.parse(e.data),r=n.language,i=n.code;self.postMessage(JSON.stringify(t.tokenize(i,t.languages[r])));self.close()},!1);return self.Prism}var r=document.getElementsByTagName("script");r=r[r.length-1];if(r){t.filename=r.src;document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)}return self.Prism}();typeof module!="undefined"&&module.exports&&(module.exports=Prism);Prism.languages.markup={comment://g,prolog:/<\?.+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/\?[\da-z]{1,8};/gi};Prism.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&/,"&"))});Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*{))/gi,inside:{punctuation:/[;:]/g}},url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/g,property:/(\b|\B)[\w-]+(?=\s*:)/gi,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,punctuation:/[\{\};:]/g,"function":/[-a-z0-9]+(?=\()/gi};Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/