@mednet/ui 0.0.0-stage → 1.0.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 (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +46 -2
  3. package/THIRD_PARTY_NOTICES.md +27 -0
  4. package/dist/brand/logo/logo-horizontal.d.ts +6 -0
  5. package/dist/brand/logo/logo-horizontal.js +7 -0
  6. package/dist/brand/logo/logo-mark.d.ts +6 -0
  7. package/dist/brand/logo/logo-mark.js +7 -0
  8. package/dist/brand/logo/logo-vertical.d.ts +6 -0
  9. package/dist/brand/logo/logo-vertical.js +7 -0
  10. package/dist/brand/logo.d.ts +18 -0
  11. package/dist/brand/logo.js +12 -0
  12. package/dist/brand/site-footer.d.ts +24 -0
  13. package/dist/brand/site-footer.js +15 -0
  14. package/dist/brand/site-header.d.ts +11 -0
  15. package/dist/brand/site-header.js +7 -0
  16. package/dist/components/accordion.d.ts +6 -0
  17. package/dist/components/accordion.js +17 -0
  18. package/dist/components/alert-dialog.d.ts +18 -0
  19. package/dist/components/alert-dialog.js +42 -0
  20. package/dist/components/alert.d.ts +10 -0
  21. package/dist/components/alert.js +27 -0
  22. package/dist/components/aspect-ratio.d.ts +4 -0
  23. package/dist/components/aspect-ratio.js +8 -0
  24. package/dist/components/attachment.d.ts +23 -0
  25. package/dist/components/attachment.js +68 -0
  26. package/dist/components/avatar.d.ts +11 -0
  27. package/dist/components/avatar.js +23 -0
  28. package/dist/components/badge.d.ts +7 -0
  29. package/dist/components/badge.js +33 -0
  30. package/dist/components/breadcrumb.d.ts +10 -0
  31. package/dist/components/breadcrumb.js +36 -0
  32. package/dist/components/bubble.d.ts +16 -0
  33. package/dist/components/bubble.js +59 -0
  34. package/dist/components/button-group.d.ts +10 -0
  35. package/dist/components/button-group.js +36 -0
  36. package/dist/components/button.d.ts +8 -0
  37. package/dist/components/button.js +34 -0
  38. package/dist/components/calendar.d.ts +10 -0
  39. package/dist/components/calendar.js +76 -0
  40. package/dist/components/card.d.ts +11 -0
  41. package/dist/components/card.js +24 -0
  42. package/dist/components/carousel.d.ts +28 -0
  43. package/dist/components/carousel.js +91 -0
  44. package/dist/components/chart.d.ts +44 -0
  45. package/dist/components/chart.js +132 -0
  46. package/dist/components/checkbox.d.ts +3 -0
  47. package/dist/components/checkbox.js +9 -0
  48. package/dist/components/collapsible.d.ts +5 -0
  49. package/dist/components/collapsible.js +13 -0
  50. package/dist/components/combobox.d.ts +24 -0
  51. package/dist/components/combobox.js +58 -0
  52. package/dist/components/command.d.ts +19 -0
  53. package/dist/components/command.js +35 -0
  54. package/dist/components/context-menu.d.ts +29 -0
  55. package/dist/components/context-menu.js +51 -0
  56. package/dist/components/dialog.d.ts +17 -0
  57. package/dist/components/dialog.js +37 -0
  58. package/dist/components/direction.d.ts +1 -0
  59. package/dist/components/direction.js +2 -0
  60. package/dist/components/drawer.d.ts +16 -0
  61. package/dist/components/drawer.js +75 -0
  62. package/dist/components/dropdown-menu.d.ts +29 -0
  63. package/dist/components/dropdown-menu.js +51 -0
  64. package/dist/components/empty.d.ts +11 -0
  65. package/dist/components/empty.js +33 -0
  66. package/dist/components/field.d.ts +24 -0
  67. package/dist/components/field.js +68 -0
  68. package/dist/components/hover-card.d.ts +5 -0
  69. package/dist/components/hover-card.js +14 -0
  70. package/dist/components/input-group.d.ts +18 -0
  71. package/dist/components/input-group.js +57 -0
  72. package/dist/components/input-otp.d.ts +11 -0
  73. package/dist/components/input-otp.js +21 -0
  74. package/dist/components/input.d.ts +3 -0
  75. package/dist/components/input.js +7 -0
  76. package/dist/components/item.d.ts +22 -0
  77. package/dist/components/item.js +78 -0
  78. package/dist/components/kbd.d.ts +3 -0
  79. package/dist/components/kbd.js +9 -0
  80. package/dist/components/label.d.ts +3 -0
  81. package/dist/components/label.js +7 -0
  82. package/dist/components/marker.d.ts +10 -0
  83. package/dist/components/marker.js +34 -0
  84. package/dist/components/menubar.d.ts +29 -0
  85. package/dist/components/menubar.js +56 -0
  86. package/dist/components/message-scroller.d.ts +10 -0
  87. package/dist/components/message-scroller.js +25 -0
  88. package/dist/components/message.d.ts +10 -0
  89. package/dist/components/message.js +21 -0
  90. package/dist/components/native-select.d.ts +8 -0
  91. package/dist/components/native-select.js +13 -0
  92. package/dist/components/navigation-menu.d.ts +11 -0
  93. package/dist/components/navigation-menu.js +31 -0
  94. package/dist/components/pagination.d.ts +17 -0
  95. package/dist/components/pagination.js +26 -0
  96. package/dist/components/popover.d.ts +9 -0
  97. package/dist/components/popover.js +23 -0
  98. package/dist/components/progress.d.ts +7 -0
  99. package/dist/components/progress.js +20 -0
  100. package/dist/components/questionnaire.d.ts +19 -0
  101. package/dist/components/questionnaire.js +52 -0
  102. package/dist/components/radio-group.d.ts +5 -0
  103. package/dist/components/radio-group.js +12 -0
  104. package/dist/components/resizable.d.ts +7 -0
  105. package/dist/components/resizable.js +14 -0
  106. package/dist/components/scroll-area.d.ts +5 -0
  107. package/dist/components/scroll-area.js +11 -0
  108. package/dist/components/select.d.ts +15 -0
  109. package/dist/components/select.js +34 -0
  110. package/dist/components/separator.d.ts +3 -0
  111. package/dist/components/separator.js +8 -0
  112. package/dist/components/sheet.d.ts +14 -0
  113. package/dist/components/sheet.js +37 -0
  114. package/dist/components/sidebar.d.ts +63 -0
  115. package/dist/components/sidebar.js +256 -0
  116. package/dist/components/skeleton.d.ts +2 -0
  117. package/dist/components/skeleton.js +6 -0
  118. package/dist/components/slider.d.ts +3 -0
  119. package/dist/components/slider.js +12 -0
  120. package/dist/components/spinner.d.ts +2 -0
  121. package/dist/components/spinner.js +7 -0
  122. package/dist/components/switch.d.ts +5 -0
  123. package/dist/components/switch.js +8 -0
  124. package/dist/components/table.d.ts +10 -0
  125. package/dist/components/table.js +28 -0
  126. package/dist/components/tabs.d.ts +10 -0
  127. package/dist/components/tabs.js +29 -0
  128. package/dist/components/textarea.d.ts +3 -0
  129. package/dist/components/textarea.js +6 -0
  130. package/dist/components/toast.d.ts +16 -0
  131. package/dist/components/toast.js +66 -0
  132. package/dist/components/toggle-group.d.ts +11 -0
  133. package/dist/components/toggle-group.js +24 -0
  134. package/dist/components/toggle.d.ts +8 -0
  135. package/dist/components/toggle.js +26 -0
  136. package/dist/components/tooltip.d.ts +6 -0
  137. package/dist/components/tooltip.js +17 -0
  138. package/dist/hooks/use-mobile.d.ts +1 -0
  139. package/dist/hooks/use-mobile.js +15 -0
  140. package/dist/index.d.ts +67 -0
  141. package/dist/index.js +69 -0
  142. package/dist/layouts/app-shell.d.ts +19 -0
  143. package/dist/layouts/app-shell.js +9 -0
  144. package/dist/layouts/public-layout.d.ts +14 -0
  145. package/dist/layouts/public-layout.js +8 -0
  146. package/dist/layouts/skip-link.d.ts +2 -0
  147. package/dist/layouts/skip-link.js +5 -0
  148. package/dist/lib/utils.d.ts +2 -0
  149. package/dist/lib/utils.js +7 -0
  150. package/llms.md +521 -0
  151. package/package.json +128 -3
  152. package/postcss.cjs +163 -0
  153. package/src/brand.css +69 -0
  154. package/src/shadcn-tailwind.css +638 -0
  155. package/src/styles.css +48 -0
@@ -0,0 +1,56 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Menu as MenuPrimitive } from "@base-ui/react/menu";
4
+ import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
5
+ import { cn } from "#lib/utils";
6
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from "#components/dropdown-menu";
7
+ import { CheckIcon } from "lucide-react";
8
+ function Menubar({ className, ...props }) {
9
+ return (_jsx(MenubarPrimitive, { "data-slot": "menubar", className: cn("flex h-9 items-center rounded-4xl border p-1", className), ...props }));
10
+ }
11
+ function MenubarMenu({ ...props }) {
12
+ return _jsx(DropdownMenu, { "data-slot": "menubar-menu", ...props });
13
+ }
14
+ function MenubarGroup({ ...props }) {
15
+ return _jsx(DropdownMenuGroup, { "data-slot": "menubar-group", ...props });
16
+ }
17
+ function MenubarPortal({ ...props }) {
18
+ return _jsx(DropdownMenuPortal, { "data-slot": "menubar-portal", ...props });
19
+ }
20
+ function MenubarTrigger({ className, ...props }) {
21
+ return (_jsx(DropdownMenuTrigger, { "data-slot": "menubar-trigger", className: cn("flex items-center rounded-xl px-2 py-0.75 text-sm font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted", className), ...props }));
22
+ }
23
+ function MenubarContent({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }) {
24
+ return (_jsx(DropdownMenuContent, { "data-slot": "menubar-content", align: align, alignOffset: alignOffset, sideOffset: sideOffset, className: cn("min-w-48 rounded-2xl bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95", className), ...props }));
25
+ }
26
+ function MenubarItem({ className, inset, variant = "default", ...props }) {
27
+ return (_jsx(DropdownMenuItem, { "data-slot": "menubar-item", "data-inset": inset, "data-variant": variant, className: cn("group/menubar-item gap-2.5 rounded-xl px-3 py-2 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!", className), ...props }));
28
+ }
29
+ function MenubarCheckboxItem({ className, children, checked, inset, ...props }) {
30
+ return (_jsxs(MenuPrimitive.CheckboxItem, { "data-slot": "menubar-checkbox-item", "data-inset": inset, className: cn("relative flex cursor-default items-center gap-2.5 rounded-xl py-2 pr-3 pl-9.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", className), checked: checked, ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-3 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4", children: _jsx(MenuPrimitive.CheckboxItemIndicator, { children: _jsx(CheckIcon, {}) }) }), children] }));
31
+ }
32
+ function MenubarRadioGroup({ ...props }) {
33
+ return _jsx(DropdownMenuRadioGroup, { "data-slot": "menubar-radio-group", ...props });
34
+ }
35
+ function MenubarRadioItem({ className, children, inset, ...props }) {
36
+ return (_jsxs(MenuPrimitive.RadioItem, { "data-slot": "menubar-radio-item", "data-inset": inset, className: cn("relative flex cursor-default items-center gap-2.5 rounded-xl py-2 pr-3 pl-9.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-3 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4", children: _jsx(MenuPrimitive.RadioItemIndicator, { children: _jsx(CheckIcon, {}) }) }), children] }));
37
+ }
38
+ function MenubarLabel({ className, inset, ...props }) {
39
+ return (_jsx(DropdownMenuLabel, { "data-slot": "menubar-label", "data-inset": inset, className: cn("px-3.5 py-2.5 text-xs text-muted-foreground data-inset:pl-9.5", className), ...props }));
40
+ }
41
+ function MenubarSeparator({ className, ...props }) {
42
+ return (_jsx(DropdownMenuSeparator, { "data-slot": "menubar-separator", className: cn("-mx-1 my-1 h-px bg-border/50", className), ...props }));
43
+ }
44
+ function MenubarShortcut({ className, ...props }) {
45
+ return (_jsx(DropdownMenuShortcut, { "data-slot": "menubar-shortcut", className: cn("ml-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground", className), ...props }));
46
+ }
47
+ function MenubarSub({ ...props }) {
48
+ return _jsx(DropdownMenuSub, { "data-slot": "menubar-sub", ...props });
49
+ }
50
+ function MenubarSubTrigger({ className, inset, ...props }) {
51
+ return (_jsx(DropdownMenuSubTrigger, { "data-slot": "menubar-sub-trigger", "data-inset": inset, className: cn("gap-2 rounded-xl px-3 py-2 text-sm focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4", className), ...props }));
52
+ }
53
+ function MenubarSubContent({ className, ...props }) {
54
+ return (_jsx(DropdownMenuSubContent, { "data-slot": "menubar-sub-content", className: cn("min-w-32 rounded-2xl bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props }));
55
+ }
56
+ export { Menubar, MenubarPortal, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarSeparator, MenubarLabel, MenubarItem, MenubarShortcut, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSub, MenubarSubTrigger, MenubarSubContent, };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { MessageScroller as MessageScrollerPrimitive, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility } from "@shadcn/react/message-scroller";
3
+ import { Button } from "#components/button";
4
+ declare function MessageScrollerProvider(props: React.ComponentProps<typeof MessageScrollerPrimitive.Provider>): React.JSX.Element;
5
+ declare function MessageScroller({ className, ...props }: React.ComponentProps<typeof MessageScrollerPrimitive.Root>): React.JSX.Element;
6
+ declare function MessageScrollerViewport({ className, ...props }: React.ComponentProps<typeof MessageScrollerPrimitive.Viewport>): React.JSX.Element;
7
+ declare function MessageScrollerContent({ className, ...props }: React.ComponentProps<typeof MessageScrollerPrimitive.Content>): React.JSX.Element;
8
+ declare function MessageScrollerItem({ className, scrollAnchor, ...props }: React.ComponentProps<typeof MessageScrollerPrimitive.Item>): React.JSX.Element;
9
+ declare function MessageScrollerButton({ direction, className, children, render, variant, size, ...props }: React.ComponentProps<typeof MessageScrollerPrimitive.Button> & Pick<React.ComponentProps<typeof Button>, "variant" | "size">): React.JSX.Element;
10
+ export { MessageScrollerProvider, MessageScroller, MessageScrollerViewport, MessageScrollerContent, MessageScrollerItem, MessageScrollerButton, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, };
@@ -0,0 +1,25 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { MessageScroller as MessageScrollerPrimitive, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, } from "@shadcn/react/message-scroller";
4
+ import { cn } from "#lib/utils";
5
+ import { Button } from "#components/button";
6
+ import { ArrowDownIcon } from "lucide-react";
7
+ function MessageScrollerProvider(props) {
8
+ return _jsx(MessageScrollerPrimitive.Provider, { ...props });
9
+ }
10
+ function MessageScroller({ className, ...props }) {
11
+ return (_jsx(MessageScrollerPrimitive.Root, { "data-slot": "message-scroller", className: cn("group/message-scroller relative flex size-full min-h-0 flex-col overflow-hidden", className), ...props }));
12
+ }
13
+ function MessageScrollerViewport({ className, ...props }) {
14
+ return (_jsx(MessageScrollerPrimitive.Viewport, { "data-slot": "message-scroller-viewport", className: cn("size-full min-h-0 min-w-0 scroll-fade-b scrollbar-thin scrollbar-gutter-stable overflow-y-auto overscroll-contain contain-content data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent data-pending-scroll:invisible", className), ...props }));
15
+ }
16
+ function MessageScrollerContent({ className, ...props }) {
17
+ return (_jsx(MessageScrollerPrimitive.Content, { "data-slot": "message-scroller-content", className: cn("flex h-max min-h-full flex-col gap-8", className), ...props }));
18
+ }
19
+ function MessageScrollerItem({ className, scrollAnchor = false, ...props }) {
20
+ return (_jsx(MessageScrollerPrimitive.Item, { "data-slot": "message-scroller-item", scrollAnchor: scrollAnchor, className: cn("min-w-0 shrink-0 [contain-intrinsic-size:auto_10rem] [content-visibility:auto]", className), ...props }));
21
+ }
22
+ function MessageScrollerButton({ direction = "end", className, children, render, variant = "secondary", size = "icon-sm", ...props }) {
23
+ return (_jsx(MessageScrollerPrimitive.Button, { "data-slot": "message-scroller-button", "data-direction": direction, "data-variant": variant, "data-size": size, direction: direction, className: cn("absolute inset-s-1/2 -translate-x-1/2 border-border bg-background text-foreground transition-[translate,scale,opacity] duration-200 hover:bg-muted hover:text-foreground data-[active=false]:pointer-events-none data-[active=false]:scale-95 data-[active=false]:opacity-0 data-[active=false]:duration-400 data-[active=false]:ease-[cubic-bezier(0.7,0,0.84,0)] data-[active=true]:translate-y-0 data-[active=true]:scale-100 data-[active=true]:opacity-100 data-[active=true]:ease-[cubic-bezier(0.23,1,0.32,1)] data-[direction=end]:bottom-4 data-[direction=end]:data-[active=false]:translate-y-full data-[direction=start]:top-4 data-[direction=start]:data-[active=false]:-translate-y-full rtl:translate-x-1/2 data-[direction=start]:[&_svg]:rotate-180", className), render: render ?? _jsx(Button, { variant: variant, size: size }), ...props, children: children ?? (_jsxs(_Fragment, { children: [_jsx(ArrowDownIcon, {}), _jsx("span", { className: "sr-only", children: direction === "end" ? "Прокрутить в конец" : "Прокрутить в начало" })] })) }));
24
+ }
25
+ export { MessageScrollerProvider, MessageScroller, MessageScrollerViewport, MessageScrollerContent, MessageScrollerItem, MessageScrollerButton, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ declare function MessageGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
3
+ declare function Message({ className, align, ...props }: React.ComponentProps<"div"> & {
4
+ align?: "start" | "end";
5
+ }): React.JSX.Element;
6
+ declare function MessageAvatar({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
7
+ declare function MessageContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
8
+ declare function MessageHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
9
+ declare function MessageFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
10
+ export { MessageGroup, Message, MessageAvatar, MessageContent, MessageFooter, MessageHeader, };
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "#lib/utils";
3
+ function MessageGroup({ className, ...props }) {
4
+ return (_jsx("div", { "data-slot": "message-group", className: cn("flex min-w-0 flex-col gap-2", className), ...props }));
5
+ }
6
+ function Message({ className, align = "start", ...props }) {
7
+ return (_jsx("div", { "data-slot": "message", "data-align": align, className: cn("group/message relative flex w-full min-w-0 gap-2 text-sm data-[align=end]:flex-row-reverse", className), ...props }));
8
+ }
9
+ function MessageAvatar({ className, ...props }) {
10
+ return (_jsx("div", { "data-slot": "message-avatar", className: cn("flex w-fit min-w-8 shrink-0 items-center justify-center self-end overflow-hidden rounded-full bg-muted group-has-data-[slot=message-footer]/message:-translate-y-8", className), ...props }));
11
+ }
12
+ function MessageContent({ className, ...props }) {
13
+ return (_jsx("div", { "data-slot": "message-content", className: cn("flex w-full min-w-0 flex-col gap-2.5 wrap-break-word group-data-[align=end]/message:*:data-slot:self-end", className), ...props }));
14
+ }
15
+ function MessageHeader({ className, ...props }) {
16
+ return (_jsx("div", { "data-slot": "message-header", className: cn("flex max-w-full min-w-0 items-center px-3.5 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0", className), ...props }));
17
+ }
18
+ function MessageFooter({ className, ...props }) {
19
+ return (_jsx("div", { "data-slot": "message-footer", className: cn("flex max-w-full min-w-0 items-center px-3.5 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0 group-data-[align=end]/message:justify-end", className), ...props }));
20
+ }
21
+ export { MessageGroup, Message, MessageAvatar, MessageContent, MessageFooter, MessageHeader, };
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ type NativeSelectProps = Omit<React.ComponentProps<"select">, "size"> & {
3
+ size?: "sm" | "default";
4
+ };
5
+ declare function NativeSelect({ className, size, ...props }: NativeSelectProps): React.JSX.Element;
6
+ declare function NativeSelectOption({ className, ...props }: React.ComponentProps<"option">): React.JSX.Element;
7
+ declare function NativeSelectOptGroup({ className, ...props }: React.ComponentProps<"optgroup">): React.JSX.Element;
8
+ export { NativeSelect, NativeSelectOptGroup, NativeSelectOption };
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "#lib/utils";
3
+ import { ChevronDownIcon } from "lucide-react";
4
+ function NativeSelect({ className, size = "default", ...props }) {
5
+ return (_jsxs("div", { className: cn("group/native-select relative w-fit has-[select:disabled]:opacity-50", className), "data-slot": "native-select-wrapper", "data-size": size, children: [_jsx("select", { "data-slot": "native-select", "data-size": size, className: "h-9 w-full min-w-0 appearance-none rounded-4xl border border-input bg-input/30 py-1 pr-8 pl-3 text-sm transition-colors outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-[size=sm]:h-8 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", ...props }), _jsx(ChevronDownIcon, { className: "pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 text-muted-foreground select-none", "aria-hidden": "true", "data-slot": "native-select-icon" })] }));
6
+ }
7
+ function NativeSelectOption({ className, ...props }) {
8
+ return (_jsx("option", { "data-slot": "native-select-option", className: cn("bg-[Canvas] text-[CanvasText]", className), ...props }));
9
+ }
10
+ function NativeSelectOptGroup({ className, ...props }) {
11
+ return (_jsx("optgroup", { "data-slot": "native-select-optgroup", className: cn("bg-[Canvas] text-[CanvasText]", className), ...props }));
12
+ }
13
+ export { NativeSelect, NativeSelectOptGroup, NativeSelectOption };
@@ -0,0 +1,11 @@
1
+ import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
2
+ declare function NavigationMenu({ align, className, children, ...props }: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, "align">): import("react").JSX.Element;
3
+ declare function NavigationMenuList({ className, ...props }: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>): import("react").JSX.Element;
4
+ declare function NavigationMenuItem({ className, ...props }: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>): import("react").JSX.Element;
5
+ declare const navigationMenuTriggerStyle: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
6
+ declare function NavigationMenuTrigger({ className, children, ...props }: NavigationMenuPrimitive.Trigger.Props): import("react").JSX.Element;
7
+ declare function NavigationMenuContent({ className, ...props }: NavigationMenuPrimitive.Content.Props): import("react").JSX.Element;
8
+ declare function NavigationMenuPositioner({ className, side, sideOffset, align, alignOffset, ...props }: NavigationMenuPrimitive.Positioner.Props): import("react").JSX.Element;
9
+ declare function NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props): import("react").JSX.Element;
10
+ declare function NavigationMenuIndicator({ className, ...props }: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Icon>): import("react").JSX.Element;
11
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, NavigationMenuPositioner, };
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "#lib/utils";
5
+ import { ChevronDownIcon } from "lucide-react";
6
+ function NavigationMenu({ align = "start", className, children, ...props }) {
7
+ return (_jsxs(NavigationMenuPrimitive.Root, { "data-slot": "navigation-menu", className: cn("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", className), ...props, children: [children, _jsx(NavigationMenuPositioner, { align: align })] }));
8
+ }
9
+ function NavigationMenuList({ className, ...props }) {
10
+ return (_jsx(NavigationMenuPrimitive.List, { "data-slot": "navigation-menu-list", className: cn("group flex flex-1 list-none items-center justify-center gap-0", className), ...props }));
11
+ }
12
+ function NavigationMenuItem({ className, ...props }) {
13
+ return (_jsx(NavigationMenuPrimitive.Item, { "data-slot": "navigation-menu-item", className: cn("relative", className), ...props }));
14
+ }
15
+ const navigationMenuTriggerStyle = cva("group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-2xl px-4.5 py-2.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted");
16
+ function NavigationMenuTrigger({ className, children, ...props }) {
17
+ return (_jsxs(NavigationMenuPrimitive.Trigger, { "data-slot": "navigation-menu-trigger", className: cn(navigationMenuTriggerStyle(), "group", className), ...props, children: [children, " ", _jsx(ChevronDownIcon, { className: "relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180", "aria-hidden": "true" })] }));
18
+ }
19
+ function NavigationMenuContent({ className, ...props }) {
20
+ return (_jsx(NavigationMenuPrimitive.Content, { "data-slot": "navigation-menu-content", className: cn("data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] isolate z-50 h-full w-auto p-2.5 pr-3 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-2xl group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow-2xl group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/5 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95", className), ...props }));
21
+ }
22
+ function NavigationMenuPositioner({ className, side = "bottom", sideOffset = 8, align = "start", alignOffset = 0, ...props }) {
23
+ return (_jsx(NavigationMenuPrimitive.Portal, { children: _jsx(NavigationMenuPrimitive.Positioner, { side: side, sideOffset: sideOffset, align: align, alignOffset: alignOffset, className: cn("isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0", className), ...props, children: _jsx(NavigationMenuPrimitive.Popup, { className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-2xl bg-popover text-popover-foreground shadow ring-1 ring-foreground/5 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0", children: _jsx(NavigationMenuPrimitive.Viewport, { className: "relative size-full overflow-hidden" }) }) }) }));
24
+ }
25
+ function NavigationMenuLink({ className, ...props }) {
26
+ return (_jsx(NavigationMenuPrimitive.Link, { "data-slot": "navigation-menu-link", className: cn("flex items-center gap-1.5 rounded-2xl p-3 text-sm transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-xl data-[active=true]:bg-muted/50 data-[active=true]:hover:bg-muted data-[active=true]:focus:bg-muted [&_svg:not([class*='size-'])]:size-4", className), ...props }));
27
+ }
28
+ function NavigationMenuIndicator({ className, ...props }) {
29
+ return (_jsx(NavigationMenuPrimitive.Icon, { "data-slot": "navigation-menu-indicator", className: cn("top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in", className), ...props, children: _jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" }) }));
30
+ }
31
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, NavigationMenuPositioner, };
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+ import { Button } from "#components/button";
3
+ declare function Pagination({ className, ...props }: React.ComponentProps<"nav">): React.JSX.Element;
4
+ declare function PaginationContent({ className, ...props }: React.ComponentProps<"ul">): React.JSX.Element;
5
+ declare function PaginationItem({ ...props }: React.ComponentProps<"li">): React.JSX.Element;
6
+ type PaginationLinkProps = {
7
+ isActive?: boolean;
8
+ } & Pick<React.ComponentProps<typeof Button>, "size"> & React.ComponentProps<"a">;
9
+ declare function PaginationLink({ className, isActive, size, ...props }: PaginationLinkProps): React.JSX.Element;
10
+ declare function PaginationPrevious({ className, text, ...props }: React.ComponentProps<typeof PaginationLink> & {
11
+ text?: string;
12
+ }): React.JSX.Element;
13
+ declare function PaginationNext({ className, text, ...props }: React.ComponentProps<typeof PaginationLink> & {
14
+ text?: string;
15
+ }): React.JSX.Element;
16
+ declare function PaginationEllipsis({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
17
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, };
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "#lib/utils";
3
+ import { Button } from "#components/button";
4
+ import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
5
+ function Pagination({ className, ...props }) {
6
+ return (_jsx("nav", { role: "navigation", "aria-label": "\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u044B", "data-slot": "pagination", className: cn("mx-auto flex w-full justify-center", className), ...props }));
7
+ }
8
+ function PaginationContent({ className, ...props }) {
9
+ return (_jsx("ul", { "data-slot": "pagination-content", className: cn("flex items-center gap-1", className), ...props }));
10
+ }
11
+ function PaginationItem({ ...props }) {
12
+ return _jsx("li", { "data-slot": "pagination-item", ...props });
13
+ }
14
+ function PaginationLink({ className, isActive, size = "icon", ...props }) {
15
+ return (_jsx(Button, { variant: isActive ? "outline" : "ghost", size: size, className: cn(className), nativeButton: false, render: _jsx("a", { "aria-current": isActive ? "page" : undefined, "data-slot": "pagination-link", "data-active": isActive, ...props }) }));
16
+ }
17
+ function PaginationPrevious({ className, text = "Назад", ...props }) {
18
+ return (_jsxs(PaginationLink, { "aria-label": "\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430", size: "default", className: cn("pl-2!", className), ...props, children: [_jsx(ChevronLeftIcon, { "data-icon": "inline-start" }), _jsx("span", { className: "hidden sm:block", children: text })] }));
19
+ }
20
+ function PaginationNext({ className, text = "Вперёд", ...props }) {
21
+ return (_jsxs(PaginationLink, { "aria-label": "\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430", size: "default", className: cn("pr-2!", className), ...props, children: [_jsx("span", { className: "hidden sm:block", children: text }), _jsx(ChevronRightIcon, { "data-icon": "inline-end" })] }));
22
+ }
23
+ function PaginationEllipsis({ className, ...props }) {
24
+ return (_jsxs("span", { "aria-hidden": true, "data-slot": "pagination-ellipsis", className: cn("flex size-9 items-center justify-center [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [_jsx(MoreHorizontalIcon, {}), _jsx("span", { className: "sr-only", children: "\u0415\u0449\u0451 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B" })] }));
25
+ }
26
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, };
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
3
+ declare function Popover({ ...props }: PopoverPrimitive.Root.Props): React.JSX.Element;
4
+ declare function PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props): React.JSX.Element;
5
+ declare function PopoverContent({ className, align, alignOffset, side, sideOffset, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): React.JSX.Element;
6
+ declare function PopoverHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
7
+ declare function PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props): React.JSX.Element;
8
+ declare function PopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props): React.JSX.Element;
9
+ export { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, };
@@ -0,0 +1,23 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
4
+ import { cn } from "#lib/utils";
5
+ function Popover({ ...props }) {
6
+ return _jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
7
+ }
8
+ function PopoverTrigger({ ...props }) {
9
+ return _jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
10
+ }
11
+ function PopoverContent({ className, align = "center", alignOffset = 0, side = "bottom", sideOffset = 4, ...props }) {
12
+ return (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: "isolate z-50", children: _jsx(PopoverPrimitive.Popup, { "data-slot": "popover-content", className: cn("z-50 flex w-72 origin-(--transform-origin) flex-col gap-4 rounded-2xl bg-popover p-4 text-sm text-popover-foreground shadow-2xl ring-1 ring-foreground/5 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props }) }) }));
13
+ }
14
+ function PopoverHeader({ className, ...props }) {
15
+ return (_jsx("div", { "data-slot": "popover-header", className: cn("flex flex-col gap-1 text-sm", className), ...props }));
16
+ }
17
+ function PopoverTitle({ className, ...props }) {
18
+ return (_jsx(PopoverPrimitive.Title, { "data-slot": "popover-title", className: cn("text-base font-medium", className), ...props }));
19
+ }
20
+ function PopoverDescription({ className, ...props }) {
21
+ return (_jsx(PopoverPrimitive.Description, { "data-slot": "popover-description", className: cn("text-muted-foreground", className), ...props }));
22
+ }
23
+ export { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, };
@@ -0,0 +1,7 @@
1
+ import { Progress as ProgressPrimitive } from "@base-ui/react/progress";
2
+ declare function Progress({ className, children, value, ...props }: ProgressPrimitive.Root.Props): import("react").JSX.Element;
3
+ declare function ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props): import("react").JSX.Element;
4
+ declare function ProgressIndicator({ className, ...props }: ProgressPrimitive.Indicator.Props): import("react").JSX.Element;
5
+ declare function ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props): import("react").JSX.Element;
6
+ declare function ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props): import("react").JSX.Element;
7
+ export { Progress, ProgressTrack, ProgressIndicator, ProgressLabel, ProgressValue, };
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Progress as ProgressPrimitive } from "@base-ui/react/progress";
4
+ import { cn } from "#lib/utils";
5
+ function Progress({ className, children, value, ...props }) {
6
+ return (_jsxs(ProgressPrimitive.Root, { value: value, "data-slot": "progress", className: cn("flex flex-wrap gap-3", className), ...props, children: [children, _jsx(ProgressTrack, { children: _jsx(ProgressIndicator, {}) })] }));
7
+ }
8
+ function ProgressTrack({ className, ...props }) {
9
+ return (_jsx(ProgressPrimitive.Track, { className: cn("relative flex h-3 w-full items-center overflow-x-hidden rounded-4xl bg-muted", className), "data-slot": "progress-track", ...props }));
10
+ }
11
+ function ProgressIndicator({ className, ...props }) {
12
+ return (_jsx(ProgressPrimitive.Indicator, { "data-slot": "progress-indicator", className: cn("h-full bg-primary transition-all", className), ...props }));
13
+ }
14
+ function ProgressLabel({ className, ...props }) {
15
+ return (_jsx(ProgressPrimitive.Label, { className: cn("text-sm font-medium", className), "data-slot": "progress-label", ...props }));
16
+ }
17
+ function ProgressValue({ className, ...props }) {
18
+ return (_jsx(ProgressPrimitive.Value, { className: cn("ml-auto text-sm text-muted-foreground tabular-nums", className), "data-slot": "progress-value", ...props }));
19
+ }
20
+ export { Progress, ProgressTrack, ProgressIndicator, ProgressLabel, ProgressValue, };
@@ -0,0 +1,19 @@
1
+ import * as React from "react";
2
+ import { Questionnaire as QuestionnairePrimitive } from "@shadcn/react/questionnaire";
3
+ import { type Button } from "#components/button";
4
+ declare function Questionnaire({ className, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Root>): React.JSX.Element;
5
+ declare function QuestionnaireProgress({ className, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Progress>): React.JSX.Element;
6
+ declare function QuestionnaireItem({ className, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Item>): React.JSX.Element;
7
+ declare function QuestionnaireTitle({ className, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Title>): React.JSX.Element;
8
+ declare function QuestionnaireDescription({ className, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Description>): React.JSX.Element;
9
+ declare function QuestionnaireChoices({ className, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Choices>): React.JSX.Element;
10
+ declare function QuestionnaireChoice({ children, className, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Choice>): React.JSX.Element;
11
+ declare function QuestionnaireChoiceDescription({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
12
+ declare function QuestionnaireInput({ className, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Input>): React.JSX.Element;
13
+ declare function QuestionnaireError({ className, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Error>): React.JSX.Element;
14
+ declare function QuestionnaireActions({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
15
+ declare function QuestionnairePrevious({ children, className, size, variant, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Previous> & Pick<React.ComponentProps<typeof Button>, "size" | "variant">): React.JSX.Element;
16
+ declare function QuestionnaireSkip({ children, className, size, variant, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Skip> & Pick<React.ComponentProps<typeof Button>, "size" | "variant">): React.JSX.Element;
17
+ declare function QuestionnaireNext({ children, className, size, variant, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Next> & Pick<React.ComponentProps<typeof Button>, "size" | "variant">): React.JSX.Element;
18
+ declare function QuestionnaireSubmit({ children, className, size, variant, ...props }: React.ComponentProps<typeof QuestionnairePrimitive.Submit> & Pick<React.ComponentProps<typeof Button>, "size" | "variant">): React.JSX.Element;
19
+ export { Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoiceDescription, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, QuestionnaireInput, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSkip, QuestionnaireSubmit, QuestionnaireTitle, };
@@ -0,0 +1,52 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Questionnaire as QuestionnairePrimitive } from "@shadcn/react/questionnaire";
4
+ import { cn } from "#lib/utils";
5
+ import { buttonVariants } from "#components/button";
6
+ import { CheckIcon } from "lucide-react";
7
+ function Questionnaire({ className, ...props }) {
8
+ return (_jsx(QuestionnairePrimitive.Root, { "data-slot": "questionnaire", className: cn("flex w-full min-w-0 flex-col gap-6", className), ...props }));
9
+ }
10
+ function QuestionnaireProgress({ className, ...props }) {
11
+ return (_jsx(QuestionnairePrimitive.Progress, { "data-slot": "questionnaire-progress", className: cn("min-h-[1lh] w-fit min-w-[14ch] text-xs font-medium text-muted-foreground tabular-nums", className), ...props }));
12
+ }
13
+ function QuestionnaireItem({ className, ...props }) {
14
+ return (_jsx(QuestionnairePrimitive.Item, { "data-slot": "questionnaire-item", className: cn("flex min-w-0 flex-col gap-5 border-0 p-0 outline-none", className), ...props }));
15
+ }
16
+ function QuestionnaireTitle({ className, ...props }) {
17
+ return (_jsx(QuestionnairePrimitive.Title, { "data-slot": "questionnaire-title", className: cn("text-base font-semibold text-pretty [&:not(:has(~[data-slot=questionnaire-description]))]:mb-5", className), ...props }));
18
+ }
19
+ function QuestionnaireDescription({ className, ...props }) {
20
+ return (_jsx(QuestionnairePrimitive.Description, { "data-slot": "questionnaire-description", className: cn("text-sm text-pretty text-muted-foreground", className), ...props }));
21
+ }
22
+ function QuestionnaireChoices({ className, ...props }) {
23
+ return (_jsx(QuestionnairePrimitive.Choices, { "data-slot": "questionnaire-choices", className: cn("group/questionnaire-choices grid min-w-0 gap-3", className), ...props }));
24
+ }
25
+ function QuestionnaireChoice({ children, className, ...props }) {
26
+ return (_jsxs(QuestionnairePrimitive.Choice, { "data-slot": "questionnaire-choice", className: cn("group/questionnaire-choice relative flex min-h-11 cursor-pointer items-start gap-3 rounded-4xl border border-input px-4 py-3.5 text-start text-sm transition-colors outline-none select-none hover:bg-input/40 has-[>input:focus-visible]:border-ring has-[>input:focus-visible]:ring-[3px] has-[>input:focus-visible]:ring-ring/50 data-invalid:border-destructive data-checked:border-primary/40 data-checked:bg-primary/10", "data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50", className), ...props, children: [_jsx(QuestionnairePrimitive.ChoiceInput, { "data-slot": "questionnaire-choice-input", className: "absolute inset-0 z-10 size-full cursor-pointer opacity-0" }), _jsxs("span", { "aria-hidden": "true", "data-slot": "questionnaire-choice-indicator", className: "pointer-events-none relative flex size-4 shrink-0 translate-y-[--spacing(0.45)] items-center justify-center rounded-[6px] border border-input group-has-data-[slot=questionnaire-choice-description]/questionnaire-choice:translate-y-0.5 group-data-[type=radio]/questionnaire-choice:rounded-full group-data-checked/questionnaire-choice:border-primary group-data-checked/questionnaire-choice:bg-primary group-data-checked/questionnaire-choice:text-primary-foreground dark:bg-input/30 dark:group-data-checked/questionnaire-choice:bg-primary", children: [_jsx("span", { "data-slot": "questionnaire-choice-indicator-dot", className: "hidden size-2 rounded-full bg-primary-foreground group-data-[type=checkbox]/questionnaire-choice:hidden group-data-checked/questionnaire-choice:block" }), _jsx(CheckIcon, { "data-slot": "questionnaire-choice-indicator-check", className: "hidden size-3.5 group-data-[type=radio]/questionnaire-choice:hidden group-data-checked/questionnaire-choice:block" })] }), _jsx(QuestionnairePrimitive.ChoiceLabel, { "data-slot": "questionnaire-choice-label", className: "flex min-w-0 flex-1 flex-col gap-1 leading-snug", children: children }), _jsx(QuestionnairePrimitive.ChoiceShortcut, { "data-slot": "questionnaire-choice-shortcut", className: "pointer-events-none ms-auto hidden size-5 shrink-0 translate-y-[--spacing(0.45)] items-center justify-center rounded-full border border-input bg-background/80 font-mono text-[0.625rem] leading-none font-medium text-muted-foreground group-has-data-[slot=questionnaire-choice-description]/questionnaire-choice:translate-y-0.5 group-data-[shortcut]/questionnaire-choice:inline-flex" })] }));
27
+ }
28
+ function QuestionnaireChoiceDescription({ className, ...props }) {
29
+ return (_jsx("span", { "data-slot": "questionnaire-choice-description", className: cn("text-muted-foreground", className), ...props }));
30
+ }
31
+ function QuestionnaireInput({ className, ...props }) {
32
+ return (_jsx("div", { "data-slot": "questionnaire-input-wrapper", className: "group/questionnaire-input relative w-full min-w-0", children: _jsx(QuestionnairePrimitive.Input, { "data-slot": "questionnaire-input", className: cn("h-9 min-h-11 w-full min-w-0 rounded-4xl border border-input bg-input/30 px-3 py-1 text-base transition-[color,box-shadow,background-color] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 sm:min-h-0 md:text-sm dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", "selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground", className), ...props }) }));
33
+ }
34
+ function QuestionnaireError({ className, ...props }) {
35
+ return (_jsx(QuestionnairePrimitive.Error, { "data-slot": "questionnaire-error", className: cn("mt-2 text-sm text-destructive", className), ...props }));
36
+ }
37
+ function QuestionnaireActions({ className, ...props }) {
38
+ return (_jsx("div", { "data-slot": "questionnaire-actions", className: cn("grid min-h-11 w-full grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2 sm:min-h-9", className), ...props }));
39
+ }
40
+ function QuestionnairePrevious({ children, className, size = "default", variant = "outline", ...props }) {
41
+ return (_jsx(QuestionnairePrimitive.Previous, { "data-slot": "questionnaire-previous", "data-size": size, "data-variant": variant, className: cn(buttonVariants({ size, variant }), "col-start-1 row-start-1 min-h-11 justify-self-start sm:min-h-0", className), ...props, children: children ?? "Назад" }));
42
+ }
43
+ function QuestionnaireSkip({ children, className, size = "default", variant = "outline", ...props }) {
44
+ return (_jsx(QuestionnairePrimitive.Skip, { "data-slot": "questionnaire-skip", "data-size": size, "data-variant": variant, className: cn(buttonVariants({ size, variant }), "col-start-2 row-start-1 min-h-11 justify-self-end sm:min-h-0", className), ...props, children: children ?? "Пропустить" }));
45
+ }
46
+ function QuestionnaireNext({ children, className, size = "default", variant = "default", ...props }) {
47
+ return (_jsx(QuestionnairePrimitive.Next, { "data-slot": "questionnaire-next", "data-size": size, "data-variant": variant, className: cn(buttonVariants({ size, variant }), "col-start-3 row-start-1 min-h-11 justify-self-end sm:min-h-0", className), ...props, children: children ?? "Далее" }));
48
+ }
49
+ function QuestionnaireSubmit({ children, className, size = "default", variant = "default", ...props }) {
50
+ return (_jsx(QuestionnairePrimitive.Submit, { "data-slot": "questionnaire-submit", "data-size": size, "data-variant": variant, className: cn(buttonVariants({ size, variant }), "col-start-3 row-start-1 min-h-11 justify-self-end sm:min-h-0", className), ...props, children: children ?? "Отправить" }));
51
+ }
52
+ export { Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoiceDescription, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, QuestionnaireInput, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSkip, QuestionnaireSubmit, QuestionnaireTitle, };
@@ -0,0 +1,5 @@
1
+ import { Radio as RadioPrimitive } from "@base-ui/react/radio";
2
+ import { RadioGroup as RadioGroupPrimitive } from "@base-ui/react/radio-group";
3
+ declare function RadioGroup({ className, ...props }: RadioGroupPrimitive.Props): import("react").JSX.Element;
4
+ declare function RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Props): import("react").JSX.Element;
5
+ export { RadioGroup, RadioGroupItem };
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Radio as RadioPrimitive } from "@base-ui/react/radio";
4
+ import { RadioGroup as RadioGroupPrimitive } from "@base-ui/react/radio-group";
5
+ import { cn } from "#lib/utils";
6
+ function RadioGroup({ className, ...props }) {
7
+ return (_jsx(RadioGroupPrimitive, { "data-slot": "radio-group", className: cn("grid w-full gap-3", className), ...props }));
8
+ }
9
+ function RadioGroupItem({ className, ...props }) {
10
+ return (_jsx(RadioPrimitive.Root, { "data-slot": "radio-group-item", className: cn("group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none group-has-[:focus-visible]/field-label:ring-0 group-has-[:focus-visible]/field-label:not-data-checked:border-input after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground group-has-[:focus-visible]/field-label:data-checked:border-primary dark:data-checked:bg-primary", className), ...props, children: _jsx(RadioPrimitive.Indicator, { "data-slot": "radio-group-indicator", className: "flex size-4 items-center justify-center", children: _jsx("span", { className: "absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground" }) }) }));
11
+ }
12
+ export { RadioGroup, RadioGroupItem };
@@ -0,0 +1,7 @@
1
+ import * as ResizablePrimitive from "react-resizable-panels";
2
+ declare function ResizablePanelGroup({ className, ...props }: ResizablePrimitive.GroupProps): import("react").JSX.Element;
3
+ declare function ResizablePanel({ ...props }: ResizablePrimitive.PanelProps): import("react").JSX.Element;
4
+ declare function ResizableHandle({ withHandle, className, ...props }: ResizablePrimitive.SeparatorProps & {
5
+ withHandle?: boolean;
6
+ }): import("react").JSX.Element;
7
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cn } from "#lib/utils";
4
+ import * as ResizablePrimitive from "react-resizable-panels";
5
+ function ResizablePanelGroup({ className, ...props }) {
6
+ return (_jsx(ResizablePrimitive.Group, { "data-slot": "resizable-panel-group", className: cn("flex h-full w-full aria-[orientation=vertical]:flex-col", className), ...props }));
7
+ }
8
+ function ResizablePanel({ ...props }) {
9
+ return _jsx(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
10
+ }
11
+ function ResizableHandle({ withHandle, className, ...props }) {
12
+ return (_jsx(ResizablePrimitive.Separator, { "data-slot": "resizable-handle", className: cn("relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90", className), ...props, children: withHandle && (_jsx("div", { className: "z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border" })) }));
13
+ }
14
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area";
3
+ declare function ScrollArea({ className, children, ...props }: ScrollAreaPrimitive.Root.Props): React.JSX.Element;
4
+ declare function ScrollBar({ className, orientation, ...props }: ScrollAreaPrimitive.Scrollbar.Props): React.JSX.Element;
5
+ export { ScrollArea, ScrollBar };
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area";
4
+ import { cn } from "#lib/utils";
5
+ function ScrollArea({ className, children, ...props }) {
6
+ return (_jsxs(ScrollAreaPrimitive.Root, { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [_jsx(ScrollAreaPrimitive.Viewport, { "data-slot": "scroll-area-viewport", className: "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1", children: children }), _jsx(ScrollBar, {}), _jsx(ScrollAreaPrimitive.Corner, {})] }));
7
+ }
8
+ function ScrollBar({ className, orientation = "vertical", ...props }) {
9
+ return (_jsx(ScrollAreaPrimitive.Scrollbar, { "data-slot": "scroll-area-scrollbar", "data-orientation": orientation, orientation: orientation, className: cn("flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent", className), ...props, children: _jsx(ScrollAreaPrimitive.Thumb, { "data-slot": "scroll-area-thumb", className: "relative flex-1 rounded-full bg-border" }) }));
10
+ }
11
+ export { ScrollArea, ScrollBar };
@@ -0,0 +1,15 @@
1
+ import * as React from "react";
2
+ import { Select as SelectPrimitive } from "@base-ui/react/select";
3
+ declare const Select: typeof SelectPrimitive.Root;
4
+ declare function SelectGroup({ className, ...props }: SelectPrimitive.Group.Props): React.JSX.Element;
5
+ declare function SelectValue({ className, ...props }: SelectPrimitive.Value.Props): React.JSX.Element;
6
+ declare function SelectTrigger({ className, size, children, ...props }: SelectPrimitive.Trigger.Props & {
7
+ size?: "sm" | "default";
8
+ }): React.JSX.Element;
9
+ declare function SelectContent({ className, children, side, sideOffset, align, alignOffset, alignItemWithTrigger, ...props }: SelectPrimitive.Popup.Props & Pick<SelectPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset" | "alignItemWithTrigger">): React.JSX.Element;
10
+ declare function SelectLabel({ className, ...props }: SelectPrimitive.GroupLabel.Props): React.JSX.Element;
11
+ declare function SelectItem({ className, children, ...props }: SelectPrimitive.Item.Props): React.JSX.Element;
12
+ declare function SelectSeparator({ className, ...props }: SelectPrimitive.Separator.Props): React.JSX.Element;
13
+ declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>): React.JSX.Element;
14
+ declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>): React.JSX.Element;
15
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Select as SelectPrimitive } from "@base-ui/react/select";
4
+ import { cn } from "#lib/utils";
5
+ import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react";
6
+ const Select = SelectPrimitive.Root;
7
+ function SelectGroup({ className, ...props }) {
8
+ return (_jsx(SelectPrimitive.Group, { "data-slot": "select-group", className: cn("scroll-my-1 p-1", className), ...props }));
9
+ }
10
+ function SelectValue({ className, ...props }) {
11
+ return (_jsx(SelectPrimitive.Value, { "data-slot": "select-value", className: cn("flex flex-1 text-left", className), ...props }));
12
+ }
13
+ function SelectTrigger({ className, size = "default", children, ...props }) {
14
+ return (_jsxs(SelectPrimitive.Trigger, { "data-slot": "select-trigger", "data-size": size, className: cn("flex w-fit items-center justify-between gap-1.5 rounded-4xl border border-input bg-input/30 px-3 py-2 text-sm whitespace-nowrap transition-colors outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(SelectPrimitive.Icon, { render: _jsx(ChevronDownIcon, { className: "pointer-events-none size-4 text-muted-foreground" }) })] }));
15
+ }
16
+ function SelectContent({ className, children, side = "bottom", sideOffset = 4, align = "center", alignOffset = 0, alignItemWithTrigger = true, ...props }) {
17
+ return (_jsx(SelectPrimitive.Portal, { children: _jsx(SelectPrimitive.Positioner, { side: side, sideOffset: sideOffset, align: align, alignOffset: alignOffset, alignItemWithTrigger: alignItemWithTrigger, className: "isolate z-50", children: _jsxs(SelectPrimitive.Popup, { "data-slot": "select-content", "data-align-trigger": alignItemWithTrigger, className: cn("relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-2xl bg-popover text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props, children: [_jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.List, { children: children }), _jsx(SelectScrollDownButton, {})] }) }) }));
18
+ }
19
+ function SelectLabel({ className, ...props }) {
20
+ return (_jsx(SelectPrimitive.GroupLabel, { "data-slot": "select-label", className: cn("px-3 py-2.5 text-xs text-muted-foreground", className), ...props }));
21
+ }
22
+ function SelectItem({ className, children, ...props }) {
23
+ return (_jsxs(SelectPrimitive.Item, { "data-slot": "select-item", className: cn("relative flex w-full cursor-default items-center gap-2.5 rounded-xl py-2 pr-8 pl-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className), ...props, children: [_jsx(SelectPrimitive.ItemText, { className: "flex flex-1 shrink-0 gap-2 whitespace-nowrap", children: children }), _jsx(SelectPrimitive.ItemIndicator, { render: _jsx("span", { className: "pointer-events-none absolute right-2 flex size-4 items-center justify-center" }), children: _jsx(CheckIcon, { className: "pointer-events-none" }) })] }));
24
+ }
25
+ function SelectSeparator({ className, ...props }) {
26
+ return (_jsx(SelectPrimitive.Separator, { "data-slot": "select-separator", className: cn("pointer-events-none -mx-1 my-1 h-px bg-border/50", className), ...props }));
27
+ }
28
+ function SelectScrollUpButton({ className, ...props }) {
29
+ return (_jsx(SelectPrimitive.ScrollUpArrow, { "data-slot": "select-scroll-up-button", className: cn("top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: _jsx(ChevronUpIcon, {}) }));
30
+ }
31
+ function SelectScrollDownButton({ className, ...props }) {
32
+ return (_jsx(SelectPrimitive.ScrollDownArrow, { "data-slot": "select-scroll-down-button", className: cn("bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: _jsx(ChevronDownIcon, {}) }));
33
+ }
34
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
@@ -0,0 +1,3 @@
1
+ import { Separator as SeparatorPrimitive } from "@base-ui/react/separator";
2
+ declare function Separator({ className, orientation, ...props }: SeparatorPrimitive.Props): import("react").JSX.Element;
3
+ export { Separator };
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Separator as SeparatorPrimitive } from "@base-ui/react/separator";
4
+ import { cn } from "#lib/utils";
5
+ function Separator({ className, orientation = "horizontal", ...props }) {
6
+ return (_jsx(SeparatorPrimitive, { "data-slot": "separator", orientation: orientation, className: cn("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch", className), ...props }));
7
+ }
8
+ export { Separator };
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import { Dialog as SheetPrimitive } from "@base-ui/react/dialog";
3
+ declare function Sheet({ ...props }: SheetPrimitive.Root.Props): React.JSX.Element;
4
+ declare function SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props): React.JSX.Element;
5
+ declare function SheetClose({ ...props }: SheetPrimitive.Close.Props): React.JSX.Element;
6
+ declare function SheetContent({ className, children, side, showCloseButton, ...props }: SheetPrimitive.Popup.Props & {
7
+ side?: "top" | "right" | "bottom" | "left";
8
+ showCloseButton?: boolean;
9
+ }): React.JSX.Element;
10
+ declare function SheetHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
11
+ declare function SheetFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
12
+ declare function SheetTitle({ className, ...props }: SheetPrimitive.Title.Props): React.JSX.Element;
13
+ declare function SheetDescription({ className, ...props }: SheetPrimitive.Description.Props): React.JSX.Element;
14
+ export { Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, };