@me1a/ui 2.2.1 → 2.2.3

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 (230) hide show
  1. package/dist/accordion/index.d.mts +94 -0
  2. package/dist/accordion/index.mjs +2 -0
  3. package/dist/accordion/index.mjs.map +1 -0
  4. package/dist/avatar/index.d.mts +34 -0
  5. package/dist/avatar/index.mjs +2 -0
  6. package/dist/avatar/index.mjs.map +1 -0
  7. package/dist/badge/index.d.mts +41 -0
  8. package/dist/badge/index.mjs +2 -0
  9. package/dist/badge/index.mjs.map +1 -0
  10. package/dist/box/index.d.mts +50 -0
  11. package/dist/box/index.mjs +2 -0
  12. package/dist/box/index.mjs.map +1 -0
  13. package/dist/breadcrumb/index.d.mts +35 -0
  14. package/dist/breadcrumb/index.mjs +2 -0
  15. package/dist/breadcrumb/index.mjs.map +1 -0
  16. package/dist/{tooltip-B4jzaurK.d.mts → button/index.d.mts} +3 -25
  17. package/dist/button/index.mjs +2 -0
  18. package/dist/button/index.mjs.map +1 -0
  19. package/dist/card/index.d.mts +127 -0
  20. package/dist/card/index.mjs +2 -0
  21. package/dist/card/index.mjs.map +1 -0
  22. package/dist/checkbox/index.d.mts +21 -0
  23. package/dist/checkbox/index.mjs +2 -0
  24. package/dist/checkbox/index.mjs.map +1 -0
  25. package/dist/collapsible/index.d.mts +26 -0
  26. package/dist/collapsible/index.mjs +2 -0
  27. package/dist/collapsible/index.mjs.map +1 -0
  28. package/dist/command/index.d.mts +122 -0
  29. package/dist/command/index.mjs +2 -0
  30. package/dist/command/index.mjs.map +1 -0
  31. package/dist/container/index.d.mts +33 -0
  32. package/dist/container/index.mjs +2 -0
  33. package/dist/container/index.mjs.map +1 -0
  34. package/dist/dialog/index.d.mts +35 -0
  35. package/dist/dialog/index.mjs +2 -0
  36. package/dist/dialog/index.mjs.map +1 -0
  37. package/dist/drawer/index.d.mts +63 -0
  38. package/dist/drawer/index.mjs +2 -0
  39. package/dist/drawer/index.mjs.map +1 -0
  40. package/dist/dropdown-menu/index.d.mts +335 -0
  41. package/dist/dropdown-menu/index.mjs +2 -0
  42. package/dist/dropdown-menu/index.mjs.map +1 -0
  43. package/dist/form/index.d.mts +96 -0
  44. package/dist/form/index.mjs +2 -0
  45. package/dist/form/index.mjs.map +1 -0
  46. package/dist/{hooks.d.mts → hooks/index.d.mts} +10 -4
  47. package/dist/hooks/index.mjs +2 -0
  48. package/dist/hooks/index.mjs.map +1 -0
  49. package/dist/index.d.mts +2739 -30
  50. package/dist/index.mjs +47 -0
  51. package/dist/{index.esm.js.map → index.mjs.map} +1 -1
  52. package/dist/input/index.d.mts +12 -0
  53. package/dist/input/index.mjs +2 -0
  54. package/dist/input/index.mjs.map +1 -0
  55. package/dist/label/index.d.mts +18 -0
  56. package/dist/label/index.mjs +2 -0
  57. package/dist/label/index.mjs.map +1 -0
  58. package/dist/navigation-menu/index.d.mts +104 -0
  59. package/dist/navigation-menu/index.mjs +2 -0
  60. package/dist/navigation-menu/index.mjs.map +1 -0
  61. package/dist/page-loader/index.d.mts +29 -0
  62. package/dist/page-loader/index.mjs +2 -0
  63. package/dist/page-loader/index.mjs.map +1 -0
  64. package/dist/pagination/index.d.mts +105 -0
  65. package/dist/pagination/index.mjs +2 -0
  66. package/dist/pagination/index.mjs.map +1 -0
  67. package/dist/popover/index.d.mts +30 -0
  68. package/dist/popover/index.mjs +2 -0
  69. package/dist/popover/index.mjs.map +1 -0
  70. package/dist/{checkbox-DxgDKaHx.d.mts → radio-group/index.d.mts} +5 -51
  71. package/dist/radio-group/index.mjs +2 -0
  72. package/dist/radio-group/index.mjs.map +1 -0
  73. package/dist/resizable/index.d.mts +53 -0
  74. package/dist/resizable/index.mjs +2 -0
  75. package/dist/resizable/index.mjs.map +1 -0
  76. package/dist/rhf-checkbox/index.d.mts +57 -0
  77. package/dist/rhf-checkbox/index.mjs +2 -0
  78. package/dist/rhf-checkbox/index.mjs.map +1 -0
  79. package/dist/rhf-multi-select/index.d.mts +84 -0
  80. package/dist/rhf-multi-select/index.mjs +2 -0
  81. package/dist/rhf-multi-select/index.mjs.map +1 -0
  82. package/dist/rhf-radio-button-group/index.d.mts +73 -0
  83. package/dist/rhf-radio-button-group/index.mjs +2 -0
  84. package/dist/rhf-radio-button-group/index.mjs.map +1 -0
  85. package/dist/rhf-radio-group/index.d.mts +103 -0
  86. package/dist/rhf-radio-group/index.mjs +2 -0
  87. package/dist/rhf-radio-group/index.mjs.map +1 -0
  88. package/dist/rhf-select/index.d.mts +80 -0
  89. package/dist/rhf-select/index.mjs +2 -0
  90. package/dist/rhf-select/index.mjs.map +1 -0
  91. package/dist/rhf-switch/index.d.mts +57 -0
  92. package/dist/rhf-switch/index.mjs +2 -0
  93. package/dist/rhf-switch/index.mjs.map +1 -0
  94. package/dist/rhf-textarea/index.d.mts +66 -0
  95. package/dist/rhf-textarea/index.mjs +2 -0
  96. package/dist/rhf-textarea/index.mjs.map +1 -0
  97. package/dist/separator/index.d.mts +13 -0
  98. package/dist/separator/index.mjs +2 -0
  99. package/dist/separator/index.mjs.map +1 -0
  100. package/dist/sheet/index.d.mts +42 -0
  101. package/dist/sheet/index.mjs +2 -0
  102. package/dist/sheet/index.mjs.map +1 -0
  103. package/dist/sidebar/index.d.mts +328 -0
  104. package/dist/sidebar/index.mjs +2 -0
  105. package/dist/sidebar/index.mjs.map +1 -0
  106. package/dist/skeleton/index.d.mts +17 -0
  107. package/dist/skeleton/index.mjs +2 -0
  108. package/dist/skeleton/index.mjs.map +1 -0
  109. package/dist/stack/index.d.mts +121 -0
  110. package/dist/stack/index.mjs +2 -0
  111. package/dist/stack/index.mjs.map +1 -0
  112. package/dist/switch/index.d.mts +21 -0
  113. package/dist/switch/index.mjs +2 -0
  114. package/dist/switch/index.mjs.map +1 -0
  115. package/dist/table/index.d.mts +53 -0
  116. package/dist/table/index.mjs +2 -0
  117. package/dist/table/index.mjs.map +1 -0
  118. package/dist/tabs/index.d.mts +97 -0
  119. package/dist/tabs/index.mjs +2 -0
  120. package/dist/tabs/index.mjs.map +1 -0
  121. package/dist/text-field/index.d.mts +65 -0
  122. package/dist/text-field/index.mjs +2 -0
  123. package/dist/text-field/index.mjs.map +1 -0
  124. package/dist/textarea/index.d.mts +24 -0
  125. package/dist/textarea/index.mjs +2 -0
  126. package/dist/textarea/index.mjs.map +1 -0
  127. package/dist/{toast-2xT7L1tJ.d.mts → toast/index.d.mts} +3 -3
  128. package/dist/toast/index.mjs +2 -0
  129. package/dist/toast/index.mjs.map +1 -0
  130. package/dist/toaster/index.d.mts +26 -0
  131. package/dist/toaster/index.mjs +2 -0
  132. package/dist/toaster/index.mjs.map +1 -0
  133. package/dist/tooltip/index.d.mts +25 -0
  134. package/dist/tooltip/index.mjs +2 -0
  135. package/dist/tooltip/index.mjs.map +1 -0
  136. package/dist/types/index.mjs +2 -0
  137. package/dist/{index.cjs.js.map → types/index.mjs.map} +1 -1
  138. package/dist/typography/index.d.mts +24 -0
  139. package/dist/typography/index.mjs +2 -0
  140. package/dist/typography/index.mjs.map +1 -0
  141. package/dist/utils/index.mjs +2 -0
  142. package/dist/utils/index.mjs.map +1 -0
  143. package/package.json +199 -34
  144. package/dist/atoms.cjs.js +0 -2
  145. package/dist/atoms.cjs.js.map +0 -1
  146. package/dist/atoms.d.mts +0 -1051
  147. package/dist/atoms.d.ts +0 -1051
  148. package/dist/atoms.esm.js +0 -2
  149. package/dist/atoms.esm.js.map +0 -1
  150. package/dist/checkbox-DxgDKaHx.d.ts +0 -108
  151. package/dist/chunk-23T2PH5G.esm.js +0 -2
  152. package/dist/chunk-23T2PH5G.esm.js.map +0 -1
  153. package/dist/chunk-2QG3QTSW.cjs.js +0 -2
  154. package/dist/chunk-2QG3QTSW.cjs.js.map +0 -1
  155. package/dist/chunk-C26U3FL4.esm.js +0 -2
  156. package/dist/chunk-C26U3FL4.esm.js.map +0 -1
  157. package/dist/chunk-DTM5LZHM.cjs.js +0 -2
  158. package/dist/chunk-DTM5LZHM.cjs.js.map +0 -1
  159. package/dist/chunk-HW32JE75.cjs.js +0 -2
  160. package/dist/chunk-HW32JE75.cjs.js.map +0 -1
  161. package/dist/chunk-JIRS6MWF.cjs.js +0 -2
  162. package/dist/chunk-JIRS6MWF.cjs.js.map +0 -1
  163. package/dist/chunk-JKTYFZ5M.esm.js +0 -2
  164. package/dist/chunk-JKTYFZ5M.esm.js.map +0 -1
  165. package/dist/chunk-JUZG25DH.esm.js +0 -2
  166. package/dist/chunk-JUZG25DH.esm.js.map +0 -1
  167. package/dist/chunk-KOYJODOP.cjs.js +0 -2
  168. package/dist/chunk-KOYJODOP.cjs.js.map +0 -1
  169. package/dist/chunk-M4S5YZ56.esm.js +0 -2
  170. package/dist/chunk-M4S5YZ56.esm.js.map +0 -1
  171. package/dist/chunk-MOYOCJW6.esm.js +0 -2
  172. package/dist/chunk-MOYOCJW6.esm.js.map +0 -1
  173. package/dist/chunk-MVWMLXLL.cjs.js +0 -2
  174. package/dist/chunk-MVWMLXLL.cjs.js.map +0 -1
  175. package/dist/chunk-SL2ZUI4G.cjs.js +0 -2
  176. package/dist/chunk-SL2ZUI4G.cjs.js.map +0 -1
  177. package/dist/chunk-STRDPP3B.esm.js +0 -2
  178. package/dist/chunk-STRDPP3B.esm.js.map +0 -1
  179. package/dist/chunk-U4NMIMU7.esm.js +0 -2
  180. package/dist/chunk-U4NMIMU7.esm.js.map +0 -1
  181. package/dist/chunk-UK47BFA3.cjs.js +0 -2
  182. package/dist/chunk-UK47BFA3.cjs.js.map +0 -1
  183. package/dist/chunk-UTVXFZLD.esm.js +0 -2
  184. package/dist/chunk-UTVXFZLD.esm.js.map +0 -1
  185. package/dist/chunk-WJNYKJP6.cjs.js +0 -2
  186. package/dist/chunk-WJNYKJP6.cjs.js.map +0 -1
  187. package/dist/chunk-YEZB7AOJ.esm.js +0 -2
  188. package/dist/chunk-YEZB7AOJ.esm.js.map +0 -1
  189. package/dist/chunk-YGLYFSF6.cjs.js +0 -2
  190. package/dist/chunk-YGLYFSF6.cjs.js.map +0 -1
  191. package/dist/hooks.cjs.js +0 -2
  192. package/dist/hooks.cjs.js.map +0 -1
  193. package/dist/hooks.d.ts +0 -51
  194. package/dist/hooks.esm.js +0 -2
  195. package/dist/hooks.esm.js.map +0 -1
  196. package/dist/index.cjs.js +0 -2
  197. package/dist/index.d.ts +0 -30
  198. package/dist/index.esm.js +0 -2
  199. package/dist/molecules.cjs.js +0 -2
  200. package/dist/molecules.cjs.js.map +0 -1
  201. package/dist/molecules.d.mts +0 -201
  202. package/dist/molecules.d.ts +0 -201
  203. package/dist/molecules.esm.js +0 -2
  204. package/dist/molecules.esm.js.map +0 -1
  205. package/dist/organisms.cjs.js +0 -2
  206. package/dist/organisms.cjs.js.map +0 -1
  207. package/dist/organisms.d.mts +0 -673
  208. package/dist/organisms.d.ts +0 -673
  209. package/dist/organisms.esm.js +0 -2
  210. package/dist/organisms.esm.js.map +0 -1
  211. package/dist/rhf.cjs.js +0 -2
  212. package/dist/rhf.cjs.js.map +0 -1
  213. package/dist/rhf.d.mts +0 -408
  214. package/dist/rhf.d.ts +0 -408
  215. package/dist/rhf.esm.js +0 -2
  216. package/dist/rhf.esm.js.map +0 -1
  217. package/dist/toast-2xT7L1tJ.d.ts +0 -18
  218. package/dist/tooltip-B4jzaurK.d.ts +0 -104
  219. package/dist/types.cjs.js +0 -2
  220. package/dist/types.cjs.js.map +0 -1
  221. package/dist/types.d.ts +0 -2
  222. package/dist/types.esm.js +0 -2
  223. package/dist/types.esm.js.map +0 -1
  224. package/dist/utils.cjs.js +0 -2
  225. package/dist/utils.cjs.js.map +0 -1
  226. package/dist/utils.d.ts +0 -5
  227. package/dist/utils.esm.js +0 -2
  228. package/dist/utils.esm.js.map +0 -1
  229. /package/dist/{types.d.mts → types/index.d.mts} +0 -0
  230. /package/dist/{utils.d.mts → utils/index.d.mts} +0 -0
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
3
+
4
+ /**
5
+ * Collapsible component that allows content to be expanded and collapsed.
6
+ * Built on top of Radix UI's Collapsible primitive.
7
+ *
8
+ * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-collapsible--docs
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <Collapsible>
13
+ * <CollapsibleTrigger>Toggle</CollapsibleTrigger>
14
+ * <CollapsibleContent>Content</CollapsibleContent>
15
+ * </Collapsible>
16
+ * ```
17
+ */
18
+ declare const Collapsible: React.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleProps & React.RefAttributes<HTMLDivElement>>;
19
+ declare const CollapsibleTrigger: React.ForwardRefExoticComponent<Omit<CollapsiblePrimitive.CollapsibleTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
20
+ declare const CollapsibleContent: React.ForwardRefExoticComponent<Omit<CollapsiblePrimitive.CollapsibleContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
21
+
22
+ type CollapsibleProps = React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Root>;
23
+ type CollapsibleTriggerProps = React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Trigger>;
24
+ type CollapsibleContentProps = React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Content>;
25
+
26
+ export { Collapsible, CollapsibleContent, type CollapsibleContentProps, type CollapsibleProps, CollapsibleTrigger, type CollapsibleTriggerProps };
@@ -0,0 +1,2 @@
1
+ import*as e from'@radix-ui/react-collapsible';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {forwardRef}from'react';import {jsx}from'react/jsx-runtime';function i(...o){return twMerge(clsx(o))}var v=e.Root,p=forwardRef(({className:o,...t},l)=>jsx(e.Trigger,{ref:l,className:i("inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",o),...t}));p.displayName="CollapsibleTrigger";var m=forwardRef(({className:o,...t},l)=>jsx(e.Content,{ref:l,className:i("overflow-hidden data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down",o),...t}));m.displayName="CollapsibleContent";export{v as Collapsible,m as CollapsibleContent,p as CollapsibleTrigger};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/collapsible/collapsible.tsx"],"names":["cn","inputs","twMerge","clsx","Collapsible","CollapsibleTrigger","forwardRef","className","props","ref","jsx","CollapsibleContent"],"mappings":"8KAGO,SAASA,KAAMC,CAAsB,CAAA,CAC1C,OAAOC,OAAQC,CAAAA,IAAAA,CAAKF,CAAM,CAAC,CAC7B,KCcMG,CAAmC,CAAA,CAAA,CAAA,IAAA,CAEnCC,CAAqBC,CAAAA,UAAAA,CAGzB,CAAC,CAAE,SAAA,CAAAC,EAAW,GAAGC,CAAM,EAAGC,CAC1BC,GAAAA,GAAAA,CAAsB,CAArB,CAAA,OAAA,CAAA,CACC,IAAKD,CACL,CAAA,SAAA,CAAWT,EACT,mTACAO,CAAAA,CACF,EACC,GAAGC,CAAAA,CACN,CACD,EACDH,EAAmB,WAAc,CAAA,oBAAA,KAE3BM,CAAqBL,CAAAA,UAAAA,CAGzB,CAAC,CAAE,SAAA,CAAAC,CAAW,CAAA,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GAC1BC,IAAsB,CAArB,CAAA,OAAA,CAAA,CACC,IAAKD,CACL,CAAA,SAAA,CAAWT,CACT,CAAA,uGAAA,CACAO,CACF,CACC,CAAA,GAAGC,EACN,CACD,EACDG,EAAmB,WAAc,CAAA,oBAAA","file":"index.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\nimport { cn } from \"@/utils\"\nimport { forwardRef } from \"react\"\n\n/**\n * Collapsible component that allows content to be expanded and collapsed.\n * Built on top of Radix UI's Collapsible primitive.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-collapsible--docs\n *\n * @example\n * ```tsx\n * <Collapsible>\n * <CollapsibleTrigger>Toggle</CollapsibleTrigger>\n * <CollapsibleContent>Content</CollapsibleContent>\n * </Collapsible>\n * ```\n */\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = forwardRef<\n React.ElementRef<typeof CollapsiblePrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <CollapsiblePrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n {...props}\n />\n))\nCollapsibleTrigger.displayName = \"CollapsibleTrigger\"\n\nconst CollapsibleContent = forwardRef<\n React.ElementRef<typeof CollapsiblePrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Content>\n>(({ className, ...props }, ref) => (\n <CollapsiblePrimitive.Content\n ref={ref}\n className={cn(\n \"overflow-hidden data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down\",\n className\n )}\n {...props}\n />\n))\nCollapsibleContent.displayName = \"CollapsibleContent\"\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"]}
@@ -0,0 +1,122 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { ComponentPropsWithoutRef, ElementRef } from 'react';
4
+ import { DialogProps } from '@radix-ui/react-dialog';
5
+ import { Command as Command$1 } from 'cmdk';
6
+
7
+ type CommandProps = ComponentPropsWithoutRef<typeof Command$1>;
8
+ type CommandRef = ElementRef<typeof Command$1>;
9
+ type CommandDialogProps = DialogProps;
10
+ type CommandInputProps = ComponentPropsWithoutRef<typeof Command$1.Input>;
11
+ type CommandInputRef = ElementRef<typeof Command$1.Input>;
12
+ type CommandListProps = ComponentPropsWithoutRef<typeof Command$1.List>;
13
+ type CommandListRef = ElementRef<typeof Command$1.List>;
14
+ type CommandEmptyProps = ComponentPropsWithoutRef<typeof Command$1.Empty>;
15
+ type CommandEmptyRef = ElementRef<typeof Command$1.Empty>;
16
+ type CommandGroupProps = ComponentPropsWithoutRef<typeof Command$1.Group>;
17
+ type CommandGroupRef = ElementRef<typeof Command$1.Group>;
18
+ type CommandSeparatorProps = ComponentPropsWithoutRef<typeof Command$1.Separator>;
19
+ type CommandSeparatorRef = ElementRef<typeof Command$1.Separator>;
20
+ type CommandItemProps = ComponentPropsWithoutRef<typeof Command$1.Item>;
21
+ type CommandItemRef = ElementRef<typeof Command$1.Item>;
22
+ type CommandShortcutProps = React.HTMLAttributes<HTMLSpanElement>;
23
+
24
+ /**
25
+ * Command component that provides a command palette interface.
26
+ * Built on top of cmdk and Radix UI's Dialog primitive.
27
+ *
28
+ * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-command--docs
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * <Command>
33
+ * <CommandInput placeholder="Search..." />
34
+ * <CommandList>
35
+ * <CommandEmpty>No results found.</CommandEmpty>
36
+ * <CommandGroup heading="Suggestions">
37
+ * <CommandItem>Calendar</CommandItem>
38
+ * <CommandItem>Search</CommandItem>
39
+ * </CommandGroup>
40
+ * </CommandList>
41
+ * </Command>
42
+ * ```
43
+ */
44
+ declare const Command: React.ForwardRefExoticComponent<Omit<{
45
+ children?: React.ReactNode;
46
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
47
+ ref?: React.Ref<HTMLDivElement>;
48
+ } & {
49
+ asChild?: boolean;
50
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
51
+ label?: string;
52
+ shouldFilter?: boolean;
53
+ filter?: (value: string, search: string, keywords?: string[]) => number;
54
+ defaultValue?: string;
55
+ value?: string;
56
+ onValueChange?: (value: string) => void;
57
+ loop?: boolean;
58
+ disablePointerSelection?: boolean;
59
+ vimBindings?: boolean;
60
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
61
+ declare const CommandDialog: ({ children, ...props }: CommandDialogProps) => react_jsx_runtime.JSX.Element;
62
+ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof React.InputHTMLAttributes<HTMLInputElement>> & {
63
+ ref?: React.Ref<HTMLInputElement>;
64
+ } & {
65
+ asChild?: boolean;
66
+ }, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "type" | "value"> & {
67
+ value?: string;
68
+ onValueChange?: (search: string) => void;
69
+ } & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
70
+ declare const CommandList: React.ForwardRefExoticComponent<Omit<{
71
+ children?: React.ReactNode;
72
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
73
+ ref?: React.Ref<HTMLDivElement>;
74
+ } & {
75
+ asChild?: boolean;
76
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
77
+ label?: string;
78
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
79
+ declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
80
+ children?: React.ReactNode;
81
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
82
+ ref?: React.Ref<HTMLDivElement>;
83
+ } & {
84
+ asChild?: boolean;
85
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
86
+ declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
87
+ children?: React.ReactNode;
88
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
89
+ ref?: React.Ref<HTMLDivElement>;
90
+ } & {
91
+ asChild?: boolean;
92
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "value" | "heading"> & {
93
+ heading?: React.ReactNode;
94
+ value?: string;
95
+ forceMount?: boolean;
96
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
97
+ declare const CommandSeparator: React.ForwardRefExoticComponent<Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
98
+ ref?: React.Ref<HTMLDivElement>;
99
+ } & {
100
+ asChild?: boolean;
101
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
102
+ alwaysRender?: boolean;
103
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
104
+ declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
105
+ children?: React.ReactNode;
106
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
107
+ ref?: React.Ref<HTMLDivElement>;
108
+ } & {
109
+ asChild?: boolean;
110
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "onSelect" | "disabled" | "value"> & {
111
+ disabled?: boolean;
112
+ onSelect?: (value: string) => void;
113
+ value?: string;
114
+ keywords?: string[];
115
+ forceMount?: boolean;
116
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
117
+ declare const CommandShortcut: {
118
+ ({ className, ...props }: CommandShortcutProps): react_jsx_runtime.JSX.Element;
119
+ displayName: string;
120
+ };
121
+
122
+ export { Command, CommandDialog, type CommandDialogProps, CommandEmpty, type CommandEmptyProps, type CommandEmptyRef, CommandGroup, type CommandGroupProps, type CommandGroupRef, CommandInput, type CommandInputProps, type CommandInputRef, CommandItem, type CommandItemProps, type CommandItemRef, CommandList, type CommandListProps, type CommandListRef, type CommandProps, type CommandRef, CommandSeparator, type CommandSeparatorProps, type CommandSeparatorRef, CommandShortcut, type CommandShortcutProps };
@@ -0,0 +1,2 @@
1
+ import*as d from'react';import {Command}from'cmdk';import {X,Search}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import*as a from'@radix-ui/react-dialog';import {jsx,jsxs}from'react/jsx-runtime';function m(...e){return twMerge(clsx(e))}var f=a.Root;var k=a.Portal;var g=d.forwardRef(({className:e,...t},o)=>jsx(a.Overlay,{ref:o,className:m("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));g.displayName=a.Overlay.displayName;var l=d.forwardRef(({className:e,children:t,...o},P)=>jsxs(k,{children:[jsx(g,{}),jsxs(a.Content,{ref:P,className:m("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...o,children:[t,jsxs(a.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[jsx(X,{className:"h-4 w-4"}),jsx("span",{className:"sr-only",children:"Close"})]})]})]}));l.displayName=a.Content.displayName;var I=d.forwardRef(({className:e,...t},o)=>jsx(a.Title,{ref:o,className:m("text-lg font-semibold leading-none tracking-tight",e),...t}));I.displayName=a.Title.displayName;var E=d.forwardRef(({className:e,...t},o)=>jsx(a.Description,{ref:o,className:m("text-sm text-muted-foreground",e),...t}));E.displayName=a.Description.displayName;var c=d.forwardRef(({className:e,...t},o)=>jsx(Command,{ref:o,className:m("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));c.displayName=Command.displayName;var L=({children:e,...t})=>jsx(f,{...t,children:jsx(l,{className:"overflow-hidden p-0",children:jsx(c,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:e})})}),u=d.forwardRef(({className:e,...t},o)=>jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[jsx(Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),jsx(Command.Input,{ref:o,className:m("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));u.displayName=Command.Input.displayName;var y=d.forwardRef(({className:e,...t},o)=>jsx(Command.List,{ref:o,className:m("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));y.displayName=Command.List.displayName;var C=d.forwardRef((e,t)=>jsx(Command.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));C.displayName=Command.Empty.displayName;var R=d.forwardRef(({className:e,...t},o)=>jsx(Command.Group,{ref:o,className:m("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));R.displayName=Command.Group.displayName;var v=d.forwardRef(({className:e,...t},o)=>jsx(Command.Separator,{ref:o,className:m("-mx-1 h-px bg-border",e),...t}));v.displayName=Command.Separator.displayName;var x=d.forwardRef(({className:e,...t},o)=>jsx(Command.Item,{ref:o,className:m("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));x.displayName=Command.Item.displayName;var D=({className:e,...t})=>jsx("span",{className:m("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});D.displayName="CommandShortcut";export{c as Command,L as CommandDialog,C as CommandEmpty,R as CommandGroup,u as CommandInput,x as CommandItem,y as CommandList,v as CommandSeparator,D as CommandShortcut};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/dialog/dialog.tsx","../../src/components/atoms/command/command.tsx"],"names":["cn","inputs","twMerge","clsx","Dialog","DialogPortal","DialogOverlay","s","className","props","ref","jsx","DialogContent","children","jsxs","X","DialogTitle","DialogDescription","Command","CommandPrimitive","CommandDialog","CommandInput","Search","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut"],"mappings":"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","file":"index.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\nimport { cn } from \"@/utils\"\n\n/**\n * Dialog component for creating accessible dialogs with overlay and content.\n * Built on top of Radix UI's Dialog primitive.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-dialog--docs\n *\n * @example\n * ```tsx\n * <Dialog>\n * <DialogTrigger>Open Dialog</DialogTrigger>\n * <DialogContent>Dialog Content</DialogContent>\n * </Dialog>\n */\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col space-y-1.5 text-center sm:text-left\", className)} {...props} />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription\n}\n","import * as React from \"react\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\n\nimport { cn } from \"@/utils/index\"\nimport { Dialog, DialogContent } from \"@/components/atoms/dialog\"\nimport {\n type CommandProps,\n type CommandRef,\n type CommandDialogProps,\n type CommandInputProps,\n type CommandInputRef,\n type CommandListProps,\n type CommandListRef,\n type CommandEmptyProps,\n type CommandEmptyRef,\n type CommandGroupProps,\n type CommandGroupRef,\n type CommandSeparatorProps,\n type CommandSeparatorRef,\n type CommandItemProps,\n type CommandItemRef,\n type CommandShortcutProps\n} from \"./command.types\"\n\n/**\n * Command component that provides a command palette interface.\n * Built on top of cmdk and Radix UI's Dialog primitive.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-command--docs\n *\n * @example\n * ```tsx\n * <Command>\n * <CommandInput placeholder=\"Search...\" />\n * <CommandList>\n * <CommandEmpty>No results found.</CommandEmpty>\n * <CommandGroup heading=\"Suggestions\">\n * <CommandItem>Calendar</CommandItem>\n * <CommandItem>Search</CommandItem>\n * </CommandGroup>\n * </CommandList>\n * </Command>\n * ```\n */\nconst Command = React.forwardRef<CommandRef, CommandProps>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<CommandInputRef, CommandInputProps>(\n ({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n )\n)\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<CommandListRef, CommandListProps>(\n ({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n )\n)\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<CommandEmptyRef, CommandEmptyProps>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n))\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<CommandGroupRef, CommandGroupProps>(\n ({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n)\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<CommandSeparatorRef, CommandSeparatorProps>(\n ({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n )\n)\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<CommandItemRef, CommandItemProps>(\n ({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n )\n)\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: CommandShortcutProps) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest text-muted-foreground\", className)}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator\n}\n"]}
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+
3
+ interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * The maximum width of the container.
6
+ * - "sm": 640px
7
+ * - "md": 768px
8
+ * - "lg": 1024px
9
+ * - "xl": 1280px
10
+ * - "full": 100%
11
+ * - false: No max-width (fluid)
12
+ *
13
+ * @default "lg"
14
+ */
15
+ maxWidth?: "sm" | "md" | "lg" | "xl" | "full" | false;
16
+ /**
17
+ * Whether to disable the default horizontal padding.
18
+ * When true, removes the default padding (px-4 sm:px-6 lg:px-8).
19
+ *
20
+ * @default false
21
+ */
22
+ disablePadding?: boolean;
23
+ /**
24
+ * Whether to make the container fluid (no max-width).
25
+ * When true, the container will expand to fill its parent's width.
26
+ *
27
+ * @default false
28
+ */
29
+ fluid?: boolean;
30
+ }
31
+ declare const Container: React.ForwardRefExoticComponent<ContainerProps & React.RefAttributes<HTMLDivElement>>;
32
+
33
+ export { Container, type ContainerProps };
@@ -0,0 +1,2 @@
1
+ import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import*as o from'react';import {jsx}from'react/jsx-runtime';function l(...r){return twMerge(clsx(r))}var p=o.forwardRef(({className:r,maxWidth:e="lg",disablePadding:a=false,fluid:n=false,...s},t)=>jsx("div",{ref:t,className:l("mx-auto w-full",!a&&"px-4 sm:px-6 lg:px-8",!n&&{"max-w-screen-sm":e==="sm","max-w-screen-md":e==="md","max-w-screen-lg":e==="lg","max-w-screen-xl":e==="xl","max-w-full":e==="full"},r),...s}));p.displayName="Container";export{p as Container};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/container/container.tsx"],"names":["cn","inputs","twMerge","clsx","Container","className","maxWidth","disablePadding","fluid","props","ref","jsx"],"mappings":"yHAGO,SAASA,CAAMC,CAAAA,GAAAA,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,KAAKF,CAAM,CAAC,CAC7B,CCyDMG,IAAAA,CAAAA,CAAkB,aACtB,CAAC,CAAE,SAAAC,CAAAA,CAAAA,CAAW,SAAAC,CAAW,CAAA,IAAA,CAAM,eAAAC,CAAiB,CAAA,KAAA,CAAO,MAAAC,CAAQ,CAAA,KAAA,CAAO,GAAGC,CAAM,EAAGC,CAE9EC,GAAAA,GAAAA,CAAC,KACC,CAAA,CAAA,GAAA,CAAKD,EACL,SAAWV,CAAAA,CAAAA,CAET,gBAEA,CAAA,CAACO,GAAkB,sBAEnB,CAAA,CAACC,GAAS,CACR,iBAAA,CAAmBF,IAAa,IAChC,CAAA,iBAAA,CAAmBA,CAAa,GAAA,IAAA,CAChC,kBAAmBA,CAAa,GAAA,IAAA,CAChC,iBAAmBA,CAAAA,CAAAA,GAAa,KAChC,YAAcA,CAAAA,CAAAA,GAAa,MAC7B,CAAA,CACAD,CACF,CACC,CAAA,GAAGI,EACN,CAGN,EAEAL,EAAU,WAAc,CAAA,WAAA","file":"index.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","/**\n * Container is a layout component that provides a centered, max-width wrapper for content.\n * It's designed to create consistent horizontal padding and maximum widths across different screen sizes.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-container--docs\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Container>\n * <h1>Page Title</h1>\n * <p>Content goes here...</p>\n * </Container>\n *\n * // With custom max width\n * <Container maxWidth=\"xl\">\n * <h1>Wider Content</h1>\n * </Container>\n *\n * // Fluid container (no max-width)\n * <Container fluid>\n * <h1>Full Width Content</h1>\n * </Container>\n *\n * // Without padding\n * <Container disablePadding>\n * <h1>No Padding Content</h1>\n * </Container>\n * ```\n */\nimport { cn } from \"@/utils\"\nimport * as React from \"react\"\n\nexport interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The maximum width of the container.\n * - \"sm\": 640px\n * - \"md\": 768px\n * - \"lg\": 1024px\n * - \"xl\": 1280px\n * - \"full\": 100%\n * - false: No max-width (fluid)\n *\n * @default \"lg\"\n */\n maxWidth?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\" | false\n /**\n * Whether to disable the default horizontal padding.\n * When true, removes the default padding (px-4 sm:px-6 lg:px-8).\n *\n * @default false\n */\n disablePadding?: boolean\n /**\n * Whether to make the container fluid (no max-width).\n * When true, the container will expand to fill its parent's width.\n *\n * @default false\n */\n fluid?: boolean\n}\n\nconst Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n ({ className, maxWidth = \"lg\", disablePadding = false, fluid = false, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n // Base styles\n \"mx-auto w-full\",\n // Padding\n !disablePadding && \"px-4 sm:px-6 lg:px-8\",\n // Max width\n !fluid && {\n \"max-w-screen-sm\": maxWidth === \"sm\",\n \"max-w-screen-md\": maxWidth === \"md\",\n \"max-w-screen-lg\": maxWidth === \"lg\",\n \"max-w-screen-xl\": maxWidth === \"xl\",\n \"max-w-full\": maxWidth === \"full\"\n },\n className\n )}\n {...props}\n />\n )\n }\n)\n\nContainer.displayName = \"Container\"\n\nexport { Container }\n"]}
@@ -0,0 +1,35 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
4
+
5
+ /**
6
+ * Dialog component for creating accessible dialogs with overlay and content.
7
+ * Built on top of Radix UI's Dialog primitive.
8
+ *
9
+ * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-dialog--docs
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Dialog>
14
+ * <DialogTrigger>Open Dialog</DialogTrigger>
15
+ * <DialogContent>Dialog Content</DialogContent>
16
+ * </Dialog>
17
+ */
18
+ declare const Dialog: React.FC<DialogPrimitive.DialogProps>;
19
+ declare const DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
20
+ declare const DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>;
21
+ declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
22
+ declare const DialogOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
23
+ declare const DialogContent: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
24
+ declare const DialogHeader: {
25
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
26
+ displayName: string;
27
+ };
28
+ declare const DialogFooter: {
29
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
30
+ displayName: string;
31
+ };
32
+ declare const DialogTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
33
+ declare const DialogDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
34
+
35
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
@@ -0,0 +1,2 @@
1
+ import*as s from'react';import*as e from'@radix-ui/react-dialog';import {X}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx,jsxs}from'react/jsx-runtime';function i(...t){return twMerge(clsx(t))}var w=e.Root,h=e.Trigger,p=e.Portal,E=e.Close,n=s.forwardRef(({className:t,...a},l)=>jsx(e.Overlay,{ref:l,className:i("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...a}));n.displayName=e.Overlay.displayName;var g=s.forwardRef(({className:t,children:a,...l},m)=>jsxs(p,{children:[jsx(n,{}),jsxs(e.Content,{ref:m,className:i("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...l,children:[a,jsxs(e.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[jsx(X,{className:"h-4 w-4"}),jsx("span",{className:"sr-only",children:"Close"})]})]})]}));g.displayName=e.Content.displayName;var D=({className:t,...a})=>jsx("div",{className:i("flex flex-col space-y-1.5 text-center sm:text-left",t),...a});D.displayName="DialogHeader";var v=({className:t,...a})=>jsx("div",{className:i("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a});v.displayName="DialogFooter";var u=s.forwardRef(({className:t,...a},l)=>jsx(e.Title,{ref:l,className:i("text-lg font-semibold leading-none tracking-tight",t),...a}));u.displayName=e.Title.displayName;var y=s.forwardRef(({className:t,...a},l)=>jsx(e.Description,{ref:l,className:i("text-sm text-muted-foreground",t),...a}));y.displayName=e.Description.displayName;export{w as Dialog,E as DialogClose,g as DialogContent,y as DialogDescription,v as DialogFooter,D as DialogHeader,n as DialogOverlay,p as DialogPortal,u as DialogTitle,h as DialogTrigger};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/dialog/dialog.tsx"],"names":["cn","inputs","twMerge","clsx","Dialog","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","className","props","ref","jsx","DialogContent","children","jsxs","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"mappings":"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","file":"index.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\nimport { cn } from \"@/utils\"\n\n/**\n * Dialog component for creating accessible dialogs with overlay and content.\n * Built on top of Radix UI's Dialog primitive.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-dialog--docs\n *\n * @example\n * ```tsx\n * <Dialog>\n * <DialogTrigger>Open Dialog</DialogTrigger>\n * <DialogContent>Dialog Content</DialogContent>\n * </Dialog>\n */\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col space-y-1.5 text-center sm:text-left\", className)} {...props} />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription\n}\n"]}
@@ -0,0 +1,63 @@
1
+ import * as vaul from 'vaul';
2
+ import { Drawer as Drawer$1 } from 'vaul';
3
+ import * as _radix_ui_react_dialog from '@radix-ui/react-dialog';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+ import * as React from 'react';
6
+
7
+ declare const Drawer: {
8
+ ({ shouldScaleBackground, ...props }: React.ComponentProps<typeof Drawer$1.Root>): react_jsx_runtime.JSX.Element;
9
+ displayName: string;
10
+ };
11
+ /**
12
+ * The trigger element that opens the drawer.
13
+ * Should be used with the `asChild` prop to wrap your own trigger element.
14
+ */
15
+ declare const DrawerTrigger: React.ForwardRefExoticComponent<_radix_ui_react_dialog.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
16
+ /**
17
+ * Portal component that renders the drawer content outside the DOM hierarchy.
18
+ * This ensures proper stacking context and accessibility.
19
+ */
20
+ declare const DrawerPortal: typeof vaul.Portal;
21
+ /**
22
+ * Close button component for the drawer.
23
+ * Should be used with the `asChild` prop to wrap your own close button.
24
+ */
25
+ declare const DrawerClose: React.ForwardRefExoticComponent<_radix_ui_react_dialog.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
26
+ /**
27
+ * Overlay component that appears behind the drawer.
28
+ * Provides a semi-transparent backdrop and handles click-outside behavior.
29
+ */
30
+ declare const DrawerOverlay: React.ForwardRefExoticComponent<Omit<Omit<_radix_ui_react_dialog.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
31
+ /**
32
+ * The main content container for the drawer.
33
+ * Includes the handle bar at the top and manages the slide-up animation.
34
+ */
35
+ declare const DrawerContent: React.ForwardRefExoticComponent<Omit<Omit<_radix_ui_react_dialog.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
36
+ /**
37
+ * Header section of the drawer.
38
+ * Typically contains the title and description.
39
+ */
40
+ declare const DrawerHeader: {
41
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
42
+ displayName: string;
43
+ };
44
+ /**
45
+ * Footer section of the drawer.
46
+ * Typically contains action buttons.
47
+ */
48
+ declare const DrawerFooter: {
49
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
50
+ displayName: string;
51
+ };
52
+ /**
53
+ * Title component for the drawer.
54
+ * Should be used within DrawerHeader.
55
+ */
56
+ declare const DrawerTitle: React.ForwardRefExoticComponent<Omit<_radix_ui_react_dialog.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
57
+ /**
58
+ * Description component for the drawer.
59
+ * Should be used within DrawerHeader.
60
+ */
61
+ declare const DrawerDescription: React.ForwardRefExoticComponent<Omit<_radix_ui_react_dialog.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
62
+
63
+ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger };
@@ -0,0 +1,2 @@
1
+ import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import*as n from'react';import {Drawer}from'vaul';import {jsx,jsxs}from'react/jsx-runtime';function a(...e){return twMerge(clsx(e))}var f=({shouldScaleBackground:e=true,...t})=>jsx(Drawer.Root,{shouldScaleBackground:e,...t});f.displayName="Drawer";var b=Drawer.Trigger,d=Drawer.Portal,h=Drawer.Close,s=n.forwardRef(({className:e,...t},i)=>jsx(Drawer.Overlay,{ref:i,className:a("fixed inset-0 z-50 bg-black/80",e),...t}));s.displayName=Drawer.Overlay.displayName;var D=n.forwardRef(({className:e,children:t,...i},l)=>jsxs(d,{children:[jsx(s,{}),jsxs(Drawer.Content,{ref:l,className:a("fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",e),...i,children:[jsx("div",{className:"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted"}),t]})]}));D.displayName="DrawerContent";var w=({className:e,...t})=>jsx("div",{className:a("grid gap-1.5 p-4 text-center sm:text-left",e),...t});w.displayName="DrawerHeader";var R=({className:e,...t})=>jsx("div",{className:a("mt-auto flex flex-col gap-2 p-4",e),...t});R.displayName="DrawerFooter";var y=n.forwardRef(({className:e,...t},i)=>jsx(Drawer.Title,{ref:i,className:a("text-lg font-semibold leading-none tracking-tight",e),...t}));y.displayName=Drawer.Title.displayName;var u=n.forwardRef(({className:e,...t},i)=>jsx(Drawer.Description,{ref:i,className:a("text-sm text-muted-foreground",e),...t}));u.displayName=Drawer.Description.displayName;export{f as Drawer,h as DrawerClose,D as DrawerContent,u as DrawerDescription,R as DrawerFooter,w as DrawerHeader,s as DrawerOverlay,d as DrawerPortal,y as DrawerTitle,b as DrawerTrigger};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/organisms/drawer/drawer.tsx"],"names":["cn","inputs","twMerge","clsx","Drawer","shouldScaleBackground","props","jsx","DrawerPrimitive","DrawerTrigger","DrawerPortal","DrawerClose","DrawerOverlay","className","ref","DrawerContent","children","jsxs","DrawerHeader","DrawerFooter","DrawerTitle","DrawerDescription"],"mappings":"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","file":"index.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","/**\n * Drawer is a slide-out panel component that appears from the bottom of the screen.\n * It's built on top of Vaul and provides a smooth, accessible drawer experience.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/organisms-drawer--docs\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Drawer>\n * <DrawerTrigger>\n * <Button>Open Drawer</Button>\n * </DrawerTrigger>\n * <DrawerContent>\n * <DrawerHeader>\n * <DrawerTitle>Title</DrawerTitle>\n * <DrawerDescription>Description</DrawerDescription>\n * </DrawerHeader>\n * <div>Content</div>\n * <DrawerFooter>\n * <Button>Save</Button>\n * </DrawerFooter>\n * </DrawerContent>\n * </Drawer>\n * ```\n */\nimport { cn } from \"@/utils\"\nimport * as React from \"react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root shouldScaleBackground={shouldScaleBackground} {...props} />\n)\nDrawer.displayName = \"Drawer\"\n\n/**\n * The trigger element that opens the drawer.\n * Should be used with the `asChild` prop to wrap your own trigger element.\n */\nconst DrawerTrigger = DrawerPrimitive.Trigger\n\n/**\n * Portal component that renders the drawer content outside the DOM hierarchy.\n * This ensures proper stacking context and accessibility.\n */\nconst DrawerPortal = DrawerPrimitive.Portal\n\n/**\n * Close button component for the drawer.\n * Should be used with the `asChild` prop to wrap your own close button.\n */\nconst DrawerClose = DrawerPrimitive.Close\n\n/**\n * Overlay component that appears behind the drawer.\n * Provides a semi-transparent backdrop and handles click-outside behavior.\n */\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n))\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\n\n/**\n * The main content container for the drawer.\n * Includes the handle bar at the top and manages the slide-up animation.\n */\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n className\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n))\nDrawerContent.displayName = \"DrawerContent\"\n\n/**\n * Header section of the drawer.\n * Typically contains the title and description.\n */\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)} {...props} />\n)\nDrawerHeader.displayName = \"DrawerHeader\"\n\n/**\n * Footer section of the drawer.\n * Typically contains action buttons.\n */\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)} {...props} />\n)\nDrawerFooter.displayName = \"DrawerFooter\"\n\n/**\n * Title component for the drawer.\n * Should be used within DrawerHeader.\n */\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n))\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\n\n/**\n * Description component for the drawer.\n * Should be used within DrawerHeader.\n */\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription\n}\n"]}