@hyunsdev/ui 0.1.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 (340) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +89 -0
  3. package/SKILL.md +38 -0
  4. package/dist/WindowContext-DybYtZJa.d.ts +50 -0
  5. package/dist/_styles-BbTx89aX.d.ts +3 -0
  6. package/dist/chunk-23KUNTRD.js +49 -0
  7. package/dist/chunk-23KUNTRD.js.map +1 -0
  8. package/dist/chunk-3RTSANKB.js +51 -0
  9. package/dist/chunk-3RTSANKB.js.map +1 -0
  10. package/dist/chunk-4QIWBOF4.js +129 -0
  11. package/dist/chunk-4QIWBOF4.js.map +1 -0
  12. package/dist/chunk-5JCWC7IU.js +293 -0
  13. package/dist/chunk-5JCWC7IU.js.map +1 -0
  14. package/dist/chunk-6ANDNGHD.js +33 -0
  15. package/dist/chunk-6ANDNGHD.js.map +1 -0
  16. package/dist/chunk-7W7QZHEZ.js +42 -0
  17. package/dist/chunk-7W7QZHEZ.js.map +1 -0
  18. package/dist/chunk-BHO4WT2N.js +51 -0
  19. package/dist/chunk-BHO4WT2N.js.map +1 -0
  20. package/dist/chunk-BI3KKBIC.js +11 -0
  21. package/dist/chunk-BI3KKBIC.js.map +1 -0
  22. package/dist/chunk-D3SP7GL3.js +55 -0
  23. package/dist/chunk-D3SP7GL3.js.map +1 -0
  24. package/dist/chunk-D7W4RSQX.js +115 -0
  25. package/dist/chunk-D7W4RSQX.js.map +1 -0
  26. package/dist/chunk-DN2AEEA2.js +11 -0
  27. package/dist/chunk-DN2AEEA2.js.map +1 -0
  28. package/dist/chunk-ETTKFCO6.js +84 -0
  29. package/dist/chunk-ETTKFCO6.js.map +1 -0
  30. package/dist/chunk-GJT7TDBS.js +66 -0
  31. package/dist/chunk-GJT7TDBS.js.map +1 -0
  32. package/dist/chunk-HZT6RQYZ.js +109 -0
  33. package/dist/chunk-HZT6RQYZ.js.map +1 -0
  34. package/dist/chunk-JB2QZV7K.js +60 -0
  35. package/dist/chunk-JB2QZV7K.js.map +1 -0
  36. package/dist/chunk-KJJB2PVC.js +21 -0
  37. package/dist/chunk-KJJB2PVC.js.map +1 -0
  38. package/dist/chunk-NE3IVPMO.js +31 -0
  39. package/dist/chunk-NE3IVPMO.js.map +1 -0
  40. package/dist/chunk-O2BG2KSY.js +23 -0
  41. package/dist/chunk-O2BG2KSY.js.map +1 -0
  42. package/dist/chunk-OUFGNJ3V.js +1726 -0
  43. package/dist/chunk-OUFGNJ3V.js.map +1 -0
  44. package/dist/chunk-PLZMCJSL.js +351 -0
  45. package/dist/chunk-PLZMCJSL.js.map +1 -0
  46. package/dist/chunk-POG5DZBT.js +104 -0
  47. package/dist/chunk-POG5DZBT.js.map +1 -0
  48. package/dist/chunk-SECZM6JE.js +170 -0
  49. package/dist/chunk-SECZM6JE.js.map +1 -0
  50. package/dist/chunk-T64WPXSC.js +48 -0
  51. package/dist/chunk-T64WPXSC.js.map +1 -0
  52. package/dist/chunk-TU5CYBB4.js +90 -0
  53. package/dist/chunk-TU5CYBB4.js.map +1 -0
  54. package/dist/chunk-UVAI2U6X.js +153 -0
  55. package/dist/chunk-UVAI2U6X.js.map +1 -0
  56. package/dist/chunk-UXCBLYG6.js +142 -0
  57. package/dist/chunk-UXCBLYG6.js.map +1 -0
  58. package/dist/chunk-VUR4MQMH.js +53 -0
  59. package/dist/chunk-VUR4MQMH.js.map +1 -0
  60. package/dist/chunk-WIEKNG4S.js +26 -0
  61. package/dist/chunk-WIEKNG4S.js.map +1 -0
  62. package/dist/chunk-WIZ4OLOB.js +23 -0
  63. package/dist/chunk-WIZ4OLOB.js.map +1 -0
  64. package/dist/chunk-WJRJBMFN.js +21 -0
  65. package/dist/chunk-WJRJBMFN.js.map +1 -0
  66. package/dist/chunk-YUPLJP3F.js +33 -0
  67. package/dist/chunk-YUPLJP3F.js.map +1 -0
  68. package/dist/chunk-Z7ITPSUF.js +184 -0
  69. package/dist/chunk-Z7ITPSUF.js.map +1 -0
  70. package/dist/chunk-ZC76ALSI.js +75 -0
  71. package/dist/chunk-ZC76ALSI.js.map +1 -0
  72. package/dist/code-block-core-xkE94Rk5.d.ts +30 -0
  73. package/dist/components/accordion.d.ts +9 -0
  74. package/dist/components/accordion.js +98 -0
  75. package/dist/components/accordion.js.map +1 -0
  76. package/dist/components/alert-dialog.d.ts +26 -0
  77. package/dist/components/alert-dialog.js +341 -0
  78. package/dist/components/alert-dialog.js.map +1 -0
  79. package/dist/components/alert.d.ts +13 -0
  80. package/dist/components/alert.js +76 -0
  81. package/dist/components/alert.js.map +1 -0
  82. package/dist/components/aspect-ratio.d.ts +6 -0
  83. package/dist/components/aspect-ratio.js +12 -0
  84. package/dist/components/aspect-ratio.js.map +1 -0
  85. package/dist/components/avatar.d.ts +13 -0
  86. package/dist/components/avatar.js +19 -0
  87. package/dist/components/avatar.js.map +1 -0
  88. package/dist/components/badge.d.ts +12 -0
  89. package/dist/components/badge.js +11 -0
  90. package/dist/components/badge.js.map +1 -0
  91. package/dist/components/breadcrumb.d.ts +13 -0
  92. package/dist/components/breadcrumb.js +102 -0
  93. package/dist/components/breadcrumb.js.map +1 -0
  94. package/dist/components/button-group.d.ts +16 -0
  95. package/dist/components/button-group.js +15 -0
  96. package/dist/components/button-group.js.map +1 -0
  97. package/dist/components/button.d.ts +14 -0
  98. package/dist/components/button.js +11 -0
  99. package/dist/components/button.js.map +1 -0
  100. package/dist/components/calendar.d.ts +14 -0
  101. package/dist/components/calendar.js +13 -0
  102. package/dist/components/calendar.js.map +1 -0
  103. package/dist/components/card.d.ts +13 -0
  104. package/dist/components/card.js +21 -0
  105. package/dist/components/card.js.map +1 -0
  106. package/dist/components/carousel.d.ts +32 -0
  107. package/dist/components/carousel.js +196 -0
  108. package/dist/components/carousel.js.map +1 -0
  109. package/dist/components/chart.d.ts +46 -0
  110. package/dist/components/chart.js +254 -0
  111. package/dist/components/chart.js.map +1 -0
  112. package/dist/components/checkbox.d.ts +6 -0
  113. package/dist/components/checkbox.js +41 -0
  114. package/dist/components/checkbox.js.map +1 -0
  115. package/dist/components/code-block-core.d.ts +3 -0
  116. package/dist/components/code-block-core.js +13 -0
  117. package/dist/components/code-block-core.js.map +1 -0
  118. package/dist/components/code-block-custom.d.ts +20 -0
  119. package/dist/components/code-block-custom.js +16 -0
  120. package/dist/components/code-block-custom.js.map +1 -0
  121. package/dist/components/code-block-shiki.d.ts +13 -0
  122. package/dist/components/code-block-shiki.js +15 -0
  123. package/dist/components/code-block-shiki.js.map +1 -0
  124. package/dist/components/code-block.d.ts +5 -0
  125. package/dist/components/code-block.js +14 -0
  126. package/dist/components/code-block.js.map +1 -0
  127. package/dist/components/collapsible.d.ts +8 -0
  128. package/dist/components/collapsible.js +24 -0
  129. package/dist/components/collapsible.js.map +1 -0
  130. package/dist/components/collection.d.ts +63 -0
  131. package/dist/components/collection.js +598 -0
  132. package/dist/components/collection.js.map +1 -0
  133. package/dist/components/color-dot.d.ts +19 -0
  134. package/dist/components/color-dot.js +41 -0
  135. package/dist/components/color-dot.js.map +1 -0
  136. package/dist/components/color-picker.d.ts +12 -0
  137. package/dist/components/color-picker.js +142 -0
  138. package/dist/components/color-picker.js.map +1 -0
  139. package/dist/components/combobox.d.ts +74 -0
  140. package/dist/components/combobox.js +610 -0
  141. package/dist/components/combobox.js.map +1 -0
  142. package/dist/components/command.d.ts +21 -0
  143. package/dist/components/command.js +31 -0
  144. package/dist/components/command.js.map +1 -0
  145. package/dist/components/date-picker.d.ts +43 -0
  146. package/dist/components/date-picker.js +235 -0
  147. package/dist/components/date-picker.js.map +1 -0
  148. package/dist/components/dialog.d.ts +25 -0
  149. package/dist/components/dialog.js +31 -0
  150. package/dist/components/dialog.js.map +1 -0
  151. package/dist/components/drawer.d.ts +15 -0
  152. package/dist/components/drawer.js +124 -0
  153. package/dist/components/drawer.js.map +1 -0
  154. package/dist/components/dropdown-menu.d.ts +34 -0
  155. package/dist/components/dropdown-menu.js +248 -0
  156. package/dist/components/dropdown-menu.js.map +1 -0
  157. package/dist/components/empty.d.ts +15 -0
  158. package/dist/components/empty.js +104 -0
  159. package/dist/components/empty.js.map +1 -0
  160. package/dist/components/field.d.ts +29 -0
  161. package/dist/components/field.js +214 -0
  162. package/dist/components/field.js.map +1 -0
  163. package/dist/components/format-bytes.d.ts +12 -0
  164. package/dist/components/format-bytes.js +30 -0
  165. package/dist/components/format-bytes.js.map +1 -0
  166. package/dist/components/format-number.d.ts +12 -0
  167. package/dist/components/format-number.js +30 -0
  168. package/dist/components/format-number.js.map +1 -0
  169. package/dist/components/gauge.d.ts +11 -0
  170. package/dist/components/gauge.js +82 -0
  171. package/dist/components/gauge.js.map +1 -0
  172. package/dist/components/hover-card.d.ts +8 -0
  173. package/dist/components/hover-card.js +45 -0
  174. package/dist/components/hover-card.js.map +1 -0
  175. package/dist/components/input-group.d.ts +24 -0
  176. package/dist/components/input-group.js +23 -0
  177. package/dist/components/input-group.js.map +1 -0
  178. package/dist/components/input-otp.d.ts +20 -0
  179. package/dist/components/input-otp.js +95 -0
  180. package/dist/components/input-otp.js.map +1 -0
  181. package/dist/components/input.d.ts +9 -0
  182. package/dist/components/input.js +9 -0
  183. package/dist/components/input.js.map +1 -0
  184. package/dist/components/item.d.ts +27 -0
  185. package/dist/components/item.js +182 -0
  186. package/dist/components/item.js.map +1 -0
  187. package/dist/components/kbd.d.ts +6 -0
  188. package/dist/components/kbd.js +34 -0
  189. package/dist/components/kbd.js.map +1 -0
  190. package/dist/components/label.d.ts +6 -0
  191. package/dist/components/label.js +9 -0
  192. package/dist/components/label.js.map +1 -0
  193. package/dist/components/loading-bar.d.ts +8 -0
  194. package/dist/components/loading-bar.js +127 -0
  195. package/dist/components/loading-bar.js.map +1 -0
  196. package/dist/components/loading-dots.d.ts +5 -0
  197. package/dist/components/loading-dots.js +45 -0
  198. package/dist/components/loading-dots.js.map +1 -0
  199. package/dist/components/main-provider.d.ts +7 -0
  200. package/dist/components/main-provider.js +12 -0
  201. package/dist/components/main-provider.js.map +1 -0
  202. package/dist/components/mark.d.ts +11 -0
  203. package/dist/components/mark.js +44 -0
  204. package/dist/components/mark.js.map +1 -0
  205. package/dist/components/pagination.d.ts +21 -0
  206. package/dist/components/pagination.js +114 -0
  207. package/dist/components/pagination.js.map +1 -0
  208. package/dist/components/popover.d.ts +12 -0
  209. package/dist/components/popover.js +22 -0
  210. package/dist/components/popover.js.map +1 -0
  211. package/dist/components/prev-next-navigation.d.ts +15 -0
  212. package/dist/components/prev-next-navigation.js +85 -0
  213. package/dist/components/prev-next-navigation.js.map +1 -0
  214. package/dist/components/progress.d.ts +6 -0
  215. package/dist/components/progress.js +38 -0
  216. package/dist/components/progress.js.map +1 -0
  217. package/dist/components/radio-group.d.ts +7 -0
  218. package/dist/components/radio-group.js +57 -0
  219. package/dist/components/radio-group.js.map +1 -0
  220. package/dist/components/relative-time.d.ts +16 -0
  221. package/dist/components/relative-time.js +75 -0
  222. package/dist/components/relative-time.js.map +1 -0
  223. package/dist/components/resizable.d.ts +10 -0
  224. package/dist/components/resizable.js +45 -0
  225. package/dist/components/resizable.js.map +1 -0
  226. package/dist/components/scroll-area.d.ts +7 -0
  227. package/dist/components/scroll-area.js +11 -0
  228. package/dist/components/scroll-area.js.map +1 -0
  229. package/dist/components/select.d.ts +20 -0
  230. package/dist/components/select.js +189 -0
  231. package/dist/components/select.js.map +1 -0
  232. package/dist/components/separator.d.ts +6 -0
  233. package/dist/components/separator.js +9 -0
  234. package/dist/components/separator.js.map +1 -0
  235. package/dist/components/sheet.d.ts +16 -0
  236. package/dist/components/sheet.js +25 -0
  237. package/dist/components/sheet.js.map +1 -0
  238. package/dist/components/show-more.d.ts +15 -0
  239. package/dist/components/show-more.js +79 -0
  240. package/dist/components/show-more.js.map +1 -0
  241. package/dist/components/skeleton.d.ts +5 -0
  242. package/dist/components/skeleton.js +8 -0
  243. package/dist/components/skeleton.js.map +1 -0
  244. package/dist/components/slider.d.ts +6 -0
  245. package/dist/components/slider.js +65 -0
  246. package/dist/components/slider.js.map +1 -0
  247. package/dist/components/snippet.d.ts +13 -0
  248. package/dist/components/snippet.js +135 -0
  249. package/dist/components/snippet.js.map +1 -0
  250. package/dist/components/sonner.d.ts +6 -0
  251. package/dist/components/sonner.js +10 -0
  252. package/dist/components/sonner.js.map +1 -0
  253. package/dist/components/spinner.d.ts +5 -0
  254. package/dist/components/spinner.js +8 -0
  255. package/dist/components/spinner.js.map +1 -0
  256. package/dist/components/stat.d.ts +17 -0
  257. package/dist/components/stat.js +71 -0
  258. package/dist/components/stat.js.map +1 -0
  259. package/dist/components/steps.d.ts +17 -0
  260. package/dist/components/steps.js +133 -0
  261. package/dist/components/steps.js.map +1 -0
  262. package/dist/components/switch.d.ts +8 -0
  263. package/dist/components/switch.js +44 -0
  264. package/dist/components/switch.js.map +1 -0
  265. package/dist/components/table.d.ts +12 -0
  266. package/dist/components/table.js +101 -0
  267. package/dist/components/table.js.map +1 -0
  268. package/dist/components/tabs.d.ts +14 -0
  269. package/dist/components/tabs.js +88 -0
  270. package/dist/components/tabs.js.map +1 -0
  271. package/dist/components/textarea.d.ts +5 -0
  272. package/dist/components/textarea.js +9 -0
  273. package/dist/components/textarea.js.map +1 -0
  274. package/dist/components/theme-provider.d.ts +10 -0
  275. package/dist/components/theme-provider.js +14 -0
  276. package/dist/components/theme-provider.js.map +1 -0
  277. package/dist/components/time-picker.d.ts +17 -0
  278. package/dist/components/time-picker.js +219 -0
  279. package/dist/components/time-picker.js.map +1 -0
  280. package/dist/components/timeline.d.ts +17 -0
  281. package/dist/components/timeline.js +138 -0
  282. package/dist/components/timeline.js.map +1 -0
  283. package/dist/components/toggle-group.d.ts +14 -0
  284. package/dist/components/toggle-group.js +82 -0
  285. package/dist/components/toggle-group.js.map +1 -0
  286. package/dist/components/toggle.d.ts +12 -0
  287. package/dist/components/toggle.js +11 -0
  288. package/dist/components/toggle.js.map +1 -0
  289. package/dist/components/tooltip.d.ts +9 -0
  290. package/dist/components/tooltip.js +15 -0
  291. package/dist/components/tooltip.js.map +1 -0
  292. package/dist/components/typography.d.ts +17 -0
  293. package/dist/components/typography.js +91 -0
  294. package/dist/components/typography.js.map +1 -0
  295. package/dist/hooks/use-mobile.d.ts +3 -0
  296. package/dist/hooks/use-mobile.js +7 -0
  297. package/dist/hooks/use-mobile.js.map +1 -0
  298. package/dist/hooks/use-theme.d.ts +3 -0
  299. package/dist/hooks/use-theme.js +8 -0
  300. package/dist/hooks/use-theme.js.map +1 -0
  301. package/dist/index.d.ts +7 -0
  302. package/dist/index.js +27 -0
  303. package/dist/index.js.map +1 -0
  304. package/dist/layouts/center/index.d.ts +18 -0
  305. package/dist/layouts/center/index.js +73 -0
  306. package/dist/layouts/center/index.js.map +1 -0
  307. package/dist/layouts/chat/index.d.ts +42 -0
  308. package/dist/layouts/chat/index.js +191 -0
  309. package/dist/layouts/chat/index.js.map +1 -0
  310. package/dist/layouts/command/index.d.ts +2 -0
  311. package/dist/layouts/command/index.js +1 -0
  312. package/dist/layouts/command/index.js.map +1 -0
  313. package/dist/layouts/panel/index.d.ts +55 -0
  314. package/dist/layouts/panel/index.js +513 -0
  315. package/dist/layouts/panel/index.js.map +1 -0
  316. package/dist/layouts/presentation/index.d.ts +14 -0
  317. package/dist/layouts/presentation/index.js +100 -0
  318. package/dist/layouts/presentation/index.js.map +1 -0
  319. package/dist/layouts/site/index.d.ts +17 -0
  320. package/dist/layouts/site/index.js +82 -0
  321. package/dist/layouts/site/index.js.map +1 -0
  322. package/dist/layouts/window/index.d.ts +223 -0
  323. package/dist/layouts/window/index.js +127 -0
  324. package/dist/layouts/window/index.js.map +1 -0
  325. package/dist/layouts/workbench/index.d.ts +281 -0
  326. package/dist/layouts/workbench/index.js +2457 -0
  327. package/dist/layouts/workbench/index.js.map +1 -0
  328. package/dist/lib/format.d.ts +15 -0
  329. package/dist/lib/format.js +9 -0
  330. package/dist/lib/format.js.map +1 -0
  331. package/dist/lib/theme.d.ts +22 -0
  332. package/dist/lib/theme.js +25 -0
  333. package/dist/lib/theme.js.map +1 -0
  334. package/dist/lib/utils.d.ts +5 -0
  335. package/dist/lib/utils.js +7 -0
  336. package/dist/lib/utils.js.map +1 -0
  337. package/dist/styles/fonts.css +1 -0
  338. package/dist/styles/globals.css +717 -0
  339. package/dist/styles/tokens.css +693 -0
  340. package/package.json +137 -0
@@ -0,0 +1,598 @@
1
+ import {
2
+ Spinner
3
+ } from "../chunk-JB2QZV7K.js";
4
+ import {
5
+ Tooltip,
6
+ TooltipContent,
7
+ TooltipTrigger
8
+ } from "../chunk-D3SP7GL3.js";
9
+ import {
10
+ Button
11
+ } from "../chunk-TU5CYBB4.js";
12
+ import "../chunk-O2BG2KSY.js";
13
+ import {
14
+ cn
15
+ } from "../chunk-DN2AEEA2.js";
16
+
17
+ // src/components/collection/core.tsx
18
+ import { jsx } from "react/jsx-runtime";
19
+ function Collection({ className, ...props }) {
20
+ return /* @__PURE__ */ jsx(
21
+ "div",
22
+ {
23
+ "data-slot": "collection",
24
+ className: cn("flex w-full flex-col gap-2", className),
25
+ ...props
26
+ }
27
+ );
28
+ }
29
+ function CollectionViewport({ className, ...props }) {
30
+ return /* @__PURE__ */ jsx(
31
+ "div",
32
+ {
33
+ "data-slot": "collection-viewport",
34
+ className: cn("relative w-full overflow-x-auto", className),
35
+ ...props
36
+ }
37
+ );
38
+ }
39
+
40
+ // src/components/collection/footer.tsx
41
+ import { ChevronLeftIcon, MoreHorizontalIcon } from "lucide-react";
42
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
43
+ function CollectionFooter({ className, ...props }) {
44
+ return /* @__PURE__ */ jsx2(
45
+ "div",
46
+ {
47
+ "data-slot": "collection-footer",
48
+ className: cn(
49
+ "grid grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] items-center gap-2",
50
+ className
51
+ ),
52
+ ...props
53
+ }
54
+ );
55
+ }
56
+ function CollectionFooterStart({ className, ...props }) {
57
+ return /* @__PURE__ */ jsx2("div", { className: cn("flex min-w-0 items-center justify-start", className), ...props });
58
+ }
59
+ function CollectionFooterCenter({ className, ...props }) {
60
+ return /* @__PURE__ */ jsx2("div", { className: cn("flex min-w-0 items-center justify-center", className), ...props });
61
+ }
62
+ function CollectionFooterEnd({ className, ...props }) {
63
+ return /* @__PURE__ */ jsx2("div", { className: cn("flex min-w-0 items-center justify-end", className), ...props });
64
+ }
65
+ function getPaginationItems(currentPage, totalPages) {
66
+ if (totalPages <= 0) {
67
+ return [];
68
+ }
69
+ if (totalPages <= 7) {
70
+ return Array.from({ length: totalPages }, (_, index) => index + 1);
71
+ }
72
+ if (currentPage <= 4) {
73
+ return [1, 2, 3, 4, 5, "ellipsis", totalPages];
74
+ }
75
+ if (currentPage >= totalPages - 3) {
76
+ return [
77
+ 1,
78
+ "ellipsis",
79
+ totalPages - 4,
80
+ totalPages - 3,
81
+ totalPages - 2,
82
+ totalPages - 1,
83
+ totalPages
84
+ ];
85
+ }
86
+ return [1, "ellipsis", currentPage - 1, currentPage, currentPage + 1, "ellipsis", totalPages];
87
+ }
88
+ function CollectionPagination({ className, ...props }) {
89
+ return /* @__PURE__ */ jsx2(
90
+ "nav",
91
+ {
92
+ role: "navigation",
93
+ "aria-label": "pagination",
94
+ "data-slot": "collection-pagination",
95
+ className: cn("flex items-center gap-0.5", className),
96
+ ...props
97
+ }
98
+ );
99
+ }
100
+ function CollectionPaginationPrev({
101
+ className,
102
+ variant = "outline",
103
+ size = "icon",
104
+ children,
105
+ "aria-label": ariaLabel = "Go to previous page",
106
+ ...props
107
+ }) {
108
+ return /* @__PURE__ */ jsx2(
109
+ Button,
110
+ {
111
+ "data-slot": "pagination-prev",
112
+ "aria-label": ariaLabel,
113
+ variant,
114
+ size,
115
+ className: cn("", className),
116
+ ...props,
117
+ children: children ?? /* @__PURE__ */ jsx2(ChevronLeftIcon, {})
118
+ }
119
+ );
120
+ }
121
+ function CollectionPaginationEllipsis({
122
+ className,
123
+ ...props
124
+ }) {
125
+ return /* @__PURE__ */ jsxs(
126
+ "span",
127
+ {
128
+ "data-slot": "pagination-ellipsis",
129
+ className: cn(
130
+ "text-text-muted flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
131
+ className
132
+ ),
133
+ ...props,
134
+ children: [
135
+ /* @__PURE__ */ jsx2(MoreHorizontalIcon, { "aria-hidden": "true" }),
136
+ /* @__PURE__ */ jsx2("span", { className: "sr-only", children: "More pages" })
137
+ ]
138
+ }
139
+ );
140
+ }
141
+ function CollectionPaginationValue({
142
+ className,
143
+ variant,
144
+ size = "icon",
145
+ isActive,
146
+ applied,
147
+ ...props
148
+ }) {
149
+ const active = isActive ?? Boolean(applied);
150
+ return /* @__PURE__ */ jsx2(
151
+ Button,
152
+ {
153
+ "data-slot": "pagination-value",
154
+ "aria-current": active ? "page" : void 0,
155
+ "data-active": active || void 0,
156
+ applied: active,
157
+ variant: variant ?? (active ? "outline" : "ghost"),
158
+ size,
159
+ className: cn("", className),
160
+ ...props
161
+ }
162
+ );
163
+ }
164
+ function CollectionPaginationNext({
165
+ className,
166
+ variant = "outline",
167
+ size = "icon",
168
+ children,
169
+ "aria-label": ariaLabel = "Go to next page",
170
+ ...props
171
+ }) {
172
+ return /* @__PURE__ */ jsx2(
173
+ Button,
174
+ {
175
+ "data-slot": "pagination-next",
176
+ "aria-label": ariaLabel,
177
+ variant,
178
+ size,
179
+ className: cn("", className),
180
+ ...props,
181
+ children: children ?? /* @__PURE__ */ jsx2(ChevronLeftIcon, { className: "rotate-180" })
182
+ }
183
+ );
184
+ }
185
+
186
+ // src/components/collection/grid.tsx
187
+ import { jsx as jsx3 } from "react/jsx-runtime";
188
+ function CollectionGrid({ className, ...props }) {
189
+ return /* @__PURE__ */ jsx3(
190
+ "div",
191
+ {
192
+ role: "list",
193
+ "data-slot": "collection-grid",
194
+ className: cn(
195
+ "grid w-full grid-cols-[repeat(auto-fit,minmax(min(100%,14rem),1fr))] gap-2 text-sm",
196
+ className
197
+ ),
198
+ ...props
199
+ }
200
+ );
201
+ }
202
+ function CollectionGridItem({ className, ...props }) {
203
+ return /* @__PURE__ */ jsx3(
204
+ "div",
205
+ {
206
+ role: "listitem",
207
+ "data-slot": "collection-grid-item",
208
+ className: cn(
209
+ "group/grid-item hover:bg-background-modifier-hover has-aria-expanded:bg-background-modifier-hover data-[state=selected]:bg-background-modifier-hover flex min-w-0 flex-col gap-3 rounded-md border p-3 transition-colors",
210
+ className
211
+ ),
212
+ ...props
213
+ }
214
+ );
215
+ }
216
+ function CollectionGridItemHeader({ className, ...props }) {
217
+ return /* @__PURE__ */ jsx3(
218
+ "div",
219
+ {
220
+ "data-slot": "collection-grid-item-header",
221
+ className: cn("flex min-w-0 items-start justify-between gap-2", className),
222
+ ...props
223
+ }
224
+ );
225
+ }
226
+ function CollectionGridItemContent({ className, ...props }) {
227
+ return /* @__PURE__ */ jsx3(
228
+ "div",
229
+ {
230
+ "data-slot": "collection-grid-item-content",
231
+ className: cn("flex min-w-0 flex-1 flex-col gap-1", className),
232
+ ...props
233
+ }
234
+ );
235
+ }
236
+ function CollectionGridItemTitle({ className, ...props }) {
237
+ return /* @__PURE__ */ jsx3(
238
+ "div",
239
+ {
240
+ "data-slot": "collection-grid-item-title",
241
+ className: cn("text-text-normal line-clamp-1 font-medium", className),
242
+ ...props
243
+ }
244
+ );
245
+ }
246
+ function CollectionGridItemDescription({
247
+ className,
248
+ ...props
249
+ }) {
250
+ return /* @__PURE__ */ jsx3(
251
+ "div",
252
+ {
253
+ "data-slot": "collection-grid-item-description",
254
+ className: cn("text-text-muted line-clamp-2 text-sm", className),
255
+ ...props
256
+ }
257
+ );
258
+ }
259
+ function CollectionGridItemFooter({ className, ...props }) {
260
+ return /* @__PURE__ */ jsx3(
261
+ "div",
262
+ {
263
+ "data-slot": "collection-grid-item-footer",
264
+ className: cn("text-text-muted flex min-w-0 items-center justify-between gap-2", className),
265
+ ...props
266
+ }
267
+ );
268
+ }
269
+
270
+ // src/components/collection/header.tsx
271
+ import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
272
+ function CollectionHeader({ className, ...props }) {
273
+ return /* @__PURE__ */ jsx4("div", { className: cn("flex flex-col", className), ...props });
274
+ }
275
+ function CollectionActionBar({ className, ...props }) {
276
+ return /* @__PURE__ */ jsx4("div", { className: cn("flex items-center justify-between", className), ...props });
277
+ }
278
+ function CollectionActionBarStart({ className, ...props }) {
279
+ return /* @__PURE__ */ jsx4("div", { className: cn("flex items-center gap-1", className), ...props });
280
+ }
281
+ function CollectionActionBarEnd({ className, ...props }) {
282
+ return /* @__PURE__ */ jsx4("div", { className: cn("flex gap-0.5", className), ...props });
283
+ }
284
+ function CollectionActionButton({
285
+ className,
286
+ variant = "ghost",
287
+ size = "icon",
288
+ tooltip,
289
+ ...props
290
+ }) {
291
+ const button = /* @__PURE__ */ jsx4(Button, { className: cn(className), variant, size, ...props });
292
+ if (!tooltip) {
293
+ return button;
294
+ }
295
+ return /* @__PURE__ */ jsxs2(Tooltip, { children: [
296
+ /* @__PURE__ */ jsx4(TooltipTrigger, { asChild: true, children: button }),
297
+ /* @__PURE__ */ jsx4(TooltipContent, { children: tooltip })
298
+ ] });
299
+ }
300
+ function CollectionQueryBar({ className, ...props }) {
301
+ return /* @__PURE__ */ jsx4(
302
+ "div",
303
+ {
304
+ className: cn("mt-2 flex min-w-0 items-center gap-1 border-t pt-2", className),
305
+ ...props
306
+ }
307
+ );
308
+ }
309
+ function CollectionQueryBarStart({ className, ...props }) {
310
+ return /* @__PURE__ */ jsx4("div", { className: cn("flex min-w-0 flex-1 flex-wrap items-center gap-1", className), ...props });
311
+ }
312
+ function CollectionQueryBarEnd({ className, ...props }) {
313
+ return /* @__PURE__ */ jsx4("div", { className: cn("ml-auto flex shrink-0 items-center gap-1", className), ...props });
314
+ }
315
+ function CollectionQueryBarStatus({
316
+ className,
317
+ children = "Fetching",
318
+ ...props
319
+ }) {
320
+ return /* @__PURE__ */ jsxs2(
321
+ "div",
322
+ {
323
+ role: "status",
324
+ "aria-live": "polite",
325
+ "data-slot": "collection-query-bar-status",
326
+ className: cn("text-text-muted flex items-center gap-1 text-sm", className),
327
+ ...props,
328
+ children: [
329
+ /* @__PURE__ */ jsx4(Spinner, { "aria-hidden": "true", role: "presentation", className: "size-3.5" }),
330
+ /* @__PURE__ */ jsx4("span", { children })
331
+ ]
332
+ }
333
+ );
334
+ }
335
+
336
+ // src/components/collection/list.tsx
337
+ import { jsx as jsx5 } from "react/jsx-runtime";
338
+ function CollectionList({ className, ...props }) {
339
+ return /* @__PURE__ */ jsx5(
340
+ "div",
341
+ {
342
+ role: "list",
343
+ "data-slot": "collection-list",
344
+ className: cn("w-full border-y text-sm", className),
345
+ ...props
346
+ }
347
+ );
348
+ }
349
+ function CollectionListItem({ className, ...props }) {
350
+ return /* @__PURE__ */ jsx5(
351
+ "div",
352
+ {
353
+ role: "listitem",
354
+ "data-slot": "collection-list-item",
355
+ className: cn(
356
+ "group/list-item hover:bg-background-modifier-hover has-aria-expanded:bg-background-modifier-hover data-[state=selected]:bg-background-modifier-hover flex min-w-0 items-center gap-3 border-b p-2 transition-colors last:border-b-0",
357
+ className
358
+ ),
359
+ ...props
360
+ }
361
+ );
362
+ }
363
+ function CollectionListItemContent({ className, ...props }) {
364
+ return /* @__PURE__ */ jsx5(
365
+ "div",
366
+ {
367
+ "data-slot": "collection-list-item-content",
368
+ className: cn("flex min-w-0 flex-1 flex-col gap-0.5", className),
369
+ ...props
370
+ }
371
+ );
372
+ }
373
+ function CollectionListItemTitle({ className, ...props }) {
374
+ return /* @__PURE__ */ jsx5(
375
+ "div",
376
+ {
377
+ "data-slot": "collection-list-item-title",
378
+ className: cn("text-text-normal truncate font-medium", className),
379
+ ...props
380
+ }
381
+ );
382
+ }
383
+ function CollectionListItemDescription({
384
+ className,
385
+ ...props
386
+ }) {
387
+ return /* @__PURE__ */ jsx5(
388
+ "div",
389
+ {
390
+ "data-slot": "collection-list-item-description",
391
+ className: cn("text-text-muted line-clamp-1 text-sm", className),
392
+ ...props
393
+ }
394
+ );
395
+ }
396
+ function CollectionListItemMeta({ className, ...props }) {
397
+ return /* @__PURE__ */ jsx5(
398
+ "div",
399
+ {
400
+ "data-slot": "collection-list-item-meta",
401
+ className: cn("text-text-muted ml-auto flex shrink-0 items-center gap-2 text-sm", className),
402
+ ...props
403
+ }
404
+ );
405
+ }
406
+
407
+ // src/components/collection/table.tsx
408
+ import "react";
409
+ import { jsx as jsx6 } from "react/jsx-runtime";
410
+ function CollectionTable({ className, ...props }) {
411
+ return /* @__PURE__ */ jsx6(
412
+ "table",
413
+ {
414
+ "data-slot": "collection-table",
415
+ className: cn("w-full caption-bottom text-sm", className),
416
+ ...props
417
+ }
418
+ );
419
+ }
420
+ function CollectionTableHeader({ className, ...props }) {
421
+ return /* @__PURE__ */ jsx6(
422
+ "thead",
423
+ {
424
+ "data-slot": "table-header",
425
+ className: cn(
426
+ "[&_th:hover]:bg-background-modifier-hover [&_tr]:h-9 [&_tr]:border-b",
427
+ className
428
+ ),
429
+ ...props
430
+ }
431
+ );
432
+ }
433
+ function CollectionTableBody({ className, ...props }) {
434
+ return /* @__PURE__ */ jsx6(
435
+ "tbody",
436
+ {
437
+ "data-slot": "table-body",
438
+ className: cn("[&_tr:hover]:bg-background-modifier-hover", className),
439
+ ...props
440
+ }
441
+ );
442
+ }
443
+ function CollectionTableFooter({ className, ...props }) {
444
+ return /* @__PURE__ */ jsx6(
445
+ "tfoot",
446
+ {
447
+ "data-slot": "table-footer",
448
+ className: cn(
449
+ "[&_td:hover]:bg-background-modifier-hover [&_th:hover]:bg-background-modifier-hover border-y font-medium [&_td]:border-r-0 [&_th]:border-r-0 [&_tr]:h-9 [&>tr]:last:border-b-0",
450
+ className
451
+ ),
452
+ ...props
453
+ }
454
+ );
455
+ }
456
+ function CollectionTableRow({ className, ...props }) {
457
+ return /* @__PURE__ */ jsx6(
458
+ "tr",
459
+ {
460
+ "data-slot": "table-row",
461
+ className: cn(
462
+ "has-aria-expanded:bg-background-modifier-hover data-[state=selected]:bg-background-modifier-hover border-b transition-colors",
463
+ className
464
+ ),
465
+ ...props
466
+ }
467
+ );
468
+ }
469
+ function CollectionTableTextHead({ className, ...props }) {
470
+ return /* @__PURE__ */ jsx6(
471
+ "th",
472
+ {
473
+ "data-slot": "table-head",
474
+ className: cn(
475
+ "text-text-normal h-9 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0",
476
+ className
477
+ ),
478
+ ...props
479
+ }
480
+ );
481
+ }
482
+ function CollectionTableMenuHead({ className, ...props }) {
483
+ return /* @__PURE__ */ jsx6(
484
+ "th",
485
+ {
486
+ "data-slot": "table-head-button",
487
+ className: cn(
488
+ "text-text-normal h-9 cursor-pointer text-left align-middle font-medium whitespace-nowrap select-none",
489
+ className
490
+ ),
491
+ ...props
492
+ }
493
+ );
494
+ }
495
+ function CollectionTableMenuHeadInner({ className, ...props }) {
496
+ return /* @__PURE__ */ jsx6(
497
+ "div",
498
+ {
499
+ "data-slot": "table-head-button-inner",
500
+ className: cn(
501
+ "flex h-full items-center gap-1 px-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&:has([role=checkbox])]:pr-0",
502
+ className
503
+ ),
504
+ ...props
505
+ }
506
+ );
507
+ }
508
+ function CollectionTableCell({ className, ...props }) {
509
+ return /* @__PURE__ */ jsx6(
510
+ "td",
511
+ {
512
+ "data-slot": "table-cell",
513
+ className: cn(
514
+ "group/cell relative border-r p-2 align-middle whitespace-nowrap last:border-r-0 has-data-[slot=table-cell-actions]:pr-10 [&:has([role=checkbox])]:pr-0",
515
+ className
516
+ ),
517
+ ...props
518
+ }
519
+ );
520
+ }
521
+ function CollectionTableCellActions({ className, ...props }) {
522
+ return /* @__PURE__ */ jsx6(
523
+ "div",
524
+ {
525
+ "data-slot": "table-cell-actions",
526
+ className: cn(
527
+ "pointer-events-none absolute inset-y-0 right-1 flex items-center gap-1 pr-1 opacity-0 transition-opacity group-focus-within/cell:pointer-events-auto group-focus-within/cell:opacity-100 group-hover/cell:pointer-events-auto group-hover/cell:opacity-100",
528
+ className
529
+ ),
530
+ ...props
531
+ }
532
+ );
533
+ }
534
+ function CollectionTableCellAction({
535
+ className,
536
+ variant = "normal",
537
+ size = "icon-xs",
538
+ ...props
539
+ }) {
540
+ return /* @__PURE__ */ jsx6(
541
+ Button,
542
+ {
543
+ "data-slot": "table-cell-action",
544
+ variant,
545
+ size,
546
+ className: cn("shrink-0 shadow", className),
547
+ ...props
548
+ }
549
+ );
550
+ }
551
+ export {
552
+ Collection,
553
+ CollectionActionBar,
554
+ CollectionActionBarEnd,
555
+ CollectionActionBarStart,
556
+ CollectionActionButton,
557
+ CollectionFooter,
558
+ CollectionFooterCenter,
559
+ CollectionFooterEnd,
560
+ CollectionFooterStart,
561
+ CollectionGrid,
562
+ CollectionGridItem,
563
+ CollectionGridItemContent,
564
+ CollectionGridItemDescription,
565
+ CollectionGridItemFooter,
566
+ CollectionGridItemHeader,
567
+ CollectionGridItemTitle,
568
+ CollectionHeader,
569
+ CollectionList,
570
+ CollectionListItem,
571
+ CollectionListItemContent,
572
+ CollectionListItemDescription,
573
+ CollectionListItemMeta,
574
+ CollectionListItemTitle,
575
+ CollectionPagination,
576
+ CollectionPaginationEllipsis,
577
+ CollectionPaginationNext,
578
+ CollectionPaginationPrev,
579
+ CollectionPaginationValue,
580
+ CollectionQueryBar,
581
+ CollectionQueryBarEnd,
582
+ CollectionQueryBarStart,
583
+ CollectionQueryBarStatus,
584
+ CollectionTable,
585
+ CollectionTableBody,
586
+ CollectionTableCell,
587
+ CollectionTableCellAction,
588
+ CollectionTableCellActions,
589
+ CollectionTableFooter,
590
+ CollectionTableHeader,
591
+ CollectionTableMenuHead,
592
+ CollectionTableMenuHeadInner,
593
+ CollectionTableRow,
594
+ CollectionTableTextHead,
595
+ CollectionViewport,
596
+ getPaginationItems
597
+ };
598
+ //# sourceMappingURL=collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/collection/core.tsx","../../src/components/collection/footer.tsx","../../src/components/collection/grid.tsx","../../src/components/collection/header.tsx","../../src/components/collection/list.tsx","../../src/components/collection/table.tsx"],"sourcesContent":["import { cn } from \"@hyunsdev/ui/lib/utils\"\n\nexport function Collection({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection\"\n className={cn(\"flex w-full flex-col gap-2\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionViewport({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection-viewport\"\n className={cn(\"relative w-full overflow-x-auto\", className)}\n {...props}\n />\n )\n}\n","import { ChevronLeftIcon, MoreHorizontalIcon } from \"lucide-react\"\n\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\nimport { Button } from \"../button\"\n\ntype PaginationItem = number | \"ellipsis\"\n\nexport function CollectionFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection-footer\"\n className={cn(\n \"grid grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] items-center gap-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function CollectionFooterStart({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div className={cn(\"flex min-w-0 items-center justify-start\", className)} {...props} />\n}\n\nexport function CollectionFooterCenter({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div className={cn(\"flex min-w-0 items-center justify-center\", className)} {...props} />\n}\n\nexport function CollectionFooterEnd({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div className={cn(\"flex min-w-0 items-center justify-end\", className)} {...props} />\n}\n\nexport function getPaginationItems(currentPage: number, totalPages: number): PaginationItem[] {\n if (totalPages <= 0) {\n return []\n }\n\n if (totalPages <= 7) {\n return Array.from({ length: totalPages }, (_, index) => index + 1)\n }\n\n if (currentPage <= 4) {\n return [1, 2, 3, 4, 5, \"ellipsis\", totalPages]\n }\n\n if (currentPage >= totalPages - 3) {\n return [\n 1,\n \"ellipsis\",\n totalPages - 4,\n totalPages - 3,\n totalPages - 2,\n totalPages - 1,\n totalPages,\n ]\n }\n\n return [1, \"ellipsis\", currentPage - 1, currentPage, currentPage + 1, \"ellipsis\", totalPages]\n}\n\nexport function CollectionPagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"collection-pagination\"\n className={cn(\"flex items-center gap-0.5\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionPaginationPrev({\n className,\n variant = \"outline\",\n size = \"icon\",\n children,\n \"aria-label\": ariaLabel = \"Go to previous page\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n return (\n <Button\n data-slot=\"pagination-prev\"\n aria-label={ariaLabel}\n variant={variant}\n size={size}\n className={cn(\"\", className)}\n {...props}\n >\n {children ?? <ChevronLeftIcon />}\n </Button>\n )\n}\n\nexport function CollectionPaginationEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"pagination-ellipsis\"\n className={cn(\n \"text-text-muted flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <MoreHorizontalIcon aria-hidden=\"true\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\ntype CollectionPaginationValueProps = React.ComponentProps<typeof Button> & {\n isActive?: boolean\n}\n\nexport function CollectionPaginationValue({\n className,\n variant,\n size = \"icon\",\n isActive,\n applied,\n ...props\n}: CollectionPaginationValueProps) {\n const active = isActive ?? Boolean(applied)\n\n return (\n <Button\n data-slot=\"pagination-value\"\n aria-current={active ? \"page\" : undefined}\n data-active={active || undefined}\n applied={active}\n variant={variant ?? (active ? \"outline\" : \"ghost\")}\n size={size}\n className={cn(\"\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionPaginationNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n children,\n \"aria-label\": ariaLabel = \"Go to next page\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n return (\n <Button\n data-slot=\"pagination-next\"\n aria-label={ariaLabel}\n variant={variant}\n size={size}\n className={cn(\"\", className)}\n {...props}\n >\n {children ?? <ChevronLeftIcon className=\"rotate-180\" />}\n </Button>\n )\n}\n","import { cn } from \"@hyunsdev/ui/lib/utils\"\n\nexport function CollectionGrid({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"collection-grid\"\n className={cn(\n \"grid w-full grid-cols-[repeat(auto-fit,minmax(min(100%,14rem),1fr))] gap-2 text-sm\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function CollectionGridItem({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"listitem\"\n data-slot=\"collection-grid-item\"\n className={cn(\n \"group/grid-item hover:bg-background-modifier-hover has-aria-expanded:bg-background-modifier-hover data-[state=selected]:bg-background-modifier-hover flex min-w-0 flex-col gap-3 rounded-md border p-3 transition-colors\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function CollectionGridItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection-grid-item-header\"\n className={cn(\"flex min-w-0 items-start justify-between gap-2\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionGridItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection-grid-item-content\"\n className={cn(\"flex min-w-0 flex-1 flex-col gap-1\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionGridItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection-grid-item-title\"\n className={cn(\"text-text-normal line-clamp-1 font-medium\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionGridItemDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection-grid-item-description\"\n className={cn(\"text-text-muted line-clamp-2 text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionGridItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection-grid-item-footer\"\n className={cn(\"text-text-muted flex min-w-0 items-center justify-between gap-2\", className)}\n {...props}\n />\n )\n}\n","import { cn } from \"@hyunsdev/ui/lib/utils\"\n\nimport { Button } from \"../button\"\nimport { Spinner } from \"../spinner\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../tooltip\"\n\nexport function CollectionHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div className={cn(\"flex flex-col\", className)} {...props} />\n}\n\nexport function CollectionActionBar({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div className={cn(\"flex items-center justify-between\", className)} {...props} />\n}\n\nexport function CollectionActionBarStart({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div className={cn(\"flex items-center gap-1\", className)} {...props} />\n}\n\nexport function CollectionActionBarEnd({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div className={cn(\"flex gap-0.5\", className)} {...props} />\n}\n\nexport function CollectionActionButton({\n className,\n variant = \"ghost\",\n size = \"icon\",\n tooltip,\n ...props\n}: React.ComponentProps<typeof Button> & {\n tooltip?: React.ReactNode\n}) {\n const button = <Button className={cn(className)} variant={variant} size={size} {...props} />\n\n if (!tooltip) {\n return button\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n )\n}\n\nexport function CollectionQueryBar({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"mt-2 flex min-w-0 items-center gap-1 border-t pt-2\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionQueryBarStart({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div className={cn(\"flex min-w-0 flex-1 flex-wrap items-center gap-1\", className)} {...props} />\n )\n}\n\nexport function CollectionQueryBarEnd({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div className={cn(\"ml-auto flex shrink-0 items-center gap-1\", className)} {...props} />\n}\n\nexport function CollectionQueryBarStatus({\n className,\n children = \"Fetching\",\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n data-slot=\"collection-query-bar-status\"\n className={cn(\"text-text-muted flex items-center gap-1 text-sm\", className)}\n {...props}\n >\n <Spinner aria-hidden=\"true\" role=\"presentation\" className=\"size-3.5\" />\n <span>{children}</span>\n </div>\n )\n}\n","import { cn } from \"@hyunsdev/ui/lib/utils\"\n\nexport function CollectionList({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"collection-list\"\n className={cn(\"w-full border-y text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionListItem({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"listitem\"\n data-slot=\"collection-list-item\"\n className={cn(\n \"group/list-item hover:bg-background-modifier-hover has-aria-expanded:bg-background-modifier-hover data-[state=selected]:bg-background-modifier-hover flex min-w-0 items-center gap-3 border-b p-2 transition-colors last:border-b-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function CollectionListItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection-list-item-content\"\n className={cn(\"flex min-w-0 flex-1 flex-col gap-0.5\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionListItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection-list-item-title\"\n className={cn(\"text-text-normal truncate font-medium\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionListItemDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection-list-item-description\"\n className={cn(\"text-text-muted line-clamp-1 text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionListItemMeta({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"collection-list-item-meta\"\n className={cn(\"text-text-muted ml-auto flex shrink-0 items-center gap-2 text-sm\", className)}\n {...props}\n />\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { Button } from \"@hyunsdev/ui/components/button\"\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\nexport function CollectionTable({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <table\n data-slot=\"collection-table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionTableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\n \"[&_th:hover]:bg-background-modifier-hover [&_tr]:h-9 [&_tr]:border-b\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function CollectionTableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:hover]:bg-background-modifier-hover\", className)}\n {...props}\n />\n )\n}\n\nexport function CollectionTableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"[&_td:hover]:bg-background-modifier-hover [&_th:hover]:bg-background-modifier-hover border-y font-medium [&_td]:border-r-0 [&_th]:border-r-0 [&_tr]:h-9 [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function CollectionTableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"has-aria-expanded:bg-background-modifier-hover data-[state=selected]:bg-background-modifier-hover border-b transition-colors\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function CollectionTableTextHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"text-text-normal h-9 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function CollectionTableMenuHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head-button\"\n className={cn(\n \"text-text-normal h-9 cursor-pointer text-left align-middle font-medium whitespace-nowrap select-none\",\n className,\n )}\n {...props}\n ></th>\n )\n}\n\nexport function CollectionTableMenuHeadInner({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"table-head-button-inner\"\n className={cn(\n \"flex h-full items-center gap-1 px-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function CollectionTableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"group/cell relative border-r p-2 align-middle whitespace-nowrap last:border-r-0 has-data-[slot=table-cell-actions]:pr-10 [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function CollectionTableCellActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"table-cell-actions\"\n className={cn(\n \"pointer-events-none absolute inset-y-0 right-1 flex items-center gap-1 pr-1 opacity-0 transition-opacity group-focus-within/cell:pointer-events-auto group-focus-within/cell:opacity-100 group-hover/cell:pointer-events-auto group-hover/cell:opacity-100\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function CollectionTableCellAction({\n className,\n variant = \"normal\",\n size = \"icon-xs\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n return (\n <Button\n data-slot=\"table-cell-action\"\n variant={variant}\n size={size}\n className={cn(\"shrink-0 shadow\", className)}\n {...props}\n />\n )\n}\n"],"mappings":"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","names":["jsx","jsx","jsx","jsxs","jsx","jsx"]}
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+
3
+ declare const colorDotColors: {
4
+ readonly accent: "text-text-accent";
5
+ readonly "on-accent": "text-text-on-accent";
6
+ readonly normal: "text-text-normal";
7
+ readonly muted: "text-text-muted";
8
+ readonly faint: "text-text-faint";
9
+ readonly info: "text-text-info";
10
+ readonly success: "text-text-success";
11
+ readonly warning: "text-text-warning";
12
+ readonly error: "text-text-error";
13
+ };
14
+ type ColorDotColor = keyof typeof colorDotColors;
15
+ declare function ColorDot({ className, color, ...props }: React.ComponentProps<"span"> & {
16
+ color?: ColorDotColor;
17
+ }): React.JSX.Element;
18
+
19
+ export { ColorDot, type ColorDotColor };