@twreporter/react-typescript-components 0.1.0-beta.5 → 0.1.0-beta.6

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.
Files changed (166) hide show
  1. package/README.md +11 -1
  2. package/lib/button/components/text-button/index.d.mts +24 -0
  3. package/lib/button/components/text-button/index.d.ts +24 -0
  4. package/lib/button/components/text-button/index.js +156 -0
  5. package/lib/button/components/text-button/index.js.map +1 -0
  6. package/lib/button/components/text-button/index.mjs +7 -0
  7. package/lib/button/components/text-button/index.mjs.map +1 -0
  8. package/lib/button/constant.d.mts +11 -0
  9. package/lib/button/constant.d.ts +11 -0
  10. package/lib/button/constant.js +13 -0
  11. package/lib/button/constant.js.map +1 -0
  12. package/lib/button/constant.mjs +3 -0
  13. package/lib/button/constant.mjs.map +1 -0
  14. package/lib/button/enum.d.mts +11 -0
  15. package/lib/button/enum.d.ts +11 -0
  16. package/lib/button/enum.js +19 -0
  17. package/lib/button/enum.js.map +1 -0
  18. package/lib/button/enum.mjs +3 -0
  19. package/lib/button/enum.mjs.map +1 -0
  20. package/lib/button/index.d.mts +26 -0
  21. package/lib/button/index.d.ts +26 -0
  22. package/lib/button/index.js +162 -0
  23. package/lib/button/index.js.map +1 -0
  24. package/lib/button/index.mjs +8 -0
  25. package/lib/button/index.mjs.map +1 -0
  26. package/lib/button/stories/text-button.stories.d.mts +55 -0
  27. package/lib/button/stories/text-button.stories.d.ts +55 -0
  28. package/lib/button/stories/text-button.stories.js +206 -0
  29. package/lib/button/stories/text-button.stories.js.map +1 -0
  30. package/lib/button/stories/text-button.stories.mjs +34 -0
  31. package/lib/button/stories/text-button.stories.mjs.map +1 -0
  32. package/lib/{chunk-3B7LTZRJ.mjs → chunk-6DXA3EX7.mjs} +8 -6
  33. package/lib/chunk-6DXA3EX7.mjs.map +1 -0
  34. package/lib/chunk-7DK5MO62.mjs +8 -0
  35. package/lib/chunk-7DK5MO62.mjs.map +1 -0
  36. package/lib/chunk-CZVB2Y6O.mjs +27 -0
  37. package/lib/chunk-CZVB2Y6O.mjs.map +1 -0
  38. package/lib/chunk-GQWO45DN.mjs +32 -0
  39. package/lib/chunk-GQWO45DN.mjs.map +1 -0
  40. package/lib/chunk-GRCEZABQ.mjs +38 -0
  41. package/lib/chunk-GRCEZABQ.mjs.map +1 -0
  42. package/lib/chunk-JB4TYHDE.mjs +11 -0
  43. package/lib/chunk-JB4TYHDE.mjs.map +1 -0
  44. package/lib/chunk-JFT6JILC.mjs +12 -0
  45. package/lib/chunk-JFT6JILC.mjs.map +1 -0
  46. package/lib/chunk-QE5LVT7A.mjs +90 -0
  47. package/lib/chunk-QE5LVT7A.mjs.map +1 -0
  48. package/lib/chunk-QOLETTSG.mjs +28 -0
  49. package/lib/chunk-QOLETTSG.mjs.map +1 -0
  50. package/lib/chunk-R4F4LGAY.mjs +56 -0
  51. package/lib/chunk-R4F4LGAY.mjs.map +1 -0
  52. package/lib/chunk-URJXIWFX.mjs +16 -0
  53. package/lib/chunk-URJXIWFX.mjs.map +1 -0
  54. package/lib/chunk-X2UWIBNH.mjs +16 -0
  55. package/lib/chunk-X2UWIBNH.mjs.map +1 -0
  56. package/lib/chunk-XO7SDD7W.mjs +17 -0
  57. package/lib/chunk-XO7SDD7W.mjs.map +1 -0
  58. package/lib/customized-link/external-link.d.mts +7 -0
  59. package/lib/customized-link/external-link.d.ts +7 -0
  60. package/lib/customized-link/external-link.js +18 -0
  61. package/lib/customized-link/external-link.js.map +1 -0
  62. package/lib/customized-link/external-link.mjs +3 -0
  63. package/lib/customized-link/external-link.mjs.map +1 -0
  64. package/lib/customized-link/index.d.mts +11 -0
  65. package/lib/customized-link/index.d.ts +11 -0
  66. package/lib/customized-link/index.js +42 -0
  67. package/lib/customized-link/index.js.map +1 -0
  68. package/lib/customized-link/index.mjs +5 -0
  69. package/lib/customized-link/index.mjs.map +1 -0
  70. package/lib/customized-link/internal-link.d.mts +7 -0
  71. package/lib/customized-link/internal-link.d.ts +7 -0
  72. package/lib/customized-link/internal-link.js +22 -0
  73. package/lib/customized-link/internal-link.js.map +1 -0
  74. package/lib/customized-link/internal-link.mjs +3 -0
  75. package/lib/customized-link/internal-link.mjs.map +1 -0
  76. package/lib/customized-link/type.d.mts +9 -0
  77. package/lib/customized-link/type.d.ts +9 -0
  78. package/lib/customized-link/type.js +4 -0
  79. package/lib/customized-link/type.js.map +1 -0
  80. package/lib/customized-link/type.mjs +3 -0
  81. package/lib/customized-link/type.mjs.map +1 -0
  82. package/lib/storybook/utils/get-enum-arg.d.mts +19 -0
  83. package/lib/storybook/utils/get-enum-arg.d.ts +19 -0
  84. package/lib/storybook/utils/get-enum-arg.js +31 -0
  85. package/lib/storybook/utils/get-enum-arg.js.map +1 -0
  86. package/lib/storybook/utils/get-enum-arg.mjs +3 -0
  87. package/lib/storybook/utils/get-enum-arg.mjs.map +1 -0
  88. package/lib/styles.css +178 -2
  89. package/lib/styles.css.map +1 -1
  90. package/lib/text/heading.d.mts +8 -8
  91. package/lib/text/heading.d.ts +8 -8
  92. package/lib/text/paragraph.d.mts +6 -6
  93. package/lib/text/paragraph.d.ts +6 -6
  94. package/lib/text/stories/heading.stories.d.mts +35 -0
  95. package/lib/text/stories/heading.stories.d.ts +35 -0
  96. package/lib/text/stories/heading.stories.js +131 -0
  97. package/lib/text/stories/heading.stories.js.map +1 -0
  98. package/lib/text/stories/heading.stories.mjs +50 -0
  99. package/lib/text/stories/heading.stories.mjs.map +1 -0
  100. package/lib/text/stories/paragraph.stories.d.mts +33 -0
  101. package/lib/text/stories/paragraph.stories.d.ts +33 -0
  102. package/lib/text/stories/paragraph.stories.js +108 -0
  103. package/lib/text/stories/paragraph.stories.js.map +1 -0
  104. package/lib/text/stories/paragraph.stories.mjs +40 -0
  105. package/lib/text/stories/paragraph.stories.mjs.map +1 -0
  106. package/lib/title-bar/components/title-tab/hook.d.mts +5 -0
  107. package/lib/title-bar/components/title-tab/hook.d.ts +5 -0
  108. package/lib/title-bar/components/title-tab/hook.js +34 -0
  109. package/lib/title-bar/components/title-tab/hook.js.map +1 -0
  110. package/lib/title-bar/components/title-tab/hook.mjs +3 -0
  111. package/lib/title-bar/components/title-tab/hook.mjs.map +1 -0
  112. package/lib/title-bar/components/title-tab/index.d.mts +11 -0
  113. package/lib/title-bar/components/title-tab/index.d.ts +11 -0
  114. package/lib/title-bar/components/title-tab/index.js +321 -0
  115. package/lib/title-bar/components/title-tab/index.js.map +1 -0
  116. package/lib/title-bar/components/title-tab/index.mjs +15 -0
  117. package/lib/title-bar/components/title-tab/index.mjs.map +1 -0
  118. package/lib/title-bar/components/title-tab/tab-item.d.mts +10 -0
  119. package/lib/title-bar/components/title-tab/tab-item.d.ts +10 -0
  120. package/lib/title-bar/components/title-tab/tab-item.js +204 -0
  121. package/lib/title-bar/components/title-tab/tab-item.js.map +1 -0
  122. package/lib/title-bar/components/title-tab/tab-item.mjs +12 -0
  123. package/lib/title-bar/components/title-tab/tab-item.mjs.map +1 -0
  124. package/lib/title-bar/components/title-tab/type.d.mts +8 -0
  125. package/lib/title-bar/components/title-tab/type.d.ts +8 -0
  126. package/lib/title-bar/components/title-tab/type.js +4 -0
  127. package/lib/title-bar/components/title-tab/type.js.map +1 -0
  128. package/lib/title-bar/components/title-tab/type.mjs +3 -0
  129. package/lib/title-bar/components/title-tab/type.mjs.map +1 -0
  130. package/lib/title-bar/components/title1.d.mts +10 -0
  131. package/lib/title-bar/components/title1.d.ts +10 -0
  132. package/lib/title-bar/components/title1.js +123 -0
  133. package/lib/title-bar/components/title1.js.map +1 -0
  134. package/lib/title-bar/components/title1.mjs +6 -0
  135. package/lib/title-bar/components/title1.mjs.map +1 -0
  136. package/lib/title-bar/components/title2.d.mts +3 -3
  137. package/lib/title-bar/components/title2.d.ts +3 -3
  138. package/lib/title-bar/components/title2.js +6 -4
  139. package/lib/title-bar/components/title2.js.map +1 -1
  140. package/lib/title-bar/components/title2.mjs +1 -1
  141. package/lib/title-bar/index.d.mts +15 -2
  142. package/lib/title-bar/index.d.ts +15 -2
  143. package/lib/title-bar/index.js +250 -8
  144. package/lib/title-bar/index.js.map +1 -1
  145. package/lib/title-bar/index.mjs +18 -3
  146. package/lib/title-bar/index.mjs.map +1 -1
  147. package/lib/title-bar/stories/title-tab.stories.d.mts +17 -0
  148. package/lib/title-bar/stories/title-tab.stories.d.ts +17 -0
  149. package/lib/title-bar/stories/title-tab.stories.js +345 -0
  150. package/lib/title-bar/stories/title-tab.stories.js.map +1 -0
  151. package/lib/title-bar/stories/title-tab.stories.mjs +38 -0
  152. package/lib/title-bar/stories/title-tab.stories.mjs.map +1 -0
  153. package/lib/title-bar/stories/title1.stories.d.mts +18 -0
  154. package/lib/title-bar/stories/title1.stories.d.ts +18 -0
  155. package/lib/title-bar/stories/title1.stories.js +155 -0
  156. package/lib/title-bar/stories/title1.stories.js.map +1 -0
  157. package/lib/title-bar/stories/title1.stories.mjs +35 -0
  158. package/lib/title-bar/stories/title1.stories.mjs.map +1 -0
  159. package/lib/title-bar/stories/title2.stories.d.mts +18 -0
  160. package/lib/title-bar/stories/title2.stories.d.ts +18 -0
  161. package/lib/title-bar/stories/title2.stories.js +258 -0
  162. package/lib/title-bar/stories/title2.stories.js.map +1 -0
  163. package/lib/title-bar/stories/title2.stories.mjs +37 -0
  164. package/lib/title-bar/stories/title2.stories.mjs.map +1 -0
  165. package/package.json +12 -5
  166. 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
- - [ ] add storybook
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,156 @@
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
+ var TextButton = ({
75
+ text,
76
+ leftIconComponent,
77
+ rightIconComponent,
78
+ size = 0 /* S */,
79
+ theme = THEME.normal,
80
+ style = 1 /* DARK */,
81
+ active = false,
82
+ disabled = false,
83
+ loading = false,
84
+ className = ""
85
+ }) => {
86
+ const TextJSX = react.useMemo(
87
+ () => size === 0 /* S */ ? /* @__PURE__ */ jsxRuntime.jsx(P2, { text }) : /* @__PURE__ */ jsxRuntime.jsx(P1, { text }),
88
+ [size, text]
89
+ );
90
+ return /* @__PURE__ */ jsxRuntime.jsx(
91
+ "div",
92
+ {
93
+ className: clsx2__default.default(
94
+ "flex items-center",
95
+ {
96
+ "cursor-default": disabled,
97
+ "cursor-pointer": !disabled
98
+ },
99
+ {
100
+ "text-gray-500 hover:text-gray-500": disabled && (theme === THEME.photography || theme === THEME.transparent),
101
+ "text-gray-400 hover:text-gray-400": disabled || theme === THEME.photography && style === 2 /* LIGHT */ && !active && !disabled,
102
+ "text-gray-200 hover:text-supportive-pastel": theme === THEME.photography && !active && !disabled,
103
+ "text-gray-300 hover:text-gray-400": theme === THEME.photography && style === 2 /* LIGHT */ && active && !disabled,
104
+ "text-gray-white hover:text-supportive-pastel": theme === THEME.photography && style === 1 /* DARK */ && active && !disabled,
105
+ "text-supportive-faded hover:text-supportive-pastel": theme === THEME.photography && style === 0 /* BRAND */ && active && !disabled,
106
+ "text-gray-100 hover:text-gray-200": theme === THEME.transparent && !active && !disabled,
107
+ "text-gray-white hover:text-gray-white": theme === THEME.transparent && active && !disabled,
108
+ "text-gray-600 hover:text-brand-heavy": theme === THEME.normal && !active && !disabled,
109
+ "text-brand-heavy hover:text-brand-heavy": theme === THEME.normal && active && !disabled
110
+ },
111
+ className
112
+ ),
113
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex justify-center items-center", children: [
114
+ /* @__PURE__ */ jsxRuntime.jsxs(
115
+ "div",
116
+ {
117
+ className: clsx2__default.default("flex justify-center items-center", {
118
+ "opacity-0": loading,
119
+ "opacity-100": !loading
120
+ }),
121
+ children: [
122
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center mr-[4px]", children: leftIconComponent }),
123
+ TextJSX,
124
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center ml-[4px]", children: rightIconComponent })
125
+ ]
126
+ }
127
+ ),
128
+ /* @__PURE__ */ jsxRuntime.jsx(
129
+ "span",
130
+ {
131
+ className: clsx2__default.default(
132
+ "inline-block absolute box-border animation-spin",
133
+ "border-2 border-solid border-gray-400 border-t-gray-600 rounded-[50%]",
134
+ {
135
+ "size-[18px]": size === 0 /* S */,
136
+ "size-[24px]": size === 1 /* L */
137
+ },
138
+ {
139
+ "opacity-0": !loading,
140
+ "opacity-100": loading
141
+ }
142
+ )
143
+ }
144
+ )
145
+ ] })
146
+ }
147
+ );
148
+ };
149
+ TextButton.Size = Size;
150
+ TextButton.Style = Style;
151
+ TextButton.THEME = THEME;
152
+ var text_button_default = TextButton;
153
+
154
+ module.exports = text_button_default;
155
+ //# sourceMappingURL=index.js.map
156
+ //# 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/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","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\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} /> : <P1 text={text} />),\n [size, text]\n )\n\n return (\n <div\n className={clsx(\n 'flex items-center',\n {\n 'cursor-default': disabled,\n 'cursor-pointer': !disabled,\n },\n {\n 'text-gray-500 hover:text-gray-500':\n disabled &&\n (theme === THEME.photography || theme === THEME.transparent),\n 'text-gray-400 hover:text-gray-400':\n disabled ||\n (theme === THEME.photography &&\n style === Style.LIGHT &&\n !active &&\n !disabled),\n 'text-gray-200 hover:text-supportive-pastel':\n theme === THEME.photography && !active && !disabled,\n 'text-gray-300 hover:text-gray-400':\n theme === THEME.photography &&\n style === Style.LIGHT &&\n active &&\n !disabled,\n 'text-gray-white hover:text-supportive-pastel':\n theme === THEME.photography &&\n style === Style.DARK &&\n active &&\n !disabled,\n 'text-supportive-faded hover:text-supportive-pastel':\n theme === THEME.photography &&\n style === Style.BRAND &&\n active &&\n !disabled,\n 'text-gray-100 hover:text-gray-200':\n theme === THEME.transparent && !active && !disabled,\n 'text-gray-white hover:text-gray-white':\n theme === THEME.transparent && active && !disabled,\n 'text-gray-600 hover:text-brand-heavy':\n theme === THEME.normal && !active && !disabled,\n 'text-brand-heavy hover:text-brand-heavy':\n theme === THEME.normal && active && !disabled,\n },\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,7 @@
1
+ export { text_button_default as default } from '../../../chunk-QE5LVT7A.mjs';
2
+ import '../../../chunk-HQG6Q2EY.mjs';
3
+ import '../../../chunk-UM7RNC2Y.mjs';
4
+ import '../../../chunk-JB4TYHDE.mjs';
5
+ import '../../../chunk-URJXIWFX.mjs';
6
+ //# sourceMappingURL=index.mjs.map
7
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.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,3 @@
1
+ export { THEME } from '../chunk-JB4TYHDE.mjs';
2
+ //# sourceMappingURL=constant.mjs.map
3
+ //# sourceMappingURL=constant.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"constant.mjs"}
@@ -0,0 +1,11 @@
1
+ declare enum Size {
2
+ S = 0,
3
+ L = 1
4
+ }
5
+ declare enum Style {
6
+ BRAND = 0,
7
+ DARK = 1,
8
+ LIGHT = 2
9
+ }
10
+
11
+ export { Size, Style };
@@ -0,0 +1,11 @@
1
+ declare enum Size {
2
+ S = 0,
3
+ L = 1
4
+ }
5
+ declare enum Style {
6
+ BRAND = 0,
7
+ DARK = 1,
8
+ LIGHT = 2
9
+ }
10
+
11
+ export { Size, Style };
@@ -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,3 @@
1
+ export { Size, Style } from '../chunk-URJXIWFX.mjs';
2
+ //# sourceMappingURL=enum.mjs.map
3
+ //# sourceMappingURL=enum.mjs.map
@@ -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 };
@@ -0,0 +1,162 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var react = require('react');
6
+ var clsx2 = require('clsx');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var clsx2__default = /*#__PURE__*/_interopDefault(clsx2);
12
+
13
+ // src/button/components/text-button/index.tsx
14
+
15
+ // src/text/enum/index.ts
16
+ var WEIGHT = {
17
+ extraLight: "extra-light",
18
+ normal: "normal",
19
+ bold: "bold"
20
+ };
21
+ var baseClass = "font-default leading-[150%] flex items-center m-0";
22
+ var variantClass = {
23
+ P1: "text-[16px]",
24
+ P2: "text-[14px]",
25
+ P3: "text-[12px]",
26
+ P4: "text-[10px]"
27
+ };
28
+ var ParagraphVariant = (variant) => {
29
+ const Component = ({
30
+ text = "",
31
+ weight = WEIGHT.normal,
32
+ className = "",
33
+ ...props
34
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
35
+ "p",
36
+ {
37
+ className: clsx2__default.default(
38
+ baseClass,
39
+ variantClass[variant],
40
+ `font-${weight}`,
41
+ className
42
+ ),
43
+ ...props,
44
+ children: text
45
+ }
46
+ );
47
+ Component.displayName = variant;
48
+ Component.Weight = WEIGHT;
49
+ return Component;
50
+ };
51
+ var P1 = ParagraphVariant("P1");
52
+ var P2 = ParagraphVariant("P2");
53
+ ParagraphVariant("P3");
54
+ ParagraphVariant("P4");
55
+
56
+ // src/button/enum.ts
57
+ var Size = /* @__PURE__ */ ((Size2) => {
58
+ Size2[Size2["S"] = 0] = "S";
59
+ Size2[Size2["L"] = 1] = "L";
60
+ return Size2;
61
+ })(Size || {});
62
+ var Style = /* @__PURE__ */ ((Style2) => {
63
+ Style2[Style2["BRAND"] = 0] = "BRAND";
64
+ Style2[Style2["DARK"] = 1] = "DARK";
65
+ Style2[Style2["LIGHT"] = 2] = "LIGHT";
66
+ return Style2;
67
+ })(Style || {});
68
+
69
+ // src/button/constant.ts
70
+ var THEME = {
71
+ normal: "normal",
72
+ photography: "photography",
73
+ transparent: "transparent",
74
+ index: "index"
75
+ };
76
+ var TextButton = ({
77
+ text,
78
+ leftIconComponent,
79
+ rightIconComponent,
80
+ size = 0 /* S */,
81
+ theme = THEME.normal,
82
+ style = 1 /* DARK */,
83
+ active = false,
84
+ disabled = false,
85
+ loading = false,
86
+ className = ""
87
+ }) => {
88
+ const TextJSX = react.useMemo(
89
+ () => size === 0 /* S */ ? /* @__PURE__ */ jsxRuntime.jsx(P2, { text }) : /* @__PURE__ */ jsxRuntime.jsx(P1, { text }),
90
+ [size, text]
91
+ );
92
+ return /* @__PURE__ */ jsxRuntime.jsx(
93
+ "div",
94
+ {
95
+ className: clsx2__default.default(
96
+ "flex items-center",
97
+ {
98
+ "cursor-default": disabled,
99
+ "cursor-pointer": !disabled
100
+ },
101
+ {
102
+ "text-gray-500 hover:text-gray-500": disabled && (theme === THEME.photography || theme === THEME.transparent),
103
+ "text-gray-400 hover:text-gray-400": disabled || theme === THEME.photography && style === 2 /* LIGHT */ && !active && !disabled,
104
+ "text-gray-200 hover:text-supportive-pastel": theme === THEME.photography && !active && !disabled,
105
+ "text-gray-300 hover:text-gray-400": theme === THEME.photography && style === 2 /* LIGHT */ && active && !disabled,
106
+ "text-gray-white hover:text-supportive-pastel": theme === THEME.photography && style === 1 /* DARK */ && active && !disabled,
107
+ "text-supportive-faded hover:text-supportive-pastel": theme === THEME.photography && style === 0 /* BRAND */ && active && !disabled,
108
+ "text-gray-100 hover:text-gray-200": theme === THEME.transparent && !active && !disabled,
109
+ "text-gray-white hover:text-gray-white": theme === THEME.transparent && active && !disabled,
110
+ "text-gray-600 hover:text-brand-heavy": theme === THEME.normal && !active && !disabled,
111
+ "text-brand-heavy hover:text-brand-heavy": theme === THEME.normal && active && !disabled
112
+ },
113
+ className
114
+ ),
115
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex justify-center items-center", children: [
116
+ /* @__PURE__ */ jsxRuntime.jsxs(
117
+ "div",
118
+ {
119
+ className: clsx2__default.default("flex justify-center items-center", {
120
+ "opacity-0": loading,
121
+ "opacity-100": !loading
122
+ }),
123
+ children: [
124
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center mr-[4px]", children: leftIconComponent }),
125
+ TextJSX,
126
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center ml-[4px]", children: rightIconComponent })
127
+ ]
128
+ }
129
+ ),
130
+ /* @__PURE__ */ jsxRuntime.jsx(
131
+ "span",
132
+ {
133
+ className: clsx2__default.default(
134
+ "inline-block absolute box-border animation-spin",
135
+ "border-2 border-solid border-gray-400 border-t-gray-600 rounded-[50%]",
136
+ {
137
+ "size-[18px]": size === 0 /* S */,
138
+ "size-[24px]": size === 1 /* L */
139
+ },
140
+ {
141
+ "opacity-0": !loading,
142
+ "opacity-100": loading
143
+ }
144
+ )
145
+ }
146
+ )
147
+ ] })
148
+ }
149
+ );
150
+ };
151
+ TextButton.Size = Size;
152
+ TextButton.Style = Style;
153
+ TextButton.THEME = THEME;
154
+ var text_button_default = TextButton;
155
+
156
+ // src/button/index.ts
157
+ var button_default = { TextButton: text_button_default };
158
+
159
+ exports.TextButton = text_button_default;
160
+ exports.default = button_default;
161
+ //# sourceMappingURL=index.js.map
162
+ //# 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/index.tsx","../../src/button/index.ts"],"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","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\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} /> : <P1 text={text} />),\n [size, text]\n )\n\n return (\n <div\n className={clsx(\n 'flex items-center',\n {\n 'cursor-default': disabled,\n 'cursor-pointer': !disabled,\n },\n {\n 'text-gray-500 hover:text-gray-500':\n disabled &&\n (theme === THEME.photography || theme === THEME.transparent),\n 'text-gray-400 hover:text-gray-400':\n disabled ||\n (theme === THEME.photography &&\n style === Style.LIGHT &&\n !active &&\n !disabled),\n 'text-gray-200 hover:text-supportive-pastel':\n theme === THEME.photography && !active && !disabled,\n 'text-gray-300 hover:text-gray-400':\n theme === THEME.photography &&\n style === Style.LIGHT &&\n active &&\n !disabled,\n 'text-gray-white hover:text-supportive-pastel':\n theme === THEME.photography &&\n style === Style.DARK &&\n active &&\n !disabled,\n 'text-supportive-faded hover:text-supportive-pastel':\n theme === THEME.photography &&\n style === Style.BRAND &&\n active &&\n !disabled,\n 'text-gray-100 hover:text-gray-200':\n theme === THEME.transparent && !active && !disabled,\n 'text-gray-white hover:text-gray-white':\n theme === THEME.transparent && active && !disabled,\n 'text-gray-600 hover:text-brand-heavy':\n theme === THEME.normal && !active && !disabled,\n 'text-brand-heavy hover:text-brand-heavy':\n theme === THEME.normal && active && !disabled,\n },\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","import TextButton from './components/text-button'\n\nexport { TextButton }\n\nexport default { TextButton }\n"]}
@@ -0,0 +1,8 @@
1
+ export { button_default as default } from '../chunk-7DK5MO62.mjs';
2
+ export { text_button_default as TextButton } from '../chunk-QE5LVT7A.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"}