@exem-ui/react 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/LICENSE +190 -0
  2. package/README.en.md +142 -0
  3. package/README.md +156 -18
  4. package/dist/index.d.mts +1166 -37
  5. package/dist/index.d.ts +1166 -37
  6. package/dist/index.js +3055 -130
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.mjs +3016 -27
  9. package/dist/index.mjs.map +1 -1
  10. package/package.json +24 -143
  11. package/dist/Button-CMenVfb7.d.mts +0 -35
  12. package/dist/Button-CMenVfb7.d.ts +0 -35
  13. package/dist/Select-DMvWV_rF.d.mts +0 -94
  14. package/dist/Select-DMvWV_rF.d.ts +0 -94
  15. package/dist/avatar/index.d.mts +0 -37
  16. package/dist/avatar/index.d.ts +0 -37
  17. package/dist/avatar/index.js +0 -13
  18. package/dist/avatar/index.js.map +0 -1
  19. package/dist/avatar/index.mjs +0 -4
  20. package/dist/avatar/index.mjs.map +0 -1
  21. package/dist/badge/index.d.mts +0 -29
  22. package/dist/badge/index.d.ts +0 -29
  23. package/dist/badge/index.js +0 -12
  24. package/dist/badge/index.js.map +0 -1
  25. package/dist/badge/index.mjs +0 -3
  26. package/dist/badge/index.mjs.map +0 -1
  27. package/dist/breadcrumb/index.d.mts +0 -43
  28. package/dist/breadcrumb/index.d.ts +0 -43
  29. package/dist/breadcrumb/index.js +0 -13
  30. package/dist/breadcrumb/index.js.map +0 -1
  31. package/dist/breadcrumb/index.mjs +0 -4
  32. package/dist/breadcrumb/index.mjs.map +0 -1
  33. package/dist/button/index.d.mts +0 -9
  34. package/dist/button/index.d.ts +0 -9
  35. package/dist/button/index.js +0 -29
  36. package/dist/button/index.js.map +0 -1
  37. package/dist/button/index.mjs +0 -12
  38. package/dist/button/index.mjs.map +0 -1
  39. package/dist/checkbox/index.d.mts +0 -54
  40. package/dist/checkbox/index.d.ts +0 -54
  41. package/dist/checkbox/index.js +0 -13
  42. package/dist/checkbox/index.js.map +0 -1
  43. package/dist/checkbox/index.mjs +0 -4
  44. package/dist/checkbox/index.mjs.map +0 -1
  45. package/dist/chunk-34QIGWCT.mjs +0 -10
  46. package/dist/chunk-34QIGWCT.mjs.map +0 -1
  47. package/dist/chunk-3FPMWAQT.js +0 -30
  48. package/dist/chunk-3FPMWAQT.js.map +0 -1
  49. package/dist/chunk-3HMT3DQV.js +0 -104
  50. package/dist/chunk-3HMT3DQV.js.map +0 -1
  51. package/dist/chunk-4WAO7CUT.mjs +0 -95
  52. package/dist/chunk-4WAO7CUT.mjs.map +0 -1
  53. package/dist/chunk-5QX4TO4F.js +0 -61
  54. package/dist/chunk-5QX4TO4F.js.map +0 -1
  55. package/dist/chunk-5TEFN2CW.js +0 -97
  56. package/dist/chunk-5TEFN2CW.js.map +0 -1
  57. package/dist/chunk-5TES5PG6.js +0 -41
  58. package/dist/chunk-5TES5PG6.js.map +0 -1
  59. package/dist/chunk-5TVMECVF.js +0 -148
  60. package/dist/chunk-5TVMECVF.js.map +0 -1
  61. package/dist/chunk-5WGNZX7Z.mjs +0 -27
  62. package/dist/chunk-5WGNZX7Z.mjs.map +0 -1
  63. package/dist/chunk-AQ3OIM2T.js +0 -103
  64. package/dist/chunk-AQ3OIM2T.js.map +0 -1
  65. package/dist/chunk-AU5NTBK3.js +0 -361
  66. package/dist/chunk-AU5NTBK3.js.map +0 -1
  67. package/dist/chunk-DJHGCJR4.mjs +0 -224
  68. package/dist/chunk-DJHGCJR4.mjs.map +0 -1
  69. package/dist/chunk-DPUTW5KD.mjs +0 -74
  70. package/dist/chunk-DPUTW5KD.mjs.map +0 -1
  71. package/dist/chunk-E53FHDVN.mjs +0 -336
  72. package/dist/chunk-E53FHDVN.mjs.map +0 -1
  73. package/dist/chunk-ECRQD7UU.js +0 -82
  74. package/dist/chunk-ECRQD7UU.js.map +0 -1
  75. package/dist/chunk-FB4ESGOX.mjs +0 -59
  76. package/dist/chunk-FB4ESGOX.mjs.map +0 -1
  77. package/dist/chunk-FDX4IQK5.js +0 -76
  78. package/dist/chunk-FDX4IQK5.js.map +0 -1
  79. package/dist/chunk-FOMIUDRM.js +0 -96
  80. package/dist/chunk-FOMIUDRM.js.map +0 -1
  81. package/dist/chunk-FR5F3VTU.js +0 -139
  82. package/dist/chunk-FR5F3VTU.js.map +0 -1
  83. package/dist/chunk-GW53LH3I.mjs +0 -81
  84. package/dist/chunk-GW53LH3I.mjs.map +0 -1
  85. package/dist/chunk-GXMRIT5E.mjs +0 -94
  86. package/dist/chunk-GXMRIT5E.mjs.map +0 -1
  87. package/dist/chunk-IANSI7F7.mjs +0 -393
  88. package/dist/chunk-IANSI7F7.mjs.map +0 -1
  89. package/dist/chunk-IDM6MZHF.js +0 -415
  90. package/dist/chunk-IDM6MZHF.js.map +0 -1
  91. package/dist/chunk-J5ZYQ3TP.js +0 -104
  92. package/dist/chunk-J5ZYQ3TP.js.map +0 -1
  93. package/dist/chunk-KPAUBWZA.mjs +0 -39
  94. package/dist/chunk-KPAUBWZA.mjs.map +0 -1
  95. package/dist/chunk-L7P2NDST.mjs +0 -124
  96. package/dist/chunk-L7P2NDST.mjs.map +0 -1
  97. package/dist/chunk-M6OWN7QH.js +0 -118
  98. package/dist/chunk-M6OWN7QH.js.map +0 -1
  99. package/dist/chunk-MQVHREEI.js +0 -448
  100. package/dist/chunk-MQVHREEI.js.map +0 -1
  101. package/dist/chunk-MT47ECUN.js +0 -127
  102. package/dist/chunk-MT47ECUN.js.map +0 -1
  103. package/dist/chunk-N6U54JI4.mjs +0 -126
  104. package/dist/chunk-N6U54JI4.mjs.map +0 -1
  105. package/dist/chunk-NDG4LR3Q.js +0 -139
  106. package/dist/chunk-NDG4LR3Q.js.map +0 -1
  107. package/dist/chunk-PPD4BU4W.mjs +0 -80
  108. package/dist/chunk-PPD4BU4W.mjs.map +0 -1
  109. package/dist/chunk-PU5NO5EZ.js +0 -4
  110. package/dist/chunk-PU5NO5EZ.js.map +0 -1
  111. package/dist/chunk-Q442ZDTI.mjs +0 -117
  112. package/dist/chunk-Q442ZDTI.mjs.map +0 -1
  113. package/dist/chunk-QH23RO3C.mjs +0 -137
  114. package/dist/chunk-QH23RO3C.mjs.map +0 -1
  115. package/dist/chunk-REBHUF4L.js +0 -226
  116. package/dist/chunk-REBHUF4L.js.map +0 -1
  117. package/dist/chunk-RGB3QLQT.js +0 -275
  118. package/dist/chunk-RGB3QLQT.js.map +0 -1
  119. package/dist/chunk-T7U2QRLC.js +0 -94
  120. package/dist/chunk-T7U2QRLC.js.map +0 -1
  121. package/dist/chunk-TEHHJ3CS.mjs +0 -73
  122. package/dist/chunk-TEHHJ3CS.mjs.map +0 -1
  123. package/dist/chunk-TJY4MIBC.js +0 -117
  124. package/dist/chunk-TJY4MIBC.js.map +0 -1
  125. package/dist/chunk-VCMZQOQM.mjs +0 -102
  126. package/dist/chunk-VCMZQOQM.mjs.map +0 -1
  127. package/dist/chunk-VKN4H4WI.mjs +0 -3
  128. package/dist/chunk-VKN4H4WI.mjs.map +0 -1
  129. package/dist/chunk-VSB25XTY.js +0 -12
  130. package/dist/chunk-VSB25XTY.js.map +0 -1
  131. package/dist/chunk-VWTE74UT.mjs +0 -96
  132. package/dist/chunk-VWTE74UT.mjs.map +0 -1
  133. package/dist/chunk-WBTL7PBV.js +0 -105
  134. package/dist/chunk-WBTL7PBV.js.map +0 -1
  135. package/dist/chunk-WOK3EP3O.js +0 -83
  136. package/dist/chunk-WOK3EP3O.js.map +0 -1
  137. package/dist/chunk-WWT73GGM.mjs +0 -83
  138. package/dist/chunk-WWT73GGM.mjs.map +0 -1
  139. package/dist/chunk-XBDXTRK3.mjs +0 -102
  140. package/dist/chunk-XBDXTRK3.mjs.map +0 -1
  141. package/dist/chunk-YGBEKZWU.mjs +0 -81
  142. package/dist/chunk-YGBEKZWU.mjs.map +0 -1
  143. package/dist/chunk-YVFLRPFV.mjs +0 -72
  144. package/dist/chunk-YVFLRPFV.mjs.map +0 -1
  145. package/dist/chunk-ZMVBIQ2Z.mjs +0 -253
  146. package/dist/chunk-ZMVBIQ2Z.mjs.map +0 -1
  147. package/dist/chunk-ZWCMSHDP.mjs +0 -425
  148. package/dist/chunk-ZWCMSHDP.mjs.map +0 -1
  149. package/dist/flat/index.d.mts +0 -13
  150. package/dist/flat/index.d.ts +0 -13
  151. package/dist/flat/index.js +0 -31
  152. package/dist/flat/index.js.map +0 -1
  153. package/dist/flat/index.mjs +0 -10
  154. package/dist/flat/index.mjs.map +0 -1
  155. package/dist/flat/segment.d.mts +0 -39
  156. package/dist/flat/segment.d.ts +0 -39
  157. package/dist/flat/segment.js +0 -13
  158. package/dist/flat/segment.js.map +0 -1
  159. package/dist/flat/segment.mjs +0 -4
  160. package/dist/flat/segment.mjs.map +0 -1
  161. package/dist/flat/select.d.mts +0 -58
  162. package/dist/flat/select.d.ts +0 -58
  163. package/dist/flat/select.js +0 -14
  164. package/dist/flat/select.js.map +0 -1
  165. package/dist/flat/select.mjs +0 -5
  166. package/dist/flat/select.mjs.map +0 -1
  167. package/dist/flat/tooltip.d.mts +0 -98
  168. package/dist/flat/tooltip.d.ts +0 -98
  169. package/dist/flat/tooltip.js +0 -17
  170. package/dist/flat/tooltip.js.map +0 -1
  171. package/dist/flat/tooltip.mjs +0 -4
  172. package/dist/flat/tooltip.mjs.map +0 -1
  173. package/dist/index-CXip5Wb1.d.mts +0 -62
  174. package/dist/index-Drz3P-6Y.d.ts +0 -62
  175. package/dist/input/index.d.mts +0 -82
  176. package/dist/input/index.d.ts +0 -82
  177. package/dist/input/index.js +0 -22
  178. package/dist/input/index.js.map +0 -1
  179. package/dist/input/index.mjs +0 -5
  180. package/dist/input/index.mjs.map +0 -1
  181. package/dist/loading/index.d.mts +0 -54
  182. package/dist/loading/index.d.ts +0 -54
  183. package/dist/loading/index.js +0 -12
  184. package/dist/loading/index.js.map +0 -1
  185. package/dist/loading/index.mjs +0 -3
  186. package/dist/loading/index.mjs.map +0 -1
  187. package/dist/messageBox/index.d.mts +0 -33
  188. package/dist/messageBox/index.d.ts +0 -33
  189. package/dist/messageBox/index.js +0 -13
  190. package/dist/messageBox/index.js.map +0 -1
  191. package/dist/messageBox/index.mjs +0 -4
  192. package/dist/messageBox/index.mjs.map +0 -1
  193. package/dist/modal/index.d.mts +0 -97
  194. package/dist/modal/index.d.ts +0 -97
  195. package/dist/modal/index.js +0 -15
  196. package/dist/modal/index.js.map +0 -1
  197. package/dist/modal/index.mjs +0 -6
  198. package/dist/modal/index.mjs.map +0 -1
  199. package/dist/picker/index.d.mts +0 -12
  200. package/dist/picker/index.d.ts +0 -12
  201. package/dist/picker/index.js +0 -13
  202. package/dist/picker/index.js.map +0 -1
  203. package/dist/picker/index.mjs +0 -4
  204. package/dist/picker/index.mjs.map +0 -1
  205. package/dist/progress/index.d.mts +0 -36
  206. package/dist/progress/index.d.ts +0 -36
  207. package/dist/progress/index.js +0 -12
  208. package/dist/progress/index.js.map +0 -1
  209. package/dist/progress/index.mjs +0 -3
  210. package/dist/progress/index.mjs.map +0 -1
  211. package/dist/radio/index.d.mts +0 -39
  212. package/dist/radio/index.d.ts +0 -39
  213. package/dist/radio/index.js +0 -12
  214. package/dist/radio/index.js.map +0 -1
  215. package/dist/radio/index.mjs +0 -3
  216. package/dist/radio/index.mjs.map +0 -1
  217. package/dist/scrollArea/index.d.mts +0 -31
  218. package/dist/scrollArea/index.d.ts +0 -31
  219. package/dist/scrollArea/index.js +0 -16
  220. package/dist/scrollArea/index.js.map +0 -1
  221. package/dist/scrollArea/index.mjs +0 -3
  222. package/dist/scrollArea/index.mjs.map +0 -1
  223. package/dist/segment/index.d.mts +0 -46
  224. package/dist/segment/index.d.ts +0 -46
  225. package/dist/segment/index.js +0 -12
  226. package/dist/segment/index.js.map +0 -1
  227. package/dist/segment/index.mjs +0 -3
  228. package/dist/segment/index.mjs.map +0 -1
  229. package/dist/star/index.d.mts +0 -30
  230. package/dist/star/index.d.ts +0 -30
  231. package/dist/star/index.js +0 -12
  232. package/dist/star/index.js.map +0 -1
  233. package/dist/star/index.mjs +0 -3
  234. package/dist/star/index.mjs.map +0 -1
  235. package/dist/switch/index.d.mts +0 -32
  236. package/dist/switch/index.d.ts +0 -32
  237. package/dist/switch/index.js +0 -12
  238. package/dist/switch/index.js.map +0 -1
  239. package/dist/switch/index.mjs +0 -3
  240. package/dist/switch/index.mjs.map +0 -1
  241. package/dist/tabs/index.d.mts +0 -52
  242. package/dist/tabs/index.d.ts +0 -52
  243. package/dist/tabs/index.js +0 -12
  244. package/dist/tabs/index.js.map +0 -1
  245. package/dist/tabs/index.mjs +0 -3
  246. package/dist/tabs/index.mjs.map +0 -1
  247. package/dist/tag/index.d.mts +0 -68
  248. package/dist/tag/index.d.ts +0 -68
  249. package/dist/tag/index.js +0 -17
  250. package/dist/tag/index.js.map +0 -1
  251. package/dist/tag/index.mjs +0 -4
  252. package/dist/tag/index.mjs.map +0 -1
  253. package/dist/toast/index.d.mts +0 -175
  254. package/dist/toast/index.d.ts +0 -175
  255. package/dist/toast/index.js +0 -25
  256. package/dist/toast/index.js.map +0 -1
  257. package/dist/toast/index.mjs +0 -4
  258. package/dist/toast/index.mjs.map +0 -1
  259. package/dist/tooltip/index.d.mts +0 -26
  260. package/dist/tooltip/index.d.ts +0 -26
  261. package/dist/tooltip/index.js +0 -12
  262. package/dist/tooltip/index.js.map +0 -1
  263. package/dist/tooltip/index.mjs +0 -3
  264. package/dist/tooltip/index.mjs.map +0 -1
@@ -1,43 +0,0 @@
1
- import React__default from 'react';
2
-
3
- type BreadcrumbRootProps = React__default.ComponentPropsWithoutRef<'nav'>;
4
- type BreadcrumbListProps = React__default.ComponentPropsWithoutRef<'ol'>;
5
- type BreadcrumbItemProps = React__default.ComponentPropsWithoutRef<'li'>;
6
- type BreadcrumbLinkProps = React__default.ComponentPropsWithoutRef<'a'> & {
7
- asChild?: boolean;
8
- };
9
- type BreadcrumbPageProps = React__default.ComponentPropsWithoutRef<'span'>;
10
- type BreadcrumbSeparatorProps = React__default.ComponentProps<'li'>;
11
- type BreadcrumbEllipsisProps = React__default.ComponentProps<'span'>;
12
- type BreadcrumbComponent = React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbRootProps> & React__default.RefAttributes<HTMLElement>> & {
13
- List: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbListProps> & React__default.RefAttributes<HTMLOListElement>>;
14
- Item: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbItemProps> & React__default.RefAttributes<HTMLLIElement>>;
15
- Link: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbLinkProps> & React__default.RefAttributes<HTMLAnchorElement>>;
16
- Page: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbPageProps> & React__default.RefAttributes<HTMLSpanElement>>;
17
- Separator: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbSeparatorProps> & React__default.RefAttributes<HTMLLIElement>>;
18
- Ellipsis: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbEllipsisProps> & React__default.RefAttributes<HTMLSpanElement>>;
19
- };
20
- /**
21
- * 현재 페이지의 계층 위치를 표시하는 탐색 경로 컴포넌트입니다.
22
- * Compound Component 패턴으로 하위 컴포넌트와 함께 사용합니다.
23
- *
24
- * @example
25
- * ```tsx
26
- * <Breadcrumb>
27
- * <Breadcrumb.List>
28
- * <Breadcrumb.Item>
29
- * <Breadcrumb.Link href="/">홈</Breadcrumb.Link>
30
- * </Breadcrumb.Item>
31
- * <Breadcrumb.Separator />
32
- * <Breadcrumb.Item>
33
- * <Breadcrumb.Page>현재 페이지</Breadcrumb.Page>
34
- * </Breadcrumb.Item>
35
- * </Breadcrumb.List>
36
- * </Breadcrumb>
37
- * ```
38
- *
39
- * @see {@link BreadcrumbRootProps} props 상세
40
- */
41
- declare const Breadcrumb: BreadcrumbComponent;
42
-
43
- export { Breadcrumb, type BreadcrumbComponent, type BreadcrumbEllipsisProps, type BreadcrumbItemProps, type BreadcrumbLinkProps, type BreadcrumbListProps, type BreadcrumbPageProps, type BreadcrumbRootProps, type BreadcrumbSeparatorProps };
@@ -1,43 +0,0 @@
1
- import React__default from 'react';
2
-
3
- type BreadcrumbRootProps = React__default.ComponentPropsWithoutRef<'nav'>;
4
- type BreadcrumbListProps = React__default.ComponentPropsWithoutRef<'ol'>;
5
- type BreadcrumbItemProps = React__default.ComponentPropsWithoutRef<'li'>;
6
- type BreadcrumbLinkProps = React__default.ComponentPropsWithoutRef<'a'> & {
7
- asChild?: boolean;
8
- };
9
- type BreadcrumbPageProps = React__default.ComponentPropsWithoutRef<'span'>;
10
- type BreadcrumbSeparatorProps = React__default.ComponentProps<'li'>;
11
- type BreadcrumbEllipsisProps = React__default.ComponentProps<'span'>;
12
- type BreadcrumbComponent = React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbRootProps> & React__default.RefAttributes<HTMLElement>> & {
13
- List: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbListProps> & React__default.RefAttributes<HTMLOListElement>>;
14
- Item: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbItemProps> & React__default.RefAttributes<HTMLLIElement>>;
15
- Link: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbLinkProps> & React__default.RefAttributes<HTMLAnchorElement>>;
16
- Page: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbPageProps> & React__default.RefAttributes<HTMLSpanElement>>;
17
- Separator: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbSeparatorProps> & React__default.RefAttributes<HTMLLIElement>>;
18
- Ellipsis: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<BreadcrumbEllipsisProps> & React__default.RefAttributes<HTMLSpanElement>>;
19
- };
20
- /**
21
- * 현재 페이지의 계층 위치를 표시하는 탐색 경로 컴포넌트입니다.
22
- * Compound Component 패턴으로 하위 컴포넌트와 함께 사용합니다.
23
- *
24
- * @example
25
- * ```tsx
26
- * <Breadcrumb>
27
- * <Breadcrumb.List>
28
- * <Breadcrumb.Item>
29
- * <Breadcrumb.Link href="/">홈</Breadcrumb.Link>
30
- * </Breadcrumb.Item>
31
- * <Breadcrumb.Separator />
32
- * <Breadcrumb.Item>
33
- * <Breadcrumb.Page>현재 페이지</Breadcrumb.Page>
34
- * </Breadcrumb.Item>
35
- * </Breadcrumb.List>
36
- * </Breadcrumb>
37
- * ```
38
- *
39
- * @see {@link BreadcrumbRootProps} props 상세
40
- */
41
- declare const Breadcrumb: BreadcrumbComponent;
42
-
43
- export { Breadcrumb, type BreadcrumbComponent, type BreadcrumbEllipsisProps, type BreadcrumbItemProps, type BreadcrumbLinkProps, type BreadcrumbListProps, type BreadcrumbPageProps, type BreadcrumbRootProps, type BreadcrumbSeparatorProps };
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkECRQD7UU_js = require('../chunk-ECRQD7UU.js');
4
- require('../chunk-5M47B2XJ.js');
5
-
6
-
7
-
8
- Object.defineProperty(exports, "Breadcrumb", {
9
- enumerable: true,
10
- get: function () { return chunkECRQD7UU_js.Breadcrumb; }
11
- });
12
- //# sourceMappingURL=index.js.map
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -1,4 +0,0 @@
1
- export { Breadcrumb } from '../chunk-PPD4BU4W.mjs';
2
- import '../chunk-LZWKMQJL.mjs';
3
- //# sourceMappingURL=index.mjs.map
4
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -1,9 +0,0 @@
1
- export { B as Button, a as ButtonComponent, b as ButtonProps } from '../Button-CMenVfb7.mjs';
2
- export { B as ButtonGroup, a as ButtonGroupComponent, c as ButtonGroupProps, I as IconButton, d as IconButtonComponent, e as IconButtonProps } from '../index-CXip5Wb1.mjs';
3
- import 'class-variance-authority/types';
4
- import '@exem-ui/core/utils';
5
- import 'react';
6
- import '../flat/tooltip.mjs';
7
- import 'react/jsx-runtime';
8
- import '../tooltip/index.mjs';
9
- import '@radix-ui/react-tooltip';
@@ -1,9 +0,0 @@
1
- export { B as Button, a as ButtonComponent, b as ButtonProps } from '../Button-CMenVfb7.js';
2
- export { B as ButtonGroup, a as ButtonGroupComponent, c as ButtonGroupProps, I as IconButton, d as IconButtonComponent, e as IconButtonProps } from '../index-Drz3P-6Y.js';
3
- import 'class-variance-authority/types';
4
- import '@exem-ui/core/utils';
5
- import 'react';
6
- import '../flat/tooltip.js';
7
- import 'react/jsx-runtime';
8
- import '../tooltip/index.js';
9
- import '@radix-ui/react-tooltip';
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- var chunk5TEFN2CW_js = require('../chunk-5TEFN2CW.js');
4
- var chunkREBHUF4L_js = require('../chunk-REBHUF4L.js');
5
- require('../chunk-PU5NO5EZ.js');
6
- require('../chunk-VSB25XTY.js');
7
- require('../chunk-NDG4LR3Q.js');
8
- require('../chunk-3FPMWAQT.js');
9
- require('../chunk-T7U2QRLC.js');
10
- require('../chunk-FDX4IQK5.js');
11
- require('../chunk-MQVHREEI.js');
12
- require('../chunk-5M47B2XJ.js');
13
-
14
-
15
-
16
- Object.defineProperty(exports, "ButtonGroup", {
17
- enumerable: true,
18
- get: function () { return chunk5TEFN2CW_js.ButtonGroup; }
19
- });
20
- Object.defineProperty(exports, "IconButton", {
21
- enumerable: true,
22
- get: function () { return chunk5TEFN2CW_js.IconButton; }
23
- });
24
- Object.defineProperty(exports, "Button", {
25
- enumerable: true,
26
- get: function () { return chunkREBHUF4L_js.Button; }
27
- });
28
- //# sourceMappingURL=index.js.map
29
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -1,12 +0,0 @@
1
- export { ButtonGroup, IconButton } from '../chunk-GXMRIT5E.mjs';
2
- export { Button } from '../chunk-DJHGCJR4.mjs';
3
- import '../chunk-VKN4H4WI.mjs';
4
- import '../chunk-34QIGWCT.mjs';
5
- import '../chunk-Q442ZDTI.mjs';
6
- import '../chunk-5WGNZX7Z.mjs';
7
- import '../chunk-YVFLRPFV.mjs';
8
- import '../chunk-DPUTW5KD.mjs';
9
- import '../chunk-ZWCMSHDP.mjs';
10
- import '../chunk-LZWKMQJL.mjs';
11
- //# sourceMappingURL=index.mjs.map
12
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -1,54 +0,0 @@
1
- import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
2
- import React__default from 'react';
3
-
4
- type CheckboxSize = 'small' | 'medium' | 'large';
5
- type LabelPosition = 'left' | 'right';
6
- interface CheckboxProps extends React__default.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
7
- /** 체크 상태. `'indeterminate'`는 부분 선택을 나타냅니다. */
8
- checked?: boolean | 'indeterminate';
9
- /** 체크박스 옆에 표시할 레이블 */
10
- label?: React__default.ReactNode;
11
- /** 추가 클래스명 */
12
- className?: string;
13
- /**
14
- * 체크박스 크기
15
- * @default 'medium'
16
- */
17
- size?: CheckboxSize;
18
- /**
19
- * 레이블 위치
20
- * @default 'right'
21
- */
22
- labelPosition?: LabelPosition;
23
- /** 체크 상태 변경 핸들러 */
24
- onCheckedChange?: (checked: boolean) => void;
25
- /** 초기 체크 상태 (비제어) */
26
- defaultChecked?: boolean;
27
- /**
28
- * 비활성화 상태
29
- * @default false
30
- */
31
- disabled?: boolean;
32
- }
33
- type CheckboxComponent = React__default.ForwardRefExoticComponent<CheckboxProps & React__default.RefAttributes<HTMLButtonElement>>;
34
- /**
35
- * 하나 이상의 항목을 선택하는 체크박스 컴포넌트입니다.
36
- * 체크, 미체크, indeterminate(부분 선택) 상태를 지원합니다.
37
- *
38
- * @example
39
- * ```tsx
40
- * // 기본 사용
41
- * <Checkbox label="이용 약관에 동의합니다" />
42
- *
43
- * // 제어 컴포넌트
44
- * <Checkbox checked={isChecked} onCheckedChange={setIsChecked} label="선택" />
45
- *
46
- * // 부분 선택 상태
47
- * <Checkbox checked="indeterminate" label="전체 선택" />
48
- * ```
49
- *
50
- * @see {@link CheckboxProps} props 상세
51
- */
52
- declare const Checkbox: CheckboxComponent;
53
-
54
- export { Checkbox, type CheckboxComponent, type CheckboxProps };
@@ -1,54 +0,0 @@
1
- import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
2
- import React__default from 'react';
3
-
4
- type CheckboxSize = 'small' | 'medium' | 'large';
5
- type LabelPosition = 'left' | 'right';
6
- interface CheckboxProps extends React__default.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
7
- /** 체크 상태. `'indeterminate'`는 부분 선택을 나타냅니다. */
8
- checked?: boolean | 'indeterminate';
9
- /** 체크박스 옆에 표시할 레이블 */
10
- label?: React__default.ReactNode;
11
- /** 추가 클래스명 */
12
- className?: string;
13
- /**
14
- * 체크박스 크기
15
- * @default 'medium'
16
- */
17
- size?: CheckboxSize;
18
- /**
19
- * 레이블 위치
20
- * @default 'right'
21
- */
22
- labelPosition?: LabelPosition;
23
- /** 체크 상태 변경 핸들러 */
24
- onCheckedChange?: (checked: boolean) => void;
25
- /** 초기 체크 상태 (비제어) */
26
- defaultChecked?: boolean;
27
- /**
28
- * 비활성화 상태
29
- * @default false
30
- */
31
- disabled?: boolean;
32
- }
33
- type CheckboxComponent = React__default.ForwardRefExoticComponent<CheckboxProps & React__default.RefAttributes<HTMLButtonElement>>;
34
- /**
35
- * 하나 이상의 항목을 선택하는 체크박스 컴포넌트입니다.
36
- * 체크, 미체크, indeterminate(부분 선택) 상태를 지원합니다.
37
- *
38
- * @example
39
- * ```tsx
40
- * // 기본 사용
41
- * <Checkbox label="이용 약관에 동의합니다" />
42
- *
43
- * // 제어 컴포넌트
44
- * <Checkbox checked={isChecked} onCheckedChange={setIsChecked} label="선택" />
45
- *
46
- * // 부분 선택 상태
47
- * <Checkbox checked="indeterminate" label="전체 선택" />
48
- * ```
49
- *
50
- * @see {@link CheckboxProps} props 상세
51
- */
52
- declare const Checkbox: CheckboxComponent;
53
-
54
- export { Checkbox, type CheckboxComponent, type CheckboxProps };
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- var chunk5TVMECVF_js = require('../chunk-5TVMECVF.js');
4
- require('../chunk-5M47B2XJ.js');
5
-
6
-
7
-
8
- Object.defineProperty(exports, "Checkbox", {
9
- enumerable: true,
10
- get: function () { return chunk5TVMECVF_js.Checkbox; }
11
- });
12
- //# sourceMappingURL=index.js.map
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -1,4 +0,0 @@
1
- export { Checkbox } from '../chunk-N6U54JI4.mjs';
2
- import '../chunk-LZWKMQJL.mjs';
3
- //# sourceMappingURL=index.mjs.map
4
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -1,10 +0,0 @@
1
- import { Segment } from './chunk-Q442ZDTI.mjs';
2
- import { jsx } from 'react/jsx-runtime';
3
- import { createElement } from 'react';
4
-
5
- var FlatSegment = ({ items, disabled, className, ...props }) => /* @__PURE__ */ jsx(Segment, { ...props, children: /* @__PURE__ */ jsx(Segment.List, { className, children: items.map((item) => /* @__PURE__ */ createElement(Segment.Item, { ...item, key: item.value, disabled: disabled || item.disabled })) }) });
6
- FlatSegment.displayName = "FlatSegment";
7
-
8
- export { FlatSegment };
9
- //# sourceMappingURL=chunk-34QIGWCT.mjs.map
10
- //# sourceMappingURL=chunk-34QIGWCT.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flat/FlatSegment.tsx"],"names":[],"mappings":";;;;AAoCA,IAAM,cAAc,CAAC,EAAE,KAAA,EAAO,QAAA,EAAU,WAAW,GAAG,KAAA,EAAM,qBAC1D,GAAA,CAAC,WAAS,GAAG,KAAA,EACX,QAAA,kBAAA,GAAA,CAAC,OAAA,CAAQ,MAAR,EAAa,SAAA,EACX,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACV,aAAA,CAAC,OAAA,CAAQ,IAAA,EAAR,EAAc,GAAG,IAAA,EAAM,GAAA,EAAK,IAAA,CAAK,OAAO,QAAA,EAAU,QAAA,IAAY,KAAK,QAAA,EAAU,CAC/E,GACH,CAAA,EACF;AAGF,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-34QIGWCT.mjs","sourcesContent":["import type React from 'react';\nimport { Segment, type SegmentRootProps } from '../segment/Segment';\n\ntype FlatSegmentItem = Pick<\n React.ComponentPropsWithoutRef<typeof Segment.Item>,\n 'value' | 'children' | 'disabled' | 'leftIcon' | 'className'\n>;\n\ninterface FlatSegmentProps extends Omit<SegmentRootProps, 'children' | 'asChild'> {\n /** 세그먼트 아이템 배열 */\n items: FlatSegmentItem[];\n /**\n * 전체 비활성화 여부 (개별 아이템의 disabled와 OR 결합)\n * @default false\n */\n disabled?: boolean;\n}\n\n/**\n * Segment 컴포넌트의 간소화된 Flat API입니다.\n * items 배열만 전달하면 Compound Component 없이 간편하게 사용할 수 있습니다.\n *\n * @example\n * ```tsx\n * <FlatSegment\n * defaultValue=\"tab1\"\n * size=\"medium\"\n * items={[\n * { value: 'tab1', children: '첫 번째' },\n * { value: 'tab2', children: '두 번째' },\n * ]}\n * />\n * ```\n *\n * @see {@link FlatSegmentProps} props 상세\n */\nconst FlatSegment = ({ items, disabled, className, ...props }: FlatSegmentProps) => (\n <Segment {...props}>\n <Segment.List className={className}>\n {items.map((item) => (\n <Segment.Item {...item} key={item.value} disabled={disabled || item.disabled} />\n ))}\n </Segment.List>\n </Segment>\n);\n\nFlatSegment.displayName = 'FlatSegment';\n\nexport { FlatSegment };\nexport type { FlatSegmentProps, FlatSegmentItem };\n"]}
@@ -1,30 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkT7U2QRLC_js = require('./chunk-T7U2QRLC.js');
4
- var jsxRuntime = require('react/jsx-runtime');
5
-
6
- var FlatTooltip = ({ children, title, size, description, ...props }) => {
7
- return /* @__PURE__ */ jsxRuntime.jsx(chunkT7U2QRLC_js.Tooltip.Provider, { delayDuration: 0, skipDelayDuration: 0, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkT7U2QRLC_js.Tooltip, { children: [
8
- /* @__PURE__ */ jsxRuntime.jsx(chunkT7U2QRLC_js.Tooltip.Trigger, { asChild: true, children }),
9
- /* @__PURE__ */ jsxRuntime.jsxs(chunkT7U2QRLC_js.Tooltip.Content, { size, ...props, children: [
10
- title && /* @__PURE__ */ jsxRuntime.jsx(chunkT7U2QRLC_js.Tooltip.Title, { children: title }),
11
- description && /* @__PURE__ */ jsxRuntime.jsx(chunkT7U2QRLC_js.Tooltip.Description, { children: description })
12
- ] })
13
- ] }) });
14
- };
15
- function ConditionalTooltip({ children, tooltip }) {
16
- if (typeof tooltip === "string") {
17
- return /* @__PURE__ */ jsxRuntime.jsx(FlatTooltip, { size: "tiny", description: tooltip, children });
18
- }
19
- if (tooltip && typeof tooltip === "object" && "description" in tooltip && tooltip.use !== false) {
20
- return /* @__PURE__ */ jsxRuntime.jsx(FlatTooltip, { size: tooltip.size || "tiny", ...tooltip, children });
21
- }
22
- return children;
23
- }
24
- FlatTooltip.displayName = "FlatTooltip";
25
- ConditionalTooltip.displayName = "ConditionalTooltip";
26
-
27
- exports.ConditionalTooltip = ConditionalTooltip;
28
- exports.FlatTooltip = FlatTooltip;
29
- //# sourceMappingURL=chunk-3FPMWAQT.js.map
30
- //# sourceMappingURL=chunk-3FPMWAQT.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flat/FlatTooltip.tsx"],"names":["jsx","Tooltip","jsxs"],"mappings":";;;;;AAuCA,IAAM,WAAA,GAAc,CAAC,EAAE,QAAA,EAAU,OAAO,IAAA,EAAM,WAAA,EAAa,GAAG,KAAA,EAAM,KAAwB;AAC1F,EAAA,uBACEA,cAAA,CAACC,yBAAQ,QAAA,EAAR,EAAiB,eAAe,CAAA,EAAG,iBAAA,EAAmB,CAAA,EACrD,QAAA,kBAAAC,eAAA,CAACD,wBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAD,cAAA,CAACC,wBAAA,CAAQ,OAAA,EAAR,EAAgB,OAAA,EAAO,MAAE,QAAA,EAAS,CAAA;AAAA,oCAClCA,wBAAA,CAAQ,OAAA,EAAR,EAAgB,IAAA,EAAa,GAAG,KAAA,EAC9B,QAAA,EAAA;AAAA,MAAA,KAAA,oBAASD,cAAA,CAACC,wBAAA,CAAQ,KAAA,EAAR,EAAe,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MAC/B,WAAA,oBAAeD,cAAA,CAACC,wBAAA,CAAQ,WAAA,EAAR,EAAqB,QAAA,EAAA,WAAA,EAAY;AAAA,KAAA,EACpD;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;AAiDA,SAAS,kBAAA,CAAmB,EAAE,QAAA,EAAU,OAAA,EAAQ,EAA4B;AAC1E,EAAA,IAAI,OAAO,YAAY,QAAA,EAAU;AAC/B,IAAA,sCACG,WAAA,EAAA,EAAY,IAAA,EAAK,MAAA,EAAO,WAAA,EAAa,SACnC,QAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,OAAA,IAAW,OAAO,OAAA,KAAY,QAAA,IAAY,iBAAiB,OAAA,IAAW,OAAA,CAAQ,QAAQ,KAAA,EAAO;AAC/F,IAAA,uBACED,cAAA,CAAC,eAAY,IAAA,EAAM,OAAA,CAAQ,QAAQ,MAAA,EAAS,GAAG,SAC5C,QAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,QAAA;AACT;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AAC1B,kBAAA,CAAmB,WAAA,GAAc,oBAAA","file":"chunk-3FPMWAQT.js","sourcesContent":["import type { ComponentProps } from 'react';\nimport { Tooltip } from '../tooltip/Tooltip';\n\ninterface FlatTooltipProps {\n /** 툴팁을 적용할 자식 요소 */\n children: React.ReactNode;\n /** 툴팁 제목 (선택) */\n title?: React.ReactNode;\n /** 툴팁 크기 */\n size: ComponentProps<typeof Tooltip.Content>['size'];\n /** 툴팁 표시 위치 */\n side?: ComponentProps<typeof Tooltip.Content>['side'];\n /** 툴팁 정렬 */\n align?: ComponentProps<typeof Tooltip.Content>['align'];\n /** 사이드 방향 오프셋 (px) */\n sideOffset?: ComponentProps<typeof Tooltip.Content>['sideOffset'];\n /** 정렬 방향 오프셋 (px) */\n alignOffset?: ComponentProps<typeof Tooltip.Content>['alignOffset'];\n /** 툴팁 설명 텍스트 */\n description: React.ReactNode;\n}\n\n/**\n * Tooltip 컴포넌트의 간소화된 Flat API입니다.\n * Compound Component 없이 props만으로 간편하게 사용할 수 있습니다.\n *\n * @example\n * ```tsx\n * <FlatTooltip size=\"small\" description=\"도움말 텍스트\">\n * <button>호버하세요</button>\n * </FlatTooltip>\n *\n * <FlatTooltip size=\"tiny\" title=\"제목\" description=\"설명\">\n * <span>정보</span>\n * </FlatTooltip>\n * ```\n *\n * @see {@link FlatTooltipProps} props 상세\n */\nconst FlatTooltip = ({ children, title, size, description, ...props }: FlatTooltipProps) => {\n return (\n <Tooltip.Provider delayDuration={0} skipDelayDuration={0}>\n <Tooltip>\n <Tooltip.Trigger asChild>{children}</Tooltip.Trigger>\n <Tooltip.Content size={size} {...props}>\n {title && <Tooltip.Title>{title}</Tooltip.Title>}\n {description && <Tooltip.Description>{description}</Tooltip.Description>}\n </Tooltip.Content>\n </Tooltip>\n </Tooltip.Provider>\n );\n};\n\n/** FlatTooltip 설정 객체 타입 (children 제외) */\ntype TooltipConfig = Omit<ComponentProps<typeof FlatTooltip>, 'children' | 'size'> & {\n /**\n * 툴팁 사용 여부\n * @default true\n */\n use?: boolean;\n size?: ComponentProps<typeof FlatTooltip>['size'];\n};\n\ninterface ConditionalTooltipProps {\n /** 툴팁으로 감쌀 자식 요소 */\n children: React.ReactNode;\n /**\n * 툴팁 설정값\n * - `string`: 기본 tiny 사이즈의 툴팁 description으로 사용\n * - `object`: FlatTooltip props를 직접 전달 (`use: false`로 비활성화 가능)\n */\n tooltip: ComponentProps<typeof FlatTooltip>['description'] | TooltipConfig;\n}\n\n/**\n * 조건부로 FlatTooltip을 적용하는 래퍼 컴포넌트입니다.\n *\n * @description\n * tooltip prop의 타입에 따라 다르게 동작합니다:\n * - `string`: tiny 사이즈의 기본 툴팁으로 렌더링\n * - `object` (`use !== false`): 전달된 props로 FlatTooltip 렌더링\n * - `object` (`use === false`) 또는 기타: children만 반환 (툴팁 없음)\n *\n * @example\n * ```tsx\n * <ConditionalTooltip tooltip=\"도움말 텍스트\">\n * <button>버튼</button>\n * </ConditionalTooltip>\n *\n * <ConditionalTooltip tooltip={{ description: \"설명\", size: \"small\", side: \"top\" }}>\n * <button>버튼</button>\n * </ConditionalTooltip>\n *\n * <ConditionalTooltip tooltip={{ use: false, description: \"\" }}>\n * <button>툴팁 없음</button>\n * </ConditionalTooltip>\n * ```\n *\n * @see {@link ConditionalTooltipProps} props 상세\n */\nfunction ConditionalTooltip({ children, tooltip }: ConditionalTooltipProps) {\n if (typeof tooltip === 'string') {\n return (\n <FlatTooltip size=\"tiny\" description={tooltip}>\n {children}\n </FlatTooltip>\n );\n }\n\n if (tooltip && typeof tooltip === 'object' && 'description' in tooltip && tooltip.use !== false) {\n return (\n <FlatTooltip size={tooltip.size || 'tiny'} {...tooltip}>\n {children}\n </FlatTooltip>\n );\n }\n\n return children;\n}\n\nFlatTooltip.displayName = 'FlatTooltip';\nConditionalTooltip.displayName = 'ConditionalTooltip';\n\nexport { FlatTooltip, ConditionalTooltip };\nexport type { FlatTooltipProps, ConditionalTooltipProps, TooltipConfig };\n"]}
@@ -1,104 +0,0 @@
1
- 'use strict';
2
-
3
- var utils = require('@exem-ui/core/utils');
4
- var react = require('react');
5
- var jsxRuntime = require('react/jsx-runtime');
6
-
7
- // src/loading/Loading.tsx
8
- var containerVariants = utils.cva("inset-0 z-[49] flex items-center justify-center", {
9
- variants: {
10
- position: {
11
- fixed: "fixed",
12
- absolute: "absolute"
13
- },
14
- blockInteraction: {
15
- true: "pointer-events-auto",
16
- false: "pointer-events-none"
17
- }
18
- },
19
- defaultVariants: {
20
- position: "fixed",
21
- blockInteraction: false
22
- }
23
- });
24
- var overlayVariants = utils.cva("absolute inset-0 transition-opacity duration-150", {
25
- variants: {
26
- visible: {
27
- true: "opacity-100",
28
- false: "opacity-0"
29
- },
30
- tone: {
31
- // 대비감 높은 톤 설정 추후 디자인 시스템에서 추가 되어야함
32
- auto: "bg-black/30 dark:bg-white/10",
33
- dark: "bg-black/50",
34
- light: "bg-white/70",
35
- brand: "bg-primary/20"
36
- }
37
- },
38
- defaultVariants: {
39
- visible: true,
40
- tone: "auto"
41
- }
42
- });
43
- var spinnerVariants = utils.cva(
44
- "z-50 shrink-0 animate-spin rounded-full border-elevation-elevation-4 border-t-transparent",
45
- {
46
- variants: {
47
- size: {
48
- small: "size-6 border-2",
49
- medium: "size-9 border-[3px]",
50
- large: "size-12 border-4"
51
- }
52
- },
53
- defaultVariants: {
54
- size: "large"
55
- }
56
- }
57
- );
58
- var Loading = react.forwardRef(
59
- ({
60
- isLoading = true,
61
- dim = true,
62
- blockInteraction = false,
63
- position = "fixed",
64
- size = "medium",
65
- containerClassName,
66
- overlayClassName,
67
- spinnerClassName,
68
- className,
69
- ...props
70
- }, ref) => {
71
- if (!isLoading) {
72
- return null;
73
- }
74
- return /* @__PURE__ */ jsxRuntime.jsxs(
75
- "div",
76
- {
77
- ref,
78
- role: "status",
79
- "aria-busy": "true",
80
- className: utils.cn(
81
- containerVariants({ position, blockInteraction }),
82
- containerClassName,
83
- className
84
- ),
85
- ...props,
86
- children: [
87
- /* @__PURE__ */ jsxRuntime.jsx(
88
- "div",
89
- {
90
- "aria-hidden": "true",
91
- className: utils.cn(overlayVariants({ visible: dim }), overlayClassName)
92
- }
93
- ),
94
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-50 flex size-full items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn(spinnerVariants({ size }), spinnerClassName) }) })
95
- ]
96
- }
97
- );
98
- }
99
- );
100
- Loading.displayName = "Loading";
101
-
102
- exports.Loading = Loading;
103
- //# sourceMappingURL=chunk-3HMT3DQV.js.map
104
- //# sourceMappingURL=chunk-3HMT3DQV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/loading/Loading.tsx"],"names":["cva","forwardRef","jsxs","cn","jsx"],"mappings":";;;;;;;AAmCA,IAAM,iBAAA,GAAoBA,UAAI,iDAAA,EAAmD;AAAA,EAC/E,QAAA,EAAU;AAAA,IACR,QAAA,EAAU;AAAA,MACR,KAAA,EAAO,OAAA;AAAA,MACP,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,QAAA,EAAU,OAAA;AAAA,IACV,gBAAA,EAAkB;AAAA;AAEtB,CAAC,CAAA;AAED,IAAM,eAAA,GAAkBA,UAAI,kDAAA,EAAoD;AAAA,EAC9E,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,aAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA,IAAA,EAAM;AAAA;AAAA,MAEJ,IAAA,EAAM,8BAAA;AAAA,MACN,IAAA,EAAM,aAAA;AAAA,MACN,KAAA,EAAO,aAAA;AAAA,MACP,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,IAAA;AAAA,IACT,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAED,IAAM,eAAA,GAAkBA,SAAA;AAAA,EACtB,2FAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,MAAA,EAAQ,qBAAA;AAAA,QACR,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAkBA,IAAM,OAAA,GAAUC,gBAAA;AAAA,EACd,CACE;AAAA,IACE,SAAA,GAAY,IAAA;AAAA,IACZ,GAAA,GAAM,IAAA;AAAA,IACN,gBAAA,GAAmB,KAAA;AAAA,IACnB,QAAA,GAAW,OAAA;AAAA,IACX,IAAA,GAAO,QAAA;AAAA,IACP,kBAAA;AAAA,IACA,gBAAA;AAAA,IACA,gBAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,uBACEC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACL,WAAA,EAAU,MAAA;AAAA,QACV,SAAA,EAAWC,QAAA;AAAA,UACT,iBAAA,CAAkB,EAAE,QAAA,EAAU,gBAAA,EAAkB,CAAA;AAAA,UAChD,kBAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAGJ,QAAA,EAAA;AAAA,0BAAAC,cAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAY,MAAA;AAAA,cACZ,SAAA,EAAWD,SAAG,eAAA,CAAgB,EAAE,SAAS,GAAA,EAAK,GAAG,gBAAgB;AAAA;AAAA,WACnE;AAAA,0BAEAC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0DAAA,EACb,yCAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,QAAA,CAAG,eAAA,CAAgB,EAAE,IAAA,EAAM,CAAA,EAAG,gBAAgB,GAAG,CAAA,EACnE;AAAA;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-3HMT3DQV.js","sourcesContent":["import { cn, cva, type VariantProps } from '@exem-ui/core/utils';\nimport type React from 'react';\nimport { forwardRef } from 'react';\n\ninterface LoadingProps\n extends VariantProps<typeof containerVariants>,\n VariantProps<typeof spinnerVariants>,\n Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n /**\n * 로딩 표시 여부\n * @default true\n */\n isLoading?: boolean;\n /**\n * 배경 딤 처리 여부\n * @default true\n */\n dim?: boolean;\n /**\n * 로딩 중 하위 요소 인터랙션 차단 여부\n * @default false\n */\n blockInteraction?: boolean;\n /** 컨테이너 추가 클래스 */\n containerClassName?: string;\n /** 오버레이 추가 클래스 */\n overlayClassName?: string;\n /** 스피너 추가 클래스 */\n spinnerClassName?: string;\n}\n\ntype LoadingComponent = React.ForwardRefExoticComponent<\n LoadingProps & React.RefAttributes<HTMLDivElement>\n>;\n\nconst containerVariants = cva('inset-0 z-[49] flex items-center justify-center', {\n variants: {\n position: {\n fixed: 'fixed',\n absolute: 'absolute',\n },\n blockInteraction: {\n true: 'pointer-events-auto',\n false: 'pointer-events-none',\n },\n },\n defaultVariants: {\n position: 'fixed',\n blockInteraction: false,\n },\n});\n\nconst overlayVariants = cva('absolute inset-0 transition-opacity duration-150', {\n variants: {\n visible: {\n true: 'opacity-100',\n false: 'opacity-0',\n },\n tone: {\n // 대비감 높은 톤 설정 추후 디자인 시스템에서 추가 되어야함\n auto: 'bg-black/30 dark:bg-white/10',\n dark: 'bg-black/50',\n light: 'bg-white/70',\n brand: 'bg-primary/20',\n },\n },\n defaultVariants: {\n visible: true,\n tone: 'auto',\n },\n});\n\nconst spinnerVariants = cva(\n 'z-50 shrink-0 animate-spin rounded-full border-elevation-elevation-4 border-t-transparent',\n {\n variants: {\n size: {\n small: 'size-6 border-2',\n medium: 'size-9 border-[3px]',\n large: 'size-12 border-4',\n },\n },\n defaultVariants: {\n size: 'large',\n },\n },\n);\n\n/**\n * 비동기 작업 중 로딩 상태를 표시하는 오버레이 컴포넌트입니다.\n *\n * @example\n * ```tsx\n * // 기본 사용 (전체 화면 고정)\n * <Loading isLoading />\n *\n * // 특정 영역 내 로딩 (absolute 위치)\n * <div style={{ position: 'relative' }}>\n * <Loading isLoading position=\"absolute\" size=\"small\" />\n * </div>\n * ```\n *\n * @see {@link LoadingProps} props 상세\n */\nconst Loading = forwardRef<HTMLDivElement, LoadingProps>(\n (\n {\n isLoading = true,\n dim = true,\n blockInteraction = false,\n position = 'fixed',\n size = 'medium',\n containerClassName,\n overlayClassName,\n spinnerClassName,\n className,\n ...props\n },\n ref,\n ) => {\n if (!isLoading) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n role=\"status\"\n aria-busy=\"true\"\n className={cn(\n containerVariants({ position, blockInteraction }),\n containerClassName,\n className,\n )}\n {...props}\n >\n {/* overlay 항상 존재 (dim 여부로만 표시) */}\n <div\n aria-hidden=\"true\"\n className={cn(overlayVariants({ visible: dim }), overlayClassName)}\n />\n {/* 스피너 레이어 */}\n <div className=\"relative z-50 flex size-full items-center justify-center\">\n <div className={cn(spinnerVariants({ size }), spinnerClassName)} />\n </div>\n </div>\n );\n },\n) as LoadingComponent;\n\nLoading.displayName = 'Loading';\n\nexport { Loading };\nexport type { LoadingComponent, LoadingProps };\n"]}
@@ -1,95 +0,0 @@
1
- import { cva, cn } from '@exem-ui/core/utils';
2
- import * as TabsPrimitive from '@radix-ui/react-tabs';
3
- import { createContext, forwardRef, useContext } from 'react';
4
- import { jsx, jsxs } from 'react/jsx-runtime';
5
-
6
- // src/tabs/Tabs.tsx
7
- var TabsContext = createContext({ type: "primary" });
8
- var useTabsContext = () => {
9
- const context = useContext(TabsContext);
10
- if (!context) {
11
- throw new Error("useTabsContext must be used within a TabsProvider");
12
- }
13
- return context;
14
- };
15
- var tabsListVariants = cva("inline-flex items-center", {
16
- variants: {
17
- type: {
18
- primary: "h-9 gap-5 border-b border-border-primary",
19
- secondary: "h-8 gap-1"
20
- }
21
- },
22
- defaultVariants: {
23
- type: "primary"
24
- }
25
- });
26
- var tabsTriggerVariants = cva(
27
- "group inline-flex items-center justify-center gap-1.5 whitespace-nowrap font-pretendard font-semibold text-body-2 leading-[140%] transition-all disabled:pointer-events-none disabled:opacity-50",
28
- {
29
- variants: {
30
- type: {
31
- primary: [
32
- "h-9 border-b-2 border-transparent p-0 text-text-tertiary",
33
- "hover:text-text-primary",
34
- "data-[state=active]:border-border-focused data-[state=active]:text-text-primary"
35
- ],
36
- secondary: [
37
- "h-8 rounded-strong px-2 text-text-tertiary",
38
- "hover:text-text-primary",
39
- "data-[state=active]:rounded-medium data-[state=active]:bg-elevation-elevation-2 data-[state=active]:text-text-primary"
40
- ]
41
- }
42
- },
43
- defaultVariants: {
44
- type: "primary"
45
- }
46
- }
47
- );
48
- var Tabs = forwardRef(
49
- ({ type = "primary", children, ...props }, ref) => /* @__PURE__ */ jsx(TabsContext.Provider, { value: { type }, children: /* @__PURE__ */ jsx(TabsPrimitive.Root, { ref, ...props, children }) })
50
- );
51
- Tabs.List = forwardRef(
52
- ({ className, ...props }, ref) => {
53
- const { type } = useTabsContext();
54
- return /* @__PURE__ */ jsx(
55
- TabsPrimitive.List,
56
- {
57
- ref,
58
- className: cn(tabsListVariants({ type }), className),
59
- ...props
60
- }
61
- );
62
- }
63
- );
64
- Tabs.Trigger = forwardRef(
65
- ({ className, leftIcon, rightIcon, badge, children, ...props }, ref) => {
66
- const { type } = useTabsContext();
67
- return /* @__PURE__ */ jsxs(
68
- TabsPrimitive.Trigger,
69
- {
70
- ref,
71
- className: cn(tabsTriggerVariants({ type }), className),
72
- ...props,
73
- children: [
74
- leftIcon && /* @__PURE__ */ jsx("span", { className: "size-4", children: leftIcon }),
75
- /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
76
- children,
77
- badge && /* @__PURE__ */ jsx("span", { className: "text-text-tertiary group-data-[state=active]:text-text-accent", children: badge })
78
- ] }),
79
- rightIcon && /* @__PURE__ */ jsx("span", { className: "size-4", children: rightIcon })
80
- ]
81
- }
82
- );
83
- }
84
- );
85
- Tabs.Content = forwardRef(
86
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(TabsPrimitive.Content, { ref, className: cn(className), ...props })
87
- );
88
- Tabs.displayName = "Tabs";
89
- Tabs.List.displayName = "Tabs.List";
90
- Tabs.Trigger.displayName = "Tabs.Trigger";
91
- Tabs.Content.displayName = "Tabs.Content";
92
-
93
- export { Tabs };
94
- //# sourceMappingURL=chunk-4WAO7CUT.mjs.map
95
- //# sourceMappingURL=chunk-4WAO7CUT.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/tabs/Tabs.tsx"],"names":[],"mappings":"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","file":"chunk-4WAO7CUT.mjs","sourcesContent":["import { cn, cva } from '@exem-ui/core/utils';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport type React from 'react';\nimport { createContext, forwardRef, useContext } from 'react';\n\ntype TabsType = 'primary' | 'secondary';\n\ntype TabsContextType = {\n type: TabsType;\n};\n\ntype TabsRootProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root> & {\n /**\n * 탭 스타일 유형\n * @default 'primary'\n */\n type?: TabsType;\n};\n\ntype TabsListProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>;\n\ntype TabsTriggerProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> & {\n /** 텍스트 왼쪽에 표시할 아이콘 요소 */\n leftIcon?: React.ReactElement<{ className?: string }>;\n /** 텍스트 오른쪽에 표시할 아이콘 요소 */\n rightIcon?: React.ReactElement<{ className?: string }>;\n /** 탭 라벨 옆에 표시할 배지 텍스트 */\n badge?: string | number;\n};\n\ntype TabsContentProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>;\n\ntype TabsComponent = React.ForwardRefExoticComponent<\n TabsRootProps & React.RefAttributes<React.ElementRef<typeof TabsPrimitive.Root>>\n> & {\n List: React.ForwardRefExoticComponent<TabsListProps>;\n Trigger: React.ForwardRefExoticComponent<TabsTriggerProps>;\n Content: React.ForwardRefExoticComponent<TabsContentProps>;\n};\n\nconst TabsContext = createContext<TabsContextType>({ type: 'primary' });\n\nconst useTabsContext = () => {\n const context = useContext(TabsContext);\n if (!context) {\n throw new Error('useTabsContext must be used within a TabsProvider');\n }\n return context;\n};\n\n// TabsList variants\nconst tabsListVariants = cva('inline-flex items-center', {\n variants: {\n type: {\n primary: 'h-9 gap-5 border-b border-border-primary',\n secondary: 'h-8 gap-1',\n },\n },\n defaultVariants: {\n type: 'primary',\n },\n});\n\n// TabsTrigger variants\nconst tabsTriggerVariants = cva(\n 'group inline-flex items-center justify-center gap-1.5 whitespace-nowrap font-pretendard font-semibold text-body-2 leading-[140%] transition-all disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n type: {\n primary: [\n 'h-9 border-b-2 border-transparent p-0 text-text-tertiary',\n 'hover:text-text-primary',\n 'data-[state=active]:border-border-focused data-[state=active]:text-text-primary',\n ],\n secondary: [\n 'h-8 rounded-strong px-2 text-text-tertiary',\n 'hover:text-text-primary',\n 'data-[state=active]:rounded-medium data-[state=active]:bg-elevation-elevation-2 data-[state=active]:text-text-primary',\n ],\n },\n },\n defaultVariants: {\n type: 'primary',\n },\n },\n);\n\n/**\n * 탭 형태의 콘텐츠 전환 컴포넌트입니다.\n * Compound Component 패턴으로 `Tabs.List`, `Tabs.Trigger`, `Tabs.Content`와 함께 사용합니다.\n *\n * @example\n * ```tsx\n * <Tabs defaultValue=\"tab1\" type=\"primary\">\n * <Tabs.List>\n * <Tabs.Trigger value=\"tab1\">첫 번째</Tabs.Trigger>\n * <Tabs.Trigger value=\"tab2\">두 번째</Tabs.Trigger>\n * </Tabs.List>\n * <Tabs.Content value=\"tab1\">첫 번째 내용</Tabs.Content>\n * <Tabs.Content value=\"tab2\">두 번째 내용</Tabs.Content>\n * </Tabs>\n * ```\n *\n * @see {@link TabsRootProps} 루트 props 상세\n * @see {@link TabsTriggerProps} 트리거 props 상세\n */\nconst Tabs = forwardRef<React.ElementRef<typeof TabsPrimitive.Root>, TabsRootProps>(\n ({ type = 'primary', children, ...props }, ref) => (\n <TabsContext.Provider value={{ type }}>\n <TabsPrimitive.Root ref={ref} {...props}>\n {children}\n </TabsPrimitive.Root>\n </TabsContext.Provider>\n ),\n) as TabsComponent;\n\nTabs.List = forwardRef<React.ElementRef<typeof TabsPrimitive.List>, TabsListProps>(\n ({ className, ...props }, ref) => {\n const { type } = useTabsContext();\n return (\n <TabsPrimitive.List\n ref={ref}\n className={cn(tabsListVariants({ type }), className)}\n {...props}\n />\n );\n },\n) as TabsComponent['List'];\n\nTabs.Trigger = forwardRef<React.ElementRef<typeof TabsPrimitive.Trigger>, TabsTriggerProps>(\n ({ className, leftIcon, rightIcon, badge, children, ...props }, ref) => {\n const { type } = useTabsContext();\n return (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(tabsTriggerVariants({ type }), className)}\n {...props}\n >\n {leftIcon && <span className=\"size-4\">{leftIcon}</span>}\n <span className=\"flex items-center gap-1\">\n {children}\n {badge && (\n <span className=\"text-text-tertiary group-data-[state=active]:text-text-accent\">\n {badge}\n </span>\n )}\n </span>\n {rightIcon && <span className=\"size-4\">{rightIcon}</span>}\n </TabsPrimitive.Trigger>\n );\n },\n) as TabsComponent['Trigger'];\n\nTabs.Content = forwardRef<React.ElementRef<typeof TabsPrimitive.Content>, TabsContentProps>(\n ({ className, ...props }, ref) => (\n <TabsPrimitive.Content ref={ref} className={cn(className)} {...props} />\n ),\n) as TabsComponent['Content'];\n\nTabs.displayName = 'Tabs';\nTabs.List.displayName = 'Tabs.List';\nTabs.Trigger.displayName = 'Tabs.Trigger';\nTabs.Content.displayName = 'Tabs.Content';\n\nexport { Tabs };\nexport type { TabsComponent, TabsRootProps, TabsListProps, TabsTriggerProps, TabsContentProps };\n"]}