@exem-ui/react 0.1.0-next.bf3c711

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 (274) hide show
  1. package/README.en.md +141 -0
  2. package/README.md +141 -0
  3. package/dist/Button-CMenVfb7.d.mts +35 -0
  4. package/dist/Button-CMenVfb7.d.ts +35 -0
  5. package/dist/Select-DMvWV_rF.d.mts +94 -0
  6. package/dist/Select-DMvWV_rF.d.ts +94 -0
  7. package/dist/avatar/index.d.mts +37 -0
  8. package/dist/avatar/index.d.ts +37 -0
  9. package/dist/avatar/index.js +13 -0
  10. package/dist/avatar/index.js.map +1 -0
  11. package/dist/avatar/index.mjs +4 -0
  12. package/dist/avatar/index.mjs.map +1 -0
  13. package/dist/badge/index.d.mts +29 -0
  14. package/dist/badge/index.d.ts +29 -0
  15. package/dist/badge/index.js +12 -0
  16. package/dist/badge/index.js.map +1 -0
  17. package/dist/badge/index.mjs +3 -0
  18. package/dist/badge/index.mjs.map +1 -0
  19. package/dist/breadcrumb/index.d.mts +43 -0
  20. package/dist/breadcrumb/index.d.ts +43 -0
  21. package/dist/breadcrumb/index.js +13 -0
  22. package/dist/breadcrumb/index.js.map +1 -0
  23. package/dist/breadcrumb/index.mjs +4 -0
  24. package/dist/breadcrumb/index.mjs.map +1 -0
  25. package/dist/button/index.d.mts +9 -0
  26. package/dist/button/index.d.ts +9 -0
  27. package/dist/button/index.js +29 -0
  28. package/dist/button/index.js.map +1 -0
  29. package/dist/button/index.mjs +12 -0
  30. package/dist/button/index.mjs.map +1 -0
  31. package/dist/checkbox/index.d.mts +54 -0
  32. package/dist/checkbox/index.d.ts +54 -0
  33. package/dist/checkbox/index.js +13 -0
  34. package/dist/checkbox/index.js.map +1 -0
  35. package/dist/checkbox/index.mjs +4 -0
  36. package/dist/checkbox/index.mjs.map +1 -0
  37. package/dist/chunk-34QIGWCT.mjs +10 -0
  38. package/dist/chunk-34QIGWCT.mjs.map +1 -0
  39. package/dist/chunk-3FPMWAQT.js +30 -0
  40. package/dist/chunk-3FPMWAQT.js.map +1 -0
  41. package/dist/chunk-3HMT3DQV.js +104 -0
  42. package/dist/chunk-3HMT3DQV.js.map +1 -0
  43. package/dist/chunk-4WAO7CUT.mjs +95 -0
  44. package/dist/chunk-4WAO7CUT.mjs.map +1 -0
  45. package/dist/chunk-5M47B2XJ.js +4096 -0
  46. package/dist/chunk-5M47B2XJ.js.map +1 -0
  47. package/dist/chunk-5QX4TO4F.js +61 -0
  48. package/dist/chunk-5QX4TO4F.js.map +1 -0
  49. package/dist/chunk-5TEFN2CW.js +97 -0
  50. package/dist/chunk-5TEFN2CW.js.map +1 -0
  51. package/dist/chunk-5TES5PG6.js +41 -0
  52. package/dist/chunk-5TES5PG6.js.map +1 -0
  53. package/dist/chunk-5TVMECVF.js +148 -0
  54. package/dist/chunk-5TVMECVF.js.map +1 -0
  55. package/dist/chunk-5WGNZX7Z.mjs +27 -0
  56. package/dist/chunk-5WGNZX7Z.mjs.map +1 -0
  57. package/dist/chunk-AQ3OIM2T.js +103 -0
  58. package/dist/chunk-AQ3OIM2T.js.map +1 -0
  59. package/dist/chunk-AU5NTBK3.js +361 -0
  60. package/dist/chunk-AU5NTBK3.js.map +1 -0
  61. package/dist/chunk-DJHGCJR4.mjs +224 -0
  62. package/dist/chunk-DJHGCJR4.mjs.map +1 -0
  63. package/dist/chunk-DPUTW5KD.mjs +74 -0
  64. package/dist/chunk-DPUTW5KD.mjs.map +1 -0
  65. package/dist/chunk-E53FHDVN.mjs +336 -0
  66. package/dist/chunk-E53FHDVN.mjs.map +1 -0
  67. package/dist/chunk-ECRQD7UU.js +82 -0
  68. package/dist/chunk-ECRQD7UU.js.map +1 -0
  69. package/dist/chunk-FB4ESGOX.mjs +59 -0
  70. package/dist/chunk-FB4ESGOX.mjs.map +1 -0
  71. package/dist/chunk-FDX4IQK5.js +76 -0
  72. package/dist/chunk-FDX4IQK5.js.map +1 -0
  73. package/dist/chunk-FOMIUDRM.js +96 -0
  74. package/dist/chunk-FOMIUDRM.js.map +1 -0
  75. package/dist/chunk-FR5F3VTU.js +139 -0
  76. package/dist/chunk-FR5F3VTU.js.map +1 -0
  77. package/dist/chunk-GW53LH3I.mjs +81 -0
  78. package/dist/chunk-GW53LH3I.mjs.map +1 -0
  79. package/dist/chunk-GXMRIT5E.mjs +94 -0
  80. package/dist/chunk-GXMRIT5E.mjs.map +1 -0
  81. package/dist/chunk-IANSI7F7.mjs +393 -0
  82. package/dist/chunk-IANSI7F7.mjs.map +1 -0
  83. package/dist/chunk-IDM6MZHF.js +415 -0
  84. package/dist/chunk-IDM6MZHF.js.map +1 -0
  85. package/dist/chunk-J5ZYQ3TP.js +104 -0
  86. package/dist/chunk-J5ZYQ3TP.js.map +1 -0
  87. package/dist/chunk-KPAUBWZA.mjs +39 -0
  88. package/dist/chunk-KPAUBWZA.mjs.map +1 -0
  89. package/dist/chunk-L7P2NDST.mjs +124 -0
  90. package/dist/chunk-L7P2NDST.mjs.map +1 -0
  91. package/dist/chunk-LZWKMQJL.mjs +3886 -0
  92. package/dist/chunk-LZWKMQJL.mjs.map +1 -0
  93. package/dist/chunk-M6OWN7QH.js +118 -0
  94. package/dist/chunk-M6OWN7QH.js.map +1 -0
  95. package/dist/chunk-MQVHREEI.js +448 -0
  96. package/dist/chunk-MQVHREEI.js.map +1 -0
  97. package/dist/chunk-MT47ECUN.js +127 -0
  98. package/dist/chunk-MT47ECUN.js.map +1 -0
  99. package/dist/chunk-N6U54JI4.mjs +126 -0
  100. package/dist/chunk-N6U54JI4.mjs.map +1 -0
  101. package/dist/chunk-NDG4LR3Q.js +139 -0
  102. package/dist/chunk-NDG4LR3Q.js.map +1 -0
  103. package/dist/chunk-PPD4BU4W.mjs +80 -0
  104. package/dist/chunk-PPD4BU4W.mjs.map +1 -0
  105. package/dist/chunk-PU5NO5EZ.js +4 -0
  106. package/dist/chunk-PU5NO5EZ.js.map +1 -0
  107. package/dist/chunk-Q442ZDTI.mjs +117 -0
  108. package/dist/chunk-Q442ZDTI.mjs.map +1 -0
  109. package/dist/chunk-QH23RO3C.mjs +137 -0
  110. package/dist/chunk-QH23RO3C.mjs.map +1 -0
  111. package/dist/chunk-REBHUF4L.js +226 -0
  112. package/dist/chunk-REBHUF4L.js.map +1 -0
  113. package/dist/chunk-RGB3QLQT.js +275 -0
  114. package/dist/chunk-RGB3QLQT.js.map +1 -0
  115. package/dist/chunk-T7U2QRLC.js +94 -0
  116. package/dist/chunk-T7U2QRLC.js.map +1 -0
  117. package/dist/chunk-TEHHJ3CS.mjs +73 -0
  118. package/dist/chunk-TEHHJ3CS.mjs.map +1 -0
  119. package/dist/chunk-TJY4MIBC.js +117 -0
  120. package/dist/chunk-TJY4MIBC.js.map +1 -0
  121. package/dist/chunk-VCMZQOQM.mjs +102 -0
  122. package/dist/chunk-VCMZQOQM.mjs.map +1 -0
  123. package/dist/chunk-VKN4H4WI.mjs +3 -0
  124. package/dist/chunk-VKN4H4WI.mjs.map +1 -0
  125. package/dist/chunk-VSB25XTY.js +12 -0
  126. package/dist/chunk-VSB25XTY.js.map +1 -0
  127. package/dist/chunk-VWTE74UT.mjs +96 -0
  128. package/dist/chunk-VWTE74UT.mjs.map +1 -0
  129. package/dist/chunk-WBTL7PBV.js +105 -0
  130. package/dist/chunk-WBTL7PBV.js.map +1 -0
  131. package/dist/chunk-WOK3EP3O.js +83 -0
  132. package/dist/chunk-WOK3EP3O.js.map +1 -0
  133. package/dist/chunk-WWT73GGM.mjs +83 -0
  134. package/dist/chunk-WWT73GGM.mjs.map +1 -0
  135. package/dist/chunk-XBDXTRK3.mjs +102 -0
  136. package/dist/chunk-XBDXTRK3.mjs.map +1 -0
  137. package/dist/chunk-YGBEKZWU.mjs +81 -0
  138. package/dist/chunk-YGBEKZWU.mjs.map +1 -0
  139. package/dist/chunk-YVFLRPFV.mjs +72 -0
  140. package/dist/chunk-YVFLRPFV.mjs.map +1 -0
  141. package/dist/chunk-ZMVBIQ2Z.mjs +253 -0
  142. package/dist/chunk-ZMVBIQ2Z.mjs.map +1 -0
  143. package/dist/chunk-ZWCMSHDP.mjs +425 -0
  144. package/dist/chunk-ZWCMSHDP.mjs.map +1 -0
  145. package/dist/flat/index.d.mts +13 -0
  146. package/dist/flat/index.d.ts +13 -0
  147. package/dist/flat/index.js +31 -0
  148. package/dist/flat/index.js.map +1 -0
  149. package/dist/flat/index.mjs +10 -0
  150. package/dist/flat/index.mjs.map +1 -0
  151. package/dist/flat/segment.d.mts +39 -0
  152. package/dist/flat/segment.d.ts +39 -0
  153. package/dist/flat/segment.js +13 -0
  154. package/dist/flat/segment.js.map +1 -0
  155. package/dist/flat/segment.mjs +4 -0
  156. package/dist/flat/segment.mjs.map +1 -0
  157. package/dist/flat/select.d.mts +58 -0
  158. package/dist/flat/select.d.ts +58 -0
  159. package/dist/flat/select.js +14 -0
  160. package/dist/flat/select.js.map +1 -0
  161. package/dist/flat/select.mjs +5 -0
  162. package/dist/flat/select.mjs.map +1 -0
  163. package/dist/flat/tooltip.d.mts +98 -0
  164. package/dist/flat/tooltip.d.ts +98 -0
  165. package/dist/flat/tooltip.js +17 -0
  166. package/dist/flat/tooltip.js.map +1 -0
  167. package/dist/flat/tooltip.mjs +4 -0
  168. package/dist/flat/tooltip.mjs.map +1 -0
  169. package/dist/icon/index.d.mts +1258 -0
  170. package/dist/icon/index.d.ts +1258 -0
  171. package/dist/icon/index.js +1672 -0
  172. package/dist/icon/index.js.map +1 -0
  173. package/dist/icon/index.mjs +3 -0
  174. package/dist/icon/index.mjs.map +1 -0
  175. package/dist/index-CXip5Wb1.d.mts +62 -0
  176. package/dist/index-Drz3P-6Y.d.ts +62 -0
  177. package/dist/index.d.mts +37 -0
  178. package/dist/index.d.ts +37 -0
  179. package/dist/index.js +150 -0
  180. package/dist/index.js.map +1 -0
  181. package/dist/index.mjs +29 -0
  182. package/dist/index.mjs.map +1 -0
  183. package/dist/input/index.d.mts +82 -0
  184. package/dist/input/index.d.ts +82 -0
  185. package/dist/input/index.js +22 -0
  186. package/dist/input/index.js.map +1 -0
  187. package/dist/input/index.mjs +5 -0
  188. package/dist/input/index.mjs.map +1 -0
  189. package/dist/loading/index.d.mts +54 -0
  190. package/dist/loading/index.d.ts +54 -0
  191. package/dist/loading/index.js +12 -0
  192. package/dist/loading/index.js.map +1 -0
  193. package/dist/loading/index.mjs +3 -0
  194. package/dist/loading/index.mjs.map +1 -0
  195. package/dist/messageBox/index.d.mts +33 -0
  196. package/dist/messageBox/index.d.ts +33 -0
  197. package/dist/messageBox/index.js +13 -0
  198. package/dist/messageBox/index.js.map +1 -0
  199. package/dist/messageBox/index.mjs +4 -0
  200. package/dist/messageBox/index.mjs.map +1 -0
  201. package/dist/modal/index.d.mts +97 -0
  202. package/dist/modal/index.d.ts +97 -0
  203. package/dist/modal/index.js +15 -0
  204. package/dist/modal/index.js.map +1 -0
  205. package/dist/modal/index.mjs +6 -0
  206. package/dist/modal/index.mjs.map +1 -0
  207. package/dist/picker/index.d.mts +12 -0
  208. package/dist/picker/index.d.ts +12 -0
  209. package/dist/picker/index.js +13 -0
  210. package/dist/picker/index.js.map +1 -0
  211. package/dist/picker/index.mjs +4 -0
  212. package/dist/picker/index.mjs.map +1 -0
  213. package/dist/progress/index.d.mts +36 -0
  214. package/dist/progress/index.d.ts +36 -0
  215. package/dist/progress/index.js +12 -0
  216. package/dist/progress/index.js.map +1 -0
  217. package/dist/progress/index.mjs +3 -0
  218. package/dist/progress/index.mjs.map +1 -0
  219. package/dist/radio/index.d.mts +39 -0
  220. package/dist/radio/index.d.ts +39 -0
  221. package/dist/radio/index.js +12 -0
  222. package/dist/radio/index.js.map +1 -0
  223. package/dist/radio/index.mjs +3 -0
  224. package/dist/radio/index.mjs.map +1 -0
  225. package/dist/scrollArea/index.d.mts +31 -0
  226. package/dist/scrollArea/index.d.ts +31 -0
  227. package/dist/scrollArea/index.js +16 -0
  228. package/dist/scrollArea/index.js.map +1 -0
  229. package/dist/scrollArea/index.mjs +3 -0
  230. package/dist/scrollArea/index.mjs.map +1 -0
  231. package/dist/segment/index.d.mts +46 -0
  232. package/dist/segment/index.d.ts +46 -0
  233. package/dist/segment/index.js +12 -0
  234. package/dist/segment/index.js.map +1 -0
  235. package/dist/segment/index.mjs +3 -0
  236. package/dist/segment/index.mjs.map +1 -0
  237. package/dist/star/index.d.mts +30 -0
  238. package/dist/star/index.d.ts +30 -0
  239. package/dist/star/index.js +12 -0
  240. package/dist/star/index.js.map +1 -0
  241. package/dist/star/index.mjs +3 -0
  242. package/dist/star/index.mjs.map +1 -0
  243. package/dist/switch/index.d.mts +32 -0
  244. package/dist/switch/index.d.ts +32 -0
  245. package/dist/switch/index.js +12 -0
  246. package/dist/switch/index.js.map +1 -0
  247. package/dist/switch/index.mjs +3 -0
  248. package/dist/switch/index.mjs.map +1 -0
  249. package/dist/tabs/index.d.mts +52 -0
  250. package/dist/tabs/index.d.ts +52 -0
  251. package/dist/tabs/index.js +12 -0
  252. package/dist/tabs/index.js.map +1 -0
  253. package/dist/tabs/index.mjs +3 -0
  254. package/dist/tabs/index.mjs.map +1 -0
  255. package/dist/tag/index.d.mts +68 -0
  256. package/dist/tag/index.d.ts +68 -0
  257. package/dist/tag/index.js +17 -0
  258. package/dist/tag/index.js.map +1 -0
  259. package/dist/tag/index.mjs +4 -0
  260. package/dist/tag/index.mjs.map +1 -0
  261. package/dist/toast/index.d.mts +175 -0
  262. package/dist/toast/index.d.ts +175 -0
  263. package/dist/toast/index.js +25 -0
  264. package/dist/toast/index.js.map +1 -0
  265. package/dist/toast/index.mjs +4 -0
  266. package/dist/toast/index.mjs.map +1 -0
  267. package/dist/tooltip/index.d.mts +26 -0
  268. package/dist/tooltip/index.d.ts +26 -0
  269. package/dist/tooltip/index.js +12 -0
  270. package/dist/tooltip/index.js.map +1 -0
  271. package/dist/tooltip/index.mjs +3 -0
  272. package/dist/tooltip/index.mjs.map +1 -0
  273. package/package.json +251 -0
  274. package/styles.css +20 -0
@@ -0,0 +1,29 @@
1
+ import React__default from 'react';
2
+
3
+ interface BadgeProps extends React__default.HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * 배지 스타일 변형
6
+ * @default 'default'
7
+ */
8
+ variant?: 'default' | 'accent';
9
+ /**
10
+ * 비활성화 상태
11
+ * @default false
12
+ */
13
+ disabled?: boolean;
14
+ }
15
+ type BadgeComponent = React__default.ForwardRefExoticComponent<BadgeProps & React__default.RefAttributes<HTMLDivElement>>;
16
+ /**
17
+ * 상태나 카운트를 표시하는 배지 컴포넌트입니다.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <Badge variant="accent">3</Badge>
22
+ * <Badge variant="default" disabled>0</Badge>
23
+ * ```
24
+ *
25
+ * @see {@link BadgeProps} props 상세
26
+ */
27
+ declare const Badge: BadgeComponent;
28
+
29
+ export { Badge, type BadgeComponent, type BadgeProps };
@@ -0,0 +1,29 @@
1
+ import React__default from 'react';
2
+
3
+ interface BadgeProps extends React__default.HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * 배지 스타일 변형
6
+ * @default 'default'
7
+ */
8
+ variant?: 'default' | 'accent';
9
+ /**
10
+ * 비활성화 상태
11
+ * @default false
12
+ */
13
+ disabled?: boolean;
14
+ }
15
+ type BadgeComponent = React__default.ForwardRefExoticComponent<BadgeProps & React__default.RefAttributes<HTMLDivElement>>;
16
+ /**
17
+ * 상태나 카운트를 표시하는 배지 컴포넌트입니다.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <Badge variant="accent">3</Badge>
22
+ * <Badge variant="default" disabled>0</Badge>
23
+ * ```
24
+ *
25
+ * @see {@link BadgeProps} props 상세
26
+ */
27
+ declare const Badge: BadgeComponent;
28
+
29
+ export { Badge, type BadgeComponent, type BadgeProps };
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var chunk5TES5PG6_js = require('../chunk-5TES5PG6.js');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "Badge", {
8
+ enumerable: true,
9
+ get: function () { return chunk5TES5PG6_js.Badge; }
10
+ });
11
+ //# sourceMappingURL=index.js.map
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,3 @@
1
+ export { Badge } from '../chunk-KPAUBWZA.mjs';
2
+ //# sourceMappingURL=index.mjs.map
3
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -0,0 +1,43 @@
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 };
@@ -0,0 +1,43 @@
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 };
@@ -0,0 +1,13 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,4 @@
1
+ export { Breadcrumb } from '../chunk-PPD4BU4W.mjs';
2
+ import '../chunk-LZWKMQJL.mjs';
3
+ //# sourceMappingURL=index.mjs.map
4
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -0,0 +1,9 @@
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';
@@ -0,0 +1,9 @@
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';
@@ -0,0 +1,29 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,12 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -0,0 +1,54 @@
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 };
@@ -0,0 +1,54 @@
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 };
@@ -0,0 +1,13 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,4 @@
1
+ export { Checkbox } from '../chunk-N6U54JI4.mjs';
2
+ import '../chunk-LZWKMQJL.mjs';
3
+ //# sourceMappingURL=index.mjs.map
4
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,30 @@
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
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,104 @@
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
@@ -0,0 +1 @@
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"]}