@sth87/shadcn-design-system 0.1.0 → 0.1.2

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 (63) hide show
  1. package/dist/cjs/components/Checkbox/Checkbox.cjs +1 -1
  2. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  3. package/dist/cjs/components/Input/Input.cjs +1 -1
  4. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  5. package/dist/cjs/components/Rate/Rate.cjs +1 -1
  6. package/dist/cjs/components/Rate/Rate.cjs.map +1 -1
  7. package/dist/cjs/components/Sheet/Sheet.cjs +1 -1
  8. package/dist/cjs/components/Sheet/Sheet.cjs.map +1 -1
  9. package/dist/cjs/components/Slider/Slider.cjs +1 -1
  10. package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
  11. package/dist/cjs/components/Stepper/Stepper.cjs +1 -1
  12. package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -1
  13. package/dist/cjs/components/Stepper/StepperWrapper.cjs +1 -1
  14. package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +1 -1
  15. package/dist/cjs/components/Switch/Switch.cjs +1 -1
  16. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  17. package/dist/cjs/components/Table/data-table-column-header.cjs +1 -1
  18. package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -1
  19. package/dist/cjs/components/Tabs/classes.cjs +1 -1
  20. package/dist/cjs/components/Tabs/classes.cjs.map +1 -1
  21. package/dist/cjs/components/TimeGridView.cjs +1 -1
  22. package/dist/cjs/components/TimeGridView.cjs.map +1 -1
  23. package/dist/cjs/components/Toast/Toast.cjs +1 -1
  24. package/dist/cjs/components/Toast/Toast.cjs.map +1 -1
  25. package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -1
  26. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  27. package/dist/cjs/components/WheelColumn.cjs +1 -1
  28. package/dist/cjs/components/WheelColumn.cjs.map +1 -1
  29. package/dist/cjs/packages/ui/src/components/calendar.cjs +1 -1
  30. package/dist/cjs/packages/ui/src/components/calendar.cjs.map +1 -1
  31. package/dist/cjs/styles/index.css +1 -1
  32. package/dist/esm/components/Checkbox/Checkbox.js +20 -20
  33. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  34. package/dist/esm/components/Input/Input.js +43 -43
  35. package/dist/esm/components/Input/Input.js.map +1 -1
  36. package/dist/esm/components/Rate/Rate.js +15 -15
  37. package/dist/esm/components/Rate/Rate.js.map +1 -1
  38. package/dist/esm/components/Sheet/Sheet.js +25 -25
  39. package/dist/esm/components/Sheet/Sheet.js.map +1 -1
  40. package/dist/esm/components/Slider/Slider.js +139 -139
  41. package/dist/esm/components/Slider/Slider.js.map +1 -1
  42. package/dist/esm/components/Stepper/Stepper.js +52 -52
  43. package/dist/esm/components/Stepper/Stepper.js.map +1 -1
  44. package/dist/esm/components/Stepper/StepperWrapper.js +25 -25
  45. package/dist/esm/components/Stepper/StepperWrapper.js.map +1 -1
  46. package/dist/esm/components/Switch/Switch.js +19 -19
  47. package/dist/esm/components/Switch/Switch.js.map +1 -1
  48. package/dist/esm/components/Table/data-table-column-header.js +22 -22
  49. package/dist/esm/components/Table/data-table-column-header.js.map +1 -1
  50. package/dist/esm/components/Tabs/classes.js +128 -128
  51. package/dist/esm/components/Tabs/classes.js.map +1 -1
  52. package/dist/esm/components/TimeGridView.js +27 -27
  53. package/dist/esm/components/TimeGridView.js.map +1 -1
  54. package/dist/esm/components/Toast/Toast.js +26 -26
  55. package/dist/esm/components/Toast/Toast.js.map +1 -1
  56. package/dist/esm/components/Tooltip/Tooltip.js +42 -42
  57. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  58. package/dist/esm/components/WheelColumn.js +9 -9
  59. package/dist/esm/components/WheelColumn.js.map +1 -1
  60. package/dist/esm/packages/ui/src/components/calendar.js +73 -73
  61. package/dist/esm/packages/ui/src/components/calendar.js.map +1 -1
  62. package/dist/esm/styles/index.css +1 -1
  63. package/package.json +1 -1
@@ -9,11 +9,11 @@ import { isMobile as se } from "react-device-detect";
9
9
  const j = (f, o) => {
10
10
  const t = o === "top" || o === "bottom";
11
11
  return {
12
- sm: t ? "max-h-[20vh]!" : "sm:max-w-sm",
13
- md: t ? "max-h-[40vh]!" : "sm:max-w-md",
14
- lg: t ? "max-h-[60vh]!" : "sm:max-w-lg",
15
- xl: t ? "max-h-[80vh]!" : "sm:max-w-xl",
16
- full: t ? "max-h-full!" : "sm:max-w-full"
12
+ sm: t ? "ds:max-h-[20vh]!" : "ds:max-w-sm",
13
+ md: t ? "ds:max-h-[40vh]!" : "ds:max-w-md",
14
+ lg: t ? "ds:max-h-[60vh]!" : "ds:max-w-lg",
15
+ xl: t ? "ds:max-h-[80vh]!" : "ds:max-w-xl",
16
+ full: t ? "ds:max-h-full!" : "ds:max-w-full"
17
17
  }[f];
18
18
  }, te = I.forwardRef((f, o) => {
19
19
  const {
@@ -21,16 +21,16 @@ const j = (f, o) => {
21
21
  onOpenChange: p,
22
22
  title: a,
23
23
  description: r,
24
- children: m,
25
- trigger: c,
26
- footer: n,
24
+ children: c,
25
+ trigger: i,
26
+ footer: d,
27
27
  side: g = "right",
28
28
  closeOnEsc: F = !0,
29
29
  closeOnOutside: R = !0,
30
30
  showCloseButton: k = !0,
31
31
  autoDrawerOnMobile: E = !0,
32
32
  size: v = "md",
33
- stickyHeader: i = !1,
33
+ stickyHeader: m = !1,
34
34
  stickyFooter: h = !1,
35
35
  autoHeight: _ = !0,
36
36
  animation: x,
@@ -53,7 +53,7 @@ const j = (f, o) => {
53
53
  ), z = w(() => a || r ? /* @__PURE__ */ l(
54
54
  K,
55
55
  {
56
- className: s("ds:py-4", { "ds:border-b": i }, O),
56
+ className: s("ds:py-4", { "ds:border-b": m }, O),
57
57
  children: [
58
58
  a && /* @__PURE__ */ e(V, { className: N, children: a }),
59
59
  r && /* @__PURE__ */ e($, { className: C, children: r })
@@ -65,28 +65,28 @@ const j = (f, o) => {
65
65
  O,
66
66
  N,
67
67
  C,
68
- i
69
- ]), H = w(() => n ? /* @__PURE__ */ e(
68
+ m
69
+ ]), H = w(() => d ? /* @__PURE__ */ e(
70
70
  q,
71
71
  {
72
72
  className: s("ds:py-4", { "ds:border-t": h }, M),
73
- children: n
73
+ children: d
74
74
  }
75
- ) : null, [n, M, h]);
75
+ ) : null, [d, M, h]);
76
76
  if (se && E) {
77
- const d = s(
77
+ const n = s(
78
78
  "ds:flex ds:flex-col",
79
79
  b.className,
80
80
  u
81
81
  );
82
82
  return /* @__PURE__ */ l(P, { open: t, onOpenChange: p, direction: "bottom", children: [
83
- c && /* @__PURE__ */ e(Q, { asChild: !0, children: c }),
83
+ i && /* @__PURE__ */ e(Q, { asChild: !0, children: i }),
84
84
  /* @__PURE__ */ l(
85
85
  U,
86
86
  {
87
87
  ref: o,
88
88
  className: s(
89
- d,
89
+ n,
90
90
  _ ? "" : j(v, "bottom")
91
91
  ),
92
92
  children: [
@@ -94,23 +94,23 @@ const j = (f, o) => {
94
94
  a && /* @__PURE__ */ e(X, { className: N, children: a }),
95
95
  r && /* @__PURE__ */ e(Y, { className: C, children: r })
96
96
  ] }),
97
- /* @__PURE__ */ e(T, { className: s("ds:flex ds:flex-col ds:overflow-hidden"), children: m && /* @__PURE__ */ e("div", { className: s("ds:px-4 ds:py-2", y), children: m }) }),
98
- n && /* @__PURE__ */ e(Z, { className: S, children: n })
97
+ /* @__PURE__ */ e(T, { className: s("ds:flex ds:flex-col ds:overflow-hidden"), children: c && /* @__PURE__ */ e("div", { className: s("ds:px-4 ds:py-2", y), children: c }) }),
98
+ d && /* @__PURE__ */ e(Z, { className: S, children: d })
99
99
  ]
100
100
  }
101
101
  )
102
102
  ] });
103
103
  }
104
104
  return /* @__PURE__ */ l(G, { open: t, onOpenChange: p, children: [
105
- c && /* @__PURE__ */ e(J, { asChild: !0, children: c }),
105
+ i && /* @__PURE__ */ e(J, { asChild: !0, children: i }),
106
106
  /* @__PURE__ */ l(
107
107
  L,
108
108
  {
109
109
  ref: o,
110
110
  side: g,
111
111
  className: s(u, B),
112
- onEscapeKeyDown: (d) => !F && d.preventDefault(),
113
- onInteractOutside: (d) => !R && d.preventDefault(),
112
+ onEscapeKeyDown: (n) => !F && n.preventDefault(),
113
+ onInteractOutside: (n) => !R && n.preventDefault(),
114
114
  overlayClassName: s(A),
115
115
  children: [
116
116
  !k && /* @__PURE__ */ e("style", { children: `
@@ -118,10 +118,10 @@ const j = (f, o) => {
118
118
  display: none;
119
119
  }
120
120
  ` }),
121
- i && z,
121
+ m && z,
122
122
  /* @__PURE__ */ l(T, { className: "ds:flex ds:max-h-full ds:flex-col ds:overflow-hidden", children: [
123
- !i && z,
124
- m && /* @__PURE__ */ e("div", { className: s("ds:px-6 ds:py-4", y), children: m }),
123
+ !m && z,
124
+ c && /* @__PURE__ */ e("div", { className: s("ds:px-6 ds:py-4", y), children: c }),
125
125
  !h && H
126
126
  ] }),
127
127
  h && H
@@ -1 +1 @@
1
- {"version":3,"file":"Sheet.js","sources":["../../../../src/components/Sheet/Sheet.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport {\n Sheet as SSheet,\n SheetContent as SSheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n SheetClose,\n} from \"@dsui/ui/components/sheet\";\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@dsui/ui/components/drawer\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { ScrollArea } from \"@dsui/ui/components/scroll-area\";\nimport type { BasicAnimation } from \"@/types/variables\";\nimport { animationClass } from \"@/utils/animations\";\nimport { isMobile } from \"react-device-detect\";\n\nexport type SheetSide = \"top\" | \"right\" | \"bottom\" | \"left\";\nexport type SheetSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport interface SheetProps {\n // Core props\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n // Content\n title?: React.ReactNode;\n description?: React.ReactNode;\n children?: React.ReactNode;\n trigger?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Behavior\n side?: SheetSide;\n closeOnEsc?: boolean;\n closeOnOutside?: boolean;\n showCloseButton?: boolean;\n autoDrawerOnMobile?: boolean;\n\n // Layout\n size?: SheetSize;\n stickyHeader?: boolean;\n stickyFooter?: boolean;\n autoHeight?: boolean;\n\n // Animation\n animation?: BasicAnimation;\n\n // Styling\n className?: string;\n contentClassName?: string;\n headerClassName?: string;\n titleClassName?: string;\n descriptionClassName?: string;\n footerClassName?: string;\n overlayClassName?: string;\n}\n\nconst getSizeClasses = (size: SheetSize, side: SheetSide): string => {\n const isVertical = side === \"top\" || side === \"bottom\";\n const sizeMap: Record<SheetSize, string> = {\n sm: isVertical ? \"max-h-[20vh]!\" : \"sm:max-w-sm\",\n md: isVertical ? \"max-h-[40vh]!\" : \"sm:max-w-md\",\n lg: isVertical ? \"max-h-[60vh]!\" : \"sm:max-w-lg\",\n xl: isVertical ? \"max-h-[80vh]!\" : \"sm:max-w-xl\",\n full: isVertical ? \"max-h-full!\" : \"sm:max-w-full\",\n };\n return sizeMap[size];\n};\n\nconst Sheet = React.forwardRef<HTMLDivElement, SheetProps>((props, ref) => {\n const {\n open,\n onOpenChange,\n title,\n description,\n children,\n trigger,\n footer,\n side = \"right\",\n closeOnEsc = true,\n closeOnOutside = true,\n showCloseButton = true,\n autoDrawerOnMobile = true,\n size = \"md\",\n stickyHeader = false,\n stickyFooter = false,\n autoHeight = true,\n animation,\n className,\n contentClassName,\n headerClassName,\n titleClassName,\n descriptionClassName,\n footerClassName,\n overlayClassName,\n } = props;\n\n const animationResult = useMemo(() => {\n return animation ? animationClass(animation) : { className: \"\" };\n }, [animation]);\n\n const contentClasses = cn(\n // Remove default padding and gap to allow custom header/footer\n \"ds:!p-0 ds:!gap-0 ds:flex ds:flex-col\",\n getSizeClasses(size, side),\n animationResult.className,\n className\n );\n\n const headerClasses = cn(\"ds:px-6 ds:pt-6 ds:text-left\", headerClassName);\n\n const footerClasses = cn(\n \"ds:px-6 ds:pb-6 ds:flex-col-reverse ds:sm:flex-row ds:sm:justify-end ds:sm:space-x-2\",\n footerClassName\n );\n\n const headerComponents = useMemo(() => {\n return title || description ? (\n <SheetHeader\n className={cn(\"ds:py-4\", { \"ds:border-b\": stickyHeader }, headerClasses)}\n >\n {title && <SheetTitle className={titleClassName}>{title}</SheetTitle>}\n {description && (\n <SheetDescription className={descriptionClassName}>\n {description}\n </SheetDescription>\n )}\n </SheetHeader>\n ) : null;\n }, [\n title,\n description,\n headerClasses,\n titleClassName,\n descriptionClassName,\n stickyHeader,\n ]);\n\n const footerComponents = useMemo(() => {\n return footer ? (\n <SheetFooter\n className={cn(\"ds:py-4\", { \"ds:border-t\": stickyFooter }, footerClasses)}\n >\n {footer}\n </SheetFooter>\n ) : null;\n }, [footer, footerClasses, stickyFooter]);\n\n // Mobile: use drawer with bottom direction if enabled\n if (isMobile && autoDrawerOnMobile) {\n const drawerContentClasses = cn(\n \"ds:flex ds:flex-col\",\n animationResult.className,\n className\n );\n\n return (\n <Drawer open={open} onOpenChange={onOpenChange} direction=\"bottom\">\n {trigger && <DrawerTrigger asChild>{trigger}</DrawerTrigger>}\n <DrawerContent\n ref={ref}\n className={cn(\n drawerContentClasses,\n autoHeight ? \"\" : getSizeClasses(size, \"bottom\")\n )}\n >\n {(title || description) && (\n <DrawerHeader className={headerClassName}>\n {title && (\n <DrawerTitle className={titleClassName}>{title}</DrawerTitle>\n )}\n {description && (\n <DrawerDescription className={descriptionClassName}>\n {description}\n </DrawerDescription>\n )}\n </DrawerHeader>\n )}\n\n <ScrollArea className={cn(\"ds:flex ds:flex-col ds:overflow-hidden\")}>\n {children && (\n <div className={cn(\"ds:px-4 ds:py-2\", contentClassName)}>\n {children}\n </div>\n )}\n </ScrollArea>\n\n {footer && (\n <DrawerFooter className={footerClassName}>{footer}</DrawerFooter>\n )}\n </DrawerContent>\n </Drawer>\n );\n }\n\n // Desktop: use sheet with original behavior\n return (\n <SSheet open={open} onOpenChange={onOpenChange}>\n {trigger && <SheetTrigger asChild>{trigger}</SheetTrigger>}\n <SSheetContent\n ref={ref}\n side={side}\n className={cn(className, contentClasses)}\n onEscapeKeyDown={(e) => !closeOnEsc && e.preventDefault()}\n onInteractOutside={(e) => !closeOnOutside && e.preventDefault()}\n overlayClassName={cn(overlayClassName)}\n >\n {/* Hide default close button if showCloseButton is false */}\n {!showCloseButton && (\n <style>{`\n [data-slot=\"sheet-content\"] > [data-slot=\"sheet-close\"] {\n display: none;\n }\n `}</style>\n )}\n\n {stickyHeader && headerComponents}\n\n <ScrollArea className=\"ds:flex ds:max-h-full ds:flex-col ds:overflow-hidden\">\n {!stickyHeader && headerComponents}\n {children && (\n <div className={cn(\"ds:px-6 ds:py-4\", contentClassName)}>{children}</div>\n )}\n {!stickyFooter && footerComponents}\n </ScrollArea>\n\n {stickyFooter && footerComponents}\n </SSheetContent>\n </SSheet>\n );\n});\n\nSheet.displayName = \"Sheet\";\n\nexport { SheetClose, DrawerClose };\nexport default Sheet;\n"],"names":["getSizeClasses","size","side","isVertical","Sheet","React","props","ref","open","onOpenChange","title","description","children","trigger","footer","closeOnEsc","closeOnOutside","showCloseButton","autoDrawerOnMobile","stickyHeader","stickyFooter","autoHeight","animation","className","contentClassName","headerClassName","titleClassName","descriptionClassName","footerClassName","overlayClassName","animationResult","useMemo","animationClass","contentClasses","cn","headerClasses","footerClasses","headerComponents","jsxs","SheetHeader","jsx","SheetTitle","SheetDescription","footerComponents","SheetFooter","isMobile","drawerContentClasses","Drawer","DrawerTrigger","DrawerContent","DrawerHeader","DrawerTitle","DrawerDescription","ScrollArea","DrawerFooter","SSheet","SheetTrigger","SSheetContent","e"],"mappings":"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"}
1
+ {"version":3,"file":"Sheet.js","sources":["../../../../src/components/Sheet/Sheet.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport {\n Sheet as SSheet,\n SheetContent as SSheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n SheetClose,\n} from \"@dsui/ui/components/sheet\";\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@dsui/ui/components/drawer\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { ScrollArea } from \"@dsui/ui/components/scroll-area\";\nimport type { BasicAnimation } from \"@/types/variables\";\nimport { animationClass } from \"@/utils/animations\";\nimport { isMobile } from \"react-device-detect\";\n\nexport type SheetSide = \"top\" | \"right\" | \"bottom\" | \"left\";\nexport type SheetSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport interface SheetProps {\n // Core props\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n // Content\n title?: React.ReactNode;\n description?: React.ReactNode;\n children?: React.ReactNode;\n trigger?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Behavior\n side?: SheetSide;\n closeOnEsc?: boolean;\n closeOnOutside?: boolean;\n showCloseButton?: boolean;\n autoDrawerOnMobile?: boolean;\n\n // Layout\n size?: SheetSize;\n stickyHeader?: boolean;\n stickyFooter?: boolean;\n autoHeight?: boolean;\n\n // Animation\n animation?: BasicAnimation;\n\n // Styling\n className?: string;\n contentClassName?: string;\n headerClassName?: string;\n titleClassName?: string;\n descriptionClassName?: string;\n footerClassName?: string;\n overlayClassName?: string;\n}\n\nconst getSizeClasses = (size: SheetSize, side: SheetSide): string => {\n const isVertical = side === \"top\" || side === \"bottom\";\n const sizeMap: Record<SheetSize, string> = {\n sm: isVertical ? \"ds:max-h-[20vh]!\" : \"ds:max-w-sm\",\n md: isVertical ? \"ds:max-h-[40vh]!\" : \"ds:max-w-md\",\n lg: isVertical ? \"ds:max-h-[60vh]!\" : \"ds:max-w-lg\",\n xl: isVertical ? \"ds:max-h-[80vh]!\" : \"ds:max-w-xl\",\n full: isVertical ? \"ds:max-h-full!\" : \"ds:max-w-full\",\n };\n return sizeMap[size];\n};\n\nconst Sheet = React.forwardRef<HTMLDivElement, SheetProps>((props, ref) => {\n const {\n open,\n onOpenChange,\n title,\n description,\n children,\n trigger,\n footer,\n side = \"right\",\n closeOnEsc = true,\n closeOnOutside = true,\n showCloseButton = true,\n autoDrawerOnMobile = true,\n size = \"md\",\n stickyHeader = false,\n stickyFooter = false,\n autoHeight = true,\n animation,\n className,\n contentClassName,\n headerClassName,\n titleClassName,\n descriptionClassName,\n footerClassName,\n overlayClassName,\n } = props;\n\n const animationResult = useMemo(() => {\n return animation ? animationClass(animation) : { className: \"\" };\n }, [animation]);\n\n const contentClasses = cn(\n // Remove default padding and gap to allow custom header/footer\n \"ds:!p-0 ds:!gap-0 ds:flex ds:flex-col\",\n getSizeClasses(size, side),\n animationResult.className,\n className\n );\n\n const headerClasses = cn(\"ds:px-6 ds:pt-6 ds:text-left\", headerClassName);\n\n const footerClasses = cn(\n \"ds:px-6 ds:pb-6 ds:flex-col-reverse ds:sm:flex-row ds:sm:justify-end ds:sm:space-x-2\",\n footerClassName\n );\n\n const headerComponents = useMemo(() => {\n return title || description ? (\n <SheetHeader\n className={cn(\"ds:py-4\", { \"ds:border-b\": stickyHeader }, headerClasses)}\n >\n {title && <SheetTitle className={titleClassName}>{title}</SheetTitle>}\n {description && (\n <SheetDescription className={descriptionClassName}>\n {description}\n </SheetDescription>\n )}\n </SheetHeader>\n ) : null;\n }, [\n title,\n description,\n headerClasses,\n titleClassName,\n descriptionClassName,\n stickyHeader,\n ]);\n\n const footerComponents = useMemo(() => {\n return footer ? (\n <SheetFooter\n className={cn(\"ds:py-4\", { \"ds:border-t\": stickyFooter }, footerClasses)}\n >\n {footer}\n </SheetFooter>\n ) : null;\n }, [footer, footerClasses, stickyFooter]);\n\n // Mobile: use drawer with bottom direction if enabled\n if (isMobile && autoDrawerOnMobile) {\n const drawerContentClasses = cn(\n \"ds:flex ds:flex-col\",\n animationResult.className,\n className\n );\n\n return (\n <Drawer open={open} onOpenChange={onOpenChange} direction=\"bottom\">\n {trigger && <DrawerTrigger asChild>{trigger}</DrawerTrigger>}\n <DrawerContent\n ref={ref}\n className={cn(\n drawerContentClasses,\n autoHeight ? \"\" : getSizeClasses(size, \"bottom\")\n )}\n >\n {(title || description) && (\n <DrawerHeader className={headerClassName}>\n {title && (\n <DrawerTitle className={titleClassName}>{title}</DrawerTitle>\n )}\n {description && (\n <DrawerDescription className={descriptionClassName}>\n {description}\n </DrawerDescription>\n )}\n </DrawerHeader>\n )}\n\n <ScrollArea className={cn(\"ds:flex ds:flex-col ds:overflow-hidden\")}>\n {children && (\n <div className={cn(\"ds:px-4 ds:py-2\", contentClassName)}>\n {children}\n </div>\n )}\n </ScrollArea>\n\n {footer && (\n <DrawerFooter className={footerClassName}>{footer}</DrawerFooter>\n )}\n </DrawerContent>\n </Drawer>\n );\n }\n\n // Desktop: use sheet with original behavior\n return (\n <SSheet open={open} onOpenChange={onOpenChange}>\n {trigger && <SheetTrigger asChild>{trigger}</SheetTrigger>}\n <SSheetContent\n ref={ref}\n side={side}\n className={cn(className, contentClasses)}\n onEscapeKeyDown={(e) => !closeOnEsc && e.preventDefault()}\n onInteractOutside={(e) => !closeOnOutside && e.preventDefault()}\n overlayClassName={cn(overlayClassName)}\n >\n {/* Hide default close button if showCloseButton is false */}\n {!showCloseButton && (\n <style>{`\n [data-slot=\"sheet-content\"] > [data-slot=\"sheet-close\"] {\n display: none;\n }\n `}</style>\n )}\n\n {stickyHeader && headerComponents}\n\n <ScrollArea className=\"ds:flex ds:max-h-full ds:flex-col ds:overflow-hidden\">\n {!stickyHeader && headerComponents}\n {children && (\n <div className={cn(\"ds:px-6 ds:py-4\", contentClassName)}>{children}</div>\n )}\n {!stickyFooter && footerComponents}\n </ScrollArea>\n\n {stickyFooter && footerComponents}\n </SSheetContent>\n </SSheet>\n );\n});\n\nSheet.displayName = \"Sheet\";\n\nexport { SheetClose, DrawerClose };\nexport default Sheet;\n"],"names":["getSizeClasses","size","side","isVertical","Sheet","React","props","ref","open","onOpenChange","title","description","children","trigger","footer","closeOnEsc","closeOnOutside","showCloseButton","autoDrawerOnMobile","stickyHeader","stickyFooter","autoHeight","animation","className","contentClassName","headerClassName","titleClassName","descriptionClassName","footerClassName","overlayClassName","animationResult","useMemo","animationClass","contentClasses","cn","headerClasses","footerClasses","headerComponents","jsxs","SheetHeader","jsx","SheetTitle","SheetDescription","footerComponents","SheetFooter","isMobile","drawerContentClasses","Drawer","DrawerTrigger","DrawerContent","DrawerHeader","DrawerTitle","DrawerDescription","ScrollArea","DrawerFooter","SSheet","SheetTrigger","SSheetContent","e"],"mappings":"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"}