cozy-bar 18.0.0 → 18.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,18 +17,12 @@ var _cozyDeviceHelper = require("cozy-device-helper");
17
17
 
18
18
  var _cozyIntent = require("cozy-intent");
19
19
 
20
- var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
21
-
22
20
  var _IconCozyHome = _interopRequireDefault(require("./IconCozyHome"));
23
21
 
24
22
  var ButtonCozyHome = function ButtonCozyHome(_ref) {
25
23
  var homeHref = _ref.homeHref,
26
24
  isInvertedTheme = _ref.isInvertedTheme;
27
25
  var webviewIntent = (0, _cozyIntent.useWebviewIntent)();
28
-
29
- var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
30
- isMobile = _useBreakpoints.isMobile;
31
-
32
26
  if ((0, _cozyDeviceHelper.isFlagshipApp)() || (0, _cozyFlags.default)('flagship.debug')) return /*#__PURE__*/_react.default.createElement("a", {
33
27
  onClick: function onClick() {
34
28
  webviewIntent.call('backToHome');
@@ -37,7 +31,6 @@ var ButtonCozyHome = function ButtonCozyHome(_ref) {
37
31
  "data-testid": "buttonCozyHome"
38
32
  }, /*#__PURE__*/_react.default.createElement(_IconCozyHome.default, {
39
33
  className: "coz-nav-apps-btns-home-svg",
40
- isMobile: isMobile,
41
34
  isInvertedTheme: isInvertedTheme
42
35
  }));
43
36
 
@@ -47,7 +40,6 @@ var ButtonCozyHome = function ButtonCozyHome(_ref) {
47
40
  className: "coz-nav-apps-btns-home"
48
41
  }, /*#__PURE__*/_react.default.createElement(_IconCozyHome.default, {
49
42
  className: "coz-nav-apps-btns-home-svg",
50
- isMobile: isMobile,
51
43
  isInvertedTheme: isInvertedTheme
52
44
  }));
53
45
  }
@@ -56,7 +48,6 @@ var ButtonCozyHome = function ButtonCozyHome(_ref) {
56
48
  className: "coz-nav-apps-btns-home"
57
49
  }, /*#__PURE__*/_react.default.createElement(_IconCozyHome.default, {
58
50
  className: "coz-nav-apps-btns-home-svg",
59
- isMobile: isMobile,
60
51
  isInvertedTheme: isInvertedTheme
61
52
  }));
62
53
  };
@@ -19,6 +19,8 @@ var _stack = _interopRequireDefault(require("../../lib/stack"));
19
19
 
20
20
  var _isTwakeTheme = require("cozy-ui/transpiled/react/helpers/isTwakeTheme");
21
21
 
22
+ var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
23
+
22
24
  var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
23
25
 
24
26
  var _TwakeWorkplace = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/TwakeWorkplace"));
@@ -45,9 +47,11 @@ function SvgIconCozyHome(props) {
45
47
 
46
48
  var IconCozyHome = function IconCozyHome(_ref) {
47
49
  var className = _ref.className,
48
- isMobile = _ref.isMobile,
49
50
  isInvertedTheme = _ref.isInvertedTheme;
50
51
 
52
+ var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
53
+ isMobile = _useBreakpoints.isMobile;
54
+
51
55
  if ((0, _isTwakeTheme.isTwakeTheme)()) {
52
56
  return /*#__PURE__*/_react.default.createElement(_Icon.default, {
53
57
  icon: _TwakeWorkplace.default,
@@ -15,6 +15,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
16
  var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
17
17
 
18
+ var _applications = require("cozy-client/dist/models/applications");
19
+
18
20
  var _AppItem = _interopRequireDefault(require("./components/AppItem"));
19
21
 
20
22
  var _AppItemPlaceholder = _interopRequireDefault(require("./components/AppItemPlaceholder"));
@@ -43,8 +45,6 @@ var AppsMenuContent = function AppsMenuContent(_ref) {
43
45
  var _useI18n = (0, _useI18n2.default)(),
44
46
  t = _useI18n.t;
45
47
 
46
- var translateAppWithLocales = translateApp(t);
47
-
48
48
  if (!isFetchingApps && (!apps || !apps.length)) {
49
49
  return /*#__PURE__*/_react.default.createElement(_Typography.default, {
50
50
  className: "u-mh-half",
@@ -67,7 +67,7 @@ var AppsMenuContent = function AppsMenuContent(_ref) {
67
67
  var homeSlug = homeApp && homeApp.slug;
68
68
  var displayedApps = apps.filter(function (app) {
69
69
  return app.slug !== homeSlug;
70
- }).sort(sorter(translateAppWithLocales));
70
+ }).sort(sorter(_applications.getAppDisplayName));
71
71
  return /*#__PURE__*/_react.default.createElement("div", {
72
72
  className: styles['apps-menu-grid']
73
73
  }, displayedApps.map(function (app, index) {
@@ -90,18 +90,6 @@ AppsMenuContent.propTypes = {
90
90
  className: _propTypes.default.string
91
91
  };
92
92
 
93
- var translateApp = function translateApp(t) {
94
- return function (app) {
95
- var namePrefix = app.namePrefix ? t("".concat(app.slug, ".namePrefix"), {
96
- _: app.namePrefix
97
- }) : null;
98
- var name = t("".concat(app.slug, ".name"), {
99
- _: app.name
100
- });
101
- return namePrefix ? "".concat(namePrefix, " ").concat(name) : "".concat(name);
102
- };
103
- };
104
-
105
93
  var mapStateToProps = function mapStateToProps(state) {
106
94
  return {
107
95
  isFetchingApps: (0, _reducers.isFetchingApps)(state),
@@ -11,9 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _react = _interopRequireDefault(require("react"));
13
13
 
14
- var _get = _interopRequireDefault(require("lodash/get"));
15
-
16
- var _cozyClient = require("cozy-client");
14
+ var _applications = require("cozy-client/dist/models/applications");
17
15
 
18
16
  var _Buttons = _interopRequireDefault(require("cozy-ui/transpiled/react/Buttons"));
19
17
 
@@ -34,13 +32,10 @@ var styles = {
34
32
  "apps-menu-grid-item-wrapper": "apps-menu-grid-item-wrapper",
35
33
  "apps-menu-grid-item": "apps-menu-grid-item"
36
34
  };
37
- var getAppDisplayName = (0, _get.default)(_cozyClient.models, 'applications.getAppDisplayName', function (app) {
38
- return app.namePrefix && app.namePrefix.toLowerCase() !== 'cozy' ? "".concat(app.namePrefix, " ").concat(app.name) : app.name;
39
- });
40
35
 
41
36
  var AppItem = function AppItem(_ref) {
42
37
  var app = _ref.app;
43
- var appName = getAppDisplayName(app);
38
+ var appName = (0, _applications.getAppDisplayName)(app);
44
39
  return /*#__PURE__*/_react.default.createElement(_AppLinker.default, {
45
40
  href: app.href || '',
46
41
  app: app
@@ -33,6 +33,7 @@ var AppsMenu = function AppsMenu() {
33
33
  isOpen = _useState2[0],
34
34
  setOpen = _useState2[1];
35
35
 
36
+ var containerRef = (0, _react.useRef)();
36
37
  var buttonRef = (0, _react.useRef)();
37
38
 
38
39
  var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
@@ -42,22 +43,23 @@ var AppsMenu = function AppsMenu() {
42
43
  setOpen(!isOpen);
43
44
  };
44
45
 
45
- return /*#__PURE__*/_react.default.createElement("nav", null, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
46
+ return /*#__PURE__*/_react.default.createElement("nav", {
47
+ ref: containerRef
48
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
46
49
  ref: buttonRef,
47
50
  onClick: toggleMenu,
48
51
  className: "u-p-half"
49
52
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
50
53
  icon: _Mosaic.default,
51
54
  size: "18"
52
- })), isMobile ? /*#__PURE__*/_react.default.createElement(_CozyDialogs.Dialog, {
55
+ })), isMobile ? /*#__PURE__*/_react.default.createElement(_CozyDialogs.ConfirmDialog, {
53
56
  open: isOpen,
54
- size: "small",
55
57
  onClose: toggleMenu,
56
58
  content: /*#__PURE__*/_react.default.createElement(_AppsMenuContent.default, null)
57
59
  }) : /*#__PURE__*/_react.default.createElement(_Menu.default, {
58
60
  open: isOpen,
59
61
  anchorEl: buttonRef.current,
60
- container: buttonRef.current,
62
+ container: containerRef.current,
61
63
  getContentAnchorEl: null,
62
64
  onClose: toggleMenu,
63
65
  anchorOrigin: {
@@ -65,7 +67,8 @@ var AppsMenu = function AppsMenu() {
65
67
  horizontal: 'left'
66
68
  },
67
69
  transformOrigin: {
68
- vertical: -10
70
+ vertical: -10,
71
+ horizontal: 0
69
72
  }
70
73
  }, /*#__PURE__*/_react.default.createElement(_AppsMenuContent.default, null)));
71
74
  };
@@ -19,6 +19,10 @@ var _reactRedux = require("react-redux");
19
19
 
20
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
21
21
 
22
+ var _Grid = _interopRequireDefault(require("cozy-ui/transpiled/react/Grid"));
23
+
24
+ var _Divider = _interopRequireDefault(require("cozy-ui/transpiled/react/Divider"));
25
+
22
26
  var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
23
27
 
24
28
  var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
@@ -162,10 +166,16 @@ var Bar = function Bar(_ref) {
162
166
  });
163
167
  }
164
168
 
165
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ButtonCozyHome.ButtonCozyHome, {
169
+ return /*#__PURE__*/_react.default.createElement(_Grid.default, {
170
+ container: true,
171
+ alignItems: "center",
172
+ className: "u-w-auto"
173
+ }, /*#__PURE__*/_react.default.createElement(_ButtonCozyHome.ButtonCozyHome, {
166
174
  homeHref: homeHref
167
- }), /*#__PURE__*/_react.default.createElement("span", {
168
- className: "coz-nav-apps-btns-sep u-mr-half"
175
+ }), /*#__PURE__*/_react.default.createElement(_Divider.default, {
176
+ orientation: "vertical",
177
+ className: "u-mr-half",
178
+ flexItem: true
169
179
  }), /*#__PURE__*/_react.default.createElement(_AppTitle.default, {
170
180
  slug: appSlug
171
181
  }));
@@ -194,9 +204,14 @@ var Bar = function Bar(_ref) {
194
204
  };
195
205
 
196
206
  var renderTwakeRight = function renderTwakeRight() {
197
- // Special case because search on Drive still rely on old search UI
198
- // that modifies the cozy-bar
199
- // Can be removed when https://github.com/cozy/cozy-drive/pull/3320 is merged
207
+ // Special case because search on Drive on mobile still rely
208
+ // on old search UI that is injected in the cozy-bar and
209
+ // not in a modal as the new search UI
210
+ // So we need to hide these menu buttons when old search UI
211
+ // is injected in the cozy-bar
212
+ // When https://github.com/cozy/cozy-drive/pull/3320 will be merged
213
+ // Drive will rely on cozy-bar embedded search and we will be able
214
+ // to remove this special case
200
215
  if (appSlug === 'drive' && isMobile && barSearch) return null;
201
216
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_HelpLink.default, null), /*#__PURE__*/_react.default.createElement(_AppsMenu.default, null), /*#__PURE__*/_react.default.createElement(_UserMenu.default, {
202
217
  onLogOut: onLogOut
@@ -76,6 +76,14 @@ var UserMenuContent = function UserMenuContent(_ref) {
76
76
  humanDiskQuota = _makeDiskInfos.humanDiskQuota,
77
77
  humanDiskUsage = _makeDiskInfos.humanDiskUsage;
78
78
 
79
+ var profileLink = (0, _helpers.getSettingsLink)({
80
+ client: client,
81
+ hash: 'profile'
82
+ });
83
+ var storageLink = (0, _helpers.getSettingsLink)({
84
+ client: client,
85
+ hash: 'storage'
86
+ });
79
87
  return /*#__PURE__*/_react.default.createElement("div", {
80
88
  className: (0, _classnames.default)(styles['user-menu-content'], 'u-flex u-flex-column')
81
89
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -98,11 +106,8 @@ var UserMenuContent = function UserMenuContent(_ref) {
98
106
  }, /*#__PURE__*/_react.default.createElement(_ListItem.default, {
99
107
  button: true,
100
108
  size: "small",
101
- onClick: function onClick() {
102
- return (0, _helpers.openProfileLink)({
103
- client: client
104
- });
105
- }
109
+ component: "a",
110
+ href: profileLink
106
111
  }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
107
112
  icon: _FromUser.default
108
113
  })), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
@@ -117,11 +122,8 @@ var UserMenuContent = function UserMenuContent(_ref) {
117
122
  })), /*#__PURE__*/_react.default.createElement(_ListItem.default, {
118
123
  button: true,
119
124
  size: "small",
120
- onClick: function onClick() {
121
- return (0, _helpers.openStorageLink)({
122
- client: client
123
- });
124
- }
125
+ component: "a",
126
+ href: storageLink
125
127
  }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
126
128
  icon: _Cloud.default
127
129
  })), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
@@ -11,14 +11,14 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _cozyClient = require("cozy-client");
13
13
 
14
+ var _contact = require("cozy-client/dist/models/contact");
15
+
14
16
  var _Avatar = _interopRequireDefault(require("cozy-ui/transpiled/react/Avatar"));
15
17
 
16
18
  var _Skeleton = _interopRequireDefault(require("cozy-ui/transpiled/react/Skeleton"));
17
19
 
18
20
  var _queries = require("../../../lib/queries");
19
21
 
20
- var getInitials = _cozyClient.models.contact.getInitials;
21
-
22
22
  var AvatarMyself = function AvatarMyself(_ref) {
23
23
  var className = _ref.className,
24
24
  _ref$size = _ref.size,
@@ -40,7 +40,7 @@ var AvatarMyself = function AvatarMyself(_ref) {
40
40
  var me = data[0];
41
41
 
42
42
  if (me) {
43
- var initials = getInitials(me);
43
+ var initials = (0, _contact.getInitials)(me);
44
44
  return /*#__PURE__*/_react.default.createElement(_Avatar.default, {
45
45
  className: className,
46
46
  size: size
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.logOut = exports.openStorageLink = exports.openProfileLink = void 0;
8
+ exports.logOut = exports.getSettingsLink = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
@@ -26,36 +26,16 @@ var getSettingsLink = function getSettingsLink(_ref) {
26
26
  });
27
27
  };
28
28
 
29
- var openProfileLink = function openProfileLink(_ref2) {
30
- var client = _ref2.client;
31
- var link = getSettingsLink({
32
- client: client,
33
- hash: 'profile'
34
- });
35
- window.open(link, '_self');
36
- };
37
-
38
- exports.openProfileLink = openProfileLink;
39
-
40
- var openStorageLink = function openStorageLink(_ref3) {
41
- var client = _ref3.client;
42
- var link = getSettingsLink({
43
- client: client,
44
- hash: 'storage'
45
- });
46
- window.open(link, '_self');
47
- };
48
-
49
- exports.openStorageLink = openStorageLink;
29
+ exports.getSettingsLink = getSettingsLink;
50
30
 
51
31
  var logOut = /*#__PURE__*/function () {
52
- var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref4) {
32
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref2) {
53
33
  var client, webviewIntent, onLogOut, res;
54
34
  return _regenerator.default.wrap(function _callee$(_context) {
55
35
  while (1) {
56
36
  switch (_context.prev = _context.next) {
57
37
  case 0:
58
- client = _ref4.client, webviewIntent = _ref4.webviewIntent, onLogOut = _ref4.onLogOut;
38
+ client = _ref2.client, webviewIntent = _ref2.webviewIntent, onLogOut = _ref2.onLogOut;
59
39
 
60
40
  if (!(onLogOut && typeof onLogOut === 'function')) {
61
41
  _context.next = 8;
@@ -92,7 +72,7 @@ var logOut = /*#__PURE__*/function () {
92
72
  }));
93
73
 
94
74
  return function logOut(_x) {
95
- return _ref5.apply(this, arguments);
75
+ return _ref3.apply(this, arguments);
96
76
  };
97
77
  }();
98
78
 
@@ -35,6 +35,7 @@ var UserMenu = function UserMenu(_ref) {
35
35
  isOpen = _useState2[0],
36
36
  setOpen = _useState2[1];
37
37
 
38
+ var containerRef = (0, _react.useRef)();
38
39
  var buttonRef = (0, _react.useRef)();
39
40
 
40
41
  var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
@@ -49,16 +50,17 @@ var UserMenu = function UserMenu(_ref) {
49
50
  setOpen(!isOpen);
50
51
  };
51
52
 
52
- return /*#__PURE__*/_react.default.createElement("nav", null, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
53
+ return /*#__PURE__*/_react.default.createElement("nav", {
54
+ ref: containerRef
55
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
53
56
  ref: buttonRef,
54
57
  onClick: toggleMenu,
55
58
  disabled: !isLoaded,
56
59
  className: "u-p-0 u-ml-half"
57
60
  }, /*#__PURE__*/_react.default.createElement(_AvatarMyself.default, {
58
61
  size: isMobile ? 's' : 'm'
59
- })), isMobile ? /*#__PURE__*/_react.default.createElement(_CozyDialogs.Dialog, {
62
+ })), isMobile ? /*#__PURE__*/_react.default.createElement(_CozyDialogs.ConfirmDialog, {
60
63
  open: isOpen,
61
- size: "small",
62
64
  onClose: toggleMenu,
63
65
  content: /*#__PURE__*/_react.default.createElement(_UserMenuContent.default, {
64
66
  onLogOut: onLogOut,
@@ -68,7 +70,7 @@ var UserMenu = function UserMenu(_ref) {
68
70
  }) : /*#__PURE__*/_react.default.createElement(_Menu.default, {
69
71
  open: isOpen,
70
72
  anchorEl: buttonRef.current,
71
- container: buttonRef.current,
73
+ container: containerRef.current,
72
74
  getContentAnchorEl: null,
73
75
  onClose: toggleMenu,
74
76
  anchorOrigin: {
@@ -76,7 +78,8 @@ var UserMenu = function UserMenu(_ref) {
76
78
  horizontal: 'left'
77
79
  },
78
80
  transformOrigin: {
79
- vertical: -10
81
+ vertical: -10,
82
+ horizontal: 0
80
83
  }
81
84
  }, /*#__PURE__*/_react.default.createElement(_UserMenuContent.default, {
82
85
  onLogOut: onLogOut,
package/dist/index.js CHANGED
@@ -82,5 +82,5 @@ var _BarProvider = _interopRequireDefault(require("./components/BarProvider"));
82
82
  var _reducers = require("./lib/reducers");
83
83
 
84
84
  /* global __VERSION__ */
85
- var version = "\"18.0.0\"";
85
+ var version = "\"18.1.0\"";
86
86
  exports.version = version;
@@ -1,20 +1,20 @@
1
1
  .apps-menu-grid
2
- display: flex
3
- flex-wrap: wrap
4
- width: 100%
5
- box-sizing: border-box
6
- padding-left: 0.5rem
7
- padding-right: 0.5rem
2
+ display flex
3
+ flex-wrap wrap
4
+ width 100%
5
+ box-sizing border-box
6
+ padding-left .5rem
7
+ padding-right .5rem
8
8
 
9
9
  .apps-menu-grid-item-wrapper
10
- width: 33%
11
- aspect-ratio: 1
10
+ width 33%
11
+ aspect-ratio 1 // @stylint ignore Property is valid but unknown by stylint which is old and should be replaced
12
12
 
13
13
  .apps-menu-grid-item
14
- display: flex
15
- flex-direction: column
16
- justify-content: center
17
- align-items: center
18
- text-decoration: none
19
- width: 60%
20
- min-width: 48px
14
+ display flex
15
+ flex-direction column
16
+ justify-content center
17
+ align-items center
18
+ text-decoration none
19
+ width 60%
20
+ min-width 48px
@@ -1,10 +1,10 @@
1
1
  @require 'settings/breakpoints'
2
2
 
3
3
  .user-menu-content
4
- width: 320px
4
+ width auto
5
5
 
6
- +small-screen()
7
- width: auto
6
+ +desktop()
7
+ width 320px
8
8
 
9
9
  .user-menu-content-add-account
10
- width: calc(100% - 32px)
10
+ width calc(100% - 32px)
@@ -24,11 +24,11 @@
24
24
  /* imported from user-menu.styl */
25
25
 
26
26
  .user-menu-content {
27
- width: 320px;
27
+ width: auto;
28
28
  }
29
- @media (max-width: 48rem) {
29
+ @media (min-width: 64rem) {
30
30
  .user-menu-content {
31
- width: auto;
31
+ width: 320px;
32
32
  }
33
33
  }
34
34
  .user-menu-content-add-account {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cozy-bar",
3
- "version": "18.0.0",
3
+ "version": "18.1.0",
4
4
  "description": "cozy-bar.js library, a small lib provided by cozy-stack to inject the Cozy-bar component into each app",
5
5
  "main": "dist/index.js",
6
6
  "author": "Cozy Cloud <contact@cozycloud.cc> (https://cozy.io/)",
@@ -20,7 +20,9 @@
20
20
  "build": "env BABEL_ENV=transpilation babel ./src -d ./dist --extensions .js,.jsx --ignore '**/*.spec.jsx','**/*.spec.js' --copy-files",
21
21
  "prepublishOnly": "yarn build",
22
22
  "clean": "rm -rf ./dist/*",
23
- "lint": "eslint '{config,src,examples,test}/**/*.{js,jsx}'",
23
+ "lint": "yarn lint:js && yarn lint:styles",
24
+ "lint:js": "eslint '{config,src,examples,test}/**/*.{js,jsx}'",
25
+ "lint:styles": "stylint src --config ./node_modules/stylus-config-cozy-app/.stylintrc",
24
26
  "prebuild": "npm-run-all clean",
25
27
  "prewatch": "npm-run-all clean",
26
28
  "tx": "tx pull --all || true",
@@ -58,7 +60,9 @@
58
60
  "react-dom": "16.10.1",
59
61
  "react-router-dom": "6.14.2",
60
62
  "semantic-release": "15.13.24",
61
- "stylus": "0.57.0"
63
+ "stylint": "^2.0.0",
64
+ "stylus": "0.57.0",
65
+ "stylus-config-cozy-app": "^0.1.0"
62
66
  },
63
67
  "dependencies": {
64
68
  "cozy-search": "0.2.0",