@helpdice/ui 2.3.3 → 2.3.6

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.
@@ -1,6 +1,7 @@
1
1
  import React, { ReactNode } from 'react';
2
2
  interface Props {
3
3
  src?: string;
4
+ errorSrc?: string;
4
5
  stacked?: boolean;
5
6
  text?: string;
6
7
  isSquare?: boolean;
@@ -820,7 +820,7 @@ var withScale = function withScale(Render) {
820
820
  return ScaleFC;
821
821
  };
822
822
 
823
- var _excluded = ["src", "stacked", "text", "isSquare", "className", "children"];
823
+ var _excluded = ["src", "errorSrc", "stacked", "text", "isSquare", "className", "children"];
824
824
 
825
825
  // type NativeAttrs = Omit<
826
826
  // Partial<React.ImgHTMLAttributes<any> & React.HTMLAttributes<any>>,
@@ -833,6 +833,7 @@ var safeText = function safeText(text) {
833
833
  };
834
834
  var AvatarComponent = function AvatarComponent(_ref) {
835
835
  var src = _ref.src,
836
+ errorSrc = _ref.errorSrc,
836
837
  _ref$stacked = _ref.stacked,
837
838
  stacked = _ref$stacked === void 0 ? false : _ref$stacked,
838
839
  _ref$text = _ref.text,
@@ -860,7 +861,7 @@ var AvatarComponent = function AvatarComponent(_ref) {
860
861
  onError: function onError(e) {
861
862
  var target = e.currentTarget;
862
863
  target.onerror = null; // prevent loop
863
- target.src = "https://helpdice.com/avatar.webp";
864
+ target.src = errorSrc !== null && errorSrc !== void 0 ? errorSrc : "https://helpdice.com/avatar.webp";
864
865
  },
865
866
  className: _JSXStyle.dynamic([["2295275975", [theme$1.palette.accents_2, radius, theme$1.palette.background, SCALES.width(1.75) || SCALES.height(1.75), SCALES.height(1.75) || SCALES.width(1.75), SCALES.pt(0), SCALES.pr(0), SCALES.pb(0), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), marginLeft, radius, SCALES.font(1)]]]) + " " + (props && props.className != null && props.className || "avatar-img")
866
867
  })), showText && /*#__PURE__*/React.createElement("span", _extends({}, props, {
@@ -6,6 +6,8 @@ interface Props {
6
6
  loading?: boolean;
7
7
  shadow?: boolean | string;
8
8
  round?: boolean;
9
+ a?: boolean;
10
+ to?: string;
9
11
  auto?: boolean;
10
12
  effect?: boolean;
11
13
  disabled?: boolean;
@@ -0,0 +1,17 @@
1
+ import React, { CSSProperties } from 'react';
2
+ import { ButtonTypes } from 'components/button-group';
3
+ type SmallButtonProps = {
4
+ children?: React.ReactNode;
5
+ iconRight?: React.ReactNode;
6
+ to: string;
7
+ icon?: React.ReactNode;
8
+ scale?: number;
9
+ type?: any;
10
+ style?: CSSProperties;
11
+ a?: boolean;
12
+ target?: string;
13
+ color?: ButtonTypes;
14
+ onClick?: () => void;
15
+ };
16
+ declare const _default: React.NamedExoticComponent<SmallButtonProps>;
17
+ export default _default;
@@ -1,5 +1,11 @@
1
1
  import Button from './button';
2
- export { default as LinkButton } from './button.compact';
2
+ import IconButton from './button.icon';
3
+ import SmallButton from './button.small';
3
4
  export type { ButtonProps } from './button';
4
5
  export type { ButtonTypes } from '../utils/prop-types';
5
- export default Button;
6
+ export type ButtonComponentType = typeof Button & {
7
+ Icon: typeof IconButton;
8
+ Small: typeof SmallButton;
9
+ };
10
+ declare const _default: ButtonComponentType;
11
+ export default _default;
@@ -1314,7 +1314,7 @@ var getButtonDripColor = function getButtonDripColor(palette, props) {
1314
1314
  return isLightHover ? addColorAlpha(hoverColors.bg, 0.65) : addColorAlpha(palette.accents_2, 0.65);
1315
1315
  };
1316
1316
 
1317
- var _excluded = ["children", "disabled", "color", "loading", "shadow", "ghost", "effect", "round", "onClick", "auto", "icon", "type", "iconRight", "className", "crossOrigin"];
1317
+ var _excluded = ["children", "disabled", "color", "loading", "shadow", "ghost", "effect", "round", "a", "onClick", "auto", "icon", "type", "iconRight", "className", "crossOrigin"];
1318
1318
  var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1319
1319
  var theme$1 = theme.useTheme();
1320
1320
  var _useScale = useScale(),
@@ -1353,6 +1353,8 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1353
1353
  effect = _filteredProps$effect === void 0 ? true : _filteredProps$effect,
1354
1354
  _filteredProps$round = filteredProps.round,
1355
1355
  round = _filteredProps$round === void 0 ? false : _filteredProps$round,
1356
+ _filteredProps$a = filteredProps.a,
1357
+ a = _filteredProps$a === void 0 ? false : _filteredProps$a,
1356
1358
  onClick = filteredProps.onClick,
1357
1359
  _filteredProps$auto = filteredProps.auto,
1358
1360
  auto = _filteredProps$auto === void 0 ? false : _filteredProps$auto,
@@ -1456,7 +1458,11 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1456
1458
 
1457
1459
  // If shadow provided is string then value other default
1458
1460
  var btnShadow = typeof shadow === 'string' ? shadow : shadow ? theme$1.shadows.level.z2 : 'none';
1459
- return /*#__PURE__*/React.createElement("button", _extends({
1461
+ return /*#__PURE__*/React.createElement(React.Fragment, null, a ? /*#__PURE__*/React.createElement("a", _extends({}, props, {
1462
+ className: _JSXStyle.dynamic([["905110486", [SCALES.height(2.5), round ? '50%' : theme$1.layout.radius, SCALES.font(0.875), color, bg, shadow ? 'transparent' : border, cursor, events, shadow ? btnShadow : 'none', SCALES.pl(0.727), SCALES.height(2.5), color, bg, auto ? 'min-content' : SCALES.width(10.5), auto ? 'auto' : 'initial', SCALES.height(2.5), SCALES.pt(0), paddingRight, SCALES.pb(0), paddingLeft, SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), hover.color, hover.color, hover.bg, hover.border, cursor, events, btnShadow, shadow ? '-1px' : '0px']]]) + " " + (props && props.className != null && props.className || theme.useClasses('btn', className) || "")
1463
+ }), loading && /*#__PURE__*/React.createElement(ButtonLoading, {
1464
+ color: color
1465
+ }), childrenWithIcon) : /*#__PURE__*/React.createElement("button", _extends({
1460
1466
  ref: buttonRef,
1461
1467
  type: type,
1462
1468
  disabled: disabled,
@@ -1470,7 +1476,7 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1470
1476
  y: dripY,
1471
1477
  color: dripColor,
1472
1478
  onCompleted: dripCompletedHandle
1473
- }), /*#__PURE__*/React.createElement(_JSXStyle, {
1479
+ })), /*#__PURE__*/React.createElement(_JSXStyle, {
1474
1480
  id: "905110486",
1475
1481
  dynamic: [SCALES.height(2.5), round ? '50%' : theme$1.layout.radius, SCALES.font(0.875), color, bg, shadow ? 'transparent' : border, cursor, events, shadow ? btnShadow : 'none', SCALES.pl(0.727), SCALES.height(2.5), color, bg, auto ? 'min-content' : SCALES.width(10.5), auto ? 'auto' : 'initial', SCALES.height(2.5), SCALES.pt(0), paddingRight, SCALES.pb(0), paddingLeft, SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), hover.color, hover.color, hover.bg, hover.border, cursor, events, btnShadow, shadow ? '-1px' : '0px']
1476
1482
  }, ".btn.__jsx-style-dynamic-selector{box-sizing:border-box;display:inline-block;line-height:".concat(SCALES.height(2.5), ";border-radius:").concat(round ? '50%' : theme$1.layout.radius, ";font-weight:400;font-size:").concat(SCALES.font(0.875), ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none;text-transform:capitalize;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;white-space:nowrap;-webkit-transition:background-color 200ms ease 0ms,box-shadow 200ms ease 0ms, border 200ms ease 0ms,color 200ms ease 0ms;transition:background-color 200ms ease 0ms,box-shadow 200ms ease 0ms, border 200ms ease 0ms,color 200ms ease 0ms;position:relative;overflow:hidden;color:").concat(color, ";background-color:").concat(bg, ";border:1px solid ").concat(shadow ? 'transparent' : border, ";cursor:").concat(cursor, ";pointer-events:").concat(events, ";box-shadow:").concat(shadow ? btnShadow : 'none', ";--helpdice-ui-button-icon-padding:").concat(SCALES.pl(0.727), ";--helpdice-ui-button-height:").concat(SCALES.height(2.5), ";--helpdice-ui-button-color:").concat(color, ";--helpdice-ui-button-bg:").concat(bg, ";min-width:").concat(auto ? 'min-content' : SCALES.width(10.5), ";width:").concat(auto ? 'auto' : 'initial', ";height:").concat(SCALES.height(2.5), ";padding:").concat(SCALES.pt(0), " ").concat(paddingRight, " ").concat(SCALES.pb(0), " ").concat(paddingLeft, ";margin:").concat(SCALES.mt(0), " ").concat(SCALES.mr(0), " ").concat(SCALES.mb(0), " ").concat(SCALES.ml(0), ";}.btn.__jsx-style-dynamic-selector:hover,.btn.__jsx-style-dynamic-selector:focus{color:").concat(hover.color, ";--helpdice-ui-button-color:").concat(hover.color, ";background-color:").concat(hover.bg, ";border-color:").concat(hover.border, ";cursor:").concat(cursor, ";pointer-events:").concat(events, ";box-shadow:").concat(btnShadow, ";}.btn.__jsx-style-dynamic-selector .text{position:relative;z-index:1;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;line-height:inherit;top:-1px;}.btn.__jsx-style-dynamic-selector .text p,.btn.__jsx-style-dynamic-selector .text pre,.btn.__jsx-style-dynamic-selector .text div{margin:0;}.ripple.__jsx-style-dynamic-selector{position:absolute;border-radius:50%;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation:ripple-animation-__jsx-style-dynamic-selector 600ms ease-out;animation:ripple-animation-__jsx-style-dynamic-selector 600ms ease-out;background-color:rgba(0,0,0,0.3);pointer-events:none;z-index:1;}@-webkit-keyframes ripple-animation-__jsx-style-dynamic-selector{to{-webkit-transform:scale(2.5);-ms-transform:scale(2.5);transform:scale(2.5);opacity:0;}}@keyframes ripple-animation-__jsx-style-dynamic-selector{to{-webkit-transform:scale(2.5);-ms-transform:scale(2.5);transform:scale(2.5);opacity:0;}}")));
@@ -1480,36 +1486,15 @@ var Button = withScale(ButtonComponent);
1480
1486
 
1481
1487
  var CompactButton = function CompactButton(_ref) {
1482
1488
  _ref.color;
1483
- var _ref$to = _ref.to,
1484
- to = _ref$to === void 0 ? '/' : _ref$to,
1485
- children = _ref.children,
1489
+ var children = _ref.children,
1486
1490
  iconRight = _ref.iconRight,
1487
1491
  icon = _ref.icon,
1488
1492
  _ref$scale = _ref.scale,
1489
1493
  scale = _ref$scale === void 0 ? 2 / 3 : _ref$scale,
1490
1494
  type = _ref.type,
1491
1495
  style = _ref.style,
1492
- a = _ref.a,
1493
- _ref$target = _ref.target,
1494
- target = _ref$target === void 0 ? "_self" : _ref$target,
1495
1496
  onClick = _ref.onClick;
1496
1497
  var theme$1 = theme.useTheme();
1497
- if (a) {
1498
- return /*#__PURE__*/React.createElement(Button, {
1499
- icon: icon,
1500
- style: _objectSpread2(_objectSpread2({}, style), {}, {
1501
- backgroundColor: theme$1.palette.background
1502
- }),
1503
- type: type,
1504
- onClick: function onClick() {
1505
- return window.open(to, target);
1506
- },
1507
- auto: true,
1508
- scale: scale,
1509
- px: 0.6,
1510
- iconRight: iconRight
1511
- }, children);
1512
- }
1513
1498
  return /*#__PURE__*/React.createElement(Button, {
1514
1499
  icon: icon,
1515
1500
  style: _objectSpread2(_objectSpread2({}, style), {}, {
@@ -1523,9 +1508,37 @@ var CompactButton = function CompactButton(_ref) {
1523
1508
  iconRight: iconRight
1524
1509
  }, children);
1525
1510
  };
1526
- var button_compact = /*#__PURE__*/React.memo(CompactButton);
1511
+ var IconButton = /*#__PURE__*/React.memo(CompactButton);
1512
+
1513
+ var SmallButton = function SmallButton(_ref) {
1514
+ _ref.color;
1515
+ var children = _ref.children,
1516
+ iconRight = _ref.iconRight,
1517
+ icon = _ref.icon,
1518
+ _ref$scale = _ref.scale,
1519
+ scale = _ref$scale === void 0 ? 2 / 3 : _ref$scale,
1520
+ type = _ref.type,
1521
+ style = _ref.style,
1522
+ onClick = _ref.onClick;
1523
+ var theme$1 = theme.useTheme();
1524
+ return /*#__PURE__*/React.createElement(Button, {
1525
+ icon: icon,
1526
+ style: _objectSpread2(_objectSpread2({}, style), {}, {
1527
+ backgroundColor: theme$1.palette.background
1528
+ }),
1529
+ type: type,
1530
+ onClick: onClick,
1531
+ auto: true,
1532
+ scale: scale,
1533
+ py: 0.6,
1534
+ iconRight: iconRight
1535
+ }, children);
1536
+ };
1537
+ var SmallButton$1 = /*#__PURE__*/React.memo(SmallButton);
1527
1538
 
1528
1539
  /* "use client" */
1529
1540
 
1530
- exports.LinkButton = button_compact;
1541
+ Button.Icon = IconButton;
1542
+ Button.Small = SmallButton$1;
1543
+
1531
1544
  exports.default = Button;
@@ -2727,7 +2727,7 @@ var getButtonDripColor = function getButtonDripColor(palette, props) {
2727
2727
  return isLightHover ? addColorAlpha(hoverColors.bg, 0.65) : addColorAlpha(palette.accents_2, 0.65);
2728
2728
  };
2729
2729
 
2730
- var _excluded = ["children", "disabled", "color", "loading", "shadow", "ghost", "effect", "round", "onClick", "auto", "icon", "type", "iconRight", "className", "crossOrigin"];
2730
+ var _excluded = ["children", "disabled", "color", "loading", "shadow", "ghost", "effect", "round", "a", "onClick", "auto", "icon", "type", "iconRight", "className", "crossOrigin"];
2731
2731
  var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
2732
2732
  var theme$1 = theme.useTheme();
2733
2733
  var _useScale = useScale(),
@@ -2766,6 +2766,8 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
2766
2766
  effect = _filteredProps$effect === void 0 ? true : _filteredProps$effect,
2767
2767
  _filteredProps$round = filteredProps.round,
2768
2768
  round = _filteredProps$round === void 0 ? false : _filteredProps$round,
2769
+ _filteredProps$a = filteredProps.a,
2770
+ a = _filteredProps$a === void 0 ? false : _filteredProps$a,
2769
2771
  onClick = filteredProps.onClick,
2770
2772
  _filteredProps$auto = filteredProps.auto,
2771
2773
  auto = _filteredProps$auto === void 0 ? false : _filteredProps$auto,
@@ -2869,7 +2871,11 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
2869
2871
 
2870
2872
  // If shadow provided is string then value other default
2871
2873
  var btnShadow = typeof shadow === 'string' ? shadow : shadow ? theme$1.shadows.level.z2 : 'none';
2872
- return /*#__PURE__*/React.createElement("button", _extends({
2874
+ return /*#__PURE__*/React.createElement(React.Fragment, null, a ? /*#__PURE__*/React.createElement("a", _extends({}, props, {
2875
+ className: _JSXStyle.dynamic([["905110486", [SCALES.height(2.5), round ? '50%' : theme$1.layout.radius, SCALES.font(0.875), color, bg, shadow ? 'transparent' : border, cursor, events, shadow ? btnShadow : 'none', SCALES.pl(0.727), SCALES.height(2.5), color, bg, auto ? 'min-content' : SCALES.width(10.5), auto ? 'auto' : 'initial', SCALES.height(2.5), SCALES.pt(0), paddingRight, SCALES.pb(0), paddingLeft, SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), hover.color, hover.color, hover.bg, hover.border, cursor, events, btnShadow, shadow ? '-1px' : '0px']]]) + " " + (props && props.className != null && props.className || theme.useClasses('btn', className) || "")
2876
+ }), loading && /*#__PURE__*/React.createElement(ButtonLoading, {
2877
+ color: color
2878
+ }), childrenWithIcon) : /*#__PURE__*/React.createElement("button", _extends({
2873
2879
  ref: buttonRef,
2874
2880
  type: type,
2875
2881
  disabled: disabled,
@@ -2883,7 +2889,7 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
2883
2889
  y: dripY,
2884
2890
  color: dripColor,
2885
2891
  onCompleted: dripCompletedHandle
2886
- }), /*#__PURE__*/React.createElement(_JSXStyle, {
2892
+ })), /*#__PURE__*/React.createElement(_JSXStyle, {
2887
2893
  id: "905110486",
2888
2894
  dynamic: [SCALES.height(2.5), round ? '50%' : theme$1.layout.radius, SCALES.font(0.875), color, bg, shadow ? 'transparent' : border, cursor, events, shadow ? btnShadow : 'none', SCALES.pl(0.727), SCALES.height(2.5), color, bg, auto ? 'min-content' : SCALES.width(10.5), auto ? 'auto' : 'initial', SCALES.height(2.5), SCALES.pt(0), paddingRight, SCALES.pb(0), paddingLeft, SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), hover.color, hover.color, hover.bg, hover.border, cursor, events, btnShadow, shadow ? '-1px' : '0px']
2889
2895
  }, ".btn.__jsx-style-dynamic-selector{box-sizing:border-box;display:inline-block;line-height:".concat(SCALES.height(2.5), ";border-radius:").concat(round ? '50%' : theme$1.layout.radius, ";font-weight:400;font-size:").concat(SCALES.font(0.875), ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none;text-transform:capitalize;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;white-space:nowrap;-webkit-transition:background-color 200ms ease 0ms,box-shadow 200ms ease 0ms, border 200ms ease 0ms,color 200ms ease 0ms;transition:background-color 200ms ease 0ms,box-shadow 200ms ease 0ms, border 200ms ease 0ms,color 200ms ease 0ms;position:relative;overflow:hidden;color:").concat(color, ";background-color:").concat(bg, ";border:1px solid ").concat(shadow ? 'transparent' : border, ";cursor:").concat(cursor, ";pointer-events:").concat(events, ";box-shadow:").concat(shadow ? btnShadow : 'none', ";--helpdice-ui-button-icon-padding:").concat(SCALES.pl(0.727), ";--helpdice-ui-button-height:").concat(SCALES.height(2.5), ";--helpdice-ui-button-color:").concat(color, ";--helpdice-ui-button-bg:").concat(bg, ";min-width:").concat(auto ? 'min-content' : SCALES.width(10.5), ";width:").concat(auto ? 'auto' : 'initial', ";height:").concat(SCALES.height(2.5), ";padding:").concat(SCALES.pt(0), " ").concat(paddingRight, " ").concat(SCALES.pb(0), " ").concat(paddingLeft, ";margin:").concat(SCALES.mt(0), " ").concat(SCALES.mr(0), " ").concat(SCALES.mb(0), " ").concat(SCALES.ml(0), ";}.btn.__jsx-style-dynamic-selector:hover,.btn.__jsx-style-dynamic-selector:focus{color:").concat(hover.color, ";--helpdice-ui-button-color:").concat(hover.color, ";background-color:").concat(hover.bg, ";border-color:").concat(hover.border, ";cursor:").concat(cursor, ";pointer-events:").concat(events, ";box-shadow:").concat(btnShadow, ";}.btn.__jsx-style-dynamic-selector .text{position:relative;z-index:1;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;line-height:inherit;top:-1px;}.btn.__jsx-style-dynamic-selector .text p,.btn.__jsx-style-dynamic-selector .text pre,.btn.__jsx-style-dynamic-selector .text div{margin:0;}.ripple.__jsx-style-dynamic-selector{position:absolute;border-radius:50%;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation:ripple-animation-__jsx-style-dynamic-selector 600ms ease-out;animation:ripple-animation-__jsx-style-dynamic-selector 600ms ease-out;background-color:rgba(0,0,0,0.3);pointer-events:none;z-index:1;}@-webkit-keyframes ripple-animation-__jsx-style-dynamic-selector{to{-webkit-transform:scale(2.5);-ms-transform:scale(2.5);transform:scale(2.5);opacity:0;}}@keyframes ripple-animation-__jsx-style-dynamic-selector{to{-webkit-transform:scale(2.5);-ms-transform:scale(2.5);transform:scale(2.5);opacity:0;}}")));
@@ -2891,6 +2897,63 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
2891
2897
  ButtonComponent.displayName = 'Button';
2892
2898
  var Button = withScale(ButtonComponent);
2893
2899
 
2900
+ var CompactButton = function CompactButton(_ref) {
2901
+ _ref.color;
2902
+ var children = _ref.children,
2903
+ iconRight = _ref.iconRight,
2904
+ icon = _ref.icon,
2905
+ _ref$scale = _ref.scale,
2906
+ scale = _ref$scale === void 0 ? 2 / 3 : _ref$scale,
2907
+ type = _ref.type,
2908
+ style = _ref.style,
2909
+ onClick = _ref.onClick;
2910
+ var theme$1 = theme.useTheme();
2911
+ return /*#__PURE__*/React.createElement(Button, {
2912
+ icon: icon,
2913
+ style: _objectSpread2(_objectSpread2({}, style), {}, {
2914
+ backgroundColor: theme$1.palette.background
2915
+ }),
2916
+ type: type,
2917
+ onClick: onClick,
2918
+ auto: true,
2919
+ scale: scale,
2920
+ px: 0.6,
2921
+ iconRight: iconRight
2922
+ }, children);
2923
+ };
2924
+ var IconButton = /*#__PURE__*/React.memo(CompactButton);
2925
+
2926
+ var SmallButton = function SmallButton(_ref) {
2927
+ _ref.color;
2928
+ var children = _ref.children,
2929
+ iconRight = _ref.iconRight,
2930
+ icon = _ref.icon,
2931
+ _ref$scale = _ref.scale,
2932
+ scale = _ref$scale === void 0 ? 2 / 3 : _ref$scale,
2933
+ type = _ref.type,
2934
+ style = _ref.style,
2935
+ onClick = _ref.onClick;
2936
+ var theme$1 = theme.useTheme();
2937
+ return /*#__PURE__*/React.createElement(Button, {
2938
+ icon: icon,
2939
+ style: _objectSpread2(_objectSpread2({}, style), {}, {
2940
+ backgroundColor: theme$1.palette.background
2941
+ }),
2942
+ type: type,
2943
+ onClick: onClick,
2944
+ auto: true,
2945
+ scale: scale,
2946
+ py: 0.6,
2947
+ iconRight: iconRight
2948
+ }, children);
2949
+ };
2950
+ var SmallButton$1 = /*#__PURE__*/React.memo(SmallButton);
2951
+
2952
+ /* "use client" */
2953
+
2954
+ Button.Icon = IconButton;
2955
+ Button.Small = SmallButton$1;
2956
+
2894
2957
  var isKeyboardEvent$1 = function isKeyboardEvent(e) {
2895
2958
  return e.hasOwnProperty('key');
2896
2959
  };
@@ -1407,7 +1407,7 @@ var getButtonDripColor = function getButtonDripColor(palette, props) {
1407
1407
  return isLightHover ? addColorAlpha(hoverColors.bg, 0.65) : addColorAlpha(palette.accents_2, 0.65);
1408
1408
  };
1409
1409
 
1410
- var _excluded$1 = ["children", "disabled", "color", "loading", "shadow", "ghost", "effect", "round", "onClick", "auto", "icon", "type", "iconRight", "className", "crossOrigin"];
1410
+ var _excluded$1 = ["children", "disabled", "color", "loading", "shadow", "ghost", "effect", "round", "a", "onClick", "auto", "icon", "type", "iconRight", "className", "crossOrigin"];
1411
1411
  var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1412
1412
  var theme$1 = theme.useTheme();
1413
1413
  var _useScale = useScale(),
@@ -1446,6 +1446,8 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1446
1446
  effect = _filteredProps$effect === void 0 ? true : _filteredProps$effect,
1447
1447
  _filteredProps$round = filteredProps.round,
1448
1448
  round = _filteredProps$round === void 0 ? false : _filteredProps$round,
1449
+ _filteredProps$a = filteredProps.a,
1450
+ a = _filteredProps$a === void 0 ? false : _filteredProps$a,
1449
1451
  onClick = filteredProps.onClick,
1450
1452
  _filteredProps$auto = filteredProps.auto,
1451
1453
  auto = _filteredProps$auto === void 0 ? false : _filteredProps$auto,
@@ -1549,7 +1551,11 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1549
1551
 
1550
1552
  // If shadow provided is string then value other default
1551
1553
  var btnShadow = typeof shadow === 'string' ? shadow : shadow ? theme$1.shadows.level.z2 : 'none';
1552
- return /*#__PURE__*/React.createElement("button", _extends({
1554
+ return /*#__PURE__*/React.createElement(React.Fragment, null, a ? /*#__PURE__*/React.createElement("a", _extends({}, props, {
1555
+ className: _JSXStyle.dynamic([["905110486", [SCALES.height(2.5), round ? '50%' : theme$1.layout.radius, SCALES.font(0.875), color, bg, shadow ? 'transparent' : border, cursor, events, shadow ? btnShadow : 'none', SCALES.pl(0.727), SCALES.height(2.5), color, bg, auto ? 'min-content' : SCALES.width(10.5), auto ? 'auto' : 'initial', SCALES.height(2.5), SCALES.pt(0), paddingRight, SCALES.pb(0), paddingLeft, SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), hover.color, hover.color, hover.bg, hover.border, cursor, events, btnShadow, shadow ? '-1px' : '0px']]]) + " " + (props && props.className != null && props.className || theme.useClasses('btn', className) || "")
1556
+ }), loading && /*#__PURE__*/React.createElement(ButtonLoading, {
1557
+ color: color
1558
+ }), childrenWithIcon) : /*#__PURE__*/React.createElement("button", _extends({
1553
1559
  ref: buttonRef,
1554
1560
  type: type,
1555
1561
  disabled: disabled,
@@ -1563,7 +1569,7 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1563
1569
  y: dripY,
1564
1570
  color: dripColor,
1565
1571
  onCompleted: dripCompletedHandle
1566
- }), /*#__PURE__*/React.createElement(_JSXStyle, {
1572
+ })), /*#__PURE__*/React.createElement(_JSXStyle, {
1567
1573
  id: "905110486",
1568
1574
  dynamic: [SCALES.height(2.5), round ? '50%' : theme$1.layout.radius, SCALES.font(0.875), color, bg, shadow ? 'transparent' : border, cursor, events, shadow ? btnShadow : 'none', SCALES.pl(0.727), SCALES.height(2.5), color, bg, auto ? 'min-content' : SCALES.width(10.5), auto ? 'auto' : 'initial', SCALES.height(2.5), SCALES.pt(0), paddingRight, SCALES.pb(0), paddingLeft, SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), hover.color, hover.color, hover.bg, hover.border, cursor, events, btnShadow, shadow ? '-1px' : '0px']
1569
1575
  }, ".btn.__jsx-style-dynamic-selector{box-sizing:border-box;display:inline-block;line-height:".concat(SCALES.height(2.5), ";border-radius:").concat(round ? '50%' : theme$1.layout.radius, ";font-weight:400;font-size:").concat(SCALES.font(0.875), ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none;text-transform:capitalize;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;white-space:nowrap;-webkit-transition:background-color 200ms ease 0ms,box-shadow 200ms ease 0ms, border 200ms ease 0ms,color 200ms ease 0ms;transition:background-color 200ms ease 0ms,box-shadow 200ms ease 0ms, border 200ms ease 0ms,color 200ms ease 0ms;position:relative;overflow:hidden;color:").concat(color, ";background-color:").concat(bg, ";border:1px solid ").concat(shadow ? 'transparent' : border, ";cursor:").concat(cursor, ";pointer-events:").concat(events, ";box-shadow:").concat(shadow ? btnShadow : 'none', ";--helpdice-ui-button-icon-padding:").concat(SCALES.pl(0.727), ";--helpdice-ui-button-height:").concat(SCALES.height(2.5), ";--helpdice-ui-button-color:").concat(color, ";--helpdice-ui-button-bg:").concat(bg, ";min-width:").concat(auto ? 'min-content' : SCALES.width(10.5), ";width:").concat(auto ? 'auto' : 'initial', ";height:").concat(SCALES.height(2.5), ";padding:").concat(SCALES.pt(0), " ").concat(paddingRight, " ").concat(SCALES.pb(0), " ").concat(paddingLeft, ";margin:").concat(SCALES.mt(0), " ").concat(SCALES.mr(0), " ").concat(SCALES.mb(0), " ").concat(SCALES.ml(0), ";}.btn.__jsx-style-dynamic-selector:hover,.btn.__jsx-style-dynamic-selector:focus{color:").concat(hover.color, ";--helpdice-ui-button-color:").concat(hover.color, ";background-color:").concat(hover.bg, ";border-color:").concat(hover.border, ";cursor:").concat(cursor, ";pointer-events:").concat(events, ";box-shadow:").concat(btnShadow, ";}.btn.__jsx-style-dynamic-selector .text{position:relative;z-index:1;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;line-height:inherit;top:-1px;}.btn.__jsx-style-dynamic-selector .text p,.btn.__jsx-style-dynamic-selector .text pre,.btn.__jsx-style-dynamic-selector .text div{margin:0;}.ripple.__jsx-style-dynamic-selector{position:absolute;border-radius:50%;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation:ripple-animation-__jsx-style-dynamic-selector 600ms ease-out;animation:ripple-animation-__jsx-style-dynamic-selector 600ms ease-out;background-color:rgba(0,0,0,0.3);pointer-events:none;z-index:1;}@-webkit-keyframes ripple-animation-__jsx-style-dynamic-selector{to{-webkit-transform:scale(2.5);-ms-transform:scale(2.5);transform:scale(2.5);opacity:0;}}@keyframes ripple-animation-__jsx-style-dynamic-selector{to{-webkit-transform:scale(2.5);-ms-transform:scale(2.5);transform:scale(2.5);opacity:0;}}")));
@@ -1571,6 +1577,63 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1571
1577
  ButtonComponent.displayName = 'Button';
1572
1578
  var Button = withScale(ButtonComponent);
1573
1579
 
1580
+ var CompactButton = function CompactButton(_ref) {
1581
+ _ref.color;
1582
+ var children = _ref.children,
1583
+ iconRight = _ref.iconRight,
1584
+ icon = _ref.icon,
1585
+ _ref$scale = _ref.scale,
1586
+ scale = _ref$scale === void 0 ? 2 / 3 : _ref$scale,
1587
+ type = _ref.type,
1588
+ style = _ref.style,
1589
+ onClick = _ref.onClick;
1590
+ var theme$1 = theme.useTheme();
1591
+ return /*#__PURE__*/React.createElement(Button, {
1592
+ icon: icon,
1593
+ style: _objectSpread2(_objectSpread2({}, style), {}, {
1594
+ backgroundColor: theme$1.palette.background
1595
+ }),
1596
+ type: type,
1597
+ onClick: onClick,
1598
+ auto: true,
1599
+ scale: scale,
1600
+ px: 0.6,
1601
+ iconRight: iconRight
1602
+ }, children);
1603
+ };
1604
+ var IconButton = /*#__PURE__*/React.memo(CompactButton);
1605
+
1606
+ var SmallButton = function SmallButton(_ref) {
1607
+ _ref.color;
1608
+ var children = _ref.children,
1609
+ iconRight = _ref.iconRight,
1610
+ icon = _ref.icon,
1611
+ _ref$scale = _ref.scale,
1612
+ scale = _ref$scale === void 0 ? 2 / 3 : _ref$scale,
1613
+ type = _ref.type,
1614
+ style = _ref.style,
1615
+ onClick = _ref.onClick;
1616
+ var theme$1 = theme.useTheme();
1617
+ return /*#__PURE__*/React.createElement(Button, {
1618
+ icon: icon,
1619
+ style: _objectSpread2(_objectSpread2({}, style), {}, {
1620
+ backgroundColor: theme$1.palette.background
1621
+ }),
1622
+ type: type,
1623
+ onClick: onClick,
1624
+ auto: true,
1625
+ scale: scale,
1626
+ py: 0.6,
1627
+ iconRight: iconRight
1628
+ }, children);
1629
+ };
1630
+ var SmallButton$1 = /*#__PURE__*/React.memo(SmallButton);
1631
+
1632
+ /* "use client" */
1633
+
1634
+ Button.Icon = IconButton;
1635
+ Button.Small = SmallButton$1;
1636
+
1574
1637
  var _excluded = ["gap", "children", "direction", "justify", "alignItems", "alignContent", "collapse", "className"];
1575
1638
  var wrap = tuple('nowrap', 'wrap', 'wrap-reverse');
1576
1639
  var Container = function Container(_ref) {
@@ -1449,7 +1449,7 @@ var getButtonDripColor = function getButtonDripColor(palette, props) {
1449
1449
  return isLightHover ? addColorAlpha(hoverColors.bg, 0.65) : addColorAlpha(palette.accents_2, 0.65);
1450
1450
  };
1451
1451
 
1452
- var _excluded = ["children", "disabled", "color", "loading", "shadow", "ghost", "effect", "round", "onClick", "auto", "icon", "type", "iconRight", "className", "crossOrigin"];
1452
+ var _excluded = ["children", "disabled", "color", "loading", "shadow", "ghost", "effect", "round", "a", "onClick", "auto", "icon", "type", "iconRight", "className", "crossOrigin"];
1453
1453
  var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1454
1454
  var theme$1 = theme.useTheme();
1455
1455
  var _useScale = useScale(),
@@ -1488,6 +1488,8 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1488
1488
  effect = _filteredProps$effect === void 0 ? true : _filteredProps$effect,
1489
1489
  _filteredProps$round = filteredProps.round,
1490
1490
  round = _filteredProps$round === void 0 ? false : _filteredProps$round,
1491
+ _filteredProps$a = filteredProps.a,
1492
+ a = _filteredProps$a === void 0 ? false : _filteredProps$a,
1491
1493
  onClick = filteredProps.onClick,
1492
1494
  _filteredProps$auto = filteredProps.auto,
1493
1495
  auto = _filteredProps$auto === void 0 ? false : _filteredProps$auto,
@@ -1591,7 +1593,11 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1591
1593
 
1592
1594
  // If shadow provided is string then value other default
1593
1595
  var btnShadow = typeof shadow === 'string' ? shadow : shadow ? theme$1.shadows.level.z2 : 'none';
1594
- return /*#__PURE__*/React.createElement("button", _extends({
1596
+ return /*#__PURE__*/React.createElement(React.Fragment, null, a ? /*#__PURE__*/React.createElement("a", _extends({}, props, {
1597
+ className: _JSXStyle.dynamic([["905110486", [SCALES.height(2.5), round ? '50%' : theme$1.layout.radius, SCALES.font(0.875), color, bg, shadow ? 'transparent' : border, cursor, events, shadow ? btnShadow : 'none', SCALES.pl(0.727), SCALES.height(2.5), color, bg, auto ? 'min-content' : SCALES.width(10.5), auto ? 'auto' : 'initial', SCALES.height(2.5), SCALES.pt(0), paddingRight, SCALES.pb(0), paddingLeft, SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), hover.color, hover.color, hover.bg, hover.border, cursor, events, btnShadow, shadow ? '-1px' : '0px']]]) + " " + (props && props.className != null && props.className || theme.useClasses('btn', className) || "")
1598
+ }), loading && /*#__PURE__*/React.createElement(ButtonLoading, {
1599
+ color: color
1600
+ }), childrenWithIcon) : /*#__PURE__*/React.createElement("button", _extends({
1595
1601
  ref: buttonRef,
1596
1602
  type: type,
1597
1603
  disabled: disabled,
@@ -1605,7 +1611,7 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1605
1611
  y: dripY,
1606
1612
  color: dripColor,
1607
1613
  onCompleted: dripCompletedHandle
1608
- }), /*#__PURE__*/React.createElement(_JSXStyle, {
1614
+ })), /*#__PURE__*/React.createElement(_JSXStyle, {
1609
1615
  id: "905110486",
1610
1616
  dynamic: [SCALES.height(2.5), round ? '50%' : theme$1.layout.radius, SCALES.font(0.875), color, bg, shadow ? 'transparent' : border, cursor, events, shadow ? btnShadow : 'none', SCALES.pl(0.727), SCALES.height(2.5), color, bg, auto ? 'min-content' : SCALES.width(10.5), auto ? 'auto' : 'initial', SCALES.height(2.5), SCALES.pt(0), paddingRight, SCALES.pb(0), paddingLeft, SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), hover.color, hover.color, hover.bg, hover.border, cursor, events, btnShadow, shadow ? '-1px' : '0px']
1611
1617
  }, ".btn.__jsx-style-dynamic-selector{box-sizing:border-box;display:inline-block;line-height:".concat(SCALES.height(2.5), ";border-radius:").concat(round ? '50%' : theme$1.layout.radius, ";font-weight:400;font-size:").concat(SCALES.font(0.875), ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none;text-transform:capitalize;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;white-space:nowrap;-webkit-transition:background-color 200ms ease 0ms,box-shadow 200ms ease 0ms, border 200ms ease 0ms,color 200ms ease 0ms;transition:background-color 200ms ease 0ms,box-shadow 200ms ease 0ms, border 200ms ease 0ms,color 200ms ease 0ms;position:relative;overflow:hidden;color:").concat(color, ";background-color:").concat(bg, ";border:1px solid ").concat(shadow ? 'transparent' : border, ";cursor:").concat(cursor, ";pointer-events:").concat(events, ";box-shadow:").concat(shadow ? btnShadow : 'none', ";--helpdice-ui-button-icon-padding:").concat(SCALES.pl(0.727), ";--helpdice-ui-button-height:").concat(SCALES.height(2.5), ";--helpdice-ui-button-color:").concat(color, ";--helpdice-ui-button-bg:").concat(bg, ";min-width:").concat(auto ? 'min-content' : SCALES.width(10.5), ";width:").concat(auto ? 'auto' : 'initial', ";height:").concat(SCALES.height(2.5), ";padding:").concat(SCALES.pt(0), " ").concat(paddingRight, " ").concat(SCALES.pb(0), " ").concat(paddingLeft, ";margin:").concat(SCALES.mt(0), " ").concat(SCALES.mr(0), " ").concat(SCALES.mb(0), " ").concat(SCALES.ml(0), ";}.btn.__jsx-style-dynamic-selector:hover,.btn.__jsx-style-dynamic-selector:focus{color:").concat(hover.color, ";--helpdice-ui-button-color:").concat(hover.color, ";background-color:").concat(hover.bg, ";border-color:").concat(hover.border, ";cursor:").concat(cursor, ";pointer-events:").concat(events, ";box-shadow:").concat(btnShadow, ";}.btn.__jsx-style-dynamic-selector .text{position:relative;z-index:1;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;line-height:inherit;top:-1px;}.btn.__jsx-style-dynamic-selector .text p,.btn.__jsx-style-dynamic-selector .text pre,.btn.__jsx-style-dynamic-selector .text div{margin:0;}.ripple.__jsx-style-dynamic-selector{position:absolute;border-radius:50%;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation:ripple-animation-__jsx-style-dynamic-selector 600ms ease-out;animation:ripple-animation-__jsx-style-dynamic-selector 600ms ease-out;background-color:rgba(0,0,0,0.3);pointer-events:none;z-index:1;}@-webkit-keyframes ripple-animation-__jsx-style-dynamic-selector{to{-webkit-transform:scale(2.5);-ms-transform:scale(2.5);transform:scale(2.5);opacity:0;}}@keyframes ripple-animation-__jsx-style-dynamic-selector{to{-webkit-transform:scale(2.5);-ms-transform:scale(2.5);transform:scale(2.5);opacity:0;}}")));
@@ -1613,6 +1619,63 @@ var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1613
1619
  ButtonComponent.displayName = 'Button';
1614
1620
  var Button = withScale(ButtonComponent);
1615
1621
 
1622
+ var CompactButton = function CompactButton(_ref) {
1623
+ _ref.color;
1624
+ var children = _ref.children,
1625
+ iconRight = _ref.iconRight,
1626
+ icon = _ref.icon,
1627
+ _ref$scale = _ref.scale,
1628
+ scale = _ref$scale === void 0 ? 2 / 3 : _ref$scale,
1629
+ type = _ref.type,
1630
+ style = _ref.style,
1631
+ onClick = _ref.onClick;
1632
+ var theme$1 = theme.useTheme();
1633
+ return /*#__PURE__*/React.createElement(Button, {
1634
+ icon: icon,
1635
+ style: _objectSpread2(_objectSpread2({}, style), {}, {
1636
+ backgroundColor: theme$1.palette.background
1637
+ }),
1638
+ type: type,
1639
+ onClick: onClick,
1640
+ auto: true,
1641
+ scale: scale,
1642
+ px: 0.6,
1643
+ iconRight: iconRight
1644
+ }, children);
1645
+ };
1646
+ var IconButton = /*#__PURE__*/React.memo(CompactButton);
1647
+
1648
+ var SmallButton = function SmallButton(_ref) {
1649
+ _ref.color;
1650
+ var children = _ref.children,
1651
+ iconRight = _ref.iconRight,
1652
+ icon = _ref.icon,
1653
+ _ref$scale = _ref.scale,
1654
+ scale = _ref$scale === void 0 ? 2 / 3 : _ref$scale,
1655
+ type = _ref.type,
1656
+ style = _ref.style,
1657
+ onClick = _ref.onClick;
1658
+ var theme$1 = theme.useTheme();
1659
+ return /*#__PURE__*/React.createElement(Button, {
1660
+ icon: icon,
1661
+ style: _objectSpread2(_objectSpread2({}, style), {}, {
1662
+ backgroundColor: theme$1.palette.background
1663
+ }),
1664
+ type: type,
1665
+ onClick: onClick,
1666
+ auto: true,
1667
+ scale: scale,
1668
+ py: 0.6,
1669
+ iconRight: iconRight
1670
+ }, children);
1671
+ };
1672
+ var SmallButton$1 = /*#__PURE__*/React.memo(SmallButton);
1673
+
1674
+ /* "use client" */
1675
+
1676
+ Button.Icon = IconButton;
1677
+ Button.Small = SmallButton$1;
1678
+
1616
1679
  // export function Clipboard(props: ClipboardProps) {
1617
1680
  // const { setToast } = useToasts();
1618
1681
  // const { showIcon, text, onCopy, options: options, children, } = props;
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { default as Badge } from './badge';
6
6
  export type { BadgeProps, BadgeAnchorProps } from './badge';
7
7
  export { default as Breadcrumbs } from './breadcrumbs';
8
8
  export type { BreadcrumbsProps, BreadcrumbsItemProps, BreadcrumbsSeparatorProps, } from './breadcrumbs';
9
- export { default as Button, LinkButton } from './button';
9
+ export { default as Button } from './button';
10
10
  export type { ButtonProps } from './button';
11
11
  export { default as ButtonDropdown } from './button-dropdown';
12
12
  export type { ButtonDropdownProps, ButtonDropdownItemProps } from './button-dropdown';