@kaio-xyz/design-system 1.0.25 → 1.0.27

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,4 +1,4 @@
1
- import { AnchorHTMLAttributes, ButtonHTMLAttributes } from "react";
1
+ import { AnchorHTMLAttributes, ButtonHTMLAttributes } from 'react';
2
2
  export type CommonButtonProps = {
3
3
  variant?: "primary" | "secondary" | "info" | "warning" | "danger" | "success";
4
4
  fullWidth?: boolean;
@@ -0,0 +1 @@
1
+ export { Loader } from "./loader";
@@ -0,0 +1,8 @@
1
+ import { PropsWithChildren } from 'react';
2
+ type LoaderProps = PropsWithChildren<{
3
+ fullPage?: boolean;
4
+ text?: string;
5
+ isLightOverlay?: boolean;
6
+ }>;
7
+ export declare const Loader: ({ text, fullPage, isLightOverlay, children }: LoaderProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,38 @@
1
+ import type { StoryObj } from "@storybook/react";
2
+ declare const meta: {
3
+ title: string;
4
+ component: ({ text, fullPage, isLightOverlay, children }: {
5
+ fullPage?: boolean;
6
+ text?: string;
7
+ isLightOverlay?: boolean;
8
+ } & {
9
+ children?: import("react").ReactNode | undefined;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ tags: string[];
12
+ parameters: {
13
+ layout: string;
14
+ };
15
+ argTypes: {
16
+ fullPage: {
17
+ description: string;
18
+ };
19
+ text: {
20
+ description: string;
21
+ };
22
+ isLightOverlay: {
23
+ description: string;
24
+ };
25
+ children: {
26
+ description: string;
27
+ };
28
+ };
29
+ };
30
+ export default meta;
31
+ type Story = StoryObj<typeof meta>;
32
+ export declare const Default: Story;
33
+ export declare const WithText: Story;
34
+ export declare const FullPage: Story;
35
+ export declare const ContentArea: Story;
36
+ export declare const LightOverlay: Story;
37
+ export declare const LightOverlayContentArea: Story;
38
+ export declare const WithChildren: Story;
@@ -0,0 +1 @@
1
+ export { Spinner } from "./spinner";
@@ -0,0 +1,7 @@
1
+ type SpinnerProps = {
2
+ size?: number;
3
+ duration?: number;
4
+ className?: string;
5
+ };
6
+ export declare const Spinner: ({ size, duration, className, ...rest }: SpinnerProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,35 @@
1
+ import type { StoryObj } from "@storybook/react";
2
+ declare const meta: {
3
+ title: string;
4
+ component: ({ size, duration, className, ...rest }: {
5
+ size?: number;
6
+ duration?: number;
7
+ className?: string;
8
+ }) => import("react/jsx-runtime").JSX.Element;
9
+ tags: string[];
10
+ argTypes: {
11
+ size: {
12
+ description: string;
13
+ control: {
14
+ type: "number";
15
+ };
16
+ };
17
+ duration: {
18
+ description: string;
19
+ control: {
20
+ type: "number";
21
+ };
22
+ };
23
+ className: {
24
+ description: string;
25
+ };
26
+ };
27
+ };
28
+ export default meta;
29
+ type Story = StoryObj<typeof meta>;
30
+ export declare const Default: Story;
31
+ export declare const Small: Story;
32
+ export declare const Medium: Story;
33
+ export declare const Large: Story;
34
+ export declare const Slow: Story;
35
+ export declare const Fast: Story;
@@ -1 +1,2 @@
1
1
  export { PasswordField } from "./password-field";
2
+ export { ValidatePasswordField } from "./validate-password-field";
package/dist/index.cjs.js CHANGED
@@ -214,16 +214,16 @@ var SvgChevronGrabber = function SvgChevronGrabber(props) {
214
214
  })));
215
215
  };
216
216
 
217
- var style$8 = {"root":"stack-module__root__AqSLk"};
217
+ var style$b = {"root":"stack-module__root__AqSLk"};
218
218
 
219
219
  var Stack = function (_a) {
220
220
  var children = _a.children, _b = _a.space, space = _b === void 0 ? "s" : _b, className = _a.className, _c = _a.position, position = _c === void 0 ? "vertical" : _c, _d = _a.fullHeight, fullHeight = _d === void 0 ? false : _d, _e = _a.fullWidth, fullWidth = _e === void 0 ? false : _e, dataTest = _a.dataTest, dataAlignItems = _a.dataAlignItems, dataCapitalize = _a.dataCapitalize, dataMarginTop = _a.dataMarginTop, dataMarginBottom = _a.dataMarginBottom, dataMarginLeft = _a.dataMarginLeft, dataPaddingBottom = _a.dataPaddingBottom, rest = __rest(_a, ["children", "space", "className", "position", "fullHeight", "fullWidth", "dataTest", "dataAlignItems", "dataCapitalize", "dataMarginTop", "dataMarginBottom", "dataMarginLeft", "dataPaddingBottom"]);
221
- return (jsxRuntime.jsx("div", __assign({ className: clsx(style$8.root, className), "data-space": space, "data-position": position, "data-full-width": fullWidth, "data-full-height": fullHeight, "data-test": dataTest, "data-align-items": dataAlignItems, "data-capitalize": dataCapitalize, "data-margin-top": dataMarginTop, "data-margin-bottom": dataMarginBottom, "data-margin-left": dataMarginLeft, "data-padding-bottom": dataPaddingBottom }, rest, { children: children })));
221
+ return (jsxRuntime.jsx("div", __assign({ className: clsx(style$b.root, className), "data-space": space, "data-position": position, "data-full-width": fullWidth, "data-full-height": fullHeight, "data-test": dataTest, "data-align-items": dataAlignItems, "data-capitalize": dataCapitalize, "data-margin-top": dataMarginTop, "data-margin-bottom": dataMarginBottom, "data-margin-left": dataMarginLeft, "data-padding-bottom": dataPaddingBottom }, rest, { children: children })));
222
222
  };
223
223
 
224
224
  var baseStyle = {"root":"badge-base-module__root__oUZlm"};
225
225
 
226
- var style$7 = {"root":"badge-module__root__rXpaz"};
226
+ var style$a = {"root":"badge-module__root__rXpaz"};
227
227
 
228
228
  var BadgeStatuses = {
229
229
  success: "success",
@@ -242,31 +242,42 @@ var Badge = function (_a) {
242
242
  default: return jsxRuntime.jsx(SvgCircleDashed, {});
243
243
  }
244
244
  }, [status]);
245
- return (jsxRuntime.jsx("label", __assign({ className: clsx(baseStyle.root, style$7.root), title: text, "data-status": status, "data-full-width": fullWidth, "data-test": dataTest, "data-reverted": reverted, "data-size": size }, props, { children: jsxRuntime.jsxs(Stack, { position: "horizontal", children: [hasIcon && icon, text] }) })));
245
+ return (jsxRuntime.jsx("label", __assign({ className: clsx(baseStyle.root, style$a.root), title: text, "data-status": status, "data-full-width": fullWidth, "data-test": dataTest, "data-reverted": reverted, "data-size": size }, props, { children: jsxRuntime.jsxs(Stack, { position: "horizontal", children: [hasIcon && icon, text] }) })));
246
246
  };
247
247
 
248
- var style$6 = {"root":"button-module__root__CDCDX"};
248
+ var style$9 = {"root":"button-module__root__CDCDX"};
249
+
250
+ var style$8 = {"spinner":"spinner-module__spinner__VzZj2"};
251
+
252
+ var Spinner = function (_a) {
253
+ var _b = _a.size, size = _b === void 0 ? 22 : _b, _c = _a.duration, duration = _c === void 0 ? 1 : _c, _d = _a.className, className = _d === void 0 ? '' : _d, rest = __rest(_a, ["size", "duration", "className"]);
254
+ return (jsxRuntime.jsx("div", { className: clsx(style$8.spinner, className), style: {
255
+ width: size,
256
+ height: size,
257
+ animationDuration: "".concat(duration, "s"),
258
+ }, children: jsxRuntime.jsx(SvgLoader, __assign({ width: size, height: size }, rest)) }));
259
+ };
249
260
 
250
261
  var isAnchor = function (props) { return props.href !== undefined; };
251
262
  var Button = React.forwardRef(function (_a, ref) {
252
263
  var _b = _a.fullWidth, fullWidth = _b === void 0 ? false : _b, _c = _a.variant, variant = _c === void 0 ? "primary" : _c, _d = _a.size, size = _d === void 0 ? "normal" : _d, _e = _a.isInverted, isInverted = _e === void 0 ? false : _e, _f = _a.isLoading, isLoading = _f === void 0 ? false : _f, _g = _a.iconSize, iconSize = _g === void 0 ? 22 : _g, Icon = _a.icon, props = __rest(_a, ["fullWidth", "variant", "size", "isInverted", "isLoading", "iconSize", "icon"]);
253
264
  var iconProps = { width: iconSize, height: iconSize, "aria-hidden": "true" };
254
265
  var baseIcon = Icon && jsxRuntime.jsx(Icon, __assign({}, iconProps));
255
- var loadingIcon = isLoading && jsxRuntime.jsx(SvgLoader, __assign({}, iconProps));
266
+ var loadingIcon = isLoading && jsxRuntime.jsx(Spinner, __assign({ size: iconSize }, iconProps));
256
267
  var iconChild = loadingIcon || baseIcon || null;
257
- var classes = clsx(style$6.root, props.className);
268
+ var classes = clsx(style$9.root, props.className);
258
269
  return (isAnchor(props) ? (jsxRuntime.jsx("a", __assign({ "aria-disabled": props.disabled, ref: ref }, props, { className: classes, children: props.children }))) : (jsxRuntime.jsx("button", __assign({ "aria-disabled": props.disabled, ref: ref, type: "button" }, props, { className: classes, "data-type": variant, "data-size": size, "data-full-width": fullWidth, "data-inverted": isInverted, disabled: props.disabled || isLoading, "data-is-loading": isLoading, children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [iconChild, isLoading ? "Loading" : props.children] }) }))));
259
270
  });
260
271
  Button.displayName = "Button";
261
272
 
262
- var style$5 = {"hint":"hint-module__hint__0cpje","children":"hint-module__children__GSZxg"};
273
+ var style$7 = {"hint":"hint-module__hint__0cpje","children":"hint-module__children__GSZxg"};
263
274
 
264
275
  var Hint = function (_a) {
265
276
  var children = _a.children, className = _a.className, _b = _a.kind, kind = _b === void 0 ? "info" : _b, attributes = __rest(_a, ["children", "className", "kind"]);
266
- return (jsxRuntime.jsxs(Stack, __assign({ space: "xs", position: "horizontal", className: clsx(style$5.hint, className), "data-type": kind }, attributes, { children: [jsxRuntime.jsx(SvgInfo, {}), jsxRuntime.jsx("span", { className: style$5.children, children: children })] })));
277
+ return (jsxRuntime.jsxs(Stack, __assign({ space: "xs", position: "horizontal", className: clsx(style$7.hint, className), "data-type": kind }, attributes, { children: [jsxRuntime.jsx(SvgInfo, {}), jsxRuntime.jsx("span", { className: style$7.children, children: children })] })));
267
278
  };
268
279
 
269
- var style$4 = {"field":"text-field-module__field__iZ0TF","label":"text-field-module__label__ClJkz","container":"text-field-module__container__IKtNZ","fieldWrapper":"text-field-module__fieldWrapper__nQ7l8","textField":"text-field-module__textField__756eR","hint":"text-field-module__hint__Ad6VA"};
280
+ var style$6 = {"field":"text-field-module__field__iZ0TF","label":"text-field-module__label__ClJkz","container":"text-field-module__container__IKtNZ","fieldWrapper":"text-field-module__fieldWrapper__nQ7l8","textField":"text-field-module__textField__756eR","hint":"text-field-module__hint__Ad6VA"};
270
281
 
271
282
  var TextField = React.forwardRef(function (_a, ref) {
272
283
  var className = _a.className, disabled = _a.disabled, hint = _a.hint, id = _a.id, label = _a.label, onChange = _a.onChange, readOnly = _a.readOnly, invalid = _a.invalid, button = _a.button, _b = _a.fullWidth, fullWidth = _b === void 0 ? false : _b, _c = _a.size, size = _c === void 0 ? "default" : _c, _d = _a.noPadding, noPadding = _d === void 0 ? false : _d, _e = _a.floatingLabel, floatingLabel = _e === void 0 ? true : _e, value = _a.value, defaultValue = _a.defaultValue, onFocus = _a.onFocus, onBlur = _a.onBlur, attributes = __rest(_a, ["className", "disabled", "hint", "id", "label", "onChange", "readOnly", "invalid", "button", "fullWidth", "size", "noPadding", "floatingLabel", "value", "defaultValue", "onFocus", "onBlur"]);
@@ -303,35 +314,65 @@ var TextField = React.forwardRef(function (_a, ref) {
303
314
  setHasValue(e.target.value.length > 0);
304
315
  onChange === null || onChange === void 0 ? void 0 : onChange(e);
305
316
  };
306
- return (jsxRuntime.jsx("fieldset", { "aria-disabled": disabled, disabled: disabled, className: clsx(style$4.textField, className), "data-no-padding": noPadding, "data-full-width": fullWidth, children: jsxRuntime.jsxs("div", { className: style$4.container, "data-has-label": !!label, "data-has-hint": !!hint, "data-has-button": !!button, "data-floating-label": floatingLabel, children: [label && (jsxRuntime.jsx("label", { className: style$4.label, htmlFor: id, "data-floating": floatingLabel, "data-active": isLabelFloating, children: label })), jsxRuntime.jsxs("div", { className: style$4.fieldWrapper, children: [jsxRuntime.jsx("input", __assign({ "aria-readonly": readOnly, className: style$4.field, readOnly: readOnly, "data-type": "single", "data-size": size, "data-floating-label": floatingLabel, id: id, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur, "data-invalid": invalid, ref: inputRef, type: "text", value: value, defaultValue: defaultValue }, attributes)), button ? button : null] }), hint && jsxRuntime.jsx(Hint, { kind: "error", className: style$4.hint, children: hint })] }) }));
317
+ return (jsxRuntime.jsx("fieldset", { "aria-disabled": disabled, disabled: disabled, className: clsx(style$6.textField, className), "data-no-padding": noPadding, "data-full-width": fullWidth, children: jsxRuntime.jsxs("div", { className: style$6.container, "data-has-label": !!label, "data-has-hint": !!hint, "data-has-button": !!button, "data-floating-label": floatingLabel, children: [label && (jsxRuntime.jsx("label", { className: style$6.label, htmlFor: id, "data-floating": floatingLabel, "data-active": isLabelFloating, children: label })), jsxRuntime.jsxs("div", { className: style$6.fieldWrapper, children: [jsxRuntime.jsx("input", __assign({ "aria-readonly": readOnly, className: style$6.field, readOnly: readOnly, "data-type": "single", "data-size": size, "data-floating-label": floatingLabel, id: id, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur, "data-invalid": invalid, ref: inputRef, type: "text", value: value, defaultValue: defaultValue }, attributes)), button ? button : null] }), hint && jsxRuntime.jsx(Hint, { kind: "error", className: style$6.hint, children: hint })] }) }));
307
318
  });
308
319
  TextField.displayName = "TextField";
309
320
 
310
- var style$3 = {"container":"container-module__container__CAxQw"};
321
+ var style$5 = {"container":"container-module__container__CAxQw"};
311
322
 
312
323
  var Container = function (_a) {
313
324
  var children = _a.children, className = _a.className, size = _a.size, noPadding = _a.noPadding, attributes = __rest(_a, ["children", "className", "size", "noPadding"]);
314
- return (jsxRuntime.jsx("div", __assign({ className: clsx(style$3.container, className) }, size ? { "data-size": size } : {}, { "data-nopadding": noPadding }, attributes, { children: children })));
325
+ return (jsxRuntime.jsx("div", __assign({ className: clsx(style$5.container, className) }, size ? { "data-size": size } : {}, { "data-nopadding": noPadding }, attributes, { children: children })));
315
326
  };
316
327
 
317
- var style$2 = {"field":"password-field-module__field__-sFqA","button":"password-field-module__button__FtG9V"};
328
+ var style$4 = {"field":"password-field-module__field__-sFqA","button":"password-field-module__button__FtG9V"};
318
329
 
319
330
  var PasswordField = React.forwardRef(function (_a, ref) {
320
331
  var disabled = _a.disabled, rest = __rest(_a, ["disabled"]);
321
332
  var _b = React.useState(false), isPasswordVisible = _b[0], setIsPasswordVisible = _b[1];
322
- var button = (jsxRuntime.jsx("button", { onClick: function () { return setIsPasswordVisible(function (prev) { return !prev; }); }, type: "button", disabled: disabled, className: style$2.button, children: isPasswordVisible ? jsxRuntime.jsx(SvgEyeOpen, {}) : jsxRuntime.jsx(SvgEyeClosed, {}) }));
323
- return (jsxRuntime.jsx(TextField, __assign({ disabled: disabled }, rest, { ref: ref, type: isPasswordVisible ? "text" : "password", button: button, className: style$2.field })));
333
+ var button = (jsxRuntime.jsx("button", { onClick: function () { return setIsPasswordVisible(function (prev) { return !prev; }); }, type: "button", disabled: disabled, className: style$4.button, children: isPasswordVisible ? jsxRuntime.jsx(SvgEyeOpen, {}) : jsxRuntime.jsx(SvgEyeClosed, {}) }));
334
+ return (jsxRuntime.jsx(TextField, __assign({ disabled: disabled }, rest, { ref: ref, type: isPasswordVisible ? "text" : "password", button: button, className: style$4.field })));
324
335
  });
325
336
  PasswordField.displayName = "PasswordField";
326
337
 
327
- var style$1 = {"root":"label-module__root__34bJr"};
338
+ var style$3 = {"validator":"validate-password-field-module__validator__Do-6w"};
339
+
340
+ var rules = {
341
+ length: /^.{8,}$/,
342
+ case: /^(?=.*[a-z])(?=.*[A-Z]).*$/,
343
+ number: /^(?=.*\d).*$/,
344
+ special: /^(?=.*[@$!%*?&_#]).*$/,
345
+ };
346
+ var ValidatePasswordField = React.forwardRef(function (_a, ref) {
347
+ var onChange = _a.onChange, setIsPasswordValid = _a.setIsPasswordValid, rest = __rest(_a, ["onChange", "setIsPasswordValid"]);
348
+ var _b = React.useState(false), isLenghtCheckOk = _b[0], setIslengthCheckOk = _b[1];
349
+ var _c = React.useState(false), isCaseCheckOk = _c[0], setIsCaseCheckOk = _c[1];
350
+ var _d = React.useState(false), isNumberCheckOk = _d[0], setIsNumberCheckOk = _d[1];
351
+ var _e = React.useState(false), isSpecialCheckOk = _e[0], setIsSpecialCheckOk = _e[1];
352
+ var onHandleChange = function (e) {
353
+ var value = e.target.value;
354
+ setIslengthCheckOk(rules.length.test(value));
355
+ setIsCaseCheckOk(rules.case.test(value));
356
+ setIsNumberCheckOk(rules.number.test(value));
357
+ setIsSpecialCheckOk(rules.special.test(value));
358
+ onChange === null || onChange === void 0 ? void 0 : onChange(e);
359
+ };
360
+ React.useEffect(function () {
361
+ setIsPasswordValid === null || setIsPasswordValid === void 0 ? void 0 : setIsPasswordValid(isLenghtCheckOk && isCaseCheckOk && isNumberCheckOk && isSpecialCheckOk);
362
+ }, [isLenghtCheckOk, isCaseCheckOk, isNumberCheckOk, isSpecialCheckOk, setIsPasswordValid]);
363
+ var getValidator = function (isCheckOk, label) { return (jsxRuntime.jsxs(Stack, { position: "horizontal", className: style$3.validator, "data-is-valid": isCheckOk, children: [isCheckOk ? jsxRuntime.jsx(SvgCheck, {}) : jsxRuntime.jsx(SvgCircleDashed, {}), jsxRuntime.jsx("p", { children: label })] })); };
364
+ return (jsxRuntime.jsxs(Stack, { children: [jsxRuntime.jsx(PasswordField, __assign({ onChange: onHandleChange, ref: ref }, rest)), jsxRuntime.jsxs(Stack, { children: [getValidator(isLenghtCheckOk, "At least 8 characters"), getValidator(isCaseCheckOk, "Include uppercase & lowercase letters"), getValidator(isNumberCheckOk, "Include at least one number"), getValidator(isSpecialCheckOk, "Include at least one special character (allowed: @ $ ! % * ? & _ #)")] })] }));
365
+ });
366
+ ValidatePasswordField.displayName = "ValidatePasswordField";
367
+
368
+ var style$2 = {"root":"label-module__root__34bJr"};
328
369
 
329
370
  var Label = function (_a) {
330
371
  var id = _a.id, label = _a.label, className = _a.className, _b = _a.hasMargin, hasMargin = _b === void 0 ? true : _b, _c = _a.hasHalfMargin, hasHalfMargin = _c === void 0 ? false : _c, _d = _a.hasCursorPointer, hasCursorPointer = _d === void 0 ? false : _d;
331
- return (jsxRuntime.jsx("label", { className: clsx(style$1.root, className), htmlFor: id, "data-margin-bottom": hasMargin, "data-half-margin-bottom": hasHalfMargin, "data-has-cursor-pointer": hasCursorPointer, children: label }));
372
+ return (jsxRuntime.jsx("label", { className: clsx(style$2.root, className), htmlFor: id, "data-margin-bottom": hasMargin, "data-half-margin-bottom": hasHalfMargin, "data-has-cursor-pointer": hasCursorPointer, children: label }));
332
373
  };
333
374
 
334
- var style = {"label":"select-module__label__EWUYF","selector":"select-module__selector__55oxp","hint":"select-module__hint__SPtu-"};
375
+ var style$1 = {"label":"select-module__label__EWUYF","selector":"select-module__selector__55oxp","hint":"select-module__hint__SPtu-"};
335
376
 
336
377
  var IconAndLabel = function (_a) {
337
378
  var children = _a.children, Icon = _a.icon;
@@ -352,7 +393,7 @@ var CustomSingleValue = function (_a) {
352
393
  };
353
394
  var Select = function (_a) {
354
395
  var id = _a.id, label = _a.label, dataTest = _a.dataTest, isDisabled = _a.isDisabled, className = _a.className, error = _a.error, customComponents = _a.components, rest = __rest(_a, ["id", "label", "dataTest", "isDisabled", "className", "error", "components"]);
355
- return (jsxRuntime.jsxs("div", { className: clsx(style.root, className), children: [label && jsxRuntime.jsx(Label, { id: id, label: label, className: style.label }), jsxRuntime.jsxs("div", { "data-test": dataTest, className: style.selector, "data-error": !!error, children: [jsxRuntime.jsx(ReactSelect, __assign({ id: id, classNamePrefix: "select", components: __assign(__assign({}, customComponents), { IndicatorSeparator: function () { return null; }, Option: CustomOption, SingleValue: CustomSingleValue, DropdownIndicator: CustomDropdownIndicator, MultiValueLabel: CustomMultiValueLabel }) }, rest, { isDisabled: isDisabled })), error && jsxRuntime.jsx(Hint, { kind: "error", className: style.hint, children: error })] })] }));
396
+ return (jsxRuntime.jsxs("div", { className: clsx(style$1.root, className), children: [label && jsxRuntime.jsx(Label, { id: id, label: label, className: style$1.label }), jsxRuntime.jsxs("div", { "data-test": dataTest, className: style$1.selector, "data-error": !!error, children: [jsxRuntime.jsx(ReactSelect, __assign({ id: id, classNamePrefix: "select", components: __assign(__assign({}, customComponents), { IndicatorSeparator: function () { return null; }, Option: CustomOption, SingleValue: CustomSingleValue, DropdownIndicator: CustomDropdownIndicator, MultiValueLabel: CustomMultiValueLabel }) }, rest, { isDisabled: isDisabled })), error && jsxRuntime.jsx(Hint, { kind: "error", className: style$1.hint, children: error })] })] }));
356
397
  };
357
398
  Select.displayName = "Select";
358
399
 
@@ -365,12 +406,22 @@ var FormSelect = function (_a) {
365
406
  };
366
407
  FormSelect.displayName = "FormSelect";
367
408
 
409
+ var style = {"root":"loader-module__root__qnInQ"};
410
+
411
+ var Loader = function (_a) {
412
+ var text = _a.text, _b = _a.fullPage, fullPage = _b === void 0 ? true : _b, _c = _a.isLightOverlay, isLightOverlay = _c === void 0 ? false : _c, children = _a.children;
413
+ return (jsxRuntime.jsx("div", { className: style.root, "data-full-page": fullPage, "data-is-light-overlay": isLightOverlay, children: jsxRuntime.jsxs(Stack, { dataAlignItems: "center", children: [jsxRuntime.jsx(Spinner, { size: 50 }), text && jsxRuntime.jsx("p", { children: text }), children] }) }));
414
+ };
415
+
368
416
  exports.Badge = Badge;
369
417
  exports.Button = Button;
370
418
  exports.Container = Container;
371
419
  exports.FormSelect = FormSelect;
420
+ exports.Loader = Loader;
372
421
  exports.PasswordField = PasswordField;
373
422
  exports.Select = Select;
423
+ exports.Spinner = Spinner;
374
424
  exports.Stack = Stack;
375
425
  exports.TextField = TextField;
426
+ exports.ValidatePasswordField = ValidatePasswordField;
376
427
  //# sourceMappingURL=index.cjs.js.map