@bundle-stats/ui 4.9.3-beta.1 → 4.9.3-beta.2

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 (44) hide show
  1. package/lib/ui/button/button.js +6 -2
  2. package/lib/ui/button/button.js.map +1 -1
  3. package/lib/ui/button/button.module.css +30 -1
  4. package/lib/ui/control-group/control-group.js +16 -0
  5. package/lib/ui/control-group/control-group.js.map +1 -0
  6. package/lib/ui/control-group/control-group.module.css +23 -0
  7. package/lib/ui/control-group/index.js +18 -0
  8. package/lib/ui/control-group/index.js.map +1 -0
  9. package/lib/ui/dropdown/dropdown.module.css +2 -2
  10. package/lib/ui/index.js +3 -1
  11. package/lib/ui/index.js.map +1 -1
  12. package/lib/ui/input-search/input-search.js +1 -2
  13. package/lib/ui/input-search/input-search.js.map +1 -1
  14. package/lib/ui/input-search/input-search.module.css +1 -7
  15. package/lib-esm/ui/button/button.js +6 -2
  16. package/lib-esm/ui/button/button.js.map +1 -1
  17. package/lib-esm/ui/button/button.module.css +30 -1
  18. package/lib-esm/ui/control-group/control-group.js +9 -0
  19. package/lib-esm/ui/control-group/control-group.js.map +1 -0
  20. package/lib-esm/ui/control-group/control-group.module.css +23 -0
  21. package/lib-esm/ui/control-group/index.js +2 -0
  22. package/lib-esm/ui/control-group/index.js.map +1 -0
  23. package/lib-esm/ui/dropdown/dropdown.module.css +2 -2
  24. package/lib-esm/ui/index.js +1 -0
  25. package/lib-esm/ui/index.js.map +1 -1
  26. package/lib-esm/ui/input-search/input-search.js +1 -2
  27. package/lib-esm/ui/input-search/input-search.js.map +1 -1
  28. package/lib-esm/ui/input-search/input-search.module.css +1 -7
  29. package/package.json +7 -7
  30. package/src/ui/button/button.module.css +30 -1
  31. package/src/ui/button/button.stories.tsx +112 -23
  32. package/src/ui/button/button.tsx +15 -1
  33. package/src/ui/control-group/control-group.module.css +23 -0
  34. package/src/ui/control-group/control-group.stories.tsx +24 -0
  35. package/src/ui/control-group/control-group.tsx +17 -0
  36. package/src/ui/control-group/index.ts +1 -0
  37. package/src/ui/dropdown/dropdown.module.css +2 -2
  38. package/src/ui/index.js +1 -0
  39. package/src/ui/input-search/input-search.module.css +1 -7
  40. package/src/ui/input-search/input-search.tsx +2 -4
  41. package/types/ui/button/button.d.ts +4 -0
  42. package/types/ui/control-group/control-group.d.ts +3 -0
  43. package/types/ui/control-group/index.d.ts +1 -0
  44. package/types/ui/index.d.ts +1 -0
@@ -7,6 +7,7 @@ exports.Button = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const classnames_1 = __importDefault(require("classnames"));
9
9
  const button_1 = require("ariakit/button");
10
+ const icon_1 = require("../icon");
10
11
  const button_module_css_1 = __importDefault(require("./button.module.css"));
11
12
  const SIZE = {
12
13
  SMALL: 'small',
@@ -22,11 +23,14 @@ const KIND = {
22
23
  SUCCES: 'success',
23
24
  };
24
25
  const Button = (props) => {
25
- const { className = '', outline = false, solid = false, active = false, kind = 'default', size = 'medium', radius = '', padding = '', as: Component = button_1.Button, ...restProps } = props;
26
+ const { className = '', outline = false, solid = false, active = false, kind = 'default', size = 'medium', radius = '', padding = '', as: Component = button_1.Button, children, Icon = icon_1.Icon, glyph, rightGlyph, ...restProps } = props;
26
27
  const resolvedPadding = padding || ((outline || solid) && size);
27
28
  const resolvedRadius = radius || ((outline || solid) && size);
28
29
  const rootClassName = (0, classnames_1.default)(button_module_css_1.default.root, button_module_css_1.default[size], kind && button_module_css_1.default[kind], outline && button_module_css_1.default.outline, outline && button_module_css_1.default[`outline--${kind}`], solid && button_module_css_1.default.solid, solid && button_module_css_1.default[`solid--${kind}`], resolvedPadding && button_module_css_1.default[`padding--${resolvedPadding}`], resolvedPadding && outline && button_module_css_1.default[`outline--padding--${resolvedPadding}`], resolvedRadius && button_module_css_1.default[`radius--${resolvedRadius}`], active && button_module_css_1.default.active, active && outline && button_module_css_1.default[`active-outline-${kind}`], button_module_css_1.default[size], className);
29
- return react_1.default.createElement(Component, { ...restProps, className: rootClassName });
30
+ return (react_1.default.createElement(Component, { ...restProps, className: rootClassName },
31
+ glyph && react_1.default.createElement(Icon, { glyph: glyph, size: size, className: button_module_css_1.default.glyph }),
32
+ children && react_1.default.createElement("span", { className: button_module_css_1.default.content }, children),
33
+ rightGlyph && react_1.default.createElement(Icon, { glyph: glyph, size: size, className: button_module_css_1.default.glyph })));
30
34
  };
31
35
  exports.Button = Button;
32
36
  exports.Button.SIZE = SIZE;
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/ui/button/button.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4DAA4B;AAC5B,2CAA+D;AAE/D,4EAAsC;AAEtC,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAEX,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,SAAS;CACT,CAAC;AAgBJ,MAAM,MAAM,GAAG,CACpB,KAAqF,EACrF,EAAE;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,EACd,IAAI,GAAG,SAAS,EAChB,IAAI,GAAG,QAAQ,EACf,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE,EACZ,EAAE,EAAE,SAAS,GAAG,eAAmB,EACnC,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IAGV,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAG,IAAA,oBAAE,EACtB,2BAAG,CAAC,IAAI,EACR,2BAAG,CAAC,IAAI,CAAC,EACT,IAAI,IAAI,2BAAG,CAAC,IAAI,CAAC,EAEjB,OAAO,IAAI,2BAAG,CAAC,OAAO,EACtB,OAAO,IAAI,2BAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAElC,KAAK,IAAI,2BAAG,CAAC,KAAK,EAClB,KAAK,IAAI,2BAAG,CAAC,UAAU,IAAI,EAAE,CAAC,EAE9B,eAAe,IAAI,2BAAG,CAAC,YAAY,eAAe,EAAE,CAAC,EACrD,eAAe,IAAI,OAAO,IAAI,2BAAG,CAAC,qBAAqB,eAAe,EAAE,CAAC,EACzE,cAAc,IAAI,2BAAG,CAAC,WAAW,cAAc,EAAE,CAAC,EAElD,MAAM,IAAI,2BAAG,CAAC,MAAM,EACpB,MAAM,IAAI,OAAO,IAAI,2BAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAElD,2BAAG,CAAC,IAAI,CAAC,EACT,SAAS,CACV,CAAC;IAEF,OAAO,8BAAC,SAAS,OAAK,SAAS,EAAE,SAAS,EAAE,aAAa,GAAI,CAAC;AAChE,CAAC,CAAC;AA3CW,QAAA,MAAM,UA2CjB;AAEF,cAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,cAAM,CAAC,IAAI,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/ui/button/button.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4DAA4B;AAC5B,2CAA+D;AAE/D,kCAA2C;AAC3C,4EAAsC;AAEtC,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAEX,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,SAAS;CACT,CAAC;AAmBJ,MAAM,MAAM,GAAG,CACpB,KAAqF,EACrF,EAAE;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,EACd,IAAI,GAAG,SAAS,EAChB,IAAI,GAAG,QAAQ,EACf,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE,EACZ,EAAE,EAAE,SAAS,GAAG,eAAmB,EACnC,QAAQ,EACR,IAAI,GAAG,WAAQ,EACf,KAAK,EACL,UAAU,EACV,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IAGV,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAG,IAAA,oBAAE,EACtB,2BAAG,CAAC,IAAI,EACR,2BAAG,CAAC,IAAI,CAAC,EACT,IAAI,IAAI,2BAAG,CAAC,IAAI,CAAC,EAEjB,OAAO,IAAI,2BAAG,CAAC,OAAO,EACtB,OAAO,IAAI,2BAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAElC,KAAK,IAAI,2BAAG,CAAC,KAAK,EAClB,KAAK,IAAI,2BAAG,CAAC,UAAU,IAAI,EAAE,CAAC,EAE9B,eAAe,IAAI,2BAAG,CAAC,YAAY,eAAe,EAAE,CAAC,EACrD,eAAe,IAAI,OAAO,IAAI,2BAAG,CAAC,qBAAqB,eAAe,EAAE,CAAC,EACzE,cAAc,IAAI,2BAAG,CAAC,WAAW,cAAc,EAAE,CAAC,EAElD,MAAM,IAAI,2BAAG,CAAC,MAAM,EACpB,MAAM,IAAI,OAAO,IAAI,2BAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAElD,2BAAG,CAAC,IAAI,CAAC,EACT,SAAS,CACV,CAAC;IAEF,OAAO,CACL,8BAAC,SAAS,OAAK,SAAS,EAAE,SAAS,EAAE,aAAa;QAC/C,KAAK,IAAI,8BAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,2BAAG,CAAC,KAAK,GAAI;QACjE,QAAQ,IAAI,wCAAM,SAAS,EAAE,2BAAG,CAAC,OAAO,IAAG,QAAQ,CAAQ;QAC3D,UAAU,IAAI,8BAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,2BAAG,CAAC,KAAK,GAAI,CAC7D,CACb,CAAC;AACJ,CAAC,CAAC;AArDW,QAAA,MAAM,UAqDjB;AAEF,cAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,cAAM,CAAC,IAAI,GAAG,IAAI,CAAC"}
@@ -1,11 +1,18 @@
1
1
  .root {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ gap: var(--space-xxsmall);
2
5
  appearance: none;
3
6
  padding: 0;
4
7
  border: 0;
5
8
  background: none;
6
9
  transition: var(--transition-out);
7
10
  color: var(--color-text-ultra-light);
8
- line-height: 1;
11
+ font-family: var(--font-family);
12
+ }
13
+
14
+ a.root {
15
+ text-decoration: none;
9
16
  }
10
17
 
11
18
  .root:hover,
@@ -15,6 +22,15 @@
15
22
  transition: var(--transition-in);
16
23
  }
17
24
 
25
+ .glyph {
26
+ flex: 0 0 auto;
27
+ }
28
+
29
+ .text {
30
+ min-width: 0;
31
+ flex: 1 1 auto;
32
+ }
33
+
18
34
  /**
19
35
  * Kind variation
20
36
  */
@@ -233,14 +249,27 @@
233
249
  */
234
250
  .small {
235
251
  font-size: var(--size-small);
252
+ gap: var(--space-xxxsmall);
253
+ line-height: var(--space-xsmall);
254
+ }
255
+
256
+ .small .glyph {
257
+ width: calc(var(--space-xsmall) + 2px);
258
+ height: calc(var(--space-xsmall) + 2px);
259
+ margin-top: -1px;
260
+ margin-bottom: -1px;
236
261
  }
237
262
 
238
263
  .medium {
239
264
  font-size: var(--size-medium);
265
+ gap: var(--space-xxsmall);
266
+ line-height: var(--space-small);
240
267
  }
241
268
 
242
269
  .large {
243
270
  font-size: var(--size-large);
271
+ gap: var(--space-xxsmall);
272
+ line-height: var(--space-small);
244
273
  }
245
274
 
246
275
  /**
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ControlGroup = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const classnames_1 = __importDefault(require("classnames"));
9
+ const flex_stack_1 = require("../../layout/flex-stack");
10
+ const control_group_module_css_1 = __importDefault(require("./control-group.module.css"));
11
+ const ControlGroup = (props) => {
12
+ const { className = '', ...restProps } = props;
13
+ return (react_1.default.createElement(flex_stack_1.FlexStack, { className: (0, classnames_1.default)(control_group_module_css_1.default.root, className), space: "no-space", alignItems: "center", ...restProps }));
14
+ };
15
+ exports.ControlGroup = ControlGroup;
16
+ //# sourceMappingURL=control-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-group.js","sourceRoot":"","sources":["../../../src/ui/control-group/control-group.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4DAA4B;AAE5B,wDAAoD;AACpD,0FAA6C;AAEtC,MAAM,YAAY,GAAG,CAAC,KAA6C,EAAE,EAAE;IAC5E,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAC/C,OAAO,CACL,8BAAC,sBAAS,IACR,SAAS,EAAE,IAAA,oBAAE,EAAC,kCAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAClC,KAAK,EAAC,UAAU,EAChB,UAAU,EAAC,QAAQ,KACf,SAAS,GACb,CACH,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,YAAY,gBAUvB"}
@@ -0,0 +1,23 @@
1
+ .root > *:not(:first-child) {
2
+ border-top-left-radius: 0px;
3
+ border-bottom-left-radius: 0px;
4
+
5
+ margin-left: -1px;
6
+ }
7
+
8
+ .root > *:not(:last-child) {
9
+ border-top-right-radius: 0px;
10
+ border-bottom-right-radius: 0px;
11
+ }
12
+
13
+ .root > * {
14
+ position: relative;
15
+ z-index: 0;
16
+ }
17
+
18
+ .root > *:hover,
19
+ .root > *:active,
20
+ .root > *:focus {
21
+ z-index: 1;
22
+ box-shadow: none;
23
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./control-group"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/control-group/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
@@ -41,7 +41,7 @@
41
41
  background: var(--color-background);
42
42
  min-width: 12em;
43
43
  z-index: var(--layer-high);
44
- padding: var(--space-xxxsmall);
44
+ padding: calc(var(--space-xxxsmall) / 2);
45
45
  }
46
46
 
47
47
  .dropdown:focus {
@@ -55,7 +55,7 @@
55
55
  outline: none;
56
56
  border: 0;
57
57
  border-radius: var(--radius-small);
58
- padding: var(--space-xxxsmall) var(--space-xxxsmall);
58
+ padding: var(--space-xxxsmall) calc(var(--space-xxxsmall) + var(--space-xxxsmall) / 2);
59
59
  background: none;
60
60
  text-align: left;
61
61
  color: var(--color-text-light);
package/lib/ui/index.js CHANGED
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Tooltip = exports.Tag = exports.Tabs = exports.Table = exports.Skeleton = exports.Loader = exports.InputSearch = exports.Input = exports.Icon = exports.HoverCard = exports.HorizontalBarChart = exports.Filters = exports.FileName = exports.EmptySet = exports.Dropdown = exports.Container = exports.Button = exports.Alert = void 0;
3
+ exports.Tooltip = exports.Tag = exports.Tabs = exports.Table = exports.Skeleton = exports.Loader = exports.InputSearch = exports.Input = exports.Icon = exports.HoverCard = exports.HorizontalBarChart = exports.Filters = exports.FileName = exports.EmptySet = exports.Dropdown = exports.ControlGroup = exports.Container = exports.Button = exports.Alert = void 0;
4
4
  var alert_1 = require("./alert");
5
5
  Object.defineProperty(exports, "Alert", { enumerable: true, get: function () { return alert_1.Alert; } });
6
6
  var button_1 = require("./button");
7
7
  Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return button_1.Button; } });
8
8
  var container_1 = require("./container");
9
9
  Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return container_1.Container; } });
10
+ var control_group_1 = require("./control-group");
11
+ Object.defineProperty(exports, "ControlGroup", { enumerable: true, get: function () { return control_group_1.ControlGroup; } });
10
12
  var dropdown_1 = require("./dropdown");
11
13
  Object.defineProperty(exports, "Dropdown", { enumerable: true, get: function () { return dropdown_1.Dropdown; } });
12
14
  var empty_set_1 = require("./empty-set");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.js"],"names":[],"mappings":";;;AAAA,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,qCAAoC;AAA3B,kGAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.js"],"names":[],"mappings":";;;AAAA,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,qCAAoC;AAA3B,kGAAA,OAAO,OAAA"}
@@ -57,8 +57,7 @@ const InputSearch = (props) => {
57
57
  }, [changeValue]);
58
58
  return (react_1.default.createElement("div", { className: rootClassname },
59
59
  react_1.default.createElement(input_1.Input, { className: input_search_module_css_1.default.input, placeholder: placeholder, onChange: inputOnChange, value: value, size: "small", autoComplete: "off" }),
60
- value && (react_1.default.createElement(button_1.Button, { radius: "circle", padding: "small", type: "button", onClick: clearButtonOnClick, "aria-label": "Clear search", className: input_search_module_css_1.default.cancelButton },
61
- react_1.default.createElement(icon_1.Icon, { className: input_search_module_css_1.default.cancelButtonIcon, glyph: icon_1.Icon.ICONS.CANCEL })))));
60
+ value && (react_1.default.createElement(button_1.Button, { radius: "circle", glyph: icon_1.Icon.ICONS.CANCEL, type: "button", onClick: clearButtonOnClick, "aria-label": "Clear search", className: input_search_module_css_1.default.cancelButton }))));
62
61
  };
63
62
  exports.InputSearch = InputSearch;
64
63
  //# sourceMappingURL=input-search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-search.js","sourceRoot":"","sources":["../../../src/ui/input-search/input-search.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgE;AAChE,4DAA4B;AAC5B,+DAAuC;AACvC,uDAA+B;AAE/B,sCAAmC;AACnC,kCAA+B;AAC/B,oCAAiC;AAEjC,wFAA4C;AASrC,MAAM,WAAW,GAAG,CACzB,KAAuE,EACvE,EAAE;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,WAAW,GAAG,QAAQ,EACtB,YAAY,GAAG,EAAE,EACjB,QAAQ,GAAG,cAAI,EACf,YAAY,GAAG,GAAG,GACnB,GAAG,KAAK,CAAC;IACV,MAAM,aAAa,GAAG,IAAA,oBAAE,EAAC,iCAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,YAAY,CAAC,CAAC;IAGjD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,qBAAqB,GAAG,IAAA,mBAAW,EAAC,IAAA,kBAAQ,EAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExF,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,CAAC,QAAgB,EAAE,EAAE;QACnB,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACpB;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB,CAAC;IAEF,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,CAAC,KAA0C,EAAE,EAAE;QAC7C,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,EACD,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC1C,WAAW,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACL,uCAAK,SAAS,EAAE,aAAa;QAC3B,8BAAC,aAAK,IACJ,SAAS,EAAE,iCAAG,CAAC,KAAK,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,OAAO,EACZ,YAAY,EAAC,KAAK,GAClB;QACD,KAAK,IAAI,CACR,8BAAC,eAAM,IACL,MAAM,EAAC,QAAQ,EACf,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,kBAAkB,gBAChB,cAAc,EACzB,SAAS,EAAE,iCAAG,CAAC,YAAY;YAE3B,8BAAC,WAAI,IAAC,SAAS,EAAE,iCAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,WAAI,CAAC,KAAK,CAAC,MAAM,GAAI,CAC5D,CACV,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAlEW,QAAA,WAAW,eAkEtB"}
1
+ {"version":3,"file":"input-search.js","sourceRoot":"","sources":["../../../src/ui/input-search/input-search.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgE;AAChE,4DAA4B;AAC5B,+DAAuC;AACvC,uDAA+B;AAE/B,sCAAmC;AACnC,kCAA+B;AAC/B,oCAAiC;AAEjC,wFAA4C;AASrC,MAAM,WAAW,GAAG,CACzB,KAAuE,EACvE,EAAE;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,WAAW,GAAG,QAAQ,EACtB,YAAY,GAAG,EAAE,EACjB,QAAQ,GAAG,cAAI,EACf,YAAY,GAAG,GAAG,GACnB,GAAG,KAAK,CAAC;IACV,MAAM,aAAa,GAAG,IAAA,oBAAE,EAAC,iCAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,YAAY,CAAC,CAAC;IAGjD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,qBAAqB,GAAG,IAAA,mBAAW,EAAC,IAAA,kBAAQ,EAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExF,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,CAAC,QAAgB,EAAE,EAAE;QACnB,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACpB;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB,CAAC;IAEF,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,CAAC,KAA0C,EAAE,EAAE;QAC7C,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,EACD,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC1C,WAAW,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACL,uCAAK,SAAS,EAAE,aAAa;QAC3B,8BAAC,aAAK,IACJ,SAAS,EAAE,iCAAG,CAAC,KAAK,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,OAAO,EACZ,YAAY,EAAC,KAAK,GAClB;QACD,KAAK,IAAI,CACR,8BAAC,eAAM,IACL,MAAM,EAAC,QAAQ,EACf,KAAK,EAAE,WAAI,CAAC,KAAK,CAAC,MAAM,EACxB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,kBAAkB,gBAChB,cAAc,EACzB,SAAS,EAAE,iCAAG,CAAC,YAAY,GAC3B,CACH,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAhEW,QAAA,WAAW,eAgEtB"}
@@ -13,12 +13,6 @@
13
13
  right: var(--space-xxxsmall);
14
14
  top: 50%;
15
15
  transform: translateY(-50%);
16
+ padding: var(--space-xxxsmall);
16
17
  background: radial-gradient(var(--color-background) 50%, transparent);
17
- color: var(--color-text-ultra-light);
18
- }
19
-
20
- .cancelButton:focus,
21
- .cancelButton:hover,
22
- .cancelButton:active {
23
- color: var(--color-text-light);
24
18
  }
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import cx from 'classnames';
3
3
  import { Button as ButtonBaseComponent } from 'ariakit/button';
4
+ import { Icon as BaseIcon } from '../icon';
4
5
  import css from './button.module.css';
5
6
  const SIZE = {
6
7
  SMALL: 'small',
@@ -16,11 +17,14 @@ const KIND = {
16
17
  SUCCES: 'success',
17
18
  };
18
19
  export const Button = (props) => {
19
- const { className = '', outline = false, solid = false, active = false, kind = 'default', size = 'medium', radius = '', padding = '', as: Component = ButtonBaseComponent, ...restProps } = props;
20
+ const { className = '', outline = false, solid = false, active = false, kind = 'default', size = 'medium', radius = '', padding = '', as: Component = ButtonBaseComponent, children, Icon = BaseIcon, glyph, rightGlyph, ...restProps } = props;
20
21
  const resolvedPadding = padding || ((outline || solid) && size);
21
22
  const resolvedRadius = radius || ((outline || solid) && size);
22
23
  const rootClassName = cx(css.root, css[size], kind && css[kind], outline && css.outline, outline && css[`outline--${kind}`], solid && css.solid, solid && css[`solid--${kind}`], resolvedPadding && css[`padding--${resolvedPadding}`], resolvedPadding && outline && css[`outline--padding--${resolvedPadding}`], resolvedRadius && css[`radius--${resolvedRadius}`], active && css.active, active && outline && css[`active-outline-${kind}`], css[size], className);
23
- return React.createElement(Component, { ...restProps, className: rootClassName });
24
+ return (React.createElement(Component, { ...restProps, className: rootClassName },
25
+ glyph && React.createElement(Icon, { glyph: glyph, size: size, className: css.glyph }),
26
+ children && React.createElement("span", { className: css.content }, children),
27
+ rightGlyph && React.createElement(Icon, { glyph: glyph, size: size, className: css.glyph })));
24
28
  };
25
29
  Button.SIZE = SIZE;
26
30
  Button.KIND = KIND;
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/ui/button/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,GAAG,MAAM,qBAAqB,CAAC;AAEtC,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAEX,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,SAAS;CACT,CAAC;AAgBX,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,KAAqF,EACrF,EAAE;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,EACd,IAAI,GAAG,SAAS,EAChB,IAAI,GAAG,QAAQ,EACf,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE,EACZ,EAAE,EAAE,SAAS,GAAG,mBAAmB,EACnC,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IAGV,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAG,EAAE,CACtB,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,CAAC,EACT,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,EAEjB,OAAO,IAAI,GAAG,CAAC,OAAO,EACtB,OAAO,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAElC,KAAK,IAAI,GAAG,CAAC,KAAK,EAClB,KAAK,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,EAE9B,eAAe,IAAI,GAAG,CAAC,YAAY,eAAe,EAAE,CAAC,EACrD,eAAe,IAAI,OAAO,IAAI,GAAG,CAAC,qBAAqB,eAAe,EAAE,CAAC,EACzE,cAAc,IAAI,GAAG,CAAC,WAAW,cAAc,EAAE,CAAC,EAElD,MAAM,IAAI,GAAG,CAAC,MAAM,EACpB,MAAM,IAAI,OAAO,IAAI,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAElD,GAAG,CAAC,IAAI,CAAC,EACT,SAAS,CACV,CAAC;IAEF,OAAO,oBAAC,SAAS,OAAK,SAAS,EAAE,SAAS,EAAE,aAAa,GAAI,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/ui/button/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,GAAG,MAAM,qBAAqB,CAAC;AAEtC,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAEX,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,SAAS;CACT,CAAC;AAmBX,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,KAAqF,EACrF,EAAE;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,EACd,IAAI,GAAG,SAAS,EAChB,IAAI,GAAG,QAAQ,EACf,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE,EACZ,EAAE,EAAE,SAAS,GAAG,mBAAmB,EACnC,QAAQ,EACR,IAAI,GAAG,QAAQ,EACf,KAAK,EACL,UAAU,EACV,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IAGV,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAG,EAAE,CACtB,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,CAAC,EACT,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,EAEjB,OAAO,IAAI,GAAG,CAAC,OAAO,EACtB,OAAO,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAElC,KAAK,IAAI,GAAG,CAAC,KAAK,EAClB,KAAK,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,EAE9B,eAAe,IAAI,GAAG,CAAC,YAAY,eAAe,EAAE,CAAC,EACrD,eAAe,IAAI,OAAO,IAAI,GAAG,CAAC,qBAAqB,eAAe,EAAE,CAAC,EACzE,cAAc,IAAI,GAAG,CAAC,WAAW,cAAc,EAAE,CAAC,EAElD,MAAM,IAAI,GAAG,CAAC,MAAM,EACpB,MAAM,IAAI,OAAO,IAAI,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAElD,GAAG,CAAC,IAAI,CAAC,EACT,SAAS,CACV,CAAC;IAEF,OAAO,CACL,oBAAC,SAAS,OAAK,SAAS,EAAE,SAAS,EAAE,aAAa;QAC/C,KAAK,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,GAAI;QACjE,QAAQ,IAAI,8BAAM,SAAS,EAAE,GAAG,CAAC,OAAO,IAAG,QAAQ,CAAQ;QAC3D,UAAU,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,GAAI,CAC7D,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC"}
@@ -1,11 +1,18 @@
1
1
  .root {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ gap: var(--space-xxsmall);
2
5
  appearance: none;
3
6
  padding: 0;
4
7
  border: 0;
5
8
  background: none;
6
9
  transition: var(--transition-out);
7
10
  color: var(--color-text-ultra-light);
8
- line-height: 1;
11
+ font-family: var(--font-family);
12
+ }
13
+
14
+ a.root {
15
+ text-decoration: none;
9
16
  }
10
17
 
11
18
  .root:hover,
@@ -15,6 +22,15 @@
15
22
  transition: var(--transition-in);
16
23
  }
17
24
 
25
+ .glyph {
26
+ flex: 0 0 auto;
27
+ }
28
+
29
+ .text {
30
+ min-width: 0;
31
+ flex: 1 1 auto;
32
+ }
33
+
18
34
  /**
19
35
  * Kind variation
20
36
  */
@@ -233,14 +249,27 @@
233
249
  */
234
250
  .small {
235
251
  font-size: var(--size-small);
252
+ gap: var(--space-xxxsmall);
253
+ line-height: var(--space-xsmall);
254
+ }
255
+
256
+ .small .glyph {
257
+ width: calc(var(--space-xsmall) + 2px);
258
+ height: calc(var(--space-xsmall) + 2px);
259
+ margin-top: -1px;
260
+ margin-bottom: -1px;
236
261
  }
237
262
 
238
263
  .medium {
239
264
  font-size: var(--size-medium);
265
+ gap: var(--space-xxsmall);
266
+ line-height: var(--space-small);
240
267
  }
241
268
 
242
269
  .large {
243
270
  font-size: var(--size-large);
271
+ gap: var(--space-xxsmall);
272
+ line-height: var(--space-small);
244
273
  }
245
274
 
246
275
  /**
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import cx from 'classnames';
3
+ import { FlexStack } from '../../layout/flex-stack';
4
+ import css from './control-group.module.css';
5
+ export const ControlGroup = (props) => {
6
+ const { className = '', ...restProps } = props;
7
+ return (React.createElement(FlexStack, { className: cx(css.root, className), space: "no-space", alignItems: "center", ...restProps }));
8
+ };
9
+ //# sourceMappingURL=control-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-group.js","sourceRoot":"","sources":["../../../src/ui/control-group/control-group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAA6C,EAAE,EAAE;IAC5E,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAC/C,OAAO,CACL,oBAAC,SAAS,IACR,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAClC,KAAK,EAAC,UAAU,EAChB,UAAU,EAAC,QAAQ,KACf,SAAS,GACb,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ .root > *:not(:first-child) {
2
+ border-top-left-radius: 0px;
3
+ border-bottom-left-radius: 0px;
4
+
5
+ margin-left: -1px;
6
+ }
7
+
8
+ .root > *:not(:last-child) {
9
+ border-top-right-radius: 0px;
10
+ border-bottom-right-radius: 0px;
11
+ }
12
+
13
+ .root > * {
14
+ position: relative;
15
+ z-index: 0;
16
+ }
17
+
18
+ .root > *:hover,
19
+ .root > *:active,
20
+ .root > *:focus {
21
+ z-index: 1;
22
+ box-shadow: none;
23
+ }
@@ -0,0 +1,2 @@
1
+ export * from './control-group';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/control-group/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -41,7 +41,7 @@
41
41
  background: var(--color-background);
42
42
  min-width: 12em;
43
43
  z-index: var(--layer-high);
44
- padding: var(--space-xxxsmall);
44
+ padding: calc(var(--space-xxxsmall) / 2);
45
45
  }
46
46
 
47
47
  .dropdown:focus {
@@ -55,7 +55,7 @@
55
55
  outline: none;
56
56
  border: 0;
57
57
  border-radius: var(--radius-small);
58
- padding: var(--space-xxxsmall) var(--space-xxxsmall);
58
+ padding: var(--space-xxxsmall) calc(var(--space-xxxsmall) + var(--space-xxxsmall) / 2);
59
59
  background: none;
60
60
  text-align: left;
61
61
  color: var(--color-text-light);
@@ -1,6 +1,7 @@
1
1
  export { Alert } from './alert';
2
2
  export { Button } from './button';
3
3
  export { Container } from './container';
4
+ export { ControlGroup } from './control-group';
4
5
  export { Dropdown } from './dropdown';
5
6
  export { EmptySet } from './empty-set';
6
7
  export { FileName } from './file-name';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -28,7 +28,6 @@ export const InputSearch = (props) => {
28
28
  }, [changeValue]);
29
29
  return (React.createElement("div", { className: rootClassname },
30
30
  React.createElement(Input, { className: css.input, placeholder: placeholder, onChange: inputOnChange, value: value, size: "small", autoComplete: "off" }),
31
- value && (React.createElement(Button, { radius: "circle", padding: "small", type: "button", onClick: clearButtonOnClick, "aria-label": "Clear search", className: css.cancelButton },
32
- React.createElement(Icon, { className: css.cancelButtonIcon, glyph: Icon.ICONS.CANCEL })))));
31
+ value && (React.createElement(Button, { radius: "circle", glyph: Icon.ICONS.CANCEL, type: "button", onClick: clearButtonOnClick, "aria-label": "Clear search", className: css.cancelButton }))));
33
32
  };
34
33
  //# sourceMappingURL=input-search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-search.js","sourceRoot":"","sources":["../../../src/ui/input-search/input-search.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,IAAI,MAAM,aAAa,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,GAAG,MAAM,2BAA2B,CAAC;AAS5C,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAuE,EACvE,EAAE;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,WAAW,GAAG,QAAQ,EACtB,YAAY,GAAG,EAAE,EACjB,QAAQ,GAAG,IAAI,EACf,YAAY,GAAG,GAAG,GACnB,GAAG,KAAK,CAAC;IACV,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAGjD,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,qBAAqB,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,QAAgB,EAAE,EAAE;QACnB,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACpB;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,KAA0C,EAAE,EAAE;QAC7C,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,EACD,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,WAAW,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACL,6BAAK,SAAS,EAAE,aAAa;QAC3B,oBAAC,KAAK,IACJ,SAAS,EAAE,GAAG,CAAC,KAAK,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,OAAO,EACZ,YAAY,EAAC,KAAK,GAClB;QACD,KAAK,IAAI,CACR,oBAAC,MAAM,IACL,MAAM,EAAC,QAAQ,EACf,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,kBAAkB,gBAChB,cAAc,EACzB,SAAS,EAAE,GAAG,CAAC,YAAY;YAE3B,oBAAC,IAAI,IAAC,SAAS,EAAE,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAI,CAC5D,CACV,CACG,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"input-search.js","sourceRoot":"","sources":["../../../src/ui/input-search/input-search.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,IAAI,MAAM,aAAa,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,GAAG,MAAM,2BAA2B,CAAC;AAS5C,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAuE,EACvE,EAAE;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,WAAW,GAAG,QAAQ,EACtB,YAAY,GAAG,EAAE,EACjB,QAAQ,GAAG,IAAI,EACf,YAAY,GAAG,GAAG,GACnB,GAAG,KAAK,CAAC;IACV,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAGjD,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,qBAAqB,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,QAAgB,EAAE,EAAE;QACnB,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACpB;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,KAA0C,EAAE,EAAE;QAC7C,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,EACD,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,WAAW,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACL,6BAAK,SAAS,EAAE,aAAa;QAC3B,oBAAC,KAAK,IACJ,SAAS,EAAE,GAAG,CAAC,KAAK,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,OAAO,EACZ,YAAY,EAAC,KAAK,GAClB;QACD,KAAK,IAAI,CACR,oBAAC,MAAM,IACL,MAAM,EAAC,QAAQ,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACxB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,kBAAkB,gBAChB,cAAc,EACzB,SAAS,EAAE,GAAG,CAAC,YAAY,GAC3B,CACH,CACG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -13,12 +13,6 @@
13
13
  right: var(--space-xxxsmall);
14
14
  top: 50%;
15
15
  transform: translateY(-50%);
16
+ padding: var(--space-xxxsmall);
16
17
  background: radial-gradient(var(--color-background) 50%, transparent);
17
- color: var(--color-text-ultra-light);
18
- }
19
-
20
- .cancelButton:focus,
21
- .cancelButton:hover,
22
- .cancelButton:active {
23
- color: var(--color-text-light);
24
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bundle-stats/ui",
3
- "version": "4.9.3-beta.1",
3
+ "version": "4.9.3-beta.2",
4
4
  "description": "UI components for BundleStats projects.",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -39,9 +39,9 @@
39
39
  "@babel/preset-env": "7.23.9",
40
40
  "@babel/preset-react": "7.23.3",
41
41
  "@babel/preset-typescript": "7.23.3",
42
- "@storybook/addon-essentials": "7.6.14",
43
- "@storybook/react": "7.6.14",
44
- "@storybook/react-webpack5": "7.6.14",
42
+ "@storybook/addon-essentials": "7.6.15",
43
+ "@storybook/react": "7.6.15",
44
+ "@storybook/react-webpack5": "7.6.15",
45
45
  "@types/react": "18.2.55",
46
46
  "@types/react-router-dom": "5.3.3",
47
47
  "babel-plugin-require-context-hook": "1.0.0",
@@ -59,7 +59,7 @@
59
59
  "react-dom": "18.2.0",
60
60
  "react-router-dom": "5.3.4",
61
61
  "rimraf": "5.0.5",
62
- "storybook": "7.6.14",
62
+ "storybook": "7.6.15",
63
63
  "typescript": "5.1.6",
64
64
  "typescript-plugin-css-modules": "5.1.0"
65
65
  },
@@ -72,10 +72,10 @@
72
72
  "react-router-dom": "^5.0.0"
73
73
  },
74
74
  "dependencies": {
75
- "@bundle-stats/utils": "4.9.3-beta.1",
75
+ "@bundle-stats/utils": "4.9.3-beta.2",
76
76
  "ariakit": "2.0.0-next.44",
77
77
  "modern-css-reset": "1.4.0",
78
78
  "use-query-params": "2.2.1"
79
79
  },
80
- "gitHead": "b9d91632ef75366b05184a82c52fead61497babe"
80
+ "gitHead": "457a1e579bfd143165d6bfb15c392db9be88867c"
81
81
  }
@@ -1,11 +1,18 @@
1
1
  .root {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ gap: var(--space-xxsmall);
2
5
  appearance: none;
3
6
  padding: 0;
4
7
  border: 0;
5
8
  background: none;
6
9
  transition: var(--transition-out);
7
10
  color: var(--color-text-ultra-light);
8
- line-height: 1;
11
+ font-family: var(--font-family);
12
+ }
13
+
14
+ a.root {
15
+ text-decoration: none;
9
16
  }
10
17
 
11
18
  .root:hover,
@@ -15,6 +22,15 @@
15
22
  transition: var(--transition-in);
16
23
  }
17
24
 
25
+ .glyph {
26
+ flex: 0 0 auto;
27
+ }
28
+
29
+ .text {
30
+ min-width: 0;
31
+ flex: 1 1 auto;
32
+ }
33
+
18
34
  /**
19
35
  * Kind variation
20
36
  */
@@ -233,14 +249,27 @@
233
249
  */
234
250
  .small {
235
251
  font-size: var(--size-small);
252
+ gap: var(--space-xxxsmall);
253
+ line-height: var(--space-xsmall);
254
+ }
255
+
256
+ .small .glyph {
257
+ width: calc(var(--space-xsmall) + 2px);
258
+ height: calc(var(--space-xsmall) + 2px);
259
+ margin-top: -1px;
260
+ margin-bottom: -1px;
236
261
  }
237
262
 
238
263
  .medium {
239
264
  font-size: var(--size-medium);
265
+ gap: var(--space-xxsmall);
266
+ line-height: var(--space-small);
240
267
  }
241
268
 
242
269
  .large {
243
270
  font-size: var(--size-large);
271
+ gap: var(--space-xxsmall);
272
+ line-height: var(--space-small);
244
273
  }
245
274
 
246
275
  /**
@@ -3,6 +3,7 @@ import { Meta, Story } from '@storybook/react';
3
3
 
4
4
  import { Stack } from '../../layout/stack';
5
5
  import { FlexStack } from '../../layout/flex-stack';
6
+ import { Icon } from '../icon';
6
7
  import { Button } from '.';
7
8
 
8
9
  export default {
@@ -14,53 +15,73 @@ const Template: Story = ({ children = 'Action', ...props }) => (
14
15
  <Button {...props}>{children}</Button>
15
16
  );
16
17
 
18
+ const Items = (props) => (
19
+ <FlexStack alignItems="top" style={{ flexWrap: 'wrap', gap: '12px' }} {...props} />
20
+ );
21
+
17
22
  export const Default = Template.bind({});
18
23
 
19
24
  export const All = () => (
20
25
  <Stack space="large">
21
26
  <Stack space="medium">
22
27
  <h2>Size</h2>
23
- <FlexStack space="small" alignItems="top">
28
+ <Items>
24
29
  {Object.values(Button.SIZE).map((size) => (
25
30
  <Button size={size} key={size}>
26
31
  Action {size}
27
32
  </Button>
28
33
  ))}
29
- </FlexStack>
34
+ </Items>
30
35
  </Stack>
31
36
  <Stack space="medium">
32
37
  <h2>Kind</h2>
33
- <Stack space="small">
34
- <FlexStack space="small" alignItems="top">
38
+ <Stack space="medium">
39
+ <Items>
35
40
  {Object.values(Button.KIND).map((kind) => (
36
41
  <Button kind={kind} key={kind}>
37
42
  Action {kind}
38
43
  </Button>
39
44
  ))}
40
- </FlexStack>
45
+ </Items>
41
46
  <h3>Active</h3>
42
- <FlexStack space="small" alignItems="top">
47
+ <Items>
43
48
  {Object.values(Button.KIND).map((kind) => (
44
49
  <Button kind={kind} key={kind} active>
45
50
  Action {kind}
46
51
  </Button>
47
52
  ))}
48
- </FlexStack>
53
+ </Items>
54
+ <h3>As link</h3>
55
+ <Items>
56
+ {Object.values(Button.KIND).map((kind) => (
57
+ <Button kind={kind} key={kind} as="a" href="#">
58
+ Action {kind}
59
+ </Button>
60
+ ))}
61
+ </Items>
62
+ <h3>With icon</h3>
63
+ <Items>
64
+ {Object.values(Button.KIND).map((kind) => (
65
+ <Button glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE} kind={kind} key={kind}>
66
+ Action {kind}
67
+ </Button>
68
+ ))}
69
+ </Items>
49
70
  <h3>Disabled</h3>
50
- <FlexStack space="small" alignItems="top">
71
+ <Items>
51
72
  {Object.values(Button.KIND).map((kind) => (
52
73
  <Button kind={kind} key={kind} disabled>
53
74
  Action {kind}
54
75
  </Button>
55
76
  ))}
56
- </FlexStack>
77
+ </Items>
57
78
  </Stack>
58
79
  </Stack>
59
80
  <Stack space="medium">
60
81
  <h2>Outline & Kind</h2>
61
- <Stack space="small">
82
+ <Stack space="medium">
62
83
  {Object.values(Button.SIZE).map((size) => (
63
- <FlexStack space="small" alignItems="top" key={size}>
84
+ <Items key={size}>
64
85
  <Button outline size={size}>
65
86
  Action default
66
87
  </Button>
@@ -69,10 +90,10 @@ export const All = () => (
69
90
  Action {kind}
70
91
  </Button>
71
92
  ))}
72
- </FlexStack>
93
+ </Items>
73
94
  ))}
74
95
  <h3>Active</h3>
75
- <FlexStack space="small" alignItems="top">
96
+ <Items>
76
97
  <Button outline active>
77
98
  Action default
78
99
  </Button>
@@ -81,9 +102,43 @@ export const All = () => (
81
102
  Action {kind}
82
103
  </Button>
83
104
  ))}
84
- </FlexStack>
105
+ </Items>
106
+ <h3>With icon</h3>
107
+ {Object.values(Button.SIZE).map((size) => (
108
+ <Items key={size}>
109
+ <Button glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE} outline size={size}>
110
+ Action default
111
+ </Button>
112
+ {Object.values(Button.KIND).map((kind) => (
113
+ <Button
114
+ glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE}
115
+ outline
116
+ kind={kind}
117
+ size={size}
118
+ key={kind}
119
+ >
120
+ Action {kind}
121
+ </Button>
122
+ ))}
123
+ </Items>
124
+ ))}
125
+ <h3>Only icon</h3>
126
+ {Object.values(Button.SIZE).map((size) => (
127
+ <Items key={size}>
128
+ <Button glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE} outline size={size} />
129
+ {Object.values(Button.KIND).map((kind) => (
130
+ <Button
131
+ glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE}
132
+ outline
133
+ kind={kind}
134
+ size={size}
135
+ key={kind}
136
+ />
137
+ ))}
138
+ </Items>
139
+ ))}
85
140
  <h3>Disabled</h3>
86
- <FlexStack space="small" alignItems="top">
141
+ <Items>
87
142
  <Button outline disabled>
88
143
  Action default
89
144
  </Button>
@@ -92,14 +147,14 @@ export const All = () => (
92
147
  Action {kind}
93
148
  </Button>
94
149
  ))}
95
- </FlexStack>
150
+ </Items>
96
151
  </Stack>
97
152
  </Stack>
98
153
  <Stack space="medium">
99
154
  <h2>Solid & Kind</h2>
100
- <Stack space="small">
155
+ <Stack space="medium">
101
156
  {Object.values(Button.SIZE).map((size) => (
102
- <FlexStack space="small" alignItems="top" key={size}>
157
+ <Items key={size}>
103
158
  <Button solid size={size}>
104
159
  Action default
105
160
  </Button>
@@ -108,10 +163,10 @@ export const All = () => (
108
163
  Action {kind}
109
164
  </Button>
110
165
  ))}
111
- </FlexStack>
166
+ </Items>
112
167
  ))}
113
168
  <h3>Active</h3>
114
- <FlexStack space="small" alignItems="top">
169
+ <Items>
115
170
  <Button solid active>
116
171
  Action default
117
172
  </Button>
@@ -120,9 +175,43 @@ export const All = () => (
120
175
  Action {kind}
121
176
  </Button>
122
177
  ))}
123
- </FlexStack>
178
+ </Items>
179
+ <h3>With icon</h3>
180
+ {Object.values(Button.SIZE).map((size) => (
181
+ <Items key={size}>
182
+ <Button glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE} solid size={size}>
183
+ Action default
184
+ </Button>
185
+ {Object.values(Button.KIND).map((kind) => (
186
+ <Button
187
+ glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE}
188
+ solid
189
+ kind={kind}
190
+ size={size}
191
+ key={kind}
192
+ >
193
+ Action {kind}
194
+ </Button>
195
+ ))}
196
+ </Items>
197
+ ))}
198
+ <h3>Only icon</h3>
199
+ {Object.values(Button.SIZE).map((size) => (
200
+ <Items key={size}>
201
+ <Button glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE} solid size={size} />
202
+ {Object.values(Button.KIND).map((kind) => (
203
+ <Button
204
+ glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE}
205
+ solid
206
+ kind={kind}
207
+ size={size}
208
+ key={kind}
209
+ />
210
+ ))}
211
+ </Items>
212
+ ))}
124
213
  <h3>Disabled</h3>
125
- <FlexStack space="small" alignItems="top">
214
+ <Items>
126
215
  <Button solid disabled>
127
216
  Action default
128
217
  </Button>
@@ -131,7 +220,7 @@ export const All = () => (
131
220
  Action {kind}
132
221
  </Button>
133
222
  ))}
134
- </FlexStack>
223
+ </Items>
135
224
  </Stack>
136
225
  </Stack>
137
226
  </Stack>
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import cx from 'classnames';
3
3
  import { Button as ButtonBaseComponent } from 'ariakit/button';
4
4
 
5
+ import { Icon as BaseIcon } from '../icon';
5
6
  import css from './button.module.css';
6
7
 
7
8
  const SIZE = {
@@ -31,6 +32,9 @@ interface ButtonProps<T extends React.ElementType> {
31
32
  radius?: Size | 'circle' | 'none';
32
33
  padding?: Size | 'none';
33
34
  as?: T;
35
+ Icon?: React.ElementType;
36
+ glyph?: React.ComponentProps<typeof BaseIcon>['glyph'];
37
+ rightGlyph?: React.ComponentProps<typeof BaseIcon>['glyph'];
34
38
  }
35
39
 
36
40
  export const Button = <T extends React.ElementType = 'button'>(
@@ -46,6 +50,10 @@ export const Button = <T extends React.ElementType = 'button'>(
46
50
  radius = '',
47
51
  padding = '',
48
52
  as: Component = ButtonBaseComponent,
53
+ children,
54
+ Icon = BaseIcon,
55
+ glyph,
56
+ rightGlyph,
49
57
  ...restProps
50
58
  } = props;
51
59
 
@@ -75,7 +83,13 @@ export const Button = <T extends React.ElementType = 'button'>(
75
83
  className,
76
84
  );
77
85
 
78
- return <Component {...restProps} className={rootClassName} />;
86
+ return (
87
+ <Component {...restProps} className={rootClassName}>
88
+ {glyph && <Icon glyph={glyph} size={size} className={css.glyph} />}
89
+ {children && <span className={css.content}>{children}</span>}
90
+ {rightGlyph && <Icon glyph={glyph} size={size} className={css.glyph} />}
91
+ </Component>
92
+ );
79
93
  };
80
94
 
81
95
  Button.SIZE = SIZE;
@@ -0,0 +1,23 @@
1
+ .root > *:not(:first-child) {
2
+ border-top-left-radius: 0px;
3
+ border-bottom-left-radius: 0px;
4
+
5
+ margin-left: -1px;
6
+ }
7
+
8
+ .root > *:not(:last-child) {
9
+ border-top-right-radius: 0px;
10
+ border-bottom-right-radius: 0px;
11
+ }
12
+
13
+ .root > * {
14
+ position: relative;
15
+ z-index: 0;
16
+ }
17
+
18
+ .root > *:hover,
19
+ .root > *:active,
20
+ .root > *:focus {
21
+ z-index: 1;
22
+ box-shadow: none;
23
+ }
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { Meta } from '@storybook/react';
3
+
4
+ import { Button } from '../button';
5
+ import { ControlGroup } from '.';
6
+
7
+ export default {
8
+ title: 'UI/ControlGroup',
9
+ component: ControlGroup,
10
+ } as Meta;
11
+
12
+ export const Default = () => (
13
+ <ControlGroup>
14
+ <Button outline type="button">
15
+ Option A
16
+ </Button>
17
+ <Button outline type="button">
18
+ Option B
19
+ </Button>
20
+ <Button outline type="button">
21
+ Option C
22
+ </Button>
23
+ </ControlGroup>
24
+ );
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import cx from 'classnames';
3
+
4
+ import { FlexStack } from '../../layout/flex-stack';
5
+ import css from './control-group.module.css';
6
+
7
+ export const ControlGroup = (props: React.ComponentProps<typeof FlexStack>) => {
8
+ const { className = '', ...restProps } = props;
9
+ return (
10
+ <FlexStack
11
+ className={cx(css.root, className)}
12
+ space="no-space"
13
+ alignItems="center"
14
+ {...restProps}
15
+ />
16
+ );
17
+ };
@@ -0,0 +1 @@
1
+ export * from './control-group';
@@ -41,7 +41,7 @@
41
41
  background: var(--color-background);
42
42
  min-width: 12em;
43
43
  z-index: var(--layer-high);
44
- padding: var(--space-xxxsmall);
44
+ padding: calc(var(--space-xxxsmall) / 2);
45
45
  }
46
46
 
47
47
  .dropdown:focus {
@@ -55,7 +55,7 @@
55
55
  outline: none;
56
56
  border: 0;
57
57
  border-radius: var(--radius-small);
58
- padding: var(--space-xxxsmall) var(--space-xxxsmall);
58
+ padding: var(--space-xxxsmall) calc(var(--space-xxxsmall) + var(--space-xxxsmall) / 2);
59
59
  background: none;
60
60
  text-align: left;
61
61
  color: var(--color-text-light);
package/src/ui/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { Alert } from './alert';
2
2
  export { Button } from './button';
3
3
  export { Container } from './container';
4
+ export { ControlGroup } from './control-group';
4
5
  export { Dropdown } from './dropdown';
5
6
  export { EmptySet } from './empty-set';
6
7
  export { FileName } from './file-name';
@@ -13,12 +13,6 @@
13
13
  right: var(--space-xxxsmall);
14
14
  top: 50%;
15
15
  transform: translateY(-50%);
16
+ padding: var(--space-xxxsmall);
16
17
  background: radial-gradient(var(--color-background) 50%, transparent);
17
- color: var(--color-text-ultra-light);
18
- }
19
-
20
- .cancelButton:focus,
21
- .cancelButton:hover,
22
- .cancelButton:active {
23
- color: var(--color-text-light);
24
18
  }
@@ -71,14 +71,12 @@ export const InputSearch = (
71
71
  {value && (
72
72
  <Button
73
73
  radius="circle"
74
- padding="small"
74
+ glyph={Icon.ICONS.CANCEL}
75
75
  type="button"
76
76
  onClick={clearButtonOnClick}
77
77
  aria-label="Clear search"
78
78
  className={css.cancelButton}
79
- >
80
- <Icon className={css.cancelButtonIcon} glyph={Icon.ICONS.CANCEL} />
81
- </Button>
79
+ />
82
80
  )}
83
81
  </div>
84
82
  );
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { Icon as BaseIcon } from '../icon';
2
3
  declare const SIZE: {
3
4
  readonly SMALL: "small";
4
5
  readonly MEDIUM: "medium";
@@ -23,6 +24,9 @@ interface ButtonProps<T extends React.ElementType> {
23
24
  radius?: Size | 'circle' | 'none';
24
25
  padding?: Size | 'none';
25
26
  as?: T;
27
+ Icon?: React.ElementType;
28
+ glyph?: React.ComponentProps<typeof BaseIcon>['glyph'];
29
+ rightGlyph?: React.ComponentProps<typeof BaseIcon>['glyph'];
26
30
  }
27
31
  export declare const Button: {
28
32
  <T extends React.ElementType<any, keyof React.JSX.IntrinsicElements> = "button">(props: ButtonProps<T> & Omit<React.PropsWithoutRef<React.ComponentProps<T>>, keyof ButtonProps<T>>): React.JSX.Element;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { FlexStack } from '../../layout/flex-stack';
3
+ export declare const ControlGroup: (props: React.ComponentProps<typeof FlexStack>) => React.JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './control-group';
@@ -1,6 +1,7 @@
1
1
  export { Alert } from "./alert";
2
2
  export { Button } from "./button";
3
3
  export { Container } from "./container";
4
+ export { ControlGroup } from "./control-group";
4
5
  export { Dropdown } from "./dropdown";
5
6
  export { EmptySet } from "./empty-set";
6
7
  export { FileName } from "./file-name";