@mbao01/common 0.5.2 → 0.6.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 (325) hide show
  1. package/dist/types/components/Alert/constants.d.ts +1 -1
  2. package/dist/types/components/AlertDialog/AlertDialog.d.ts +7 -5
  3. package/dist/types/components/Anchor/{constant.d.ts → constants.d.ts} +1 -1
  4. package/dist/types/components/Anchor/types.d.ts +1 -1
  5. package/dist/types/components/AspectRatio/AspectRatio.d.ts +6 -0
  6. package/dist/types/components/AspectRatio/constants.d.ts +3 -0
  7. package/dist/types/components/AspectRatio/index.d.ts +2 -0
  8. package/dist/types/components/AspectRatio/types.d.ts +5 -0
  9. package/dist/types/components/Avatar/constants.d.ts +6 -6
  10. package/dist/types/components/Badge/constants.d.ts +1 -1
  11. package/dist/types/components/Banner/Banner.d.ts +11 -0
  12. package/dist/types/components/Banner/constants.d.ts +4 -0
  13. package/dist/types/components/Banner/index.d.ts +2 -0
  14. package/dist/types/components/Banner/types.d.ts +9 -0
  15. package/dist/types/components/Blockquote/Blockquote.d.ts +6 -0
  16. package/dist/types/components/Blockquote/constants.d.ts +3 -0
  17. package/dist/types/components/Blockquote/index.d.ts +2 -0
  18. package/dist/types/components/Blockquote/types.d.ts +5 -0
  19. package/dist/types/components/Box/Box.d.ts +6 -0
  20. package/dist/types/components/Box/constants.d.ts +5 -0
  21. package/dist/types/components/Box/index.d.ts +2 -0
  22. package/dist/types/components/Box/types.d.ts +3 -0
  23. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  24. package/dist/types/components/Breadcrumb/types.d.ts +1 -1
  25. package/dist/types/components/Button/Button.d.ts +3 -2
  26. package/dist/types/components/Button/constants.d.ts +2 -1
  27. package/dist/types/components/Carousel/Carousel.d.ts +6 -4
  28. package/dist/types/components/Center/Center.d.ts +5 -0
  29. package/dist/types/components/Center/constants.d.ts +4 -0
  30. package/dist/types/components/Center/index.d.ts +2 -0
  31. package/dist/types/components/Center/types.d.ts +3 -0
  32. package/dist/types/components/Chart/constants.d.ts +2 -2
  33. package/dist/types/components/Code/Code.d.ts +8 -0
  34. package/dist/types/components/Code/constants.d.ts +4 -0
  35. package/dist/types/components/Code/helper.d.ts +2 -0
  36. package/dist/types/components/Code/index.d.ts +2 -0
  37. package/dist/types/components/Code/types.d.ts +6 -0
  38. package/dist/types/components/Combobox/Combobox.d.ts +1 -1
  39. package/dist/types/components/Combobox/types.d.ts +1 -0
  40. package/dist/types/components/Container/Container.d.ts +6 -0
  41. package/dist/types/components/Container/constants.d.ts +5 -0
  42. package/dist/types/components/Container/index.d.ts +2 -0
  43. package/dist/types/components/Container/types.d.ts +3 -0
  44. package/dist/types/components/DatetimePicker/DatetimeGrid.d.ts +2 -2
  45. package/dist/types/components/DatetimePicker/DatetimePicker.d.ts +2 -2
  46. package/dist/types/components/DatetimePicker/constants.d.ts +1 -1
  47. package/dist/types/components/Dialog/Dialog.d.ts +1 -1
  48. package/dist/types/components/Dialog/constants.d.ts +1 -1
  49. package/dist/types/components/Dock/constants.d.ts +2 -2
  50. package/dist/types/components/Empty/Empty.d.ts +8 -0
  51. package/dist/types/components/Empty/constants.d.ts +6 -0
  52. package/dist/types/components/Empty/index.d.ts +2 -0
  53. package/dist/types/components/Empty/types.d.ts +3 -0
  54. package/dist/types/components/Flex/Flex.d.ts +8 -0
  55. package/dist/types/components/Flex/constants.d.ts +7 -0
  56. package/dist/types/components/Flex/index.d.ts +2 -0
  57. package/dist/types/components/Flex/types.d.ts +3 -0
  58. package/dist/types/components/Footer/Footer.d.ts +6 -0
  59. package/dist/types/components/Footer/constants.d.ts +4 -0
  60. package/dist/types/components/Footer/index.d.ts +2 -0
  61. package/dist/types/components/Footer/types.d.ts +4 -0
  62. package/dist/types/components/Form/DatetimeInput/DatetimeInput.d.ts +3 -3
  63. package/dist/types/components/Form/Input/Input.d.ts +4 -4
  64. package/dist/types/components/Form/Input/constants.d.ts +2 -2
  65. package/dist/types/components/Form/NativeSelect/NativeSelect.d.ts +8 -0
  66. package/dist/types/components/Form/NativeSelect/constants.d.ts +7 -0
  67. package/dist/types/components/Form/NativeSelect/index.d.ts +2 -0
  68. package/dist/types/components/Form/NativeSelect/types.d.ts +3 -0
  69. package/dist/types/components/Form/Radio/Radio.d.ts +1 -1
  70. package/dist/types/components/Form/Range/Range.d.ts +1 -1
  71. package/dist/types/components/Form/Select/Select.d.ts +4 -4
  72. package/dist/types/components/Form/Select/constants.d.ts +2 -2
  73. package/dist/types/components/Form/Switch/Switch.d.ts +1 -1
  74. package/dist/types/components/Form/TagsInput/TagsInput.d.ts +2 -2
  75. package/dist/types/components/Form/TextField/TextField.d.ts +4 -4
  76. package/dist/types/components/Form/Textarea/Textarea.d.ts +3 -3
  77. package/dist/types/components/Form/Textarea/constants.d.ts +1 -1
  78. package/dist/types/components/Form/components/Field/Field.d.ts +8 -0
  79. package/dist/types/components/Form/components/Field/FieldContext.d.ts +2 -0
  80. package/dist/types/components/Form/components/Field/constants.d.ts +6 -0
  81. package/dist/types/components/Form/components/Field/hooks/index.d.ts +1 -0
  82. package/dist/types/components/Form/components/Field/hooks/useField/index.d.ts +1 -0
  83. package/dist/types/components/Form/components/Field/hooks/useField/useField.d.ts +1 -0
  84. package/dist/types/components/Form/components/Field/index.d.ts +2 -0
  85. package/dist/types/components/Form/components/Field/types.d.ts +12 -0
  86. package/dist/types/components/Form/index.d.ts +2 -0
  87. package/dist/types/components/Grid/Grid.d.ts +11 -0
  88. package/dist/types/components/Grid/constants.d.ts +10 -0
  89. package/dist/types/components/Grid/index.d.ts +2 -0
  90. package/dist/types/components/Grid/types.d.ts +4 -0
  91. package/dist/types/components/Header/Header.d.ts +7 -0
  92. package/dist/types/components/Header/constants.d.ts +3 -0
  93. package/dist/types/components/Header/index.d.ts +2 -0
  94. package/dist/types/components/Header/types.d.ts +3 -0
  95. package/dist/types/components/Heading/Heading.d.ts +7 -0
  96. package/dist/types/components/Heading/constants.d.ts +4 -0
  97. package/dist/types/components/Heading/index.d.ts +2 -0
  98. package/dist/types/components/Heading/types.d.ts +7 -0
  99. package/dist/types/components/Image/Image.d.ts +7 -0
  100. package/dist/types/components/Image/constants.d.ts +4 -0
  101. package/dist/types/components/Image/index.d.ts +2 -0
  102. package/dist/types/components/Image/types.d.ts +5 -0
  103. package/dist/types/components/Kbd/constants.d.ts +1 -1
  104. package/dist/types/components/List/constants.d.ts +1 -1
  105. package/dist/types/components/Loading/Loading.d.ts +1 -1
  106. package/dist/types/components/Loading/constants.d.ts +2 -2
  107. package/dist/types/components/Menu/ContextMenu/ContextMenu.d.ts +4 -4
  108. package/dist/types/components/Menu/DropdownMenu/DropdownMenu.d.ts +4 -4
  109. package/dist/types/components/Menu/Menubar/Menubar.d.ts +5 -5
  110. package/dist/types/components/Menu/Menubar/constants.d.ts +5 -5
  111. package/dist/types/components/Menu/NavigationMenu/NavigationMenu.d.ts +1 -1
  112. package/dist/types/components/Menu/NavigationMenu/constants.d.ts +1 -1
  113. package/dist/types/components/Panel/Panel.d.ts +11 -0
  114. package/dist/types/components/Panel/constants.d.ts +7 -0
  115. package/dist/types/components/Panel/index.d.ts +2 -0
  116. package/dist/types/components/Panel/types.d.ts +8 -0
  117. package/dist/types/components/Paragraph/Paragraph.d.ts +3 -0
  118. package/dist/types/components/Paragraph/constants.d.ts +3 -0
  119. package/dist/types/components/Paragraph/index.d.ts +2 -0
  120. package/dist/types/components/Paragraph/types.d.ts +5 -0
  121. package/dist/types/components/Progress/Progress.d.ts +1 -1
  122. package/dist/types/components/Progress/constants.d.ts +2 -2
  123. package/dist/types/components/Resizable/Resizable.d.ts +1 -1
  124. package/dist/types/components/ScrollArea/ScrollArea.d.ts +1 -1
  125. package/dist/types/components/ScrollArea/constants.d.ts +1 -1
  126. package/dist/types/components/Sheet/Sheet.d.ts +12 -0
  127. package/dist/types/components/Sheet/constants.d.ts +7 -0
  128. package/dist/types/components/Sheet/index.d.ts +2 -0
  129. package/dist/types/components/Sheet/types.d.ts +5 -0
  130. package/dist/types/components/Sidebar/Sidebar.d.ts +8 -7
  131. package/dist/types/components/Sidebar/SidebarMenu.d.ts +3 -2
  132. package/dist/types/components/Sidebar/constants.d.ts +5 -4
  133. package/dist/types/components/Sidebar/types.d.ts +1 -1
  134. package/dist/types/components/Skeleton/Skeleton.d.ts +1 -1
  135. package/dist/types/components/Skeleton/constants.d.ts +3 -3
  136. package/dist/types/components/Sonner/constants.d.ts +2 -2
  137. package/dist/types/components/Spacer/Spacer.d.ts +5 -0
  138. package/dist/types/components/Spacer/constants.d.ts +4 -0
  139. package/dist/types/components/Spacer/index.d.ts +2 -0
  140. package/dist/types/components/Spacer/types.d.ts +3 -0
  141. package/dist/types/components/Spinner/Spinner.d.ts +5 -0
  142. package/dist/types/components/Spinner/constants.d.ts +4 -0
  143. package/dist/types/components/Spinner/index.d.ts +2 -0
  144. package/dist/types/components/Spinner/types.d.ts +3 -0
  145. package/dist/types/components/Status/constants.d.ts +1 -1
  146. package/dist/types/components/Stepper/Stepper.d.ts +9 -0
  147. package/dist/types/components/Stepper/constants.d.ts +6 -0
  148. package/dist/types/components/Stepper/index.d.ts +2 -0
  149. package/dist/types/components/Stepper/types.d.ts +6 -0
  150. package/dist/types/components/Text/constants.d.ts +1 -1
  151. package/dist/types/components/Timeline/Timeline.d.ts +5 -5
  152. package/dist/types/components/Timeline/constants.d.ts +5 -5
  153. package/dist/types/components/Toggle/Toggle.d.ts +5 -3
  154. package/dist/types/components/Toggle/constants.d.ts +2 -1
  155. package/dist/types/components/ToggleGroup/ToggleGroup.d.ts +5 -3
  156. package/dist/types/index.d.ts +24 -0
  157. package/dist/types/utilities/createVariants/createVariants.d.ts +2 -0
  158. package/dist/types/utilities/createVariants/index.d.ts +1 -0
  159. package/dist/types/utilities/createVariants/type.d.ts +10 -0
  160. package/dist/types/utilities/index.d.ts +1 -0
  161. package/package.json +41 -41
  162. package/src/components/Alert/constants.ts +3 -2
  163. package/src/components/Anchor/Anchor.tsx +1 -1
  164. package/src/components/Anchor/{constant.ts → constants.ts} +4 -4
  165. package/src/components/Anchor/types.ts +1 -1
  166. package/src/components/AspectRatio/AspectRatio.tsx +23 -0
  167. package/src/components/AspectRatio/constants.ts +17 -0
  168. package/src/components/AspectRatio/index.ts +2 -0
  169. package/src/components/AspectRatio/types.ts +7 -0
  170. package/src/components/Avatar/constants.ts +17 -22
  171. package/src/components/Badge/constants.ts +3 -2
  172. package/src/components/Banner/Banner.tsx +36 -0
  173. package/src/components/Banner/constants.ts +18 -0
  174. package/src/components/Banner/index.ts +2 -0
  175. package/src/components/Banner/types.ts +11 -0
  176. package/src/components/Blockquote/Blockquote.tsx +21 -0
  177. package/src/components/Blockquote/constants.ts +22 -0
  178. package/src/components/Blockquote/index.ts +2 -0
  179. package/src/components/Blockquote/types.ts +7 -0
  180. package/src/components/Box/Box.tsx +20 -0
  181. package/src/components/Box/constants.ts +34 -0
  182. package/src/components/Box/index.ts +2 -0
  183. package/src/components/Box/types.ts +4 -0
  184. package/src/components/Breadcrumb/types.ts +1 -1
  185. package/src/components/Button/Button.tsx +3 -4
  186. package/src/components/Button/constants.ts +6 -3
  187. package/src/components/Card/constants.ts +3 -2
  188. package/src/components/Carousel/constants.ts +9 -8
  189. package/src/components/Center/Center.tsx +16 -0
  190. package/src/components/Center/constants.ts +20 -0
  191. package/src/components/Center/index.ts +2 -0
  192. package/src/components/Center/types.ts +5 -0
  193. package/src/components/Chart/constants.ts +9 -8
  194. package/src/components/Code/Code.tsx +51 -0
  195. package/src/components/Code/constants.ts +28 -0
  196. package/src/components/Code/helper.ts +10 -0
  197. package/src/components/Code/index.ts +2 -0
  198. package/src/components/Code/types.ts +8 -0
  199. package/src/components/Combobox/Combobox.tsx +2 -3
  200. package/src/components/Combobox/types.ts +1 -0
  201. package/src/components/Container/Container.tsx +20 -0
  202. package/src/components/Container/constants.ts +31 -0
  203. package/src/components/Container/index.ts +2 -0
  204. package/src/components/Container/types.ts +5 -0
  205. package/src/components/DatetimePicker/constants.ts +5 -4
  206. package/src/components/Dialog/Dialog.tsx +3 -3
  207. package/src/components/Dialog/constants.ts +5 -4
  208. package/src/components/Dock/constants.ts +14 -13
  209. package/src/components/DragAndDrop/Draggable/constants.ts +5 -4
  210. package/src/components/DragAndDrop/Droppable/constants.ts +3 -2
  211. package/src/components/DragAndDrop/Sortable/constants.ts +3 -2
  212. package/src/components/Empty/Empty.tsx +66 -0
  213. package/src/components/Empty/constants.ts +30 -0
  214. package/src/components/Empty/index.ts +2 -0
  215. package/src/components/Empty/types.ts +5 -0
  216. package/src/components/Flex/Flex.tsx +20 -0
  217. package/src/components/Flex/constants.ts +51 -0
  218. package/src/components/Flex/index.ts +2 -0
  219. package/src/components/Flex/types.ts +4 -0
  220. package/src/components/Footer/Footer.tsx +26 -0
  221. package/src/components/Footer/constants.ts +12 -0
  222. package/src/components/Footer/index.ts +2 -0
  223. package/src/components/Footer/types.ts +6 -0
  224. package/src/components/Form/Checkbox/constants.ts +5 -4
  225. package/src/components/Form/DatetimeInput/constants.ts +9 -8
  226. package/src/components/Form/Input/constants.ts +7 -6
  227. package/src/components/Form/MultiSelect/constants.ts +10 -9
  228. package/src/components/Form/NativeSelect/NativeSelect.tsx +23 -0
  229. package/src/components/Form/NativeSelect/constants.ts +39 -0
  230. package/src/components/Form/NativeSelect/index.ts +2 -0
  231. package/src/components/Form/NativeSelect/types.ts +5 -0
  232. package/src/components/Form/Radio/constants.ts +3 -2
  233. package/src/components/Form/Range/constants.ts +3 -2
  234. package/src/components/Form/Select/constants.ts +14 -13
  235. package/src/components/Form/Slider/constants.ts +9 -8
  236. package/src/components/Form/Switch/constants.ts +3 -2
  237. package/src/components/Form/TagsInput/TagsInput.tsx +1 -1
  238. package/src/components/Form/TagsInput/constants.ts +7 -6
  239. package/src/components/Form/Textarea/constants.ts +3 -2
  240. package/src/components/Form/Validator/constants.ts +3 -2
  241. package/src/components/Form/components/Field/Field.tsx +81 -0
  242. package/src/components/Form/components/Field/FieldContext.tsx +4 -0
  243. package/src/components/Form/components/Field/constants.ts +20 -0
  244. package/src/components/Form/components/Field/hooks/index.ts +1 -0
  245. package/src/components/Form/components/Field/hooks/useField/index.ts +1 -0
  246. package/src/components/Form/components/Field/hooks/useField/useField.ts +10 -0
  247. package/src/components/Form/components/Field/index.ts +2 -0
  248. package/src/components/Form/components/Field/types.ts +19 -0
  249. package/src/components/Form/index.ts +2 -0
  250. package/src/components/Grid/Grid.tsx +32 -0
  251. package/src/components/Grid/constants.ts +84 -0
  252. package/src/components/Grid/index.ts +2 -0
  253. package/src/components/Grid/types.ts +7 -0
  254. package/src/components/Header/Header.tsx +49 -0
  255. package/src/components/Header/constants.ts +18 -0
  256. package/src/components/Header/index.ts +2 -0
  257. package/src/components/Header/types.ts +4 -0
  258. package/src/components/Heading/Heading.tsx +23 -0
  259. package/src/components/Heading/constants.ts +25 -0
  260. package/src/components/Heading/index.ts +2 -0
  261. package/src/components/Heading/types.ts +10 -0
  262. package/src/components/Image/Image.tsx +30 -0
  263. package/src/components/Image/constants.ts +25 -0
  264. package/src/components/Image/index.ts +2 -0
  265. package/src/components/Image/types.ts +7 -0
  266. package/src/components/Kbd/constants.ts +3 -2
  267. package/src/components/List/constants.ts +3 -2
  268. package/src/components/Loading/Loading.tsx +2 -4
  269. package/src/components/Loading/constants.ts +5 -4
  270. package/src/components/Menu/Menubar/constants.ts +16 -14
  271. package/src/components/Menu/NavigationMenu/constants.ts +5 -3
  272. package/src/components/Panel/Panel.tsx +58 -0
  273. package/src/components/Panel/constants.ts +31 -0
  274. package/src/components/Panel/index.ts +2 -0
  275. package/src/components/Panel/types.ts +11 -0
  276. package/src/components/Paragraph/Paragraph.tsx +17 -0
  277. package/src/components/Paragraph/constants.ts +18 -0
  278. package/src/components/Paragraph/index.ts +2 -0
  279. package/src/components/Paragraph/types.ts +8 -0
  280. package/src/components/Progress/constants.ts +9 -10
  281. package/src/components/Resizable/constants.ts +3 -2
  282. package/src/components/ScrollArea/constants.ts +6 -5
  283. package/src/components/Separator/constants.ts +3 -2
  284. package/src/components/Sheet/Sheet.tsx +126 -0
  285. package/src/components/Sheet/constants.ts +45 -0
  286. package/src/components/Sheet/index.ts +9 -0
  287. package/src/components/Sheet/types.ts +7 -0
  288. package/src/components/Sidebar/Sidebar.tsx +5 -5
  289. package/src/components/Sidebar/SidebarMenu.tsx +3 -3
  290. package/src/components/Sidebar/constants.ts +32 -25
  291. package/src/components/Sidebar/types.ts +1 -1
  292. package/src/components/Skeleton/Skeleton.tsx +2 -2
  293. package/src/components/Skeleton/constants.ts +4 -3
  294. package/src/components/Sonner/Toaster.tsx +1 -1
  295. package/src/components/Sonner/constants.ts +6 -5
  296. package/src/components/Sonner/helpers.ts +1 -1
  297. package/src/components/Spacer/Spacer.tsx +19 -0
  298. package/src/components/Spacer/constants.ts +55 -0
  299. package/src/components/Spacer/index.ts +2 -0
  300. package/src/components/Spacer/types.ts +5 -0
  301. package/src/components/Spinner/Spinner.tsx +24 -0
  302. package/src/components/Spinner/constants.ts +29 -0
  303. package/src/components/Spinner/index.ts +2 -0
  304. package/src/components/Spinner/types.ts +5 -0
  305. package/src/components/Stack/constants.ts +3 -2
  306. package/src/components/Stat/constants.ts +5 -4
  307. package/src/components/Status/constants.ts +3 -2
  308. package/src/components/Stepper/Stepper.tsx +30 -0
  309. package/src/components/Stepper/constants.ts +29 -0
  310. package/src/components/Stepper/index.ts +2 -0
  311. package/src/components/Stepper/types.ts +10 -0
  312. package/src/components/Table/constants.ts +3 -2
  313. package/src/components/Text/constants.ts +4 -7
  314. package/src/components/Timeline/Timeline.example.tsx +1 -1
  315. package/src/components/Timeline/constants.ts +19 -22
  316. package/src/components/Toggle/Toggle.tsx +3 -3
  317. package/src/components/Toggle/constants.ts +6 -3
  318. package/src/components/ToggleGroup/ToggleGroup.tsx +4 -2
  319. package/src/components/Tooltip/constants.ts +5 -4
  320. package/src/index.ts +27 -0
  321. package/src/utilities/createVariants/createVariants.ts +5 -0
  322. package/src/utilities/createVariants/index.ts +1 -0
  323. package/src/utilities/createVariants/type.ts +29 -0
  324. package/src/utilities/index.ts +1 -0
  325. package/vitest-setup.ts +4 -0
@@ -0,0 +1,25 @@
1
+ import { cva } from "../../libs";
2
+ import { createVariants } from "../../utilities";
3
+
4
+ export const getImageClasses = cva("block max-w-full h-auto", {
5
+ variants: createVariants({
6
+ fit: {
7
+ contain: "object-contain",
8
+ cover: "object-cover",
9
+ fill: "object-fill",
10
+ none: "object-none",
11
+ "scale-down": "object-scale-down",
12
+ },
13
+ radius: {
14
+ none: "rounded-none",
15
+ sm: "rounded-sm",
16
+ md: "rounded-md",
17
+ lg: "rounded-lg",
18
+ full: "rounded-full",
19
+ },
20
+ }),
21
+ defaultVariants: {
22
+ fit: "cover",
23
+ radius: "none",
24
+ },
25
+ });
@@ -0,0 +1,2 @@
1
+ export { Image } from "./Image";
2
+ export type { ImageProps } from "./types";
@@ -0,0 +1,7 @@
1
+ import { type VariantProps } from "../../libs";
2
+ import { getImageClasses } from "./constants";
3
+
4
+ export type ImageProps = React.ImgHTMLAttributes<HTMLImageElement> &
5
+ VariantProps<typeof getImageClasses> & {
6
+ fallbackSrc?: string;
7
+ };
@@ -1,7 +1,8 @@
1
1
  import { cva } from "../../libs";
2
+ import { createVariants } from "../../utilities";
2
3
 
3
4
  export const getKbdClasses = cva("kbd", {
4
- variants: {
5
+ variants: createVariants({
5
6
  variant: {
6
7
  accent: "bg-accent text-accent-content border-accent",
7
8
  default: "bg-default text-default-content border-default",
@@ -24,7 +25,7 @@ export const getKbdClasses = cva("kbd", {
24
25
  lg: "kbd-lg",
25
26
  xl: "kbd-xl",
26
27
  },
27
- },
28
+ }),
28
29
  compoundVariants: [
29
30
  { outline: true, variant: "accent", className: "text-accent" },
30
31
  { outline: true, variant: "default", className: "text-default" },
@@ -1,14 +1,15 @@
1
1
  import { cva } from "../../libs";
2
+ import { createVariants } from "../../utilities";
2
3
 
3
4
  export const getListClasses = cva("list");
4
5
 
5
6
  export const getListItemClasses = cva("list-row");
6
7
 
7
8
  export const getListColumnClasses = cva("", {
8
- variants: {
9
+ variants: createVariants({
9
10
  flex: {
10
11
  grow: "list-col-grow",
11
12
  wrap: "list-col-grow",
12
13
  },
13
- },
14
+ }),
14
15
  });
@@ -2,8 +2,6 @@ import { cn } from "../../utilities";
2
2
  import { getLoadingClasses } from "./constants";
3
3
  import { type LoadingProps } from "./types";
4
4
 
5
- export const Loading = ({ size, intent, variant, className, ...props }: LoadingProps) => {
6
- return (
7
- <span className={cn(getLoadingClasses({ intent, size, variant }), className)} {...props} />
8
- );
5
+ export const Loading = ({ size, variant, type, className, ...props }: LoadingProps) => {
6
+ return <span className={cn(getLoadingClasses({ size, variant, type }), className)} {...props} />;
9
7
  };
@@ -1,8 +1,9 @@
1
1
  import { cva } from "../../libs";
2
+ import { createVariants } from "../../utilities";
2
3
 
3
4
  export const getLoadingClasses = cva("loading", {
4
- variants: {
5
- variant: {
5
+ variants: createVariants({
6
+ type: {
6
7
  spinner: "loading-spinner",
7
8
  dots: "loading-dots",
8
9
  ring: "loading-ring",
@@ -10,7 +11,7 @@ export const getLoadingClasses = cva("loading", {
10
11
  bars: "loading-bars",
11
12
  infinity: "loading-infinity",
12
13
  },
13
- intent: {
14
+ variant: {
14
15
  default: "text-base-content",
15
16
  primary: "text-primary-content",
16
17
  secondary: "text-secondary-content",
@@ -27,5 +28,5 @@ export const getLoadingClasses = cva("loading", {
27
28
  md: "loading-md",
28
29
  lg: "loading-lg",
29
30
  },
30
- },
31
+ }),
31
32
  });
@@ -1,11 +1,12 @@
1
1
  import { cva } from "../../../libs";
2
+ import { createVariants } from "../../../utilities";
2
3
 
3
4
  const itemVariant = {
4
5
  primary: "focus:bg-primary focus:text-primary-content",
5
6
  secondary: "focus:bg-secondary focus:text-secondary-content",
6
7
  accent: "focus:bg-accent focus:text-accent-content",
7
8
  neutral: "focus:bg-neutral focus:text-neutral-content",
8
- base: "focus:bg-base-300 focus:text-base-content",
9
+ default: "focus:bg-base-300 focus:text-base-content",
9
10
  info: "focus:bg-info focus:text-info-content",
10
11
  success: "focus:bg-success focus:text-success-content",
11
12
  warning: "focus:bg-warning focus:text-warning-content",
@@ -21,7 +22,8 @@ const triggerVariant = {
21
22
  "focus:bg-accent focus:text-accent-content data-[state=open]:bg-accent data-[state=open]:text-accent-content",
22
23
  neutral:
23
24
  "focus:bg-neutral focus:text-neutral-content data-[state=open]:bg-neutral data-[state=open]:text-neutral-content",
24
- base: "focus:bg-base-300 focus:text-base-content data-[state=open]:bg-base-300 data-[state=open]:text-base-content",
25
+ default:
26
+ "focus:bg-base-300 focus:text-base-content data-[state=open]:bg-base-300 data-[state=open]:text-base-content",
25
27
  info: "focus:bg-info focus:text-info-content data-[state=open]:bg-info data-[state=open]:text-info-content",
26
28
  success:
27
29
  "focus:bg-success focus:text-success-content data-[state=open]:bg-success data-[state=open]:text-success-content",
@@ -38,21 +40,21 @@ export const getMenubarClasses = cva(
38
40
  export const getMenubarTriggerClasses = cva(
39
41
  "flex cursor-default select-none items-center rounded-xs px-3 py-1 text-sm font-medium outline-hidden",
40
42
  {
41
- variants: {
43
+ variants: createVariants({
42
44
  variant: triggerVariant,
43
- },
45
+ }),
44
46
  }
45
47
  );
46
48
 
47
49
  export const getMenubarSubTriggerClasses = cva(
48
50
  "flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden",
49
51
  {
50
- variants: {
52
+ variants: createVariants({
51
53
  variant: triggerVariant,
52
54
  inset: {
53
55
  true: "pl-8",
54
56
  },
55
- },
57
+ }),
56
58
  }
57
59
  );
58
60
 
@@ -67,39 +69,39 @@ export const getMenubarSubContentClasses = cva(
67
69
  export const getMenubarItemClasses = cva(
68
70
  "relative flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden data-disabled:pointer-events-none data-disabled:opacity-50",
69
71
  {
70
- variants: {
72
+ variants: createVariants({
71
73
  variant: itemVariant,
72
74
  inset: {
73
75
  true: "pl-8",
74
76
  },
75
- },
77
+ }),
76
78
  }
77
79
  );
78
80
 
79
81
  export const getMenubarCheckboxItemClasses = cva(
80
82
  "relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden data-disabled:pointer-events-none data-disabled:opacity-50",
81
83
  {
82
- variants: {
84
+ variants: createVariants({
83
85
  variant: itemVariant,
84
- },
86
+ }),
85
87
  }
86
88
  );
87
89
 
88
90
  export const getMenubarRadioItemClasses = cva(
89
91
  "relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden data-disabled:pointer-events-none data-disabled:opacity-50",
90
92
  {
91
- variants: {
93
+ variants: createVariants({
92
94
  variant: itemVariant,
93
- },
95
+ }),
94
96
  }
95
97
  );
96
98
 
97
99
  export const getMenubarLabelClasses = cva("px-2 py-1.5 text-sm font-semibold", {
98
- variants: {
100
+ variants: createVariants({
99
101
  inset: {
100
102
  true: "pl-8",
101
103
  },
102
- },
104
+ }),
103
105
  });
104
106
 
105
107
  export const getMenubarSeparatorClasses = cva("-mx-1 my-1 h-px bg-base-200");
@@ -1,4 +1,5 @@
1
1
  import { cva } from "../../../libs";
2
+ import { createVariants } from "../../../utilities";
2
3
 
3
4
  export const getNavigationMenuClasses = cva(
4
5
  "relative z-10 flex max-w-max flex-1 items-center justify-center"
@@ -11,7 +12,7 @@ export const getNavigationMenuListClasses = cva(
11
12
  export const getNavigationMenuTriggerClasses = cva(
12
13
  "group inline-flex h-9 w-max items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors focus:outline-hidden disabled:pointer-events-none disabled:opacity-50",
13
14
  {
14
- variants: {
15
+ variants: createVariants({
15
16
  variant: {
16
17
  primary:
17
18
  "hover:bg-primary hover:text-primary-content focus:bg-primary focus:text-primary-content data-active:bg-primary/50 data-[state=open]:bg-primary/50",
@@ -21,7 +22,8 @@ export const getNavigationMenuTriggerClasses = cva(
21
22
  "hover:bg-accent hover:text-accent-content focus:bg-accent focus:text-accent-content data-active:bg-accent/50 data-[state=open]:bg-accent/50",
22
23
  neutral:
23
24
  "hover:bg-neutral hover:text-neutral-content focus:bg-neutral focus:text-neutral-content data-active:bg-neutral/50 data-[state=open]:bg-neutral/50",
24
- base: "hover:bg-base-300 hover:text-base-content focus:bg-base-300 focus:text-base-content data-active:bg-base-300/50 data-[state=open]:bg-base-300/50",
25
+ default:
26
+ "hover:bg-base-300 hover:text-base-content focus:bg-base-300 focus:text-base-content data-active:bg-base-300/50 data-[state=open]:bg-base-300/50",
25
27
  info: "hover:bg-info hover:text-info-content focus:bg-info focus:text-info-content data-active:bg-info/50 data-[state=open]:bg-info/50",
26
28
  success:
27
29
  "hover:bg-success hover:text-success-content focus:bg-success focus:text-success-content data-active:bg-success/50 data-[state=open]:bg-success/50",
@@ -30,7 +32,7 @@ export const getNavigationMenuTriggerClasses = cva(
30
32
  error:
31
33
  "hover:bg-error hover:text-error-content focus:bg-error focus:text-error-content data-active:bg-error/50 data-[state=open]:bg-error/50",
32
34
  },
33
- },
35
+ }),
34
36
  }
35
37
  );
36
38
 
@@ -0,0 +1,58 @@
1
+ import React from "react";
2
+ import { cn } from "../../utilities";
3
+ import {
4
+ getPanelClasses,
5
+ getPanelContentClasses,
6
+ getPanelFooterClasses,
7
+ getPanelHeaderClasses,
8
+ } from "./constants";
9
+ import {
10
+ type PanelContentProps,
11
+ type PanelFooterProps,
12
+ type PanelHeaderProps,
13
+ type PanelProps,
14
+ } from "./types";
15
+
16
+ export const Panel = React.forwardRef<HTMLDivElement, PanelProps>(
17
+ ({ className, width, collapsed, children, ...props }, ref) => {
18
+ return (
19
+ <div ref={ref} className={cn(getPanelClasses({ width, collapsed }), className)} {...props}>
20
+ {children}
21
+ </div>
22
+ );
23
+ }
24
+ );
25
+ Panel.displayName = "Panel";
26
+
27
+ export const PanelHeader = React.forwardRef<HTMLDivElement, PanelHeaderProps>(
28
+ ({ className, children, ...props }, ref) => {
29
+ return (
30
+ <div ref={ref} className={cn(getPanelHeaderClasses(), className)} {...props}>
31
+ {children}
32
+ </div>
33
+ );
34
+ }
35
+ );
36
+ PanelHeader.displayName = "PanelHeader";
37
+
38
+ export const PanelContent = React.forwardRef<HTMLDivElement, PanelContentProps>(
39
+ ({ className, children, ...props }, ref) => {
40
+ return (
41
+ <div ref={ref} className={cn(getPanelContentClasses(), className)} {...props}>
42
+ {children}
43
+ </div>
44
+ );
45
+ }
46
+ );
47
+ PanelContent.displayName = "PanelContent";
48
+
49
+ export const PanelFooter = React.forwardRef<HTMLDivElement, PanelFooterProps>(
50
+ ({ className, children, ...props }, ref) => {
51
+ return (
52
+ <div ref={ref} className={cn(getPanelFooterClasses(), className)} {...props}>
53
+ {children}
54
+ </div>
55
+ );
56
+ }
57
+ );
58
+ PanelFooter.displayName = "PanelFooter";
@@ -0,0 +1,31 @@
1
+ import { cva } from "../../libs";
2
+ import { createVariants } from "../../utilities";
3
+
4
+ export const getPanelClasses = cva(
5
+ "flex flex-col border-r border-base-200 bg-base-100 transition-all duration-300 ease-in-out",
6
+ {
7
+ variants: createVariants({
8
+ width: {
9
+ sm: "w-64",
10
+ md: "w-80",
11
+ lg: "w-96",
12
+ },
13
+ collapsed: {
14
+ true: "w-[70px]",
15
+ false: "",
16
+ },
17
+ }),
18
+ defaultVariants: {
19
+ width: "md",
20
+ collapsed: false,
21
+ },
22
+ }
23
+ );
24
+
25
+ export const getPanelHeaderClasses = cva(
26
+ "flex items-center justify-between p-4 border-b border-base-200 h-16"
27
+ );
28
+
29
+ export const getPanelContentClasses = cva("flex-1 overflow-y-auto p-4");
30
+
31
+ export const getPanelFooterClasses = cva("p-4 border-t border-base-200");
@@ -0,0 +1,2 @@
1
+ export { Panel, PanelHeader, PanelContent, PanelFooter } from "./Panel";
2
+ export type { PanelProps, PanelHeaderProps, PanelContentProps, PanelFooterProps } from "./types";
@@ -0,0 +1,11 @@
1
+ import { type VariantProps } from "../../libs";
2
+ import { getPanelClasses } from "./constants";
3
+
4
+ export type PanelProps = React.HTMLAttributes<HTMLDivElement> &
5
+ VariantProps<typeof getPanelClasses> & {
6
+ onToggle?: () => void;
7
+ };
8
+
9
+ export type PanelHeaderProps = React.HTMLAttributes<HTMLDivElement>;
10
+ export type PanelContentProps = React.HTMLAttributes<HTMLDivElement>;
11
+ export type PanelFooterProps = React.HTMLAttributes<HTMLDivElement>;
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import { cn } from "../../utilities";
3
+ import { Text } from "../Text";
4
+ import { getParagraphClasses } from "./constants";
5
+ import { type ParagraphProps } from "./types";
6
+
7
+ export const Paragraph = React.forwardRef<HTMLParagraphElement, ParagraphProps>(
8
+ ({ className, leading, children, ...props }, ref) => {
9
+ return (
10
+ <Text as="p" ref={ref} className={cn(getParagraphClasses({ leading }), className)} {...props}>
11
+ {children}
12
+ </Text>
13
+ );
14
+ }
15
+ );
16
+
17
+ Paragraph.displayName = "Paragraph";
@@ -0,0 +1,18 @@
1
+ import { cva } from "../../libs";
2
+ import { createVariants } from "../../utilities";
3
+
4
+ export const getParagraphClasses = cva("", {
5
+ variants: createVariants({
6
+ leading: {
7
+ none: "leading-none",
8
+ tight: "leading-tight",
9
+ snug: "leading-snug",
10
+ normal: "leading-normal",
11
+ relaxed: "leading-relaxed",
12
+ loose: "leading-loose",
13
+ },
14
+ }),
15
+ defaultVariants: {
16
+ leading: "normal",
17
+ },
18
+ });
@@ -0,0 +1,2 @@
1
+ export { Paragraph } from "./Paragraph";
2
+ export type { ParagraphProps } from "./types";
@@ -0,0 +1,8 @@
1
+ import { ComponentProps } from "react";
2
+ import { type VariantProps } from "../../libs";
3
+ import { Text } from "../Text";
4
+ import { getParagraphClasses } from "./constants";
5
+
6
+ export type ParagraphProps = React.HTMLAttributes<HTMLParagraphElement> &
7
+ VariantProps<typeof getParagraphClasses> &
8
+ Omit<ComponentProps<typeof Text>, "as">;
@@ -1,43 +1,42 @@
1
1
  import { cva } from "../../libs";
2
+ import { createVariants } from "../../utilities";
2
3
 
3
4
  export const getProgressClasses = cva("relative h-2 w-full overflow-hidden rounded-full", {
4
- variants: {
5
+ variants: createVariants({
5
6
  variant: {
6
7
  accent: "bg-accent/20",
7
- base: "bg-base-content/20",
8
+ default: "bg-base-content/20",
8
9
  error: "bg-error/20",
9
10
  ghost: "bg-ghost/20",
10
11
  info: "bg-info/20",
11
- link: "bg-link/20",
12
12
  neutral: "bg-neutral/20",
13
13
  primary: "bg-primary/20",
14
14
  secondary: "bg-secondary/20",
15
15
  success: "bg-success/20",
16
16
  warning: "bg-warning/20",
17
17
  },
18
- },
18
+ }),
19
19
  defaultVariants: {
20
- variant: "base",
20
+ variant: "default",
21
21
  },
22
22
  });
23
23
 
24
24
  export const getProgressIndicatorClasses = cva("h-full w-full flex-1 transition-all", {
25
- variants: {
25
+ variants: createVariants({
26
26
  variant: {
27
27
  accent: "bg-accent",
28
- base: "bg-base-content",
28
+ default: "bg-base-content",
29
29
  error: "bg-error",
30
30
  ghost: "bg-ghost",
31
31
  info: "bg-info",
32
- link: "bg-link",
33
32
  neutral: "bg-neutral",
34
33
  primary: "bg-primary",
35
34
  secondary: "bg-secondary",
36
35
  success: "bg-success",
37
36
  warning: "bg-warning",
38
37
  },
39
- },
38
+ }),
40
39
  defaultVariants: {
41
- variant: "base",
40
+ variant: "default",
42
41
  },
43
42
  });
@@ -1,4 +1,5 @@
1
1
  import { cva } from "../../libs";
2
+ import { createVariants } from "../../utilities";
2
3
 
3
4
  export const getResizableClasses = cva(
4
5
  "flex h-full w-full data-[panel-group-direction=vertical]:flex-col"
@@ -7,11 +8,11 @@ export const getResizableClasses = cva(
7
8
  export const getResizableHandleClasses = cva(
8
9
  "relative flex w-px items-center justify-center border-primary after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
9
10
  {
10
- variants: {
11
+ variants: createVariants({
11
12
  bordered: {
12
13
  true: "border border-neutral-content",
13
14
  },
14
- },
15
+ }),
15
16
  }
16
17
  );
17
18
 
@@ -1,21 +1,22 @@
1
1
  import { cva } from "../../libs";
2
+ import { createVariants } from "../../utilities";
2
3
 
3
4
  export const getScrollAreaClasses = cva("relative overflow-hidden");
4
5
 
5
6
  export const getScrollAreaScrollbarClasses = cva("flex touch-none select-none transition-colors", {
6
- variants: {
7
+ variants: createVariants({
7
8
  orientation: {
8
9
  horizontal: "h-2.5 flex-col border-t border-t-transparent p-[1px]",
9
10
  vertical: "h-full w-2.5 border-l border-l-transparent p-[1px]",
10
11
  },
11
- },
12
+ }),
12
13
  });
13
14
 
14
15
  export const getScrollAreaThumbClasses = cva("relative flex-1 rounded-full", {
15
- variants: {
16
+ variants: createVariants({
16
17
  variant: {
17
18
  accent: "bg-accent",
18
- base: "bg-base-300",
19
+ default: "bg-base-300",
19
20
  error: "bg-error",
20
21
  ghost: "bg-ghost",
21
22
  info: "bg-info",
@@ -25,7 +26,7 @@ export const getScrollAreaThumbClasses = cva("relative flex-1 rounded-full", {
25
26
  success: "bg-success",
26
27
  warning: "bg-warning",
27
28
  },
28
- },
29
+ }),
29
30
  });
30
31
 
31
32
  export const getScrollAreaViewportClasses = cva("h-full w-full rounded-[inherit]");
@@ -1,10 +1,11 @@
1
1
  import { cva } from "../../libs";
2
+ import { createVariants } from "../../utilities";
2
3
 
3
4
  export const getSeparatorClasses = cva("shrink-0 bg-base-300", {
4
- variants: {
5
+ variants: createVariants({
5
6
  orientation: {
6
7
  horizontal: "h-[1px] w-full",
7
8
  vertical: "h-full w-[1px]",
8
9
  },
9
- },
10
+ }),
10
11
  });
@@ -0,0 +1,126 @@
1
+ import React, { useEffect } from "react";
2
+ import { createPortal } from "react-dom";
3
+ import { X } from "lucide-react";
4
+ import { cn } from "../../utilities";
5
+ import { getSheetClasses, getSheetOverlayClasses } from "./constants";
6
+ import { type SheetProps } from "./types";
7
+
8
+ export const Sheet = React.forwardRef<HTMLDivElement, SheetProps>(
9
+ ({ className, side, open, onClose, children, ...props }, ref) => {
10
+ // Prevent body scroll when open
11
+ useEffect(() => {
12
+ if (open) {
13
+ document.body.style.overflow = "hidden";
14
+ } else {
15
+ document.body.style.overflow = "";
16
+ }
17
+ return () => {
18
+ document.body.style.overflow = "";
19
+ };
20
+ }, [open]);
21
+
22
+ // Close on escape key
23
+ useEffect(() => {
24
+ const handleEscape = (e: KeyboardEvent) => {
25
+ if (open && e.key === "Escape") {
26
+ onClose?.();
27
+ }
28
+ };
29
+ document.addEventListener("keydown", handleEscape);
30
+ return () => document.removeEventListener("keydown", handleEscape);
31
+ }, [open, onClose]);
32
+
33
+ if (typeof document === "undefined") return null;
34
+
35
+ return createPortal(
36
+ <>
37
+ <div className={getSheetOverlayClasses({ open })} onClick={onClose} aria-hidden="true" />
38
+ <div
39
+ ref={ref}
40
+ role="dialog"
41
+ aria-modal="true"
42
+ className={cn(getSheetClasses({ side, open }), className)}
43
+ {...props}
44
+ >
45
+ {onClose && (
46
+ <button
47
+ onClick={onClose}
48
+ className="absolute right-4 top-4 btn btn-sm btn-circle btn-ghost"
49
+ aria-label="Close"
50
+ >
51
+ <X className="h-4 w-4" />
52
+ </button>
53
+ )}
54
+ {children}
55
+ </div>
56
+ </>,
57
+ document.body
58
+ );
59
+ }
60
+ );
61
+
62
+ Sheet.displayName = "Sheet";
63
+
64
+ export const SheetHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
65
+ ({ className, children, ...props }, ref) => {
66
+ return (
67
+ <div ref={ref} className={cn("flex flex-col space-y-2 p-6", className)} {...props}>
68
+ {children}
69
+ </div>
70
+ );
71
+ }
72
+ );
73
+ SheetHeader.displayName = "SheetHeader";
74
+
75
+ export const SheetTitle = React.forwardRef<
76
+ HTMLHeadingElement,
77
+ React.HTMLAttributes<HTMLHeadingElement>
78
+ >(({ className, children, ...props }, ref) => {
79
+ return (
80
+ <h2 ref={ref} className={cn("text-lg font-semibold text-base-content", className)} {...props}>
81
+ {children}
82
+ </h2>
83
+ );
84
+ });
85
+ SheetTitle.displayName = "SheetTitle";
86
+
87
+ export const SheetDescription = React.forwardRef<
88
+ HTMLParagraphElement,
89
+ React.HTMLAttributes<HTMLParagraphElement>
90
+ >(({ className, children, ...props }, ref) => {
91
+ return (
92
+ <p ref={ref} className={cn("text-sm text-base-content/70", className)} {...props}>
93
+ {children}
94
+ </p>
95
+ );
96
+ });
97
+ SheetDescription.displayName = "SheetDescription";
98
+
99
+ export const SheetContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
100
+ ({ className, children, ...props }, ref) => {
101
+ return (
102
+ <div ref={ref} className={cn("p-6 pt-0", className)} {...props}>
103
+ {children}
104
+ </div>
105
+ );
106
+ }
107
+ );
108
+ SheetContent.displayName = "SheetContent";
109
+
110
+ export const SheetFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
111
+ ({ className, children, ...props }, ref) => {
112
+ return (
113
+ <div
114
+ ref={ref}
115
+ className={cn(
116
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2 p-6",
117
+ className
118
+ )}
119
+ {...props}
120
+ >
121
+ {children}
122
+ </div>
123
+ );
124
+ }
125
+ );
126
+ SheetFooter.displayName = "SheetFooter";