@emara/ui 1.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 (218) hide show
  1. package/components/ui/.gitkeep +0 -0
  2. package/components/ui/accordion.stories.tsx +231 -0
  3. package/components/ui/accordion.tsx +250 -0
  4. package/components/ui/app-shell.stories.tsx +270 -0
  5. package/components/ui/app-shell.tsx +491 -0
  6. package/components/ui/avatar.stories.tsx +174 -0
  7. package/components/ui/avatar.tsx +257 -0
  8. package/components/ui/badge.stories.tsx +127 -0
  9. package/components/ui/badge.tsx +146 -0
  10. package/components/ui/breadcrumb.stories.tsx +92 -0
  11. package/components/ui/breadcrumb.tsx +302 -0
  12. package/components/ui/button.stories.tsx +186 -0
  13. package/components/ui/button.tsx +128 -0
  14. package/components/ui/card.stories.tsx +279 -0
  15. package/components/ui/card.tsx +250 -0
  16. package/components/ui/checkbox.stories.tsx +93 -0
  17. package/components/ui/checkbox.tsx +131 -0
  18. package/components/ui/combobox.stories.tsx +489 -0
  19. package/components/ui/combobox.tsx +874 -0
  20. package/components/ui/context-menu.stories.tsx +202 -0
  21. package/components/ui/context-menu.tsx +309 -0
  22. package/components/ui/data-table.stories.tsx +227 -0
  23. package/components/ui/data-table.tsx +539 -0
  24. package/components/ui/date-picker.stories.tsx +225 -0
  25. package/components/ui/date-picker.tsx +597 -0
  26. package/components/ui/dialog.stories.tsx +193 -0
  27. package/components/ui/dialog.tsx +262 -0
  28. package/components/ui/divider.stories.tsx +84 -0
  29. package/components/ui/divider.tsx +135 -0
  30. package/components/ui/drawer.stories.tsx +218 -0
  31. package/components/ui/drawer.tsx +329 -0
  32. package/components/ui/dropdown-menu.stories.tsx +270 -0
  33. package/components/ui/dropdown-menu.tsx +353 -0
  34. package/components/ui/empty-state.stories.tsx +121 -0
  35. package/components/ui/empty-state.tsx +289 -0
  36. package/components/ui/field-group.stories.tsx +201 -0
  37. package/components/ui/field-group.tsx +276 -0
  38. package/components/ui/form.stories.tsx +219 -0
  39. package/components/ui/form.tsx +542 -0
  40. package/components/ui/input.stories.tsx +154 -0
  41. package/components/ui/input.tsx +208 -0
  42. package/components/ui/label.stories.tsx +84 -0
  43. package/components/ui/label.tsx +98 -0
  44. package/components/ui/page-header.stories.tsx +136 -0
  45. package/components/ui/page-header.tsx +315 -0
  46. package/components/ui/pagination.stories.tsx +136 -0
  47. package/components/ui/pagination.tsx +427 -0
  48. package/components/ui/popover.stories.tsx +212 -0
  49. package/components/ui/popover.tsx +167 -0
  50. package/components/ui/radio-group.stories.tsx +96 -0
  51. package/components/ui/radio-group.tsx +250 -0
  52. package/components/ui/select.stories.tsx +203 -0
  53. package/components/ui/select.tsx +318 -0
  54. package/components/ui/sidebar.stories.tsx +186 -0
  55. package/components/ui/sidebar.tsx +623 -0
  56. package/components/ui/skeleton.stories.tsx +131 -0
  57. package/components/ui/skeleton.tsx +311 -0
  58. package/components/ui/switch.stories.tsx +74 -0
  59. package/components/ui/switch.tsx +186 -0
  60. package/components/ui/table.stories.tsx +107 -0
  61. package/components/ui/table.tsx +285 -0
  62. package/components/ui/tabs.stories.tsx +222 -0
  63. package/components/ui/tabs.tsx +287 -0
  64. package/components/ui/textarea.stories.tsx +96 -0
  65. package/components/ui/textarea.tsx +182 -0
  66. package/components/ui/toast.stories.tsx +169 -0
  67. package/components/ui/toast.tsx +250 -0
  68. package/components/ui/tooltip.stories.tsx +146 -0
  69. package/components/ui/tooltip.tsx +156 -0
  70. package/components/ui/top-bar.stories.tsx +182 -0
  71. package/components/ui/top-bar.tsx +155 -0
  72. package/dist/components/ui/accordion.d.ts +45 -0
  73. package/dist/components/ui/accordion.d.ts.map +1 -0
  74. package/dist/components/ui/accordion.js +99 -0
  75. package/dist/components/ui/accordion.js.map +1 -0
  76. package/dist/components/ui/app-shell.d.ts +70 -0
  77. package/dist/components/ui/app-shell.d.ts.map +1 -0
  78. package/dist/components/ui/app-shell.js +199 -0
  79. package/dist/components/ui/app-shell.js.map +1 -0
  80. package/dist/components/ui/avatar.d.ts +41 -0
  81. package/dist/components/ui/avatar.d.ts.map +1 -0
  82. package/dist/components/ui/avatar.js +104 -0
  83. package/dist/components/ui/avatar.js.map +1 -0
  84. package/dist/components/ui/badge.d.ts +27 -0
  85. package/dist/components/ui/badge.d.ts.map +1 -0
  86. package/dist/components/ui/badge.js +65 -0
  87. package/dist/components/ui/badge.js.map +1 -0
  88. package/dist/components/ui/breadcrumb.d.ts +35 -0
  89. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  90. package/dist/components/ui/breadcrumb.js +88 -0
  91. package/dist/components/ui/breadcrumb.js.map +1 -0
  92. package/dist/components/ui/button.d.ts +26 -0
  93. package/dist/components/ui/button.d.ts.map +1 -0
  94. package/dist/components/ui/button.js +73 -0
  95. package/dist/components/ui/button.js.map +1 -0
  96. package/dist/components/ui/card.d.ts +52 -0
  97. package/dist/components/ui/card.d.ts.map +1 -0
  98. package/dist/components/ui/card.js +96 -0
  99. package/dist/components/ui/card.js.map +1 -0
  100. package/dist/components/ui/checkbox.d.ts +18 -0
  101. package/dist/components/ui/checkbox.d.ts.map +1 -0
  102. package/dist/components/ui/checkbox.js +59 -0
  103. package/dist/components/ui/checkbox.js.map +1 -0
  104. package/dist/components/ui/combobox.d.ts +194 -0
  105. package/dist/components/ui/combobox.d.ts.map +1 -0
  106. package/dist/components/ui/combobox.js +361 -0
  107. package/dist/components/ui/combobox.js.map +1 -0
  108. package/dist/components/ui/context-menu.d.ts +46 -0
  109. package/dist/components/ui/context-menu.d.ts.map +1 -0
  110. package/dist/components/ui/context-menu.js +95 -0
  111. package/dist/components/ui/context-menu.js.map +1 -0
  112. package/dist/components/ui/data-table.d.ts +53 -0
  113. package/dist/components/ui/data-table.d.ts.map +1 -0
  114. package/dist/components/ui/data-table.js +163 -0
  115. package/dist/components/ui/data-table.js.map +1 -0
  116. package/dist/components/ui/date-picker.d.ts +103 -0
  117. package/dist/components/ui/date-picker.d.ts.map +1 -0
  118. package/dist/components/ui/date-picker.js +306 -0
  119. package/dist/components/ui/date-picker.js.map +1 -0
  120. package/dist/components/ui/dialog.d.ts +40 -0
  121. package/dist/components/ui/dialog.d.ts.map +1 -0
  122. package/dist/components/ui/dialog.js +110 -0
  123. package/dist/components/ui/dialog.js.map +1 -0
  124. package/dist/components/ui/divider.d.ts +30 -0
  125. package/dist/components/ui/divider.d.ts.map +1 -0
  126. package/dist/components/ui/divider.js +62 -0
  127. package/dist/components/ui/divider.js.map +1 -0
  128. package/dist/components/ui/drawer.d.ts +56 -0
  129. package/dist/components/ui/drawer.d.ts.map +1 -0
  130. package/dist/components/ui/drawer.js +147 -0
  131. package/dist/components/ui/drawer.js.map +1 -0
  132. package/dist/components/ui/dropdown-menu.d.ts +63 -0
  133. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  134. package/dist/components/ui/dropdown-menu.js +116 -0
  135. package/dist/components/ui/dropdown-menu.js.map +1 -0
  136. package/dist/components/ui/empty-state.d.ts +43 -0
  137. package/dist/components/ui/empty-state.d.ts.map +1 -0
  138. package/dist/components/ui/empty-state.js +128 -0
  139. package/dist/components/ui/empty-state.js.map +1 -0
  140. package/dist/components/ui/field-group.d.ts +38 -0
  141. package/dist/components/ui/field-group.d.ts.map +1 -0
  142. package/dist/components/ui/field-group.js +107 -0
  143. package/dist/components/ui/field-group.js.map +1 -0
  144. package/dist/components/ui/form.d.ts +67 -0
  145. package/dist/components/ui/form.d.ts.map +1 -0
  146. package/dist/components/ui/form.js +286 -0
  147. package/dist/components/ui/form.js.map +1 -0
  148. package/dist/components/ui/input.d.ts +36 -0
  149. package/dist/components/ui/input.d.ts.map +1 -0
  150. package/dist/components/ui/input.js +99 -0
  151. package/dist/components/ui/input.js.map +1 -0
  152. package/dist/components/ui/label.d.ts +37 -0
  153. package/dist/components/ui/label.d.ts.map +1 -0
  154. package/dist/components/ui/label.js +34 -0
  155. package/dist/components/ui/label.js.map +1 -0
  156. package/dist/components/ui/page-header.d.ts +65 -0
  157. package/dist/components/ui/page-header.d.ts.map +1 -0
  158. package/dist/components/ui/page-header.js +140 -0
  159. package/dist/components/ui/page-header.js.map +1 -0
  160. package/dist/components/ui/pagination.d.ts +67 -0
  161. package/dist/components/ui/pagination.d.ts.map +1 -0
  162. package/dist/components/ui/pagination.js +109 -0
  163. package/dist/components/ui/pagination.js.map +1 -0
  164. package/dist/components/ui/popover.d.ts +28 -0
  165. package/dist/components/ui/popover.d.ts.map +1 -0
  166. package/dist/components/ui/popover.js +85 -0
  167. package/dist/components/ui/popover.js.map +1 -0
  168. package/dist/components/ui/radio-group.d.ts +35 -0
  169. package/dist/components/ui/radio-group.d.ts.map +1 -0
  170. package/dist/components/ui/radio-group.js +103 -0
  171. package/dist/components/ui/radio-group.js.map +1 -0
  172. package/dist/components/ui/select.d.ts +42 -0
  173. package/dist/components/ui/select.d.ts.map +1 -0
  174. package/dist/components/ui/select.js +86 -0
  175. package/dist/components/ui/select.js.map +1 -0
  176. package/dist/components/ui/sidebar.d.ts +59 -0
  177. package/dist/components/ui/sidebar.d.ts.map +1 -0
  178. package/dist/components/ui/sidebar.js +189 -0
  179. package/dist/components/ui/sidebar.js.map +1 -0
  180. package/dist/components/ui/skeleton.d.ts +77 -0
  181. package/dist/components/ui/skeleton.d.ts.map +1 -0
  182. package/dist/components/ui/skeleton.js +115 -0
  183. package/dist/components/ui/skeleton.js.map +1 -0
  184. package/dist/components/ui/switch.d.ts +26 -0
  185. package/dist/components/ui/switch.d.ts.map +1 -0
  186. package/dist/components/ui/switch.js +84 -0
  187. package/dist/components/ui/switch.js.map +1 -0
  188. package/dist/components/ui/table.d.ts +52 -0
  189. package/dist/components/ui/table.d.ts.map +1 -0
  190. package/dist/components/ui/table.js +109 -0
  191. package/dist/components/ui/table.js.map +1 -0
  192. package/dist/components/ui/tabs.d.ts +42 -0
  193. package/dist/components/ui/tabs.d.ts.map +1 -0
  194. package/dist/components/ui/tabs.js +163 -0
  195. package/dist/components/ui/tabs.js.map +1 -0
  196. package/dist/components/ui/textarea.d.ts +26 -0
  197. package/dist/components/ui/textarea.d.ts.map +1 -0
  198. package/dist/components/ui/textarea.js +96 -0
  199. package/dist/components/ui/textarea.js.map +1 -0
  200. package/dist/components/ui/toast.d.ts +77 -0
  201. package/dist/components/ui/toast.d.ts.map +1 -0
  202. package/dist/components/ui/toast.js +141 -0
  203. package/dist/components/ui/toast.js.map +1 -0
  204. package/dist/components/ui/tooltip.d.ts +31 -0
  205. package/dist/components/ui/tooltip.d.ts.map +1 -0
  206. package/dist/components/ui/tooltip.js +71 -0
  207. package/dist/components/ui/tooltip.js.map +1 -0
  208. package/dist/components/ui/top-bar.d.ts +30 -0
  209. package/dist/components/ui/top-bar.d.ts.map +1 -0
  210. package/dist/components/ui/top-bar.js +64 -0
  211. package/dist/components/ui/top-bar.js.map +1 -0
  212. package/dist/lib/utils.d.ts +3 -0
  213. package/dist/lib/utils.d.ts.map +1 -0
  214. package/dist/lib/utils.js +6 -0
  215. package/dist/lib/utils.js.map +1 -0
  216. package/lib/utils.ts +6 -0
  217. package/package.json +112 -0
  218. package/styles/globals.css +685 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../components/ui/pagination.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const Popover: import("react").FC<PopoverPrimitive.PopoverProps>;
4
+ declare const PopoverTrigger: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
5
+ declare const PopoverAnchor: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & import("react").RefAttributes<HTMLDivElement>>;
6
+ declare const PopoverClose: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverCloseProps & import("react").RefAttributes<HTMLButtonElement>>;
7
+ declare const popoverContentVariants: (props?: ({
8
+ padding?: "sm" | "md" | "lg" | "none" | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
+ type PopoverWidth = "fit" | "trigger" | "sm" | "md" | "lg" | "xl" | number;
11
+ type PopoverContentProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & VariantProps<typeof popoverContentVariants> & {
12
+ width?: PopoverWidth;
13
+ maxHeight?: number | string;
14
+ arrow?: boolean;
15
+ loading?: boolean;
16
+ };
17
+ declare const PopoverContent: import("react").ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
18
+ padding?: "sm" | "md" | "lg" | "none" | null | undefined;
19
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
20
+ width?: PopoverWidth;
21
+ maxHeight?: number | string;
22
+ arrow?: boolean;
23
+ loading?: boolean;
24
+ } & import("react").RefAttributes<HTMLDivElement>>;
25
+ declare const PopoverArrow: import("react").ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverArrowProps & import("react").RefAttributes<SVGSVGElement>, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
26
+ export { Popover, PopoverTrigger, PopoverContent, PopoverArrow, PopoverAnchor, PopoverClose, popoverContentVariants, };
27
+ export type { PopoverContentProps };
28
+ //# sourceMappingURL=popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../components/ui/popover.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AASlE,QAAA,MAAM,OAAO,mDAAwB,CAAC;AACtC,QAAA,MAAM,cAAc,oIAA2B,CAAC;AAChD,QAAA,MAAM,aAAa,gIAA0B,CAAC;AAC9C,QAAA,MAAM,YAAY,kIAAyB,CAAC;AAM5C,QAAA,MAAM,sBAAsB;;8EAwB3B,CAAC;AAEF,KAAK,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAwB3E,KAAK,mBAAmB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,GACxF,YAAY,CAAC,OAAO,sBAAsB,CAAC,GAAG;IAC5C,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,QAAA,MAAM,cAAc;;;YANR,YAAY;gBACR,MAAM,GAAG,MAAM;YACnB,OAAO;cACL,OAAO;kDAyDnB,CAAC;AAOH,QAAA,MAAM,YAAY,0LAahB,CAAC;AAGH,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,sBAAsB,GACvB,CAAC;AACF,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
4
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
5
+ import { cva } from "class-variance-authority";
6
+ import { cn } from "@/lib/utils";
7
+ import { Skeleton } from "./skeleton";
8
+ // Per docs/emara-ui-phase-3-components.md §3. Brought forward into v0.1 per
9
+ // docs/emara-ui-implementation-plan.md §5 so Combobox / DatePicker / Label's
10
+ // hint prop have the dependency they need.
11
+ const Popover = PopoverPrimitive.Root;
12
+ const PopoverTrigger = PopoverPrimitive.Trigger;
13
+ const PopoverAnchor = PopoverPrimitive.Anchor;
14
+ const PopoverClose = PopoverPrimitive.Close;
15
+ // ----------------------------------------------------------------------------
16
+ // PopoverContent
17
+ // ----------------------------------------------------------------------------
18
+ const popoverContentVariants = cva([
19
+ "z-popover outline-none",
20
+ "rounded-md border border-border bg-popover text-popover-foreground shadow-md",
21
+ // Enter/exit animations driven by Radix data-state. Slide direction
22
+ // depends on the resolved `side` so the panel "drops" from its trigger.
23
+ "data-[state=open]:animate-[scale-in_var(--duration-fast)_var(--ease-out)]",
24
+ "data-[state=closed]:animate-[scale-out_var(--duration-fast)_var(--ease-in)]",
25
+ "data-[side=top]:data-[state=open]:animate-[slide-in-from-bottom_var(--duration-fast)_var(--ease-out)]",
26
+ "data-[side=bottom]:data-[state=open]:animate-[slide-in-from-top_var(--duration-fast)_var(--ease-out)]",
27
+ "data-[side=left]:data-[state=open]:animate-[slide-in-from-end_var(--duration-fast)_var(--ease-out)]",
28
+ "data-[side=right]:data-[state=open]:animate-[slide-in-from-start_var(--duration-fast)_var(--ease-out)]",
29
+ ].join(" "), {
30
+ variants: {
31
+ padding: {
32
+ none: "p-0",
33
+ sm: "p-2",
34
+ md: "p-3",
35
+ lg: "p-4",
36
+ },
37
+ },
38
+ defaultVariants: { padding: "md" },
39
+ });
40
+ const WIDTH_TO_PX = {
41
+ sm: 192,
42
+ md: 256,
43
+ lg: 320,
44
+ xl: 448,
45
+ };
46
+ function resolveWidthStyle(width) {
47
+ if (width === undefined)
48
+ return undefined;
49
+ if (width === "fit")
50
+ return { width: "max-content" };
51
+ if (width === "trigger") {
52
+ return { width: "var(--radix-popover-trigger-width)" };
53
+ }
54
+ if (typeof width === "number")
55
+ return { width: width };
56
+ return { width: WIDTH_TO_PX[width] };
57
+ }
58
+ function resolveMaxHeight(maxHeight) {
59
+ if (maxHeight === undefined)
60
+ return undefined;
61
+ return { maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight };
62
+ }
63
+ const PopoverContent = forwardRef(function PopoverContent({ className, align = "center", sideOffset = 8, width, maxHeight, arrow = false, loading = false, padding, style, children, ...props }, ref) {
64
+ // If maxHeight is set the content scrolls internally.
65
+ const overflowStyle = maxHeight !== undefined ? { overflowY: "auto" } : undefined;
66
+ const merged = {
67
+ ...resolveWidthStyle(width),
68
+ ...resolveMaxHeight(maxHeight),
69
+ ...overflowStyle,
70
+ ...style,
71
+ };
72
+ // Loading skeleton mimics a small panel of text rows.
73
+ const loadingNode = (_jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton, { className: "h-3 w-3/4" }), _jsx(Skeleton, { className: "h-3 w-full" }), _jsx(Skeleton, { className: "h-3 w-5/6" })] }));
74
+ return (_jsx(PopoverPrimitive.Portal, { children: _jsxs(PopoverPrimitive.Content, { ref: ref, align: align, sideOffset: sideOffset, style: merged, "aria-busy": loading || undefined, "aria-live": loading ? "polite" : undefined, className: cn(popoverContentVariants({ padding }), className), ...props, children: [loading ? loadingNode : children, arrow ? _jsx(PopoverArrow, {}) : null] }) }));
75
+ });
76
+ PopoverContent.displayName = "PopoverContent";
77
+ // ----------------------------------------------------------------------------
78
+ // PopoverArrow — standalone export so consumers can place it manually.
79
+ // ----------------------------------------------------------------------------
80
+ const PopoverArrow = forwardRef(function PopoverArrow({ className, width = 12, height = 6, ...props }, ref) {
81
+ return (_jsx(PopoverPrimitive.Arrow, { ref: ref, width: width, height: height, className: cn("fill-popover stroke-border", className), ...props }));
82
+ });
83
+ PopoverArrow.displayName = "PopoverArrow";
84
+ export { Popover, PopoverTrigger, PopoverContent, PopoverArrow, PopoverAnchor, PopoverClose, popoverContentVariants, };
85
+ //# sourceMappingURL=popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../components/ui/popover.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
2
+ type RadioSize = "sm" | "md" | "lg";
3
+ type RadioVariant = "default" | "card";
4
+ declare const radioGroupRootVariants: (props?: ({
5
+ orientation?: "horizontal" | "vertical" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ type RadioGroupProps = Omit<React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>, "orientation"> & {
8
+ orientation?: "vertical" | "horizontal";
9
+ variant?: RadioVariant;
10
+ invalid?: boolean;
11
+ size?: RadioSize;
12
+ loop?: boolean;
13
+ };
14
+ declare const RadioGroup: import("react").ForwardRefExoticComponent<Omit<Omit<RadioGroupPrimitive.RadioGroupProps & import("react").RefAttributes<HTMLDivElement>, "ref">, "orientation"> & {
15
+ orientation?: "vertical" | "horizontal";
16
+ variant?: RadioVariant;
17
+ invalid?: boolean;
18
+ size?: RadioSize;
19
+ loop?: boolean;
20
+ } & import("react").RefAttributes<HTMLDivElement>>;
21
+ declare const radioCircleVariants: (props?: ({
22
+ size?: "sm" | "md" | "lg" | null | undefined;
23
+ invalid?: boolean | null | undefined;
24
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
25
+ type RadioProps = Omit<React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>, "children"> & {
26
+ label?: React.ReactNode;
27
+ description?: React.ReactNode;
28
+ };
29
+ declare const Radio: import("react").ForwardRefExoticComponent<Omit<Omit<RadioGroupPrimitive.RadioGroupItemProps & import("react").RefAttributes<HTMLButtonElement>, "ref">, "children"> & {
30
+ label?: React.ReactNode;
31
+ description?: React.ReactNode;
32
+ } & import("react").RefAttributes<HTMLButtonElement>>;
33
+ export { RadioGroup, Radio, radioGroupRootVariants, radioCircleVariants };
34
+ export type { RadioGroupProps, RadioProps };
35
+ //# sourceMappingURL=radio-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../components/ui/radio-group.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAC;AAWnE,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACpC,KAAK,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAqBvC,QAAA,MAAM,sBAAsB;;8EAQ1B,CAAC;AAEH,KAAK,eAAe,GAAG,IAAI,CACzB,KAAK,CAAC,wBAAwB,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAC/D,aAAa,CACd,GAAG;IACF,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,QAAA,MAAM,UAAU;kBAPA,UAAU,GAAG,YAAY;cAC7B,YAAY;cACZ,OAAO;WACV,SAAS;WACT,OAAO;kDA6Bf,CAAC;AAOF,QAAA,MAAM,mBAAmB;;;8EAsBxB,CAAC;AA0CF,KAAK,UAAU,GAAG,IAAI,CACpB,KAAK,CAAC,wBAAwB,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAC/D,UAAU,CACX,GAAG;IACF,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B,CAAC;AAEF,QAAA,MAAM,KAAK;YAJD,KAAK,CAAC,SAAS;kBACT,KAAK,CAAC,SAAS;qDAsF9B,CAAC;AAGF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,CAAC;AAC1E,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,103 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { createContext, forwardRef, useContext, useId } from "react";
4
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
5
+ import { cva } from "class-variance-authority";
6
+ import { cn } from "@/lib/utils";
7
+ const RadioGroupContext = createContext({
8
+ size: "md",
9
+ variant: "default",
10
+ invalid: false,
11
+ });
12
+ function useRadioGroupContext() {
13
+ return useContext(RadioGroupContext);
14
+ }
15
+ // ----------------------------------------------------------------------------
16
+ // RadioGroup
17
+ // ----------------------------------------------------------------------------
18
+ const radioGroupRootVariants = cva("grid gap-2", {
19
+ variants: {
20
+ orientation: {
21
+ vertical: "grid-flow-row",
22
+ horizontal: "grid-flow-col auto-cols-max gap-3",
23
+ },
24
+ },
25
+ defaultVariants: { orientation: "vertical" },
26
+ });
27
+ const RadioGroup = forwardRef(function RadioGroup({ className, orientation = "vertical", variant = "default", invalid = false, size = "md", loop, ...props }, ref) {
28
+ return (_jsx(RadioGroupContext.Provider, { value: { size, variant, invalid }, children: _jsx(RadioGroupPrimitive.Root, { ref: ref, orientation: orientation, loop: loop, "aria-invalid": invalid || undefined, className: cn(radioGroupRootVariants({ orientation }), className), ...props }) }));
29
+ });
30
+ RadioGroup.displayName = "RadioGroup";
31
+ // ----------------------------------------------------------------------------
32
+ // Radio
33
+ // ----------------------------------------------------------------------------
34
+ const radioCircleVariants = cva([
35
+ "aspect-square shrink-0 rounded-full border border-input bg-background text-primary",
36
+ "transition-colors",
37
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
38
+ "disabled:cursor-not-allowed disabled:opacity-50",
39
+ "data-[state=checked]:border-primary",
40
+ ].join(" "), {
41
+ variants: {
42
+ size: {
43
+ sm: "size-4",
44
+ md: "size-5",
45
+ lg: "size-6",
46
+ },
47
+ invalid: {
48
+ true: "border-destructive focus-visible:ring-destructive data-[state=checked]:border-destructive",
49
+ false: "",
50
+ },
51
+ },
52
+ defaultVariants: { size: "md", invalid: false },
53
+ });
54
+ const indicatorDot = {
55
+ sm: "size-1.5",
56
+ md: "size-2",
57
+ lg: "size-2.5",
58
+ };
59
+ const labelSize = {
60
+ sm: "text-xs",
61
+ md: "text-sm",
62
+ lg: "text-base",
63
+ };
64
+ const descriptionSize = {
65
+ sm: "text-2xs",
66
+ md: "text-xs",
67
+ lg: "text-sm",
68
+ };
69
+ const radioCardVariants = cva([
70
+ "relative flex w-full items-start gap-3 rounded-md border bg-background p-3",
71
+ "cursor-pointer select-none",
72
+ "transition-colors transition-shadow",
73
+ "hover:bg-accent/30",
74
+ "focus-within:outline-none focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 focus-within:ring-offset-background",
75
+ // Selected ring driven by the inner radio's data-state via the `in-` modifier.
76
+ "in-data-[state=checked]:border-primary in-data-[state=checked]:ring-2 in-data-[state=checked]:ring-primary",
77
+ "has-[button:disabled]:cursor-not-allowed has-[button:disabled]:opacity-50",
78
+ ].join(" "), {
79
+ variants: {
80
+ invalid: {
81
+ true: "border-destructive in-data-[state=checked]:border-destructive in-data-[state=checked]:ring-destructive focus-within:ring-destructive",
82
+ false: "border-input",
83
+ },
84
+ },
85
+ defaultVariants: { invalid: false },
86
+ });
87
+ const Radio = forwardRef(function Radio({ className, label, description, id, ...props }, ref) {
88
+ const ctx = useRadioGroupContext();
89
+ const reactId = useId();
90
+ const radioId = id ?? reactId;
91
+ const descriptionId = description ? `${radioId}-description` : undefined;
92
+ const circle = (_jsx(RadioGroupPrimitive.Item, { ref: ref, id: radioId, "aria-describedby": descriptionId, className: cn(radioCircleVariants({ size: ctx.size, invalid: ctx.invalid }), className), ...props, children: _jsx(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: _jsx("span", { className: cn("bg-primary block rounded-full", indicatorDot[ctx.size], ctx.invalid && "bg-destructive") }) }) }));
93
+ if (ctx.variant === "card") {
94
+ return (_jsxs("label", { htmlFor: radioId, className: cn(radioCardVariants({ invalid: ctx.invalid })), children: [circle, _jsxs("span", { className: "flex flex-1 flex-col gap-1 leading-none", children: [label ? (_jsx("span", { className: cn("font-medium select-none", labelSize[ctx.size]), children: label })) : null, description ? (_jsx("span", { id: descriptionId, className: cn("text-muted-foreground", descriptionSize[ctx.size]), children: description })) : null] })] }));
95
+ }
96
+ // Default variant — circle + label + description in a row.
97
+ if (!label && !description)
98
+ return circle;
99
+ return (_jsxs("div", { className: "inline-flex items-start gap-2", children: [circle, _jsxs("div", { className: "space-y-0.5 leading-none", children: [label ? (_jsx("label", { htmlFor: radioId, className: cn("cursor-pointer font-medium select-none", labelSize[ctx.size], props.disabled && "cursor-not-allowed opacity-50"), children: label })) : null, description ? (_jsx("p", { id: descriptionId, className: cn("text-muted-foreground", descriptionSize[ctx.size], props.disabled && "opacity-50"), children: description })) : null] })] }));
100
+ });
101
+ Radio.displayName = "Radio";
102
+ export { RadioGroup, Radio, radioGroupRootVariants, radioCircleVariants };
103
+ //# sourceMappingURL=radio-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../components/ui/radio-group.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import * as SelectPrimitive from "@radix-ui/react-select";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const Select: import("react").FC<SelectPrimitive.SelectProps>;
4
+ declare const SelectGroup: import("react").ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & import("react").RefAttributes<HTMLDivElement>>;
5
+ declare const SelectValue: import("react").ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & import("react").RefAttributes<HTMLSpanElement>>;
6
+ declare const selectTriggerVariants: (props?: ({
7
+ size?: "sm" | "md" | "lg" | "xs" | "xl" | null | undefined;
8
+ invalid?: boolean | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
+ type SelectTriggerVariants = VariantProps<typeof selectTriggerVariants>;
11
+ type SelectTriggerProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> & SelectTriggerVariants & {
12
+ clearable?: boolean;
13
+ loading?: boolean;
14
+ startAdornment?: React.ReactNode;
15
+ onClear?: () => void;
16
+ /** Current value — needed for `clearable` to decide whether to show X. */
17
+ value?: string;
18
+ };
19
+ declare const SelectTrigger: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & SelectTriggerVariants & {
20
+ clearable?: boolean;
21
+ loading?: boolean;
22
+ startAdornment?: React.ReactNode;
23
+ onClear?: () => void;
24
+ /** Current value — needed for `clearable` to decide whether to show X. */
25
+ value?: string;
26
+ } & import("react").RefAttributes<HTMLButtonElement>>;
27
+ declare const SelectContent: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
28
+ declare const SelectScrollUpButton: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
29
+ declare const SelectScrollDownButton: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
30
+ declare const SelectLabel: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
31
+ type SelectItemProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> & {
32
+ description?: React.ReactNode;
33
+ icon?: React.ReactNode;
34
+ };
35
+ declare const SelectItem: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
36
+ description?: React.ReactNode;
37
+ icon?: React.ReactNode;
38
+ } & import("react").RefAttributes<HTMLDivElement>>;
39
+ declare const SelectSeparator: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
40
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectScrollUpButton, SelectScrollDownButton, SelectLabel, SelectItem, SelectSeparator, selectTriggerVariants, };
41
+ export type { SelectTriggerProps, SelectItemProps };
42
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../components/ui/select.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAQ1D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAMlE,QAAA,MAAM,MAAM,iDAAuB,CAAC;AACpC,QAAA,MAAM,WAAW,6HAAwB,CAAC;AAC1C,QAAA,MAAM,WAAW,8HAAwB,CAAC;AAM1C,QAAA,MAAM,qBAAqB;;;8EA2B1B,CAAC;AAEF,KAAK,qBAAqB,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAExE,KAAK,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GACtF,qBAAqB,GAAG;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEJ,QAAA,MAAM,aAAa;gBARH,OAAO;cACT,OAAO;qBACA,KAAK,CAAC,SAAS;cACtB,MAAM,IAAI;IACpB,0EAA0E;YAClE,MAAM;qDAmEhB,CAAC;AAOH,QAAA,MAAM,aAAa,4LA6BjB,CAAC;AAOH,QAAA,MAAM,oBAAoB,mMAiBxB,CAAC;AAGH,QAAA,MAAM,sBAAsB,qMAiB1B,CAAC;AAOH,QAAA,MAAM,WAAW,0LAcf,CAAC;AAOH,KAAK,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IACnF,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAEF,QAAA,MAAM,UAAU;kBAJA,KAAK,CAAC,SAAS;WACtB,KAAK,CAAC,SAAS;kDA2CvB,CAAC;AAOF,QAAA,MAAM,eAAe,8LAWnB,CAAC;AAGH,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,eAAe,EACf,qBAAqB,GACtB,CAAC;AACF,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,86 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
4
+ import * as SelectPrimitive from "@radix-ui/react-select";
5
+ import { RiArrowDownSLine, RiArrowUpSLine, RiCheckLine, RiCloseLine, RiLoader2Line, } from "@remixicon/react";
6
+ import { cva } from "class-variance-authority";
7
+ import { cn } from "@/lib/utils";
8
+ // Per docs/emara-ui-phase-2-components.md §4.
9
+ const Select = SelectPrimitive.Root;
10
+ const SelectGroup = SelectPrimitive.Group;
11
+ const SelectValue = SelectPrimitive.Value;
12
+ // ----------------------------------------------------------------------------
13
+ // SelectTrigger
14
+ // ----------------------------------------------------------------------------
15
+ const selectTriggerVariants = cva([
16
+ "flex items-center justify-between w-full gap-2",
17
+ "rounded-md border border-input bg-background text-foreground",
18
+ "transition-colors",
19
+ "hover:border-foreground/40 disabled:hover:border-input",
20
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
21
+ "disabled:cursor-not-allowed disabled:opacity-50",
22
+ "data-[placeholder]:text-muted-foreground",
23
+ "[&>span]:line-clamp-1 [&>span]:text-start",
24
+ ].join(" "), {
25
+ variants: {
26
+ size: {
27
+ xs: "h-7 ps-2.5 pe-2 text-xs",
28
+ sm: "h-8 ps-3 pe-2 text-xs",
29
+ md: "h-9 ps-3 pe-2 text-sm",
30
+ lg: "h-10 ps-3.5 pe-2.5 text-base",
31
+ xl: "h-12 ps-4 pe-3 text-base",
32
+ },
33
+ invalid: {
34
+ true: "border-destructive focus-visible:ring-destructive",
35
+ false: "",
36
+ },
37
+ },
38
+ defaultVariants: { size: "md", invalid: false },
39
+ });
40
+ const SelectTrigger = forwardRef(function SelectTrigger({ className, size, invalid, clearable = false, loading = false, startAdornment, onClear, value, children, ...props }, ref) {
41
+ const showClear = clearable && !props.disabled && !loading && Boolean(value);
42
+ return (_jsxs(SelectPrimitive.Trigger, { ref: ref, className: cn(selectTriggerVariants({ size, invalid }), className), ...props, children: [startAdornment ? (_jsx("span", { "aria-hidden": "true", className: "text-muted-foreground me-1 inline-flex shrink-0 items-center [&_svg]:size-4 [&_svg]:shrink-0", children: startAdornment })) : null, children, _jsxs("span", { className: "text-muted-foreground ms-auto inline-flex shrink-0 items-center gap-1 [&_svg]:size-4 [&_svg]:shrink-0", children: [showClear ? (_jsx("button", { type: "button", "aria-label": "Clear", onClick: (e) => {
43
+ e.preventDefault();
44
+ e.stopPropagation();
45
+ onClear?.();
46
+ }, className: cn("inline-flex items-center justify-center rounded p-0.5", "hover:text-foreground", "focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none"), children: _jsx(RiCloseLine, {}) })) : null, loading ? (_jsx(RiLoader2Line, { className: "size-4 animate-spin" })) : (_jsx(SelectPrimitive.Icon, { asChild: true, children: _jsx(RiArrowDownSLine, {}) }))] })] }));
47
+ });
48
+ SelectTrigger.displayName = "SelectTrigger";
49
+ // ----------------------------------------------------------------------------
50
+ // SelectContent
51
+ // ----------------------------------------------------------------------------
52
+ const SelectContent = forwardRef(function SelectContent({ className, children, position = "popper", sideOffset = 4, ...props }, ref) {
53
+ return (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { ref: ref, position: position, sideOffset: sideOffset, className: cn("z-popover relative max-h-(--radix-select-content-available-height) min-w-32 overflow-hidden", "border-border bg-popover text-popover-foreground rounded-md border shadow-md", "data-[state=open]:animate-[scale-in_var(--duration-fast)_var(--ease-out)]", "data-[state=closed]:animate-[scale-out_var(--duration-fast)_var(--ease-in)]", position === "popper" && "w-(--radix-select-trigger-width)", className), ...props, children: [_jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.Viewport, { className: "p-1", children: children }), _jsx(SelectScrollDownButton, {})] }) }));
54
+ });
55
+ SelectContent.displayName = "SelectContent";
56
+ // ----------------------------------------------------------------------------
57
+ // SelectScrollUpButton / SelectScrollDownButton
58
+ // ----------------------------------------------------------------------------
59
+ const SelectScrollUpButton = forwardRef(function SelectScrollUpButton({ className, ...props }, ref) {
60
+ return (_jsx(SelectPrimitive.ScrollUpButton, { ref: ref, className: cn("text-muted-foreground flex cursor-default items-center justify-center py-1", "hover:bg-accent hover:text-accent-foreground", className), ...props, children: _jsx(RiArrowUpSLine, { className: "size-4" }) }));
61
+ });
62
+ SelectScrollUpButton.displayName = "SelectScrollUpButton";
63
+ const SelectScrollDownButton = forwardRef(function SelectScrollDownButton({ className, ...props }, ref) {
64
+ return (_jsx(SelectPrimitive.ScrollDownButton, { ref: ref, className: cn("text-muted-foreground flex cursor-default items-center justify-center py-1", "hover:bg-accent hover:text-accent-foreground", className), ...props, children: _jsx(RiArrowDownSLine, { className: "size-4" }) }));
65
+ });
66
+ SelectScrollDownButton.displayName = "SelectScrollDownButton";
67
+ // ----------------------------------------------------------------------------
68
+ // SelectLabel
69
+ // ----------------------------------------------------------------------------
70
+ const SelectLabel = forwardRef(function SelectLabel({ className, ...props }, ref) {
71
+ return (_jsx(SelectPrimitive.Label, { ref: ref, className: cn("text-muted-foreground px-2 py-1.5 text-xs font-semibold tracking-wide uppercase", className), ...props }));
72
+ });
73
+ SelectLabel.displayName = "SelectLabel";
74
+ const SelectItem = forwardRef(function SelectItem({ className, children, description, icon, ...props }, ref) {
75
+ return (_jsxs(SelectPrimitive.Item, { ref: ref, className: cn("relative flex w-full cursor-pointer items-start gap-2 rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none select-none", "transition-colors", "focus:bg-accent focus:text-accent-foreground", "data-[state=checked]:font-medium", "data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className), ...props, children: [_jsx("span", { className: "absolute start-2 inline-flex h-4 w-4 items-center justify-center text-current", children: _jsx(SelectPrimitive.ItemIndicator, { children: _jsx(RiCheckLine, { className: "size-4" }) }) }), _jsxs("span", { className: "flex flex-1 flex-col gap-0.5 leading-none", children: [_jsxs("span", { className: "inline-flex items-center gap-2", children: [icon ? (_jsx("span", { "aria-hidden": "true", className: "text-muted-foreground inline-flex shrink-0 [&_svg]:size-4 [&_svg]:shrink-0", children: icon })) : null, _jsx(SelectPrimitive.ItemText, { children: children })] }), description ? (_jsx("span", { className: "text-muted-foreground text-xs", children: description })) : null] })] }));
76
+ });
77
+ SelectItem.displayName = "SelectItem";
78
+ // ----------------------------------------------------------------------------
79
+ // SelectSeparator
80
+ // ----------------------------------------------------------------------------
81
+ const SelectSeparator = forwardRef(function SelectSeparator({ className, ...props }, ref) {
82
+ return (_jsx(SelectPrimitive.Separator, { ref: ref, className: cn("bg-border -mx-1 my-1 h-px", className), ...props }));
83
+ });
84
+ SelectSeparator.displayName = "SelectSeparator";
85
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectScrollUpButton, SelectScrollDownButton, SelectLabel, SelectItem, SelectSeparator, selectTriggerVariants, };
86
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../components/ui/select.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { type ReactNode } from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const sidebarVariants: (props?: ({
4
+ variant?: "filled" | "outline" | "floating" | null | undefined;
5
+ size?: "sm" | "md" | "lg" | null | undefined;
6
+ collapsed?: boolean | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ type SidebarVariants = VariantProps<typeof sidebarVariants>;
9
+ type SidebarProps = React.HTMLAttributes<HTMLElement> & SidebarVariants & {
10
+ asChild?: boolean;
11
+ };
12
+ declare const Sidebar: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLElement> & SidebarVariants & {
13
+ asChild?: boolean;
14
+ } & import("react").RefAttributes<HTMLElement>>;
15
+ declare const SidebarBrand: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
16
+ declare const SidebarHeader: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
17
+ declare const SidebarBody: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
18
+ declare const SidebarFooter: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
19
+ declare const SidebarGroup: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
20
+ declare const SidebarGroupLabel: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
21
+ type SidebarItemBaseProps = React.HTMLAttributes<HTMLElement> & {
22
+ icon?: ReactNode;
23
+ label?: ReactNode;
24
+ badge?: ReactNode;
25
+ kbd?: string[];
26
+ tooltip?: string;
27
+ active?: boolean;
28
+ disabled?: boolean;
29
+ asChild?: boolean;
30
+ };
31
+ type SidebarItemFlatProps = SidebarItemBaseProps & {
32
+ expandable?: false;
33
+ /** Required for expandable=true. Ignored when flat. */
34
+ defaultExpanded?: boolean;
35
+ children?: ReactNode;
36
+ };
37
+ type SidebarItemExpandableProps = SidebarItemBaseProps & {
38
+ expandable: true;
39
+ defaultExpanded?: boolean;
40
+ /** Nested SidebarSubItems. */
41
+ children?: ReactNode;
42
+ };
43
+ type SidebarItemProps = SidebarItemFlatProps | SidebarItemExpandableProps;
44
+ declare const SidebarItem: import("react").ForwardRefExoticComponent<SidebarItemProps & import("react").RefAttributes<HTMLElement>>;
45
+ type SidebarSubItemProps = Omit<SidebarItemBaseProps, "tooltip"> & {
46
+ children?: ReactNode;
47
+ };
48
+ declare const SidebarSubItem: import("react").ForwardRefExoticComponent<Omit<SidebarItemBaseProps, "tooltip"> & {
49
+ children?: ReactNode;
50
+ } & import("react").RefAttributes<HTMLElement>>;
51
+ interface SidebarCollapseToggleProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
52
+ /** Override the auto-injected aria-label. */
53
+ expandLabel?: string;
54
+ collapseLabel?: string;
55
+ }
56
+ declare const SidebarCollapseToggle: import("react").ForwardRefExoticComponent<SidebarCollapseToggleProps & import("react").RefAttributes<HTMLButtonElement>>;
57
+ export { Sidebar, SidebarBrand, SidebarHeader, SidebarBody, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarItem, SidebarSubItem, SidebarCollapseToggle, sidebarVariants, };
58
+ export type { SidebarProps, SidebarItemProps, SidebarSubItemProps, SidebarCollapseToggleProps };
59
+ //# sourceMappingURL=sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../components/ui/sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AA6BlE,QAAA,MAAM,eAAe;;;;8EA+BpB,CAAC;AAEF,KAAK,eAAe,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;AAE5D,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GACnD,eAAe,GAAG;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,QAAA,MAAM,OAAO;cAHC,OAAO;+CA2BnB,CAAC;AAKH,QAAA,MAAM,YAAY,2IAgBjB,CAAC;AAGF,QAAA,MAAM,aAAa,2IAIlB,CAAC;AAGF,QAAA,MAAM,WAAW,2IAUhB,CAAC;AAGF,QAAA,MAAM,aAAa,2IAUlB,CAAC;AAKF,QAAA,MAAM,YAAY,2IAIjB,CAAC;AAGF,QAAA,MAAM,iBAAiB,2IAiBtB,CAAC;AAyEF,KAAK,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,oBAAoB,GAAG,oBAAoB,GAAG;IACjD,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,uDAAuD;IACvD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,KAAK,0BAA0B,GAAG,oBAAoB,GAAG;IACvD,UAAU,EAAE,IAAI,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,KAAK,gBAAgB,GAAG,oBAAoB,GAAG,0BAA0B,CAAC;AAE1E,QAAA,MAAM,WAAW,0GAoHf,CAAC;AA0GH,KAAK,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG;IACjE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,QAAA,MAAM,cAAc;eAHP,SAAS;+CAmDpB,CAAC;AAKH,UAAU,0BAA2B,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACxF,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,QAAA,MAAM,qBAAqB,0HA4B1B,CAAC;AAGF,OAAO,EACL,OAAO,EACP,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,eAAe,GAChB,CAAC;AACF,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,CAAC"}