diff --git a/.gitignore b/.gitignore index 58fc58e82d..365bcc03a3 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,6 @@ yarn.lock .elasticbeanstalk/* !.elasticbeanstalk/*.cfg.yml !.elasticbeanstalk/*.global.yml + +# webstorm fake webpack for path intellisense +webpack.webstorm.config diff --git a/website/client/config/storybook/config.js b/website/client/config/storybook/config.js index 7398ca4a8a..827fb94455 100644 --- a/website/client/config/storybook/config.js +++ b/website/client/config/storybook/config.js @@ -1,6 +1,37 @@ /* eslint-disable import/no-extraneous-dependencies */ import { configure } from '@storybook/vue'; import '../../src/assets/scss/index.scss'; +import '../../src/assets/css/sprites.css'; + +import '../../src/assets/css/sprites/spritesmith-main-0.css'; +import '../../src/assets/css/sprites/spritesmith-main-1.css'; +import '../../src/assets/css/sprites/spritesmith-main-2.css'; +import '../../src/assets/css/sprites/spritesmith-main-3.css'; +import '../../src/assets/css/sprites/spritesmith-main-4.css'; +import '../../src/assets/css/sprites/spritesmith-main-5.css'; +import '../../src/assets/css/sprites/spritesmith-main-6.css'; +import '../../src/assets/css/sprites/spritesmith-main-7.css'; +import '../../src/assets/css/sprites/spritesmith-main-8.css'; +import '../../src/assets/css/sprites/spritesmith-main-9.css'; +import '../../src/assets/css/sprites/spritesmith-main-10.css'; +import '../../src/assets/css/sprites/spritesmith-main-11.css'; +import '../../src/assets/css/sprites/spritesmith-main-12.css'; +import '../../src/assets/css/sprites/spritesmith-main-13.css'; +import '../../src/assets/css/sprites/spritesmith-main-14.css'; +import '../../src/assets/css/sprites/spritesmith-main-15.css'; +import '../../src/assets/css/sprites/spritesmith-main-16.css'; +import '../../src/assets/css/sprites/spritesmith-main-17.css'; +import '../../src/assets/css/sprites/spritesmith-main-18.css'; +import '../../src/assets/css/sprites/spritesmith-main-19.css'; +import '../../src/assets/css/sprites/spritesmith-main-20.css'; +import '../../src/assets/css/sprites/spritesmith-main-21.css'; +import '../../src/assets/css/sprites/spritesmith-main-22.css'; +import '../../src/assets/css/sprites/spritesmith-main-23.css'; +import '../../src/assets/css/sprites/spritesmith-main-24.css'; +import '../../src/assets/css/sprites/spritesmith-main-25.css'; +import '../../src/assets/css/sprites/spritesmith-main-26.css'; +import Vue from 'vue'; +import StoreModule from '@/libs/store'; const req = require.context('../../src', true, /.stories.js$/); @@ -8,4 +39,6 @@ function loadStories () { req.keys().forEach(filename => req(filename)); } +Vue.use(StoreModule); + configure(loadStories, module); diff --git a/website/client/config/storybook/mock.data.js b/website/client/config/storybook/mock.data.js new file mode 100644 index 0000000000..543793e84d --- /dev/null +++ b/website/client/config/storybook/mock.data.js @@ -0,0 +1,75 @@ +export const userStyles = { + contributor: { + admin: true, + level: 9, + text: '', + }, + items: { + gear: { + equipped: { + armor: 'armor_special_2', + head: 'head_special_2', + shield: 'shield_special_goldenknight', + headAccessory: 'headAccessory_base_0', + eyewear: 'eyewear_base_0', + weapon: 'weapon_special_1', + back: 'back_base_0', + }, + costume: { + armor: 'armor_special_fallRogue', + head: 'head_special_fallRogue', + shield: 'shield_armoire_shieldOfDiamonds', + body: 'body_mystery_201706', + eyewear: 'eyewear_special_blackHalfMoon', + back: 'back_base_0', + headAccessory: 'headAccessory_special_wolfEars', + weapon: 'weapon_armoire_lamplighter', + }, + }, + }, + preferences: { + hair: { + color: 'black', base: 0, bangs: 3, beard: 0, mustache: 0, flower: 0, + }, + tasks: { groupByChallenge: false, confirmScoreNotes: false }, + size: 'broad', + skin: 'wolf', + shirt: 'zombie', + chair: 'none', + sleep: true, + disableClasses: false, + background: 'midnight_castle', + costume: true, + }, + stats: { + buffs: { + str: 0, + int: 0, + per: 0, + con: 0, + stealth: 0, + streaks: false, + snowball: false, + spookySparkles: false, + shinySeed: false, + seafoam: false, + }, + training: { + int: 0, per: 0, str: 0, con: 0, + }, + hp: 50, + mp: 158, + exp: 227, + gp: 464.31937261345155, + lvl: 17, + class: 'rogue', + points: 17, + str: 0, + con: 0, + int: 0, + per: 0, + toNextLevel: 380, + maxHealth: 50, + maxMP: 158, + }, +}; diff --git a/website/client/package-lock.json b/website/client/package-lock.json index de83759922..24f9f538a1 100644 --- a/website/client/package-lock.json +++ b/website/client/package-lock.json @@ -11845,6 +11845,11 @@ "sha.js": "^2.4.8" } }, + "perfect-scrollbar": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.4.0.tgz", + "integrity": "sha512-/2Sk/khljhdrsamjJYS5NjrH+GKEHEwh7zFSiYyxROyYKagkE4kSn2zDQDRTOMo8mpT2jikxx6yI1dG7lNP/hw==" + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -12090,6 +12095,17 @@ "postcss": "^7.0.0" } }, + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, "postcss-load-config": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", @@ -13101,6 +13117,21 @@ "lodash": "^4.0.1" } }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -15461,6 +15492,16 @@ "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==" }, + "vue2-perfect-scrollbar": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/vue2-perfect-scrollbar/-/vue2-perfect-scrollbar-1.2.4.tgz", + "integrity": "sha512-RI4+OEKHQm5H+cWq0kaK8OxUB11NdSUQZ4yagD00eDRf9pd5SWo9B9J9K2z82nORM2IMw0RssxBXXUf09Ck20g==", + "requires": { + "cssnano": "^4.1.3", + "perfect-scrollbar": "^1.4.0", + "postcss-import": "^12.0.0" + } + }, "vuedraggable": { "version": "2.23.2", "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.23.2.tgz", diff --git a/website/client/package.json b/website/client/package.json index 3ed130c2fe..2fe64b3945 100644 --- a/website/client/package.json +++ b/website/client/package.json @@ -58,6 +58,7 @@ "vue-mugen-scroll": "^0.2.6", "vue-router": "^3.0.6", "vue-template-compiler": "^2.6.11", + "vue2-perfect-scrollbar": "^1.2.1", "vuedraggable": "^2.23.1", "vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker.git#5d237615463a84a23dd6f3f77c6ab577d68593ec", "webpack": "^4.41.5" diff --git a/website/client/src/app.vue b/website/client/src/app.vue index 5bc2056a52..e77925225e 100644 --- a/website/client/src/app.vue +++ b/website/client/src/app.vue @@ -28,7 +28,10 @@