@bundle-stats/ui 3.2.5-beta.1 → 3.2.6-beta.1

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 (74) hide show
  1. package/CHANGELOG.md +28 -3
  2. package/lib/app/app.module.css +7 -0
  3. package/lib/components/bundle-assets/bundle-assets.js +15 -7
  4. package/lib/components/bundle-assets/bundle-assets.module.css +13 -26
  5. package/lib/components/bundle-packages/bundle-packages.js +8 -4
  6. package/lib/components/bundle-packages/bundle-packages.module.css +4 -12
  7. package/lib/components/delta/delta.module.css +1 -0
  8. package/lib/components/metrics-table-search/metrics-table-search.module.css +5 -4
  9. package/lib/css/default.css +14 -3
  10. package/lib/css/variables.css +18 -18
  11. package/lib/layout/box/box.module.css +9 -0
  12. package/lib/layout/index.js +8 -0
  13. package/lib/layout/separator.js +48 -0
  14. package/lib/layout/separator.module.css +5 -0
  15. package/lib/ui/dropdown/dropdown.js +1 -2
  16. package/lib/ui/dropdown/dropdown.module.css +7 -8
  17. package/lib/ui/filters/filters.js +10 -5
  18. package/lib/ui/filters/filters.module.css +10 -0
  19. package/lib/ui/index.js +8 -0
  20. package/lib/ui/table/table.module.css +0 -4
  21. package/lib/ui/tag/index.js +18 -0
  22. package/lib/ui/tag/tag.js +72 -0
  23. package/lib/ui/tag/tag.module.css +55 -0
  24. package/lib/ui/tag/tag.stories.js +38 -0
  25. package/lib/ui/tooltip/tooltip.module.css +1 -1
  26. package/lib-esm/app/app.module.css +7 -0
  27. package/lib-esm/components/bundle-assets/bundle-assets.js +14 -7
  28. package/lib-esm/components/bundle-assets/bundle-assets.module.css +13 -26
  29. package/lib-esm/components/bundle-packages/bundle-packages.js +7 -4
  30. package/lib-esm/components/bundle-packages/bundle-packages.module.css +4 -12
  31. package/lib-esm/components/delta/delta.module.css +1 -0
  32. package/lib-esm/components/metrics-table-search/metrics-table-search.module.css +5 -4
  33. package/lib-esm/css/default.css +14 -3
  34. package/lib-esm/css/variables.css +18 -18
  35. package/lib-esm/layout/box/box.module.css +9 -0
  36. package/lib-esm/layout/index.js +1 -0
  37. package/lib-esm/layout/separator.js +28 -0
  38. package/lib-esm/layout/separator.module.css +5 -0
  39. package/lib-esm/ui/dropdown/dropdown.js +1 -2
  40. package/lib-esm/ui/dropdown/dropdown.module.css +7 -8
  41. package/lib-esm/ui/filters/filters.js +9 -4
  42. package/lib-esm/ui/filters/filters.module.css +10 -0
  43. package/lib-esm/ui/index.js +1 -0
  44. package/lib-esm/ui/table/table.module.css +0 -4
  45. package/lib-esm/ui/tag/index.js +1 -0
  46. package/lib-esm/ui/tag/tag.js +45 -0
  47. package/lib-esm/ui/tag/tag.module.css +55 -0
  48. package/lib-esm/ui/tag/tag.stories.js +23 -0
  49. package/lib-esm/ui/tooltip/tooltip.module.css +1 -1
  50. package/package.json +17 -16
  51. package/src/app/app.jsx +6 -2
  52. package/src/app/app.module.css +7 -0
  53. package/src/components/bundle-assets/bundle-assets.jsx +58 -41
  54. package/src/components/bundle-assets/bundle-assets.module.css +13 -26
  55. package/src/components/bundle-packages/bundle-packages.jsx +10 -5
  56. package/src/components/bundle-packages/bundle-packages.module.css +4 -12
  57. package/src/components/delta/delta.module.css +1 -0
  58. package/src/components/metrics-table-search/metrics-table-search.module.css +5 -4
  59. package/src/css/default.css +14 -3
  60. package/src/css/variables.css +18 -18
  61. package/src/layout/box/box.module.css +9 -0
  62. package/src/layout/index.js +1 -0
  63. package/src/layout/separator.jsx +25 -0
  64. package/src/layout/separator.module.css +5 -0
  65. package/src/ui/dropdown/dropdown.jsx +4 -6
  66. package/src/ui/dropdown/dropdown.module.css +7 -8
  67. package/src/ui/filters/filters.jsx +53 -50
  68. package/src/ui/filters/filters.module.css +10 -0
  69. package/src/ui/index.js +1 -0
  70. package/src/ui/table/table.module.css +0 -4
  71. package/src/ui/tag/index.js +1 -0
  72. package/src/ui/tag/tag.jsx +49 -0
  73. package/src/ui/tag/tag.module.css +55 -0
  74. package/src/ui/tooltip/tooltip.module.css +1 -1
package/CHANGELOG.md CHANGED
@@ -3,12 +3,37 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [3.2.5-beta.1](https://github.com/relative-ci/bundle-stats/compare/v3.2.5-beta.0...v3.2.5-beta.1) (2022-01-29)
6
+ ## [3.2.6-beta.1](https://github.com/relative-ci/bundle-stats/compare/v3.2.5...v3.2.6-beta.1) (2022-02-25)
7
7
 
8
8
 
9
- ### Reverts
9
+ ### Bug Fixes
10
+
11
+ * **ui:** Add border-radius to flags ([4f7663b](https://github.com/relative-ci/bundle-stats/commit/4f7663b29a954cf1ace9caa9739acd9f37aa3b95))
12
+ * **ui:** Box - add border-radius to outline ([bd78d20](https://github.com/relative-ci/bundle-stats/commit/bd78d2052db4b781afc3a1d9e8dd583986d0093d))
13
+ * **ui:** Normlize border-radius usage ([e8a6b30](https://github.com/relative-ci/bundle-stats/commit/e8a6b302729112d75a82c74ef1d952fc639d16ab))
14
+ * **ui:** Table - remove last row bottom line ([9398a93](https://github.com/relative-ci/bundle-stats/commit/9398a936e1d937aed188f96ce56ebfa56f3af7d7))
15
+
16
+
17
+ ### Features
18
+
19
+ * **ui:** Add Tag component ([f796f9c](https://github.com/relative-ci/bundle-stats/commit/f796f9c909703dab3a513059215a2ce24bc12244))
20
+
21
+
22
+
23
+
24
+
25
+ ## [3.2.5](https://github.com/relative-ci/bundle-stats/compare/v3.2.4...v3.2.5) (2022-02-15)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * **ui:** Move separator to layout ([abc34e7](https://github.com/relative-ci/bundle-stats/commit/abc34e73a0ffb5ae2f4d52538d4f854e1c5857dc))
31
+ * **ui:** Variables - increase outline contrast ([beacc32](https://github.com/relative-ci/bundle-stats/commit/beacc32cf98a49aa150d1820d68f140aebafbc6e))
32
+
33
+
34
+ ### Features
10
35
 
11
- * Revert "fix: Remove setup-node cache input" ([9e63575](https://github.com/relative-ci/bundle-stats/commit/9e635753e57a4a16cc6e43d3658a499865ded1c4))
36
+ * **ui:** Separator component ([1b9e56f](https://github.com/relative-ci/bundle-stats/commit/1b9e56f170834a0a111f8d19fab220d6e7f69095))
12
37
 
13
38
 
14
39
 
@@ -19,6 +19,7 @@
19
19
 
20
20
  .tabsContainer {
21
21
  border-bottom: 1px solid var(--color-outline);
22
+ background: var(--color-light);
22
23
  }
23
24
 
24
25
  .tabs {
@@ -54,4 +55,10 @@
54
55
  background-color: var(--color-background);
55
56
  border-bottom: 1px solid var(--color-outline);
56
57
  }
58
+
59
+ .tabsContainer {
60
+ position: sticky;
61
+ top: var(--header-height);
62
+ z-index: 100;
63
+ }
57
64
  }
@@ -33,6 +33,8 @@ var _popover = require("../../ui/popover");
33
33
 
34
34
  var _tooltip = require("../../ui/tooltip");
35
35
 
36
+ var _tag = require("../../ui/tag");
37
+
36
38
  var _filters = require("../../ui/filters");
37
39
 
38
40
  var _sortDropdown = require("../../ui/sort-dropdown");
@@ -151,16 +153,22 @@ var getRenderRowHeader = function getRenderRowHeader(_ref6) {
151
153
  }, /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
152
154
  className: _bundleAssetsModule["default"].notPredictiveIcon,
153
155
  glyph: "warning"
154
- })), isChunk && /*#__PURE__*/_react["default"].createElement("span", {
156
+ })), isChunk && /*#__PURE__*/_react["default"].createElement(_tag.Tag, {
155
157
  title: "Chunk",
156
- className: _bundleAssetsModule["default"].flagChunk
157
- }, "c"), isEntry && /*#__PURE__*/_react["default"].createElement("span", {
158
+ size: _tag.Tag.SIZES.SMALL,
159
+ kind: _tag.Tag.KINDS.INFO,
160
+ className: (0, _classnames["default"])(_bundleAssetsModule["default"].tag, _bundleAssetsModule["default"].tagChunk)
161
+ }), isEntry && /*#__PURE__*/_react["default"].createElement(_tag.Tag, {
158
162
  title: "Entrypoint",
159
- className: _bundleAssetsModule["default"].flagEntry
160
- }, "e"), isInitial && /*#__PURE__*/_react["default"].createElement("span", {
163
+ size: _tag.Tag.SIZES.SMALL,
164
+ kind: _tag.Tag.KINDS.INFO,
165
+ className: (0, _classnames["default"])(_bundleAssetsModule["default"].tag, _bundleAssetsModule["default"].tagEntry)
166
+ }), isInitial && /*#__PURE__*/_react["default"].createElement(_tag.Tag, {
161
167
  title: "Initial",
162
- className: _bundleAssetsModule["default"].flagInitial
163
- }, "i"))
168
+ size: _tag.Tag.SIZES.SMALL,
169
+ kind: _tag.Tag.KINDS.INFO,
170
+ className: (0, _classnames["default"])(_bundleAssetsModule["default"].tag, _bundleAssetsModule["default"].tagInitial)
171
+ }))
164
172
  }, /*#__PURE__*/_react["default"].createElement(_assetInfo.AssetInfo, {
165
173
  className: _bundleAssetsModule["default"].assetInfo,
166
174
  item: item,
@@ -30,41 +30,28 @@
30
30
  display: none;
31
31
  }
32
32
 
33
- .flag {
34
- display: inline-block;
35
- width: var(--space-xsmall);
36
- height: var(--space-xsmall);
37
- font-family: var(--font-family);
38
- font-size: 8px;
39
- font-weight: bold;
40
- background: var(--color-highlight);
41
- color: var(--color-text-light);
42
- line-height: var(--space-xsmall);
43
- text-align: center;
44
- text-transform: uppercase;
45
- vertical-align: middle;
46
- }
47
-
48
- .flag + .flag {
33
+ .tag + .tag {
49
34
  margin-left: 2px;
50
35
  }
51
36
 
52
- .flagEntry {
53
- composes: flag;
37
+ .tagEntry {
54
38
  background: var(--color-info-light);
55
- color: var(--color-background);
56
39
  }
57
40
 
58
- .flagInitial {
59
- composes: flag;
41
+ .tagEntry::before {
42
+ content: 'e';
43
+ }
44
+
45
+ .tagInitial {
60
46
  background: var(--color-info-light);
61
- color: var(--color-background);
62
47
  }
63
48
 
64
- .flagChunk {
65
- composes: flag;
66
- background: var(--color-info);
67
- color: var(--color-background);
49
+ .tagInitial::before {
50
+ content: 'i';
51
+ }
52
+
53
+ .tagChunk::before {
54
+ content: 'c';
68
55
  }
69
56
 
70
57
  /* Tooltip not predictive */
@@ -31,6 +31,8 @@ var _popover = require("../../ui/popover");
31
31
 
32
32
  var _sortDropdown = require("../../ui/sort-dropdown");
33
33
 
34
+ var _tag = require("../../ui/tag");
35
+
34
36
  var _toolbar = require("../../ui/toolbar");
35
37
 
36
38
  var _fileName = require("../../ui/file-name");
@@ -139,10 +141,12 @@ var PackageRowHeader = function PackageRowHeader(_ref2) {
139
141
  className: _bundlePackagesModule["default"].packageNames
140
142
  }, packageNames.map(function (packageName, index) {
141
143
  // Render duplicate flag only for the last entry
142
- var duplicateFlag = index === packageNames.length - 1 && item.duplicate && /*#__PURE__*/_react["default"].createElement("span", {
143
- className: _bundlePackagesModule["default"].duplicate,
144
- title: "Duplicate package"
145
- }, "D");
144
+ var duplicateFlag = index === packageNames.length - 1 && item.duplicate && /*#__PURE__*/_react["default"].createElement(_tag.Tag, {
145
+ title: "Duplicate package",
146
+ kind: _tag.Tag.KINDS.DANGER,
147
+ size: _tag.Tag.SIZES.SMALL,
148
+ className: _bundlePackagesModule["default"].tagDuplicate
149
+ });
146
150
 
147
151
  return /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
148
152
  className: _bundlePackagesModule["default"].packageName,
@@ -12,20 +12,12 @@
12
12
  margin-right: -1px; /** collapse border */
13
13
  }
14
14
 
15
- .duplicate {
15
+ .tagDuplicate {
16
16
  margin-right: var(--space-xxxsmall);
17
- display: inline-block;
18
- width: var(--space-small);
19
- height: var(--space-small);
20
- font-size: 10px;
21
- font-weight: bold;
22
- line-height: var(--space-small);
23
- text-align: center;
24
- text-transform: uppercase;
25
- vertical-align: middle;
17
+ }
26
18
 
27
- background: var(--color-danger);
28
- color: var(--color-light);
19
+ .tagDuplicate::before {
20
+ content: 'd';
29
21
  }
30
22
 
31
23
  .packageName {
@@ -28,6 +28,7 @@
28
28
  }
29
29
 
30
30
  .inverted {
31
+ border-radius: var(--radius-small);
31
32
  background-color: var(--color-gray-ultra-light);
32
33
  color: var(--color-light);
33
34
  }
@@ -5,6 +5,7 @@
5
5
  }
6
6
 
7
7
  .input {
8
+ border-radius: var(--radius-small) 0 0 var(--radius-small);
8
9
  height: var(--space-large);
9
10
  border-color: var(--color-outline);
10
11
  }
@@ -21,12 +22,12 @@
21
22
  cursor: pointer;
22
23
  border-radius: 50%;
23
24
  position: absolute;
24
- right: 0;
25
+ right: 2px;
25
26
  top: 50%;
26
27
  transform: translateY(-50%);
27
- padding: var(--space-xxsmall);
28
- width: var(--space-large);
29
- height: var(--space-large);
28
+ padding: var(--space-xxxsmall);
29
+ width: var(--space-medium);
30
+ height: var(--space-medium);
30
31
  background: radial-gradient(var(--color-background) 50%, transparent);
31
32
  color: var(--color-text-ultra-light);
32
33
  transition: var(--transition-in);
@@ -1,18 +1,29 @@
1
+ @import url("~modern-css-reset/dist/reset.css");
2
+
1
3
  :root {
2
4
  --chart-height: 180px;
3
5
  }
4
6
 
7
+ /** modern-css-reset updates */
8
+ pre,
9
+ ul,
10
+ ol,
11
+ button {
12
+ margin: 0;
13
+ }
14
+
5
15
  html {
16
+ font-family: var(--font-family);
6
17
  font-size: 81.25%;
7
- line-height: 1.8461;
18
+ line-height: 1.6;
8
19
  }
9
20
 
10
21
  body {
22
+ background: var(--color-background);
11
23
  color: var(--color-text);
12
24
  }
13
25
 
14
- h1, h2, h3, h4, h5 {
15
- margin-bottom: var(--space-small);
26
+ h1, h2, h3, h4, h5, h6 {
16
27
  color: var(--color-heading);
17
28
  font-weight: 500;
18
29
  }
@@ -23,30 +23,30 @@
23
23
  --size-xxlarge: 1.424rem;
24
24
  --size-xxxlarge: 1.602rem;
25
25
 
26
- --line-height: var(--space-medium);
26
+ --line-height: 1.6em;
27
27
 
28
28
  /*
29
29
  * Color scheme:
30
- * http://mcg.mbitson.com/#!?mcgpalette0=%23dd555e&mcgpalette1=%2363bf5e&mcgpalette2=%23f7e37d&mcgpalette3=%23636568&mcgpalette4=%233385d6&themename=mcgtheme
31
30
  * https://coolors.co/3385d6-dd555e-63bf5e-f7e37d-192339
31
+ * http://mcg.mbitson.com/#!?mcgpalette0=%23dd555e&mcgpalette1=%2363bf5e&mcgpalette2=%23f7e37d&mcgpalette3=%235b5d60&mcgpalette4=%233385d6&themename=mcgtheme
32
32
  */
33
33
  --color-gray-25: #fafafa;
34
- --color-gray-50: #eceded;
35
- --color-gray-100: #d0d1d2;
36
- --color-gray-200: #b1b2b4;
37
- --color-gray-300: #929395;
38
- --color-gray-400: #7a7c7f;
39
- --color-gray-500: #636568;
40
- --color-gray-600: #5b5d60;
41
- --color-gray-700: #515355;
42
- --color-gray-800: #47494b;
43
- --color-gray-900: #35373a;
34
+ --color-gray-50: #e4e4e5;
35
+ --color-gray-100: #cececf;
36
+ --color-gray-200: #adaeb0;
37
+ --color-gray-300: #8c8e90;
38
+ --color-gray-400: #747578;
39
+ --color-gray-500: #5b5d60;
40
+ --color-gray-600: #535558;
41
+ --color-gray-700: #494b4e;
42
+ --color-gray-800: #404144;
43
+ --color-gray-900: #2f3033;
44
44
 
45
45
  --color-gray-ultra-light: var(--color-gray-200);
46
46
  --color-gray-light: var(--color-gray-300);
47
47
  --color-gray: var(--color-gray-500);
48
- --color-gray-dark: var(--color-gray-700);
49
- --color-gray-ultra-dark: var(--color-gray-900);
48
+ --color-gray-dark: var(--color-gray-600);
49
+ --color-gray-ultra-dark: var(--color-gray-700);
50
50
 
51
51
  --color-red-25: #fdf5f6;
52
52
  --color-red-50: #fbebec;
@@ -170,7 +170,7 @@
170
170
  --color-outline-warning: var(--color-yellow-200);
171
171
  --color-outline-danger: var(--color-red-100);
172
172
 
173
- --color-shadow: rgba(0, 0, 0, 0.2);
173
+ --color-shadow: rgba(0, 0, 0, 0.1);
174
174
 
175
175
  --transition-in: all 0.2s ease-in;
176
176
  --transition-out: all 0.17s ease-out;
@@ -181,9 +181,9 @@
181
181
  --layer-high: 1000;
182
182
  --layer-xhigh: 10000;
183
183
 
184
- --radius-small: var(--space-xxxsmall);
185
- --radius-medium: var(--space-xxsmall);
186
- --radius-large: var(--space-small);
184
+ --radius-small: 2px;
185
+ --radius-medium: var(--space-xxxsmall);
186
+ --radius-large: var(--space-xxsmall);
187
187
 
188
188
  /** Layout */
189
189
  --max-width: 80rem;
@@ -4,6 +4,15 @@
4
4
 
5
5
  .outline {
6
6
  border: 1px solid var(--color-outline);
7
+ border-radius: var(--radius-medium);
8
+ }
9
+
10
+ .outline > :first-child {
11
+ border-radius: var(--radius-medium) var(--radius-medium) 0 0;
12
+ }
13
+
14
+ .outline > :last-child {
15
+ border-radius: 0 0 var(--radius-medium) var(--radius-medium);
7
16
  }
8
17
 
9
18
  .padding-xxxsmall {
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "Header", {
27
27
  return _header.Header;
28
28
  }
29
29
  });
30
+ Object.defineProperty(exports, "Separator", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _separator.Separator;
34
+ }
35
+ });
30
36
  Object.defineProperty(exports, "Stack", {
31
37
  enumerable: true,
32
38
  get: function get() {
@@ -46,6 +52,8 @@ var _footer = require("./footer");
46
52
 
47
53
  var _header = require("./header");
48
54
 
55
+ var _separator = require("./separator");
56
+
49
57
  var _subHeader = require("./sub-header");
50
58
 
51
59
  var _stack = require("./stack");
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Separator = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _separatorModule = _interopRequireDefault(require("./separator.module.css"));
15
+
16
+ var _excluded = ["className"];
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ 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); }
21
+
22
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
23
+
24
+ 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; }
25
+
26
+ var propTypes = {
27
+ className: _propTypes["default"].string
28
+ };
29
+ var defaultProps = {
30
+ className: ''
31
+ };
32
+ /**
33
+ * @param {PropTypes.InferProps<typeof propTypes>} props
34
+ * @return {React.FunctionComponentElement}
35
+ */
36
+
37
+ var Separator = function Separator(props) {
38
+ var className = props.className,
39
+ restProps = _objectWithoutProperties(props, _excluded);
40
+
41
+ return /*#__PURE__*/_react["default"].createElement("div", _extends({
42
+ className: (0, _classnames["default"])(_separatorModule["default"].root, className)
43
+ }, restProps));
44
+ };
45
+
46
+ exports.Separator = Separator;
47
+ Separator.propTypes = propTypes;
48
+ Separator.defaultProps = defaultProps;
@@ -0,0 +1,5 @@
1
+ .root {
2
+ background: var(--color-outline);
3
+ width: 100%;
4
+ height: 1px;
5
+ }
@@ -39,8 +39,7 @@ var Dropdown = function Dropdown(props) {
39
39
  className: rootClassName,
40
40
  tabIndex: null
41
41
  }), /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
42
- space: "xxxsmall",
43
- className: _dropdownModule["default"].label
42
+ space: "xxxsmall"
44
43
  }, glyph && /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
45
44
  className: _dropdownModule["default"].labelIcon,
46
45
  glyph: glyph
@@ -2,15 +2,9 @@
2
2
  background: none;
3
3
  border: none;
4
4
  padding: 0;
5
- }
6
5
 
7
- .root:focus {
8
- outline: none;
9
- box-shadow: 0 0 var(--space-xxxsmall) var(--color-shadow);
10
- }
11
-
12
- .label {
13
6
  border: 1px solid var(--color-outline);
7
+ border-radius: var(--radius-small);
14
8
  padding: calc(var(--space-xxsmall) - 1px);
15
9
  display: flex;
16
10
  align-items: center;
@@ -24,7 +18,11 @@
24
18
  color: var(--color-text-light);
25
19
  }
26
20
 
27
- .label:hover {
21
+ .root:hover,
22
+ .root:focus,
23
+ .root:active {
24
+ outline: none;
25
+ box-shadow: 0 0 var(--space-xxxsmall) var(--color-shadow);
28
26
  border-color: var(--color-outline-dark);
29
27
  color: var(--color-text);
30
28
  }
@@ -33,6 +31,7 @@
33
31
  position: absolute;
34
32
  left: 0;
35
33
  top: 100%;
34
+ border-radius: var(--radius-medium);
36
35
  box-shadow: 0 2px var(--space-xxsmall) var(--color-shadow);
37
36
  background: var(--color-background);
38
37
  min-width: 180px;
@@ -92,7 +92,8 @@ Filter.defaultProps = {
92
92
  };
93
93
 
94
94
  var FilterGroup = function FilterGroup(props) {
95
- var groupKey = props.groupKey,
95
+ var className = props.className,
96
+ groupKey = props.groupKey,
96
97
  data = props.data,
97
98
  values = props.values,
98
99
  onCheckboxChange = props.onCheckboxChange,
@@ -138,6 +139,7 @@ var FilterGroup = function FilterGroup(props) {
138
139
  };
139
140
 
140
141
  return /*#__PURE__*/_react["default"].createElement(_dropdown.Dropdown, {
142
+ className: className,
141
143
  label: dropdownLabel,
142
144
  ariaLabel: "".concat(groupLabel, ": ").concat(filterSuffix)
143
145
  }, function (_ref7) {
@@ -188,6 +190,7 @@ var FilterGroup = function FilterGroup(props) {
188
190
  };
189
191
 
190
192
  FilterGroup.propTypes = {
193
+ className: _propTypes["default"].string,
191
194
  groupKey: _propTypes["default"].string.isRequired,
192
195
  data: _propTypes["default"].object.isRequired,
193
196
  // eslint-disable-line react/forbid-prop-types
@@ -196,6 +199,9 @@ FilterGroup.propTypes = {
196
199
  onCheckboxChange: _propTypes["default"].func.isRequired,
197
200
  toggleFilters: _propTypes["default"].func.isRequired
198
201
  };
202
+ FilterGroup.defaultProps = {
203
+ className: ''
204
+ };
199
205
 
200
206
  var Filters = function Filters(props) {
201
207
  var className = props.className,
@@ -231,16 +237,15 @@ var Filters = function Filters(props) {
231
237
  });
232
238
  }
233
239
 
234
- return /*#__PURE__*/_react["default"].createElement("div", {
235
- className: _filtersModule["default"].item
236
- }, /*#__PURE__*/_react["default"].createElement(FilterGroup, {
240
+ return /*#__PURE__*/_react["default"].createElement(FilterGroup, {
241
+ className: _filtersModule["default"].item,
237
242
  key: name,
238
243
  groupKey: name,
239
244
  data: data,
240
245
  values: values,
241
246
  onCheckboxChange: onCheckboxChange,
242
247
  toggleFilters: toggleFilters
243
- }));
248
+ });
244
249
  })));
245
250
  };
246
251
 
@@ -11,6 +11,7 @@
11
11
  }
12
12
 
13
13
  .filterInput {
14
+ border-radius: var(--radius-small) 0 0 var(--radius-small);
14
15
  flex: 0 0 auto;
15
16
  height: 1em;
16
17
  cursor: pointer;
@@ -129,11 +130,20 @@
129
130
  }
130
131
 
131
132
  .item {
133
+ border-radius: 0;
132
134
  position: relative;
133
135
  flex: 0 0 auto;
134
136
  margin-right: -1px;
135
137
  }
136
138
 
139
+ .item:first-child {
140
+ border-radius: var(--radius-small) 0 0 var(--radius-small);
141
+ }
142
+
143
+ .item:last-child {
144
+ border-radius: 0 var(--radius-small) var(--radius-small) 0;
145
+ }
146
+
137
147
  .item:hover {
138
148
  z-index: var(--layer-low); /* show collapsed border */
139
149
  }
package/lib/ui/index.js CHANGED
@@ -105,6 +105,12 @@ Object.defineProperty(exports, "Tabs", {
105
105
  return _tabs.Tabs;
106
106
  }
107
107
  });
108
+ Object.defineProperty(exports, "Tag", {
109
+ enumerable: true,
110
+ get: function get() {
111
+ return _tag.Tag;
112
+ }
113
+ });
108
114
  Object.defineProperty(exports, "Tooltip", {
109
115
  enumerable: true,
110
116
  get: function get() {
@@ -146,4 +152,6 @@ var _table = require("./table");
146
152
 
147
153
  var _tabs = require("./tabs");
148
154
 
155
+ var _tag = require("./tag");
156
+
149
157
  var _tooltip = require("./tooltip");
@@ -13,10 +13,6 @@
13
13
  text-align: left;
14
14
  }
15
15
 
16
- tr:last-child .cell {
17
- border-bottom-width: 1px;
18
- }
19
-
20
16
  .root thead .cell {
21
17
  border-width: 0 0 2px;
22
18
  text-transform: uppercase;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _tag = require("./tag");
8
+
9
+ Object.keys(_tag).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _tag[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _tag[key];
16
+ }
17
+ });
18
+ });