@bundle-stats/ui 3.2.0-beta.1 → 3.2.1-beta.3

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.
Files changed (255) hide show
  1. package/.babelrc.js +3 -3
  2. package/CHANGELOG.md +20 -4
  3. package/lib/assets/icons/arrow.svg +1 -0
  4. package/lib/assets/icons/cancel.svg +1 -0
  5. package/lib/assets/icons/clock.svg +1 -0
  6. package/lib/assets/icons/close.svg +1 -0
  7. package/lib/assets/icons/commit.svg +1 -0
  8. package/lib/assets/icons/filter.svg +1 -0
  9. package/lib/assets/icons/help.svg +1 -0
  10. package/lib/assets/icons/menu.svg +1 -0
  11. package/lib/{ui/icon/assets → assets/icons}/sort.svg +0 -0
  12. package/lib/assets/icons/warning.svg +1 -0
  13. package/lib/assets/icons.svg +1 -0
  14. package/lib/components/bundle-assets/bundle-assets.js +3 -3
  15. package/lib/components/bundle-assets/bundle-assets.stories.js +19 -7
  16. package/lib/components/bundle-assets/bundle-assets.utils.js +95 -28
  17. package/lib/components/bundle-assets/index.js +115 -4
  18. package/lib/components/bundle-modules/bundle-modules.js +3 -3
  19. package/lib/components/bundle-modules/bundle-modules.utils.js +152 -0
  20. package/lib/components/bundle-modules/index.js +135 -4
  21. package/lib/components/bundle-packages/bundle-packages.js +3 -3
  22. package/lib/components/bundle-packages/{bundle-packages.container.js → bundle-packages.utils.js} +8 -42
  23. package/lib/components/bundle-packages/index.js +111 -3
  24. package/lib/components/metrics-table/metrics-table.js +3 -7
  25. package/lib/components/metrics-table-search/metrics-table-search.js +2 -1
  26. package/lib/components/metrics-table-search/metrics-table-search.module.css +2 -1
  27. package/lib/hooks/rows-filter.js +28 -0
  28. package/lib/hooks/rows-sort.js +54 -0
  29. package/lib/{hocs/with-search.js → hooks/search-params.js} +15 -64
  30. package/lib/ui/icon/icon.js +4 -191
  31. package/lib/ui/sort-dropdown/sort-dropdown.js +12 -13
  32. package/lib/ui/sort-dropdown/sort-dropdown.stories.js +2 -2
  33. package/lib/utils.js +6 -3
  34. package/lib-esm/app/app.js +60 -70
  35. package/lib-esm/app/app.stories.js +50 -71
  36. package/lib-esm/app/header/header.js +5 -3
  37. package/lib-esm/assets/icons/arrow.svg +1 -0
  38. package/lib-esm/assets/icons/cancel.svg +1 -0
  39. package/lib-esm/assets/icons/clock.svg +1 -0
  40. package/lib-esm/assets/icons/close.svg +1 -0
  41. package/lib-esm/assets/icons/commit.svg +1 -0
  42. package/lib-esm/assets/icons/filter.svg +1 -0
  43. package/lib-esm/assets/icons/help.svg +1 -0
  44. package/lib-esm/assets/icons/menu.svg +1 -0
  45. package/lib-esm/{ui/icon/assets → assets/icons}/sort.svg +0 -0
  46. package/lib-esm/assets/icons/warning.svg +1 -0
  47. package/lib-esm/assets/icons.svg +1 -0
  48. package/lib-esm/components/asset-info/asset-info.js +21 -17
  49. package/lib-esm/components/asset-info/asset-info.stories.js +29 -33
  50. package/lib-esm/components/browsertime-table/browsertime-table.js +6 -4
  51. package/lib-esm/components/browsertime-table/browsertime-table.stories.js +9 -13
  52. package/lib-esm/components/bundle-assets/bundle-assets.constants.js +17 -15
  53. package/lib-esm/components/bundle-assets/bundle-assets.js +107 -97
  54. package/lib-esm/components/bundle-assets/bundle-assets.stories.js +58 -63
  55. package/lib-esm/components/bundle-assets/bundle-assets.utils.js +65 -21
  56. package/lib-esm/components/bundle-assets/index.js +89 -2
  57. package/lib-esm/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.js +49 -51
  58. package/lib-esm/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.stories.js +9 -13
  59. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.js +14 -13
  60. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.stories.js +13 -19
  61. package/lib-esm/components/bundle-modules/bundle-modules.constants.js +17 -15
  62. package/lib-esm/components/bundle-modules/bundle-modules.js +112 -110
  63. package/lib-esm/components/bundle-modules/bundle-modules.stories.js +46 -58
  64. package/lib-esm/components/bundle-modules/bundle-modules.utils.js +98 -0
  65. package/lib-esm/components/bundle-modules/index.js +114 -3
  66. package/lib-esm/components/bundle-packages/bundle-packages.constants.js +17 -15
  67. package/lib-esm/components/bundle-packages/bundle-packages.js +71 -69
  68. package/lib-esm/components/bundle-packages/bundle-packages.stories.js +34 -46
  69. package/lib-esm/components/bundle-packages/bundle-packages.utils.js +44 -0
  70. package/lib-esm/components/bundle-packages/index.js +87 -2
  71. package/lib-esm/components/component-link.js +10 -13
  72. package/lib-esm/components/delta/delta.js +8 -6
  73. package/lib-esm/components/delta/delta.stories.js +26 -38
  74. package/lib-esm/components/duplicate-packages-warning/duplicate-packages-warning.js +11 -9
  75. package/lib-esm/components/duplicate-packages-warning/duplicate-packages-warning.stories.js +20 -26
  76. package/lib-esm/components/job-header/job-header.js +14 -11
  77. package/lib-esm/components/job-header/job-header.stories.js +12 -18
  78. package/lib-esm/components/job-meta/job-meta.js +15 -18
  79. package/lib-esm/components/job-meta/job-meta.stories.js +10 -12
  80. package/lib-esm/components/job-name/job-name.js +9 -12
  81. package/lib-esm/components/job-name/job-name.stories.js +15 -23
  82. package/lib-esm/components/jobs-header/jobs-header.js +12 -12
  83. package/lib-esm/components/jobs-header/jobs-header.stories.js +80 -86
  84. package/lib-esm/components/lighthouse-table/lighthouse-table.js +6 -4
  85. package/lib-esm/components/lighthouse-table/lighthouse-table.stories.js +10 -14
  86. package/lib-esm/components/metric/metric.js +15 -19
  87. package/lib-esm/components/metric/metric.stories.js +36 -58
  88. package/lib-esm/components/metrics-table/metrics-table.js +128 -139
  89. package/lib-esm/components/metrics-table/metrics-table.stories.js +27 -35
  90. package/lib-esm/components/metrics-table-options/metrics-table-options.js +16 -19
  91. package/lib-esm/components/metrics-table-options/metrics-table-options.stories.js +6 -12
  92. package/lib-esm/components/metrics-table-search/metrics-table-search.js +17 -18
  93. package/lib-esm/components/metrics-table-search/metrics-table-search.module.css +2 -1
  94. package/lib-esm/components/metrics-table-search/metrics-table-search.stories.js +4 -9
  95. package/lib-esm/components/metrics-table-title/metrics-table-title.js +9 -7
  96. package/lib-esm/components/module-info/module-info.js +15 -13
  97. package/lib-esm/components/module-info/module-info.stories.js +20 -22
  98. package/lib-esm/components/summary/summary.js +25 -27
  99. package/lib-esm/components/summary/summary.stories.js +31 -46
  100. package/lib-esm/components/summary-item/summary-item.js +27 -28
  101. package/lib-esm/components/summary-item/summary-item.stories.js +40 -50
  102. package/lib-esm/components/total-size-type-title/total-size-type-title.js +4 -2
  103. package/lib-esm/constants.js +25 -30
  104. package/lib-esm/hooks/rows-filter.js +20 -0
  105. package/lib-esm/hooks/rows-sort.js +22 -0
  106. package/lib-esm/hooks/search-params.js +170 -0
  107. package/lib-esm/layout/box/box.js +12 -19
  108. package/lib-esm/layout/box/box.stories.js +34 -46
  109. package/lib-esm/layout/flex-stack/flex-stack.js +9 -12
  110. package/lib-esm/layout/flex-stack/flex-stack.stories.js +39 -49
  111. package/lib-esm/layout/footer/footer.js +11 -11
  112. package/lib-esm/layout/footer/footer.stories.js +7 -11
  113. package/lib-esm/layout/header/header.js +10 -14
  114. package/lib-esm/layout/header/header.stories.js +50 -44
  115. package/lib-esm/layout/stack/stack.js +8 -6
  116. package/lib-esm/layout/stack/stack.stories.js +39 -49
  117. package/lib-esm/layout/sub-header/sub-header.js +14 -12
  118. package/lib-esm/layout/sub-header/sub-header.stories.js +57 -69
  119. package/lib-esm/prototypes/typography.stories.js +49 -58
  120. package/lib-esm/query-state.js +13 -16
  121. package/lib-esm/stories/wrapper.js +6 -12
  122. package/lib-esm/ui/alert/alert.js +6 -4
  123. package/lib-esm/ui/alert/alert.stories.js +14 -24
  124. package/lib-esm/ui/container/container.js +6 -9
  125. package/lib-esm/ui/container/container.stories.js +15 -17
  126. package/lib-esm/ui/dropdown/dropdown.js +13 -11
  127. package/lib-esm/ui/dropdown/dropdown.stories.js +22 -26
  128. package/lib-esm/ui/empty-set/empty-set.js +12 -12
  129. package/lib-esm/ui/empty-set/empty-set.stories.js +11 -19
  130. package/lib-esm/ui/file-name/file-name.js +6 -4
  131. package/lib-esm/ui/file-name/file-name.stories.js +12 -16
  132. package/lib-esm/ui/filters/filters.container.js +57 -76
  133. package/lib-esm/ui/filters/filters.js +71 -77
  134. package/lib-esm/ui/filters/filters.stories.js +82 -100
  135. package/lib-esm/ui/filters/filters.utils.js +26 -24
  136. package/lib-esm/ui/filters/index.js +1 -1
  137. package/lib-esm/ui/horizontal-bar-chart/horizontal-bar-chart.js +68 -78
  138. package/lib-esm/ui/horizontal-bar-chart/horizontal-bar-chart.stories.js +67 -77
  139. package/lib-esm/ui/icon/icon.js +13 -202
  140. package/lib-esm/ui/icon/icon.stories.js +16 -24
  141. package/lib-esm/ui/input/input.js +7 -10
  142. package/lib-esm/ui/input/input.stories.js +8 -12
  143. package/lib-esm/ui/loader/loader.js +6 -9
  144. package/lib-esm/ui/loader/loader.stories.js +5 -9
  145. package/lib-esm/ui/logo/logo.constants.js +6 -6
  146. package/lib-esm/ui/logo/logo.js +15 -15
  147. package/lib-esm/ui/logo/logo.stories.js +14 -22
  148. package/lib-esm/ui/panels/panels.js +13 -23
  149. package/lib-esm/ui/panels/panels.stories.js +14 -16
  150. package/lib-esm/ui/popover/popover.js +11 -9
  151. package/lib-esm/ui/popover/popover.stories.js +7 -11
  152. package/lib-esm/ui/skeleton/skeleton.js +6 -9
  153. package/lib-esm/ui/skeleton/skeleton.stories.js +2 -4
  154. package/lib-esm/ui/sort-dropdown/sort-dropdown.js +38 -38
  155. package/lib-esm/ui/sort-dropdown/sort-dropdown.stories.js +14 -16
  156. package/lib-esm/ui/table/table.js +26 -31
  157. package/lib-esm/ui/table/table.stories.js +84 -102
  158. package/lib-esm/ui/tabs/tabs.js +13 -21
  159. package/lib-esm/ui/tabs/tabs.stories.js +4 -6
  160. package/lib-esm/ui/toolbar/toolbar.js +7 -5
  161. package/lib-esm/ui/toolbar/toolbar.stories.js +14 -16
  162. package/lib-esm/ui/tooltip/tooltip.js +13 -16
  163. package/lib-esm/ui/tooltip/tooltip.stories.js +8 -12
  164. package/lib-esm/utils.js +20 -24
  165. package/package.json +25 -33
  166. package/src/assets/icons/arrow.svg +1 -0
  167. package/src/assets/icons/cancel.svg +1 -0
  168. package/src/assets/icons/clock.svg +1 -0
  169. package/src/assets/icons/close.svg +1 -0
  170. package/src/assets/icons/commit.svg +1 -0
  171. package/src/assets/icons/filter.svg +1 -0
  172. package/src/assets/icons/help.svg +1 -0
  173. package/src/assets/icons/menu.svg +1 -0
  174. package/src/{ui/icon/assets → assets/icons}/sort.svg +0 -0
  175. package/src/assets/icons/warning.svg +1 -0
  176. package/src/assets/icons.svg +1 -0
  177. package/src/components/bundle-assets/bundle-assets.jsx +3 -3
  178. package/src/components/bundle-assets/bundle-assets.utils.js +96 -17
  179. package/src/components/bundle-assets/index.jsx +89 -0
  180. package/src/components/bundle-modules/bundle-modules.jsx +3 -3
  181. package/src/components/bundle-modules/bundle-modules.utils.js +101 -0
  182. package/src/components/bundle-modules/index.jsx +107 -0
  183. package/src/components/bundle-packages/bundle-packages.jsx +3 -3
  184. package/src/components/bundle-packages/bundle-packages.utils.js +47 -0
  185. package/src/components/bundle-packages/index.jsx +84 -0
  186. package/src/components/metrics-table/metrics-table.jsx +2 -7
  187. package/src/components/metrics-table-search/metrics-table-search.jsx +1 -0
  188. package/src/components/metrics-table-search/metrics-table-search.module.css +2 -1
  189. package/src/hooks/rows-filter.js +16 -0
  190. package/src/hooks/rows-sort.js +24 -0
  191. package/src/hooks/search-params.js +153 -0
  192. package/src/ui/icon/icon.jsx +7 -42
  193. package/src/ui/sort-dropdown/sort-dropdown.jsx +11 -11
  194. package/src/utils.jsx +5 -3
  195. package/lib/components/bundle-assets/bundle-assets.container.js +0 -140
  196. package/lib/components/bundle-modules/bundle-modules.container.js +0 -222
  197. package/lib/hocs/with-custom-sort.js +0 -75
  198. package/lib/hocs/with-filtered-items.js +0 -54
  199. package/lib/ui/icon/assets/arrow.svg +0 -4
  200. package/lib/ui/icon/assets/branch.svg +0 -3
  201. package/lib/ui/icon/assets/cancel.svg +0 -4
  202. package/lib/ui/icon/assets/clock.svg +0 -3
  203. package/lib/ui/icon/assets/close.svg +0 -4
  204. package/lib/ui/icon/assets/commit.svg +0 -3
  205. package/lib/ui/icon/assets/filter.svg +0 -4
  206. package/lib/ui/icon/assets/help.svg +0 -4
  207. package/lib/ui/icon/assets/job.svg +0 -3
  208. package/lib/ui/icon/assets/menu.svg +0 -4
  209. package/lib/ui/icon/assets/package.svg +0 -3
  210. package/lib/ui/icon/assets/pull-request.svg +0 -3
  211. package/lib/ui/icon/assets/repository.svg +0 -3
  212. package/lib/ui/icon/assets/warning.svg +0 -4
  213. package/lib-esm/components/bundle-assets/bundle-assets.container.js +0 -119
  214. package/lib-esm/components/bundle-modules/bundle-modules.container.js +0 -175
  215. package/lib-esm/components/bundle-packages/bundle-packages.container.js +0 -91
  216. package/lib-esm/hocs/with-custom-sort.js +0 -43
  217. package/lib-esm/hocs/with-filtered-items.js +0 -35
  218. package/lib-esm/hocs/with-search.js +0 -214
  219. package/lib-esm/ui/icon/assets/arrow.svg +0 -4
  220. package/lib-esm/ui/icon/assets/branch.svg +0 -3
  221. package/lib-esm/ui/icon/assets/cancel.svg +0 -4
  222. package/lib-esm/ui/icon/assets/clock.svg +0 -3
  223. package/lib-esm/ui/icon/assets/close.svg +0 -4
  224. package/lib-esm/ui/icon/assets/commit.svg +0 -3
  225. package/lib-esm/ui/icon/assets/filter.svg +0 -4
  226. package/lib-esm/ui/icon/assets/help.svg +0 -4
  227. package/lib-esm/ui/icon/assets/job.svg +0 -3
  228. package/lib-esm/ui/icon/assets/menu.svg +0 -4
  229. package/lib-esm/ui/icon/assets/package.svg +0 -3
  230. package/lib-esm/ui/icon/assets/pull-request.svg +0 -3
  231. package/lib-esm/ui/icon/assets/repository.svg +0 -3
  232. package/lib-esm/ui/icon/assets/warning.svg +0 -4
  233. package/src/components/bundle-assets/bundle-assets.container.js +0 -146
  234. package/src/components/bundle-assets/index.js +0 -4
  235. package/src/components/bundle-modules/bundle-modules.container.js +0 -158
  236. package/src/components/bundle-modules/index.js +0 -4
  237. package/src/components/bundle-packages/bundle-packages.container.js +0 -93
  238. package/src/components/bundle-packages/index.js +0 -4
  239. package/src/hocs/with-custom-sort.jsx +0 -35
  240. package/src/hocs/with-filtered-items.jsx +0 -34
  241. package/src/hocs/with-search.jsx +0 -184
  242. package/src/ui/icon/assets/arrow.svg +0 -4
  243. package/src/ui/icon/assets/branch.svg +0 -3
  244. package/src/ui/icon/assets/cancel.svg +0 -4
  245. package/src/ui/icon/assets/clock.svg +0 -3
  246. package/src/ui/icon/assets/close.svg +0 -4
  247. package/src/ui/icon/assets/commit.svg +0 -3
  248. package/src/ui/icon/assets/filter.svg +0 -4
  249. package/src/ui/icon/assets/help.svg +0 -4
  250. package/src/ui/icon/assets/job.svg +0 -3
  251. package/src/ui/icon/assets/menu.svg +0 -4
  252. package/src/ui/icon/assets/package.svg +0 -3
  253. package/src/ui/icon/assets/pull-request.svg +0 -3
  254. package/src/ui/icon/assets/repository.svg +0 -3
  255. package/src/ui/icon/assets/warning.svg +0 -4
@@ -0,0 +1,170 @@
1
+ import _merge from "lodash/merge";
2
+ import _isEqual from "lodash/isEqual";
3
+ import { useCallback, useLayoutEffect, useReducer } from 'react';
4
+ const ACTION_SET_FILTERS = 'SET_FILTERS';
5
+ const ACTION_SET_SEARCH = 'SET_SEARCH';
6
+ const ACTION_RESET_DEFAULT = 'RESET_DEFAULT';
7
+ const ACTION_RESET_ALL = 'RESET_ALL';
8
+ const ACTION_SET = 'SET';
9
+
10
+ const getSearchPattern = search => {
11
+ let searchPattern = new RegExp(/.*/);
12
+
13
+ if (!search || !search.trim()) {
14
+ return searchPattern;
15
+ }
16
+
17
+ try {
18
+ searchPattern = new RegExp(search, 'i');
19
+ } catch (err) {
20
+ // noop
21
+ console.error(err); // eslint-disable-line no-console
22
+ }
23
+
24
+ return searchPattern;
25
+ };
26
+
27
+ const getSearchReducer = _ref => {
28
+ let {
29
+ defaultFilters,
30
+ allEntriesFilters,
31
+ setParentState
32
+ } = _ref;
33
+ return (state, action) => {
34
+ const {
35
+ type,
36
+ payload
37
+ } = action;
38
+
39
+ switch (type) {
40
+ case ACTION_SET_FILTERS:
41
+ {
42
+ setParentState({
43
+ filters: payload,
44
+ search: state.search
45
+ });
46
+ return { ...state,
47
+ filters: payload
48
+ };
49
+ }
50
+
51
+ case ACTION_SET_SEARCH:
52
+ {
53
+ setParentState({
54
+ filters: state.filters,
55
+ search: payload
56
+ });
57
+ return { ...state,
58
+ search: payload,
59
+ searchPattern: getSearchPattern(payload)
60
+ };
61
+ }
62
+
63
+ case ACTION_RESET_DEFAULT:
64
+ {
65
+ setParentState({
66
+ filters: defaultFilters,
67
+ search: ''
68
+ });
69
+ return {
70
+ filters: defaultFilters,
71
+ search: '',
72
+ searchPattern: getSearchPattern()
73
+ };
74
+ }
75
+
76
+ case ACTION_RESET_ALL:
77
+ {
78
+ setParentState({
79
+ filters: allEntriesFilters,
80
+ search: ''
81
+ });
82
+ return {
83
+ filters: allEntriesFilters,
84
+ search: '',
85
+ searchPattern: getSearchPattern()
86
+ };
87
+ }
88
+
89
+ case ACTION_SET:
90
+ {
91
+ return payload;
92
+ }
93
+
94
+ default:
95
+ return state;
96
+ }
97
+ };
98
+ };
99
+
100
+ export const generateState = (filters, search) => ({
101
+ filters,
102
+ search,
103
+ searchPattern: getSearchPattern(search)
104
+ });
105
+ export const useSearchParams = _ref2 => {
106
+ let {
107
+ search: parentSearch,
108
+ filters: parentFilters,
109
+ defaultFilters,
110
+ allEntriesFilters,
111
+ setState: setParentState
112
+ } = _ref2;
113
+ // When we pass custom filters, set the other flags to true (allEntries)
114
+ const initialFilters = parentFilters ? _merge({}, allEntriesFilters, parentFilters) : defaultFilters;
115
+ const [{
116
+ search,
117
+ searchPattern,
118
+ filters
119
+ }, dispatch] = useReducer(getSearchReducer({
120
+ defaultFilters,
121
+ allEntriesFilters,
122
+ setParentState
123
+ }), generateState(initialFilters, parentSearch)); // Update state when the custom filters/search are changing - initial load or route updates
124
+
125
+ useLayoutEffect(() => {
126
+ // Run a deep comparison to prevent circular setState triggering
127
+ if (parentSearch === search || _isEqual(parentFilters, filters)) {
128
+ return;
129
+ }
130
+
131
+ dispatch({
132
+ type: ACTION_SET,
133
+ payload: generateState(initialFilters, parentSearch)
134
+ });
135
+ }, [search, filters, parentFilters, parentSearch]);
136
+ /** Callbacks */
137
+
138
+ const handleUpdateSearch = useCallback(newValue => {
139
+ dispatch({
140
+ type: ACTION_SET_SEARCH,
141
+ payload: newValue
142
+ });
143
+ }, []);
144
+ const handleUpdateFilters = useCallback(newFilters => {
145
+ dispatch({
146
+ type: ACTION_SET_FILTERS,
147
+ payload: newFilters
148
+ });
149
+ }, []);
150
+ const handleResetFilters = useCallback(() => {
151
+ dispatch({
152
+ type: ACTION_RESET_DEFAULT
153
+ });
154
+ }, []);
155
+ const handleResetAllFilters = useCallback(() => {
156
+ dispatch({
157
+ type: ACTION_RESET_ALL
158
+ });
159
+ }, []);
160
+ return {
161
+ search,
162
+ searchPattern,
163
+ filters,
164
+ hasActiveFilters: !_isEqual(allEntriesFilters, filters),
165
+ updateSearch: handleUpdateSearch,
166
+ updateFilters: handleUpdateFilters,
167
+ resetFilters: handleResetFilters,
168
+ resetAllFilters: handleResetAllFilters
169
+ };
170
+ };
@@ -1,29 +1,22 @@
1
- var _excluded = ["className", "as", "padding", "horizontalPadding", "verticalPadding", "outline"];
2
-
3
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
2
 
5
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
6
-
7
3
  import React from 'react';
8
4
  import PropTypes from 'prop-types';
9
5
  import cx from 'classnames';
10
6
  import { NO_SPACE, SPACES } from '../../constants';
11
7
  import css from './box.module.css';
12
- export var Box = function Box(props) {
13
- var className = props.className,
14
- Component = props.as,
15
- padding = props.padding,
16
- horizontalPadding = props.horizontalPadding,
17
- verticalPadding = props.verticalPadding,
18
- outline = props.outline,
19
- restProps = _objectWithoutPropertiesLoose(props, _excluded);
20
-
21
- var _ref = Array.isArray(padding) ? [null].concat(padding) : [padding, verticalPadding, horizontalPadding],
22
- resolvedPadding = _ref[0],
23
- resolvedVerticalPadding = _ref[1],
24
- resolvedHorizontalPadding = _ref[2];
25
-
26
- var rootClassName = cx(css.root, className, resolvedPadding && css["padding-" + resolvedPadding], resolvedVerticalPadding && css["vertical-padding-" + resolvedVerticalPadding], resolvedHorizontalPadding && css["horizontal-padding-" + resolvedHorizontalPadding], outline && css.outline);
8
+ export const Box = props => {
9
+ const {
10
+ className,
11
+ as: Component,
12
+ padding,
13
+ horizontalPadding,
14
+ verticalPadding,
15
+ outline,
16
+ ...restProps
17
+ } = props;
18
+ const [resolvedPadding, resolvedVerticalPadding, resolvedHorizontalPadding] = Array.isArray(padding) ? [null, ...padding] : [padding, verticalPadding, horizontalPadding];
19
+ const rootClassName = cx(css.root, className, resolvedPadding && css[`padding-${resolvedPadding}`], resolvedVerticalPadding && css[`vertical-padding-${resolvedVerticalPadding}`], resolvedHorizontalPadding && css[`horizontal-padding-${resolvedHorizontalPadding}`], outline && css.outline);
27
20
  return /*#__PURE__*/React.createElement(Component, _extends({
28
21
  className: rootClassName
29
22
  }, restProps));
@@ -2,50 +2,38 @@ import React from 'react';
2
2
  import { storiesOf } from '@storybook/react';
3
3
  import { getWrapperDecorator } from '../../stories';
4
4
  import { Box } from '.';
5
- var stories = storiesOf('Layout/Box', module);
5
+ const stories = storiesOf('Layout/Box', module);
6
6
  stories.addDecorator(getWrapperDecorator());
7
- stories.add('default', function () {
8
- return /*#__PURE__*/React.createElement(Box, {
9
- style: {
10
- outline: '1px dotted magenta'
11
- }
12
- }, "Lorem ipsum");
13
- });
14
- stories.add('with padding', function () {
15
- return /*#__PURE__*/React.createElement(Box, {
16
- padding: "medium",
17
- style: {
18
- outline: '1px dotted magenta'
19
- }
20
- }, "Lorem ipsum");
21
- });
22
- stories.add('with horizontal padding', function () {
23
- return /*#__PURE__*/React.createElement(Box, {
24
- horizontalPadding: "medium",
25
- style: {
26
- outline: '1px dotted magenta'
27
- }
28
- }, "Lorem ipsum");
29
- });
30
- stories.add('with vertical padding', function () {
31
- return /*#__PURE__*/React.createElement(Box, {
32
- verticalPadding: "medium",
33
- style: {
34
- outline: '1px dotted magenta'
35
- }
36
- }, "Lorem ipsum");
37
- });
38
- stories.add('with horizontal & vertical padding', function () {
39
- return /*#__PURE__*/React.createElement(Box, {
40
- padding: ['xxsmall', 'medium'],
41
- style: {
42
- outline: '1px dotted magenta'
43
- }
44
- }, "Lorem ipsum");
45
- });
46
- stories.add('with outline', function () {
47
- return /*#__PURE__*/React.createElement(Box, {
48
- padding: "large",
49
- outline: true
50
- }, "Lorem ipsum");
51
- });
7
+ stories.add('default', () => /*#__PURE__*/React.createElement(Box, {
8
+ style: {
9
+ outline: '1px dotted magenta'
10
+ }
11
+ }, "Lorem ipsum"));
12
+ stories.add('with padding', () => /*#__PURE__*/React.createElement(Box, {
13
+ padding: "medium",
14
+ style: {
15
+ outline: '1px dotted magenta'
16
+ }
17
+ }, "Lorem ipsum"));
18
+ stories.add('with horizontal padding', () => /*#__PURE__*/React.createElement(Box, {
19
+ horizontalPadding: "medium",
20
+ style: {
21
+ outline: '1px dotted magenta'
22
+ }
23
+ }, "Lorem ipsum"));
24
+ stories.add('with vertical padding', () => /*#__PURE__*/React.createElement(Box, {
25
+ verticalPadding: "medium",
26
+ style: {
27
+ outline: '1px dotted magenta'
28
+ }
29
+ }, "Lorem ipsum"));
30
+ stories.add('with horizontal & vertical padding', () => /*#__PURE__*/React.createElement(Box, {
31
+ padding: ['xxsmall', 'medium'],
32
+ style: {
33
+ outline: '1px dotted magenta'
34
+ }
35
+ }, "Lorem ipsum"));
36
+ stories.add('with outline', () => /*#__PURE__*/React.createElement(Box, {
37
+ padding: "large",
38
+ outline: true
39
+ }, "Lorem ipsum"));
@@ -1,23 +1,20 @@
1
- var _excluded = ["as", "className", "space", "children"];
2
-
3
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
2
 
5
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
6
-
7
3
  import React from 'react';
8
4
  import PropTypes from 'prop-types';
9
5
  import cx from 'classnames';
10
6
  import { NO_SPACE, SPACES } from '../../constants';
11
7
  import { getRenderChildWithClassName } from '../../utils';
12
8
  import css from './flex-stack.module.css';
13
- export var FlexStack = function FlexStack(props) {
14
- var Component = props.as,
15
- className = props.className,
16
- space = props.space,
17
- children = props.children,
18
- restProps = _objectWithoutPropertiesLoose(props, _excluded);
19
-
20
- var rootClassName = cx(className, css.root, css["space--" + space]);
9
+ export const FlexStack = props => {
10
+ const {
11
+ as: Component,
12
+ className,
13
+ space,
14
+ children,
15
+ ...restProps
16
+ } = props;
17
+ const rootClassName = cx(className, css.root, css[`space--${space}`]);
21
18
  return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {
22
19
  className: rootClassName
23
20
  }), React.Children.map(children, getRenderChildWithClassName(css.item)));
@@ -3,53 +3,43 @@ import { storiesOf } from '@storybook/react';
3
3
  import { getWrapperDecorator } from '../../stories';
4
4
  import { Box } from '../box';
5
5
  import { FlexStack } from '.';
6
- var stories = storiesOf('Layout/FlexStack', module);
6
+ const stories = storiesOf('Layout/FlexStack', module);
7
7
  stories.addDecorator(getWrapperDecorator());
8
- stories.add('default', function () {
9
- return /*#__PURE__*/React.createElement(FlexStack, null, /*#__PURE__*/React.createElement(Box, {
10
- outline: true
11
- }, "Lorem ipsum 1"), /*#__PURE__*/React.createElement(Box, {
12
- outline: true
13
- }, "Lorem ipsum 2"), null, "Lorem ipsum 3");
14
- });
15
- stories.add('with custom wrapper', function () {
16
- return /*#__PURE__*/React.createElement(FlexStack, {
17
- as: "main",
18
- className: "wrapper"
19
- }, /*#__PURE__*/React.createElement(Box, {
20
- outline: true
21
- }, "Lorem ipsum 1"), /*#__PURE__*/React.createElement(Box, {
22
- outline: true
23
- }, "Lorem ipsum 2"));
24
- });
25
- stories.add('with large space', function () {
26
- return /*#__PURE__*/React.createElement(FlexStack, {
27
- space: "large"
28
- }, /*#__PURE__*/React.createElement(Box, {
29
- outline: true
30
- }, "Lorem ipsum 1"), /*#__PURE__*/React.createElement(Box, {
31
- outline: true
32
- }, "Lorem ipsum 2"), /*#__PURE__*/React.createElement(Box, {
33
- outline: true
34
- }, "Lorem ipsum 3"));
35
- });
36
- stories.add('with nested stack', function () {
37
- return /*#__PURE__*/React.createElement(FlexStack, {
38
- space: "large"
39
- }, /*#__PURE__*/React.createElement(Box, {
40
- outline: true
41
- }, "Lorem ipsum 1"), /*#__PURE__*/React.createElement(Box, {
42
- outline: true
43
- }, "Lorem ipsum 2"), /*#__PURE__*/React.createElement(FlexStack, {
44
- space: "small"
45
- }, /*#__PURE__*/React.createElement(Box, {
46
- outline: true
47
- }, "Lorem ipsum 3.1"), /*#__PURE__*/React.createElement(Box, {
48
- outline: true
49
- }, "Lorem ipsum 3.2")));
50
- });
51
- stories.add('single item', function () {
52
- return /*#__PURE__*/React.createElement(FlexStack, null, /*#__PURE__*/React.createElement(Box, {
53
- outline: true
54
- }, "Lorem ipsum"));
55
- });
8
+ stories.add('default', () => /*#__PURE__*/React.createElement(FlexStack, null, /*#__PURE__*/React.createElement(Box, {
9
+ outline: true
10
+ }, "Lorem ipsum 1"), /*#__PURE__*/React.createElement(Box, {
11
+ outline: true
12
+ }, "Lorem ipsum 2"), null, "Lorem ipsum 3"));
13
+ stories.add('with custom wrapper', () => /*#__PURE__*/React.createElement(FlexStack, {
14
+ as: "main",
15
+ className: "wrapper"
16
+ }, /*#__PURE__*/React.createElement(Box, {
17
+ outline: true
18
+ }, "Lorem ipsum 1"), /*#__PURE__*/React.createElement(Box, {
19
+ outline: true
20
+ }, "Lorem ipsum 2")));
21
+ stories.add('with large space', () => /*#__PURE__*/React.createElement(FlexStack, {
22
+ space: "large"
23
+ }, /*#__PURE__*/React.createElement(Box, {
24
+ outline: true
25
+ }, "Lorem ipsum 1"), /*#__PURE__*/React.createElement(Box, {
26
+ outline: true
27
+ }, "Lorem ipsum 2"), /*#__PURE__*/React.createElement(Box, {
28
+ outline: true
29
+ }, "Lorem ipsum 3")));
30
+ stories.add('with nested stack', () => /*#__PURE__*/React.createElement(FlexStack, {
31
+ space: "large"
32
+ }, /*#__PURE__*/React.createElement(Box, {
33
+ outline: true
34
+ }, "Lorem ipsum 1"), /*#__PURE__*/React.createElement(Box, {
35
+ outline: true
36
+ }, "Lorem ipsum 2"), /*#__PURE__*/React.createElement(FlexStack, {
37
+ space: "small"
38
+ }, /*#__PURE__*/React.createElement(Box, {
39
+ outline: true
40
+ }, "Lorem ipsum 3.1"), /*#__PURE__*/React.createElement(Box, {
41
+ outline: true
42
+ }, "Lorem ipsum 3.2"))));
43
+ stories.add('single item', () => /*#__PURE__*/React.createElement(FlexStack, null, /*#__PURE__*/React.createElement(Box, {
44
+ outline: true
45
+ }, "Lorem ipsum")));
@@ -10,12 +10,10 @@ import { Stack } from '../stack';
10
10
  import css from './footer.module.css';
11
11
  /* eslint-disable jsx-a11y/anchor-has-content */
12
12
 
13
- var ExternalLink = function ExternalLink(props) {
14
- return /*#__PURE__*/React.createElement("a", _extends({
15
- target: "_blank",
16
- rel: "noopener noreferrer"
17
- }, props));
18
- };
13
+ const ExternalLink = props => /*#__PURE__*/React.createElement("a", _extends({
14
+ target: "_blank",
15
+ rel: "noopener noreferrer"
16
+ }, props));
19
17
  /* eslint-enable jsx-a11y/anchor-has-content */
20
18
 
21
19
 
@@ -23,9 +21,11 @@ ExternalLink.propTypes = {
23
21
  /** Link to value */
24
22
  to: PropTypes.string.isRequired
25
23
  };
26
- export var Footer = function Footer(_ref) {
27
- var className = _ref.className,
28
- version = _ref.version;
24
+ export const Footer = _ref => {
25
+ let {
26
+ className,
27
+ version
28
+ } = _ref;
29
29
  return /*#__PURE__*/React.createElement(Container, {
30
30
  as: "footer",
31
31
  className: cx(css.root, className)
@@ -40,10 +40,10 @@ export var Footer = function Footer(_ref) {
40
40
  href: config.githubUrl,
41
41
  className: cx(css.navItem, css.navLink),
42
42
  title: "In-depth bundle analyzer for webpack(bundle size, assets, modules, packages)"
43
- }, "BundleStats ", version), /*#__PURE__*/React.createElement("span", {
43
+ }, `BundleStats `, version), /*#__PURE__*/React.createElement("span", {
44
44
  className: css.navItem
45
45
  }, /*#__PURE__*/React.createElement(ExternalLink, {
46
- href: config.githubUrl + "/issues",
46
+ href: `${config.githubUrl}/issues`,
47
47
  className: css.navLink,
48
48
  title: "Navigate to GitHub and open issue"
49
49
  }, "Report issue")), /*#__PURE__*/React.createElement("span", {
@@ -2,15 +2,11 @@ import React from 'react';
2
2
  import { storiesOf } from '@storybook/react';
3
3
  import { getWrapperDecorator } from '../../stories';
4
4
  import { Footer } from '.';
5
- var stories = storiesOf('Layout/Footer', module);
5
+ const stories = storiesOf('Layout/Footer', module);
6
6
  stories.addDecorator(getWrapperDecorator());
7
- stories.add('default', function () {
8
- return /*#__PURE__*/React.createElement(Footer, null);
9
- });
10
- stories.add('with custom content', function () {
11
- return /*#__PURE__*/React.createElement(Footer, null, "Version 1.0", /*#__PURE__*/React.createElement("span", {
12
- style: {
13
- margin: '1em'
14
- }
15
- }, "Contact"));
16
- });
7
+ stories.add('default', () => /*#__PURE__*/React.createElement(Footer, null));
8
+ stories.add('with custom content', () => /*#__PURE__*/React.createElement(Footer, null, "Version 1.0", /*#__PURE__*/React.createElement("span", {
9
+ style: {
10
+ margin: '1em'
11
+ }
12
+ }, "Contact")));
@@ -2,11 +2,13 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import cx from 'classnames';
4
4
  import css from './header.module.css';
5
- export var Header = function Header(_ref) {
6
- var className = _ref.className,
7
- renderLeft = _ref.renderLeft,
8
- renderRight = _ref.renderRight,
9
- render = _ref.render;
5
+ export const Header = _ref => {
6
+ let {
7
+ className,
8
+ renderLeft,
9
+ renderRight,
10
+ render
11
+ } = _ref;
10
12
  return /*#__PURE__*/React.createElement("header", {
11
13
  className: cx(css.root, className)
12
14
  }, renderLeft({
@@ -19,15 +21,9 @@ export var Header = function Header(_ref) {
19
21
  };
20
22
  Header.defaultProps = {
21
23
  className: '',
22
- renderLeft: function renderLeft(props) {
23
- return /*#__PURE__*/React.createElement("div", props);
24
- },
25
- render: function render(props) {
26
- return /*#__PURE__*/React.createElement("div", props);
27
- },
28
- renderRight: function renderRight(props) {
29
- return /*#__PURE__*/React.createElement("div", props);
30
- }
24
+ renderLeft: props => /*#__PURE__*/React.createElement("div", props),
25
+ render: props => /*#__PURE__*/React.createElement("div", props),
26
+ renderRight: props => /*#__PURE__*/React.createElement("div", props)
31
27
  };
32
28
  Header.propTypes = {
33
29
  /* Adopted child class name */
@@ -4,48 +4,54 @@ import { getWrapperDecorator } from '../../stories';
4
4
  import { Logo } from '../../ui/logo';
5
5
  import { Tabs } from '../../ui/tabs';
6
6
  import { Header } from '.';
7
- var stories = storiesOf('Layout/Header', module);
7
+ const stories = storiesOf('Layout/Header', module);
8
8
  stories.addDecorator(getWrapperDecorator());
9
- stories.add('default', function () {
10
- return /*#__PURE__*/React.createElement(Header, {
11
- renderLeft: function renderLeft(_ref) {
12
- var className = _ref.className;
13
- return /*#__PURE__*/React.createElement("div", {
14
- className: className
15
- }, /*#__PURE__*/React.createElement(Logo, null));
16
- },
17
- render: function render(_ref2) {
18
- var className = _ref2.className;
19
- return /*#__PURE__*/React.createElement("div", {
20
- className: className
21
- }, /*#__PURE__*/React.createElement(Tabs, null, /*#__PURE__*/React.createElement("span", null, "Totals"), /*#__PURE__*/React.createElement("span", null, "Assets"), /*#__PURE__*/React.createElement("span", null, "Modules")));
22
- },
23
- renderRight: function renderRight(_ref3) {
24
- var className = _ref3.className;
25
- return /*#__PURE__*/React.createElement("div", {
26
- className: className
27
- }, /*#__PURE__*/React.createElement(Logo, {
28
- kind: "github"
29
- }));
30
- }
31
- });
32
- });
33
- stories.add('menu on the right', function () {
34
- return /*#__PURE__*/React.createElement(Header, {
35
- renderLeft: function renderLeft(_ref4) {
36
- var className = _ref4.className;
37
- return /*#__PURE__*/React.createElement("div", {
38
- className: className
39
- }, /*#__PURE__*/React.createElement(Logo, null));
40
- },
41
- renderRight: function renderRight(_ref5) {
42
- var className = _ref5.className;
43
- return /*#__PURE__*/React.createElement("div", {
44
- className: className,
45
- style: {
46
- flexBasis: '100%'
47
- }
48
- }, /*#__PURE__*/React.createElement(Tabs, null, /*#__PURE__*/React.createElement("span", null, "Totals"), /*#__PURE__*/React.createElement("span", null, "Assets"), /*#__PURE__*/React.createElement("span", null, "Modules")));
49
- }
50
- });
51
- });
9
+ stories.add('default', () => /*#__PURE__*/React.createElement(Header, {
10
+ renderLeft: _ref => {
11
+ let {
12
+ className
13
+ } = _ref;
14
+ return /*#__PURE__*/React.createElement("div", {
15
+ className: className
16
+ }, /*#__PURE__*/React.createElement(Logo, null));
17
+ },
18
+ render: _ref2 => {
19
+ let {
20
+ className
21
+ } = _ref2;
22
+ return /*#__PURE__*/React.createElement("div", {
23
+ className: className
24
+ }, /*#__PURE__*/React.createElement(Tabs, null, /*#__PURE__*/React.createElement("span", null, "Totals"), /*#__PURE__*/React.createElement("span", null, "Assets"), /*#__PURE__*/React.createElement("span", null, "Modules")));
25
+ },
26
+ renderRight: _ref3 => {
27
+ let {
28
+ className
29
+ } = _ref3;
30
+ return /*#__PURE__*/React.createElement("div", {
31
+ className: className
32
+ }, /*#__PURE__*/React.createElement(Logo, {
33
+ kind: "github"
34
+ }));
35
+ }
36
+ }));
37
+ stories.add('menu on the right', () => /*#__PURE__*/React.createElement(Header, {
38
+ renderLeft: _ref4 => {
39
+ let {
40
+ className
41
+ } = _ref4;
42
+ return /*#__PURE__*/React.createElement("div", {
43
+ className: className
44
+ }, /*#__PURE__*/React.createElement(Logo, null));
45
+ },
46
+ renderRight: _ref5 => {
47
+ let {
48
+ className
49
+ } = _ref5;
50
+ return /*#__PURE__*/React.createElement("div", {
51
+ className: className,
52
+ style: {
53
+ flexBasis: '100%'
54
+ }
55
+ }, /*#__PURE__*/React.createElement(Tabs, null, /*#__PURE__*/React.createElement("span", null, "Totals"), /*#__PURE__*/React.createElement("span", null, "Assets"), /*#__PURE__*/React.createElement("span", null, "Modules")));
56
+ }
57
+ }));
@@ -4,12 +4,14 @@ import cx from 'classnames';
4
4
  import { NO_SPACE, SPACES } from '../../constants';
5
5
  import { getRenderChildWithClassName } from '../../utils';
6
6
  import css from './stack.module.css';
7
- export var Stack = function Stack(props) {
8
- var Component = props.as,
9
- className = props.className,
10
- space = props.space,
11
- children = props.children;
12
- var rootClassName = cx(className, css.root, css["space--" + space]);
7
+ export const Stack = props => {
8
+ const {
9
+ as: Component,
10
+ className,
11
+ space,
12
+ children
13
+ } = props;
14
+ const rootClassName = cx(className, css.root, css[`space--${space}`]);
13
15
  return /*#__PURE__*/React.createElement(Component, {
14
16
  className: rootClassName
15
17
  }, React.Children.map(children, getRenderChildWithClassName(css.item)));