@ravenopsnet/ui 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/README.md +1 -1
  2. package/dist/components/theme-provider.d.ts +15 -0
  3. package/dist/components/ui/accordion.d.ts +6 -0
  4. package/dist/components/ui/alert-dialog.d.ts +18 -0
  5. package/dist/components/ui/alert-dialog.js +95 -0
  6. package/dist/components/ui/alert.d.ts +10 -0
  7. package/dist/components/ui/alert.js +43 -0
  8. package/dist/components/ui/aspect-ratio.d.ts +4 -0
  9. package/dist/components/ui/aspect-ratio.js +13 -0
  10. package/dist/components/ui/avatar.d.ts +11 -0
  11. package/dist/components/ui/avatar.js +50 -0
  12. package/dist/components/ui/badge.d.ts +7 -0
  13. package/dist/components/ui/badge.js +29 -0
  14. package/dist/components/ui/breadcrumb.d.ts +10 -0
  15. package/dist/components/ui/breadcrumb.js +72 -0
  16. package/dist/components/ui/button-group.d.ts +10 -0
  17. package/dist/components/ui/button-group.js +41 -0
  18. package/dist/components/ui/button.d.ts +8 -0
  19. package/dist/components/ui/button.js +44 -0
  20. package/dist/components/ui/calendar.d.ts +10 -0
  21. package/dist/components/ui/calendar.js +96 -0
  22. package/dist/components/ui/card.d.ts +11 -0
  23. package/dist/components/ui/card.js +56 -0
  24. package/dist/components/ui/carousel.d.ts +28 -0
  25. package/dist/components/ui/carousel.js +111 -0
  26. package/dist/components/ui/chart.d.ts +44 -0
  27. package/dist/components/ui/chart.js +130 -0
  28. package/dist/components/ui/checkbox.d.ts +3 -0
  29. package/dist/components/ui/checkbox.js +20 -0
  30. package/dist/components/ui/collapsible.d.ts +5 -0
  31. package/dist/components/ui/collapsible.js +23 -0
  32. package/dist/components/ui/combobox.d.ts +24 -0
  33. package/dist/components/ui/combobox.js +161 -0
  34. package/dist/components/ui/command.d.ts +19 -0
  35. package/dist/components/ui/context-menu.d.ts +29 -0
  36. package/dist/components/ui/context-menu.js +133 -0
  37. package/dist/components/ui/dialog.d.ts +17 -0
  38. package/dist/components/ui/dialog.js +91 -0
  39. package/dist/components/ui/direction.d.ts +1 -0
  40. package/dist/components/ui/direction.js +2 -0
  41. package/dist/components/ui/drawer.d.ts +13 -0
  42. package/dist/components/ui/drawer.js +78 -0
  43. package/dist/components/ui/dropdown-menu.d.ts +29 -0
  44. package/dist/components/ui/dropdown-menu.js +136 -0
  45. package/dist/components/ui/empty.d.ts +11 -0
  46. package/dist/components/ui/empty.js +59 -0
  47. package/dist/components/ui/field.d.ts +24 -0
  48. package/dist/components/ui/field.js +107 -0
  49. package/dist/components/ui/hover-card.d.ts +5 -0
  50. package/dist/components/ui/hover-card.js +36 -0
  51. package/dist/components/ui/input-group.d.ts +18 -0
  52. package/dist/components/ui/input-group.js +78 -0
  53. package/dist/components/ui/input-otp.d.ts +11 -0
  54. package/dist/components/ui/input-otp.js +46 -0
  55. package/dist/components/ui/input.d.ts +3 -0
  56. package/dist/components/ui/input.js +15 -0
  57. package/dist/components/ui/item.d.ts +22 -0
  58. package/dist/components/ui/item.js +121 -0
  59. package/dist/components/ui/kbd.d.ts +3 -0
  60. package/dist/components/ui/kbd.js +19 -0
  61. package/dist/components/ui/label.d.ts +3 -0
  62. package/dist/components/ui/label.js +14 -0
  63. package/dist/components/ui/menubar.d.ts +29 -0
  64. package/dist/components/ui/menubar.js +136 -0
  65. package/dist/components/ui/native-select.d.ts +8 -0
  66. package/dist/components/ui/native-select.js +38 -0
  67. package/dist/components/ui/navigation-menu.d.ts +11 -0
  68. package/dist/components/ui/navigation-menu.js +82 -0
  69. package/dist/components/ui/pagination.d.ts +17 -0
  70. package/dist/components/ui/pagination.js +86 -0
  71. package/dist/components/ui/popover.d.ts +9 -0
  72. package/dist/components/ui/popover.js +54 -0
  73. package/dist/components/ui/progress.d.ts +7 -0
  74. package/dist/components/ui/radio-group.d.ts +5 -0
  75. package/dist/components/ui/radio-group.js +26 -0
  76. package/dist/components/ui/resizable.d.ts +7 -0
  77. package/dist/components/ui/resizable.js +28 -0
  78. package/dist/components/ui/scroll-area.d.ts +4 -0
  79. package/dist/components/ui/scroll-area.js +35 -0
  80. package/dist/components/ui/select.d.ts +15 -0
  81. package/dist/components/ui/select.js +98 -0
  82. package/dist/components/ui/separator.d.ts +3 -0
  83. package/dist/components/ui/separator.js +14 -0
  84. package/dist/components/ui/sheet.d.ts +14 -0
  85. package/dist/components/ui/sheet.js +89 -0
  86. package/dist/components/ui/sidebar.d.ts +63 -0
  87. package/dist/components/ui/sidebar.js +358 -0
  88. package/dist/components/ui/skeleton.d.ts +2 -0
  89. package/dist/components/ui/skeleton.js +12 -0
  90. package/dist/components/ui/slider.d.ts +3 -0
  91. package/dist/components/ui/slider.js +33 -0
  92. package/dist/components/ui/sonner.d.ts +3 -0
  93. package/dist/components/ui/sonner.js +30 -0
  94. package/dist/components/ui/spinner.d.ts +2 -0
  95. package/dist/components/ui/spinner.js +14 -0
  96. package/dist/components/ui/switch.d.ts +5 -0
  97. package/dist/components/ui/switch.js +18 -0
  98. package/dist/components/ui/table.d.ts +10 -0
  99. package/dist/components/ui/table.js +67 -0
  100. package/dist/components/ui/tabs.d.ts +10 -0
  101. package/dist/components/ui/tabs.js +44 -0
  102. package/dist/components/ui/textarea.d.ts +3 -0
  103. package/dist/components/ui/textarea.js +13 -0
  104. package/dist/components/ui/toggle-group.d.ts +11 -0
  105. package/dist/components/ui/toggle-group.js +52 -0
  106. package/dist/components/ui/toggle.d.ts +8 -0
  107. package/dist/components/ui/toggle.js +36 -0
  108. package/dist/components/ui/tooltip.d.ts +6 -0
  109. package/dist/components/ui/tooltip.js +40 -0
  110. package/dist/hooks/use-mobile.d.ts +1 -0
  111. package/dist/hooks/use-mobile.js +14 -0
  112. package/dist/index.css +1 -1
  113. package/dist/index.d.ts +52 -1
  114. package/dist/index.js +54 -40132
  115. package/dist/lib/utils.d.ts +2 -0
  116. package/dist/lib/utils.js +8 -0
  117. package/package.json +1 -1
  118. package/dist/vite.svg +0 -1
@@ -0,0 +1,107 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import { Separator as t } from "./separator.js";
3
+ import { Label as n } from "./label.js";
4
+ import { useMemo as r } from "react";
5
+ import { cva as i } from "class-variance-authority";
6
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
+ //#region src/components/ui/field.tsx
8
+ function s({ className: t, ...n }) {
9
+ return /* @__PURE__ */ a("fieldset", {
10
+ "data-slot": "field-set",
11
+ className: e("flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3", t),
12
+ ...n
13
+ });
14
+ }
15
+ function c({ className: t, variant: n = "legend", ...r }) {
16
+ return /* @__PURE__ */ a("legend", {
17
+ "data-slot": "field-legend",
18
+ "data-variant": n,
19
+ className: e("mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base", t),
20
+ ...r
21
+ });
22
+ }
23
+ function l({ className: t, ...n }) {
24
+ return /* @__PURE__ */ a("div", {
25
+ "data-slot": "field-group",
26
+ className: e("group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4", t),
27
+ ...n
28
+ });
29
+ }
30
+ var u = i("group/field flex w-full gap-2 data-[invalid=true]:text-destructive", {
31
+ variants: { orientation: {
32
+ vertical: "flex-col *:w-full [&>.sr-only]:w-auto",
33
+ horizontal: "flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
34
+ responsive: "flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
35
+ } },
36
+ defaultVariants: { orientation: "vertical" }
37
+ });
38
+ function d({ className: t, orientation: n = "vertical", ...r }) {
39
+ return /* @__PURE__ */ a("div", {
40
+ role: "group",
41
+ "data-slot": "field",
42
+ "data-orientation": n,
43
+ className: e(u({ orientation: n }), t),
44
+ ...r
45
+ });
46
+ }
47
+ function f({ className: t, ...n }) {
48
+ return /* @__PURE__ */ a("div", {
49
+ "data-slot": "field-content",
50
+ className: e("group/field-content flex flex-1 flex-col gap-0.5 leading-snug", t),
51
+ ...n
52
+ });
53
+ }
54
+ function p({ className: t, ...r }) {
55
+ return /* @__PURE__ */ a(n, {
56
+ "data-slot": "field-label",
57
+ className: e("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10", "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col", t),
58
+ ...r
59
+ });
60
+ }
61
+ function m({ className: t, ...n }) {
62
+ return /* @__PURE__ */ a("div", {
63
+ "data-slot": "field-label",
64
+ className: e("flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50", t),
65
+ ...n
66
+ });
67
+ }
68
+ function h({ className: t, ...n }) {
69
+ return /* @__PURE__ */ a("p", {
70
+ "data-slot": "field-description",
71
+ className: e("text-start text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5", "last:mt-0 nth-last-2:-mt-1", "[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", t),
72
+ ...n
73
+ });
74
+ }
75
+ function g({ children: n, className: r, ...i }) {
76
+ return /* @__PURE__ */ o("div", {
77
+ "data-slot": "field-separator",
78
+ "data-content": !!n,
79
+ className: e("relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2", r),
80
+ ...i,
81
+ children: [/* @__PURE__ */ a(t, { className: "absolute inset-0 top-1/2" }), n && /* @__PURE__ */ a("span", {
82
+ className: "relative mx-auto block w-fit bg-background px-2 text-muted-foreground",
83
+ "data-slot": "field-separator-content",
84
+ children: n
85
+ })]
86
+ });
87
+ }
88
+ function _({ className: t, children: n, errors: i, ...o }) {
89
+ let s = r(() => {
90
+ if (n) return n;
91
+ if (!i?.length) return null;
92
+ let e = [...new Map(i.map((e) => [e?.message, e])).values()];
93
+ return e?.length == 1 ? e[0]?.message : /* @__PURE__ */ a("ul", {
94
+ className: "ms-4 flex list-disc flex-col gap-1",
95
+ children: e.map((e, t) => e?.message && /* @__PURE__ */ a("li", { children: e.message }, t))
96
+ });
97
+ }, [n, i]);
98
+ return s ? /* @__PURE__ */ a("div", {
99
+ role: "alert",
100
+ "data-slot": "field-error",
101
+ className: e("text-sm font-normal text-destructive", t),
102
+ ...o,
103
+ children: s
104
+ }) : null;
105
+ }
106
+ //#endregion
107
+ export { d as Field, f as FieldContent, h as FieldDescription, _ as FieldError, l as FieldGroup, p as FieldLabel, c as FieldLegend, g as FieldSeparator, s as FieldSet, m as FieldTitle };
@@ -0,0 +1,5 @@
1
+ import { PreviewCard as PreviewCardPrimitive } from '@base-ui/react/preview-card';
2
+ declare function HoverCard({ ...props }: PreviewCardPrimitive.Root.Props): import("react").JSX.Element;
3
+ declare function HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Props): import("react").JSX.Element;
4
+ declare function HoverCardContent({ className, side, sideOffset, align, alignOffset, ...props }: PreviewCardPrimitive.Popup.Props & Pick<PreviewCardPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): import("react").JSX.Element;
5
+ export { HoverCard, HoverCardTrigger, HoverCardContent };
@@ -0,0 +1,36 @@
1
+ "use client";
2
+ import { cn as e } from "../../lib/utils.js";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { PreviewCard as n } from "@base-ui/react/preview-card";
5
+ //#region src/components/ui/hover-card.tsx
6
+ function r({ ...e }) {
7
+ return /* @__PURE__ */ t(n.Root, {
8
+ "data-slot": "hover-card",
9
+ ...e
10
+ });
11
+ }
12
+ function i({ ...e }) {
13
+ return /* @__PURE__ */ t(n.Trigger, {
14
+ "data-slot": "hover-card-trigger",
15
+ ...e
16
+ });
17
+ }
18
+ function a({ className: r, side: i = "bottom", sideOffset: a = 4, align: o = "center", alignOffset: s = 4, ...c }) {
19
+ return /* @__PURE__ */ t(n.Portal, {
20
+ "data-slot": "hover-card-portal",
21
+ children: /* @__PURE__ */ t(n.Positioner, {
22
+ align: o,
23
+ alignOffset: s,
24
+ side: i,
25
+ sideOffset: a,
26
+ className: "isolate z-50",
27
+ children: /* @__PURE__ */ t(n.Popup, {
28
+ "data-slot": "hover-card-content",
29
+ className: e("z-50 w-64 origin-(--transform-origin) rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-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", r),
30
+ ...c
31
+ })
32
+ })
33
+ });
34
+ }
35
+ //#endregion
36
+ export { r as HoverCard, a as HoverCardContent, i as HoverCardTrigger };
@@ -0,0 +1,18 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { Button } from './button';
3
+ import * as React from "react";
4
+ declare function InputGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
5
+ declare const inputGroupAddonVariants: (props?: ({
6
+ align?: "inline-end" | "inline-start" | "block-end" | "block-start" | null | undefined;
7
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
+ declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>): React.JSX.Element;
9
+ declare const inputGroupButtonVariants: (props?: ({
10
+ size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
11
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
12
+ declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, "size" | "type"> & VariantProps<typeof inputGroupButtonVariants> & {
13
+ type?: "button" | "submit" | "reset";
14
+ }): React.JSX.Element;
15
+ declare function InputGroupText({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
16
+ declare function InputGroupInput({ className, ...props }: React.ComponentProps<"input">): React.JSX.Element;
17
+ declare function InputGroupTextarea({ className, ...props }: React.ComponentProps<"textarea">): React.JSX.Element;
18
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, };
@@ -0,0 +1,78 @@
1
+ "use client";
2
+ import { cn as e } from "../../lib/utils.js";
3
+ import { Button as t } from "./button.js";
4
+ import { Input as n } from "./input.js";
5
+ import { Textarea as r } from "./textarea.js";
6
+ import "react";
7
+ import { cva as i } from "class-variance-authority";
8
+ import { jsx as a } from "react/jsx-runtime";
9
+ //#region src/components/ui/input-group.tsx
10
+ function o({ className: t, ...n }) {
11
+ return /* @__PURE__ */ a("div", {
12
+ "data-slot": "input-group",
13
+ role: "group",
14
+ className: e("group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pe-1.5 has-[>[data-align=inline-start]]:[&>input]:ps-1.5", t),
15
+ ...n
16
+ });
17
+ }
18
+ var s = i("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4", {
19
+ variants: { align: {
20
+ "inline-start": "order-first ps-2 has-[>button]:ms-[-0.3rem] has-[>kbd]:ms-[-0.15rem]",
21
+ "inline-end": "order-last pe-2 has-[>button]:me-[-0.3rem] has-[>kbd]:me-[-0.15rem]",
22
+ "block-start": "order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2",
23
+ "block-end": "order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"
24
+ } },
25
+ defaultVariants: { align: "inline-start" }
26
+ });
27
+ function c({ className: t, align: n = "inline-start", ...r }) {
28
+ return /* @__PURE__ */ a("div", {
29
+ role: "group",
30
+ "data-slot": "input-group-addon",
31
+ "data-align": n,
32
+ className: e(s({ align: n }), t),
33
+ onClick: (e) => {
34
+ e.target.closest("button") || e.currentTarget.parentElement?.querySelector("input")?.focus();
35
+ },
36
+ ...r
37
+ });
38
+ }
39
+ var l = i("flex items-center gap-2 text-sm shadow-none", {
40
+ variants: { size: {
41
+ xs: "h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
42
+ sm: "",
43
+ "icon-xs": "size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0",
44
+ "icon-sm": "size-8 p-0 has-[>svg]:p-0"
45
+ } },
46
+ defaultVariants: { size: "xs" }
47
+ });
48
+ function u({ className: n, type: r = "button", variant: i = "ghost", size: o = "xs", ...s }) {
49
+ return /* @__PURE__ */ a(t, {
50
+ type: r,
51
+ "data-size": o,
52
+ variant: i,
53
+ className: e(l({ size: o }), n),
54
+ ...s
55
+ });
56
+ }
57
+ function d({ className: t, ...n }) {
58
+ return /* @__PURE__ */ a("span", {
59
+ className: e("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", t),
60
+ ...n
61
+ });
62
+ }
63
+ function f({ className: t, ...r }) {
64
+ return /* @__PURE__ */ a(n, {
65
+ "data-slot": "input-group-control",
66
+ className: e("flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent", t),
67
+ ...r
68
+ });
69
+ }
70
+ function p({ className: t, ...n }) {
71
+ return /* @__PURE__ */ a(r, {
72
+ "data-slot": "input-group-control",
73
+ className: e("flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent", t),
74
+ ...n
75
+ });
76
+ }
77
+ //#endregion
78
+ export { o as InputGroup, c as InputGroupAddon, u as InputGroupButton, f as InputGroupInput, d as InputGroupText, p as InputGroupTextarea };
@@ -0,0 +1,11 @@
1
+ import { OTPInput } from 'input-otp';
2
+ import * as React from "react";
3
+ declare function InputOTP({ className, containerClassName, ...props }: React.ComponentProps<typeof OTPInput> & {
4
+ containerClassName?: string;
5
+ }): React.JSX.Element;
6
+ declare function InputOTPGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
7
+ declare function InputOTPSlot({ index, className, ...props }: React.ComponentProps<"div"> & {
8
+ index: number;
9
+ }): React.JSX.Element;
10
+ declare function InputOTPSeparator({ ...props }: React.ComponentProps<"div">): React.JSX.Element;
11
+ export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
@@ -0,0 +1,46 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import * as t from "react";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ import { MinusIcon as i } from "lucide-react";
5
+ import { OTPInput as a, OTPInputContext as o } from "input-otp";
6
+ //#region src/components/ui/input-otp.tsx
7
+ function s({ className: t, containerClassName: r, ...i }) {
8
+ return /* @__PURE__ */ n(a, {
9
+ "data-slot": "input-otp",
10
+ containerClassName: e("cn-input-otp flex items-center has-disabled:opacity-50", r),
11
+ spellCheck: !1,
12
+ className: e("disabled:cursor-not-allowed", t),
13
+ ...i
14
+ });
15
+ }
16
+ function c({ className: t, ...r }) {
17
+ return /* @__PURE__ */ n("div", {
18
+ "data-slot": "input-otp-group",
19
+ className: e("flex items-center rounded-lg has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40", t),
20
+ ...r
21
+ });
22
+ }
23
+ function l({ index: i, className: a, ...s }) {
24
+ let { char: c, hasFakeCaret: l, isActive: u } = t.useContext(o)?.slots[i] ?? {};
25
+ return /* @__PURE__ */ r("div", {
26
+ "data-slot": "input-otp-slot",
27
+ "data-active": u,
28
+ className: e("relative flex size-8 items-center justify-center border-y border-e border-input text-sm transition-all outline-none first:rounded-s-lg first:border-s last:rounded-e-lg aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-3 data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40", a),
29
+ ...s,
30
+ children: [c, l && /* @__PURE__ */ n("div", {
31
+ className: "pointer-events-none absolute inset-0 flex items-center justify-center",
32
+ children: /* @__PURE__ */ n("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" })
33
+ })]
34
+ });
35
+ }
36
+ function u({ ...e }) {
37
+ return /* @__PURE__ */ n("div", {
38
+ "data-slot": "input-otp-separator",
39
+ className: "flex items-center [&_svg:not([class*='size-'])]:size-4",
40
+ role: "separator",
41
+ ...e,
42
+ children: /* @__PURE__ */ n(i, {})
43
+ });
44
+ }
45
+ //#endregion
46
+ export { s as InputOTP, c as InputOTPGroup, u as InputOTPSeparator, l as InputOTPSlot };
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare function Input({ className, type, ...props }: React.ComponentProps<"input">): React.JSX.Element;
3
+ export { Input };
@@ -0,0 +1,15 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import "react";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { Input as n } from "@base-ui/react/input";
5
+ //#region src/components/ui/input.tsx
6
+ function r({ className: r, type: i, ...a }) {
7
+ return /* @__PURE__ */ t(n, {
8
+ type: i,
9
+ "data-slot": "input",
10
+ className: e("h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", r),
11
+ ...a
12
+ });
13
+ }
14
+ //#endregion
15
+ export { r as Input };
@@ -0,0 +1,22 @@
1
+ import { useRender } from '@base-ui/react/use-render';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import { Separator } from './separator';
4
+ import * as React from "react";
5
+ declare function ItemGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
6
+ declare function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): React.JSX.Element;
7
+ declare const itemVariants: (props?: ({
8
+ variant?: "default" | "outline" | "muted" | null | undefined;
9
+ size?: "default" | "xs" | "sm" | null | undefined;
10
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
11
+ declare function Item({ className, variant, size, render, ...props }: useRender.ComponentProps<"div"> & VariantProps<typeof itemVariants>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
12
+ declare const itemMediaVariants: (props?: ({
13
+ variant?: "default" | "icon" | "image" | null | undefined;
14
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
15
+ declare function ItemMedia({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof itemMediaVariants>): React.JSX.Element;
16
+ declare function ItemContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
17
+ declare function ItemTitle({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
18
+ declare function ItemDescription({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
19
+ declare function ItemActions({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
20
+ declare function ItemHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
21
+ declare function ItemFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
22
+ export { Item, ItemMedia, ItemContent, ItemActions, ItemGroup, ItemSeparator, ItemTitle, ItemDescription, ItemHeader, ItemFooter, };
@@ -0,0 +1,121 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import { Separator as t } from "./separator.js";
3
+ import "react";
4
+ import { mergeProps as n } from "@base-ui/react/merge-props";
5
+ import { useRender as r } from "@base-ui/react/use-render";
6
+ import { cva as i } from "class-variance-authority";
7
+ import { jsx as a } from "react/jsx-runtime";
8
+ //#region src/components/ui/item.tsx
9
+ function o({ className: t, ...n }) {
10
+ return /* @__PURE__ */ a("div", {
11
+ role: "list",
12
+ "data-slot": "item-group",
13
+ className: e("group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2", t),
14
+ ...n
15
+ });
16
+ }
17
+ function s({ className: n, ...r }) {
18
+ return /* @__PURE__ */ a(t, {
19
+ "data-slot": "item-separator",
20
+ orientation: "horizontal",
21
+ className: e("my-2", n),
22
+ ...r
23
+ });
24
+ }
25
+ var c = i("group/item flex w-full flex-wrap items-center rounded-lg border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted", {
26
+ variants: {
27
+ variant: {
28
+ default: "border-transparent",
29
+ outline: "border-border",
30
+ muted: "border-transparent bg-muted/50"
31
+ },
32
+ size: {
33
+ default: "gap-2.5 px-3 py-2.5",
34
+ sm: "gap-2.5 px-3 py-2.5",
35
+ xs: "gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0"
36
+ }
37
+ },
38
+ defaultVariants: {
39
+ variant: "default",
40
+ size: "default"
41
+ }
42
+ });
43
+ function l({ className: t, variant: i = "default", size: a = "default", render: o, ...s }) {
44
+ return r({
45
+ defaultTagName: "div",
46
+ props: n({ className: e(c({
47
+ variant: i,
48
+ size: a,
49
+ className: t
50
+ })) }, s),
51
+ render: o,
52
+ state: {
53
+ slot: "item",
54
+ variant: i,
55
+ size: a
56
+ }
57
+ });
58
+ }
59
+ var u = i("flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none", {
60
+ variants: { variant: {
61
+ default: "bg-transparent",
62
+ icon: "[&_svg:not([class*='size-'])]:size-4",
63
+ image: "size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover"
64
+ } },
65
+ defaultVariants: { variant: "default" }
66
+ });
67
+ function d({ className: t, variant: n = "default", ...r }) {
68
+ return /* @__PURE__ */ a("div", {
69
+ "data-slot": "item-media",
70
+ "data-variant": n,
71
+ className: e(u({
72
+ variant: n,
73
+ className: t
74
+ })),
75
+ ...r
76
+ });
77
+ }
78
+ function f({ className: t, ...n }) {
79
+ return /* @__PURE__ */ a("div", {
80
+ "data-slot": "item-content",
81
+ className: e("flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none", t),
82
+ ...n
83
+ });
84
+ }
85
+ function p({ className: t, ...n }) {
86
+ return /* @__PURE__ */ a("div", {
87
+ "data-slot": "item-title",
88
+ className: e("line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4", t),
89
+ ...n
90
+ });
91
+ }
92
+ function m({ className: t, ...n }) {
93
+ return /* @__PURE__ */ a("p", {
94
+ "data-slot": "item-description",
95
+ className: e("line-clamp-2 text-start text-sm leading-normal font-normal text-muted-foreground group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", t),
96
+ ...n
97
+ });
98
+ }
99
+ function h({ className: t, ...n }) {
100
+ return /* @__PURE__ */ a("div", {
101
+ "data-slot": "item-actions",
102
+ className: e("flex items-center gap-2", t),
103
+ ...n
104
+ });
105
+ }
106
+ function g({ className: t, ...n }) {
107
+ return /* @__PURE__ */ a("div", {
108
+ "data-slot": "item-header",
109
+ className: e("flex basis-full items-center justify-between gap-2", t),
110
+ ...n
111
+ });
112
+ }
113
+ function _({ className: t, ...n }) {
114
+ return /* @__PURE__ */ a("div", {
115
+ "data-slot": "item-footer",
116
+ className: e("flex basis-full items-center justify-between gap-2", t),
117
+ ...n
118
+ });
119
+ }
120
+ //#endregion
121
+ export { l as Item, h as ItemActions, f as ItemContent, m as ItemDescription, _ as ItemFooter, o as ItemGroup, g as ItemHeader, d as ItemMedia, s as ItemSeparator, p as ItemTitle };
@@ -0,0 +1,3 @@
1
+ declare function Kbd({ className, ...props }: React.ComponentProps<"kbd">): import("react").JSX.Element;
2
+ declare function KbdGroup({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
3
+ export { Kbd, KbdGroup };
@@ -0,0 +1,19 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ //#region src/components/ui/kbd.tsx
4
+ function n({ className: n, ...r }) {
5
+ return /* @__PURE__ */ t("kbd", {
6
+ "data-slot": "kbd",
7
+ className: e("pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 [&_svg:not([class*='size-'])]:size-3", n),
8
+ ...r
9
+ });
10
+ }
11
+ function r({ className: n, ...r }) {
12
+ return /* @__PURE__ */ t("kbd", {
13
+ "data-slot": "kbd-group",
14
+ className: e("inline-flex items-center gap-1", n),
15
+ ...r
16
+ });
17
+ }
18
+ //#endregion
19
+ export { n as Kbd, r as KbdGroup };
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare function Label({ className, ...props }: React.ComponentProps<"label">): React.JSX.Element;
3
+ export { Label };
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { cn as e } from "../../lib/utils.js";
3
+ import "react";
4
+ import { jsx as t } from "react/jsx-runtime";
5
+ //#region src/components/ui/label.tsx
6
+ function n({ className: n, ...r }) {
7
+ return /* @__PURE__ */ t("label", {
8
+ "data-slot": "label",
9
+ className: e("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", n),
10
+ ...r
11
+ });
12
+ }
13
+ //#endregion
14
+ export { n as Label };
@@ -0,0 +1,29 @@
1
+ import { Menu as MenuPrimitive } from '@base-ui/react/menu';
2
+ import { Menubar as MenubarPrimitive } from '@base-ui/react/menubar';
3
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './dropdown-menu';
4
+ import * as React from "react";
5
+ declare function Menubar({ className, ...props }: MenubarPrimitive.Props): React.JSX.Element;
6
+ declare function MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownMenu>): React.JSX.Element;
7
+ declare function MenubarGroup({ ...props }: React.ComponentProps<typeof DropdownMenuGroup>): React.JSX.Element;
8
+ declare function MenubarPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPortal>): React.JSX.Element;
9
+ declare function MenubarTrigger({ className, ...props }: React.ComponentProps<typeof DropdownMenuTrigger>): React.JSX.Element;
10
+ declare function MenubarContent({ className, align, alignOffset, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuContent>): React.JSX.Element;
11
+ declare function MenubarItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuItem>): React.JSX.Element;
12
+ declare function MenubarCheckboxItem({ className, children, checked, inset, ...props }: MenuPrimitive.CheckboxItem.Props & {
13
+ inset?: boolean;
14
+ }): React.JSX.Element;
15
+ declare function MenubarRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuRadioGroup>): React.JSX.Element;
16
+ declare function MenubarRadioItem({ className, children, inset, ...props }: MenuPrimitive.RadioItem.Props & {
17
+ inset?: boolean;
18
+ }): React.JSX.Element;
19
+ declare function MenubarLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuLabel> & {
20
+ inset?: boolean;
21
+ }): React.JSX.Element;
22
+ declare function MenubarSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuSeparator>): React.JSX.Element;
23
+ declare function MenubarShortcut({ className, ...props }: React.ComponentProps<typeof DropdownMenuShortcut>): React.JSX.Element;
24
+ declare function MenubarSub({ ...props }: React.ComponentProps<typeof DropdownMenuSub>): React.JSX.Element;
25
+ declare function MenubarSubTrigger({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuSubTrigger> & {
26
+ inset?: boolean;
27
+ }): React.JSX.Element;
28
+ declare function MenubarSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuSubContent>): React.JSX.Element;
29
+ export { Menubar, MenubarPortal, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarSeparator, MenubarLabel, MenubarItem, MenubarShortcut, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSub, MenubarSubTrigger, MenubarSubContent, };