@helpdice/ui 2.6.0-beta.6 → 2.6.0-beta.7

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.
@@ -5,15 +5,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var theme = require('@helpdice/theme');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
+ var Expandable = require('components/expandable');
8
9
 
9
10
  function _arrayLikeToArray(r, a) {
10
11
  (null == a || a > r.length) && (a = r.length);
11
12
  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
12
13
  return n;
13
14
  }
14
- function _arrayWithHoles(r) {
15
- if (Array.isArray(r)) return r;
16
- }
17
15
  function _createForOfIteratorHelper(r, e) {
18
16
  var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
19
17
  if (!t) {
@@ -70,36 +68,6 @@ function _defineProperty(e, r, t) {
70
68
  writable: true
71
69
  }) : e[r] = t, e;
72
70
  }
73
- function _iterableToArrayLimit(r, l) {
74
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
75
- if (null != t) {
76
- var e,
77
- n,
78
- i,
79
- u,
80
- a = [],
81
- f = true,
82
- o = false;
83
- try {
84
- if (i = (t = t.call(r)).next, 0 === l) {
85
- if (Object(t) !== t) return;
86
- f = !1;
87
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
88
- } catch (r) {
89
- o = true, n = r;
90
- } finally {
91
- try {
92
- if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
93
- } finally {
94
- if (o) throw n;
95
- }
96
- }
97
- return a;
98
- }
99
- }
100
- function _nonIterableRest() {
101
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
102
- }
103
71
  function ownKeys(e, r) {
104
72
  var t = Object.keys(e);
105
73
  if (Object.getOwnPropertySymbols) {
@@ -141,9 +109,6 @@ function _objectWithoutPropertiesLoose(r, e) {
141
109
  }
142
110
  return t;
143
111
  }
144
- function _slicedToArray(r, e) {
145
- return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
146
- }
147
112
  function _toPrimitive(t, r) {
148
113
  if ("object" != typeof t || !t) return t;
149
114
  var e = t[Symbol.toPrimitive];
@@ -715,7 +680,7 @@ var ScalePropKeys = ['width', 'height', 'padding', 'margin', 'w', 'h', 'paddingL
715
680
  var defaultDynamicLayoutPipe = function defaultDynamicLayoutPipe(scale1x) {
716
681
  return "".concat(scale1x);
717
682
  };
718
- var defaultContext$1 = {
683
+ var defaultContext = {
719
684
  getScaleProps: function getScaleProps() {
720
685
  return undefined;
721
686
  },
@@ -741,7 +706,7 @@ var defaultContext$1 = {
741
706
  },
742
707
  unit: '16px'
743
708
  };
744
- var ScaleContext = /*#__PURE__*/React.createContext(defaultContext$1);
709
+ var ScaleContext = /*#__PURE__*/React.createContext(defaultContext);
745
710
  var useScale = function useScale() {
746
711
  return React.useContext(ScaleContext);
747
712
  };
@@ -798,7 +763,7 @@ var generateGetAllScaleProps = function generateGetAllScaleProps(props) {
798
763
  return getAllScaleProps;
799
764
  };
800
765
 
801
- var _excluded$5 = ["children"];
766
+ var _excluded$2 = ["children"];
802
767
  var reduceScaleCoefficient = function reduceScaleCoefficient(scale) {
803
768
  if (scale === 1) return scale;
804
769
  var diff = Math.abs((scale - 1) / 2);
@@ -808,7 +773,7 @@ var withScale = function withScale(Render) {
808
773
  var ScaleFC = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
809
774
  var _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref0, _ref1, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25, _ref26, _ref27, _ref28, _ref29, _ref30, _ref31;
810
775
  var children = _ref.children,
811
- props = _objectWithoutProperties(_ref, _excluded$5);
776
+ props = _objectWithoutProperties(_ref, _excluded$2);
812
777
  var _useTheme = theme.useTheme(),
813
778
  layout = _useTheme.layout;
814
779
  var paddingLeft = props.paddingLeft,
@@ -893,7 +858,7 @@ var withScale = function withScale(Render) {
893
858
  return ScaleFC;
894
859
  };
895
860
 
896
- var _excluded$4 = ["xs", "sm", "md", "lg", "xl", "justify", "direction", "alignItems", "alignContent", "children", "className"];
861
+ var _excluded$1 = ["xs", "sm", "md", "lg", "xl", "justify", "direction", "alignItems", "alignContent", "children", "className"];
897
862
  var getItemLayout = function getItemLayout(val) {
898
863
  var display = val === 0 ? 'display: none;' : 'display: inherit;';
899
864
  if (typeof val === 'number') {
@@ -931,7 +896,7 @@ var GridBasicItem = function GridBasicItem(_ref) {
931
896
  children = _ref.children,
932
897
  _ref$className = _ref.className,
933
898
  className = _ref$className === void 0 ? '' : _ref$className,
934
- props = _objectWithoutProperties(_ref, _excluded$4);
899
+ props = _objectWithoutProperties(_ref, _excluded$1);
935
900
  var theme$1 = theme.useTheme();
936
901
  var _useScale = useScale(),
937
902
  SCALES = _useScale.SCALES;
@@ -988,651 +953,6 @@ tuple('hover', 'click');
988
953
  tuple('top', 'topStart', 'topEnd', 'left', 'leftStart', 'leftEnd', 'bottom', 'bottomStart', 'bottomEnd', 'right', 'rightStart', 'rightEnd');
989
954
  tuple('start', 'center', 'end', 'left', 'right');
990
955
 
991
- var ButtonDrip = function ButtonDrip(_ref) {
992
- var _ref$x = _ref.x,
993
- x = _ref$x === void 0 ? 0 : _ref$x,
994
- _ref$y = _ref.y,
995
- y = _ref$y === void 0 ? 0 : _ref$y,
996
- color = _ref.color,
997
- onCompleted = _ref.onCompleted;
998
- var dripRef = React.useRef(null);
999
- /* istanbul ignore next */
1000
- var top = Number.isNaN(+y) ? 0 : y - 10;
1001
- /* istanbul ignore next */
1002
- var left = Number.isNaN(+x) ? 0 : x - 10;
1003
- React.useEffect(function () {
1004
- /* istanbul ignore next */
1005
- if (!dripRef.current) return;
1006
- dripRef.current.addEventListener('animationend', onCompleted);
1007
- return function () {
1008
- /* istanbul ignore next */
1009
- if (!dripRef.current) return;
1010
- dripRef.current.removeEventListener('animationend', onCompleted);
1011
- };
1012
- });
1013
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
1014
- ref: dripRef,
1015
- className: "jsx-3424889537" + " " + "drip",
1016
- children: [/*#__PURE__*/jsxRuntime.jsx("svg", {
1017
- width: "20",
1018
- height: "20",
1019
- viewBox: "0 0 20 20",
1020
- style: {
1021
- top: top,
1022
- left: left
1023
- },
1024
- className: "jsx-3424889537",
1025
- children: /*#__PURE__*/jsxRuntime.jsx("g", {
1026
- stroke: "none",
1027
- strokeWidth: "1",
1028
- fill: "none",
1029
- fillRule: "evenodd",
1030
- className: "jsx-3424889537",
1031
- children: /*#__PURE__*/jsxRuntime.jsx("g", {
1032
- fill: color,
1033
- className: "jsx-3424889537",
1034
- children: /*#__PURE__*/jsxRuntime.jsx("rect", {
1035
- width: "100%",
1036
- height: "100%",
1037
- rx: "10",
1038
- className: "jsx-3424889537"
1039
- })
1040
- })
1041
- })
1042
- }), /*#__PURE__*/jsxRuntime.jsx(_JSXStyle, {
1043
- id: "3424889537",
1044
- children: ".drip.jsx-3424889537{position:absolute;left:0;right:0;top:0;bottom:0;}svg.jsx-3424889537{position:absolute;-webkit-animation:350ms ease-in expand-jsx-3424889537;animation:350ms ease-in expand-jsx-3424889537;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;width:1rem;height:1rem;}@-webkit-keyframes expand-jsx-3424889537{0%{opacity:0;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);}30%{opacity:1;}80%{opacity:0.5;}100%{-webkit-transform:scale(28);-ms-transform:scale(28);transform:scale(28);opacity:0;}}@keyframes expand-jsx-3424889537{0%{opacity:0;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);}30%{opacity:1;}80%{opacity:0.5;}100%{-webkit-transform:scale(28);-ms-transform:scale(28);transform:scale(28);opacity:0;}}"
1045
- })]
1046
- });
1047
- };
1048
- ButtonDrip.displayName = 'ButtonDrip';
1049
-
1050
- var _excluded$3 = ["children", "type", "color", "className", "spaceRatio"];
1051
- var getIconBgColor = function getIconBgColor(type, palette, color) {
1052
- var colors = {
1053
- "default": palette.accents_6,
1054
- secondary: palette.secondary,
1055
- success: palette.success,
1056
- warning: palette.warning,
1057
- error: palette.error
1058
- };
1059
- return color ? color : colors[type];
1060
- };
1061
- var LoadingComponent = function LoadingComponent(_ref) {
1062
- var children = _ref.children,
1063
- _ref$type = _ref.type,
1064
- type = _ref$type === void 0 ? 'default' : _ref$type,
1065
- color = _ref.color,
1066
- _ref$className = _ref.className,
1067
- className = _ref$className === void 0 ? '' : _ref$className,
1068
- _ref$spaceRatio = _ref.spaceRatio,
1069
- spaceRatio = _ref$spaceRatio === void 0 ? 1 : _ref$spaceRatio,
1070
- props = _objectWithoutProperties(_ref, _excluded$3);
1071
- var theme$1 = theme.useTheme();
1072
- var _useScale = useScale(),
1073
- SCALES = _useScale.SCALES;
1074
- var classes = theme.useClasses('loading-container', className);
1075
- var bgColor = React.useMemo(function () {
1076
- return getIconBgColor(type, theme$1.palette, color);
1077
- }, [type, theme$1.palette, color]);
1078
- return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread2(_objectSpread2({}, props), {}, {
1079
- className: _JSXStyle.dynamic([["2201634259", [SCALES.font(1), SCALES.width(1, '100%'), SCALES.height(1, '100%'), SCALES.pt(0), SCALES.pr(0), SCALES.pb(0), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme$1.palette.accents_5, bgColor, spaceRatio]]]) + " " + (props && props.className != null && props.className || classes || ""),
1080
- children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
1081
- className: _JSXStyle.dynamic([["2201634259", [SCALES.font(1), SCALES.width(1, '100%'), SCALES.height(1, '100%'), SCALES.pt(0), SCALES.pr(0), SCALES.pb(0), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme$1.palette.accents_5, bgColor, spaceRatio]]]) + " " + "loading",
1082
- children: [children && /*#__PURE__*/jsxRuntime.jsx("label", {
1083
- className: _JSXStyle.dynamic([["2201634259", [SCALES.font(1), SCALES.width(1, '100%'), SCALES.height(1, '100%'), SCALES.pt(0), SCALES.pr(0), SCALES.pb(0), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme$1.palette.accents_5, bgColor, spaceRatio]]]),
1084
- children: children
1085
- }), /*#__PURE__*/jsxRuntime.jsx("i", {
1086
- className: _JSXStyle.dynamic([["2201634259", [SCALES.font(1), SCALES.width(1, '100%'), SCALES.height(1, '100%'), SCALES.pt(0), SCALES.pr(0), SCALES.pb(0), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme$1.palette.accents_5, bgColor, spaceRatio]]])
1087
- }), /*#__PURE__*/jsxRuntime.jsx("i", {
1088
- className: _JSXStyle.dynamic([["2201634259", [SCALES.font(1), SCALES.width(1, '100%'), SCALES.height(1, '100%'), SCALES.pt(0), SCALES.pr(0), SCALES.pb(0), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme$1.palette.accents_5, bgColor, spaceRatio]]])
1089
- }), /*#__PURE__*/jsxRuntime.jsx("i", {
1090
- className: _JSXStyle.dynamic([["2201634259", [SCALES.font(1), SCALES.width(1, '100%'), SCALES.height(1, '100%'), SCALES.pt(0), SCALES.pr(0), SCALES.pb(0), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme$1.palette.accents_5, bgColor, spaceRatio]]])
1091
- })]
1092
- }), /*#__PURE__*/jsxRuntime.jsx(_JSXStyle, {
1093
- id: "2201634259",
1094
- dynamic: [SCALES.font(1), SCALES.width(1, '100%'), SCALES.height(1, '100%'), SCALES.pt(0), SCALES.pr(0), SCALES.pb(0), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme$1.palette.accents_5, bgColor, spaceRatio],
1095
- children: ".loading-container.__jsx-style-dynamic-selector{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:".concat(SCALES.font(1), ";width:").concat(SCALES.width(1, '100%'), ";height:").concat(SCALES.height(1, '100%'), ";min-height:1em;padding:").concat(SCALES.pt(0), " ").concat(SCALES.pr(0), " ").concat(SCALES.pb(0), " ").concat(SCALES.pl(0), ";margin:").concat(SCALES.mt(0), " ").concat(SCALES.mr(0), " ").concat(SCALES.mb(0), " ").concat(SCALES.ml(0), ";}label.__jsx-style-dynamic-selector{margin-right:0.5em;color:").concat(theme$1.palette.accents_5, ";line-height:1;}label.__jsx-style-dynamic-selector *{margin:0;}.loading.__jsx-style-dynamic-selector{position:absolute;top:50%;left:50%;width:100%;height:100%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display: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;background-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}i.__jsx-style-dynamic-selector{width:0.25em;height:0.25em;border-radius:50%;background-color:").concat(bgColor, ";margin:0 calc(0.25em / 2 * ").concat(spaceRatio, ");display:inline-block;-webkit-animation:loading-blink-__jsx-style-dynamic-selector 1.4s infinite both;animation:loading-blink-__jsx-style-dynamic-selector 1.4s infinite both;}i.__jsx-style-dynamic-selector:nth-child(2){-webkit-animation-delay:0.2s;animation-delay:0.2s;}i.__jsx-style-dynamic-selector:nth-child(3){-webkit-animation-delay:0.4s;animation-delay:0.4s;}@-webkit-keyframes loading-blink-__jsx-style-dynamic-selector{0%{opacity:0.2;}20%{opacity:1;}100%{opacity:0.2;}}@keyframes loading-blink-__jsx-style-dynamic-selector{0%{opacity:0.2;}20%{opacity:1;}100%{opacity:0.2;}}")
1096
- })]
1097
- }));
1098
- };
1099
- LoadingComponent.displayName = 'Loading';
1100
- var Loading = withScale(LoadingComponent);
1101
-
1102
- var ButtonLoading = function ButtonLoading(_ref) {
1103
- var color = _ref.color;
1104
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
1105
- className: "jsx-212623367" + " " + "btn-loading",
1106
- children: [/*#__PURE__*/jsxRuntime.jsx(Loading, {
1107
- color: color
1108
- }), /*#__PURE__*/jsxRuntime.jsx(_JSXStyle, {
1109
- id: "212623367",
1110
- children: ".btn-loading.jsx-212623367{position:absolute;top:0;left:0;right:0;bottom:0;z-index:2;background-color:var(--helpdice-ui-button-bg);}"
1111
- })]
1112
- });
1113
- };
1114
- ButtonLoading.displayName = 'ButtonLoading';
1115
-
1116
- var _excluded$2 = ["isRight", "isSingle", "children", "className"];
1117
- var ButtonIcon = function ButtonIcon(_ref) {
1118
- var _ref$isRight = _ref.isRight,
1119
- isRight = _ref$isRight === void 0 ? false : _ref$isRight,
1120
- isSingle = _ref.isSingle,
1121
- children = _ref.children,
1122
- _ref$className = _ref.className,
1123
- className = _ref$className === void 0 ? '' : _ref$className,
1124
- props = _objectWithoutProperties(_ref, _excluded$2);
1125
- var classes = theme.useClasses('icon', {
1126
- right: isRight,
1127
- single: isSingle
1128
- }, className);
1129
- return /*#__PURE__*/jsxRuntime.jsxs("span", _objectSpread2(_objectSpread2({}, props), {}, {
1130
- className: "jsx-2467502931" + " " + (props && props.className != null && props.className || classes || ""),
1131
- children: [children, /*#__PURE__*/jsxRuntime.jsx(_JSXStyle, {
1132
- id: "2467502931",
1133
- children: ".icon.jsx-2467502931{position:absolute;left:var(--helpdice-ui-button-icon-padding);right:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display: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;color:var(--helpdice-ui-button-color);z-index:1;}.right.jsx-2467502931{right:var(--helpdice-ui-button-icon-padding);left:auto;}.icon.jsx-2467502931 svg{background:transparent;height:calc(var(--helpdice-ui-button-height) / 2.35);width:calc(var(--helpdice-ui-button-height) / 2.35);}.single.jsx-2467502931{position:static;-webkit-transform:none;-ms-transform:none;transform:none;}"
1134
- })]
1135
- }));
1136
- };
1137
- ButtonIcon.displayName = 'ButtonIcon';
1138
-
1139
- var getButtonChildrenWithIcon = function getButtonChildrenWithIcon(auto, children, icons) {
1140
- var icon = icons.icon,
1141
- iconRight = icons.iconRight;
1142
- var hasIcon = icon || iconRight;
1143
- var isRight = Boolean(iconRight);
1144
- var paddingForAutoMode = auto ? "calc(var(--helpdice-ui-button-height) / 2 + var(--helpdice-ui-button-icon-padding) * .5)" : 0;
1145
- var classes = theme.useClasses('text', isRight ? 'right' : 'left');
1146
- if (!hasIcon) return /*#__PURE__*/jsxRuntime.jsx("div", {
1147
- className: "text",
1148
- children: children
1149
- });
1150
- if (React.Children.count(children) === 0) {
1151
- return /*#__PURE__*/jsxRuntime.jsx(ButtonIcon, {
1152
- isRight: isRight,
1153
- isSingle: true,
1154
- children: hasIcon
1155
- });
1156
- }
1157
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1158
- children: [/*#__PURE__*/jsxRuntime.jsx(ButtonIcon, {
1159
- isRight: isRight,
1160
- children: hasIcon
1161
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1162
- className: _JSXStyle.dynamic([["3568181479", [paddingForAutoMode, paddingForAutoMode]]]) + " " + (classes || ""),
1163
- children: [children, /*#__PURE__*/jsxRuntime.jsx(_JSXStyle, {
1164
- id: "3568181479",
1165
- dynamic: [paddingForAutoMode, paddingForAutoMode],
1166
- children: ".left.__jsx-style-dynamic-selector{padding-left:".concat(paddingForAutoMode, ";}.right.__jsx-style-dynamic-selector{padding-right:").concat(paddingForAutoMode, ";}")
1167
- })]
1168
- })]
1169
- });
1170
- };
1171
- var filterPropsWithGroup = function filterPropsWithGroup(props, config) {
1172
- if (!config.isButtonGroup) return props;
1173
- return _objectSpread2(_objectSpread2({}, props), {}, {
1174
- auto: true,
1175
- shadow: false,
1176
- ghost: config.ghost || props.ghost,
1177
- type: config.type || props.type,
1178
- disabled: config.disabled || props.disabled
1179
- });
1180
- };
1181
-
1182
- /* "use client" */
1183
-
1184
- var defaultContext = {
1185
- isButtonGroup: false,
1186
- disabled: false
1187
- };
1188
- var ButtonGroupContext = /*#__PURE__*/React.createContext(defaultContext);
1189
- var useButtonGroupContext = function useButtonGroupContext() {
1190
- return React.useContext(ButtonGroupContext);
1191
- };
1192
-
1193
- var hexToRgb = function hexToRgb(color) {
1194
- var fullReg = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
1195
- var full = color.replace(fullReg, function (_, r, g, b) {
1196
- return "".concat(r).concat(r).concat(g).concat(g).concat(b).concat(b);
1197
- });
1198
- var values = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(full);
1199
- if (!values) {
1200
- throw new Error("Helpdice UI: Unsupported ".concat(color, " color."));
1201
- }
1202
- return [Number.parseInt(values[1], 16), Number.parseInt(values[2], 16), Number.parseInt(values[3], 16)];
1203
- };
1204
- var colorToRgbValues = function colorToRgbValues(color) {
1205
- if (color.charAt(0) === '#') return hexToRgb(color);
1206
- var safeColor = color.replace(/ /g, '');
1207
- var colorType = color.substr(0, 4);
1208
- var regArray = safeColor.match(/\((.+)\)/);
1209
- if (!colorType.startsWith('rgb') || !regArray) {
1210
- console.log(color);
1211
- throw new Error("Helpdice UI: Only support [\"RGB\", \"RGBA\", \"HEX\"] color.");
1212
- }
1213
- return regArray[1].split(',').map(function (str) {
1214
- return Number.parseFloat(str);
1215
- });
1216
- };
1217
- var addColorAlpha = function addColorAlpha(color, alpha) {
1218
- if (!/^#|rgb|RGB/.test(color)) return color;
1219
- var _colorToRgbValues = colorToRgbValues(color),
1220
- _colorToRgbValues2 = _slicedToArray(_colorToRgbValues, 3),
1221
- r = _colorToRgbValues2[0],
1222
- g = _colorToRgbValues2[1],
1223
- b = _colorToRgbValues2[2];
1224
- var safeAlpha = alpha > 1 ? 1 : alpha < 0 ? 0 : alpha;
1225
- return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(safeAlpha, ")");
1226
- };
1227
-
1228
- var getButtonGhostColors = function getButtonGhostColors(palette, _color) {
1229
- var colors = {
1230
- secondary: {
1231
- bg: palette.background,
1232
- border: palette.foreground,
1233
- color: palette.foreground,
1234
- ripple: ''
1235
- },
1236
- success: {
1237
- bg: palette.background,
1238
- border: palette.success,
1239
- color: palette.success,
1240
- ripple: ''
1241
- },
1242
- warning: {
1243
- bg: palette.background,
1244
- border: palette.warning,
1245
- color: palette.warning,
1246
- ripple: ''
1247
- },
1248
- error: {
1249
- bg: palette.background,
1250
- border: palette.error,
1251
- color: palette.error,
1252
- ripple: ''
1253
- }
1254
- };
1255
- return colors[_color] || null;
1256
- };
1257
- var getButtonColors = function getButtonColors(palette, props) {
1258
- var color = props.color,
1259
- disabled = props.disabled,
1260
- ghost = props.ghost;
1261
- var colors = {
1262
- "default": {
1263
- bg: palette.background,
1264
- border: palette.border,
1265
- color: palette.accents_5,
1266
- ripple: palette.accents_1
1267
- },
1268
- secondary: {
1269
- bg: palette.foreground,
1270
- border: palette.foreground,
1271
- color: palette.background,
1272
- ripple: palette.accents_1
1273
- },
1274
- success: {
1275
- bg: palette.success,
1276
- border: palette.success,
1277
- color: '#fff',
1278
- ripple: '#1f93ffff'
1279
- },
1280
- warning: {
1281
- bg: palette.warning,
1282
- border: palette.warning,
1283
- color: '#fff',
1284
- ripple: '#ffca29ff'
1285
- },
1286
- error: {
1287
- bg: palette.error,
1288
- border: palette.error,
1289
- color: '#fff',
1290
- ripple: '#ff5a55ff'
1291
- },
1292
- abort: {
1293
- bg: 'transparent',
1294
- border: 'transparent',
1295
- color: palette.accents_5,
1296
- ripple: palette.accents_1
1297
- }
1298
- };
1299
- if (disabled) return {
1300
- bg: palette.accents_1,
1301
- border: palette.accents_2,
1302
- color: '#ccc',
1303
- ripple: ''
1304
- };
1305
-
1306
- /**
1307
- * The '-light' type is the same color as the common type,
1308
- * only hover's color is different.
1309
- * e.g.
1310
- * Color['success'] === Color['success-light']
1311
- * Color['warning'] === Color['warning-light']
1312
- */
1313
- var withoutLightType = color === null || color === void 0 ? void 0 : color.replace('-light', '');
1314
- var defaultColor = colors["default"];
1315
- if (ghost) return getButtonGhostColors(palette, withoutLightType) || defaultColor;
1316
- return colors[withoutLightType] || defaultColor;
1317
- };
1318
- var getButtonGhostHoverColors = function getButtonGhostHoverColors(palette, _color) {
1319
- var colors = {
1320
- secondary: {
1321
- bg: palette.foreground,
1322
- border: palette.background,
1323
- color: palette.background
1324
- },
1325
- success: {
1326
- bg: palette.success,
1327
- border: palette.background,
1328
- color: 'white'
1329
- },
1330
- warning: {
1331
- bg: palette.warning,
1332
- border: palette.background,
1333
- color: 'white'
1334
- },
1335
- error: {
1336
- bg: palette.error,
1337
- border: palette.background,
1338
- color: 'white'
1339
- }
1340
- };
1341
- var withoutLightType = _color === null || _color === void 0 ? void 0 : _color.replace('-light', '');
1342
- return colors[withoutLightType] || null;
1343
- };
1344
- var getButtonHoverColors = function getButtonHoverColors(palette, props) {
1345
- var color = props.color,
1346
- disabled = props.disabled,
1347
- loading = props.loading,
1348
- shadow = props.shadow,
1349
- ghost = props.ghost;
1350
- var defaultColor = getButtonColors(palette, props);
1351
- var alphaBackground = addColorAlpha(defaultColor.bg, 0.85);
1352
- var colors = {
1353
- "default": {
1354
- bg: palette.background,
1355
- border: palette.foreground
1356
- },
1357
- secondary: {
1358
- bg: palette.background,
1359
- border: palette.foreground
1360
- },
1361
- success: {
1362
- bg: palette.background,
1363
- border: palette.success
1364
- },
1365
- warning: {
1366
- bg: palette.background,
1367
- border: palette.warning
1368
- },
1369
- error: {
1370
- bg: palette.background,
1371
- border: palette.error
1372
- },
1373
- abort: {
1374
- bg: 'transparent',
1375
- border: 'transparent',
1376
- color: palette.accents_5
1377
- },
1378
- 'secondary-light': _objectSpread2(_objectSpread2({}, defaultColor), {}, {
1379
- bg: alphaBackground
1380
- }),
1381
- 'success-light': _objectSpread2(_objectSpread2({}, defaultColor), {}, {
1382
- bg: alphaBackground
1383
- }),
1384
- 'warning-light': _objectSpread2(_objectSpread2({}, defaultColor), {}, {
1385
- bg: alphaBackground
1386
- }),
1387
- 'error-light': _objectSpread2(_objectSpread2({}, defaultColor), {}, {
1388
- bg: alphaBackground
1389
- })
1390
- };
1391
- if (disabled) return {
1392
- bg: palette.accents_1,
1393
- border: palette.accents_2,
1394
- color: '#ccc'
1395
- };
1396
- if (loading) return _objectSpread2(_objectSpread2({}, defaultColor), {}, {
1397
- color: 'transparent'
1398
- });
1399
- if (shadow) return defaultColor;
1400
- var hoverColor = (ghost ? getButtonGhostHoverColors(palette, color) : colors[color]) || colors["default"];
1401
- return _objectSpread2(_objectSpread2({}, hoverColor), {}, {
1402
- color: hoverColor.color || hoverColor.border
1403
- });
1404
- };
1405
- var getButtonCursor = function getButtonCursor(disabled, loading) {
1406
- if (disabled) return {
1407
- cursor: 'not-allowed',
1408
- events: 'auto'
1409
- };
1410
- if (loading) return {
1411
- cursor: 'default',
1412
- events: 'none'
1413
- };
1414
- return {
1415
- cursor: 'pointer',
1416
- events: 'auto'
1417
- };
1418
- };
1419
- var getButtonDripColor = function getButtonDripColor(palette, props) {
1420
- var type = props.type;
1421
- var isLightHover = type ? type.endsWith('light') : false;
1422
- var hoverColors = getButtonHoverColors(palette, props);
1423
- return isLightHover ? addColorAlpha(hoverColors.bg, 0.65) : addColorAlpha(palette.accents_2, 0.65);
1424
- };
1425
-
1426
- var _excluded$1 = ["children", "disabled", "color", "loading", "shadow", "ghost", "effect", "round", "relative", "replace", "a", "to", "onClick", "auto", "icon", "type", "iconRight", "className", "crossOrigin"];
1427
- var ButtonComponent = /*#__PURE__*/React.forwardRef(function (btnProps, ref) {
1428
- var theme$1 = theme.useTheme();
1429
- // const navigate = useNavigate();
1430
- var _useScale = useScale(),
1431
- SCALES = _useScale.SCALES;
1432
- var buttonRef = React.useRef(null);
1433
- React.useImperativeHandle(ref, function () {
1434
- return buttonRef.current;
1435
- }); // Changed with !
1436
-
1437
- var _useState = React.useState(false),
1438
- _useState2 = _slicedToArray(_useState, 2),
1439
- dripShow = _useState2[0],
1440
- setDripShow = _useState2[1];
1441
- var _useState3 = React.useState(0),
1442
- _useState4 = _slicedToArray(_useState3, 2),
1443
- dripX = _useState4[0],
1444
- setDripX = _useState4[1];
1445
- var _useState5 = React.useState(0),
1446
- _useState6 = _slicedToArray(_useState5, 2),
1447
- dripY = _useState6[0],
1448
- setDripY = _useState6[1];
1449
- var groupConfig = useButtonGroupContext();
1450
- var filteredProps = filterPropsWithGroup(btnProps, groupConfig);
1451
- /* eslint-disable @typescript-eslint/no-unused-vars */
1452
- var children = filteredProps.children,
1453
- _filteredProps$disabl = filteredProps.disabled,
1454
- disabled = _filteredProps$disabl === void 0 ? false : _filteredProps$disabl;
1455
- filteredProps.color;
1456
- var _filteredProps$loadin = filteredProps.loading,
1457
- loading = _filteredProps$loadin === void 0 ? false : _filteredProps$loadin,
1458
- _filteredProps$shadow = filteredProps.shadow,
1459
- shadow = _filteredProps$shadow === void 0 ? false : _filteredProps$shadow,
1460
- _filteredProps$ghost = filteredProps.ghost,
1461
- ghost = _filteredProps$ghost === void 0 ? false : _filteredProps$ghost,
1462
- _filteredProps$effect = filteredProps.effect,
1463
- effect = _filteredProps$effect === void 0 ? true : _filteredProps$effect,
1464
- _filteredProps$round = filteredProps.round,
1465
- round = _filteredProps$round === void 0 ? false : _filteredProps$round;
1466
- filteredProps.relative;
1467
- filteredProps.replace;
1468
- filteredProps.a;
1469
- var to = filteredProps.to,
1470
- onClick = filteredProps.onClick,
1471
- _filteredProps$auto = filteredProps.auto,
1472
- auto = _filteredProps$auto === void 0 ? false : _filteredProps$auto,
1473
- icon = filteredProps.icon,
1474
- _filteredProps$type = filteredProps.type,
1475
- type = _filteredProps$type === void 0 ? 'button' : _filteredProps$type,
1476
- iconRight = filteredProps.iconRight,
1477
- _filteredProps$classN = filteredProps.className,
1478
- className = _filteredProps$classN === void 0 ? '' : _filteredProps$classN;
1479
- filteredProps.crossOrigin;
1480
- var props = _objectWithoutProperties(filteredProps, _excluded$1);
1481
- /* eslint-enable @typescript-eslint/no-unused-vars */
1482
-
1483
- var _useMemo = React.useMemo(function () {
1484
- return getButtonColors(theme$1.palette, filteredProps);
1485
- }, [theme$1.palette, filteredProps]),
1486
- bg = _useMemo.bg,
1487
- border = _useMemo.border,
1488
- color = _useMemo.color,
1489
- rippleColor = _useMemo.ripple;
1490
- var hover = React.useMemo(function () {
1491
- return getButtonHoverColors(theme$1.palette, filteredProps);
1492
- }, [theme$1.palette, filteredProps]);
1493
- var _useMemo2 = React.useMemo(function () {
1494
- return getButtonCursor(disabled, loading);
1495
- }, [disabled, loading]),
1496
- cursor = _useMemo2.cursor,
1497
- events = _useMemo2.events;
1498
- var dripColor = React.useMemo(function () {
1499
- return getButtonDripColor(theme$1.palette, filteredProps);
1500
- }, [theme$1.palette, filteredProps]);
1501
-
1502
- /* istanbul ignore next */
1503
- var dripCompletedHandle = function dripCompletedHandle() {
1504
- setDripShow(false);
1505
- setDripX(0);
1506
- setDripY(0);
1507
- };
1508
- var createRipple = function createRipple(event) {
1509
- var button = buttonRef.current;
1510
- if (!button) return;
1511
- var rect = button.getBoundingClientRect();
1512
- var size = Math.max(rect.width, rect.height);
1513
- var x = event.clientX - rect.left - size / 2;
1514
- var y = event.clientY - rect.top - size / 2;
1515
- var rippleCount = 1; // number of rings
1516
- var rippleDelay = 500; // ms between each ripple
1517
- var _loop = function _loop() {
1518
- var ripple = document.createElement('span');
1519
- Object.assign(ripple.style, {
1520
- position: 'absolute',
1521
- borderRadius: '50%',
1522
- backgroundColor: rippleColor,
1523
- width: "".concat(size, "px"),
1524
- height: "".concat(size, "px"),
1525
- left: "".concat(x, "px"),
1526
- top: "".concat(y, "px"),
1527
- pointerEvents: 'none',
1528
- transform: 'scale(0)',
1529
- opacity: '1',
1530
- transition: "transform 600ms ease-out ".concat(i * rippleDelay, "ms, opacity 600ms ease-out ").concat(i * rippleDelay, "ms"),
1531
- zIndex: 1
1532
- });
1533
- button.appendChild(ripple);
1534
-
1535
- // Force reflow to start transition
1536
- window.getComputedStyle(ripple).opacity;
1537
- ripple.style.transform = 'scale(2.5)';
1538
- ripple.style.opacity = '0';
1539
- ripple.addEventListener('transitionend', function () {
1540
- ripple.remove();
1541
- });
1542
- };
1543
- for (var i = 0; i < rippleCount; i++) {
1544
- _loop();
1545
- }
1546
- };
1547
- var clickHandler = function clickHandler(event) {
1548
- if (disabled || loading) return;
1549
- var showDrip = !shadow && !ghost && effect;
1550
- /* istanbul ignore next */
1551
- if (showDrip && buttonRef.current) {
1552
- var rect = buttonRef.current.getBoundingClientRect();
1553
- setDripShow(true);
1554
- setDripX(event.clientX - rect.left);
1555
- setDripY(event.clientY - rect.top);
1556
- }
1557
- if (shadow) {
1558
- createRipple(event);
1559
- }
1560
- onClick && onClick(event);
1561
- };
1562
- var childrenWithIcon = React.useMemo(function () {
1563
- return getButtonChildrenWithIcon(auto, children, {
1564
- icon: icon,
1565
- iconRight: iconRight
1566
- });
1567
- }, [auto, children, icon, iconRight]);
1568
- var paddingLeft = auto ? SCALES.pl(1.15) : SCALES.pl(1.375),
1569
- paddingRight = auto ? SCALES.pr(1.15) : SCALES.pr(1.375);
1570
-
1571
- // If shadow provided is string then value other default
1572
- var btnShadow = typeof shadow === 'string' ? shadow : shadow ? theme$1.shadows.level.z2 : 'none';
1573
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1574
- children: [to ? /*#__PURE__*/jsxRuntime.jsxs("a", _objectSpread2(_objectSpread2({
1575
- href: to
1576
- }, props), {}, {
1577
- className: _JSXStyle.dynamic([["612376042", [SCALES.height(2.5), round ? '50%' : theme$1.layout.radius, SCALES.font(0.875), color, bg, shadow ? 'transparent' : border, cursor !== null && cursor !== void 0 ? cursor : 'pointer', 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', 'btn-link', className) || ""),
1578
- children: [loading && /*#__PURE__*/jsxRuntime.jsx(ButtonLoading, {
1579
- color: color
1580
- }), childrenWithIcon]
1581
- })) : /*#__PURE__*/jsxRuntime.jsxs("button", _objectSpread2(_objectSpread2({
1582
- ref: buttonRef,
1583
- type: type,
1584
- disabled: disabled,
1585
- onClick: clickHandler
1586
- }, props), {}, {
1587
- className: _JSXStyle.dynamic([["612376042", [SCALES.height(2.5), round ? '50%' : theme$1.layout.radius, SCALES.font(0.875), color, bg, shadow ? 'transparent' : border, cursor !== null && cursor !== void 0 ? cursor : 'pointer', 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) || ""),
1588
- children: [loading && /*#__PURE__*/jsxRuntime.jsx(ButtonLoading, {
1589
- color: color
1590
- }), childrenWithIcon, dripShow && /*#__PURE__*/jsxRuntime.jsx(ButtonDrip, {
1591
- x: dripX,
1592
- y: dripY,
1593
- color: dripColor,
1594
- onCompleted: dripCompletedHandle
1595
- })]
1596
- })), /*#__PURE__*/jsxRuntime.jsx(_JSXStyle, {
1597
- id: "612376042",
1598
- dynamic: [SCALES.height(2.5), round ? '50%' : theme$1.layout.radius, SCALES.font(0.875), color, bg, shadow ? 'transparent' : border, cursor !== null && cursor !== void 0 ? cursor : 'pointer', 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'],
1599
- children: ".btn.__jsx-style-dynamic-selector{box-sizing:border-box;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;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 !== null && cursor !== void 0 ? cursor : 'pointer', ";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-link.__jsx-style-dynamic-selector{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.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;}}")
1600
- })]
1601
- });
1602
- });
1603
- ButtonComponent.displayName = 'Button';
1604
- var Button = withScale(ButtonComponent);
1605
-
1606
- var CompactButton = function CompactButton(props) {
1607
- // const theme = useTheme();
1608
- return /*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread2(_objectSpread2({
1609
- scale: 2 / 3,
1610
- px: 0.6
1611
- }, _objectSpread2({
1612
- auto: true
1613
- }, props)), {}, {
1614
- children: props.children
1615
- }));
1616
- };
1617
- var IconButton = /*#__PURE__*/React.memo(CompactButton);
1618
-
1619
- var SmallButton = function SmallButton(props) {
1620
- // const theme = useTheme();
1621
- return /*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread2(_objectSpread2({
1622
- auto: true,
1623
- scale: 2 / 3,
1624
- px: 0.6
1625
- }, props), {}, {
1626
- children: props.children
1627
- }));
1628
- };
1629
- var SmallButton$1 = /*#__PURE__*/React.memo(SmallButton);
1630
-
1631
- /* "use client" */
1632
-
1633
- Button.Icon = IconButton;
1634
- Button.Small = SmallButton$1;
1635
-
1636
956
  var _excluded = ["gap", "children", "direction", "justify", "alignItems", "alignContent", "collapse", "className"];
1637
957
  var wrap = tuple('nowrap', 'wrap', 'wrap-reverse');
1638
958
  var Container = function Container(_ref) {
@@ -1648,10 +968,6 @@ var Container = function Container(_ref) {
1648
968
  _ref$className = _ref.className,
1649
969
  className = _ref$className === void 0 ? '' : _ref$className,
1650
970
  props = _objectWithoutProperties(_ref, _excluded);
1651
- var _useState = React.useState(false),
1652
- _useState2 = _slicedToArray(_useState, 2),
1653
- expand = _useState2[0],
1654
- setExpand = _useState2[1];
1655
971
  var _useScale = useScale(),
1656
972
  unit = _useScale.unit,
1657
973
  SCALES = _useScale.SCALES;
@@ -1672,34 +988,9 @@ var Container = function Container(_ref) {
1672
988
  return /*#__PURE__*/jsxRuntime.jsxs(GridBasicItem, _objectSpread2(_objectSpread2({
1673
989
  className: classes
1674
990
  }, props), {}, {
1675
- children: [collapse > 50 ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1676
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
1677
- style: {
1678
- maxHeight: expand ? '100%' : "".concat(collapse, "px"),
1679
- overflow: 'hidden',
1680
- display: 'inline',
1681
- transition: "max-height 0.3s ease"
1682
- },
1683
- children: children
1684
- }), /*#__PURE__*/jsxRuntime.jsx(Button, {
1685
- margin: 0,
1686
- onClick: function onClick() {
1687
- return setExpand(!expand);
1688
- },
1689
- style: {
1690
- textTransform: 'lowercase',
1691
- height: '25px'
1692
- },
1693
- effect: false,
1694
- color: "abort",
1695
- scale: 2 / 3,
1696
- px: 0.2,
1697
- py: 0,
1698
- auto: true,
1699
- children: /*#__PURE__*/jsxRuntime.jsx("b", {
1700
- children: expand ? 'less' : 'more'
1701
- })
1702
- })]
991
+ children: [collapse > 10 ? /*#__PURE__*/jsxRuntime.jsx(Expandable, {
992
+ collapsedHeight: collapse,
993
+ children: children
1703
994
  }) : children, styles]
1704
995
  }));
1705
996
  };
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ var jsxRuntime = require('react/jsx-runtime');
6
6
  var icons = require('@helpdice/icons');
7
7
  var framerMotion = require('framer-motion');
8
8
  var reactDom = require('react-dom');
9
+ var Expandable$1 = require('components/expandable');
9
10
  var reactDom$1 = require('@floating-ui/react-dom');
10
11
  var pro = require('@helpdice/pro');
11
12
  var reactSyntaxHighlighter = require('react-syntax-highlighter');
@@ -13403,10 +13404,6 @@ var Container = function Container(_ref) {
13403
13404
  _ref$className = _ref.className,
13404
13405
  className = _ref$className === void 0 ? '' : _ref$className,
13405
13406
  props = _objectWithoutProperties(_ref, _excluded$B);
13406
- var _useState = React.useState(false),
13407
- _useState2 = _slicedToArray(_useState, 2),
13408
- expand = _useState2[0],
13409
- setExpand = _useState2[1];
13410
13407
  var _useScale = useScale(),
13411
13408
  unit = _useScale.unit,
13412
13409
  SCALES = _useScale.SCALES;
@@ -13427,34 +13424,9 @@ var Container = function Container(_ref) {
13427
13424
  return /*#__PURE__*/jsxRuntime.jsxs(GridBasicItem, _objectSpread2(_objectSpread2({
13428
13425
  className: classes
13429
13426
  }, props), {}, {
13430
- children: [collapse > 50 ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
13431
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
13432
- style: {
13433
- maxHeight: expand ? '100%' : "".concat(collapse, "px"),
13434
- overflow: 'hidden',
13435
- display: 'inline',
13436
- transition: "max-height 0.3s ease"
13437
- },
13438
- children: children
13439
- }), /*#__PURE__*/jsxRuntime.jsx(Button, {
13440
- margin: 0,
13441
- onClick: function onClick() {
13442
- return setExpand(!expand);
13443
- },
13444
- style: {
13445
- textTransform: 'lowercase',
13446
- height: '25px'
13447
- },
13448
- effect: false,
13449
- color: "abort",
13450
- scale: 2 / 3,
13451
- px: 0.2,
13452
- py: 0,
13453
- auto: true,
13454
- children: /*#__PURE__*/jsxRuntime.jsx("b", {
13455
- children: expand ? 'less' : 'more'
13456
- })
13457
- })]
13427
+ children: [collapse > 10 ? /*#__PURE__*/jsxRuntime.jsx(Expandable$1, {
13428
+ collapsedHeight: collapse,
13429
+ children: children
13458
13430
  }) : children, styles]
13459
13431
  }));
13460
13432
  };
@@ -1,14 +1,13 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
3
  var _excluded = ["gap", "children", "direction", "justify", "alignItems", "alignContent", "collapse", "className"];
5
4
  import _JSXStyle from "../styled-jsx.es.js";
6
- import React, { useMemo, useState } from "react";
5
+ import React, { useMemo } from "react";
7
6
  import GridBasicItem from "../grid/basic-item";
8
7
  import useScale, { withScale } from '../use-scale';
9
8
  import { useClasses } from '@helpdice/theme';
10
9
  import { tuple } from '../utils/prop-types';
11
- import Button from "../button";
10
+ import Expandable from "components/expandable";
12
11
  var wrap = tuple('nowrap', 'wrap', 'wrap-reverse');
13
12
  var Container = function Container(_ref) {
14
13
  var _ref$gap = _ref.gap,
@@ -23,10 +22,6 @@ var Container = function Container(_ref) {
23
22
  _ref$className = _ref.className,
24
23
  className = _ref$className === void 0 ? '' : _ref$className,
25
24
  props = _objectWithoutProperties(_ref, _excluded);
26
- var _useState = useState(false),
27
- _useState2 = _slicedToArray(_useState, 2),
28
- expand = _useState2[0],
29
- setExpand = _useState2[1];
30
25
  var _useScale = useScale(),
31
26
  unit = _useScale.unit,
32
27
  SCALES = _useScale.SCALES;
@@ -45,29 +40,9 @@ var Container = function Container(_ref) {
45
40
  var classes = useClasses(resolveClassName, className);
46
41
  return /*#__PURE__*/React.createElement(GridBasicItem, _extends({
47
42
  className: classes
48
- }, props), collapse > 50 ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
49
- style: {
50
- maxHeight: expand ? '100%' : "".concat(collapse, "px"),
51
- overflow: 'hidden',
52
- display: 'inline',
53
- transition: "max-height 0.3s ease"
54
- }
55
- }, children), /*#__PURE__*/React.createElement(Button, {
56
- margin: 0,
57
- onClick: function onClick() {
58
- return setExpand(!expand);
59
- },
60
- style: {
61
- textTransform: 'lowercase',
62
- height: '25px'
63
- },
64
- effect: false,
65
- color: "abort",
66
- scale: 2 / 3,
67
- px: 0.2,
68
- py: 0,
69
- auto: true
70
- }, /*#__PURE__*/React.createElement("b", null, expand ? 'less' : 'more'))) : children, styles);
43
+ }, props), collapse > 10 ? /*#__PURE__*/React.createElement(Expandable, {
44
+ collapsedHeight: collapse
45
+ }, children) : children, styles);
71
46
  };
72
47
  Container.displayName = 'Container';
73
48
  export default withScale(Container);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helpdice/ui",
3
- "version": "2.6.0-beta.6",
3
+ "version": "2.6.0-beta.7",
4
4
  "main": "dist/index.js",
5
5
  "types": "esm/index.d.ts",
6
6
  "unpkg": "dist/index.min.js",