@almach/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/components/alert.d.ts +33 -0
  3. package/dist/components/alert.d.ts.map +1 -0
  4. package/dist/components/alert.js +54 -0
  5. package/dist/components/alert.js.map +1 -0
  6. package/dist/components/avatar.d.ts +15 -0
  7. package/dist/components/avatar.d.ts.map +1 -0
  8. package/dist/components/avatar.js +33 -0
  9. package/dist/components/avatar.js.map +1 -0
  10. package/dist/components/badge.d.ts +10 -0
  11. package/dist/components/badge.d.ts.map +1 -0
  12. package/dist/components/badge.js +24 -0
  13. package/dist/components/badge.js.map +1 -0
  14. package/dist/components/button.d.ts +15 -0
  15. package/dist/components/button.d.ts.map +1 -0
  16. package/dist/components/button.js +47 -0
  17. package/dist/components/button.js.map +1 -0
  18. package/dist/components/calendar.d.ts +4 -0
  19. package/dist/components/calendar.d.ts.map +1 -0
  20. package/dist/components/calendar.js +73 -0
  21. package/dist/components/calendar.js.map +1 -0
  22. package/dist/components/card.d.ts +30 -0
  23. package/dist/components/card.d.ts.map +1 -0
  24. package/dist/components/card.js +54 -0
  25. package/dist/components/card.js.map +1 -0
  26. package/dist/components/carousel.d.ts +21 -0
  27. package/dist/components/carousel.d.ts.map +1 -0
  28. package/dist/components/carousel.js +149 -0
  29. package/dist/components/carousel.js.map +1 -0
  30. package/dist/components/checkbox.d.ts +7 -0
  31. package/dist/components/checkbox.d.ts.map +1 -0
  32. package/dist/components/checkbox.js +9 -0
  33. package/dist/components/checkbox.js.map +1 -0
  34. package/dist/components/collapsible.d.ts +7 -0
  35. package/dist/components/collapsible.d.ts.map +1 -0
  36. package/dist/components/collapsible.js +19 -0
  37. package/dist/components/collapsible.js.map +1 -0
  38. package/dist/components/combobox.d.ts +11 -0
  39. package/dist/components/combobox.d.ts.map +1 -0
  40. package/dist/components/combobox.js +10 -0
  41. package/dist/components/combobox.js.map +1 -0
  42. package/dist/components/command.d.ts +85 -0
  43. package/dist/components/command.d.ts.map +1 -0
  44. package/dist/components/command.js +46 -0
  45. package/dist/components/command.js.map +1 -0
  46. package/dist/components/dialog.d.ts +36 -0
  47. package/dist/components/dialog.d.ts.map +1 -0
  48. package/dist/components/dialog.js +37 -0
  49. package/dist/components/dialog.js.map +1 -0
  50. package/dist/components/drawer.d.ts +34 -0
  51. package/dist/components/drawer.d.ts.map +1 -0
  52. package/dist/components/drawer.js +36 -0
  53. package/dist/components/drawer.js.map +1 -0
  54. package/dist/components/dropdown-menu.d.ts +30 -0
  55. package/dist/components/dropdown-menu.d.ts.map +1 -0
  56. package/dist/components/dropdown-menu.js +46 -0
  57. package/dist/components/dropdown-menu.js.map +1 -0
  58. package/dist/components/group.d.ts +26 -0
  59. package/dist/components/group.d.ts.map +1 -0
  60. package/dist/components/group.js +13 -0
  61. package/dist/components/group.js.map +1 -0
  62. package/dist/components/input.d.ts +34 -0
  63. package/dist/components/input.d.ts.map +1 -0
  64. package/dist/components/input.js +156 -0
  65. package/dist/components/input.js.map +1 -0
  66. package/dist/components/label.d.ts +7 -0
  67. package/dist/components/label.d.ts.map +1 -0
  68. package/dist/components/label.js +9 -0
  69. package/dist/components/label.js.map +1 -0
  70. package/dist/components/layered-card.d.ts +13 -0
  71. package/dist/components/layered-card.d.ts.map +1 -0
  72. package/dist/components/layered-card.js +13 -0
  73. package/dist/components/layered-card.js.map +1 -0
  74. package/dist/components/modal.d.ts +36 -0
  75. package/dist/components/modal.d.ts.map +1 -0
  76. package/dist/components/modal.js +72 -0
  77. package/dist/components/modal.js.map +1 -0
  78. package/dist/components/progress.d.ts +5 -0
  79. package/dist/components/progress.d.ts.map +1 -0
  80. package/dist/components/progress.js +11 -0
  81. package/dist/components/progress.js.map +1 -0
  82. package/dist/components/radio.d.ts +11 -0
  83. package/dist/components/radio.d.ts.map +1 -0
  84. package/dist/components/radio.js +17 -0
  85. package/dist/components/radio.js.map +1 -0
  86. package/dist/components/select.d.ts +41 -0
  87. package/dist/components/select.d.ts.map +1 -0
  88. package/dist/components/select.js +49 -0
  89. package/dist/components/select.js.map +1 -0
  90. package/dist/components/separator.d.ts +5 -0
  91. package/dist/components/separator.d.ts.map +1 -0
  92. package/dist/components/separator.js +11 -0
  93. package/dist/components/separator.js.map +1 -0
  94. package/dist/components/skeleton.d.ts +6 -0
  95. package/dist/components/skeleton.d.ts.map +1 -0
  96. package/dist/components/skeleton.js +7 -0
  97. package/dist/components/skeleton.js.map +1 -0
  98. package/dist/components/switch.d.ts +11 -0
  99. package/dist/components/switch.d.ts.map +1 -0
  100. package/dist/components/switch.js +44 -0
  101. package/dist/components/switch.js.map +1 -0
  102. package/dist/components/table.d.ts +36 -0
  103. package/dist/components/table.d.ts.map +1 -0
  104. package/dist/components/table.js +77 -0
  105. package/dist/components/table.js.map +1 -0
  106. package/dist/components/tabs.d.ts +18 -0
  107. package/dist/components/tabs.d.ts.map +1 -0
  108. package/dist/components/tabs.js +63 -0
  109. package/dist/components/tabs.js.map +1 -0
  110. package/dist/components/tag-input.d.ts +14 -0
  111. package/dist/components/tag-input.d.ts.map +1 -0
  112. package/dist/components/tag-input.js +53 -0
  113. package/dist/components/tag-input.js.map +1 -0
  114. package/dist/components/textarea.d.ts +7 -0
  115. package/dist/components/textarea.d.ts.map +1 -0
  116. package/dist/components/textarea.js +9 -0
  117. package/dist/components/textarea.js.map +1 -0
  118. package/dist/components/toast.d.ts +19 -0
  119. package/dist/components/toast.d.ts.map +1 -0
  120. package/dist/components/toast.js +51 -0
  121. package/dist/components/toast.js.map +1 -0
  122. package/dist/components/toaster.d.ts +2 -0
  123. package/dist/components/toaster.d.ts.map +1 -0
  124. package/dist/components/toaster.js +11 -0
  125. package/dist/components/toaster.js.map +1 -0
  126. package/dist/components/tooltip.d.ts +9 -0
  127. package/dist/components/tooltip.d.ts.map +1 -0
  128. package/dist/components/tooltip.js +17 -0
  129. package/dist/components/tooltip.js.map +1 -0
  130. package/dist/hooks/use-copy-to-clipboard.d.ts +8 -0
  131. package/dist/hooks/use-copy-to-clipboard.d.ts.map +1 -0
  132. package/dist/hooks/use-copy-to-clipboard.js +23 -0
  133. package/dist/hooks/use-copy-to-clipboard.js.map +1 -0
  134. package/dist/hooks/use-media-query.d.ts +7 -0
  135. package/dist/hooks/use-media-query.d.ts.map +1 -0
  136. package/dist/hooks/use-media-query.js +21 -0
  137. package/dist/hooks/use-media-query.js.map +1 -0
  138. package/dist/hooks/use-toast.d.ts +45 -0
  139. package/dist/hooks/use-toast.d.ts.map +1 -0
  140. package/dist/hooks/use-toast.js +102 -0
  141. package/dist/hooks/use-toast.js.map +1 -0
  142. package/dist/index.d.ts +46 -0
  143. package/dist/index.d.ts.map +1 -0
  144. package/dist/index.js +36 -0
  145. package/dist/index.js.map +1 -0
  146. package/package.json +74 -0
  147. package/src/styles/globals.css +241 -0
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "@almach/utils";
3
+ const alertStyles = {
4
+ default: {},
5
+ destructive: {
6
+ backgroundColor: "hsl(var(--destructive) / 0.05)",
7
+ borderColor: "hsl(var(--destructive) / 0.3)",
8
+ color: "hsl(var(--destructive))",
9
+ },
10
+ success: {
11
+ backgroundColor: "hsl(var(--success) / 0.05)",
12
+ borderColor: "hsl(var(--success) / 0.3)",
13
+ color: "hsl(var(--success))",
14
+ },
15
+ warning: {
16
+ backgroundColor: "hsl(var(--warning) / 0.05)",
17
+ borderColor: "hsl(var(--warning) / 0.3)",
18
+ color: "hsl(var(--warning))",
19
+ },
20
+ };
21
+ // Root element
22
+ function AlertRoot({ className, variant = "default", style, ...props }) {
23
+ return (_jsx("div", { role: "alert", className: cn("relative w-full rounded-xl border p-4 flex gap-3", className), style: { ...alertStyles[variant], ...style }, ...props }));
24
+ }
25
+ AlertRoot.displayName = "Alert";
26
+ // Icon slot
27
+ function AlertIcon({ className, ...props }) {
28
+ return (_jsx("div", { className: cn("mt-0.5 shrink-0 [&_svg]:size-4", className), ...props }));
29
+ }
30
+ AlertIcon.displayName = "Alert.Icon";
31
+ // Text column
32
+ function AlertBody({ className, ...props }) {
33
+ return (_jsx("div", { className: cn("flex min-w-0 flex-1 flex-col gap-1", className), ...props }));
34
+ }
35
+ AlertBody.displayName = "Alert.Body";
36
+ // Title
37
+ function AlertTitle({ className, ...props }) {
38
+ return (_jsx("h5", { className: cn("text-sm font-semibold leading-none tracking-tight", className), ...props }));
39
+ }
40
+ AlertTitle.displayName = "Alert.Title";
41
+ // Description
42
+ function AlertDescription({ className, ...props }) {
43
+ return (_jsx("div", { className: cn("text-sm opacity-90 [&_p]:leading-relaxed mt-0.5", className), ...props }));
44
+ }
45
+ AlertDescription.displayName = "Alert.Description";
46
+ // Compound object
47
+ const Alert = Object.assign(AlertRoot, {
48
+ Icon: AlertIcon,
49
+ Body: AlertBody,
50
+ Title: AlertTitle,
51
+ Description: AlertDescription,
52
+ });
53
+ export { Alert, };
54
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/components/alert.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAInC,MAAM,WAAW,GAA8C;IAC9D,OAAO,EAAE,EAAE;IACX,WAAW,EAAE;QACZ,eAAe,EAAE,gCAAgC;QACjD,WAAW,EAAE,+BAA+B;QAC5C,KAAK,EAAE,yBAAyB;KAChC;IACD,OAAO,EAAE;QACR,eAAe,EAAE,4BAA4B;QAC7C,WAAW,EAAE,2BAA2B;QACxC,KAAK,EAAE,qBAAqB;KAC5B;IACD,OAAO,EAAE;QACR,eAAe,EAAE,4BAA4B;QAC7C,WAAW,EAAE,2BAA2B;QACxC,KAAK,EAAE,qBAAqB;KAC5B;CACD,CAAC;AAMF,eAAe;AACf,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAkB;IACrF,OAAO,CACN,cACC,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,EAAE,CACZ,kDAAkD,EAClD,SAAS,CACT,EACD,KAAK,EAAE,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,KACxC,KAAK,GACR,CACF,CAAC;AACH,CAAC;AACD,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC;AAEhC,YAAY;AACZ,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC;IAC/E,OAAO,CACN,cACC,SAAS,EAAE,EAAE,CAAC,gCAAgC,EAAE,SAAS,CAAC,KACtD,KAAK,GACR,CACF,CAAC;AACH,CAAC;AACD,SAAS,CAAC,WAAW,GAAG,YAAY,CAAC;AAErC,cAAc;AACd,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC;IAC/E,OAAO,CACN,cACC,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAC1D,KAAK,GACR,CACF,CAAC;AACH,CAAC;AACD,SAAS,CAAC,WAAW,GAAG,YAAY,CAAC;AAErC,QAAQ;AACR,SAAS,UAAU,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACkC;IAC1C,OAAO,CACN,aACC,SAAS,EAAE,EAAE,CAAC,mDAAmD,EAAE,SAAS,CAAC,KACzE,KAAK,GACR,CACF,CAAC;AACH,CAAC;AACD,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC;AAEvC,cAAc;AACd,SAAS,gBAAgB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACoC;IAC5C,OAAO,CACN,cACC,SAAS,EAAE,EAAE,CAAC,iDAAiD,EAAE,SAAS,CAAC,KACvE,KAAK,GACR,CACF,CAAC;AACH,CAAC;AACD,gBAAgB,CAAC,WAAW,GAAG,mBAAmB,CAAC;AAEnD,kBAAkB;AAClB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;IACtC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,gBAAgB;CAC7B,CAAC,CAAC;AAEH,OAAO,EACN,KAAK,GAGL,CAAC"}
@@ -0,0 +1,15 @@
1
+ import * as AvatarPrimitive from "@radix-ui/react-avatar";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ import * as React from "react";
4
+ declare const avatarVariants: (props?: ({
5
+ size?: "default" | "sm" | "lg" | "xl" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ interface AvatarProps extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, VariantProps<typeof avatarVariants> {
8
+ }
9
+ declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLSpanElement>> & {
10
+ Image: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
11
+ Fallback: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
12
+ };
13
+ export { Avatar, avatarVariants };
14
+ export type { AvatarProps };
15
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../src/components/avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,cAAc;;8EAenB,CAAC;AAEF,UAAU,WACT,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,EACnE,YAAY,CAAC,OAAO,cAAc,CAAC;CAAI;AA6CxC,QAAA,MAAM,MAAM;;;CAGV,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as AvatarPrimitive from "@radix-ui/react-avatar";
3
+ import { cva } from "class-variance-authority";
4
+ import * as React from "react";
5
+ import { cn } from "@almach/utils";
6
+ const avatarVariants = cva("relative flex shrink-0 overflow-hidden rounded-full", {
7
+ variants: {
8
+ size: {
9
+ sm: "h-6 w-6 text-[10px]",
10
+ default: "h-9 w-9 text-sm",
11
+ lg: "h-12 w-12 text-base",
12
+ xl: "h-16 w-16 text-xl",
13
+ },
14
+ },
15
+ defaultVariants: {
16
+ size: "default",
17
+ },
18
+ });
19
+ const AvatarRoot = React.forwardRef(({ className, size, ...props }, ref) => (_jsx(AvatarPrimitive.Root, { ref: ref, className: cn(avatarVariants({ size }), className), ...props })));
20
+ AvatarRoot.displayName = AvatarPrimitive.Root.displayName;
21
+ const AvatarImage = React.forwardRef(({ className, ...props }, ref) => (_jsx(AvatarPrimitive.Image, { ref: ref, className: cn("aspect-square h-full w-full object-cover", className), ...props })));
22
+ AvatarImage.displayName = AvatarPrimitive.Image.displayName;
23
+ const AvatarFallback = React.forwardRef(({ className, ...props }, ref) => (_jsx(AvatarPrimitive.Fallback, { ref: ref, className: cn("flex h-full w-full items-center justify-center rounded-full font-medium select-none", className), style: {
24
+ backgroundColor: "hsl(var(--muted))",
25
+ color: "hsl(var(--muted-foreground))",
26
+ }, ...props })));
27
+ AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
28
+ const Avatar = Object.assign(AvatarRoot, {
29
+ Image: AvatarImage,
30
+ Fallback: AvatarFallback,
31
+ });
32
+ export { Avatar, avatarVariants };
33
+ //# sourceMappingURL=avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../src/components/avatar.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,MAAM,cAAc,GAAG,GAAG,CACzB,qDAAqD,EACrD;IACC,QAAQ,EAAE;QACT,IAAI,EAAE;YACL,EAAE,EAAE,qBAAqB;YACzB,OAAO,EAAE,iBAAiB;YAC1B,EAAE,EAAE,qBAAqB;YACzB,EAAE,EAAE,mBAAmB;SACvB;KACD;IACD,eAAe,EAAE;QAChB,IAAI,EAAE,SAAS;KACf;CACD,CACD,CAAC;AAMF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACzC,KAAC,eAAe,CAAC,IAAI,IACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,KAC9C,KAAK,GACR,CACF,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;AAE1D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACnC,KAAC,eAAe,CAAC,KAAK,IACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,0CAA0C,EAAE,SAAS,CAAC,KAChE,KAAK,GACR,CACF,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC;AAE5D,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAGrC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACnC,KAAC,eAAe,CAAC,QAAQ,IACxB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,qFAAqF,EACrF,SAAS,CACT,EACD,KAAK,EAAE;QACN,eAAe,EAAE,mBAAmB;QACpC,KAAK,EAAE,8BAA8B;KACrC,KACG,KAAK,GACR,CACF,CAAC,CAAC;AACH,cAAc,CAAC,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC;AAElE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;IACxC,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;CACxB,CAAC,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "success" | "warning" | "secondary" | "outline" | "ghost" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
+ }
8
+ declare function Badge({ className, variant, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
9
+ export { Badge, badgeVariants };
10
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,aAAa;;8EAuBlB,CAAC;AAEF,MAAM,WAAW,UAChB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,OAAO,aAAa,CAAC;CAAI;AAEvC,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAI1D;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import { cn } from "@almach/utils";
4
+ const badgeVariants = cva("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 tracking-tight", {
5
+ variants: {
6
+ variant: {
7
+ default: "bg-primary text-primary-foreground hover:bg-primary/80",
8
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
9
+ destructive: "bg-destructive/10 text-destructive border border-destructive/20 hover:bg-destructive/15",
10
+ success: "bg-success/10 text-success border border-success/20 hover:bg-success/15",
11
+ warning: "bg-warning/10 text-warning border border-warning/20 hover:bg-warning/15",
12
+ outline: "border border-input text-foreground bg-transparent hover:bg-accent",
13
+ ghost: "bg-muted text-muted-foreground hover:bg-muted/80",
14
+ },
15
+ },
16
+ defaultVariants: {
17
+ variant: "default",
18
+ },
19
+ });
20
+ function Badge({ className, variant, ...props }) {
21
+ return (_jsx("div", { className: cn(badgeVariants({ variant }), className), ...props }));
22
+ }
23
+ export { Badge, badgeVariants };
24
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,MAAM,aAAa,GAAG,GAAG,CACxB,8KAA8K,EAC9K;IACC,QAAQ,EAAE;QACT,OAAO,EAAE;YACR,OAAO,EACN,wDAAwD;YACzD,SAAS,EACR,8DAA8D;YAC/D,WAAW,EACV,yFAAyF;YAC1F,OAAO,EACN,yEAAyE;YAC1E,OAAO,EACN,yEAAyE;YAC1E,OAAO,EAAE,oEAAoE;YAC7E,KAAK,EAAE,kDAAkD;SACzD;KACD;IACD,eAAe,EAAE;QAChB,OAAO,EAAE,SAAS;KAClB;CACD,CACD,CAAC;AAMF,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAc;IAC1D,OAAO,CACN,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACxE,CAAC;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "success" | "warning" | "link" | "secondary" | "outline" | "ghost" | null | undefined;
5
+ size?: "default" | "icon" | "sm" | "lg" | "icon-sm" | "icon-lg" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
+ asChild?: boolean;
9
+ loading?: boolean;
10
+ leftIcon?: React.ReactNode;
11
+ rightIcon?: React.ReactNode;
12
+ }
13
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
14
+ export { Button, buttonVariants };
15
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,cAAc;;;8EAwCnB,CAAC;AAEF,MAAM,WAAW,WAChB,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACrD,YAAY,CAAC,OAAO,cAAc,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,MAAM,uFAoCX,CAAC;AAIF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+ import { cva } from "class-variance-authority";
4
+ import { Loader2 } from "lucide-react";
5
+ import * as React from "react";
6
+ import { cn } from "@almach/utils";
7
+ const buttonVariants = cva([
8
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium",
9
+ "select-none rounded-lg text-sm",
10
+ "transition-all duration-150",
11
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background",
12
+ "disabled:pointer-events-none disabled:opacity-40",
13
+ "active:scale-[0.97]",
14
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0",
15
+ ], {
16
+ variants: {
17
+ variant: {
18
+ default: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90",
19
+ destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
20
+ outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
21
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
22
+ ghost: "hover:bg-accent hover:text-accent-foreground",
23
+ link: "text-primary underline-offset-4 hover:underline",
24
+ success: "bg-success text-success-foreground shadow-sm hover:bg-success/90",
25
+ warning: "bg-warning text-warning-foreground shadow-sm hover:bg-warning/90",
26
+ },
27
+ size: {
28
+ sm: "h-8 px-3 text-xs [&_svg]:size-3.5",
29
+ default: "h-9 px-4 [&_svg]:size-4",
30
+ lg: "h-11 px-6 text-base [&_svg]:size-4",
31
+ icon: "h-9 w-9 [&_svg]:size-4",
32
+ "icon-sm": "h-8 w-8 [&_svg]:size-3.5",
33
+ "icon-lg": "h-11 w-11 [&_svg]:size-5",
34
+ },
35
+ },
36
+ defaultVariants: {
37
+ variant: "default",
38
+ size: "default",
39
+ },
40
+ });
41
+ const Button = React.forwardRef(({ className, variant, size, asChild = false, loading = false, leftIcon, rightIcon, children, disabled, ...props }, ref) => {
42
+ const Comp = asChild ? Slot : "button";
43
+ return (_jsxs(Comp, { className: cn(buttonVariants({ variant, size, className })), ref: ref, disabled: disabled ?? loading, "aria-busy": loading, ...props, children: [loading ? (_jsx(Loader2, { className: "animate-spin", "aria-hidden": "true" })) : (leftIcon), children, !loading && rightIcon] }));
44
+ });
45
+ Button.displayName = "Button";
46
+ export { Button, buttonVariants };
47
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,MAAM,cAAc,GAAG,GAAG,CACzB;IACC,6EAA6E;IAC7E,gCAAgC;IAChC,6BAA6B;IAC7B,4HAA4H;IAC5H,kDAAkD;IAClD,qBAAqB;IACrB,8CAA8C;CAC9C,EACD;IACC,QAAQ,EAAE;QACT,OAAO,EAAE;YACR,OAAO,EACN,kEAAkE;YACnE,WAAW,EACV,8EAA8E;YAC/E,OAAO,EACN,0FAA0F;YAC3F,SAAS,EACR,8DAA8D;YAC/D,KAAK,EAAE,8CAA8C;YACrD,IAAI,EAAE,iDAAiD;YACvD,OAAO,EAAE,kEAAkE;YAC3E,OAAO,EAAE,kEAAkE;SAC3E;QACD,IAAI,EAAE;YACL,EAAE,EAAE,mCAAmC;YACvC,OAAO,EAAE,yBAAyB;YAClC,EAAE,EAAE,oCAAoC;YACxC,IAAI,EAAE,wBAAwB;YAC9B,SAAS,EAAE,0BAA0B;YACrC,SAAS,EAAE,0BAA0B;SACrC;KACD;IACD,eAAe,EAAE;QAChB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KACf;CACD,CACD,CAAC;AAWF,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC9B,CACC,EACC,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACR,EACD,GAAG,EACF,EAAE;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEvC,OAAO,CACN,MAAC,IAAI,IACJ,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAC3D,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,IAAI,OAAO,eAClB,OAAO,KACd,KAAK,aAER,OAAO,CAAC,CAAC,CAAC,CACV,KAAC,OAAO,IAAC,SAAS,EAAC,cAAc,iBAAa,MAAM,GAAG,CACvD,CAAC,CAAC,CAAC,CACH,QAAQ,CACR,EACA,QAAQ,EACR,CAAC,OAAO,IAAI,SAAS,IAChB,CACP,CAAC;AACH,CAAC,CACD,CAAC;AAEF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type DayPickerProps } from "react-day-picker";
2
+ export type CalendarProps = DayPickerProps;
3
+ export declare function Calendar({ className, classNames, showOutsideDays, month: monthProp, onMonthChange, defaultMonth, ...props }: CalendarProps): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/components/calendar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,cAAc,EAAoC,MAAM,kBAAkB,CAAC;AAUpG,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AA+G3C,wBAAgB,QAAQ,CAAC,EACxB,SAAS,EACT,UAAU,EACV,eAAsB,EACtB,KAAK,EAAE,SAAS,EAChB,aAAa,EACb,YAAY,EACZ,GAAG,KAAK,EACR,EAAE,aAAa,2CAkFf"}
@@ -0,0 +1,73 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { DayPicker, useDayPicker } from "react-day-picker";
4
+ import { ChevronLeft, ChevronRight } from "lucide-react";
5
+ import * as React from "react";
6
+ import { cn } from "@almach/utils";
7
+ import { buttonVariants } from "./button";
8
+ /* ── Month picker overlay ─────────────────────────────────────────────────── */
9
+ const MONTH_NAMES = [
10
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
11
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
12
+ ];
13
+ function MonthPicker({ current, onSelect, }) {
14
+ const [year, setYear] = React.useState(current.getFullYear());
15
+ return (_jsxs("div", { className: "p-3 w-[280px]", children: [_jsxs("div", { className: "flex items-center justify-between mb-3 px-1", children: [_jsx("button", { onClick: () => setYear((y) => y - 1), className: cn(buttonVariants({ variant: "outline", size: "icon-sm" }), "h-7 w-7"), "aria-label": "Previous year", children: _jsx(ChevronLeft, { className: "h-4 w-4" }) }), _jsx("span", { className: "text-sm font-semibold", children: year }), _jsx("button", { onClick: () => setYear((y) => y + 1), className: cn(buttonVariants({ variant: "outline", size: "icon-sm" }), "h-7 w-7"), "aria-label": "Next year", children: _jsx(ChevronRight, { className: "h-4 w-4" }) })] }), _jsx("div", { className: "grid grid-cols-3 gap-1.5", children: MONTH_NAMES.map((name, i) => {
16
+ const isSelected = current.getMonth() === i && current.getFullYear() === year;
17
+ return (_jsx("button", { onClick: () => onSelect(new Date(year, i, 1)), className: cn("rounded-lg py-2.5 text-sm font-medium transition-colors", isSelected
18
+ ? "bg-foreground text-background"
19
+ : "hover:bg-accent hover:text-accent-foreground"), children: name }, name));
20
+ }) })] }));
21
+ }
22
+ /* ── Custom caption (prev | Month Year | next) ────────────────────────────── */
23
+ function CalendarCaption({ calendarMonth, onPickMonth, }) {
24
+ const { goToMonth, previousMonth, nextMonth } = useDayPicker();
25
+ return (_jsxs("div", { className: "flex items-center justify-between gap-1 px-1", children: [_jsx("button", { disabled: !previousMonth, onClick: () => previousMonth && goToMonth(previousMonth), className: cn(buttonVariants({ variant: "outline", size: "icon-sm" }), "h-7 w-7 disabled:opacity-40"), "aria-label": "Previous month", children: _jsx(ChevronLeft, { className: "h-4 w-4" }) }), _jsx("button", { onClick: onPickMonth, className: "flex-1 text-center text-sm font-semibold transition-colors hover:text-foreground/70", "aria-label": "Pick month and year", children: calendarMonth.date.toLocaleDateString("en-US", { month: "long", year: "numeric" }) }), _jsx("button", { disabled: !nextMonth, onClick: () => nextMonth && goToMonth(nextMonth), className: cn(buttonVariants({ variant: "outline", size: "icon-sm" }), "h-7 w-7 disabled:opacity-40"), "aria-label": "Next month", children: _jsx(ChevronRight, { className: "h-4 w-4" }) })] }));
26
+ }
27
+ /* ── Calendar ─────────────────────────────────────────────────────────────── */
28
+ export function Calendar({ className, classNames, showOutsideDays = true, month: monthProp, onMonthChange, defaultMonth, ...props }) {
29
+ const [displayMonth, setDisplayMonth] = React.useState(() => monthProp ?? defaultMonth ?? new Date());
30
+ const [pickingMonth, setPickingMonth] = React.useState(false);
31
+ // Sync controlled month prop
32
+ React.useEffect(() => {
33
+ if (monthProp)
34
+ setDisplayMonth(monthProp);
35
+ }, [monthProp]);
36
+ const handleMonthChange = (date) => {
37
+ setDisplayMonth(date);
38
+ onMonthChange?.(date);
39
+ };
40
+ if (pickingMonth) {
41
+ return (_jsx(MonthPicker, { current: displayMonth, onSelect: (date) => {
42
+ handleMonthChange(date);
43
+ setPickingMonth(false);
44
+ } }));
45
+ }
46
+ return (_jsx(DayPicker, { showOutsideDays: showOutsideDays, className: cn("p-3", className), month: displayMonth, onMonthChange: handleMonthChange, classNames: {
47
+ months: "flex flex-col sm:flex-row gap-4",
48
+ month: "flex flex-col gap-4",
49
+ month_caption: "flex items-center",
50
+ caption_label: "hidden", // handled by our custom caption
51
+ nav: "hidden", // handled by our custom caption
52
+ month_grid: "w-full border-collapse",
53
+ weekdays: "flex",
54
+ weekday: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem] flex items-center justify-center",
55
+ week: "flex w-full mt-2",
56
+ day: "relative p-0 text-center text-sm focus-within:relative focus-within:z-20",
57
+ day_button: cn("h-9 w-9 rounded-md p-0 font-normal", "inline-flex items-center justify-center", "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-1", "aria-selected:opacity-100"),
58
+ selected: "[&>button]:bg-foreground [&>button]:text-background [&>button]:hover:bg-foreground/90 [&>button]:rounded-md",
59
+ today: "[&>button]:bg-accent [&>button]:text-accent-foreground",
60
+ outside: "text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:opacity-30",
61
+ disabled: "text-muted-foreground opacity-50",
62
+ range_start: "[&>button]:bg-foreground [&>button]:text-background [&>button]:rounded-l-md [&>button]:rounded-r-none",
63
+ range_end: "[&>button]:bg-foreground [&>button]:text-background [&>button]:rounded-r-md [&>button]:rounded-l-none",
64
+ range_middle: "[&>button]:bg-accent [&>button]:text-accent-foreground [&>button]:rounded-none",
65
+ hidden: "invisible",
66
+ ...classNames,
67
+ }, components: {
68
+ // Nav handled inline in MonthCaption — suppress default nav
69
+ Nav: () => _jsx(_Fragment, {}),
70
+ MonthCaption: ({ calendarMonth }) => (_jsx(CalendarCaption, { calendarMonth: calendarMonth, onPickMonth: () => setPickingMonth(true) })),
71
+ }, ...props }));
72
+ }
73
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/components/calendar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import * as React from "react";
2
+ interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /** Right-side element: icon, badge, button, etc. */
4
+ action?: React.ReactNode;
5
+ }
6
+ interface CardRowProps extends React.HTMLAttributes<HTMLDivElement> {
7
+ action?: React.ReactNode;
8
+ }
9
+ interface CardLayerHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
10
+ action?: React.ReactNode;
11
+ }
12
+ interface CardLayerRowProps extends React.HTMLAttributes<HTMLDivElement> {
13
+ action?: React.ReactNode;
14
+ }
15
+ declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>> & {
16
+ Header: React.ForwardRefExoticComponent<CardHeaderProps & React.RefAttributes<HTMLDivElement>>;
17
+ Title: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
18
+ Description: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
19
+ Content: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
20
+ Section: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
21
+ Row: React.ForwardRefExoticComponent<CardRowProps & React.RefAttributes<HTMLDivElement>>;
22
+ Footer: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
23
+ /** Layered card root — stacked sections divided by borders (Claude-style) */
24
+ Layers: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
25
+ LayerHeader: React.ForwardRefExoticComponent<CardLayerHeaderProps & React.RefAttributes<HTMLDivElement>>;
26
+ LayerBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
27
+ LayerRow: React.ForwardRefExoticComponent<CardLayerRowProps & React.RefAttributes<HTMLDivElement>>;
28
+ };
29
+ export { Card };
30
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,UAAU,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACrE,oDAAoD;IACpD,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AA0ED,UAAU,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAClE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAsDD,UAAU,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC1E,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AA8BD,UAAU,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACvE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAyBD,QAAA,MAAM,IAAI;;;;;;;;IAQT,6EAA6E;;;;;CAK5E,CAAC;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "@almach/utils";
4
+ // ── Root ───────────────────────────────────────────────────────────────────────
5
+ const CardRoot = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("overflow-hidden rounded-xl border bg-card text-card-foreground shadow-sm", className), ...props })));
6
+ CardRoot.displayName = "Card";
7
+ const CardHeader = React.forwardRef(({ className, children, action, ...props }, ref) => (_jsxs("div", { ref: ref, className: cn("flex items-start justify-between gap-2 px-5 pt-5", action && "pb-0", className), ...props, children: [_jsx("div", { className: "flex flex-col gap-1.5 min-w-0", children: children }), action && (_jsx("div", { className: "shrink-0 text-muted-foreground", children: action }))] })));
8
+ CardHeader.displayName = "Card.Header";
9
+ // ── Title ──────────────────────────────────────────────────────────────────────
10
+ const CardTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx("h3", { ref: ref, className: cn("text-base font-semibold leading-none tracking-tight", className), ...props })));
11
+ CardTitle.displayName = "Card.Title";
12
+ // ── Description ────────────────────────────────────────────────────────────────
13
+ const CardDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx("p", { ref: ref, className: cn("text-sm text-muted-foreground leading-relaxed", className), ...props })));
14
+ CardDescription.displayName = "Card.Description";
15
+ // ── Content ────────────────────────────────────────────────────────────────────
16
+ const CardContent = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("px-5 py-4", className), ...props })));
17
+ CardContent.displayName = "Card.Content";
18
+ // ── Section ────────────────────────────────────────────────────────────────────
19
+ const CardSection = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("border-t px-5 py-4", className), ...props })));
20
+ CardSection.displayName = "Card.Section";
21
+ const CardRow = React.forwardRef(({ className, children, action, onClick, ...props }, ref) => (_jsxs("div", { ref: ref, className: cn("flex items-center justify-between gap-2 border-t px-5 py-3 text-sm", "transition-colors", onClick && "cursor-pointer hover:bg-accent/50", className), onClick: onClick, ...props, children: [_jsx("span", { className: "min-w-0 flex-1", children: children }), action && (_jsx("span", { className: "shrink-0 text-muted-foreground", children: action }))] })));
22
+ CardRow.displayName = "Card.Row";
23
+ // ── Footer ─────────────────────────────────────────────────────────────────────
24
+ const CardFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("border-t flex items-center px-5 py-4", className), ...props })));
25
+ CardFooter.displayName = "Card.Footer";
26
+ // ── Layers ─────────────────────────────────────────────────────────────────────
27
+ // Layered card: sections divided by borders, each with its own background.
28
+ // Inspired by Claude/macOS-style stacked panels.
29
+ const CardLayers = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("overflow-hidden rounded-xl border bg-card divide-y divide-border", className), ...props })));
30
+ CardLayers.displayName = "Card.Layers";
31
+ const CardLayerHeader = React.forwardRef(({ className, children, action, ...props }, ref) => (_jsxs("div", { ref: ref, className: cn("flex items-center justify-between gap-2 px-4 py-3", "text-sm font-medium text-muted-foreground bg-muted/40", className), ...props, children: [_jsx("span", { children: children }), action && _jsx("span", { className: "shrink-0", children: action })] })));
32
+ CardLayerHeader.displayName = "Card.LayerHeader";
33
+ // ── Layer.Body ─────────────────────────────────────────────────────────────────
34
+ const CardLayerBody = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("px-4 py-3 bg-card", className), ...props })));
35
+ CardLayerBody.displayName = "Card.LayerBody";
36
+ const CardLayerRow = React.forwardRef(({ className, children, action, onClick, ...props }, ref) => (_jsxs("div", { ref: ref, className: cn("flex items-center justify-between gap-2 px-4 py-3 text-sm bg-card", "transition-colors", onClick && "cursor-pointer hover:bg-accent/50", className), onClick: onClick, ...props, children: [_jsx("span", { className: "min-w-0 flex-1", children: children }), action && (_jsx("span", { className: "shrink-0 text-muted-foreground", children: action }))] })));
37
+ CardLayerRow.displayName = "Card.LayerRow";
38
+ // ── Compound ───────────────────────────────────────────────────────────────────
39
+ const Card = Object.assign(CardRoot, {
40
+ Header: CardHeader,
41
+ Title: CardTitle,
42
+ Description: CardDescription,
43
+ Content: CardContent,
44
+ Section: CardSection,
45
+ Row: CardRow,
46
+ Footer: CardFooter,
47
+ /** Layered card root — stacked sections divided by borders (Claude-style) */
48
+ Layers: CardLayers,
49
+ LayerHeader: CardLayerHeader,
50
+ LayerBody: CardLayerBody,
51
+ LayerRow: CardLayerRow,
52
+ });
53
+ export { Card };
54
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ interface CarouselProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ loop?: boolean;
4
+ }
5
+ declare function CarouselRoot({ className, children, loop, ...props }: CarouselProps): import("react/jsx-runtime").JSX.Element;
6
+ declare function CarouselContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
7
+ declare function CarouselItem({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
8
+ declare function CarouselPrevious({ className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
9
+ declare function CarouselNext({ className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
10
+ declare function CarouselDots({ className }: {
11
+ className?: string;
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ export declare const Carousel: typeof CarouselRoot & {
14
+ Content: typeof CarouselContent;
15
+ Item: typeof CarouselItem;
16
+ Previous: typeof CarouselPrevious;
17
+ Next: typeof CarouselNext;
18
+ Dots: typeof CarouselDots;
19
+ };
20
+ export {};
21
+ //# sourceMappingURL=carousel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../src/components/carousel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2B/B,UAAU,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACnE,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAY,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CA4EnF;AAGD,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,2CA+DrF;AAGD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,2CAUlF;AAGD,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,2CAiB/F;AAGD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,2CAiB3F;AAGD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAoB1D;AAGD,eAAO,MAAM,QAAQ;;;;;;CAMnB,CAAC"}