@szum-tech/design-system 1.4.0 → 1.5.1
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/components/Avatar/index.d.ts +33 -0
- package/components/Avatar/index.js +8 -0
- package/components/Avatar/index.mjs +6 -0
- package/components/Button/index.d.ts +44 -0
- package/components/Button/index.js +29 -0
- package/components/Button/index.mjs +7 -0
- package/components/index.d.ts +72 -0
- package/components/index.js +25 -0
- package/components/index.mjs +3 -0
- package/contexts/index.d.ts +27 -0
- package/contexts/index.js +12 -0
- package/contexts/index.mjs +1 -0
- package/contexts/theme/index.d.ts +27 -0
- package/contexts/theme/index.js +13 -0
- package/contexts/theme/index.mjs +6 -0
- package/hooks/index.d.ts +11 -0
- package/hooks/index.js +12 -0
- package/hooks/index.mjs +1 -0
- package/hooks/useTheme/index.d.ts +11 -0
- package/hooks/useTheme/index.js +11 -0
- package/hooks/useTheme/index.mjs +5 -0
- package/package.json +36 -29
- package/dist/index.d.ts +0 -71
- package/dist/index.js +0 -215
- package/dist/index.mjs +0 -186
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as class_variance_authority_dist_types from 'class-variance-authority/dist/types';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
|
|
5
|
+
declare const avatarCva: (props?: ({
|
|
6
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
7
|
+
} & class_variance_authority_dist_types.ClassProp) | undefined) => string;
|
|
8
|
+
|
|
9
|
+
type AvatarCvaProps = VariantProps<typeof avatarCva>;
|
|
10
|
+
type AvatarSizeType = NonNullable<AvatarCvaProps["size"]>;
|
|
11
|
+
|
|
12
|
+
type AvatarProps = React.ComponentPropsWithoutRef<"div"> & {
|
|
13
|
+
/**
|
|
14
|
+
* Defines avatar image alt
|
|
15
|
+
*/
|
|
16
|
+
alt?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Defines background color
|
|
19
|
+
*/
|
|
20
|
+
bg?: `bg-${string}` | `bg-${string}-${number}`;
|
|
21
|
+
/**
|
|
22
|
+
* Defines avatar size
|
|
23
|
+
* @default 'md'
|
|
24
|
+
*/
|
|
25
|
+
size?: AvatarSizeType;
|
|
26
|
+
/**
|
|
27
|
+
* Defines avatar image src
|
|
28
|
+
*/
|
|
29
|
+
src?: string;
|
|
30
|
+
};
|
|
31
|
+
declare function Avatar({ alt, bg, children, size, src, ...props }: AvatarProps): JSX.Element;
|
|
32
|
+
|
|
33
|
+
export { AvatarProps, AvatarSizeType, Avatar as default };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
|
|
6
|
+
var e=classVarianceAuthority.cva("select-none rounded font-semibold leading-none justify-center flex items-center bg-gray-500 text-white dark:text-black",{variants:{size:{sm:"h-6 w-6 text-lg",md:"h-10 w-10 text-xl",lg:"h-14 w-14 text-2xl"}},defaultVariants:{size:"md"}});function a({alt:o,bg:s,children:i,size:n="md",src:t,...l}){let m=e({size:n,className:s});return jsxRuntime.jsx("div",{className:m,...l,children:t?jsxRuntime.jsx("img",{className:"h-full w-full rounded object-cover object-center",alt:o,src:t}):i})}
|
|
7
|
+
|
|
8
|
+
module.exports = a;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { cva } from 'class-variance-authority';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
var e=cva("select-none rounded font-semibold leading-none justify-center flex items-center bg-gray-500 text-white dark:text-black",{variants:{size:{sm:"h-6 w-6 text-lg",md:"h-10 w-10 text-xl",lg:"h-14 w-14 text-2xl"}},defaultVariants:{size:"md"}});function a({alt:o,bg:s,children:i,size:n="md",src:t,...l}){let m=e({size:n,className:s});return jsx("div",{className:m,...l,children:t?jsx("img",{className:"h-full w-full rounded object-cover object-center",alt:o,src:t}):i})}
|
|
5
|
+
|
|
6
|
+
export { a as default };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { VariantProps } from 'class-variance-authority';
|
|
3
|
+
import * as class_variance_authority_dist_types from 'class-variance-authority/dist/types';
|
|
4
|
+
|
|
5
|
+
declare const buttonCva: (props?: ({
|
|
6
|
+
color?: "neutral" | "primary" | "success" | "warning" | "error" | null | undefined;
|
|
7
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
8
|
+
variant?: "text" | "outlined" | "contained" | null | undefined;
|
|
9
|
+
} & class_variance_authority_dist_types.ClassProp) | undefined) => string;
|
|
10
|
+
|
|
11
|
+
type ButtonCvaProps = VariantProps<typeof buttonCva>;
|
|
12
|
+
type ButtonSizeType = NonNullable<ButtonCvaProps["size"]>;
|
|
13
|
+
type ButtonVariantType = NonNullable<ButtonCvaProps["variant"]>;
|
|
14
|
+
type ButtonColorType = NonNullable<ButtonCvaProps["color"]>;
|
|
15
|
+
|
|
16
|
+
type AsProp<C extends React.ElementType> = {
|
|
17
|
+
/**
|
|
18
|
+
* Defines HTML tag to be used for component
|
|
19
|
+
*/
|
|
20
|
+
as?: C;
|
|
21
|
+
};
|
|
22
|
+
type PropsToOmit<C extends React.ElementType, P> = keyof (AsProp<C> & P);
|
|
23
|
+
type PolymorphicComponentProp<C extends React.ElementType, Props = {}> = React.PropsWithChildren<Props & AsProp<C>> & Omit<React.ComponentPropsWithoutRef<C>, PropsToOmit<C, Props>>;
|
|
24
|
+
|
|
25
|
+
type ButtonProp = {
|
|
26
|
+
/**
|
|
27
|
+
* Defines button color
|
|
28
|
+
* @default 'primary'
|
|
29
|
+
*/
|
|
30
|
+
color?: ButtonColorType;
|
|
31
|
+
/**
|
|
32
|
+
* Defines button variant
|
|
33
|
+
* @default 'text'
|
|
34
|
+
*/
|
|
35
|
+
variant?: ButtonVariantType;
|
|
36
|
+
/**
|
|
37
|
+
* Defines button size
|
|
38
|
+
* @default 'md'
|
|
39
|
+
*/
|
|
40
|
+
size?: ButtonSizeType;
|
|
41
|
+
};
|
|
42
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<PolymorphicComponentProp<React.ElementType<any>, ButtonProp>, string | number | symbol> & React.RefAttributes<unknown>>;
|
|
43
|
+
|
|
44
|
+
export { _default as default };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var e = require('react');
|
|
4
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
function _interopNamespace(e) {
|
|
8
|
+
if (e && e.__esModule) return e;
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var e__namespace = /*#__PURE__*/_interopNamespace(e);
|
|
26
|
+
|
|
27
|
+
var r=classVarianceAuthority.cva("border rounded font-sans font-medium leading-[1.75] tracking-[.02857em]",{variants:{color:{neutral:"",primary:"",success:"",warning:"",error:""},size:{sm:"py-1 px-2.5 text-[.8125rem]",md:"px-4 py-1.5 text-sm",lg:"px-5 py-2 text-[.9375rem]"},variant:{text:"border-transparent bg-transparent hover:text-white",outlined:"",contained:""}},compoundVariants:[{variant:"text",color:"neutral",class:["text-gray-400","hover:border-gray-400 hover:bg-gray-400","active:text-white active:border-gray-300 active:bg-gray-300","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-gray-400"]},{variant:"text",color:"primary",class:["text-primary-500","hover:border-primary-400 hover:bg-primary-400","active:text-white active:border-primary-600 active:bg-primary-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-primary-500"]},{variant:"text",color:"success",class:["text-success-500","hover:border-success-400 hover:bg-success-400","active:text-white active:border-success-600 active:bg-success-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-success-500"]},{variant:"text",color:"warning",class:["text-warning-500","hover:border-warning-400 hover:bg-warning-400","active:text-white active:border-warning-600 active:bg-warning-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-warning-500"]},{variant:"text",color:"error",class:["text-error-500","hover:border-error-400 hover:bg-error-400","active:text-white active:border-error-600 active:bg-error-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-error-500"]},{variant:"outlined",color:"neutral",class:["text-gray-400 border-gray-400 bg-transparent","hover:bg-gray-500 hover:text-white","active:text-white active:bg-gray-300","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-gray-400"]},{variant:"outlined",color:"primary",class:["text-primary-500 border-primary-500 bg-transparent","hover:bg-primary-400 hover:text-white","active:text-white active:bg-primary-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-primary-500"]},{variant:"outlined",color:"success",class:["text-success-500 border-success-500 bg-transparent","hover:bg-success-400 hover:text-white","active:text-white active:bg-success-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-success-500"]},{variant:"outlined",color:"warning",class:["text-warning-500 border-warning-500 bg-transparent","hover:bg-warning-400 hover:text-white","active:text-white active:bg-warning-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-warning-500"]},{variant:"outlined",color:"error",class:["text-error-500 border-error-500 bg-transparent","hover:bg-error-400 hover:text-white","active:text-white active:bg-error-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-error-500"]}]});var v=e__namespace.forwardRef(function({as:t,color:a="primary",children:o,size:i="md",variant:s="text",...n},d){let c=t||"button",l=r({size:i,variant:s,color:a});return jsxRuntime.jsx(c,{className:l,ref:d,...n,children:o})});
|
|
28
|
+
|
|
29
|
+
module.exports = v;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as e from 'react';
|
|
2
|
+
import { cva } from 'class-variance-authority';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var r=cva("border rounded font-sans font-medium leading-[1.75] tracking-[.02857em]",{variants:{color:{neutral:"",primary:"",success:"",warning:"",error:""},size:{sm:"py-1 px-2.5 text-[.8125rem]",md:"px-4 py-1.5 text-sm",lg:"px-5 py-2 text-[.9375rem]"},variant:{text:"border-transparent bg-transparent hover:text-white",outlined:"",contained:""}},compoundVariants:[{variant:"text",color:"neutral",class:["text-gray-400","hover:border-gray-400 hover:bg-gray-400","active:text-white active:border-gray-300 active:bg-gray-300","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-gray-400"]},{variant:"text",color:"primary",class:["text-primary-500","hover:border-primary-400 hover:bg-primary-400","active:text-white active:border-primary-600 active:bg-primary-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-primary-500"]},{variant:"text",color:"success",class:["text-success-500","hover:border-success-400 hover:bg-success-400","active:text-white active:border-success-600 active:bg-success-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-success-500"]},{variant:"text",color:"warning",class:["text-warning-500","hover:border-warning-400 hover:bg-warning-400","active:text-white active:border-warning-600 active:bg-warning-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-warning-500"]},{variant:"text",color:"error",class:["text-error-500","hover:border-error-400 hover:bg-error-400","active:text-white active:border-error-600 active:bg-error-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-error-500"]},{variant:"outlined",color:"neutral",class:["text-gray-400 border-gray-400 bg-transparent","hover:bg-gray-500 hover:text-white","active:text-white active:bg-gray-300","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-gray-400"]},{variant:"outlined",color:"primary",class:["text-primary-500 border-primary-500 bg-transparent","hover:bg-primary-400 hover:text-white","active:text-white active:bg-primary-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-primary-500"]},{variant:"outlined",color:"success",class:["text-success-500 border-success-500 bg-transparent","hover:bg-success-400 hover:text-white","active:text-white active:bg-success-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-success-500"]},{variant:"outlined",color:"warning",class:["text-warning-500 border-warning-500 bg-transparent","hover:bg-warning-400 hover:text-white","active:text-white active:bg-warning-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-warning-500"]},{variant:"outlined",color:"error",class:["text-error-500 border-error-500 bg-transparent","hover:bg-error-400 hover:text-white","active:text-white active:bg-error-600","disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-error-500"]}]});var v=e.forwardRef(function({as:t,color:a="primary",children:o,size:i="md",variant:s="text",...n},d){let c=t||"button",l=r({size:i,variant:s,color:a});return jsx(c,{className:l,ref:d,...n,children:o})});
|
|
6
|
+
|
|
7
|
+
export { v as default };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as class_variance_authority_dist_types from 'class-variance-authority/dist/types';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
|
|
5
|
+
declare const avatarCva: (props?: ({
|
|
6
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
7
|
+
} & class_variance_authority_dist_types.ClassProp) | undefined) => string;
|
|
8
|
+
|
|
9
|
+
type AvatarCvaProps = VariantProps<typeof avatarCva>;
|
|
10
|
+
type AvatarSizeType = NonNullable<AvatarCvaProps["size"]>;
|
|
11
|
+
|
|
12
|
+
type AvatarProps = React.ComponentPropsWithoutRef<"div"> & {
|
|
13
|
+
/**
|
|
14
|
+
* Defines avatar image alt
|
|
15
|
+
*/
|
|
16
|
+
alt?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Defines background color
|
|
19
|
+
*/
|
|
20
|
+
bg?: `bg-${string}` | `bg-${string}-${number}`;
|
|
21
|
+
/**
|
|
22
|
+
* Defines avatar size
|
|
23
|
+
* @default 'md'
|
|
24
|
+
*/
|
|
25
|
+
size?: AvatarSizeType;
|
|
26
|
+
/**
|
|
27
|
+
* Defines avatar image src
|
|
28
|
+
*/
|
|
29
|
+
src?: string;
|
|
30
|
+
};
|
|
31
|
+
declare function Avatar({ alt, bg, children, size, src, ...props }: AvatarProps): JSX.Element;
|
|
32
|
+
|
|
33
|
+
declare const buttonCva: (props?: ({
|
|
34
|
+
color?: "neutral" | "primary" | "success" | "warning" | "error" | null | undefined;
|
|
35
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
36
|
+
variant?: "text" | "outlined" | "contained" | null | undefined;
|
|
37
|
+
} & class_variance_authority_dist_types.ClassProp) | undefined) => string;
|
|
38
|
+
|
|
39
|
+
type ButtonCvaProps = VariantProps<typeof buttonCva>;
|
|
40
|
+
type ButtonSizeType = NonNullable<ButtonCvaProps["size"]>;
|
|
41
|
+
type ButtonVariantType = NonNullable<ButtonCvaProps["variant"]>;
|
|
42
|
+
type ButtonColorType = NonNullable<ButtonCvaProps["color"]>;
|
|
43
|
+
|
|
44
|
+
type AsProp<C extends React.ElementType> = {
|
|
45
|
+
/**
|
|
46
|
+
* Defines HTML tag to be used for component
|
|
47
|
+
*/
|
|
48
|
+
as?: C;
|
|
49
|
+
};
|
|
50
|
+
type PropsToOmit<C extends React.ElementType, P> = keyof (AsProp<C> & P);
|
|
51
|
+
type PolymorphicComponentProp<C extends React.ElementType, Props = {}> = React.PropsWithChildren<Props & AsProp<C>> & Omit<React.ComponentPropsWithoutRef<C>, PropsToOmit<C, Props>>;
|
|
52
|
+
|
|
53
|
+
type ButtonProp = {
|
|
54
|
+
/**
|
|
55
|
+
* Defines button color
|
|
56
|
+
* @default 'primary'
|
|
57
|
+
*/
|
|
58
|
+
color?: ButtonColorType;
|
|
59
|
+
/**
|
|
60
|
+
* Defines button variant
|
|
61
|
+
* @default 'text'
|
|
62
|
+
*/
|
|
63
|
+
variant?: ButtonVariantType;
|
|
64
|
+
/**
|
|
65
|
+
* Defines button size
|
|
66
|
+
* @default 'md'
|
|
67
|
+
*/
|
|
68
|
+
size?: ButtonSizeType;
|
|
69
|
+
};
|
|
70
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<PolymorphicComponentProp<React.ElementType<any>, ButtonProp>, string | number | symbol> & React.RefAttributes<unknown>>;
|
|
71
|
+
|
|
72
|
+
export { Avatar, AvatarProps, AvatarSizeType, _default as Button };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Avatar = require('./Avatar');
|
|
4
|
+
var Button = require('./Button');
|
|
5
|
+
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var Button__default = /*#__PURE__*/_interopDefault(Button);
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Object.defineProperty(exports, 'Avatar', {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return Avatar__namespace.default; }
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, 'Button', {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return Button__default.default; }
|
|
19
|
+
});
|
|
20
|
+
Object.keys(Avatar).forEach(function (k) {
|
|
21
|
+
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return Avatar[k]; }
|
|
24
|
+
});
|
|
25
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
type ThemeType = "light" | "dark";
|
|
4
|
+
interface ThemeContextType {
|
|
5
|
+
theme: ThemeType;
|
|
6
|
+
setTheme: React.Dispatch<React.SetStateAction<ThemeType>>;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare const ThemeContext: React.Context<ThemeContextType>;
|
|
10
|
+
|
|
11
|
+
interface ThemeProviderProps {
|
|
12
|
+
/**
|
|
13
|
+
* Children Components using theming.
|
|
14
|
+
*/
|
|
15
|
+
children?: React.ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Define the default theme which is set at the beginning if neither local storage nor media is defined.
|
|
18
|
+
*/
|
|
19
|
+
defaultTheme?: ThemeType;
|
|
20
|
+
/**
|
|
21
|
+
* Define theme that is always set initially.
|
|
22
|
+
*/
|
|
23
|
+
theme?: ThemeType;
|
|
24
|
+
}
|
|
25
|
+
declare function ThemeProvider({ children, defaultTheme, theme }: ThemeProviderProps): JSX.Element;
|
|
26
|
+
|
|
27
|
+
export { ThemeContext, ThemeContextType, ThemeProvider, ThemeProviderProps, ThemeType };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var theme = require('./theme');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.keys(theme).forEach(function (k) {
|
|
8
|
+
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return theme[k]; }
|
|
11
|
+
});
|
|
12
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './theme';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
type ThemeType = "light" | "dark";
|
|
4
|
+
interface ThemeContextType {
|
|
5
|
+
theme: ThemeType;
|
|
6
|
+
setTheme: React.Dispatch<React.SetStateAction<ThemeType>>;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare const ThemeContext: React.Context<ThemeContextType>;
|
|
10
|
+
|
|
11
|
+
interface ThemeProviderProps {
|
|
12
|
+
/**
|
|
13
|
+
* Children Components using theming.
|
|
14
|
+
*/
|
|
15
|
+
children?: React.ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Define the default theme which is set at the beginning if neither local storage nor media is defined.
|
|
18
|
+
*/
|
|
19
|
+
defaultTheme?: ThemeType;
|
|
20
|
+
/**
|
|
21
|
+
* Define theme that is always set initially.
|
|
22
|
+
*/
|
|
23
|
+
theme?: ThemeType;
|
|
24
|
+
}
|
|
25
|
+
declare function ThemeProvider({ children, defaultTheme, theme }: ThemeProviderProps): JSX.Element;
|
|
26
|
+
|
|
27
|
+
export { ThemeContext, ThemeContextType, ThemeProvider, ThemeProviderProps, ThemeType };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var a = require('react');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var a__default = /*#__PURE__*/_interopDefault(a);
|
|
9
|
+
|
|
10
|
+
var n=a__default.default.createContext({});function T(t){if(typeof window<"u"&&window.localStorage){let e=window.localStorage.getItem("theme");if(e==="dark"||!e&&window.matchMedia("(prefers-color-scheme: dark)").matches)return "dark"}return t??"light"}function u({children:t,defaultTheme:e,theme:r}){let[o,i]=a__default.default.useState(r||T(e));function d(m){typeof window<"u"&&window.localStorage&&(m==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark"),localStorage.setItem("theme",m));}return a__default.default.useEffect(()=>{d(o);},[o]),jsxRuntime.jsx(n.Provider,{value:{theme:o,setTheme:i},children:t})}
|
|
11
|
+
|
|
12
|
+
exports.ThemeContext = n;
|
|
13
|
+
exports.ThemeProvider = u;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import a from 'react';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
var n=a.createContext({});function T(t){if(typeof window<"u"&&window.localStorage){let e=window.localStorage.getItem("theme");if(e==="dark"||!e&&window.matchMedia("(prefers-color-scheme: dark)").matches)return "dark"}return t??"light"}function u({children:t,defaultTheme:e,theme:r}){let[o,i]=a.useState(r||T(e));function d(m){typeof window<"u"&&window.localStorage&&(m==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark"),localStorage.setItem("theme",m));}return a.useEffect(()=>{d(o);},[o]),jsx(n.Provider,{value:{theme:o,setTheme:i},children:t})}
|
|
5
|
+
|
|
6
|
+
export { n as ThemeContext, u as ThemeProvider };
|
package/hooks/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
type ThemeType = "light" | "dark";
|
|
4
|
+
interface ThemeContextType {
|
|
5
|
+
theme: ThemeType;
|
|
6
|
+
setTheme: React.Dispatch<React.SetStateAction<ThemeType>>;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare const useTheme: () => ThemeContextType;
|
|
10
|
+
|
|
11
|
+
export { useTheme };
|
package/hooks/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var useTheme = require('./useTheme');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.keys(useTheme).forEach(function (k) {
|
|
8
|
+
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return useTheme[k]; }
|
|
11
|
+
});
|
|
12
|
+
});
|
package/hooks/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useTheme';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
type ThemeType = "light" | "dark";
|
|
4
|
+
interface ThemeContextType {
|
|
5
|
+
theme: ThemeType;
|
|
6
|
+
setTheme: React.Dispatch<React.SetStateAction<ThemeType>>;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare const useTheme: () => ThemeContextType;
|
|
10
|
+
|
|
11
|
+
export { useTheme };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var t = require('react');
|
|
4
|
+
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var t__default = /*#__PURE__*/_interopDefault(t);
|
|
8
|
+
|
|
9
|
+
var e=t__default.default.createContext({});var T=()=>t__default.default.useContext(e);
|
|
10
|
+
|
|
11
|
+
exports.useTheme = T;
|
package/package.json
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
},
|
|
6
6
|
"description": "Szum-Tech design system with tailwindcss support",
|
|
7
7
|
"dependencies": {
|
|
8
|
+
"@heroicons/react": "^2.0.15",
|
|
8
9
|
"class-variance-authority": "^0.4.0",
|
|
9
|
-
"tailwindcss": "^3.2.
|
|
10
|
+
"tailwindcss": "^3.2.7"
|
|
10
11
|
},
|
|
11
12
|
"devDependencies": {
|
|
12
13
|
"@babel/core": "^7.19.6",
|
|
@@ -16,19 +17,17 @@
|
|
|
16
17
|
"@semantic-release/github": "^8.0.6",
|
|
17
18
|
"@semantic-release/npm": "^9.0.1",
|
|
18
19
|
"@semantic-release/release-notes-generator": "^10.0.3",
|
|
19
|
-
"@storybook/addon-
|
|
20
|
-
"@storybook/addon-
|
|
21
|
-
"@storybook/addon-
|
|
22
|
-
"@storybook/addon-
|
|
23
|
-
"@storybook/addon-links": "^
|
|
24
|
-
"@storybook/
|
|
25
|
-
"@storybook/
|
|
26
|
-
"@storybook/
|
|
27
|
-
"@storybook/
|
|
28
|
-
"@storybook/
|
|
29
|
-
"@storybook/
|
|
30
|
-
"@storybook/testing-library": "^0.0.13",
|
|
31
|
-
"@storybook/theming": "^6.5.13",
|
|
20
|
+
"@storybook/addon-a11y": "^7.0.0-beta.47",
|
|
21
|
+
"@storybook/addon-actions": "^7.0.0-beta.47",
|
|
22
|
+
"@storybook/addon-docs": "^7.0.0-beta.47",
|
|
23
|
+
"@storybook/addon-essentials": "^7.0.0-beta.47",
|
|
24
|
+
"@storybook/addon-links": "^7.0.0-beta.47",
|
|
25
|
+
"@storybook/addons": "^7.0.0-beta.47",
|
|
26
|
+
"@storybook/core-common": "^6.5.16",
|
|
27
|
+
"@storybook/core-events": "^6.5.16",
|
|
28
|
+
"@storybook/react": "^7.0.0-beta.47",
|
|
29
|
+
"@storybook/react-vite": "^7.0.0-beta.47",
|
|
30
|
+
"@storybook/theming": "^7.0.0-beta.47",
|
|
32
31
|
"@tailwindcss/container-queries": "^0.1.0",
|
|
33
32
|
"@testing-library/react": "^13.4.0",
|
|
34
33
|
"@testing-library/user-event": "^14.4.3",
|
|
@@ -36,9 +35,10 @@
|
|
|
36
35
|
"@types/react": "^18.0.24",
|
|
37
36
|
"@types/react-dom": "^18.0.8",
|
|
38
37
|
"@types/semantic-release": "^17.2.4",
|
|
38
|
+
"@vitejs/plugin-react": "^3.1.0",
|
|
39
39
|
"autoprefixer": "^10.4.13",
|
|
40
40
|
"babel-loader": "^8.2.5",
|
|
41
|
-
"concurrently": "^7.
|
|
41
|
+
"concurrently": "^7.6.0",
|
|
42
42
|
"cpy-cli": "^4.2.0",
|
|
43
43
|
"postcss": "^8.4.18",
|
|
44
44
|
"prettier": "^2.7.1",
|
|
@@ -48,13 +48,19 @@
|
|
|
48
48
|
"react-docgen-typescript": "^2.2.2",
|
|
49
49
|
"react-dom": "^18.2.0",
|
|
50
50
|
"semantic-release": "^19.0.5",
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
51
|
+
"serve": "^14.2.0",
|
|
52
|
+
"storybook": "^7.0.0-beta.47",
|
|
53
|
+
"storybook-addon-pseudo-states": "^2.0.0-next.0",
|
|
54
|
+
"storybook-addon-themes": "^6.1.0",
|
|
55
|
+
"tailwind-scrollbar": "^2.1.0",
|
|
56
|
+
"tsup": "^6.6.3",
|
|
57
|
+
"typescript": "^4.9.5",
|
|
58
|
+
"vite": "^4.1.2"
|
|
55
59
|
},
|
|
56
60
|
"files": [
|
|
57
|
-
"
|
|
61
|
+
"components/**",
|
|
62
|
+
"hooks/**",
|
|
63
|
+
"contexts/**",
|
|
58
64
|
"tailwindcss/**"
|
|
59
65
|
],
|
|
60
66
|
"homepage": "https://github.com/JanSzewczyk/design-system#readme",
|
|
@@ -72,9 +78,9 @@
|
|
|
72
78
|
"semantic-release"
|
|
73
79
|
],
|
|
74
80
|
"license": "MIT",
|
|
75
|
-
"main": "./
|
|
81
|
+
"main": "./index.js",
|
|
76
82
|
"name": "@szum-tech/design-system",
|
|
77
|
-
"module": "./
|
|
83
|
+
"module": "./index.mjs",
|
|
78
84
|
"publishConfig": {
|
|
79
85
|
"access": "public"
|
|
80
86
|
},
|
|
@@ -83,20 +89,21 @@
|
|
|
83
89
|
"url": "git+https://github.com/JanSzewczyk/design-system.git"
|
|
84
90
|
},
|
|
85
91
|
"scripts": {
|
|
86
|
-
"build": "tsup
|
|
92
|
+
"build": "tsup",
|
|
93
|
+
"typecheck": "tsc --noEmit",
|
|
87
94
|
"clean": "rm -rf node_modules && rm -rf dist",
|
|
88
95
|
"dev": "concurrently \"npm run dev:css\" \"npm run dev:build\"",
|
|
89
96
|
"dev:build": "tsup src/index.tsx --format esm,cjs --watch --dts --external react,react-dom",
|
|
90
97
|
"dev:css": "tailwindcss -w -i tailwindcss/global.css -o src/styles/default.css",
|
|
91
|
-
"storybook": "start-storybook -p 6006",
|
|
92
98
|
"semantic-release": "semantic-release",
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
99
|
+
"storybook": "storybook dev -p 6006 -s public",
|
|
100
|
+
"storybook:prebuild": "tailwindcss -i tailwindcss/global.css -o src/styles/default.css",
|
|
101
|
+
"storybook:build": "storybook build --docs",
|
|
102
|
+
"storybook:serve": "serve storybook-static"
|
|
96
103
|
},
|
|
97
104
|
"sideEffects": false,
|
|
98
|
-
"types": "./
|
|
99
|
-
"version": "1.
|
|
105
|
+
"types": "./index.d.ts",
|
|
106
|
+
"version": "1.5.1",
|
|
100
107
|
"peerDependencies": {
|
|
101
108
|
"@tailwindcss/container-queries": "^0.1.0",
|
|
102
109
|
"react": "^18.2.0",
|
package/dist/index.d.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
import { VariantProps } from 'class-variance-authority';
|
|
4
|
-
import * as class_variance_authority_dist_types from 'class-variance-authority/dist/types';
|
|
5
|
-
|
|
6
|
-
declare const buttonCva: (props?: ({
|
|
7
|
-
color?: "neutral" | "primary" | "success" | "warning" | "error" | null | undefined;
|
|
8
|
-
size?: "sm" | "md" | "lg" | null | undefined;
|
|
9
|
-
variant?: "text" | "outlined" | "contained" | null | undefined;
|
|
10
|
-
} & class_variance_authority_dist_types.ClassProp) | undefined) => string;
|
|
11
|
-
|
|
12
|
-
declare type ButtonCvaProps = VariantProps<typeof buttonCva>;
|
|
13
|
-
declare type ButtonSizeType = NonNullable<ButtonCvaProps["size"]>;
|
|
14
|
-
declare type ButtonVariantType = NonNullable<ButtonCvaProps["variant"]>;
|
|
15
|
-
declare type ButtonColorType = NonNullable<ButtonCvaProps["color"]>;
|
|
16
|
-
|
|
17
|
-
declare type AsProp<C extends React.ElementType> = {
|
|
18
|
-
/**
|
|
19
|
-
* Defines HTML tag to be used for component
|
|
20
|
-
*/
|
|
21
|
-
as?: C;
|
|
22
|
-
};
|
|
23
|
-
declare type PropsToOmit<C extends React.ElementType, P> = keyof (AsProp<C> & P);
|
|
24
|
-
declare type PolymorphicComponentProp<C extends React.ElementType, Props = {}> = React.PropsWithChildren<Props & AsProp<C>> & Omit<React.ComponentPropsWithoutRef<C>, PropsToOmit<C, Props>>;
|
|
25
|
-
|
|
26
|
-
declare type ButtonProp = {
|
|
27
|
-
/**
|
|
28
|
-
* Defines button color
|
|
29
|
-
* @default 'primary'
|
|
30
|
-
*/
|
|
31
|
-
color?: ButtonColorType;
|
|
32
|
-
/**
|
|
33
|
-
* Defines button variant
|
|
34
|
-
* @default 'text'
|
|
35
|
-
*/
|
|
36
|
-
variant?: ButtonVariantType;
|
|
37
|
-
/**
|
|
38
|
-
* Defines button size
|
|
39
|
-
* @default 'md'
|
|
40
|
-
*/
|
|
41
|
-
size?: ButtonSizeType;
|
|
42
|
-
};
|
|
43
|
-
declare const _default: React.ForwardRefExoticComponent<Pick<PolymorphicComponentProp<React.ElementType<any>, ButtonProp>, string | number | symbol> & React.RefAttributes<unknown>>;
|
|
44
|
-
|
|
45
|
-
declare type ThemeType = "light" | "dark";
|
|
46
|
-
interface ThemeContextType {
|
|
47
|
-
theme: ThemeType;
|
|
48
|
-
setTheme: React__default.Dispatch<React__default.SetStateAction<ThemeType>>;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
declare const ThemeContext: React__default.Context<ThemeContextType>;
|
|
52
|
-
|
|
53
|
-
interface ThemeProviderProps {
|
|
54
|
-
/**
|
|
55
|
-
* Children Components using theming.
|
|
56
|
-
*/
|
|
57
|
-
children?: React__default.ReactNode;
|
|
58
|
-
/**
|
|
59
|
-
* Define the default theme which is set at the beginning if neither local storage nor media is defined.
|
|
60
|
-
*/
|
|
61
|
-
defaultTheme?: ThemeType;
|
|
62
|
-
/**
|
|
63
|
-
* Define theme that is always set initially.
|
|
64
|
-
*/
|
|
65
|
-
theme?: ThemeType;
|
|
66
|
-
}
|
|
67
|
-
declare function ThemeProvider({ children, defaultTheme, theme }: ThemeProviderProps): JSX.Element;
|
|
68
|
-
|
|
69
|
-
declare const useTheme: () => ThemeContextType;
|
|
70
|
-
|
|
71
|
-
export { _default as Button, ThemeContext, ThemeContextType, ThemeProvider, ThemeProviderProps, ThemeType, useTheme };
|
package/dist/index.js
DELETED
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var React3 = require('react');
|
|
6
|
-
var classVarianceAuthority = require('class-variance-authority');
|
|
7
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
-
|
|
9
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
|
-
|
|
11
|
-
function _interopNamespace(e) {
|
|
12
|
-
if (e && e.__esModule) return e;
|
|
13
|
-
var n = Object.create(null);
|
|
14
|
-
if (e) {
|
|
15
|
-
Object.keys(e).forEach(function (k) {
|
|
16
|
-
if (k !== 'default') {
|
|
17
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
18
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () { return e[k]; }
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
n["default"] = e;
|
|
26
|
-
return Object.freeze(n);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
|
|
30
|
-
var React3__default = /*#__PURE__*/_interopDefaultLegacy(React3);
|
|
31
|
-
|
|
32
|
-
// src/components/Button/Button.tsx
|
|
33
|
-
var buttonCva = classVarianceAuthority.cva(
|
|
34
|
-
"border rounded font-sans font-medium leading-[1.75] tracking-[.02857em]",
|
|
35
|
-
{
|
|
36
|
-
variants: {
|
|
37
|
-
color: {
|
|
38
|
-
neutral: "",
|
|
39
|
-
primary: "",
|
|
40
|
-
success: "",
|
|
41
|
-
warning: "",
|
|
42
|
-
error: ""
|
|
43
|
-
},
|
|
44
|
-
size: {
|
|
45
|
-
sm: "py-1 px-2.5 text-[.8125rem]",
|
|
46
|
-
md: "px-4 py-1.5 text-sm",
|
|
47
|
-
lg: "px-5 py-2 text-[.9375rem]"
|
|
48
|
-
},
|
|
49
|
-
variant: {
|
|
50
|
-
text: "border-transparent bg-transparent hover:text-white",
|
|
51
|
-
outlined: "",
|
|
52
|
-
contained: ""
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
compoundVariants: [
|
|
56
|
-
{
|
|
57
|
-
variant: "text",
|
|
58
|
-
color: "neutral",
|
|
59
|
-
class: [
|
|
60
|
-
"text-gray-400",
|
|
61
|
-
"hover:border-gray-400 hover:bg-gray-400",
|
|
62
|
-
"active:text-white active:border-gray-300 active:bg-gray-300",
|
|
63
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-gray-400"
|
|
64
|
-
]
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
variant: "text",
|
|
68
|
-
color: "primary",
|
|
69
|
-
class: [
|
|
70
|
-
"text-primary-500",
|
|
71
|
-
"hover:border-primary-400 hover:bg-primary-400",
|
|
72
|
-
"active:text-white active:border-primary-600 active:bg-primary-600",
|
|
73
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-primary-500"
|
|
74
|
-
]
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
variant: "text",
|
|
78
|
-
color: "success",
|
|
79
|
-
class: [
|
|
80
|
-
"text-success-500",
|
|
81
|
-
"hover:border-success-400 hover:bg-success-400",
|
|
82
|
-
"active:text-white active:border-success-600 active:bg-success-600",
|
|
83
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-success-500"
|
|
84
|
-
]
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
variant: "text",
|
|
88
|
-
color: "warning",
|
|
89
|
-
class: [
|
|
90
|
-
"text-warning-500",
|
|
91
|
-
"hover:border-warning-400 hover:bg-warning-400",
|
|
92
|
-
"active:text-white active:border-warning-600 active:bg-warning-600",
|
|
93
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-warning-500"
|
|
94
|
-
]
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
variant: "text",
|
|
98
|
-
color: "error",
|
|
99
|
-
class: [
|
|
100
|
-
"text-error-500",
|
|
101
|
-
"hover:border-error-400 hover:bg-error-400",
|
|
102
|
-
"active:text-white active:border-error-600 active:bg-error-600",
|
|
103
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-error-500"
|
|
104
|
-
]
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
variant: "outlined",
|
|
108
|
-
color: "neutral",
|
|
109
|
-
class: [
|
|
110
|
-
"text-gray-400 border-gray-400 bg-transparent",
|
|
111
|
-
"hover:bg-gray-500 hover:text-white",
|
|
112
|
-
"active:text-white active:bg-gray-300",
|
|
113
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-gray-400"
|
|
114
|
-
]
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
variant: "outlined",
|
|
118
|
-
color: "primary",
|
|
119
|
-
class: [
|
|
120
|
-
"text-primary-500 border-primary-500 bg-transparent",
|
|
121
|
-
"hover:bg-primary-400 hover:text-white",
|
|
122
|
-
"active:text-white active:bg-primary-600",
|
|
123
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-primary-500"
|
|
124
|
-
]
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
variant: "outlined",
|
|
128
|
-
color: "success",
|
|
129
|
-
class: [
|
|
130
|
-
"text-success-500 border-success-500 bg-transparent",
|
|
131
|
-
"hover:bg-success-400 hover:text-white",
|
|
132
|
-
"active:text-white active:bg-success-600",
|
|
133
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-success-500"
|
|
134
|
-
]
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
variant: "outlined",
|
|
138
|
-
color: "warning",
|
|
139
|
-
class: [
|
|
140
|
-
"text-warning-500 border-warning-500 bg-transparent",
|
|
141
|
-
"hover:bg-warning-400 hover:text-white",
|
|
142
|
-
"active:text-white active:bg-warning-600",
|
|
143
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-warning-500"
|
|
144
|
-
]
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
variant: "outlined",
|
|
148
|
-
color: "error",
|
|
149
|
-
class: [
|
|
150
|
-
"text-error-500 border-error-500 bg-transparent",
|
|
151
|
-
"hover:bg-error-400 hover:text-white",
|
|
152
|
-
"active:text-white active:bg-error-600",
|
|
153
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-error-500"
|
|
154
|
-
]
|
|
155
|
-
}
|
|
156
|
-
]
|
|
157
|
-
}
|
|
158
|
-
);
|
|
159
|
-
var Button_default = React3__namespace.forwardRef(function({
|
|
160
|
-
as,
|
|
161
|
-
color = "primary",
|
|
162
|
-
children,
|
|
163
|
-
size = "md",
|
|
164
|
-
variant = "text",
|
|
165
|
-
...restProps
|
|
166
|
-
}, ref) {
|
|
167
|
-
const Component = as || "button";
|
|
168
|
-
const buttonRootStyles = buttonCva({ size, variant, color });
|
|
169
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Component, {
|
|
170
|
-
className: buttonRootStyles + " ",
|
|
171
|
-
ref,
|
|
172
|
-
...restProps,
|
|
173
|
-
children
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
var ThemeContext = React3__default["default"].createContext({});
|
|
177
|
-
function getInitialTheme(defaultTheme) {
|
|
178
|
-
if (typeof window !== "undefined" && window.localStorage) {
|
|
179
|
-
const storageTheme = window.localStorage.getItem("theme");
|
|
180
|
-
if (storageTheme === "dark" || !storageTheme && window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
|
181
|
-
return "dark";
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
return defaultTheme ?? "light";
|
|
185
|
-
}
|
|
186
|
-
function ThemeProvider({ children, defaultTheme, theme }) {
|
|
187
|
-
const [themeState, setThemeState] = React3__default["default"].useState(
|
|
188
|
-
theme ? theme : getInitialTheme(defaultTheme)
|
|
189
|
-
);
|
|
190
|
-
function rawSetTheme(rawTheme) {
|
|
191
|
-
if (typeof window !== "undefined" && window.localStorage) {
|
|
192
|
-
if (rawTheme === "dark") {
|
|
193
|
-
document.documentElement.classList.add("dark");
|
|
194
|
-
} else {
|
|
195
|
-
document.documentElement.classList.remove("dark");
|
|
196
|
-
}
|
|
197
|
-
localStorage.setItem("theme", rawTheme);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
React3__default["default"].useEffect(() => {
|
|
201
|
-
rawSetTheme(themeState);
|
|
202
|
-
}, [themeState]);
|
|
203
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ThemeContext.Provider, {
|
|
204
|
-
value: { theme: themeState, setTheme: setThemeState },
|
|
205
|
-
children
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
// src/hooks/useTheme/useTheme.tsx
|
|
210
|
-
var useTheme = () => React3__default["default"].useContext(ThemeContext);
|
|
211
|
-
|
|
212
|
-
exports.Button = Button_default;
|
|
213
|
-
exports.ThemeContext = ThemeContext;
|
|
214
|
-
exports.ThemeProvider = ThemeProvider;
|
|
215
|
-
exports.useTheme = useTheme;
|
package/dist/index.mjs
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import * as React3 from 'react';
|
|
2
|
-
import React3__default from 'react';
|
|
3
|
-
import { cva } from 'class-variance-authority';
|
|
4
|
-
import { jsx } from 'react/jsx-runtime';
|
|
5
|
-
|
|
6
|
-
// src/components/Button/Button.tsx
|
|
7
|
-
var buttonCva = cva(
|
|
8
|
-
"border rounded font-sans font-medium leading-[1.75] tracking-[.02857em]",
|
|
9
|
-
{
|
|
10
|
-
variants: {
|
|
11
|
-
color: {
|
|
12
|
-
neutral: "",
|
|
13
|
-
primary: "",
|
|
14
|
-
success: "",
|
|
15
|
-
warning: "",
|
|
16
|
-
error: ""
|
|
17
|
-
},
|
|
18
|
-
size: {
|
|
19
|
-
sm: "py-1 px-2.5 text-[.8125rem]",
|
|
20
|
-
md: "px-4 py-1.5 text-sm",
|
|
21
|
-
lg: "px-5 py-2 text-[.9375rem]"
|
|
22
|
-
},
|
|
23
|
-
variant: {
|
|
24
|
-
text: "border-transparent bg-transparent hover:text-white",
|
|
25
|
-
outlined: "",
|
|
26
|
-
contained: ""
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
compoundVariants: [
|
|
30
|
-
{
|
|
31
|
-
variant: "text",
|
|
32
|
-
color: "neutral",
|
|
33
|
-
class: [
|
|
34
|
-
"text-gray-400",
|
|
35
|
-
"hover:border-gray-400 hover:bg-gray-400",
|
|
36
|
-
"active:text-white active:border-gray-300 active:bg-gray-300",
|
|
37
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-gray-400"
|
|
38
|
-
]
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
variant: "text",
|
|
42
|
-
color: "primary",
|
|
43
|
-
class: [
|
|
44
|
-
"text-primary-500",
|
|
45
|
-
"hover:border-primary-400 hover:bg-primary-400",
|
|
46
|
-
"active:text-white active:border-primary-600 active:bg-primary-600",
|
|
47
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-primary-500"
|
|
48
|
-
]
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
variant: "text",
|
|
52
|
-
color: "success",
|
|
53
|
-
class: [
|
|
54
|
-
"text-success-500",
|
|
55
|
-
"hover:border-success-400 hover:bg-success-400",
|
|
56
|
-
"active:text-white active:border-success-600 active:bg-success-600",
|
|
57
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-success-500"
|
|
58
|
-
]
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
variant: "text",
|
|
62
|
-
color: "warning",
|
|
63
|
-
class: [
|
|
64
|
-
"text-warning-500",
|
|
65
|
-
"hover:border-warning-400 hover:bg-warning-400",
|
|
66
|
-
"active:text-white active:border-warning-600 active:bg-warning-600",
|
|
67
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-warning-500"
|
|
68
|
-
]
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
variant: "text",
|
|
72
|
-
color: "error",
|
|
73
|
-
class: [
|
|
74
|
-
"text-error-500",
|
|
75
|
-
"hover:border-error-400 hover:bg-error-400",
|
|
76
|
-
"active:text-white active:border-error-600 active:bg-error-600",
|
|
77
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-transparent disabled:hover:bg-transparent disabled:hover:text-error-500"
|
|
78
|
-
]
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
variant: "outlined",
|
|
82
|
-
color: "neutral",
|
|
83
|
-
class: [
|
|
84
|
-
"text-gray-400 border-gray-400 bg-transparent",
|
|
85
|
-
"hover:bg-gray-500 hover:text-white",
|
|
86
|
-
"active:text-white active:bg-gray-300",
|
|
87
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-gray-400"
|
|
88
|
-
]
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
variant: "outlined",
|
|
92
|
-
color: "primary",
|
|
93
|
-
class: [
|
|
94
|
-
"text-primary-500 border-primary-500 bg-transparent",
|
|
95
|
-
"hover:bg-primary-400 hover:text-white",
|
|
96
|
-
"active:text-white active:bg-primary-600",
|
|
97
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-primary-500"
|
|
98
|
-
]
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
variant: "outlined",
|
|
102
|
-
color: "success",
|
|
103
|
-
class: [
|
|
104
|
-
"text-success-500 border-success-500 bg-transparent",
|
|
105
|
-
"hover:bg-success-400 hover:text-white",
|
|
106
|
-
"active:text-white active:bg-success-600",
|
|
107
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-success-500"
|
|
108
|
-
]
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
variant: "outlined",
|
|
112
|
-
color: "warning",
|
|
113
|
-
class: [
|
|
114
|
-
"text-warning-500 border-warning-500 bg-transparent",
|
|
115
|
-
"hover:bg-warning-400 hover:text-white",
|
|
116
|
-
"active:text-white active:bg-warning-600",
|
|
117
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-warning-500"
|
|
118
|
-
]
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
variant: "outlined",
|
|
122
|
-
color: "error",
|
|
123
|
-
class: [
|
|
124
|
-
"text-error-500 border-error-500 bg-transparent",
|
|
125
|
-
"hover:bg-error-400 hover:text-white",
|
|
126
|
-
"active:text-white active:bg-error-600",
|
|
127
|
-
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-error-500"
|
|
128
|
-
]
|
|
129
|
-
}
|
|
130
|
-
]
|
|
131
|
-
}
|
|
132
|
-
);
|
|
133
|
-
var Button_default = React3.forwardRef(function({
|
|
134
|
-
as,
|
|
135
|
-
color = "primary",
|
|
136
|
-
children,
|
|
137
|
-
size = "md",
|
|
138
|
-
variant = "text",
|
|
139
|
-
...restProps
|
|
140
|
-
}, ref) {
|
|
141
|
-
const Component = as || "button";
|
|
142
|
-
const buttonRootStyles = buttonCva({ size, variant, color });
|
|
143
|
-
return /* @__PURE__ */ jsx(Component, {
|
|
144
|
-
className: buttonRootStyles + " ",
|
|
145
|
-
ref,
|
|
146
|
-
...restProps,
|
|
147
|
-
children
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
var ThemeContext = React3__default.createContext({});
|
|
151
|
-
function getInitialTheme(defaultTheme) {
|
|
152
|
-
if (typeof window !== "undefined" && window.localStorage) {
|
|
153
|
-
const storageTheme = window.localStorage.getItem("theme");
|
|
154
|
-
if (storageTheme === "dark" || !storageTheme && window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
|
155
|
-
return "dark";
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return defaultTheme ?? "light";
|
|
159
|
-
}
|
|
160
|
-
function ThemeProvider({ children, defaultTheme, theme }) {
|
|
161
|
-
const [themeState, setThemeState] = React3__default.useState(
|
|
162
|
-
theme ? theme : getInitialTheme(defaultTheme)
|
|
163
|
-
);
|
|
164
|
-
function rawSetTheme(rawTheme) {
|
|
165
|
-
if (typeof window !== "undefined" && window.localStorage) {
|
|
166
|
-
if (rawTheme === "dark") {
|
|
167
|
-
document.documentElement.classList.add("dark");
|
|
168
|
-
} else {
|
|
169
|
-
document.documentElement.classList.remove("dark");
|
|
170
|
-
}
|
|
171
|
-
localStorage.setItem("theme", rawTheme);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
React3__default.useEffect(() => {
|
|
175
|
-
rawSetTheme(themeState);
|
|
176
|
-
}, [themeState]);
|
|
177
|
-
return /* @__PURE__ */ jsx(ThemeContext.Provider, {
|
|
178
|
-
value: { theme: themeState, setTheme: setThemeState },
|
|
179
|
-
children
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// src/hooks/useTheme/useTheme.tsx
|
|
184
|
-
var useTheme = () => React3__default.useContext(ThemeContext);
|
|
185
|
-
|
|
186
|
-
export { Button_default as Button, ThemeContext, ThemeProvider, useTheme };
|