@saurabh05/nexo-ui 2.0.0 → 4.0.0
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.
- package/README.md +104 -26
- package/dist/App.d.ts +2 -0
- package/dist/components/feedback/Loading/Loading.d.ts +52 -0
- package/dist/components/feedback/Loading/Loading.stories.d.ts +41 -0
- package/dist/components/feedback/Loading/index.d.ts +1 -0
- package/dist/components/form-component/Button/Button.d.ts +42 -0
- package/dist/components/form-component/Button/Button.stories.d.ts +45 -0
- package/dist/components/form-component/Button/Button.test.d.ts +1 -0
- package/dist/components/form-component/Button/index.d.ts +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.es.js +353 -0
- package/dist/index.umd.js +6 -0
- package/dist/main.d.ts +0 -0
- package/dist/project-sb.css +1 -0
- package/package.json +33 -54
- package/dist/index.cjs.js +0 -14
- package/dist/index.esm.js +0 -10656
- package/dist/nexo-ui.css +0 -1
package/README.md
CHANGED
|
@@ -1,26 +1,104 @@
|
|
|
1
|
-
# Nexo UI
|
|
2
|
-
|
|
3
|
-
A modern
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
##
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
# Nexo UI
|
|
2
|
+
|
|
3
|
+
A modern, flexible design system built with React, Vite, and Storybook.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
## Installation
|
|
9
|
+
|
|
10
|
+
Install the package via npm:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install @saurabh05/nexo-ui
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Setup
|
|
17
|
+
|
|
18
|
+
Start by importing the global CSS file in your application's entry point (e.g., `main.tsx` or `App.tsx`):
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
import '@saurabh05/nexo-ui/dist/project-sb.css';
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Components
|
|
25
|
+
|
|
26
|
+
### Button
|
|
27
|
+
|
|
28
|
+
A versatile button component with multiple variants and states.
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
import { Button } from '@saurabh05/nexo-ui';
|
|
32
|
+
import { FaArrowRight } from 'react-icons/fa';
|
|
33
|
+
|
|
34
|
+
function App() {
|
|
35
|
+
return (
|
|
36
|
+
<div style={{ display: 'flex', gap: '1rem' }}>
|
|
37
|
+
<Button variant="primary">Primary Button</Button>
|
|
38
|
+
<Button variant="secondary" size="lg">
|
|
39
|
+
Secondary Large
|
|
40
|
+
</Button>
|
|
41
|
+
<Button variant="outline" icon={<FaArrowRight />} iconPosition="right">
|
|
42
|
+
Next Step
|
|
43
|
+
</Button>
|
|
44
|
+
<Button isLoading>Processing</Button>
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Props:**
|
|
51
|
+
|
|
52
|
+
- `variant`: `primary` | `secondary` | `outline` | `text` | `danger`
|
|
53
|
+
- `size`: `sm` | `md` | `lg`
|
|
54
|
+
- `isLoading`: `boolean`
|
|
55
|
+
- `disabled`: `boolean`
|
|
56
|
+
- `customColor`: `string`
|
|
57
|
+
- `icon`: `ReactNode`
|
|
58
|
+
- `iconPosition`: `left` | `right`
|
|
59
|
+
|
|
60
|
+
### Loading
|
|
61
|
+
|
|
62
|
+
A comprehensive loading component with spinners, dots, and overlays.
|
|
63
|
+
|
|
64
|
+
```tsx
|
|
65
|
+
import { Loading } from '@saurabh05/nexo-ui';
|
|
66
|
+
|
|
67
|
+
function App() {
|
|
68
|
+
return (
|
|
69
|
+
<>
|
|
70
|
+
{/* Default Spinner */}
|
|
71
|
+
<Loading />
|
|
72
|
+
|
|
73
|
+
{/* Dots Variant */}
|
|
74
|
+
<Loading variant="dots" color="#ff5722" />
|
|
75
|
+
|
|
76
|
+
{/* Full Screen Overlay with Message */}
|
|
77
|
+
<Loading fullScreen blur message="Loading application..." />
|
|
78
|
+
</>
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Props:**
|
|
84
|
+
|
|
85
|
+
- `variant`: `spinner` | `dots` | `custom`
|
|
86
|
+
- `size`: `sm` | `md` | `lg`
|
|
87
|
+
- `color`: `string`
|
|
88
|
+
- `message`: `string`
|
|
89
|
+
- `src`: `string` (for custom image/gif)
|
|
90
|
+
- `overlay`: `boolean`
|
|
91
|
+
- `fullScreen`: `boolean`
|
|
92
|
+
- `blur`: `boolean`
|
|
93
|
+
|
|
94
|
+
## Development
|
|
95
|
+
|
|
96
|
+
To run the Storybook environment locally:
|
|
97
|
+
|
|
98
|
+
1. Clone the repository.
|
|
99
|
+
2. Install dependencies: `npm install`
|
|
100
|
+
3. Start Storybook: `npm run storybook`
|
|
101
|
+
|
|
102
|
+
## License
|
|
103
|
+
|
|
104
|
+
MIT
|
package/dist/App.d.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type LoadingVariant = 'spinner' | 'dots' | 'custom';
|
|
3
|
+
export type LoadingSize = 'sm' | 'md' | 'lg';
|
|
4
|
+
export interface LoadingProps {
|
|
5
|
+
/**
|
|
6
|
+
* The visual style of the loader
|
|
7
|
+
* @default 'spinner'
|
|
8
|
+
*/
|
|
9
|
+
variant?: LoadingVariant;
|
|
10
|
+
/**
|
|
11
|
+
* The size of the loader
|
|
12
|
+
* @default 'md'
|
|
13
|
+
*/
|
|
14
|
+
size?: LoadingSize;
|
|
15
|
+
/**
|
|
16
|
+
* Custom color for the spinner or dots
|
|
17
|
+
* @default 'inherit'
|
|
18
|
+
*/
|
|
19
|
+
color?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Optional loading message to display below/beside the loader
|
|
22
|
+
*/
|
|
23
|
+
message?: string;
|
|
24
|
+
/**
|
|
25
|
+
* URL for a custom image/gif. Required if variant is 'custom'
|
|
26
|
+
*/
|
|
27
|
+
src?: string;
|
|
28
|
+
/**
|
|
29
|
+
* If true, the loader covers the parent container (parent must be relative)
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
overlay?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* If true, the loader covers the entire viewport
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
fullScreen?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Adds a blur effect to the background when using overlay or fullScreen
|
|
40
|
+
* @default false
|
|
41
|
+
*/
|
|
42
|
+
blur?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Additional CSS classes
|
|
45
|
+
*/
|
|
46
|
+
className?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Additional inline styles
|
|
49
|
+
*/
|
|
50
|
+
style?: React.CSSProperties;
|
|
51
|
+
}
|
|
52
|
+
export declare const Loading: React.FC<LoadingProps>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { StoryObj } from '@storybook/react';
|
|
2
|
+
import { LoadingProps } from './Loading';
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: import('react').FC<LoadingProps>;
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
};
|
|
9
|
+
tags: string[];
|
|
10
|
+
argTypes: {
|
|
11
|
+
variant: {
|
|
12
|
+
control: "select";
|
|
13
|
+
options: string[];
|
|
14
|
+
};
|
|
15
|
+
size: {
|
|
16
|
+
control: "radio";
|
|
17
|
+
options: string[];
|
|
18
|
+
};
|
|
19
|
+
color: {
|
|
20
|
+
control: "color";
|
|
21
|
+
};
|
|
22
|
+
overlay: {
|
|
23
|
+
control: "boolean";
|
|
24
|
+
};
|
|
25
|
+
fullScreen: {
|
|
26
|
+
control: "boolean";
|
|
27
|
+
};
|
|
28
|
+
blur: {
|
|
29
|
+
control: "boolean";
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export default meta;
|
|
34
|
+
type Story = StoryObj<typeof meta>;
|
|
35
|
+
export declare const Spinner: Story;
|
|
36
|
+
export declare const Dots: Story;
|
|
37
|
+
export declare const WithMessage: Story;
|
|
38
|
+
export declare const CustomColor: Story;
|
|
39
|
+
export declare const CustomImage: Story;
|
|
40
|
+
export declare const Overlay: Story;
|
|
41
|
+
export declare const FullScreen: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Loading';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
|
+
export type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'text' | 'danger';
|
|
3
|
+
export type ButtonSize = 'sm' | 'md' | 'lg';
|
|
4
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
5
|
+
/**
|
|
6
|
+
* The visual style of the button
|
|
7
|
+
* @default 'primary'
|
|
8
|
+
*/
|
|
9
|
+
variant?: ButtonVariant;
|
|
10
|
+
/**
|
|
11
|
+
* The size of the button
|
|
12
|
+
* @default 'md'
|
|
13
|
+
*/
|
|
14
|
+
size?: ButtonSize;
|
|
15
|
+
/**
|
|
16
|
+
* If true, shows a loading spinner and disables the button
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
isLoading?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Icon to display before the label
|
|
22
|
+
*/
|
|
23
|
+
startIcon?: ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* Icon to display after the label
|
|
26
|
+
*/
|
|
27
|
+
endIcon?: ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Icon to display (shorthand for startIcon/endIcon)
|
|
30
|
+
*/
|
|
31
|
+
icon?: ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Position of the icon relative to the text
|
|
34
|
+
* @default 'left'
|
|
35
|
+
*/
|
|
36
|
+
iconPosition?: 'left' | 'right';
|
|
37
|
+
/**
|
|
38
|
+
* Custom background color (overrides variant styles)
|
|
39
|
+
*/
|
|
40
|
+
customColor?: string;
|
|
41
|
+
}
|
|
42
|
+
export declare const Button: React.FC<ButtonProps>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import('react').FC<import('./Button').ButtonProps>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
argTypes: {
|
|
10
|
+
variant: {
|
|
11
|
+
control: "select";
|
|
12
|
+
options: string[];
|
|
13
|
+
};
|
|
14
|
+
size: {
|
|
15
|
+
control: "radio";
|
|
16
|
+
options: string[];
|
|
17
|
+
};
|
|
18
|
+
isLoading: {
|
|
19
|
+
control: "boolean";
|
|
20
|
+
};
|
|
21
|
+
disabled: {
|
|
22
|
+
control: "boolean";
|
|
23
|
+
};
|
|
24
|
+
customColor: {
|
|
25
|
+
control: "color";
|
|
26
|
+
};
|
|
27
|
+
iconPosition: {
|
|
28
|
+
control: "radio";
|
|
29
|
+
options: string[];
|
|
30
|
+
};
|
|
31
|
+
onClick: {
|
|
32
|
+
action: string;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export default meta;
|
|
37
|
+
type Story = StoryObj<typeof meta>;
|
|
38
|
+
export declare const Primary: Story;
|
|
39
|
+
export declare const WithLeftIcon: Story;
|
|
40
|
+
export declare const WithRightIcon: Story;
|
|
41
|
+
export declare const IconOnly: Story;
|
|
42
|
+
export declare const IconOnlyDanger: Story;
|
|
43
|
+
export declare const IconOnlyLarge: Story;
|
|
44
|
+
export declare const Loading: Story;
|
|
45
|
+
export declare const CustomColor: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Button';
|
package/dist/index.d.ts
ADDED
package/dist/index.es.js
ADDED
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import B from "react";
|
|
2
|
+
function ae(s) {
|
|
3
|
+
return s && s.__esModule && Object.prototype.hasOwnProperty.call(s, "default") ? s.default : s;
|
|
4
|
+
}
|
|
5
|
+
var N = { exports: {} }, k = {};
|
|
6
|
+
var L;
|
|
7
|
+
function le() {
|
|
8
|
+
if (L) return k;
|
|
9
|
+
L = 1;
|
|
10
|
+
var s = /* @__PURE__ */ Symbol.for("react.transitional.element"), b = /* @__PURE__ */ Symbol.for("react.fragment");
|
|
11
|
+
function c(i, a, n) {
|
|
12
|
+
var t = null;
|
|
13
|
+
if (n !== void 0 && (t = "" + n), a.key !== void 0 && (t = "" + a.key), "key" in a) {
|
|
14
|
+
n = {};
|
|
15
|
+
for (var _ in a)
|
|
16
|
+
_ !== "key" && (n[_] = a[_]);
|
|
17
|
+
} else n = a;
|
|
18
|
+
return a = n.ref, {
|
|
19
|
+
$$typeof: s,
|
|
20
|
+
type: i,
|
|
21
|
+
key: t,
|
|
22
|
+
ref: a !== void 0 ? a : null,
|
|
23
|
+
props: n
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return k.Fragment = b, k.jsx = c, k.jsxs = c, k;
|
|
27
|
+
}
|
|
28
|
+
var S = {};
|
|
29
|
+
var G;
|
|
30
|
+
function ue() {
|
|
31
|
+
return G || (G = 1, process.env.NODE_ENV !== "production" && (function() {
|
|
32
|
+
function s(e) {
|
|
33
|
+
if (e == null) return null;
|
|
34
|
+
if (typeof e == "function")
|
|
35
|
+
return e.$$typeof === te ? null : e.displayName || e.name || null;
|
|
36
|
+
if (typeof e == "string") return e;
|
|
37
|
+
switch (e) {
|
|
38
|
+
case j:
|
|
39
|
+
return "Fragment";
|
|
40
|
+
case P:
|
|
41
|
+
return "Profiler";
|
|
42
|
+
case w:
|
|
43
|
+
return "StrictMode";
|
|
44
|
+
case K:
|
|
45
|
+
return "Suspense";
|
|
46
|
+
case ee:
|
|
47
|
+
return "SuspenseList";
|
|
48
|
+
case re:
|
|
49
|
+
return "Activity";
|
|
50
|
+
}
|
|
51
|
+
if (typeof e == "object")
|
|
52
|
+
switch (typeof e.tag == "number" && console.error(
|
|
53
|
+
"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
|
|
54
|
+
), e.$$typeof) {
|
|
55
|
+
case x:
|
|
56
|
+
return "Portal";
|
|
57
|
+
case Z:
|
|
58
|
+
return e.displayName || "Context";
|
|
59
|
+
case H:
|
|
60
|
+
return (e._context.displayName || "Context") + ".Consumer";
|
|
61
|
+
case Q:
|
|
62
|
+
var r = e.render;
|
|
63
|
+
return e = e.displayName, e || (e = r.displayName || r.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
|
|
64
|
+
case ne:
|
|
65
|
+
return r = e.displayName || null, r !== null ? r : s(e.type) || "Memo";
|
|
66
|
+
case C:
|
|
67
|
+
r = e._payload, e = e._init;
|
|
68
|
+
try {
|
|
69
|
+
return s(e(r));
|
|
70
|
+
} catch {
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
function b(e) {
|
|
76
|
+
return "" + e;
|
|
77
|
+
}
|
|
78
|
+
function c(e) {
|
|
79
|
+
try {
|
|
80
|
+
b(e);
|
|
81
|
+
var r = !1;
|
|
82
|
+
} catch {
|
|
83
|
+
r = !0;
|
|
84
|
+
}
|
|
85
|
+
if (r) {
|
|
86
|
+
r = console;
|
|
87
|
+
var o = r.error, l = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
|
|
88
|
+
return o.call(
|
|
89
|
+
r,
|
|
90
|
+
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
|
|
91
|
+
l
|
|
92
|
+
), b(e);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function i(e) {
|
|
96
|
+
if (e === j) return "<>";
|
|
97
|
+
if (typeof e == "object" && e !== null && e.$$typeof === C)
|
|
98
|
+
return "<...>";
|
|
99
|
+
try {
|
|
100
|
+
var r = s(e);
|
|
101
|
+
return r ? "<" + r + ">" : "<...>";
|
|
102
|
+
} catch {
|
|
103
|
+
return "<...>";
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function a() {
|
|
107
|
+
var e = $.A;
|
|
108
|
+
return e === null ? null : e.getOwner();
|
|
109
|
+
}
|
|
110
|
+
function n() {
|
|
111
|
+
return Error("react-stack-top-frame");
|
|
112
|
+
}
|
|
113
|
+
function t(e) {
|
|
114
|
+
if (M.call(e, "key")) {
|
|
115
|
+
var r = Object.getOwnPropertyDescriptor(e, "key").get;
|
|
116
|
+
if (r && r.isReactWarning) return !1;
|
|
117
|
+
}
|
|
118
|
+
return e.key !== void 0;
|
|
119
|
+
}
|
|
120
|
+
function _(e, r) {
|
|
121
|
+
function o() {
|
|
122
|
+
W || (W = !0, console.error(
|
|
123
|
+
"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
|
|
124
|
+
r
|
|
125
|
+
));
|
|
126
|
+
}
|
|
127
|
+
o.isReactWarning = !0, Object.defineProperty(e, "key", {
|
|
128
|
+
get: o,
|
|
129
|
+
configurable: !0
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
function E() {
|
|
133
|
+
var e = s(this.type);
|
|
134
|
+
return q[e] || (q[e] = !0, console.error(
|
|
135
|
+
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
|
|
136
|
+
)), e = this.props.ref, e !== void 0 ? e : null;
|
|
137
|
+
}
|
|
138
|
+
function R(e, r, o, l, A, F) {
|
|
139
|
+
var u = o.ref;
|
|
140
|
+
return e = {
|
|
141
|
+
$$typeof: p,
|
|
142
|
+
type: e,
|
|
143
|
+
key: r,
|
|
144
|
+
props: o,
|
|
145
|
+
_owner: l
|
|
146
|
+
}, (u !== void 0 ? u : null) !== null ? Object.defineProperty(e, "ref", {
|
|
147
|
+
enumerable: !1,
|
|
148
|
+
get: E
|
|
149
|
+
}) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
|
|
150
|
+
configurable: !1,
|
|
151
|
+
enumerable: !1,
|
|
152
|
+
writable: !0,
|
|
153
|
+
value: 0
|
|
154
|
+
}), Object.defineProperty(e, "_debugInfo", {
|
|
155
|
+
configurable: !1,
|
|
156
|
+
enumerable: !1,
|
|
157
|
+
writable: !0,
|
|
158
|
+
value: null
|
|
159
|
+
}), Object.defineProperty(e, "_debugStack", {
|
|
160
|
+
configurable: !1,
|
|
161
|
+
enumerable: !1,
|
|
162
|
+
writable: !0,
|
|
163
|
+
value: A
|
|
164
|
+
}), Object.defineProperty(e, "_debugTask", {
|
|
165
|
+
configurable: !1,
|
|
166
|
+
enumerable: !1,
|
|
167
|
+
writable: !0,
|
|
168
|
+
value: F
|
|
169
|
+
}), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
|
|
170
|
+
}
|
|
171
|
+
function y(e, r, o, l, A, F) {
|
|
172
|
+
var u = r.children;
|
|
173
|
+
if (u !== void 0)
|
|
174
|
+
if (l)
|
|
175
|
+
if (se(u)) {
|
|
176
|
+
for (l = 0; l < u.length; l++)
|
|
177
|
+
v(u[l]);
|
|
178
|
+
Object.freeze && Object.freeze(u);
|
|
179
|
+
} else
|
|
180
|
+
console.error(
|
|
181
|
+
"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
|
|
182
|
+
);
|
|
183
|
+
else v(u);
|
|
184
|
+
if (M.call(r, "key")) {
|
|
185
|
+
u = s(e);
|
|
186
|
+
var h = Object.keys(r).filter(function(oe) {
|
|
187
|
+
return oe !== "key";
|
|
188
|
+
});
|
|
189
|
+
l = 0 < h.length ? "{key: someKey, " + h.join(": ..., ") + ": ...}" : "{key: someKey}", J[u + l] || (h = 0 < h.length ? "{" + h.join(": ..., ") + ": ...}" : "{}", console.error(
|
|
190
|
+
`A props object containing a "key" prop is being spread into JSX:
|
|
191
|
+
let props = %s;
|
|
192
|
+
<%s {...props} />
|
|
193
|
+
React keys must be passed directly to JSX without using spread:
|
|
194
|
+
let props = %s;
|
|
195
|
+
<%s key={someKey} {...props} />`,
|
|
196
|
+
l,
|
|
197
|
+
u,
|
|
198
|
+
h,
|
|
199
|
+
u
|
|
200
|
+
), J[u + l] = !0);
|
|
201
|
+
}
|
|
202
|
+
if (u = null, o !== void 0 && (c(o), u = "" + o), t(r) && (c(r.key), u = "" + r.key), "key" in r) {
|
|
203
|
+
o = {};
|
|
204
|
+
for (var D in r)
|
|
205
|
+
D !== "key" && (o[D] = r[D]);
|
|
206
|
+
} else o = r;
|
|
207
|
+
return u && _(
|
|
208
|
+
o,
|
|
209
|
+
typeof e == "function" ? e.displayName || e.name || "Unknown" : e
|
|
210
|
+
), R(
|
|
211
|
+
e,
|
|
212
|
+
u,
|
|
213
|
+
o,
|
|
214
|
+
a(),
|
|
215
|
+
A,
|
|
216
|
+
F
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
function v(e) {
|
|
220
|
+
T(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === C && (e._payload.status === "fulfilled" ? T(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
|
|
221
|
+
}
|
|
222
|
+
function T(e) {
|
|
223
|
+
return typeof e == "object" && e !== null && e.$$typeof === p;
|
|
224
|
+
}
|
|
225
|
+
var m = B, p = /* @__PURE__ */ Symbol.for("react.transitional.element"), x = /* @__PURE__ */ Symbol.for("react.portal"), j = /* @__PURE__ */ Symbol.for("react.fragment"), w = /* @__PURE__ */ Symbol.for("react.strict_mode"), P = /* @__PURE__ */ Symbol.for("react.profiler"), H = /* @__PURE__ */ Symbol.for("react.consumer"), Z = /* @__PURE__ */ Symbol.for("react.context"), Q = /* @__PURE__ */ Symbol.for("react.forward_ref"), K = /* @__PURE__ */ Symbol.for("react.suspense"), ee = /* @__PURE__ */ Symbol.for("react.suspense_list"), ne = /* @__PURE__ */ Symbol.for("react.memo"), C = /* @__PURE__ */ Symbol.for("react.lazy"), re = /* @__PURE__ */ Symbol.for("react.activity"), te = /* @__PURE__ */ Symbol.for("react.client.reference"), $ = m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, M = Object.prototype.hasOwnProperty, se = Array.isArray, Y = console.createTask ? console.createTask : function() {
|
|
226
|
+
return null;
|
|
227
|
+
};
|
|
228
|
+
m = {
|
|
229
|
+
react_stack_bottom_frame: function(e) {
|
|
230
|
+
return e();
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
var W, q = {}, U = m.react_stack_bottom_frame.bind(
|
|
234
|
+
m,
|
|
235
|
+
n
|
|
236
|
+
)(), V = Y(i(n)), J = {};
|
|
237
|
+
S.Fragment = j, S.jsx = function(e, r, o) {
|
|
238
|
+
var l = 1e4 > $.recentlyCreatedOwnerStacks++;
|
|
239
|
+
return y(
|
|
240
|
+
e,
|
|
241
|
+
r,
|
|
242
|
+
o,
|
|
243
|
+
!1,
|
|
244
|
+
l ? Error("react-stack-top-frame") : U,
|
|
245
|
+
l ? Y(i(e)) : V
|
|
246
|
+
);
|
|
247
|
+
}, S.jsxs = function(e, r, o) {
|
|
248
|
+
var l = 1e4 > $.recentlyCreatedOwnerStacks++;
|
|
249
|
+
return y(
|
|
250
|
+
e,
|
|
251
|
+
r,
|
|
252
|
+
o,
|
|
253
|
+
!0,
|
|
254
|
+
l ? Error("react-stack-top-frame") : U,
|
|
255
|
+
l ? Y(i(e)) : V
|
|
256
|
+
);
|
|
257
|
+
};
|
|
258
|
+
})()), S;
|
|
259
|
+
}
|
|
260
|
+
var X;
|
|
261
|
+
function ie() {
|
|
262
|
+
return X || (X = 1, process.env.NODE_ENV === "production" ? N.exports = le() : N.exports = ue()), N.exports;
|
|
263
|
+
}
|
|
264
|
+
var f = ie(), I = { exports: {} };
|
|
265
|
+
var z;
|
|
266
|
+
function _e() {
|
|
267
|
+
return z || (z = 1, (function(s) {
|
|
268
|
+
(function() {
|
|
269
|
+
var b = {}.hasOwnProperty;
|
|
270
|
+
function c() {
|
|
271
|
+
for (var n = "", t = 0; t < arguments.length; t++) {
|
|
272
|
+
var _ = arguments[t];
|
|
273
|
+
_ && (n = a(n, i(_)));
|
|
274
|
+
}
|
|
275
|
+
return n;
|
|
276
|
+
}
|
|
277
|
+
function i(n) {
|
|
278
|
+
if (typeof n == "string" || typeof n == "number")
|
|
279
|
+
return n;
|
|
280
|
+
if (typeof n != "object")
|
|
281
|
+
return "";
|
|
282
|
+
if (Array.isArray(n))
|
|
283
|
+
return c.apply(null, n);
|
|
284
|
+
if (n.toString !== Object.prototype.toString && !n.toString.toString().includes("[native code]"))
|
|
285
|
+
return n.toString();
|
|
286
|
+
var t = "";
|
|
287
|
+
for (var _ in n)
|
|
288
|
+
b.call(n, _) && n[_] && (t = a(t, _));
|
|
289
|
+
return t;
|
|
290
|
+
}
|
|
291
|
+
function a(n, t) {
|
|
292
|
+
return t ? n ? n + " " + t : n + t : n;
|
|
293
|
+
}
|
|
294
|
+
s.exports ? (c.default = c, s.exports = c) : window.classNames = c;
|
|
295
|
+
})();
|
|
296
|
+
})(I)), I.exports;
|
|
297
|
+
}
|
|
298
|
+
var ce = _e();
|
|
299
|
+
const O = /* @__PURE__ */ ae(ce), be = "_spin_1n4i9_1", g = {
|
|
300
|
+
"sb-button-component": "_sb-button-component_1n4i9_1",
|
|
301
|
+
"sb-button": "_sb-button_1n4i9_1",
|
|
302
|
+
"sb-button--loading": "_sb-button--loading_1n4i9_16",
|
|
303
|
+
"sb-button--sm": "_sb-button--sm_1n4i9_20",
|
|
304
|
+
"sb-button--md": "_sb-button--md_1n4i9_25",
|
|
305
|
+
"sb-button--lg": "_sb-button--lg_1n4i9_30",
|
|
306
|
+
"sb-button--icon-only": "_sb-button--icon-only_1n4i9_35",
|
|
307
|
+
"sb-button--primary": "_sb-button--primary_1n4i9_47",
|
|
308
|
+
"sb-button--secondary": "_sb-button--secondary_1n4i9_56",
|
|
309
|
+
"sb-button--outline": "_sb-button--outline_1n4i9_65",
|
|
310
|
+
"sb-button--text": "_sb-button--text_1n4i9_73",
|
|
311
|
+
"sb-button--danger": "_sb-button--danger_1n4i9_81",
|
|
312
|
+
"sb-button__spinner": "_sb-button__spinner_1n4i9_89",
|
|
313
|
+
spin: be
|
|
314
|
+
}, pe = ({ children: s, variant: b = "primary", size: c = "md", isLoading: i = !1, startIcon: a, endIcon: n, icon: t, iconPosition: _ = "left", customColor: E, className: R, disabled: y, style: v, ...T }) => {
|
|
315
|
+
const m = B.Children.count(s) > 0, p = !m && !!(t || a || n), x = a || (t && _ === "left" ? t : null), j = n || (t && _ === "right" ? t : null), w = O(g["sb-button-component"], g["sb-button"], g[`sb-button--${b}`], g[`sb-button--${c}`], {
|
|
316
|
+
[g["sb-button--loading"]]: i,
|
|
317
|
+
[g["sb-button--icon-only"]]: p
|
|
318
|
+
}, R), P = E ? { ...v, backgroundColor: E, borderColor: E, color: "#fff" } : v;
|
|
319
|
+
return f.jsxs("button", { className: w, disabled: y || i, style: P, ...T, children: [i && f.jsx("span", { className: g["sb-button__spinner"], "aria-hidden": "true" }), !i && !p && x && f.jsx("span", { className: g.icon, children: x }), m && f.jsx("span", { children: s }), !i && !p && j && f.jsx("span", { className: g.icon, children: j }), !i && p && (t || a || n)] });
|
|
320
|
+
}, de = "_spin_1433u_1", fe = "_bounce_1433u_1", d = {
|
|
321
|
+
"sb-loading-component": "_sb-loading-component_1433u_1",
|
|
322
|
+
"sb-loading": "_sb-loading_1433u_1",
|
|
323
|
+
"sb-loading--overlay": "_sb-loading--overlay_1433u_10",
|
|
324
|
+
"sb-loading--fullscreen": "_sb-loading--fullscreen_1433u_19",
|
|
325
|
+
"sb-loading--blur": "_sb-loading--blur_1433u_28",
|
|
326
|
+
"sb-loading__spinner": "_sb-loading__spinner_1433u_31",
|
|
327
|
+
spin: de,
|
|
328
|
+
"sb-loading__spinner--sm": "_sb-loading__spinner--sm_1433u_39",
|
|
329
|
+
"sb-loading__spinner--md": "_sb-loading__spinner--md_1433u_44",
|
|
330
|
+
"sb-loading__spinner--lg": "_sb-loading__spinner--lg_1433u_49",
|
|
331
|
+
"sb-loading__dots": "_sb-loading__dots_1433u_54",
|
|
332
|
+
bounce: fe,
|
|
333
|
+
"sb-loading__dots--sm": "_sb-loading__dots--sm_1433u_70",
|
|
334
|
+
"sb-loading__dots--md": "_sb-loading__dots--md_1433u_74",
|
|
335
|
+
"sb-loading__dots--lg": "_sb-loading__dots--lg_1433u_78",
|
|
336
|
+
"sb-loading__custom--sm": "_sb-loading__custom--sm_1433u_82",
|
|
337
|
+
"sb-loading__custom--md": "_sb-loading__custom--md_1433u_85",
|
|
338
|
+
"sb-loading__custom--lg": "_sb-loading__custom--lg_1433u_88",
|
|
339
|
+
"sb-loading__message": "_sb-loading__message_1433u_91",
|
|
340
|
+
"sb-loading__message--sm": "_sb-loading__message--sm_1433u_95",
|
|
341
|
+
"sb-loading__message--lg": "_sb-loading__message--lg_1433u_98"
|
|
342
|
+
}, ge = ({ variant: s = "spinner", size: b = "md", color: c, message: i, src: a, overlay: n = !1, fullScreen: t = !1, blur: _ = !1, className: E, style: R }) => {
|
|
343
|
+
const y = O(d["sb-loading-component"], d["sb-loading"], {
|
|
344
|
+
[d["sb-loading--overlay"]]: n && !t,
|
|
345
|
+
[d["sb-loading--fullscreen"]]: t,
|
|
346
|
+
[d["sb-loading--blur"]]: _ && (n || t)
|
|
347
|
+
}, E), v = O(d["sb-loading__spinner"], d[`sb-loading__spinner--${b}`]), T = O(d["sb-loading__dots"], d[`sb-loading__dots--${b}`]), m = O(d["sb-loading__custom"], d[`sb-loading__custom--${b}`]), p = O(d["sb-loading__message"], d[`sb-loading__message--${b}`]), x = c ? { ...R, color: c } : R;
|
|
348
|
+
return f.jsxs("div", { className: y, style: x, role: "status", "aria-busy": "true", children: [s === "spinner" && f.jsx("div", { className: v, "aria-hidden": "true" }), s === "dots" && f.jsxs("div", { className: T, children: [f.jsx("span", {}), f.jsx("span", {}), f.jsx("span", {})] }), s === "custom" && a && f.jsx("img", { src: a, alt: "Loading...", className: m }), i && f.jsx("span", { className: p, children: i })] });
|
|
349
|
+
};
|
|
350
|
+
export {
|
|
351
|
+
pe as Button,
|
|
352
|
+
ge as Loading
|
|
353
|
+
};
|