@bundle-stats/ui 4.10.0 → 4.10.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.
@@ -3,18 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Button = void 0;
6
+ exports.Button = exports.BUTTON_KIND = exports.BUTTON_SIZE = 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
10
  const icon_1 = require("../icon");
11
11
  const button_module_css_1 = __importDefault(require("./button.module.css"));
12
- const SIZE = {
12
+ exports.BUTTON_SIZE = {
13
13
  SMALL: 'small',
14
14
  MEDIUM: 'medium',
15
15
  LARGE: 'large',
16
16
  };
17
- const KIND = {
17
+ exports.BUTTON_KIND = {
18
18
  PRIMARY: 'primary',
19
19
  SECONDARY: 'secondary',
20
20
  DANGE: 'danger',
@@ -22,7 +22,7 @@ const KIND = {
22
22
  INFO: 'info',
23
23
  SUCCES: 'success',
24
24
  };
25
- const Button = (props) => {
25
+ const ButtonComponent = (props) => {
26
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;
27
27
  const resolvedPadding = padding || ((outline || solid) && size);
28
28
  const resolvedRadius = radius || ((outline || solid) && size);
@@ -32,7 +32,5 @@ const Button = (props) => {
32
32
  children && react_1.default.createElement("span", { className: button_module_css_1.default.content }, children),
33
33
  rightGlyph && react_1.default.createElement(Icon, { glyph: glyph, size: size, className: button_module_css_1.default.glyph })));
34
34
  };
35
- exports.Button = Button;
36
- exports.Button.SIZE = SIZE;
37
- exports.Button.KIND = KIND;
35
+ exports.Button = react_1.default.forwardRef(ButtonComponent);
38
36
  //# sourceMappingURL=button.js.map
@@ -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,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
+ {"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;AAEzB,QAAA,WAAW,GAAG;IACzB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAEE,QAAA,WAAW,GAAG;IACzB,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,eAAe,GAAG,CACtB,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;AAEW,QAAA,MAAM,GAAG,eAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC"}
@@ -250,14 +250,12 @@ a.root {
250
250
  .small {
251
251
  font-size: var(--size-small);
252
252
  gap: var(--space-xxxsmall);
253
- line-height: var(--space-xsmall);
253
+ line-height: var(--space-small);
254
254
  }
255
255
 
256
256
  .small .glyph {
257
257
  width: calc(var(--space-xsmall) + 2px);
258
258
  height: calc(var(--space-xsmall) + 2px);
259
- margin-top: -1px;
260
- margin-bottom: -1px;
261
259
  }
262
260
 
263
261
  .medium {
@@ -8,8 +8,7 @@ const react_1 = __importDefault(require("react"));
8
8
  const prop_types_1 = __importDefault(require("prop-types"));
9
9
  const classnames_1 = __importDefault(require("classnames"));
10
10
  const menu_1 = require("ariakit/menu");
11
- const flex_stack_1 = require("../../layout/flex-stack");
12
- const icon_1 = require("../icon");
11
+ const button_1 = require("../button");
13
12
  const dropdown_module_css_1 = __importDefault(require("./dropdown.module.css"));
14
13
  const Item = ({ className = '', isActive = false, ...restProps }) => (react_1.default.createElement(menu_1.MenuItem, { className: (0, classnames_1.default)(dropdown_module_css_1.default.item, className, isActive && dropdown_module_css_1.default.itemActive), ...restProps }));
15
14
  Item.propTypes = {
@@ -25,10 +24,7 @@ const Dropdown = (props) => {
25
24
  const rootClassName = (0, classnames_1.default)(dropdown_module_css_1.default.root, className);
26
25
  const menuState = (0, menu_1.useMenuState)();
27
26
  return (react_1.default.createElement("div", { className: rootClassName },
28
- react_1.default.createElement(menu_1.MenuButton, { state: menuState, className: (0, classnames_1.default)(dropdown_module_css_1.default.button, buttonClassName), disabled: disabled, tabIndex: null },
29
- react_1.default.createElement(flex_stack_1.FlexStack, { space: "xxxsmall", alignItems: "center", className: dropdown_module_css_1.default.label },
30
- glyph && react_1.default.createElement(icon_1.Icon, { className: dropdown_module_css_1.default.labelIcon, glyph: glyph }),
31
- label && react_1.default.createElement("span", { className: dropdown_module_css_1.default.labelText }, label))),
27
+ react_1.default.createElement(menu_1.MenuButton, { as: button_1.Button, outline: true, size: button_1.BUTTON_SIZE.SMALL, glyph: glyph, disabled: disabled, state: menuState, tabIndex: null, className: (0, classnames_1.default)(dropdown_module_css_1.default.button, buttonClassName) }, label),
32
28
  react_1.default.createElement(menu_1.Menu, { state: menuState, "aria-label": ariaLabel || label, className: dropdown_module_css_1.default.dropdown }, typeof children === 'function'
33
29
  ? children({
34
30
  MenuItem: Item,
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/ui/dropdown/dropdown.jsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/ui/dropdown/dropdown.jsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4DAAmC;AACnC,4DAA4B;AAC5B,uCAAwE;AAExE,sCAAgD;AAChD,gFAAwC;AAExC,MAAM,IAAI,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,CACnE,8BAAC,eAAQ,IAAC,SAAS,EAAE,IAAA,oBAAE,EAAC,6BAAG,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,IAAI,6BAAG,CAAC,UAAU,CAAC,KAAM,SAAS,GAAI,CAC5F,CAAC;AAEF,IAAI,CAAC,SAAS,GAAG;IACf,SAAS,EAAE,oBAAS,CAAC,MAAM;IAC3B,QAAQ,EAAE,oBAAS,CAAC,IAAI;CACzB,CAAC;AAEF,IAAI,CAAC,YAAY,GAAG;IAClB,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEK,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,EAAE;IAChC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC1F,MAAM,aAAa,GAAG,IAAA,oBAAE,EAAC,6BAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAA,mBAAY,GAAE,CAAC;IAEjC,OAAO,CACL,uCAAK,SAAS,EAAE,aAAa;QAC3B,8BAAC,iBAAU,IACT,EAAE,EAAE,eAAM,EACV,OAAO,QACP,IAAI,EAAE,oBAAW,CAAC,KAAK,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,IAAI,EACd,SAAS,EAAE,IAAA,oBAAE,EAAC,6BAAG,CAAC,MAAM,EAAE,eAAe,CAAC,IAEzC,KAAK,CACK;QACb,8BAAC,WAAI,IAAC,KAAK,EAAE,SAAS,gBAAc,SAAS,IAAI,KAAK,EAAE,SAAS,EAAE,6BAAG,CAAC,QAAQ,IAC5E,OAAO,QAAQ,KAAK,UAAU;YAC7B,CAAC,CAAC,QAAQ,CAAC;gBACP,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,SAAS;gBACf,iBAAiB,EAAE,6BAAG,CAAC,IAAI;gBAC3B,uBAAuB,EAAE,6BAAG,CAAC,UAAU;aACxC,CAAC;YACJ,CAAC,CAAC,QAAQ,CACP,CACH,CACP,CAAC;AACJ,CAAC,CAAC;AA/BW,QAAA,QAAQ,YA+BnB;AAEF,gBAAQ,CAAC,YAAY,GAAG;IACtB,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,gBAAQ,CAAC,SAAS,GAAG;IAEnB,SAAS,EAAE,oBAAS,CAAC,MAAM;IAG3B,eAAe,EAAE,oBAAS,CAAC,MAAM;IAGjC,KAAK,EAAE,oBAAS,CAAC,IAAI;IAGrB,SAAS,EAAE,oBAAS,CAAC,MAAM;IAG3B,KAAK,EAAE,oBAAS,CAAC,SAAS,CAAC,CAAC,oBAAS,CAAC,MAAM,EAAE,oBAAS,CAAC,IAAI,CAAC,CAAC;IAG9D,QAAQ,EAAE,oBAAS,CAAC,IAAI;IAGxB,QAAQ,EAAE,oBAAS,CAAC,SAAS,CAAC,CAAC,oBAAS,CAAC,MAAM,EAAE,oBAAS,CAAC,OAAO,EAAE,oBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;CAChG,CAAC;AAEF,gBAAQ,CAAC,IAAI,GAAG,IAAI,CAAC"}
@@ -1,31 +1,5 @@
1
- .root {
2
- display: inline-block;
3
- }
4
-
5
1
  .button {
6
- background: none;
7
- border: none;
8
- padding: 0;
9
-
10
- border: 1px solid var(--color-outline);
11
- border-radius: var(--radius-small);
12
- padding: calc(var(--space-xxsmall) - 1px);
13
-
14
- appearance: none;
15
- background: none;
16
- font-size: var(--size-small);
17
- line-height: var(--space-small);
18
2
  white-space: nowrap;
19
- color: var(--color-text-light);
20
- }
21
-
22
- .button[aria-expanded=true],
23
- .button:hover,
24
- .button:focus,
25
- .button:active {
26
- outline: none;
27
- box-shadow: var(--outline-hover);
28
- color: var(--color-text);
29
3
  }
30
4
 
31
5
  .button[disabled] {
@@ -62,6 +36,7 @@
62
36
  font-size: var(--size-small);
63
37
  line-height: inherit;
64
38
  text-decoration: none;
39
+ cursor: default;
65
40
  }
66
41
 
67
42
  .item[data-active-item],
@@ -33,6 +33,7 @@
33
33
  transform: translateY(-50%);
34
34
  padding: var(--space-xxxsmall);
35
35
  font-size: var(--size-xsmall);
36
+ line-height: 1.1;
36
37
  }
37
38
 
38
39
  /** cover item text */
@@ -3,12 +3,12 @@ import cx from 'classnames';
3
3
  import { Button as ButtonBaseComponent } from 'ariakit/button';
4
4
  import { Icon as BaseIcon } from '../icon';
5
5
  import css from './button.module.css';
6
- const SIZE = {
6
+ export const BUTTON_SIZE = {
7
7
  SMALL: 'small',
8
8
  MEDIUM: 'medium',
9
9
  LARGE: 'large',
10
10
  };
11
- const KIND = {
11
+ export const BUTTON_KIND = {
12
12
  PRIMARY: 'primary',
13
13
  SECONDARY: 'secondary',
14
14
  DANGE: 'danger',
@@ -16,7 +16,7 @@ const KIND = {
16
16
  INFO: 'info',
17
17
  SUCCES: 'success',
18
18
  };
19
- export const Button = (props) => {
19
+ const ButtonComponent = (props) => {
20
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;
21
21
  const resolvedPadding = padding || ((outline || solid) && size);
22
22
  const resolvedRadius = radius || ((outline || solid) && size);
@@ -26,6 +26,5 @@ export const Button = (props) => {
26
26
  children && React.createElement("span", { className: css.content }, children),
27
27
  rightGlyph && React.createElement(Icon, { glyph: glyph, size: size, className: css.glyph })));
28
28
  };
29
- Button.SIZE = SIZE;
30
- Button.KIND = KIND;
29
+ export const Button = React.forwardRef(ButtonComponent);
31
30
  //# sourceMappingURL=button.js.map
@@ -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,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
+ {"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,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,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,eAAe,GAAG,CACtB,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,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC"}
@@ -250,14 +250,12 @@ a.root {
250
250
  .small {
251
251
  font-size: var(--size-small);
252
252
  gap: var(--space-xxxsmall);
253
- line-height: var(--space-xsmall);
253
+ line-height: var(--space-small);
254
254
  }
255
255
 
256
256
  .small .glyph {
257
257
  width: calc(var(--space-xsmall) + 2px);
258
258
  height: calc(var(--space-xsmall) + 2px);
259
- margin-top: -1px;
260
- margin-bottom: -1px;
261
259
  }
262
260
 
263
261
  .medium {
@@ -2,8 +2,7 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import cx from 'classnames';
4
4
  import { Menu, MenuButton, MenuItem, useMenuState } from 'ariakit/menu';
5
- import { FlexStack } from '../../layout/flex-stack';
6
- import { Icon } from '../icon';
5
+ import { Button, BUTTON_SIZE } from '../button';
7
6
  import css from './dropdown.module.css';
8
7
  const Item = ({ className = '', isActive = false, ...restProps }) => (React.createElement(MenuItem, { className: cx(css.item, className, isActive && css.itemActive), ...restProps }));
9
8
  Item.propTypes = {
@@ -19,10 +18,7 @@ export const Dropdown = (props) => {
19
18
  const rootClassName = cx(css.root, className);
20
19
  const menuState = useMenuState();
21
20
  return (React.createElement("div", { className: rootClassName },
22
- React.createElement(MenuButton, { state: menuState, className: cx(css.button, buttonClassName), disabled: disabled, tabIndex: null },
23
- React.createElement(FlexStack, { space: "xxxsmall", alignItems: "center", className: css.label },
24
- glyph && React.createElement(Icon, { className: css.labelIcon, glyph: glyph }),
25
- label && React.createElement("span", { className: css.labelText }, label))),
21
+ React.createElement(MenuButton, { as: Button, outline: true, size: BUTTON_SIZE.SMALL, glyph: glyph, disabled: disabled, state: menuState, tabIndex: null, className: cx(css.button, buttonClassName) }, label),
26
22
  React.createElement(Menu, { state: menuState, "aria-label": ariaLabel || label, className: css.dropdown }, typeof children === 'function'
27
23
  ? children({
28
24
  MenuItem: Item,
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/ui/dropdown/dropdown.jsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/ui/dropdown/dropdown.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,GAAG,MAAM,uBAAuB,CAAC;AAExC,MAAM,IAAI,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,CACnE,oBAAC,QAAQ,IAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,KAAM,SAAS,GAAI,CAC5F,CAAC;AAEF,IAAI,CAAC,SAAS,GAAG;IACf,SAAS,EAAE,SAAS,CAAC,MAAM;IAC3B,QAAQ,EAAE,SAAS,CAAC,IAAI;CACzB,CAAC;AAEF,IAAI,CAAC,YAAY,GAAG;IAClB,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,EAAE;IAChC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC1F,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,OAAO,CACL,6BAAK,SAAS,EAAE,aAAa;QAC3B,oBAAC,UAAU,IACT,EAAE,EAAE,MAAM,EACV,OAAO,QACP,IAAI,EAAE,WAAW,CAAC,KAAK,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,IAAI,EACd,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,IAEzC,KAAK,CACK;QACb,oBAAC,IAAI,IAAC,KAAK,EAAE,SAAS,gBAAc,SAAS,IAAI,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,IAC5E,OAAO,QAAQ,KAAK,UAAU;YAC7B,CAAC,CAAC,QAAQ,CAAC;gBACP,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,SAAS;gBACf,iBAAiB,EAAE,GAAG,CAAC,IAAI;gBAC3B,uBAAuB,EAAE,GAAG,CAAC,UAAU;aACxC,CAAC;YACJ,CAAC,CAAC,QAAQ,CACP,CACH,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,QAAQ,CAAC,YAAY,GAAG;IACtB,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,QAAQ,CAAC,SAAS,GAAG;IAEnB,SAAS,EAAE,SAAS,CAAC,MAAM;IAG3B,eAAe,EAAE,SAAS,CAAC,MAAM;IAGjC,KAAK,EAAE,SAAS,CAAC,IAAI;IAGrB,SAAS,EAAE,SAAS,CAAC,MAAM;IAG3B,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAG9D,QAAQ,EAAE,SAAS,CAAC,IAAI;IAGxB,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;CAChG,CAAC;AAEF,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC"}
@@ -1,31 +1,5 @@
1
- .root {
2
- display: inline-block;
3
- }
4
-
5
1
  .button {
6
- background: none;
7
- border: none;
8
- padding: 0;
9
-
10
- border: 1px solid var(--color-outline);
11
- border-radius: var(--radius-small);
12
- padding: calc(var(--space-xxsmall) - 1px);
13
-
14
- appearance: none;
15
- background: none;
16
- font-size: var(--size-small);
17
- line-height: var(--space-small);
18
2
  white-space: nowrap;
19
- color: var(--color-text-light);
20
- }
21
-
22
- .button[aria-expanded=true],
23
- .button:hover,
24
- .button:focus,
25
- .button:active {
26
- outline: none;
27
- box-shadow: var(--outline-hover);
28
- color: var(--color-text);
29
3
  }
30
4
 
31
5
  .button[disabled] {
@@ -62,6 +36,7 @@
62
36
  font-size: var(--size-small);
63
37
  line-height: inherit;
64
38
  text-decoration: none;
39
+ cursor: default;
65
40
  }
66
41
 
67
42
  .item[data-active-item],
@@ -33,6 +33,7 @@
33
33
  transform: translateY(-50%);
34
34
  padding: var(--space-xxxsmall);
35
35
  font-size: var(--size-xsmall);
36
+ line-height: 1.1;
36
37
  }
37
38
 
38
39
  /** cover item text */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bundle-stats/ui",
3
- "version": "4.10.0",
3
+ "version": "4.10.1",
4
4
  "description": "UI components for BundleStats projects.",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -39,10 +39,10 @@
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.15",
43
- "@storybook/react": "7.6.15",
44
- "@storybook/react-webpack5": "7.6.15",
45
- "@types/react": "18.2.55",
42
+ "@storybook/addon-essentials": "7.6.16",
43
+ "@storybook/react": "7.6.16",
44
+ "@storybook/react-webpack5": "7.6.16",
45
+ "@types/react": "18.2.56",
46
46
  "@types/react-router-dom": "5.3.3",
47
47
  "babel-plugin-require-context-hook": "1.0.0",
48
48
  "classnames": "2.5.1",
@@ -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.15",
62
+ "storybook": "7.6.16",
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.10.0",
75
+ "@bundle-stats/utils": "^4.10.1",
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": "1ed77f899eb226ad095b77bfdc1561aab67640b6"
80
+ "gitHead": "e874e0432f5c1c4434b5b30db20aa802505b251c"
81
81
  }
@@ -250,14 +250,12 @@ a.root {
250
250
  .small {
251
251
  font-size: var(--size-small);
252
252
  gap: var(--space-xxxsmall);
253
- line-height: var(--space-xsmall);
253
+ line-height: var(--space-small);
254
254
  }
255
255
 
256
256
  .small .glyph {
257
257
  width: calc(var(--space-xsmall) + 2px);
258
258
  height: calc(var(--space-xsmall) + 2px);
259
- margin-top: -1px;
260
- margin-bottom: -1px;
261
259
  }
262
260
 
263
261
  .medium {
@@ -4,7 +4,7 @@ import { Meta, Story } from '@storybook/react';
4
4
  import { Stack } from '../../layout/stack';
5
5
  import { FlexStack } from '../../layout/flex-stack';
6
6
  import { Icon } from '../icon';
7
- import { Button } from '.';
7
+ import { Button, BUTTON_SIZE, BUTTON_KIND } from '.';
8
8
 
9
9
  export default {
10
10
  title: 'UI/Button',
@@ -26,7 +26,7 @@ export const All = () => (
26
26
  <Stack space="medium">
27
27
  <h2>Size</h2>
28
28
  <Items>
29
- {Object.values(Button.SIZE).map((size) => (
29
+ {Object.values(BUTTON_SIZE).map((size) => (
30
30
  <Button size={size} key={size}>
31
31
  Action {size}
32
32
  </Button>
@@ -37,7 +37,7 @@ export const All = () => (
37
37
  <h2>Kind</h2>
38
38
  <Stack space="medium">
39
39
  <Items>
40
- {Object.values(Button.KIND).map((kind) => (
40
+ {Object.values(BUTTON_KIND).map((kind) => (
41
41
  <Button kind={kind} key={kind}>
42
42
  Action {kind}
43
43
  </Button>
@@ -45,7 +45,7 @@ export const All = () => (
45
45
  </Items>
46
46
  <h3>Active</h3>
47
47
  <Items>
48
- {Object.values(Button.KIND).map((kind) => (
48
+ {Object.values(BUTTON_KIND).map((kind) => (
49
49
  <Button kind={kind} key={kind} active>
50
50
  Action {kind}
51
51
  </Button>
@@ -53,7 +53,7 @@ export const All = () => (
53
53
  </Items>
54
54
  <h3>As link</h3>
55
55
  <Items>
56
- {Object.values(Button.KIND).map((kind) => (
56
+ {Object.values(BUTTON_KIND).map((kind) => (
57
57
  <Button kind={kind} key={kind} as="a" href="#">
58
58
  Action {kind}
59
59
  </Button>
@@ -61,7 +61,7 @@ export const All = () => (
61
61
  </Items>
62
62
  <h3>With icon</h3>
63
63
  <Items>
64
- {Object.values(Button.KIND).map((kind) => (
64
+ {Object.values(BUTTON_KIND).map((kind) => (
65
65
  <Button glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE} kind={kind} key={kind}>
66
66
  Action {kind}
67
67
  </Button>
@@ -69,7 +69,7 @@ export const All = () => (
69
69
  </Items>
70
70
  <h3>Disabled</h3>
71
71
  <Items>
72
- {Object.values(Button.KIND).map((kind) => (
72
+ {Object.values(BUTTON_KIND).map((kind) => (
73
73
  <Button kind={kind} key={kind} disabled>
74
74
  Action {kind}
75
75
  </Button>
@@ -80,12 +80,12 @@ export const All = () => (
80
80
  <Stack space="medium">
81
81
  <h2>Outline & Kind</h2>
82
82
  <Stack space="medium">
83
- {Object.values(Button.SIZE).map((size) => (
83
+ {Object.values(BUTTON_SIZE).map((size) => (
84
84
  <Items key={size}>
85
85
  <Button outline size={size}>
86
86
  Action default
87
87
  </Button>
88
- {Object.values(Button.KIND).map((kind) => (
88
+ {Object.values(BUTTON_KIND).map((kind) => (
89
89
  <Button outline kind={kind} key={kind} size={size}>
90
90
  Action {kind}
91
91
  </Button>
@@ -97,19 +97,19 @@ export const All = () => (
97
97
  <Button outline active>
98
98
  Action default
99
99
  </Button>
100
- {Object.values(Button.KIND).map((kind) => (
100
+ {Object.values(BUTTON_KIND).map((kind) => (
101
101
  <Button outline kind={kind} key={kind} active>
102
102
  Action {kind}
103
103
  </Button>
104
104
  ))}
105
105
  </Items>
106
106
  <h3>With icon</h3>
107
- {Object.values(Button.SIZE).map((size) => (
107
+ {Object.values(BUTTON_SIZE).map((size) => (
108
108
  <Items key={size}>
109
109
  <Button glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE} outline size={size}>
110
110
  Action default
111
111
  </Button>
112
- {Object.values(Button.KIND).map((kind) => (
112
+ {Object.values(BUTTON_KIND).map((kind) => (
113
113
  <Button
114
114
  glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE}
115
115
  outline
@@ -123,10 +123,10 @@ export const All = () => (
123
123
  </Items>
124
124
  ))}
125
125
  <h3>Only icon</h3>
126
- {Object.values(Button.SIZE).map((size) => (
126
+ {Object.values(BUTTON_SIZE).map((size) => (
127
127
  <Items key={size}>
128
128
  <Button glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE} outline size={size} />
129
- {Object.values(Button.KIND).map((kind) => (
129
+ {Object.values(BUTTON_KIND).map((kind) => (
130
130
  <Button
131
131
  glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE}
132
132
  outline
@@ -142,7 +142,7 @@ export const All = () => (
142
142
  <Button outline disabled>
143
143
  Action default
144
144
  </Button>
145
- {Object.values(Button.KIND).map((kind) => (
145
+ {Object.values(BUTTON_KIND).map((kind) => (
146
146
  <Button outline kind={kind} key={kind} disabled>
147
147
  Action {kind}
148
148
  </Button>
@@ -153,12 +153,12 @@ export const All = () => (
153
153
  <Stack space="medium">
154
154
  <h2>Solid & Kind</h2>
155
155
  <Stack space="medium">
156
- {Object.values(Button.SIZE).map((size) => (
156
+ {Object.values(BUTTON_SIZE).map((size) => (
157
157
  <Items key={size}>
158
158
  <Button solid size={size}>
159
159
  Action default
160
160
  </Button>
161
- {Object.values(Button.KIND).map((kind) => (
161
+ {Object.values(BUTTON_KIND).map((kind) => (
162
162
  <Button solid kind={kind} key={kind} size={size}>
163
163
  Action {kind}
164
164
  </Button>
@@ -170,19 +170,19 @@ export const All = () => (
170
170
  <Button solid active>
171
171
  Action default
172
172
  </Button>
173
- {Object.values(Button.KIND).map((kind) => (
173
+ {Object.values(BUTTON_KIND).map((kind) => (
174
174
  <Button solid kind={kind} key={kind} active>
175
175
  Action {kind}
176
176
  </Button>
177
177
  ))}
178
178
  </Items>
179
179
  <h3>With icon</h3>
180
- {Object.values(Button.SIZE).map((size) => (
180
+ {Object.values(BUTTON_SIZE).map((size) => (
181
181
  <Items key={size}>
182
182
  <Button glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE} solid size={size}>
183
183
  Action default
184
184
  </Button>
185
- {Object.values(Button.KIND).map((kind) => (
185
+ {Object.values(BUTTON_KIND).map((kind) => (
186
186
  <Button
187
187
  glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE}
188
188
  solid
@@ -196,10 +196,10 @@ export const All = () => (
196
196
  </Items>
197
197
  ))}
198
198
  <h3>Only icon</h3>
199
- {Object.values(Button.SIZE).map((size) => (
199
+ {Object.values(BUTTON_SIZE).map((size) => (
200
200
  <Items key={size}>
201
201
  <Button glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE} solid size={size} />
202
- {Object.values(Button.KIND).map((kind) => (
202
+ {Object.values(BUTTON_KIND).map((kind) => (
203
203
  <Button
204
204
  glyph={Icon.ICONS.ARROW_RIGHT_CIRLCE}
205
205
  solid
@@ -215,7 +215,7 @@ export const All = () => (
215
215
  <Button solid disabled>
216
216
  Action default
217
217
  </Button>
218
- {Object.values(Button.KIND).map((kind) => (
218
+ {Object.values(BUTTON_KIND).map((kind) => (
219
219
  <Button solid kind={kind} key={kind} disabled>
220
220
  Action {kind}
221
221
  </Button>
@@ -5,13 +5,13 @@ import { Button as ButtonBaseComponent } from 'ariakit/button';
5
5
  import { Icon as BaseIcon } from '../icon';
6
6
  import css from './button.module.css';
7
7
 
8
- const SIZE = {
8
+ export const BUTTON_SIZE = {
9
9
  SMALL: 'small',
10
10
  MEDIUM: 'medium',
11
11
  LARGE: 'large',
12
12
  } as const;
13
13
 
14
- const KIND = {
14
+ export const BUTTON_KIND = {
15
15
  PRIMARY: 'primary',
16
16
  SECONDARY: 'secondary',
17
17
  DANGE: 'danger',
@@ -20,8 +20,8 @@ const KIND = {
20
20
  SUCCES: 'success',
21
21
  } as const;
22
22
 
23
- type Size = (typeof SIZE)[keyof typeof SIZE];
24
- type Kind = (typeof KIND)[keyof typeof KIND];
23
+ type Size = (typeof BUTTON_SIZE)[keyof typeof BUTTON_SIZE];
24
+ type Kind = (typeof BUTTON_KIND)[keyof typeof BUTTON_KIND];
25
25
 
26
26
  interface ButtonProps<T extends React.ElementType> {
27
27
  outline?: boolean;
@@ -37,7 +37,7 @@ interface ButtonProps<T extends React.ElementType> {
37
37
  rightGlyph?: React.ComponentProps<typeof BaseIcon>['glyph'];
38
38
  }
39
39
 
40
- export const Button = <T extends React.ElementType = 'button'>(
40
+ const ButtonComponent = <T extends React.ElementType = 'button'>(
41
41
  props: ButtonProps<T> & Omit<React.ComponentPropsWithoutRef<T>, keyof ButtonProps<T>>,
42
42
  ) => {
43
43
  const {
@@ -92,5 +92,4 @@ export const Button = <T extends React.ElementType = 'button'>(
92
92
  );
93
93
  };
94
94
 
95
- Button.SIZE = SIZE;
96
- Button.KIND = KIND;
95
+ export const Button = React.forwardRef(ButtonComponent);
@@ -3,8 +3,7 @@ import PropTypes from 'prop-types';
3
3
  import cx from 'classnames';
4
4
  import { Menu, MenuButton, MenuItem, useMenuState } from 'ariakit/menu';
5
5
 
6
- import { FlexStack } from '../../layout/flex-stack';
7
- import { Icon } from '../icon';
6
+ import { Button, BUTTON_SIZE } from '../button';
8
7
  import css from './dropdown.module.css';
9
8
 
10
9
  const Item = ({ className = '', isActive = false, ...restProps }) => (
@@ -29,15 +28,16 @@ export const Dropdown = (props) => {
29
28
  return (
30
29
  <div className={rootClassName}>
31
30
  <MenuButton
32
- state={menuState}
33
- className={cx(css.button, buttonClassName)}
31
+ as={Button}
32
+ outline
33
+ size={BUTTON_SIZE.SMALL}
34
+ glyph={glyph}
34
35
  disabled={disabled}
36
+ state={menuState}
35
37
  tabIndex={null}
38
+ className={cx(css.button, buttonClassName)}
36
39
  >
37
- <FlexStack space="xxxsmall" alignItems="center" className={css.label}>
38
- {glyph && <Icon className={css.labelIcon} glyph={glyph} />}
39
- {label && <span className={css.labelText}>{label}</span>}
40
- </FlexStack>
40
+ {label}
41
41
  </MenuButton>
42
42
  <Menu state={menuState} aria-label={ariaLabel || label} className={css.dropdown}>
43
43
  {typeof children === 'function'
@@ -1,31 +1,5 @@
1
- .root {
2
- display: inline-block;
3
- }
4
-
5
1
  .button {
6
- background: none;
7
- border: none;
8
- padding: 0;
9
-
10
- border: 1px solid var(--color-outline);
11
- border-radius: var(--radius-small);
12
- padding: calc(var(--space-xxsmall) - 1px);
13
-
14
- appearance: none;
15
- background: none;
16
- font-size: var(--size-small);
17
- line-height: var(--space-small);
18
2
  white-space: nowrap;
19
- color: var(--color-text-light);
20
- }
21
-
22
- .button[aria-expanded=true],
23
- .button:hover,
24
- .button:focus,
25
- .button:active {
26
- outline: none;
27
- box-shadow: var(--outline-hover);
28
- color: var(--color-text);
29
3
  }
30
4
 
31
5
  .button[disabled] {
@@ -62,6 +36,7 @@
62
36
  font-size: var(--size-small);
63
37
  line-height: inherit;
64
38
  text-decoration: none;
39
+ cursor: default;
65
40
  }
66
41
 
67
42
  .item[data-active-item],
@@ -33,6 +33,7 @@
33
33
  transform: translateY(-50%);
34
34
  padding: var(--space-xxxsmall);
35
35
  font-size: var(--size-xsmall);
36
+ line-height: 1.1;
36
37
  }
37
38
 
38
39
  /** cover item text */
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  import { Icon as BaseIcon } from '../icon';
3
- declare const SIZE: {
3
+ export declare const BUTTON_SIZE: {
4
4
  readonly SMALL: "small";
5
5
  readonly MEDIUM: "medium";
6
6
  readonly LARGE: "large";
7
7
  };
8
- declare const KIND: {
8
+ export declare const BUTTON_KIND: {
9
9
  readonly PRIMARY: "primary";
10
10
  readonly SECONDARY: "secondary";
11
11
  readonly DANGE: "danger";
@@ -13,8 +13,8 @@ declare const KIND: {
13
13
  readonly INFO: "info";
14
14
  readonly SUCCES: "success";
15
15
  };
16
- type Size = (typeof SIZE)[keyof typeof SIZE];
17
- type Kind = (typeof KIND)[keyof typeof KIND];
16
+ type Size = (typeof BUTTON_SIZE)[keyof typeof BUTTON_SIZE];
17
+ type Kind = (typeof BUTTON_KIND)[keyof typeof BUTTON_KIND];
18
18
  interface ButtonProps<T extends React.ElementType> {
19
19
  outline?: boolean;
20
20
  solid?: boolean;
@@ -28,20 +28,5 @@ interface ButtonProps<T extends React.ElementType> {
28
28
  glyph?: React.ComponentProps<typeof BaseIcon>['glyph'];
29
29
  rightGlyph?: React.ComponentProps<typeof BaseIcon>['glyph'];
30
30
  }
31
- export declare const Button: {
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;
33
- SIZE: {
34
- readonly SMALL: "small";
35
- readonly MEDIUM: "medium";
36
- readonly LARGE: "large";
37
- };
38
- KIND: {
39
- readonly PRIMARY: "primary";
40
- readonly SECONDARY: "secondary";
41
- readonly DANGE: "danger";
42
- readonly WARNING: "warning";
43
- readonly INFO: "info";
44
- readonly SUCCES: "success";
45
- };
46
- };
31
+ export declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps<React.ElementType<any, keyof React.JSX.IntrinsicElements>> & Omit<Omit<any, "ref">, keyof ButtonProps<T>>, "ref"> & React.RefAttributes<unknown>>;
47
32
  export {};