@twreporter/react-typescript-components 0.1.0-beta.5 → 0.1.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -1
- package/lib/button/components/text-button/index.d.mts +24 -0
- package/lib/button/components/text-button/index.d.ts +24 -0
- package/lib/button/components/text-button/index.js +202 -0
- package/lib/button/components/text-button/index.js.map +1 -0
- package/lib/button/components/text-button/index.mjs +8 -0
- package/lib/button/components/text-button/index.mjs.map +1 -0
- package/lib/button/components/text-button/theme.d.mts +11 -0
- package/lib/button/components/text-button/theme.d.ts +11 -0
- package/lib/button/components/text-button/theme.js +65 -0
- package/lib/button/components/text-button/theme.js.map +1 -0
- package/lib/button/components/text-button/theme.mjs +5 -0
- package/lib/button/components/text-button/theme.mjs.map +1 -0
- package/lib/button/constant.d.mts +11 -0
- package/lib/button/constant.d.ts +11 -0
- package/lib/button/constant.js +13 -0
- package/lib/button/constant.js.map +1 -0
- package/lib/button/constant.mjs +3 -0
- package/lib/button/constant.mjs.map +1 -0
- package/lib/button/enum.d.mts +11 -0
- package/lib/button/enum.d.ts +11 -0
- package/lib/button/enum.js +19 -0
- package/lib/button/enum.js.map +1 -0
- package/lib/button/enum.mjs +3 -0
- package/lib/button/enum.mjs.map +1 -0
- package/lib/button/index.d.mts +26 -0
- package/lib/button/index.d.ts +26 -0
- package/lib/button/index.js +208 -0
- package/lib/button/index.js.map +1 -0
- package/lib/button/index.mjs +9 -0
- package/lib/button/index.mjs.map +1 -0
- package/lib/button/stories/text-button.stories.d.mts +55 -0
- package/lib/button/stories/text-button.stories.d.ts +55 -0
- package/lib/button/stories/text-button.stories.js +252 -0
- package/lib/button/stories/text-button.stories.js.map +1 -0
- package/lib/button/stories/text-button.stories.mjs +35 -0
- package/lib/button/stories/text-button.stories.mjs.map +1 -0
- package/lib/{chunk-3B7LTZRJ.mjs → chunk-6DXA3EX7.mjs} +8 -6
- package/lib/chunk-6DXA3EX7.mjs.map +1 -0
- package/lib/chunk-7NJDHQ2X.mjs +56 -0
- package/lib/chunk-7NJDHQ2X.mjs.map +1 -0
- package/lib/chunk-ELECTE3D.mjs +8 -0
- package/lib/chunk-ELECTE3D.mjs.map +1 -0
- package/lib/chunk-FF422IYY.mjs +38 -0
- package/lib/chunk-FF422IYY.mjs.map +1 -0
- package/lib/chunk-FVKIUNIP.mjs +58 -0
- package/lib/chunk-FVKIUNIP.mjs.map +1 -0
- package/lib/chunk-GQWO45DN.mjs +32 -0
- package/lib/chunk-GQWO45DN.mjs.map +1 -0
- package/lib/chunk-JB4TYHDE.mjs +11 -0
- package/lib/chunk-JB4TYHDE.mjs.map +1 -0
- package/lib/chunk-JFT6JILC.mjs +12 -0
- package/lib/chunk-JFT6JILC.mjs.map +1 -0
- package/lib/chunk-QOLETTSG.mjs +28 -0
- package/lib/chunk-QOLETTSG.mjs.map +1 -0
- package/lib/chunk-U22UKMAJ.mjs +84 -0
- package/lib/chunk-U22UKMAJ.mjs.map +1 -0
- package/lib/chunk-URJXIWFX.mjs +16 -0
- package/lib/chunk-URJXIWFX.mjs.map +1 -0
- package/lib/chunk-X2UWIBNH.mjs +16 -0
- package/lib/chunk-X2UWIBNH.mjs.map +1 -0
- package/lib/chunk-XO7SDD7W.mjs +17 -0
- package/lib/chunk-XO7SDD7W.mjs.map +1 -0
- package/lib/chunk-ZALXWB2J.mjs +27 -0
- package/lib/chunk-ZALXWB2J.mjs.map +1 -0
- package/lib/customized-link/external-link.d.mts +7 -0
- package/lib/customized-link/external-link.d.ts +7 -0
- package/lib/customized-link/external-link.js +18 -0
- package/lib/customized-link/external-link.js.map +1 -0
- package/lib/customized-link/external-link.mjs +3 -0
- package/lib/customized-link/external-link.mjs.map +1 -0
- package/lib/customized-link/index.d.mts +11 -0
- package/lib/customized-link/index.d.ts +11 -0
- package/lib/customized-link/index.js +42 -0
- package/lib/customized-link/index.js.map +1 -0
- package/lib/customized-link/index.mjs +5 -0
- package/lib/customized-link/index.mjs.map +1 -0
- package/lib/customized-link/internal-link.d.mts +7 -0
- package/lib/customized-link/internal-link.d.ts +7 -0
- package/lib/customized-link/internal-link.js +22 -0
- package/lib/customized-link/internal-link.js.map +1 -0
- package/lib/customized-link/internal-link.mjs +3 -0
- package/lib/customized-link/internal-link.mjs.map +1 -0
- package/lib/customized-link/type.d.mts +9 -0
- package/lib/customized-link/type.d.ts +9 -0
- package/lib/customized-link/type.js +4 -0
- package/lib/customized-link/type.js.map +1 -0
- package/lib/customized-link/type.mjs +3 -0
- package/lib/customized-link/type.mjs.map +1 -0
- package/lib/storybook/utils/get-enum-arg.d.mts +19 -0
- package/lib/storybook/utils/get-enum-arg.d.ts +19 -0
- package/lib/storybook/utils/get-enum-arg.js +31 -0
- package/lib/storybook/utils/get-enum-arg.js.map +1 -0
- package/lib/storybook/utils/get-enum-arg.mjs +3 -0
- package/lib/storybook/utils/get-enum-arg.mjs.map +1 -0
- package/lib/styles.css +199 -2
- package/lib/styles.css.map +1 -1
- package/lib/text/heading.d.mts +8 -8
- package/lib/text/heading.d.ts +8 -8
- package/lib/text/paragraph.d.mts +6 -6
- package/lib/text/paragraph.d.ts +6 -6
- package/lib/text/stories/heading.stories.d.mts +35 -0
- package/lib/text/stories/heading.stories.d.ts +35 -0
- package/lib/text/stories/heading.stories.js +131 -0
- package/lib/text/stories/heading.stories.js.map +1 -0
- package/lib/text/stories/heading.stories.mjs +50 -0
- package/lib/text/stories/heading.stories.mjs.map +1 -0
- package/lib/text/stories/paragraph.stories.d.mts +33 -0
- package/lib/text/stories/paragraph.stories.d.ts +33 -0
- package/lib/text/stories/paragraph.stories.js +108 -0
- package/lib/text/stories/paragraph.stories.js.map +1 -0
- package/lib/text/stories/paragraph.stories.mjs +40 -0
- package/lib/text/stories/paragraph.stories.mjs.map +1 -0
- package/lib/title-bar/components/title-tab/hook.d.mts +5 -0
- package/lib/title-bar/components/title-tab/hook.d.ts +5 -0
- package/lib/title-bar/components/title-tab/hook.js +34 -0
- package/lib/title-bar/components/title-tab/hook.js.map +1 -0
- package/lib/title-bar/components/title-tab/hook.mjs +3 -0
- package/lib/title-bar/components/title-tab/hook.mjs.map +1 -0
- package/lib/title-bar/components/title-tab/index.d.mts +11 -0
- package/lib/title-bar/components/title-tab/index.d.ts +11 -0
- package/lib/title-bar/components/title-tab/index.js +367 -0
- package/lib/title-bar/components/title-tab/index.js.map +1 -0
- package/lib/title-bar/components/title-tab/index.mjs +16 -0
- package/lib/title-bar/components/title-tab/index.mjs.map +1 -0
- package/lib/title-bar/components/title-tab/tab-item.d.mts +10 -0
- package/lib/title-bar/components/title-tab/tab-item.d.ts +10 -0
- package/lib/title-bar/components/title-tab/tab-item.js +250 -0
- package/lib/title-bar/components/title-tab/tab-item.js.map +1 -0
- package/lib/title-bar/components/title-tab/tab-item.mjs +13 -0
- package/lib/title-bar/components/title-tab/tab-item.mjs.map +1 -0
- package/lib/title-bar/components/title-tab/type.d.mts +8 -0
- package/lib/title-bar/components/title-tab/type.d.ts +8 -0
- package/lib/title-bar/components/title-tab/type.js +4 -0
- package/lib/title-bar/components/title-tab/type.js.map +1 -0
- package/lib/title-bar/components/title-tab/type.mjs +3 -0
- package/lib/title-bar/components/title-tab/type.mjs.map +1 -0
- package/lib/title-bar/components/title1.d.mts +10 -0
- package/lib/title-bar/components/title1.d.ts +10 -0
- package/lib/title-bar/components/title1.js +123 -0
- package/lib/title-bar/components/title1.js.map +1 -0
- package/lib/title-bar/components/title1.mjs +6 -0
- package/lib/title-bar/components/title1.mjs.map +1 -0
- package/lib/title-bar/components/title2.d.mts +3 -3
- package/lib/title-bar/components/title2.d.ts +3 -3
- package/lib/title-bar/components/title2.js +6 -4
- package/lib/title-bar/components/title2.js.map +1 -1
- package/lib/title-bar/components/title2.mjs +1 -1
- package/lib/title-bar/index.d.mts +15 -2
- package/lib/title-bar/index.d.ts +15 -2
- package/lib/title-bar/index.js +296 -8
- package/lib/title-bar/index.js.map +1 -1
- package/lib/title-bar/index.mjs +19 -3
- package/lib/title-bar/index.mjs.map +1 -1
- package/lib/title-bar/stories/title-tab.stories.d.mts +17 -0
- package/lib/title-bar/stories/title-tab.stories.d.ts +17 -0
- package/lib/title-bar/stories/title-tab.stories.js +391 -0
- package/lib/title-bar/stories/title-tab.stories.js.map +1 -0
- package/lib/title-bar/stories/title-tab.stories.mjs +39 -0
- package/lib/title-bar/stories/title-tab.stories.mjs.map +1 -0
- package/lib/title-bar/stories/title1.stories.d.mts +18 -0
- package/lib/title-bar/stories/title1.stories.d.ts +18 -0
- package/lib/title-bar/stories/title1.stories.js +155 -0
- package/lib/title-bar/stories/title1.stories.js.map +1 -0
- package/lib/title-bar/stories/title1.stories.mjs +35 -0
- package/lib/title-bar/stories/title1.stories.mjs.map +1 -0
- package/lib/title-bar/stories/title2.stories.d.mts +18 -0
- package/lib/title-bar/stories/title2.stories.d.ts +18 -0
- package/lib/title-bar/stories/title2.stories.js +304 -0
- package/lib/title-bar/stories/title2.stories.js.map +1 -0
- package/lib/title-bar/stories/title2.stories.mjs +38 -0
- package/lib/title-bar/stories/title2.stories.mjs.map +1 -0
- package/package.json +12 -5
- package/lib/chunk-3B7LTZRJ.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ React components built with TypeScript and Tailwind CSS.
|
|
|
4
4
|
|
|
5
5
|
## Roadmap
|
|
6
6
|
|
|
7
|
-
- [
|
|
7
|
+
- [X] add storybook
|
|
8
8
|
- [ ] add test
|
|
9
9
|
|
|
10
10
|
## Installation
|
|
@@ -37,6 +37,16 @@ function App() {
|
|
|
37
37
|
|
|
38
38
|
## Development & Build
|
|
39
39
|
|
|
40
|
+
### Storybook
|
|
41
|
+
|
|
42
|
+
Run storybook on localhost
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
yarn storybook
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Build
|
|
49
|
+
|
|
40
50
|
```bash
|
|
41
51
|
yarn build
|
|
42
52
|
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FC, ReactElement } from 'react';
|
|
2
|
+
import { Size, Style } from '../../enum.mjs';
|
|
3
|
+
import { Theme, THEME } from '../../constant.mjs';
|
|
4
|
+
import '../../../types/index.mjs';
|
|
5
|
+
|
|
6
|
+
type TextButtonProps = {
|
|
7
|
+
text: string;
|
|
8
|
+
leftIconComponent?: ReactElement;
|
|
9
|
+
rightIconComponent?: ReactElement;
|
|
10
|
+
size?: Size;
|
|
11
|
+
style?: Style;
|
|
12
|
+
theme?: Theme;
|
|
13
|
+
active?: boolean;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
loading?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
};
|
|
18
|
+
declare const TextButton: FC<TextButtonProps> & {
|
|
19
|
+
Size: typeof Size;
|
|
20
|
+
Style: typeof Style;
|
|
21
|
+
THEME: typeof THEME;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { TextButton as default };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FC, ReactElement } from 'react';
|
|
2
|
+
import { Size, Style } from '../../enum.js';
|
|
3
|
+
import { Theme, THEME } from '../../constant.js';
|
|
4
|
+
import '../../../types/index.js';
|
|
5
|
+
|
|
6
|
+
type TextButtonProps = {
|
|
7
|
+
text: string;
|
|
8
|
+
leftIconComponent?: ReactElement;
|
|
9
|
+
rightIconComponent?: ReactElement;
|
|
10
|
+
size?: Size;
|
|
11
|
+
style?: Style;
|
|
12
|
+
theme?: Theme;
|
|
13
|
+
active?: boolean;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
loading?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
};
|
|
18
|
+
declare const TextButton: FC<TextButtonProps> & {
|
|
19
|
+
Size: typeof Size;
|
|
20
|
+
Style: typeof Style;
|
|
21
|
+
THEME: typeof THEME;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { TextButton as default };
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var clsx2 = require('clsx');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
+
|
|
9
|
+
var clsx2__default = /*#__PURE__*/_interopDefault(clsx2);
|
|
10
|
+
|
|
11
|
+
// src/button/components/text-button/index.tsx
|
|
12
|
+
|
|
13
|
+
// src/text/enum/index.ts
|
|
14
|
+
var WEIGHT = {
|
|
15
|
+
extraLight: "extra-light",
|
|
16
|
+
normal: "normal",
|
|
17
|
+
bold: "bold"
|
|
18
|
+
};
|
|
19
|
+
var baseClass = "font-default leading-[150%] flex items-center m-0";
|
|
20
|
+
var variantClass = {
|
|
21
|
+
P1: "text-[16px]",
|
|
22
|
+
P2: "text-[14px]",
|
|
23
|
+
P3: "text-[12px]",
|
|
24
|
+
P4: "text-[10px]"
|
|
25
|
+
};
|
|
26
|
+
var ParagraphVariant = (variant) => {
|
|
27
|
+
const Component = ({
|
|
28
|
+
text = "",
|
|
29
|
+
weight = WEIGHT.normal,
|
|
30
|
+
className = "",
|
|
31
|
+
...props
|
|
32
|
+
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
33
|
+
"p",
|
|
34
|
+
{
|
|
35
|
+
className: clsx2__default.default(
|
|
36
|
+
baseClass,
|
|
37
|
+
variantClass[variant],
|
|
38
|
+
`font-${weight}`,
|
|
39
|
+
className
|
|
40
|
+
),
|
|
41
|
+
...props,
|
|
42
|
+
children: text
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
Component.displayName = variant;
|
|
46
|
+
Component.Weight = WEIGHT;
|
|
47
|
+
return Component;
|
|
48
|
+
};
|
|
49
|
+
var P1 = ParagraphVariant("P1");
|
|
50
|
+
var P2 = ParagraphVariant("P2");
|
|
51
|
+
ParagraphVariant("P3");
|
|
52
|
+
ParagraphVariant("P4");
|
|
53
|
+
|
|
54
|
+
// src/button/enum.ts
|
|
55
|
+
var Size = /* @__PURE__ */ ((Size2) => {
|
|
56
|
+
Size2[Size2["S"] = 0] = "S";
|
|
57
|
+
Size2[Size2["L"] = 1] = "L";
|
|
58
|
+
return Size2;
|
|
59
|
+
})(Size || {});
|
|
60
|
+
var Style = /* @__PURE__ */ ((Style2) => {
|
|
61
|
+
Style2[Style2["BRAND"] = 0] = "BRAND";
|
|
62
|
+
Style2[Style2["DARK"] = 1] = "DARK";
|
|
63
|
+
Style2[Style2["LIGHT"] = 2] = "LIGHT";
|
|
64
|
+
return Style2;
|
|
65
|
+
})(Style || {});
|
|
66
|
+
|
|
67
|
+
// src/button/constant.ts
|
|
68
|
+
var THEME = {
|
|
69
|
+
normal: "normal",
|
|
70
|
+
photography: "photography",
|
|
71
|
+
transparent: "transparent",
|
|
72
|
+
index: "index"
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
// src/button/components/text-button/theme.ts
|
|
76
|
+
var getDisabledContainerTheme = (theme) => {
|
|
77
|
+
return [
|
|
78
|
+
// default theme
|
|
79
|
+
"text-gray-400 hover:text-gray-400",
|
|
80
|
+
// photography & transparent theme
|
|
81
|
+
{
|
|
82
|
+
"text-gray-500 hover:text-gray-500": theme === THEME.photography || theme === THEME.transparent
|
|
83
|
+
}
|
|
84
|
+
];
|
|
85
|
+
};
|
|
86
|
+
var getActiveContainerTheme = (theme, style) => {
|
|
87
|
+
return [
|
|
88
|
+
// default theme
|
|
89
|
+
{
|
|
90
|
+
"text-gray-800 hover:text-gray-800": style === 2 /* LIGHT */,
|
|
91
|
+
"text-brand-heavy hover:text-brand-heavy": style === 1 /* DARK */,
|
|
92
|
+
"text-brand-dark hover:text-brand-dark": style === 0 /* BRAND */
|
|
93
|
+
},
|
|
94
|
+
// photography theme
|
|
95
|
+
{
|
|
96
|
+
"text-gray-400 hover:text-gray-400": theme === THEME.photography && style === 2 /* LIGHT */,
|
|
97
|
+
"text-supportive-pastel hover:text-supportive-pastel": theme === THEME.photography && style !== 2 /* LIGHT */
|
|
98
|
+
},
|
|
99
|
+
// transparent theme
|
|
100
|
+
{
|
|
101
|
+
"text-gray-black hover:text-gray-black": theme === THEME.transparent && style === 2 /* LIGHT */,
|
|
102
|
+
"text-gray-200 hover:text-gray-200": theme === THEME.transparent && style !== 2 /* LIGHT */
|
|
103
|
+
}
|
|
104
|
+
];
|
|
105
|
+
};
|
|
106
|
+
var getContainerTheme = (theme, style) => {
|
|
107
|
+
return [
|
|
108
|
+
// default theme
|
|
109
|
+
{
|
|
110
|
+
"text-gray-600 hover:text-gray-800": style === 2 /* LIGHT */,
|
|
111
|
+
"text-gray-800 hover:text-brand-heavy": style === 1 /* DARK */,
|
|
112
|
+
"text-brand-heavy hover:text-brand-dark": style === 0 /* BRAND */
|
|
113
|
+
},
|
|
114
|
+
// photography
|
|
115
|
+
{
|
|
116
|
+
"text-gray-300 hover:text-gray-400": theme === THEME.photography && style === 2 /* LIGHT */,
|
|
117
|
+
"text-gray-white hover:text-supportive-pastel": theme === THEME.photography && style === 1 /* DARK */,
|
|
118
|
+
"text-supportive-faded hover:text-supportive-pastel": theme === THEME.photography && style === 0 /* BRAND */
|
|
119
|
+
},
|
|
120
|
+
// transparent theme
|
|
121
|
+
{
|
|
122
|
+
"text-gray-800 hover:text-gray-black": theme === THEME.transparent && style === 2 /* LIGHT */,
|
|
123
|
+
"text-gray-white hover:text-gray-200": theme === THEME.transparent && style !== 2 /* LIGHT */
|
|
124
|
+
}
|
|
125
|
+
];
|
|
126
|
+
};
|
|
127
|
+
var TextButton = ({
|
|
128
|
+
text,
|
|
129
|
+
leftIconComponent,
|
|
130
|
+
rightIconComponent,
|
|
131
|
+
size = 0 /* S */,
|
|
132
|
+
theme = THEME.normal,
|
|
133
|
+
style = 1 /* DARK */,
|
|
134
|
+
active = false,
|
|
135
|
+
disabled = false,
|
|
136
|
+
loading = false,
|
|
137
|
+
className = ""
|
|
138
|
+
}) => {
|
|
139
|
+
const TextJSX = react.useMemo(
|
|
140
|
+
() => size === 0 /* S */ ? /* @__PURE__ */ jsxRuntime.jsx(P2, { text, weight: P2.Weight.bold }) : /* @__PURE__ */ jsxRuntime.jsx(P1, { text, weight: P1.Weight.bold }),
|
|
141
|
+
[size, text]
|
|
142
|
+
);
|
|
143
|
+
const themeClass = react.useMemo(() => {
|
|
144
|
+
const themeFunc = disabled ? getDisabledContainerTheme : active ? getActiveContainerTheme : getContainerTheme;
|
|
145
|
+
return themeFunc(theme, style);
|
|
146
|
+
}, [disabled, active, theme, style]);
|
|
147
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
148
|
+
"div",
|
|
149
|
+
{
|
|
150
|
+
className: clsx2__default.default(
|
|
151
|
+
"flex items-center",
|
|
152
|
+
{
|
|
153
|
+
"cursor-default": disabled,
|
|
154
|
+
"cursor-pointer": !disabled
|
|
155
|
+
},
|
|
156
|
+
themeClass,
|
|
157
|
+
className
|
|
158
|
+
),
|
|
159
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex justify-center items-center", children: [
|
|
160
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
161
|
+
"div",
|
|
162
|
+
{
|
|
163
|
+
className: clsx2__default.default("flex justify-center items-center", {
|
|
164
|
+
"opacity-0": loading,
|
|
165
|
+
"opacity-100": !loading
|
|
166
|
+
}),
|
|
167
|
+
children: [
|
|
168
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center mr-[4px]", children: leftIconComponent }),
|
|
169
|
+
TextJSX,
|
|
170
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center ml-[4px]", children: rightIconComponent })
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
),
|
|
174
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
175
|
+
"span",
|
|
176
|
+
{
|
|
177
|
+
className: clsx2__default.default(
|
|
178
|
+
"inline-block absolute box-border animation-spin",
|
|
179
|
+
"border-2 border-solid border-gray-400 border-t-gray-600 rounded-[50%]",
|
|
180
|
+
{
|
|
181
|
+
"size-[18px]": size === 0 /* S */,
|
|
182
|
+
"size-[24px]": size === 1 /* L */
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"opacity-0": !loading,
|
|
186
|
+
"opacity-100": loading
|
|
187
|
+
}
|
|
188
|
+
)
|
|
189
|
+
}
|
|
190
|
+
)
|
|
191
|
+
] })
|
|
192
|
+
}
|
|
193
|
+
);
|
|
194
|
+
};
|
|
195
|
+
TextButton.Size = Size;
|
|
196
|
+
TextButton.Style = Style;
|
|
197
|
+
TextButton.THEME = THEME;
|
|
198
|
+
var text_button_default = TextButton;
|
|
199
|
+
|
|
200
|
+
module.exports = text_button_default;
|
|
201
|
+
//# sourceMappingURL=index.js.map
|
|
202
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/text/enum/index.ts","../../../../src/text/paragraph.tsx","../../../../src/button/enum.ts","../../../../src/button/constant.ts","../../../../src/button/components/text-button/theme.ts","../../../../src/button/components/text-button/index.tsx"],"names":["jsx","clsx","Size","Style","useMemo","jsxs"],"mappings":"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","file":"index.js","sourcesContent":["import type { ValuesOf } from '../../types'\n\nexport const TYPE = {\n default: 'default',\n article: 'article',\n} as const\n\nexport type Type = ValuesOf<typeof TYPE>\n\nexport const WEIGHT = {\n extraLight: 'extra-light',\n normal: 'normal',\n bold: 'bold',\n} as const\n\nexport type Weight = ValuesOf<typeof WEIGHT>\n","import clsx from 'clsx'\nimport type React from 'react'\nimport { WEIGHT, type Weight } from './enum'\n\ntype ParagraphProps = React.HTMLAttributes<HTMLParagraphElement> & {\n text?: string\n weight?: Weight\n className?: string\n}\n\nconst baseClass = 'font-default leading-[150%] flex items-center m-0'\n\nconst variantClass = {\n P1: 'text-[16px]',\n P2: 'text-[14px]',\n P3: 'text-[12px]',\n P4: 'text-[10px]',\n}\n\nconst ParagraphVariant = (variant: keyof typeof variantClass) => {\n const Component: React.FC<ParagraphProps> & { Weight: typeof WEIGHT } = ({\n text = '',\n weight = WEIGHT.normal,\n className = '',\n ...props\n }) => (\n <p\n className={clsx(\n baseClass,\n variantClass[variant],\n `font-${weight}`,\n className\n )}\n {...props}\n >\n {text}\n </p>\n )\n Component.displayName = variant\n Component.Weight = WEIGHT\n return Component\n}\n\nconst P1 = ParagraphVariant('P1')\nconst P2 = ParagraphVariant('P2')\nconst P3 = ParagraphVariant('P3')\nconst P4 = ParagraphVariant('P4')\n\nexport { P1, P2, P3, P4 }\n","export enum Size {\n S,\n L,\n}\n\nexport enum Style {\n BRAND,\n DARK,\n LIGHT,\n}\n","import type { ValuesOf } from '../types'\n\nexport const THEME = {\n normal: 'normal',\n photography: 'photography',\n transparent: 'transparent',\n index: 'index',\n} as const\n\nexport type Theme = ValuesOf<typeof THEME>\n","// constants\nimport { THEME } from '../../constant'\n// type\nimport type { Theme } from '../../constant'\nimport type { ClassArray } from 'clsx'\n// enum\nimport { Style } from '../../enum'\n\ntype ThemeFunc = (theme: Theme, style?: Style) => ClassArray\n\nexport const getDisabledContainerTheme: ThemeFunc = (theme) => {\n return [\n // default theme\n 'text-gray-400 hover:text-gray-400',\n // photography & transparent theme\n {\n 'text-gray-500 hover:text-gray-500': theme === THEME.photography || theme === THEME.transparent,\n }\n ]\n}\n\nexport const getActiveContainerTheme: ThemeFunc = (theme, style) => {\n return [\n // default theme\n {\n 'text-gray-800 hover:text-gray-800': style === Style.LIGHT,\n 'text-brand-heavy hover:text-brand-heavy': style === Style.DARK,\n 'text-brand-dark hover:text-brand-dark': style === Style.BRAND,\n },\n // photography theme\n {\n 'text-gray-400 hover:text-gray-400': theme === THEME.photography && style === Style.LIGHT,\n 'text-supportive-pastel hover:text-supportive-pastel': theme === THEME.photography && style !== Style.LIGHT,\n },\n // transparent theme\n {\n 'text-gray-black hover:text-gray-black': theme === THEME.transparent && style === Style.LIGHT,\n 'text-gray-200 hover:text-gray-200': theme === THEME.transparent && style !== Style.LIGHT,\n },\n ]\n}\n\nexport const getContainerTheme: ThemeFunc = (theme, style) => {\n return [\n // default theme\n {\n 'text-gray-600 hover:text-gray-800': style === Style.LIGHT,\n 'text-gray-800 hover:text-brand-heavy': style === Style.DARK,\n 'text-brand-heavy hover:text-brand-dark': style === Style.BRAND,\n },\n // photography\n {\n 'text-gray-300 hover:text-gray-400': theme === THEME.photography && style === Style.LIGHT,\n 'text-gray-white hover:text-supportive-pastel': theme === THEME.photography && style === Style.DARK,\n 'text-supportive-faded hover:text-supportive-pastel': theme === THEME.photography && style === Style.BRAND,\n },\n // transparent theme\n {\n 'text-gray-800 hover:text-gray-black': theme === THEME.transparent && style === Style.LIGHT,\n 'text-gray-white hover:text-gray-200': theme === THEME.transparent && style !== Style.LIGHT,\n },\n ]\n}","import { type FC, type ReactElement, useMemo } from 'react'\nimport clsx from 'clsx'\n// components\nimport { P1, P2 } from '../../../text/paragraph'\n// enums\nimport { Size, Style } from '../../enum'\n// type\nimport type { Theme } from '../../constant'\n// constants\nimport { THEME } from '../../constant'\n// utils\nimport { getContainerTheme, getActiveContainerTheme, getDisabledContainerTheme } from './theme'\n\ntype TextButtonProps = {\n text: string\n leftIconComponent?: ReactElement\n rightIconComponent?: ReactElement\n size?: Size\n style?: Style\n theme?: Theme\n active?: boolean\n disabled?: boolean\n loading?: boolean\n className?: string\n}\nconst TextButton: FC<TextButtonProps> & {\n Size: typeof Size\n Style: typeof Style\n THEME: typeof THEME\n} = ({\n text,\n leftIconComponent,\n rightIconComponent,\n size = Size.S,\n theme = THEME.normal,\n style = Style.DARK,\n active = false,\n disabled = false,\n loading = false,\n className = '',\n}) => {\n const TextJSX = useMemo(\n () => (size === Size.S ? <P2 text={text} weight={P2.Weight.bold} /> : <P1 text={text} weight={P1.Weight.bold} />),\n [size, text]\n )\n const themeClass = useMemo(() => {\n const themeFunc = disabled ? getDisabledContainerTheme : (active ? getActiveContainerTheme : getContainerTheme)\n return themeFunc(theme, style)\n }, [disabled, active, theme, style])\n\n return (\n <div\n className={clsx(\n 'flex items-center',\n {\n 'cursor-default': disabled,\n 'cursor-pointer': !disabled,\n },\n themeClass,\n className\n )}\n >\n <div className=\"relative flex justify-center items-center\">\n <div\n className={clsx('flex justify-center items-center', {\n 'opacity-0': loading,\n 'opacity-100': !loading,\n })}\n >\n <div className=\"flex items-center mr-[4px]\">{leftIconComponent}</div>\n {TextJSX}\n <div className=\"flex items-center ml-[4px]\">{rightIconComponent}</div>\n </div>\n <span\n className={clsx(\n 'inline-block absolute box-border animation-spin',\n 'border-2 border-solid border-gray-400 border-t-gray-600 rounded-[50%]',\n {\n 'size-[18px]': size === Size.S,\n 'size-[24px]': size === Size.L,\n },\n {\n 'opacity-0': !loading,\n 'opacity-100': loading,\n }\n )}\n />\n </div>\n </div>\n )\n}\nTextButton.Size = Size\nTextButton.Style = Style\nTextButton.THEME = THEME\n\nexport default TextButton\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { text_button_default as default } from '../../../chunk-U22UKMAJ.mjs';
|
|
2
|
+
import '../../../chunk-FVKIUNIP.mjs';
|
|
3
|
+
import '../../../chunk-HQG6Q2EY.mjs';
|
|
4
|
+
import '../../../chunk-UM7RNC2Y.mjs';
|
|
5
|
+
import '../../../chunk-JB4TYHDE.mjs';
|
|
6
|
+
import '../../../chunk-URJXIWFX.mjs';
|
|
7
|
+
//# sourceMappingURL=index.mjs.map
|
|
8
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Theme } from '../../constant.mjs';
|
|
2
|
+
import { ClassArray } from 'clsx';
|
|
3
|
+
import { Style } from '../../enum.mjs';
|
|
4
|
+
import '../../../types/index.mjs';
|
|
5
|
+
|
|
6
|
+
type ThemeFunc = (theme: Theme, style?: Style) => ClassArray;
|
|
7
|
+
declare const getDisabledContainerTheme: ThemeFunc;
|
|
8
|
+
declare const getActiveContainerTheme: ThemeFunc;
|
|
9
|
+
declare const getContainerTheme: ThemeFunc;
|
|
10
|
+
|
|
11
|
+
export { getActiveContainerTheme, getContainerTheme, getDisabledContainerTheme };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Theme } from '../../constant.js';
|
|
2
|
+
import { ClassArray } from 'clsx';
|
|
3
|
+
import { Style } from '../../enum.js';
|
|
4
|
+
import '../../../types/index.js';
|
|
5
|
+
|
|
6
|
+
type ThemeFunc = (theme: Theme, style?: Style) => ClassArray;
|
|
7
|
+
declare const getDisabledContainerTheme: ThemeFunc;
|
|
8
|
+
declare const getActiveContainerTheme: ThemeFunc;
|
|
9
|
+
declare const getContainerTheme: ThemeFunc;
|
|
10
|
+
|
|
11
|
+
export { getActiveContainerTheme, getContainerTheme, getDisabledContainerTheme };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/button/constant.ts
|
|
4
|
+
var THEME = {
|
|
5
|
+
photography: "photography",
|
|
6
|
+
transparent: "transparent"};
|
|
7
|
+
|
|
8
|
+
// src/button/components/text-button/theme.ts
|
|
9
|
+
var getDisabledContainerTheme = (theme) => {
|
|
10
|
+
return [
|
|
11
|
+
// default theme
|
|
12
|
+
"text-gray-400 hover:text-gray-400",
|
|
13
|
+
// photography & transparent theme
|
|
14
|
+
{
|
|
15
|
+
"text-gray-500 hover:text-gray-500": theme === THEME.photography || theme === THEME.transparent
|
|
16
|
+
}
|
|
17
|
+
];
|
|
18
|
+
};
|
|
19
|
+
var getActiveContainerTheme = (theme, style) => {
|
|
20
|
+
return [
|
|
21
|
+
// default theme
|
|
22
|
+
{
|
|
23
|
+
"text-gray-800 hover:text-gray-800": style === 2 /* LIGHT */,
|
|
24
|
+
"text-brand-heavy hover:text-brand-heavy": style === 1 /* DARK */,
|
|
25
|
+
"text-brand-dark hover:text-brand-dark": style === 0 /* BRAND */
|
|
26
|
+
},
|
|
27
|
+
// photography theme
|
|
28
|
+
{
|
|
29
|
+
"text-gray-400 hover:text-gray-400": theme === THEME.photography && style === 2 /* LIGHT */,
|
|
30
|
+
"text-supportive-pastel hover:text-supportive-pastel": theme === THEME.photography && style !== 2 /* LIGHT */
|
|
31
|
+
},
|
|
32
|
+
// transparent theme
|
|
33
|
+
{
|
|
34
|
+
"text-gray-black hover:text-gray-black": theme === THEME.transparent && style === 2 /* LIGHT */,
|
|
35
|
+
"text-gray-200 hover:text-gray-200": theme === THEME.transparent && style !== 2 /* LIGHT */
|
|
36
|
+
}
|
|
37
|
+
];
|
|
38
|
+
};
|
|
39
|
+
var getContainerTheme = (theme, style) => {
|
|
40
|
+
return [
|
|
41
|
+
// default theme
|
|
42
|
+
{
|
|
43
|
+
"text-gray-600 hover:text-gray-800": style === 2 /* LIGHT */,
|
|
44
|
+
"text-gray-800 hover:text-brand-heavy": style === 1 /* DARK */,
|
|
45
|
+
"text-brand-heavy hover:text-brand-dark": style === 0 /* BRAND */
|
|
46
|
+
},
|
|
47
|
+
// photography
|
|
48
|
+
{
|
|
49
|
+
"text-gray-300 hover:text-gray-400": theme === THEME.photography && style === 2 /* LIGHT */,
|
|
50
|
+
"text-gray-white hover:text-supportive-pastel": theme === THEME.photography && style === 1 /* DARK */,
|
|
51
|
+
"text-supportive-faded hover:text-supportive-pastel": theme === THEME.photography && style === 0 /* BRAND */
|
|
52
|
+
},
|
|
53
|
+
// transparent theme
|
|
54
|
+
{
|
|
55
|
+
"text-gray-800 hover:text-gray-black": theme === THEME.transparent && style === 2 /* LIGHT */,
|
|
56
|
+
"text-gray-white hover:text-gray-200": theme === THEME.transparent && style !== 2 /* LIGHT */
|
|
57
|
+
}
|
|
58
|
+
];
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
exports.getActiveContainerTheme = getActiveContainerTheme;
|
|
62
|
+
exports.getContainerTheme = getContainerTheme;
|
|
63
|
+
exports.getDisabledContainerTheme = getDisabledContainerTheme;
|
|
64
|
+
//# sourceMappingURL=theme.js.map
|
|
65
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/button/constant.ts","../../../../src/button/components/text-button/theme.ts"],"names":[],"mappings":";;;AAEO,IAAM,KAAA,GAAQ;AAAA,EAEnB,WAAA,EAAa,aAAA;AAAA,EACb,WAAA,EAAa,aAEf,CAAA;;;ACGO,IAAM,yBAAA,GAAuC,CAAC,KAAA,KAAU;AAC7D,EAAA,OAAO;AAAA;AAAA,IAEL,mCAAA;AAAA;AAAA,IAEA;AAAA,MACE,mCAAA,EAAqC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,UAAU,KAAA,CAAM;AAAA;AACtF,GACF;AACF;AAEO,IAAM,uBAAA,GAAqC,CAAC,KAAA,EAAO,KAAA,KAAU;AAClE,EAAA,OAAO;AAAA;AAAA,IAEL;AAAA,MACE,mCAAA,EAAqC,KAAA,KAAA,CAAA;AAAA,MACrC,yCAAA,EAA2C,KAAA,KAAA,CAAA;AAAA,MAC3C,uCAAA,EAAyC,KAAA,KAAA,CAAA;AAAA,KAC3C;AAAA;AAAA,IAEA;AAAA,MACE,mCAAA,EAAqC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,MACpE,qDAAA,EAAuD,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,KACxF;AAAA;AAAA,IAEA;AAAA,MACE,uCAAA,EAAyC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,MACxE,mCAAA,EAAqC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA;AACtE,GACF;AACF;AAEO,IAAM,iBAAA,GAA+B,CAAC,KAAA,EAAO,KAAA,KAAU;AAC5D,EAAA,OAAO;AAAA;AAAA,IAEL;AAAA,MACE,mCAAA,EAAqC,KAAA,KAAA,CAAA;AAAA,MACrC,sCAAA,EAAwC,KAAA,KAAA,CAAA;AAAA,MACxC,wCAAA,EAA0C,KAAA,KAAA,CAAA;AAAA,KAC5C;AAAA;AAAA,IAEA;AAAA,MACE,mCAAA,EAAqC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,MACpE,8CAAA,EAAgD,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,MAC/E,oDAAA,EAAsD,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,KACvF;AAAA;AAAA,IAEA;AAAA,MACE,qCAAA,EAAuC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,MACtE,qCAAA,EAAuC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA;AACxE,GACF;AACF","file":"theme.js","sourcesContent":["import type { ValuesOf } from '../types'\n\nexport const THEME = {\n normal: 'normal',\n photography: 'photography',\n transparent: 'transparent',\n index: 'index',\n} as const\n\nexport type Theme = ValuesOf<typeof THEME>\n","// constants\nimport { THEME } from '../../constant'\n// type\nimport type { Theme } from '../../constant'\nimport type { ClassArray } from 'clsx'\n// enum\nimport { Style } from '../../enum'\n\ntype ThemeFunc = (theme: Theme, style?: Style) => ClassArray\n\nexport const getDisabledContainerTheme: ThemeFunc = (theme) => {\n return [\n // default theme\n 'text-gray-400 hover:text-gray-400',\n // photography & transparent theme\n {\n 'text-gray-500 hover:text-gray-500': theme === THEME.photography || theme === THEME.transparent,\n }\n ]\n}\n\nexport const getActiveContainerTheme: ThemeFunc = (theme, style) => {\n return [\n // default theme\n {\n 'text-gray-800 hover:text-gray-800': style === Style.LIGHT,\n 'text-brand-heavy hover:text-brand-heavy': style === Style.DARK,\n 'text-brand-dark hover:text-brand-dark': style === Style.BRAND,\n },\n // photography theme\n {\n 'text-gray-400 hover:text-gray-400': theme === THEME.photography && style === Style.LIGHT,\n 'text-supportive-pastel hover:text-supportive-pastel': theme === THEME.photography && style !== Style.LIGHT,\n },\n // transparent theme\n {\n 'text-gray-black hover:text-gray-black': theme === THEME.transparent && style === Style.LIGHT,\n 'text-gray-200 hover:text-gray-200': theme === THEME.transparent && style !== Style.LIGHT,\n },\n ]\n}\n\nexport const getContainerTheme: ThemeFunc = (theme, style) => {\n return [\n // default theme\n {\n 'text-gray-600 hover:text-gray-800': style === Style.LIGHT,\n 'text-gray-800 hover:text-brand-heavy': style === Style.DARK,\n 'text-brand-heavy hover:text-brand-dark': style === Style.BRAND,\n },\n // photography\n {\n 'text-gray-300 hover:text-gray-400': theme === THEME.photography && style === Style.LIGHT,\n 'text-gray-white hover:text-supportive-pastel': theme === THEME.photography && style === Style.DARK,\n 'text-supportive-faded hover:text-supportive-pastel': theme === THEME.photography && style === Style.BRAND,\n },\n // transparent theme\n {\n 'text-gray-800 hover:text-gray-black': theme === THEME.transparent && style === Style.LIGHT,\n 'text-gray-white hover:text-gray-200': theme === THEME.transparent && style !== Style.LIGHT,\n },\n ]\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"theme.mjs"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ValuesOf } from '../types/index.mjs';
|
|
2
|
+
|
|
3
|
+
declare const THEME: {
|
|
4
|
+
readonly normal: "normal";
|
|
5
|
+
readonly photography: "photography";
|
|
6
|
+
readonly transparent: "transparent";
|
|
7
|
+
readonly index: "index";
|
|
8
|
+
};
|
|
9
|
+
type Theme = ValuesOf<typeof THEME>;
|
|
10
|
+
|
|
11
|
+
export { THEME, type Theme };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ValuesOf } from '../types/index.js';
|
|
2
|
+
|
|
3
|
+
declare const THEME: {
|
|
4
|
+
readonly normal: "normal";
|
|
5
|
+
readonly photography: "photography";
|
|
6
|
+
readonly transparent: "transparent";
|
|
7
|
+
readonly index: "index";
|
|
8
|
+
};
|
|
9
|
+
type Theme = ValuesOf<typeof THEME>;
|
|
10
|
+
|
|
11
|
+
export { THEME, type Theme };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/button/constant.ts
|
|
4
|
+
var THEME = {
|
|
5
|
+
normal: "normal",
|
|
6
|
+
photography: "photography",
|
|
7
|
+
transparent: "transparent",
|
|
8
|
+
index: "index"
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
exports.THEME = THEME;
|
|
12
|
+
//# sourceMappingURL=constant.js.map
|
|
13
|
+
//# sourceMappingURL=constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/button/constant.ts"],"names":[],"mappings":";;;AAEO,IAAM,KAAA,GAAQ;AAAA,EACnB,MAAA,EAAQ,QAAA;AAAA,EACR,WAAA,EAAa,aAAA;AAAA,EACb,WAAA,EAAa,aAAA;AAAA,EACb,KAAA,EAAO;AACT","file":"constant.js","sourcesContent":["import type { ValuesOf } from '../types'\n\nexport const THEME = {\n normal: 'normal',\n photography: 'photography',\n transparent: 'transparent',\n index: 'index',\n} as const\n\nexport type Theme = ValuesOf<typeof THEME>\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"constant.mjs"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/button/enum.ts
|
|
4
|
+
var Size = /* @__PURE__ */ ((Size2) => {
|
|
5
|
+
Size2[Size2["S"] = 0] = "S";
|
|
6
|
+
Size2[Size2["L"] = 1] = "L";
|
|
7
|
+
return Size2;
|
|
8
|
+
})(Size || {});
|
|
9
|
+
var Style = /* @__PURE__ */ ((Style2) => {
|
|
10
|
+
Style2[Style2["BRAND"] = 0] = "BRAND";
|
|
11
|
+
Style2[Style2["DARK"] = 1] = "DARK";
|
|
12
|
+
Style2[Style2["LIGHT"] = 2] = "LIGHT";
|
|
13
|
+
return Style2;
|
|
14
|
+
})(Style || {});
|
|
15
|
+
|
|
16
|
+
exports.Size = Size;
|
|
17
|
+
exports.Style = Style;
|
|
18
|
+
//# sourceMappingURL=enum.js.map
|
|
19
|
+
//# sourceMappingURL=enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/button/enum.ts"],"names":["Size","Style"],"mappings":";;;AAAO,IAAK,IAAA,qBAAAA,KAAAA,KAAL;AACL,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,GAAA,GAAA;AACA,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,GAAA,GAAA;AAFU,EAAA,OAAAA,KAAAA;AAAA,CAAA,EAAA,IAAA,IAAA,EAAA;AAKL,IAAK,KAAA,qBAAAC,MAAAA,KAAL;AACL,EAAAA,MAAAA,CAAAA,MAAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAA;AACA,EAAAA,MAAAA,CAAAA,MAAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAA;AACA,EAAAA,MAAAA,CAAAA,MAAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAA;AAHU,EAAA,OAAAA,MAAAA;AAAA,CAAA,EAAA,KAAA,IAAA,EAAA","file":"enum.js","sourcesContent":["export enum Size {\n S,\n L,\n}\n\nexport enum Style {\n BRAND,\n DARK,\n LIGHT,\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"enum.mjs"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Theme, THEME } from './constant.mjs';
|
|
2
|
+
import { Size, Style } from './enum.mjs';
|
|
3
|
+
import * as react from 'react';
|
|
4
|
+
export { default as TextButton } from './components/text-button/index.mjs';
|
|
5
|
+
import '../types/index.mjs';
|
|
6
|
+
|
|
7
|
+
declare const _default: {
|
|
8
|
+
TextButton: react.FC<{
|
|
9
|
+
text: string;
|
|
10
|
+
leftIconComponent?: react.ReactElement;
|
|
11
|
+
rightIconComponent?: react.ReactElement;
|
|
12
|
+
size?: Size;
|
|
13
|
+
style?: Style;
|
|
14
|
+
theme?: Theme;
|
|
15
|
+
active?: boolean;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
loading?: boolean;
|
|
18
|
+
className?: string;
|
|
19
|
+
}> & {
|
|
20
|
+
Size: typeof Size;
|
|
21
|
+
Style: typeof Style;
|
|
22
|
+
THEME: typeof THEME;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export { _default as default };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Theme, THEME } from './constant.js';
|
|
2
|
+
import { Size, Style } from './enum.js';
|
|
3
|
+
import * as react from 'react';
|
|
4
|
+
export { default as TextButton } from './components/text-button/index.js';
|
|
5
|
+
import '../types/index.js';
|
|
6
|
+
|
|
7
|
+
declare const _default: {
|
|
8
|
+
TextButton: react.FC<{
|
|
9
|
+
text: string;
|
|
10
|
+
leftIconComponent?: react.ReactElement;
|
|
11
|
+
rightIconComponent?: react.ReactElement;
|
|
12
|
+
size?: Size;
|
|
13
|
+
style?: Style;
|
|
14
|
+
theme?: Theme;
|
|
15
|
+
active?: boolean;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
loading?: boolean;
|
|
18
|
+
className?: string;
|
|
19
|
+
}> & {
|
|
20
|
+
Size: typeof Size;
|
|
21
|
+
Style: typeof Style;
|
|
22
|
+
THEME: typeof THEME;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export { _default as default };
|