@charcoal-ui/react 2.0.0-alpha.21 → 2.0.0-alpha.22

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.
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export default function LoadingSpinner({ size, padding, transparent, }: {
3
+ size?: number | undefined;
4
+ padding?: number | undefined;
5
+ transparent?: boolean | undefined;
6
+ }): JSX.Element;
7
+ interface Props {
8
+ once?: boolean;
9
+ }
10
+ export interface LoadingSpinnerIconHandler {
11
+ restart(): void;
12
+ }
13
+ export declare const LoadingSpinnerIcon: React.ForwardRefExoticComponent<Props & React.RefAttributes<LoadingSpinnerIconHandler>>;
14
+ export {};
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/LoadingSpinner/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAG1D,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,IAAS,EACT,OAAY,EACZ,WAAmB,GACpB;;;;CAAA,eAMA;AA6CD,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,eAAO,MAAM,kBAAkB,yFAmB7B,CAAA"}
@@ -0,0 +1,10 @@
1
+ import LoadingSpinner from '.';
2
+ declare const _default: {
3
+ title: string;
4
+ component: typeof LoadingSpinner;
5
+ decorators: ((...args: any) => any)[];
6
+ };
7
+ export default _default;
8
+ export declare function Basic(): JSX.Element;
9
+ export declare function Icon(): JSX.Element;
10
+ //# sourceMappingURL=index.story.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/components/LoadingSpinner/index.story.tsx"],"names":[],"mappings":"AAQA,OAAO,cAGN,MAAM,GAAG,CAAA;;;;;;AAEV,wBAIC;AAED,wBAAgB,KAAK,gBAQpB;AAED,wBAAgB,IAAI,gBAEnB"}
package/dist/index.cjs CHANGED
@@ -9,6 +9,7 @@ var reactStately = require('react-stately');
9
9
  var textfield = require('@react-aria/textfield');
10
10
  var visuallyHidden = require('@react-aria/visually-hidden');
11
11
  require('@charcoal-ui/icons');
12
+ var polished = require('polished');
12
13
 
13
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
15
 
@@ -131,7 +132,7 @@ function unreachable(value) {
131
132
 
132
133
  var theme$2 = styled.createTheme(styled__default["default"]);
133
134
 
134
- var _templateObject$7, _templateObject2$5, _templateObject3$5;
135
+ var _templateObject$8, _templateObject2$6, _templateObject3$6;
135
136
 
136
137
  var _excluded$6 = ["onClick", "disabled"];
137
138
  var Clickable = React__default["default"].forwardRef(function Clickable(props, ref) {
@@ -156,11 +157,11 @@ var Clickable = React__default["default"].forwardRef(function Clickable(props, r
156
157
  }));
157
158
  }
158
159
  });
159
- var clickableCss = styled$1.css(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteralLoose(["\n /* Clickable style */\n cursor: pointer;\n\n ", " {\n cursor: default;\n }\n"])), utils.disabledSelector);
160
- var Button$1 = styled__default["default"].button(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteralLoose(["\n /* Reset button appearance */\n appearance: none;\n background: transparent;\n padding: 0;\n border-style: none;\n outline: none;\n color: inherit;\n text-rendering: inherit;\n letter-spacing: inherit;\n word-spacing: inherit;\n\n &:focus {\n outline: none;\n }\n\n /* Change the font styles in all browsers. */\n font: inherit;\n\n /* Remove the margin in Firefox and Safari. */\n margin: 0;\n\n /* Show the overflow in Edge. */\n overflow: visible;\n\n /* Remove the inheritance of text transform in Firefox. */\n text-transform: none;\n\n /* Remove the inner border and padding in Firefox. */\n &::-moz-focus-inner {\n border-style: none;\n padding: 0;\n }\n\n ", "\n"])), clickableCss);
161
- var A = styled__default["default"].span(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteralLoose(["\n /* Reset a-tag appearance */\n color: inherit;\n\n &:focus {\n outline: none;\n }\n\n .text {\n top: calc(1em + 2em);\n }\n\n ", "\n"])), clickableCss);
160
+ var clickableCss = styled$1.css(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteralLoose(["\n /* Clickable style */\n cursor: pointer;\n\n ", " {\n cursor: default;\n }\n"])), utils.disabledSelector);
161
+ var Button$1 = styled__default["default"].button(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteralLoose(["\n /* Reset button appearance */\n appearance: none;\n background: transparent;\n padding: 0;\n border-style: none;\n outline: none;\n color: inherit;\n text-rendering: inherit;\n letter-spacing: inherit;\n word-spacing: inherit;\n\n &:focus {\n outline: none;\n }\n\n /* Change the font styles in all browsers. */\n font: inherit;\n\n /* Remove the margin in Firefox and Safari. */\n margin: 0;\n\n /* Show the overflow in Edge. */\n overflow: visible;\n\n /* Remove the inheritance of text transform in Firefox. */\n text-transform: none;\n\n /* Remove the inner border and padding in Firefox. */\n &::-moz-focus-inner {\n border-style: none;\n padding: 0;\n }\n\n ", "\n"])), clickableCss);
162
+ var A = styled__default["default"].span(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteralLoose(["\n /* Reset a-tag appearance */\n color: inherit;\n\n &:focus {\n outline: none;\n }\n\n .text {\n top: calc(1em + 2em);\n }\n\n ", "\n"])), clickableCss);
162
163
 
163
- var _templateObject$6;
164
+ var _templateObject$7;
164
165
 
165
166
  var _excluded$5 = ["children", "variant", "size", "fixed", "disabled"];
166
167
  var Button = React__default["default"].forwardRef(function Button(_ref, ref) {
@@ -188,7 +189,7 @@ var StyledButton = styled__default["default"](Clickable).withConfig({
188
189
  // fixed は <button> 要素に渡ってはいけない
189
190
  return prop !== 'fixed';
190
191
  }
191
- }).attrs(styledProps$1)(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteralLoose(["\n width: ", ";\n display: inline-grid;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n\n ", "\n\n /* \u3088\u304F\u8003\u3048\u305F\u3089height=32\u3063\u3066\u5B9A\u7FA9\u304C\u5B58\u5728\u3057\u306A\u3044\u306A... */\n height: ", "px;\n"])), function (p) {
192
+ }).attrs(styledProps$1)(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteralLoose(["\n width: ", ";\n display: inline-grid;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n\n ", "\n\n /* \u3088\u304F\u8003\u3048\u305F\u3089height=32\u3063\u3066\u5B9A\u7FA9\u304C\u5B58\u5728\u3057\u306A\u3044\u306A... */\n height: ", "px;\n"])), function (p) {
192
193
  return p.fixed ? 'stretch' : 'min-content';
193
194
  }, function (p) {
194
195
  return theme$2(function (o) {
@@ -255,7 +256,7 @@ function sizeToProps$1(size) {
255
256
  }
256
257
  }
257
258
 
258
- var _templateObject$5;
259
+ var _templateObject$6;
259
260
 
260
261
  var _excluded$4 = ["variant", "size", "icon"];
261
262
  var IconButton = React__default["default"].forwardRef(function IconButtonInner(_ref, ref) {
@@ -275,7 +276,7 @@ var IconButton = React__default["default"].forwardRef(function IconButtonInner(_
275
276
  name: icon
276
277
  }));
277
278
  });
278
- var StyledIconButton = styled__default["default"](Clickable).attrs(styledProps)(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteralLoose(["\n user-select: none;\n\n width: ", "px;\n height: ", "px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ", "\n"])), function (p) {
279
+ var StyledIconButton = styled__default["default"](Clickable).attrs(styledProps)(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteralLoose(["\n user-select: none;\n\n width: ", "px;\n height: ", "px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ", "\n"])), function (p) {
279
280
  return p.width;
280
281
  }, function (p) {
281
282
  return p.height;
@@ -362,7 +363,7 @@ function validateIconSize(size, icon) {
362
363
  }
363
364
  }
364
365
 
365
- var _templateObject$4, _templateObject2$4, _templateObject3$4, _templateObject4$3;
366
+ var _templateObject$5, _templateObject2$5, _templateObject3$5, _templateObject4$3;
366
367
  function Radio(_ref) {
367
368
  var value = _ref.value,
368
369
  _ref$forceChecked = _ref.forceChecked,
@@ -398,7 +399,7 @@ function Radio(_ref) {
398
399
  disabled: isDisabled || isReadonly
399
400
  }), children != null && /*#__PURE__*/React__default["default"].createElement(RadioLabel, null, children));
400
401
  }
401
- var RadioRoot = styled__default["default"].label(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteralLoose(["\n display: grid;\n grid-template-columns: auto 1fr;\n grid-gap: ", ";\n align-items: center;\n cursor: pointer;\n\n ", "\n"])), function (_ref2) {
402
+ var RadioRoot = styled__default["default"].label(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteralLoose(["\n display: grid;\n grid-template-columns: auto 1fr;\n grid-gap: ", ";\n align-items: center;\n cursor: pointer;\n\n ", "\n"])), function (_ref2) {
402
403
  var theme = _ref2.theme;
403
404
  return utils.px(theme.spacing[4]);
404
405
  }, theme$2(function (o) {
@@ -406,7 +407,7 @@ var RadioRoot = styled__default["default"].label(_templateObject$4 || (_template
406
407
  }));
407
408
  var RadioInput = styled__default["default"].input.attrs({
408
409
  type: 'radio'
409
- })(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteralLoose(["\n /** Make prior to browser default style */\n &[type='radio'] {\n appearance: none;\n display: block;\n box-sizing: border-box;\n\n padding: 6px;\n\n width: 20px;\n height: 20px;\n\n ", ";\n\n &:not(:checked) {\n border-width: 2px;\n border-style: solid;\n border-color: ", ";\n }\n\n &:checked {\n ", "\n\n &::after {\n content: '';\n display: block;\n width: 8px;\n height: 8px;\n pointer-events: none;\n\n ", "\n }\n }\n\n ", "\n }\n"])), function (_ref3) {
410
+ })(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteralLoose(["\n /** Make prior to browser default style */\n &[type='radio'] {\n appearance: none;\n display: block;\n box-sizing: border-box;\n\n padding: 6px;\n\n width: 20px;\n height: 20px;\n\n ", ";\n\n &:not(:checked) {\n border-width: 2px;\n border-style: solid;\n border-color: ", ";\n }\n\n &:checked {\n ", "\n\n &::after {\n content: '';\n display: block;\n width: 8px;\n height: 8px;\n pointer-events: none;\n\n ", "\n }\n }\n\n ", "\n }\n"])), function (_ref3) {
410
411
  var _ref3$hasError = _ref3.hasError,
411
412
  hasError = _ref3$hasError === void 0 ? false : _ref3$hasError;
412
413
  return theme$2(function (o) {
@@ -422,7 +423,7 @@ var RadioInput = styled__default["default"].input.attrs({
422
423
  }), theme$2(function (o) {
423
424
  return o.outline["default"].focus;
424
425
  }));
425
- var RadioLabel = styled__default["default"].div(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$2(function (o) {
426
+ var RadioLabel = styled__default["default"].div(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$2(function (o) {
426
427
  return [o.typography(14)];
427
428
  })); // TODO: use (or polyfill) flex gap
428
429
 
@@ -482,7 +483,7 @@ var SelectGroupContext = React.createContext({
482
483
  }
483
484
  });
484
485
 
485
- var _templateObject$3, _templateObject2$3, _templateObject3$3, _templateObject4$2, _templateObject5$1;
486
+ var _templateObject$4, _templateObject2$4, _templateObject3$4, _templateObject4$2, _templateObject5$1;
486
487
  function Select(_ref) {
487
488
  var value = _ref.value,
488
489
  _ref$forceChecked = _ref.forceChecked,
@@ -540,18 +541,18 @@ function Select(_ref) {
540
541
  "unsafe-non-guideline-scale": 16 / 24
541
542
  })), Boolean(children) && /*#__PURE__*/React__default["default"].createElement(SelectLabel, null, children));
542
543
  }
543
- var SelectRoot = styled__default["default"].label(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteralLoose(["\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n position: relative;\n cursor: pointer;\n ", " {\n cursor: default;\n }\n gap: ", ";\n ", "\n"])), utils.disabledSelector, function (_ref2) {
544
+ var SelectRoot = styled__default["default"].label(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteralLoose(["\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n position: relative;\n cursor: pointer;\n ", " {\n cursor: default;\n }\n gap: ", ";\n ", "\n"])), utils.disabledSelector, function (_ref2) {
544
545
  var theme = _ref2.theme;
545
546
  return utils.px(theme.spacing[4]);
546
547
  }, theme$2(function (o) {
547
548
  return o.disabled;
548
549
  }));
549
- var SelectLabel = styled__default["default"].div(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n ", "\n"])), theme$2(function (o) {
550
+ var SelectLabel = styled__default["default"].div(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n ", "\n"])), theme$2(function (o) {
550
551
  return [o.typography(14), o.font.text1];
551
552
  }));
552
553
  var SelectInput = styled__default["default"].input.attrs({
553
554
  type: 'checkbox'
554
- })(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteralLoose(["\n &[type='checkbox'] {\n appearance: none;\n display: block;\n width: 20px;\n height: 20px;\n margin: 0;\n\n &:checked {\n ", "\n }\n\n ", ";\n }\n"])), theme$2(function (o) {
555
+ })(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteralLoose(["\n &[type='checkbox'] {\n appearance: none;\n display: block;\n width: 20px;\n height: 20px;\n margin: 0;\n\n &:checked {\n ", "\n }\n\n ", ";\n }\n"])), theme$2(function (o) {
555
556
  return o.bg.brand.hover.press;
556
557
  }), function (_ref3) {
557
558
  var hasError = _ref3.hasError,
@@ -615,7 +616,7 @@ function SelectGroup(_ref7) {
615
616
  }, children));
616
617
  }
617
618
 
618
- var _templateObject$2, _templateObject2$2, _templateObject3$2;
619
+ var _templateObject$3, _templateObject2$3, _templateObject3$3;
619
620
 
620
621
  var _excluded$3 = ["className", "type"];
621
622
  function SwitchCheckbox(props) {
@@ -646,18 +647,18 @@ function SwitchCheckbox(props) {
646
647
  // eslint-disable-next-line react/destructuring-assignment
647
648
  React__default["default"].createElement(LabelInner, null, props.children) : undefined);
648
649
  }
649
- var Label$1 = styled__default["default"].label(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteralLoose(["\n display: inline-grid;\n grid-template-columns: auto 1fr;\n gap: ", ";\n cursor: pointer;\n outline: 0;\n\n ", "\n\n ", " {\n cursor: default;\n }\n"])), function (_ref) {
650
+ var Label$1 = styled__default["default"].label(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteralLoose(["\n display: inline-grid;\n grid-template-columns: auto 1fr;\n gap: ", ";\n cursor: pointer;\n outline: 0;\n\n ", "\n\n ", " {\n cursor: default;\n }\n"])), function (_ref) {
650
651
  var theme = _ref.theme;
651
652
  return utils.px(theme.spacing[4]);
652
653
  }, theme$2(function (o) {
653
654
  return o.disabled;
654
655
  }), utils.disabledSelector);
655
- var LabelInner = styled__default["default"].div(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$2(function (o) {
656
+ var LabelInner = styled__default["default"].div(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$2(function (o) {
656
657
  return o.typography(14);
657
658
  }));
658
659
  var SwitchInput = styled__default["default"].input.attrs({
659
660
  type: 'checkbox'
660
- })(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteralLoose(["\n &[type='checkbox'] {\n appearance: none;\n display: inline-flex;\n position: relative;\n box-sizing: border-box;\n width: 28px;\n border: 2px solid transparent;\n transition: box-shadow 0.2s, background-color 0.2s;\n cursor: inherit;\n ", "\n\n &::after {\n content: '';\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n width: 12px;\n height: 12px;\n transform: translateX(0);\n transition: transform 0.2s;\n ", "\n }\n\n &:checked {\n ", "\n\n &::after {\n transform: translateX(12px);\n }\n }\n }\n"])), theme$2(function (o) {
661
+ })(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteralLoose(["\n &[type='checkbox'] {\n appearance: none;\n display: inline-flex;\n position: relative;\n box-sizing: border-box;\n width: 28px;\n border: 2px solid transparent;\n transition: box-shadow 0.2s, background-color 0.2s;\n cursor: inherit;\n ", "\n\n &::after {\n content: '';\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n width: 12px;\n height: 12px;\n transform: translateX(0);\n transition: transform 0.2s;\n ", "\n }\n\n &:checked {\n ", "\n\n &::after {\n transform: translateX(12px);\n }\n }\n }\n"])), theme$2(function (o) {
661
662
  return [o.borderRadius(16), o.height.px(16), o.bg.text4.hover.press, o.outline["default"].focus];
662
663
  }), theme$2(function (o) {
663
664
  return [o.bg.text5.hover.press, o.borderRadius('oval')];
@@ -665,7 +666,7 @@ var SwitchInput = styled__default["default"].input.attrs({
665
666
  return o.bg.brand.hover.press;
666
667
  }));
667
668
 
668
- var _templateObject$1, _templateObject2$1, _templateObject3$1, _templateObject4$1;
669
+ var _templateObject$2, _templateObject2$2, _templateObject3$2, _templateObject4$1;
669
670
 
670
671
  var _excluded$2 = ["style", "className", "label", "required", "requiredText", "subLabel"];
671
672
  var FieldLabel = React__default["default"].forwardRef(function FieldLabel(_ref, ref) {
@@ -686,13 +687,13 @@ var FieldLabel = React__default["default"].forwardRef(function FieldLabel(_ref,
686
687
  }, labelProps), label), required && /*#__PURE__*/React__default["default"].createElement(RequiredText, null, requiredText), /*#__PURE__*/React__default["default"].createElement(SubLabelClickable, null, /*#__PURE__*/React__default["default"].createElement("span", null, subLabel)));
687
688
  });
688
689
  var theme$1 = styled.createTheme(styled__default["default"]);
689
- var Label = styled__default["default"].label(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$1(function (o) {
690
+ var Label = styled__default["default"].label(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$1(function (o) {
690
691
  return [o.typography(14).bold, o.font.text1];
691
692
  }));
692
- var RequiredText = styled__default["default"].span(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$1(function (o) {
693
+ var RequiredText = styled__default["default"].span(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$1(function (o) {
693
694
  return [o.typography(14), o.font.text3];
694
695
  }));
695
- var SubLabelClickable = styled__default["default"].div(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$1(function (o) {
696
+ var SubLabelClickable = styled__default["default"].div(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$1(function (o) {
696
697
  return [o.typography(14), o.font.text3.hover.press, o.outline["default"].focus];
697
698
  }));
698
699
  var FieldLabelWrapper = styled__default["default"].div(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n\n > ", " {\n ", "\n }\n\n > ", " {\n ", "\n }\n"])), RequiredText, theme$1(function (o) {
@@ -701,7 +702,7 @@ var FieldLabelWrapper = styled__default["default"].div(_templateObject4$1 || (_t
701
702
  return o.margin.left('auto');
702
703
  }));
703
704
 
704
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
705
+ var _templateObject$1, _templateObject2$1, _templateObject3$1, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
705
706
 
706
707
  var _excluded$1 = ["onChange"],
707
708
  _excluded2 = ["onChange"];
@@ -899,11 +900,8 @@ var MultiLineTextField = React__default["default"].forwardRef(function MultiLine
899
900
  var syncHeight = React.useCallback(function (textarea) {
900
901
  var _$match$length, _$match;
901
902
 
902
- var rows = (_$match$length = (_$match = (textarea.value + "\n").match(/\n/g)) == null ? void 0 : _$match.length) != null ? _$match$length : 1;
903
-
904
- if (initialRows <= rows) {
905
- setRows(rows);
906
- }
903
+ var rows = ((_$match$length = (_$match = (textarea.value + "\n").match(/\n/g)) == null ? void 0 : _$match.length) != null ? _$match$length : 0) || 1;
904
+ setRows(initialRows <= rows ? rows : initialRows);
907
905
  }, [initialRows]);
908
906
  var nonControlled = props.value === undefined;
909
907
  var handleChange = React.useCallback(function (value) {
@@ -967,15 +965,15 @@ var MultiLineTextField = React__default["default"].forwardRef(function MultiLine
967
965
  invalid: invalid
968
966
  }, invalid ? errorMessageProps : descriptionProps), assistiveText));
969
967
  });
970
- var TextFieldRoot = styled__default["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n\n ", "\n"])), function (p) {
968
+ var TextFieldRoot = styled__default["default"].div(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n\n ", "\n"])), function (p) {
971
969
  return p.isDisabled && {
972
970
  opacity: p.theme.elementEffect.disabled.opacity
973
971
  };
974
972
  });
975
- var TextFieldLabel = styled__default["default"](FieldLabel)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme(function (o) {
973
+ var TextFieldLabel = styled__default["default"](FieldLabel)(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme(function (o) {
976
974
  return o.margin.bottom(8);
977
975
  }));
978
- var StyledInputContainer = styled__default["default"].div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n height: 40px;\n display: grid;\n position: relative;\n"])));
976
+ var StyledInputContainer = styled__default["default"].div(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteralLoose(["\n height: 40px;\n display: grid;\n position: relative;\n"])));
979
977
  var PrefixContainer = styled__default["default"].span(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 50%;\n left: 8px;\n transform: translateY(-50%);\n"])));
980
978
  var SuffixContainer = styled__default["default"].span(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n\n display: flex;\n gap: 8px;\n"])));
981
979
  var Affix = styled__default["default"].span(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n user-select: none;\n\n ", "\n"])), theme(function (o) {
@@ -1026,7 +1024,7 @@ var AssistiveText = styled__default["default"].p(_templateObject14 || (_template
1026
1024
  });
1027
1025
 
1028
1026
  var _excluded = ["name", "scale", "unsafeNonGuidelineScale", "className"];
1029
- var Icon = React__default["default"].forwardRef(function IconInner(_ref, ref) {
1027
+ var Icon$1 = React__default["default"].forwardRef(function IconInner(_ref, ref) {
1030
1028
  var name = _ref.name,
1031
1029
  scale = _ref.scale,
1032
1030
  unsafeNonGuidelineScale = _ref.unsafeNonGuidelineScale,
@@ -1042,6 +1040,66 @@ var Icon = React__default["default"].forwardRef(function IconInner(_ref, ref) {
1042
1040
  }, rest));
1043
1041
  });
1044
1042
 
1043
+ var _templateObject, _templateObject2, _templateObject3;
1044
+ function LoadingSpinner(_ref) {
1045
+ var _ref$size = _ref.size,
1046
+ size = _ref$size === void 0 ? 48 : _ref$size,
1047
+ _ref$padding = _ref.padding,
1048
+ padding = _ref$padding === void 0 ? 16 : _ref$padding,
1049
+ _ref$transparent = _ref.transparent,
1050
+ transparent = _ref$transparent === void 0 ? false : _ref$transparent;
1051
+ return /*#__PURE__*/React__default["default"].createElement(LoadingSpinnerRoot, {
1052
+ size: size,
1053
+ padding: padding,
1054
+ transparent: transparent
1055
+ }, /*#__PURE__*/React__default["default"].createElement(LoadingSpinnerIcon, null));
1056
+ }
1057
+ var LoadingSpinnerRoot = styled__default["default"].div.attrs({
1058
+ role: 'progressbar'
1059
+ })(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n margin: auto;\n padding: ", "px;\n border-radius: 8px;\n font-size: ", "px;\n width: ", "px;\n height: ", "px;\n background-color: ", ";\n color: ", ";\n"])), function (props) {
1060
+ return props.padding;
1061
+ }, function (props) {
1062
+ return props.size;
1063
+ }, function (props) {
1064
+ return props.size;
1065
+ }, function (props) {
1066
+ return props.size;
1067
+ }, function (_ref2) {
1068
+ var theme = _ref2.theme,
1069
+ transparent = _ref2.transparent;
1070
+ return transparent ? 'transparent' : polished.transparentize(0.32, theme.color.background1);
1071
+ }, function (_ref3) {
1072
+ var theme = _ref3.theme;
1073
+ return theme.color.text4;
1074
+ });
1075
+ var scaleout = styled$1.keyframes(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n from {\n transform: scale(0);\n opacity: 1;\n }\n\n to {\n transform: scale(1);\n opacity: 0;\n }\n"])));
1076
+ var Icon = styled__default["default"].div.attrs({
1077
+ role: 'presentation'
1078
+ })(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n width: 1em;\n height: 1em;\n border-radius: 1em;\n background-color: currentColor;\n animation: ", " 1s both ease-out;\n animation-iteration-count: ", ";\n\n &[data-reset-animation] {\n animation: none;\n }\n"])), scaleout, function (p) {
1079
+ return p.once ? 1 : 'infinite';
1080
+ });
1081
+ var LoadingSpinnerIcon = React__default["default"].forwardRef(function LoadingSpinnerIcon(_ref4, ref) {
1082
+ var _ref4$once = _ref4.once,
1083
+ once = _ref4$once === void 0 ? false : _ref4$once;
1084
+ var iconRef = React.useRef(null);
1085
+ React.useImperativeHandle(ref, function () {
1086
+ return {
1087
+ restart: function restart() {
1088
+ if (!iconRef.current) {
1089
+ return;
1090
+ }
1091
+
1092
+ iconRef.current.dataset.resetAnimation = 'true'; // Force reflow hack!
1093
+ delete iconRef.current.dataset.resetAnimation;
1094
+ }
1095
+ };
1096
+ });
1097
+ return /*#__PURE__*/React__default["default"].createElement(Icon, {
1098
+ ref: iconRef,
1099
+ once: once
1100
+ });
1101
+ });
1102
+
1045
1103
  Object.defineProperty(exports, 'SSRProvider', {
1046
1104
  enumerable: true,
1047
1105
  get: function () { return ssr.SSRProvider; }
@@ -1049,8 +1107,10 @@ Object.defineProperty(exports, 'SSRProvider', {
1049
1107
  exports.Button = Button;
1050
1108
  exports.Clickable = Clickable;
1051
1109
  exports.ComponentAbstraction = ComponentAbstraction;
1052
- exports.Icon = Icon;
1110
+ exports.Icon = Icon$1;
1053
1111
  exports.IconButton = IconButton;
1112
+ exports.LoadingSpinner = LoadingSpinner;
1113
+ exports.LoadingSpinnerIcon = LoadingSpinnerIcon;
1054
1114
  exports.Radio = Radio;
1055
1115
  exports.RadioGroup = RadioGroup;
1056
1116
  exports.Select = Select;