@twreporter/react-typescript-components 0.1.0-beta.10

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 (240) hide show
  1. package/README.md +74 -0
  2. package/lib/button/constants.d.mts +3 -0
  3. package/lib/button/constants.d.ts +3 -0
  4. package/lib/button/constants.js +5 -0
  5. package/lib/button/constants.mjs +3 -0
  6. package/lib/button/index.d.mts +160 -0
  7. package/lib/button/index.d.ts +160 -0
  8. package/lib/button/index.js +13 -0
  9. package/lib/button/index.mjs +7 -0
  10. package/lib/button-DFLYlJJW.js +630 -0
  11. package/lib/button-DFLYlJJW.js.map +1 -0
  12. package/lib/button-DyUYGG90.mjs +591 -0
  13. package/lib/button-DyUYGG90.mjs.map +1 -0
  14. package/lib/chunk-BxBTb9qk.js +39 -0
  15. package/lib/constants/external-links.d.mts +16 -0
  16. package/lib/constants/external-links.d.ts +16 -0
  17. package/lib/constants/external-links.js +3 -0
  18. package/lib/constants/external-links.mjs +3 -0
  19. package/lib/constants/internal-links.d.mts +51 -0
  20. package/lib/constants/internal-links.d.ts +51 -0
  21. package/lib/constants/internal-links.js +3 -0
  22. package/lib/constants/internal-links.mjs +3 -0
  23. package/lib/constants/release-branch.d.mts +3 -0
  24. package/lib/constants/release-branch.d.ts +3 -0
  25. package/lib/constants/release-branch.js +3 -0
  26. package/lib/constants/release-branch.mjs +3 -0
  27. package/lib/constants/request-origins.d.mts +68 -0
  28. package/lib/constants/request-origins.d.ts +68 -0
  29. package/lib/constants/request-origins.js +47 -0
  30. package/lib/constants/request-origins.js.map +1 -0
  31. package/lib/constants/request-origins.mjs +46 -0
  32. package/lib/constants/request-origins.mjs.map +1 -0
  33. package/lib/constants/theme.d.mts +3 -0
  34. package/lib/constants/theme.d.ts +3 -0
  35. package/lib/constants/theme.js +3 -0
  36. package/lib/constants/theme.mjs +3 -0
  37. package/lib/constants-2TRY2zTK.js +38 -0
  38. package/lib/constants-2TRY2zTK.js.map +1 -0
  39. package/lib/constants-BS3rPbaX.d.ts +17 -0
  40. package/lib/constants-BWFuBApI.mjs +14 -0
  41. package/lib/constants-BWFuBApI.mjs.map +1 -0
  42. package/lib/constants-B_NgWFML.d.ts +24 -0
  43. package/lib/constants-BmxSMOOn.js +36 -0
  44. package/lib/constants-BmxSMOOn.js.map +1 -0
  45. package/lib/constants-BqeEbkVD.mjs +20 -0
  46. package/lib/constants-BqeEbkVD.mjs.map +1 -0
  47. package/lib/constants-BswaTS-y.d.mts +29 -0
  48. package/lib/constants-Bz-ufaJ2.js +39 -0
  49. package/lib/constants-Bz-ufaJ2.js.map +1 -0
  50. package/lib/constants-CEyUZ-jZ.d.mts +11 -0
  51. package/lib/constants-CMMcn0f-.d.ts +11 -0
  52. package/lib/constants-CQscYQcW.mjs +25 -0
  53. package/lib/constants-CQscYQcW.mjs.map +1 -0
  54. package/lib/constants-DF_II8Fz.js +43 -0
  55. package/lib/constants-DF_II8Fz.js.map +1 -0
  56. package/lib/constants-DNr36wyK.d.mts +24 -0
  57. package/lib/constants-DQxcqnYL.d.ts +29 -0
  58. package/lib/constants-DRyQ6AuU.js +15 -0
  59. package/lib/constants-DRyQ6AuU.js.map +1 -0
  60. package/lib/constants-K2ObjToq.js +26 -0
  61. package/lib/constants-K2ObjToq.js.map +1 -0
  62. package/lib/constants-OhAETTiQ.d.mts +17 -0
  63. package/lib/constants-QF71lY6v.mjs +34 -0
  64. package/lib/constants-QF71lY6v.mjs.map +1 -0
  65. package/lib/constants-gCmka4Fp.d.ts +22 -0
  66. package/lib/constants-jYAxSTFp.d.mts +22 -0
  67. package/lib/constants-oTHAnh6r.mjs +18 -0
  68. package/lib/constants-oTHAnh6r.mjs.map +1 -0
  69. package/lib/constants-t0lkfgqP.mjs +9 -0
  70. package/lib/constants-t0lkfgqP.mjs.map +1 -0
  71. package/lib/context-BCesW3fW.mjs +24 -0
  72. package/lib/context-BCesW3fW.mjs.map +1 -0
  73. package/lib/context-Bvr0Qj2x.js +37 -0
  74. package/lib/context-Bvr0Qj2x.js.map +1 -0
  75. package/lib/customized-link/external-link.d.mts +3 -0
  76. package/lib/customized-link/external-link.d.ts +3 -0
  77. package/lib/customized-link/external-link.js +3 -0
  78. package/lib/customized-link/external-link.mjs +3 -0
  79. package/lib/customized-link/index.d.mts +13 -0
  80. package/lib/customized-link/index.d.ts +13 -0
  81. package/lib/customized-link/index.js +8 -0
  82. package/lib/customized-link/index.mjs +5 -0
  83. package/lib/customized-link/internal-link.d.mts +3 -0
  84. package/lib/customized-link/internal-link.d.ts +3 -0
  85. package/lib/customized-link/internal-link.js +6 -0
  86. package/lib/customized-link/internal-link.mjs +6 -0
  87. package/lib/customized-link/type.d.mts +2 -0
  88. package/lib/customized-link/type.d.ts +2 -0
  89. package/lib/customized-link/type.js +0 -0
  90. package/lib/customized-link/type.mjs +1 -0
  91. package/lib/customized-link-BkuKVCKQ.mjs +12 -0
  92. package/lib/customized-link-BkuKVCKQ.mjs.map +1 -0
  93. package/lib/customized-link-CK7Xlgdt.js +17 -0
  94. package/lib/customized-link-CK7Xlgdt.js.map +1 -0
  95. package/lib/divider/constants.d.mts +3 -0
  96. package/lib/divider/constants.d.ts +3 -0
  97. package/lib/divider/constants.js +3 -0
  98. package/lib/divider/constants.mjs +3 -0
  99. package/lib/divider/index.d.mts +15 -0
  100. package/lib/divider/index.d.ts +15 -0
  101. package/lib/divider/index.js +6 -0
  102. package/lib/divider/index.mjs +4 -0
  103. package/lib/divider-Bb3tebJO.mjs +15 -0
  104. package/lib/divider-Bb3tebJO.mjs.map +1 -0
  105. package/lib/divider-b3Shh7FV.js +29 -0
  106. package/lib/divider-b3Shh7FV.js.map +1 -0
  107. package/lib/dropdown-menu/index.d.mts +17 -0
  108. package/lib/dropdown-menu/index.d.ts +17 -0
  109. package/lib/dropdown-menu/index.js +14 -0
  110. package/lib/dropdown-menu/index.mjs +14 -0
  111. package/lib/dropdown-menu-CCtPuYyJ.js +150 -0
  112. package/lib/dropdown-menu-CCtPuYyJ.js.map +1 -0
  113. package/lib/dropdown-menu-Cil4RtSK.mjs +117 -0
  114. package/lib/dropdown-menu-Cil4RtSK.mjs.map +1 -0
  115. package/lib/external-link-2XoC1_oL.d.ts +9 -0
  116. package/lib/external-link-BUhvS4ry.d.mts +9 -0
  117. package/lib/external-link-CEDvlQYo.js +23 -0
  118. package/lib/external-link-CEDvlQYo.js.map +1 -0
  119. package/lib/external-link-Cx9S31Ye.mjs +16 -0
  120. package/lib/external-link-Cx9S31Ye.mjs.map +1 -0
  121. package/lib/external-links-2b4M_rcA.mjs +17 -0
  122. package/lib/external-links-2b4M_rcA.mjs.map +1 -0
  123. package/lib/external-links-SfJjb48j.js +23 -0
  124. package/lib/external-links-SfJjb48j.js.map +1 -0
  125. package/lib/hamburger-menu/index.d.mts +7 -0
  126. package/lib/hamburger-menu/index.d.ts +6 -0
  127. package/lib/hamburger-menu/index.js +22 -0
  128. package/lib/hamburger-menu/index.mjs +22 -0
  129. package/lib/hamburger-menu-BZ1hA7l5.mjs +472 -0
  130. package/lib/hamburger-menu-BZ1hA7l5.mjs.map +1 -0
  131. package/lib/hamburger-menu-Bd_wmcAB.js +487 -0
  132. package/lib/hamburger-menu-Bd_wmcAB.js.map +1 -0
  133. package/lib/header/index.d.mts +26 -0
  134. package/lib/header/index.d.ts +25 -0
  135. package/lib/header/index.js +465 -0
  136. package/lib/header/index.js.map +1 -0
  137. package/lib/header/index.mjs +459 -0
  138. package/lib/header/index.mjs.map +1 -0
  139. package/lib/heading-CFSkTbdH.mjs +37 -0
  140. package/lib/heading-CFSkTbdH.mjs.map +1 -0
  141. package/lib/heading-DFzj2z0V.js +75 -0
  142. package/lib/heading-DFzj2z0V.js.map +1 -0
  143. package/lib/icons/constants.d.mts +3 -0
  144. package/lib/icons/constants.d.ts +3 -0
  145. package/lib/icons/constants.js +5 -0
  146. package/lib/icons/constants.mjs +3 -0
  147. package/lib/icons/index.d.mts +43 -0
  148. package/lib/icons/index.d.ts +43 -0
  149. package/lib/icons/index.js +15 -0
  150. package/lib/icons/index.mjs +5 -0
  151. package/lib/icons-DF-7dKxN.js +128 -0
  152. package/lib/icons-DF-7dKxN.js.map +1 -0
  153. package/lib/icons-DguoV48M.mjs +60 -0
  154. package/lib/icons-DguoV48M.mjs.map +1 -0
  155. package/lib/index-BmIgLA0K.d.mts +5 -0
  156. package/lib/index-H3peA2d_.d.ts +5 -0
  157. package/lib/internal-link-CqTu3Yi5.js +2278 -0
  158. package/lib/internal-link-CqTu3Yi5.js.map +1 -0
  159. package/lib/internal-link-D8jJal8P.d.mts +9 -0
  160. package/lib/internal-link-DCSEl1jM.d.ts +9 -0
  161. package/lib/internal-link-NQb751uB.mjs +2299 -0
  162. package/lib/internal-link-NQb751uB.mjs.map +1 -0
  163. package/lib/internal-links-BF-974mA.mjs +52 -0
  164. package/lib/internal-links-BF-974mA.mjs.map +1 -0
  165. package/lib/internal-links-CBkMU8cY.js +58 -0
  166. package/lib/internal-links-CBkMU8cY.js.map +1 -0
  167. package/lib/logo/constants.d.mts +3 -0
  168. package/lib/logo/constants.d.ts +3 -0
  169. package/lib/logo/constants.js +5 -0
  170. package/lib/logo/constants.mjs +3 -0
  171. package/lib/logo/index.d.mts +42 -0
  172. package/lib/logo/index.d.ts +42 -0
  173. package/lib/logo/index.js +8 -0
  174. package/lib/logo/index.mjs +5 -0
  175. package/lib/logo-CC5oU9Qb.mjs +64 -0
  176. package/lib/logo-CC5oU9Qb.mjs.map +1 -0
  177. package/lib/logo-D4M-1sGD.js +83 -0
  178. package/lib/logo-D4M-1sGD.js.map +1 -0
  179. package/lib/paragraph-BWXQNQtX.mjs +30 -0
  180. package/lib/paragraph-BWXQNQtX.mjs.map +1 -0
  181. package/lib/paragraph-CJvb0_cM.js +56 -0
  182. package/lib/paragraph-CJvb0_cM.js.map +1 -0
  183. package/lib/release-branch-CRZV4Ivz.js +18 -0
  184. package/lib/release-branch-CRZV4Ivz.js.map +1 -0
  185. package/lib/release-branch-CsBbhuYE.d.ts +14 -0
  186. package/lib/release-branch-DNCD1uH_.mjs +12 -0
  187. package/lib/release-branch-DNCD1uH_.mjs.map +1 -0
  188. package/lib/release-branch-DZwlCiWD.d.mts +14 -0
  189. package/lib/styles.css +1599 -0
  190. package/lib/tab-bar/constants.d.mts +16 -0
  191. package/lib/tab-bar/constants.d.ts +16 -0
  192. package/lib/tab-bar/constants.js +7 -0
  193. package/lib/tab-bar/constants.mjs +7 -0
  194. package/lib/tab-bar/index.d.mts +10 -0
  195. package/lib/tab-bar/index.d.ts +9 -0
  196. package/lib/tab-bar/index.js +18 -0
  197. package/lib/tab-bar/index.mjs +18 -0
  198. package/lib/tab-bar/theme.d.mts +10 -0
  199. package/lib/tab-bar/theme.d.ts +10 -0
  200. package/lib/tab-bar/theme.js +4 -0
  201. package/lib/tab-bar/theme.mjs +4 -0
  202. package/lib/tab-bar-CBL2tDXk.mjs +62 -0
  203. package/lib/tab-bar-CBL2tDXk.mjs.map +1 -0
  204. package/lib/tab-bar-ZRrpziiN.js +78 -0
  205. package/lib/tab-bar-ZRrpziiN.js.map +1 -0
  206. package/lib/text/constants.d.mts +3 -0
  207. package/lib/text/constants.d.ts +3 -0
  208. package/lib/text/constants.js +4 -0
  209. package/lib/text/constants.mjs +3 -0
  210. package/lib/text/heading.d.mts +31 -0
  211. package/lib/text/heading.d.ts +31 -0
  212. package/lib/text/heading.js +9 -0
  213. package/lib/text/heading.mjs +4 -0
  214. package/lib/text/paragraph.d.mts +25 -0
  215. package/lib/text/paragraph.d.ts +25 -0
  216. package/lib/text/paragraph.js +7 -0
  217. package/lib/text/paragraph.mjs +4 -0
  218. package/lib/theme-BDGfJ8n-.d.ts +13 -0
  219. package/lib/theme-BErS2Qs6.mjs +13 -0
  220. package/lib/theme-BErS2Qs6.mjs.map +1 -0
  221. package/lib/theme-BG6yZVj-.mjs +11 -0
  222. package/lib/theme-BG6yZVj-.mjs.map +1 -0
  223. package/lib/theme-BPB1kPtQ.js +18 -0
  224. package/lib/theme-BPB1kPtQ.js.map +1 -0
  225. package/lib/theme-ClamfAy8.d.mts +13 -0
  226. package/lib/theme-DDBlIbeS.js +17 -0
  227. package/lib/theme-DDBlIbeS.js.map +1 -0
  228. package/lib/title-bar/index.d.mts +58 -0
  229. package/lib/title-bar/index.d.ts +58 -0
  230. package/lib/title-bar/index.js +153 -0
  231. package/lib/title-bar/index.js.map +1 -0
  232. package/lib/title-bar/index.mjs +145 -0
  233. package/lib/title-bar/index.mjs.map +1 -0
  234. package/lib/type-C4hJK9H9.d.ts +11 -0
  235. package/lib/type-FR-fOZvz.d.mts +11 -0
  236. package/lib/types/index.d.mts +2 -0
  237. package/lib/types/index.d.ts +2 -0
  238. package/lib/types/index.js +0 -0
  239. package/lib/types/index.mjs +1 -0
  240. package/package.json +53 -0
@@ -0,0 +1,591 @@
1
+ import { SIZE, STYLE, TYPE } from "./constants-oTHAnh6r.mjs";
2
+ import { WEIGHT } from "./constants-BWFuBApI.mjs";
3
+ import { P1, P2, P4 } from "./paragraph-BWXQNQtX.mjs";
4
+ import { THEME } from "./theme-BG6yZVj-.mjs";
5
+ import { useMemo } from "react";
6
+ import clsx from "clsx";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+
9
+ //#region src/button/components/text-button/theme.ts
10
+ const getDisabledContainerTheme = (theme) => {
11
+ return ["text-gray-400 hover:text-gray-400", { "text-gray-500 hover:text-gray-500": theme === THEME.photography || theme === THEME.transparent }];
12
+ };
13
+ const getActiveContainerTheme = (theme, style) => {
14
+ return [
15
+ {
16
+ "text-gray-800 hover:text-gray-800": style === STYLE.light,
17
+ "text-brand-heavy hover:text-brand-heavy": style === STYLE.dark,
18
+ "text-brand-dark hover:text-brand-dark": style === STYLE.brand
19
+ },
20
+ {
21
+ "text-gray-400 hover:text-gray-400": theme === THEME.photography && style === STYLE.light,
22
+ "text-supportive-pastel hover:text-supportive-pastel": theme === THEME.photography && style !== STYLE.light
23
+ },
24
+ {
25
+ "text-gray-black hover:text-gray-black": theme === THEME.transparent && style === STYLE.light,
26
+ "text-gray-200 hover:text-gray-200": theme === THEME.transparent && style !== STYLE.light
27
+ }
28
+ ];
29
+ };
30
+ const getContainerTheme = (theme, style) => {
31
+ return [
32
+ {
33
+ "text-gray-600 hover:text-gray-800": style === STYLE.light,
34
+ "text-gray-800 hover:text-brand-heavy": style === STYLE.dark,
35
+ "text-brand-heavy hover:text-brand-dark": style === STYLE.brand
36
+ },
37
+ {
38
+ "text-gray-300 hover:text-gray-400": theme === THEME.photography && style === STYLE.light,
39
+ "text-gray-white hover:text-supportive-pastel": theme === THEME.photography && style === STYLE.dark,
40
+ "text-supportive-faded hover:text-supportive-pastel": theme === THEME.photography && style === STYLE.brand
41
+ },
42
+ {
43
+ "text-gray-800 hover:text-gray-black": theme === THEME.transparent && style === STYLE.light,
44
+ "text-gray-white hover:text-gray-200": theme === THEME.transparent && style !== STYLE.light
45
+ }
46
+ ];
47
+ };
48
+
49
+ //#endregion
50
+ //#region src/button/components/text-button/index.tsx
51
+ const TextButton = ({ text, leftIconComponent, rightIconComponent, size = SIZE.s, theme = THEME.normal, style = STYLE.dark, active = false, disabled = false, loading = false, className = "" }) => {
52
+ const TextJSX = useMemo(() => size === SIZE.s ? /* @__PURE__ */ jsx(P2, {
53
+ text,
54
+ weight: P2.Weight.bold
55
+ }) : /* @__PURE__ */ jsx(P1, {
56
+ text,
57
+ weight: P1.Weight.bold
58
+ }), [size, text]);
59
+ const themeClass = useMemo(() => {
60
+ return (disabled ? getDisabledContainerTheme : active ? getActiveContainerTheme : getContainerTheme)(theme, style);
61
+ }, [
62
+ disabled,
63
+ active,
64
+ theme,
65
+ style
66
+ ]);
67
+ return /* @__PURE__ */ jsx("div", {
68
+ className: clsx("flex items-center", {
69
+ "cursor-default": disabled,
70
+ "cursor-pointer": !disabled
71
+ }, themeClass, className),
72
+ children: /* @__PURE__ */ jsxs("div", {
73
+ className: "relative flex justify-center items-center",
74
+ children: [/* @__PURE__ */ jsxs("div", {
75
+ className: clsx("flex justify-center items-center", {
76
+ "opacity-0": loading,
77
+ "opacity-100": !loading
78
+ }),
79
+ children: [
80
+ /* @__PURE__ */ jsx("div", {
81
+ className: "flex items-center mr-[4px]",
82
+ children: leftIconComponent
83
+ }),
84
+ TextJSX,
85
+ /* @__PURE__ */ jsx("div", {
86
+ className: "flex items-center ml-[4px]",
87
+ children: rightIconComponent
88
+ })
89
+ ]
90
+ }), /* @__PURE__ */ jsx("span", { className: clsx("inline-block absolute box-border animate-spin", "border-2 border-solid border-gray-400 border-t-gray-600 rounded-[50%]", {
91
+ "size-[18px]": size === SIZE.s,
92
+ "size-[24px]": size === SIZE.l
93
+ }, {
94
+ "opacity-0": !loading,
95
+ "opacity-100": loading
96
+ }) })]
97
+ })
98
+ });
99
+ };
100
+ TextButton.Size = SIZE;
101
+ TextButton.Style = STYLE;
102
+ TextButton.Theme = THEME;
103
+ var text_button_default = TextButton;
104
+
105
+ //#endregion
106
+ //#region src/button/components/icon-button/theme.ts
107
+ const getPrimaryIconButtonTheme = (theme, active, disabled) => {
108
+ if (disabled) return ["text-gray-400 hover:text-gray-400"];
109
+ return [
110
+ "text-gray-600 hover:text-gray-800 [&>svg]:bg-gray-600 desktop:[&>svg]:hover:bg-gray-800",
111
+ { "text-brand-heavy hover:text-brand-heavy [&>svg]:bg-brand-heavy desktop:[&>svg]:hover:bg-brand-heavy": theme === THEME.normal && active },
112
+ {
113
+ "text-gray-white hover:text-supportive-pastel [&>svg]:bg-gray-white [&>svg]:hover:bg-supportive-pastel": theme === THEME.photography && !active,
114
+ "text-supportive-pastel hover:text-supportive-pastel [&>svg]:bg-supportive-pastel [&>svg]:hover:bg-supportive-pastel": theme === THEME.photography && active
115
+ },
116
+ {
117
+ "text-gray-white hover:text-gray-200 [&>svg]:bg-gray-white [&>svg]:hover:bg-gray-200": theme === THEME.transparent && !active,
118
+ "text-gray-white hover:text-gray-white [&>svg]:bg-gray-white [&>svg]:hover:bg-gray-white": theme === THEME.transparent && active
119
+ }
120
+ ];
121
+ };
122
+ const getSecondaryIconButtonTheme = (theme, active, disabled) => {
123
+ if (disabled) return ["text-gray-400 hover:text-gray-400"];
124
+ return [
125
+ "text-gray-400 hover:text-gray-600 [&>svg]:bg-gray-400 [&>svg]:hover:bg-gray-600",
126
+ { "text-brand-heavy hover:text-brand-heavy [&>svg]:bg-brand-heavy [&>svg]:hover:bg-brand-heavy": theme === THEME.normal && active },
127
+ {
128
+ "text-gray-400 hover:text-supportive-pastel [&>svg]:bg-gray-400 [&>svg]:hover:bg-supportive-pastel": theme === THEME.photography && !active,
129
+ "text-supportive-pastel hover:text-supportive-pastel [&>svg]:bg-supportive-pastel [&>svg]:hover:bg-supportive-pastel": theme === THEME.photography && active
130
+ },
131
+ {
132
+ "text-gray-600 hover:text-gray-white [&>svg]:bg-gray-600 [&>svg]:hover:bg-gray-white": theme === THEME.transparent && !active,
133
+ "text-gray-600 hover:text-gray-600 [&>svg]:bg-gray-600 [&>svg]:hover:bg-gray-600": theme === THEME.transparent && active
134
+ }
135
+ ];
136
+ };
137
+
138
+ //#endregion
139
+ //#region src/button/components/icon-button/index.tsx
140
+ const IconButton = ({ iconComponent, theme = THEME.normal, type = TYPE.primary, disabled = false, active = false, className = "", onClick = () => {} }) => {
141
+ const themeClass = type === TYPE.primary ? getPrimaryIconButtonTheme(theme, active, disabled) : getSecondaryIconButtonTheme(theme, active, disabled);
142
+ return /* @__PURE__ */ jsx("button", {
143
+ className: clsx("flex", "[&>svg]:w-[24px] [&>svg]:h-[24px]", disabled ? "cursor-default" : "cursor-pointer", themeClass, className),
144
+ onClick: disabled ? () => {} : onClick,
145
+ type: "button",
146
+ children: iconComponent
147
+ });
148
+ };
149
+ IconButton.Theme = THEME;
150
+ IconButton.Type = TYPE;
151
+ var icon_button_default = IconButton;
152
+
153
+ //#endregion
154
+ //#region src/button/components/menu-button/index.tsx
155
+ const MenuButton = ({ text, color, fontWeight, className = "", p1ClassName = "" }) => {
156
+ return /* @__PURE__ */ jsx("div", {
157
+ className: clsx("cursor-pointer", color, className),
158
+ children: /* @__PURE__ */ jsx(P1, {
159
+ text,
160
+ weight: fontWeight,
161
+ className: clsx("py-[8px]", p1ClassName)
162
+ })
163
+ });
164
+ };
165
+ MenuButton.FontWeight = WEIGHT;
166
+ var menu_button_default = MenuButton;
167
+
168
+ //#endregion
169
+ //#region src/button/components/pill-button/theme.ts
170
+ const getFilledPillButtonTheme = (theme, disabled, style) => {
171
+ if (disabled) switch (theme) {
172
+ case THEME.transparent: switch (style) {
173
+ case STYLE.light: return {
174
+ color: "text-gray-white",
175
+ bgColor: "bg-gray-400",
176
+ hoverColor: "hover:text-gray-white",
177
+ hoverBgColor: "hover:bg-gray-400",
178
+ borderColor: "border-gray-400",
179
+ svgBgColor: "[&>svg]:bg-gray-white",
180
+ borderHoverColor: "hover:border-gray-400",
181
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-white"
182
+ };
183
+ default: return {
184
+ color: "text-gray-700",
185
+ bgColor: "bg-gray-500",
186
+ hoverColor: "hover:text-gray-700",
187
+ hoverBgColor: "hover:bg-gray-500",
188
+ borderColor: "border-gray-500",
189
+ svgBgColor: "[&>svg]:bg-gray-700",
190
+ borderHoverColor: "hover:border-gray-500",
191
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-500"
192
+ };
193
+ }
194
+ case THEME.photography: return {
195
+ color: "text-gray-700",
196
+ bgColor: "bg-gray-500",
197
+ hoverColor: "hover:text-gray-700",
198
+ hoverBgColor: "hover:bg-gray-500",
199
+ borderColor: "border-gray-500",
200
+ svgBgColor: "[&>svg]:bg-gray-700",
201
+ borderHoverColor: "hover:border-gray-500",
202
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-700"
203
+ };
204
+ default: return {
205
+ color: "text-gray-white",
206
+ bgColor: "bg-gray-400",
207
+ hoverColor: "hover:text-gray-white",
208
+ hoverBgColor: "hover:bg-gray-400",
209
+ borderColor: "border-gray-400",
210
+ svgBgColor: "[&>svg]:bg-gray-white",
211
+ borderHoverColor: "hover:border-gray-400",
212
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-white"
213
+ };
214
+ }
215
+ switch (theme) {
216
+ case THEME.photography: switch (style) {
217
+ case STYLE.dark: return {
218
+ color: "text-photo-dark",
219
+ bgColor: "bg-gray-white",
220
+ hoverColor: "hover:text-photo-dark",
221
+ hoverBgColor: "hover:bg-gray-200",
222
+ borderColor: "border-gray-white",
223
+ svgBgColor: "[&>svg]:bg-photo-dark",
224
+ borderHoverColor: "hover:border-gray-200",
225
+ svgHoverBgColor: "hover:[&>svg]:bg-photo-dark"
226
+ };
227
+ case STYLE.light: return {
228
+ color: "text-photo-dark",
229
+ bgColor: "bg-gray-300",
230
+ hoverColor: "hover:text-photo-dark",
231
+ hoverBgColor: "hover:bg-gray-400",
232
+ borderColor: "border-gray-300",
233
+ svgBgColor: "[&>svg]:bg-photo-dark",
234
+ borderHoverColor: "hover:border-gray-400",
235
+ svgHoverBgColor: "hover:[&>svg]:bg-photo-dark"
236
+ };
237
+ default: return {
238
+ color: "text-photo-dark",
239
+ bgColor: "bg-supportive-faded",
240
+ hoverColor: "hover:text-photo-dark",
241
+ hoverBgColor: "hover:bg-supportive-pastel",
242
+ borderColor: "border-supportive-faded",
243
+ svgBgColor: "[&>svg]:bg-photo-dark",
244
+ borderHoverColor: "hover:border-supportive-pastel",
245
+ svgHoverBgColor: "hover:[&>svg]:bg-photo-dark"
246
+ };
247
+ }
248
+ case THEME.transparent: switch (style) {
249
+ case STYLE.dark: return {
250
+ color: "text-gray-800",
251
+ bgColor: "bg-gray-300",
252
+ hoverColor: "hover:text-gray-800",
253
+ hoverBgColor: "hover:bg-gray-400",
254
+ borderColor: "border-gray-300",
255
+ svgBgColor: "[&>svg]:bg-gray-800",
256
+ borderHoverColor: "hover:border-gray-400",
257
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-800"
258
+ };
259
+ case STYLE.light: return {
260
+ color: "text-gray-white",
261
+ bgColor: "bg-gray-800",
262
+ hoverColor: "hover:text-gray-white",
263
+ hoverBgColor: "hover:bg-gray-black",
264
+ borderColor: "border-gray-800",
265
+ svgBgColor: "[&>svg]:bg-gray-white",
266
+ borderHoverColor: "hover:border-gray-black",
267
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-white"
268
+ };
269
+ default: return {
270
+ color: "text-gray-800",
271
+ bgColor: "bg-gray-white",
272
+ hoverColor: "hover:text-gray-800",
273
+ hoverBgColor: "hover:bg-gray-200",
274
+ borderColor: "border-gray-white",
275
+ svgBgColor: "[&>svg]:bg-gray-800",
276
+ borderHoverColor: "hover:border-gray-200",
277
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-800"
278
+ };
279
+ }
280
+ default: switch (style) {
281
+ case STYLE.dark: return {
282
+ color: "text-gray-white",
283
+ bgColor: "bg-gray-800",
284
+ hoverColor: "hover:text-gray-white",
285
+ hoverBgColor: "hover:bg-gray-black",
286
+ borderColor: "border-gray-800",
287
+ svgBgColor: "[&>svg]:bg-gray-white",
288
+ borderHoverColor: "hover:border-gray-black",
289
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-white"
290
+ };
291
+ case STYLE.light: return {
292
+ color: "text-gray-800",
293
+ bgColor: "bg-gray-white",
294
+ hoverColor: "hover:text-gray-800",
295
+ hoverBgColor: "hover:bg-gray-200",
296
+ borderColor: "border-gray-white",
297
+ svgBgColor: "[&>svg]:bg-gray-800",
298
+ borderHoverColor: "hover:border-gray-200",
299
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-800"
300
+ };
301
+ default: return {
302
+ color: "text-gray-white",
303
+ bgColor: "bg-brand-heavy",
304
+ hoverColor: "hover:text-gray-white",
305
+ hoverBgColor: "hover:bg-brand-dark",
306
+ borderColor: "border-brand-heavy",
307
+ svgBgColor: "[&>svg]:bg-gray-white",
308
+ borderHoverColor: "hover:border-brand-dark",
309
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-white"
310
+ };
311
+ }
312
+ }
313
+ };
314
+ const getOutlinePillButtonTheme = (theme, disabled, style) => {
315
+ if (disabled) switch (theme) {
316
+ case THEME.transparent: switch (style) {
317
+ case STYLE.light: return {
318
+ color: "text-gray-400",
319
+ bgColor: "bg-gray-400",
320
+ hoverColor: "hover:text-gray-400",
321
+ hoverBgColor: "hover:bg-gray-400",
322
+ borderColor: "border-gray-400",
323
+ svgBgColor: "[&>svg]:bg-gray-400",
324
+ borderHoverColor: "hover:border-gray-400",
325
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-400"
326
+ };
327
+ default: return {
328
+ color: "text-gray-500",
329
+ bgColor: "bg-gray-500",
330
+ hoverColor: "hover:text-gray-500",
331
+ hoverBgColor: "hover:bg-gray-500",
332
+ borderColor: "border-gray-500",
333
+ svgBgColor: "[&>svg]:bg-gray-500",
334
+ borderHoverColor: "hover:border-gray-500",
335
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-500"
336
+ };
337
+ }
338
+ case THEME.photography: return {
339
+ color: "text-gray-500",
340
+ bgColor: "bg-gray-500",
341
+ hoverColor: "hover:text-gray-500",
342
+ hoverBgColor: "hover:bg-gray-500",
343
+ borderColor: "border-gray-500",
344
+ svgBgColor: "[&>svg]:bg-gray-500",
345
+ borderHoverColor: "hover:border-gray-500",
346
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-500"
347
+ };
348
+ default: return {
349
+ color: "text-gray-400",
350
+ bgColor: "bg-gray-400",
351
+ hoverColor: "hover:text-gray-400",
352
+ hoverBgColor: "hover:bg-gray-400",
353
+ borderColor: "border-gray-400",
354
+ svgBgColor: "[&>svg]:bg-gray-400",
355
+ borderHoverColor: "hover:border-gray-400",
356
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-400"
357
+ };
358
+ }
359
+ switch (theme) {
360
+ case THEME.photography: switch (style) {
361
+ case STYLE.dark: return {
362
+ color: "text-gray-white",
363
+ bgColor: "bg-gray-white",
364
+ hoverColor: "hover:text-gray-200",
365
+ hoverBgColor: "hover:bg-gray-200",
366
+ borderColor: "border-gray-white",
367
+ svgBgColor: "[&>svg]:bg-gray-white",
368
+ borderHoverColor: "hover:border-gray-200",
369
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-200"
370
+ };
371
+ case STYLE.light: return {
372
+ color: "text-gray-300",
373
+ bgColor: "bg-gray-300",
374
+ hoverColor: "hover:text-gray-400",
375
+ hoverBgColor: "hover:bg-gray-400",
376
+ borderColor: "border-gray-300",
377
+ svgBgColor: "[&>svg]:bg-gray-300",
378
+ borderHoverColor: "hover:border-gray-400",
379
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-400"
380
+ };
381
+ default: return {
382
+ color: "text-supportive-faded",
383
+ bgColor: "bg-supportive-faded",
384
+ hoverColor: "hover:text-supportive-pastel",
385
+ hoverBgColor: "hover:bg-supportive-pastel",
386
+ borderColor: "border-supportive-faded",
387
+ svgBgColor: "[&>svg]:bg-supportive-faded",
388
+ borderHoverColor: "hover:border-supportive-pastel",
389
+ svgHoverBgColor: "hover:[&>svg]:bg-supportive-pastel"
390
+ };
391
+ }
392
+ case THEME.transparent: switch (style) {
393
+ case STYLE.dark: return {
394
+ color: "text-gray-300",
395
+ bgColor: "bg-gray-300",
396
+ hoverColor: "hover:text-gray-400",
397
+ hoverBgColor: "hover:bg-gray-400",
398
+ borderColor: "border-gray-300",
399
+ svgBgColor: "[&>svg]:bg-gray-300",
400
+ borderHoverColor: "hover:border-gray-400",
401
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-400"
402
+ };
403
+ case STYLE.light: return {
404
+ color: "text-gray-800",
405
+ bgColor: "bg-gray-800",
406
+ hoverColor: "hover:text-gray-black",
407
+ hoverBgColor: "hover:bg-gray-black",
408
+ borderColor: "border-gray-800",
409
+ svgBgColor: "[&>svg]:bg-gray-800",
410
+ borderHoverColor: "hover:border-gray-black",
411
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-black"
412
+ };
413
+ default: return {
414
+ color: "text-gray-white",
415
+ bgColor: "bg-gray-white",
416
+ hoverColor: "hover:text-gray-200",
417
+ hoverBgColor: "hover:bg-gray-200",
418
+ borderColor: "border-gray-white",
419
+ svgBgColor: "[&>svg]:bg-gray-white",
420
+ borderHoverColor: "hover:border-gray-200",
421
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-200"
422
+ };
423
+ }
424
+ default: switch (style) {
425
+ case STYLE.dark: return {
426
+ color: "text-gray-800",
427
+ bgColor: "bg-gray-800",
428
+ hoverColor: "hover:text-gray-black",
429
+ hoverBgColor: "hover:bg-gray-black",
430
+ borderColor: "border-gray-800",
431
+ svgBgColor: "[&>svg]:bg-gray-800",
432
+ borderHoverColor: "hover:border-gray-black",
433
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-black"
434
+ };
435
+ case STYLE.light: return {
436
+ color: "text-gray-800",
437
+ bgColor: "bg-gray-white",
438
+ hoverColor: "hover:text-gray-800",
439
+ hoverBgColor: "hover:bg-gray-200",
440
+ borderColor: "border-gray-white",
441
+ svgBgColor: "[&>svg]:bg-gray-800",
442
+ borderHoverColor: "hover:border-gray-200",
443
+ svgHoverBgColor: "hover:[&>svg]:bg-gray-800"
444
+ };
445
+ default: return {
446
+ color: "text-brand-heavy",
447
+ bgColor: "bg-brand-heavy",
448
+ hoverColor: "hover:text-brand-dark",
449
+ hoverBgColor: "hover:bg-brand-dark",
450
+ borderColor: "border-brand-heavy",
451
+ svgBgColor: "[&>svg]:bg-brand-heavy",
452
+ borderHoverColor: "hover:border-brand-dark",
453
+ svgHoverBgColor: "hover:[&>svg]:bg-brand-dark"
454
+ };
455
+ }
456
+ }
457
+ };
458
+
459
+ //#endregion
460
+ //#region src/button/components/pill-button/index.tsx
461
+ const PillButton = ({ text = "", leftIconComponent = null, rightIconComponent = null, size = SIZE.s, theme = THEME.normal, type = TYPE.primary, style = STYLE.brand, disabled = false, loading = false, className = "" }) => {
462
+ const { color, bgColor, hoverColor, hoverBgColor, borderColor, svgBgColor, borderHoverColor, svgHoverBgColor } = (type === TYPE.primary ? getFilledPillButtonTheme : getOutlinePillButtonTheme)(theme, disabled, style);
463
+ const padding = size === SIZE.s ? "py-[4px] px-[12px]" : "py-[8px] px-[16px]";
464
+ const iconSize = size === SIZE.s ? "[&>svg]:h-[18px] [&>svg]:w-[18px]" : "[&>svg]:h-[24px] [&>svg]:w-[24px]";
465
+ const TextJSX = useMemo(() => size === SIZE.s ? /* @__PURE__ */ jsx(P2, {
466
+ text,
467
+ weight: P2.Weight.bold
468
+ }) : /* @__PURE__ */ jsx(P1, {
469
+ text,
470
+ weight: P1.Weight.bold
471
+ }), [size, text]);
472
+ return /* @__PURE__ */ jsx("div", {
473
+ className: clsx("w-fit flex items-center rounded-[40px] border-solid border-[1.5px]", borderColor, color, padding, disabled || loading ? "cursor-not-allowed" : "cursor-pointer", type === TYPE.primary ? bgColor : "bg-transparent", iconSize, svgBgColor, hoverColor, type === TYPE.primary ? hoverBgColor : "bg-transparent", borderHoverColor, svgHoverBgColor, className),
474
+ children: /* @__PURE__ */ jsxs("div", {
475
+ className: "relative flex justify-center items-center",
476
+ children: [/* @__PURE__ */ jsxs("div", {
477
+ className: clsx("flex justify-center items-center", {
478
+ "opacity-0": loading,
479
+ "opacity-100": !loading
480
+ }),
481
+ children: [
482
+ /* @__PURE__ */ jsx("div", {
483
+ className: "flex items-center mr-[4px]",
484
+ children: leftIconComponent
485
+ }),
486
+ TextJSX,
487
+ /* @__PURE__ */ jsx("div", {
488
+ className: "flex items-center ml-[4px]",
489
+ children: rightIconComponent
490
+ })
491
+ ]
492
+ }), /* @__PURE__ */ jsx("span", { className: clsx("inline-block absolute box-border animate-spin", "border-2 border-solid border-gray-400 border-t-gray-600 rounded-[50%]", {
493
+ "size-[18px]": size === SIZE.s,
494
+ "size-[24px]": size === SIZE.l
495
+ }, {
496
+ "opacity-0": !loading,
497
+ "opacity-100": loading
498
+ }) })]
499
+ })
500
+ });
501
+ };
502
+ PillButton.Theme = THEME;
503
+ PillButton.Type = TYPE;
504
+ PillButton.Size = SIZE;
505
+ PillButton.Style = STYLE;
506
+ var pill_button_default = PillButton;
507
+
508
+ //#endregion
509
+ //#region src/button/components/icon-with-text-button/theme.ts
510
+ const getIconWithTextButtonTheme = (theme, isActive, isDisabled) => {
511
+ if (isDisabled) return {
512
+ color: "text-gray-400",
513
+ hoverColor: "hover:text-gray-400",
514
+ svgBgColor: "[&>svg]:bg-gray-400",
515
+ svgHoverBgColor: "[&>svg]:hover:bg-gray-400"
516
+ };
517
+ switch (isActive ? `${theme}-active` : theme) {
518
+ case THEME.photography: return {
519
+ color: "text-gray-200",
520
+ hoverColor: "hover:text-supportive-pastel",
521
+ svgBgColor: "[&>svg]:bg-gray-200",
522
+ svgHoverBgColor: "[&>svg]:hover:bg-supportive-pastel"
523
+ };
524
+ case `${THEME.photography}-active`: return {
525
+ color: "text-supportive-pastel",
526
+ hoverColor: "hover:text-supportive-pastel",
527
+ svgBgColor: "[&>svg]:bg-supportive-pastel",
528
+ svgHoverBgColor: "[&>svg]:hover:bg-supportive-pastel"
529
+ };
530
+ case THEME.transparent: return {
531
+ color: "text-gray-100",
532
+ hoverColor: "hover:text-gray-200",
533
+ svgBgColor: "[&>svg]:bg-gray-100",
534
+ svgHoverBgColor: "[&>svg]:hover:bg-gray-200"
535
+ };
536
+ case `${THEME.transparent}-active`: return {
537
+ color: "text-gray-white",
538
+ hoverColor: "hover:text-gray-white",
539
+ svgBgColor: "[&>svg]:bg-gray-white",
540
+ svgHoverBgColor: "[&>svg]:hover:bg-gray-white"
541
+ };
542
+ case `${THEME.normal}-active`: return {
543
+ color: "text-brand-heavy",
544
+ hoverColor: "hover:text-brand-heavy",
545
+ svgBgColor: "[&>svg]:bg-brand-heavy",
546
+ svgHoverBgColor: "[&>svg]:hover:bg-brand-heavy"
547
+ };
548
+ default: return {
549
+ color: "text-gray-600",
550
+ hoverColor: "hover:text-brand-heavy",
551
+ svgBgColor: "[&>svg]:bg-gray-600",
552
+ svgHoverBgColor: "[&>svg]:hover:bg-brand-heavy"
553
+ };
554
+ }
555
+ };
556
+
557
+ //#endregion
558
+ //#region src/button/components/icon-with-text-button/index.tsx
559
+ const IconWithTextButton = ({ text = "", iconComponent, theme = THEME.normal, disabled = false, active = false, hideText = false, className = "", onClick = () => {} }) => {
560
+ const { color, hoverColor, svgBgColor, svgHoverBgColor } = getIconWithTextButtonTheme(theme, active, disabled);
561
+ const handleClick = (e) => {
562
+ if (disabled) return;
563
+ onClick(e);
564
+ };
565
+ return /* @__PURE__ */ jsxs("button", {
566
+ className: clsx("flex flex-col items-center", "[&>svg]:w-[24px] [&>svg]:h-[24px]", color, hoverColor, svgBgColor, svgHoverBgColor, disabled ? "cursor-not-allowed" : "cursor-pointer", className),
567
+ type: "button",
568
+ onClick: handleClick,
569
+ children: [iconComponent, /* @__PURE__ */ jsx(P4, {
570
+ text,
571
+ weight: P4.Weight.normal,
572
+ className: clsx("mt-[2px] transition-opacity duration-[100ms]", hideText ? "opacity-0" : "opacity-100", hideText ? "max-h-0" : "max-h-none")
573
+ })]
574
+ });
575
+ };
576
+ IconWithTextButton.Theme = THEME;
577
+ var icon_with_text_button_default = IconWithTextButton;
578
+
579
+ //#endregion
580
+ //#region src/button/index.ts
581
+ var button_default = {
582
+ TextButton: text_button_default,
583
+ IconButton: icon_button_default,
584
+ MenuButton: menu_button_default,
585
+ PillButton: pill_button_default,
586
+ IconWithTextButton: icon_with_text_button_default
587
+ };
588
+
589
+ //#endregion
590
+ export { button_default, icon_button_default, icon_with_text_button_default, menu_button_default, pill_button_default, text_button_default };
591
+ //# sourceMappingURL=button-DyUYGG90.mjs.map