@getgreenline/blaze-ui 1.0.15 → 1.0.17

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 (129) hide show
  1. package/dist/components/accordion.d.ts +8 -0
  2. package/dist/components/accordion.d.ts.map +1 -0
  3. package/dist/components/accordion.js +19 -0
  4. package/dist/components/alert.d.ts +10 -0
  5. package/dist/components/alert.d.ts.map +1 -0
  6. package/dist/components/alert.js +26 -0
  7. package/dist/components/aspect-ratio.d.ts +4 -0
  8. package/dist/components/aspect-ratio.d.ts.map +1 -0
  9. package/dist/components/aspect-ratio.js +8 -0
  10. package/dist/components/avatar.d.ts +7 -0
  11. package/dist/components/avatar.d.ts.map +1 -0
  12. package/dist/components/avatar.js +15 -0
  13. package/dist/components/breadcrumb.d.ts +12 -0
  14. package/dist/components/breadcrumb.d.ts.map +1 -0
  15. package/dist/components/breadcrumb.js +29 -0
  16. package/dist/components/button-group.d.ts +12 -0
  17. package/dist/components/button-group.d.ts.map +1 -0
  18. package/dist/components/button-group.js +29 -0
  19. package/dist/components/button.js +1 -1
  20. package/dist/components/carousel.d.ts +20 -0
  21. package/dist/components/carousel.d.ts.map +1 -0
  22. package/dist/components/carousel.js +92 -0
  23. package/dist/components/chart.d.ts +41 -0
  24. package/dist/components/chart.d.ts.map +1 -0
  25. package/dist/components/chart.js +133 -0
  26. package/dist/components/collapsible.d.ts +6 -0
  27. package/dist/components/collapsible.d.ts.map +1 -0
  28. package/dist/components/collapsible.js +14 -0
  29. package/dist/components/command.d.ts +19 -0
  30. package/dist/components/command.d.ts.map +1 -0
  31. package/dist/components/command.js +35 -0
  32. package/dist/components/context-menu.d.ts +26 -0
  33. package/dist/components/context-menu.d.ts.map +1 -0
  34. package/dist/components/context-menu.js +52 -0
  35. package/dist/components/dialog.d.ts +16 -0
  36. package/dist/components/dialog.d.ts.map +1 -0
  37. package/dist/components/dialog.js +37 -0
  38. package/dist/components/drawer.d.ts +14 -0
  39. package/dist/components/drawer.d.ts.map +1 -0
  40. package/dist/components/drawer.js +36 -0
  41. package/dist/components/dropdown-menu.d.ts +26 -0
  42. package/dist/components/dropdown-menu.d.ts.map +1 -0
  43. package/dist/components/dropdown-menu.js +52 -0
  44. package/dist/components/empty.d.ts +12 -0
  45. package/dist/components/empty.d.ts.map +1 -0
  46. package/dist/components/empty.js +35 -0
  47. package/dist/components/field.d.ts +25 -0
  48. package/dist/components/field.d.ts.map +1 -0
  49. package/dist/components/field.js +74 -0
  50. package/dist/components/form.d.ts +25 -0
  51. package/dist/components/form.d.ts.map +1 -0
  52. package/dist/components/form.js +60 -0
  53. package/dist/components/hover-card.d.ts +7 -0
  54. package/dist/components/hover-card.d.ts.map +1 -0
  55. package/dist/components/hover-card.js +15 -0
  56. package/dist/components/input-group.d.ts +17 -0
  57. package/dist/components/input-group.d.ts.map +1 -0
  58. package/dist/components/input-group.js +64 -0
  59. package/dist/components/input-otp.d.ts +12 -0
  60. package/dist/components/input-otp.d.ts.map +1 -0
  61. package/dist/components/input-otp.js +22 -0
  62. package/dist/components/item.d.ts +24 -0
  63. package/dist/components/item.d.ts.map +1 -0
  64. package/dist/components/item.js +68 -0
  65. package/dist/components/kbd.d.ts +4 -0
  66. package/dist/components/kbd.d.ts.map +1 -0
  67. package/dist/components/kbd.js +11 -0
  68. package/dist/components/menubar.d.ts +27 -0
  69. package/dist/components/menubar.d.ts.map +1 -0
  70. package/dist/components/menubar.js +55 -0
  71. package/dist/components/navigation-menu.d.ts +15 -0
  72. package/dist/components/navigation-menu.d.ts.map +1 -0
  73. package/dist/components/navigation-menu.js +33 -0
  74. package/dist/components/pagination.d.ts +14 -0
  75. package/dist/components/pagination.d.ts.map +1 -0
  76. package/dist/components/pagination.js +31 -0
  77. package/dist/components/progress.d.ts +5 -0
  78. package/dist/components/progress.d.ts.map +1 -0
  79. package/dist/components/progress.js +9 -0
  80. package/dist/components/resizable.d.ts +9 -0
  81. package/dist/components/resizable.d.ts.map +1 -0
  82. package/dist/components/resizable.js +16 -0
  83. package/dist/components/segmented-control.js +1 -1
  84. package/dist/components/separator.d.ts +5 -0
  85. package/dist/components/separator.d.ts.map +1 -0
  86. package/dist/components/separator.js +9 -0
  87. package/dist/components/sheet.js +10 -10
  88. package/dist/components/sidebar.d.ts +70 -0
  89. package/dist/components/sidebar.d.ts.map +1 -0
  90. package/dist/components/sidebar.js +213 -0
  91. package/dist/components/skeleton.d.ts +3 -0
  92. package/dist/components/skeleton.d.ts.map +1 -0
  93. package/dist/components/skeleton.js +8 -0
  94. package/dist/components/slider.d.ts +5 -0
  95. package/dist/components/slider.d.ts.map +1 -0
  96. package/dist/components/slider.js +15 -0
  97. package/dist/components/sonner.d.ts +4 -0
  98. package/dist/components/sonner.d.ts.map +1 -0
  99. package/dist/components/sonner.js +22 -0
  100. package/dist/components/spinner.d.ts +3 -0
  101. package/dist/components/spinner.d.ts.map +1 -0
  102. package/dist/components/spinner.js +9 -0
  103. package/dist/components/switch.js +1 -1
  104. package/dist/components/table.d.ts +11 -0
  105. package/dist/components/table.d.ts.map +1 -0
  106. package/dist/components/table.js +29 -0
  107. package/dist/components/tabs.d.ts +8 -0
  108. package/dist/components/tabs.d.ts.map +1 -0
  109. package/dist/components/tabs.js +18 -0
  110. package/dist/components/textarea.d.ts +4 -0
  111. package/dist/components/textarea.d.ts.map +1 -0
  112. package/dist/components/textarea.js +8 -0
  113. package/dist/components/toggle-group.d.ts +8 -0
  114. package/dist/components/toggle-group.d.ts.map +1 -0
  115. package/dist/components/toggle-group.js +22 -0
  116. package/dist/components/toggle.d.ts +10 -0
  117. package/dist/components/toggle.d.ts.map +1 -0
  118. package/dist/components/toggle.js +27 -0
  119. package/dist/components/tooltip.d.ts +8 -0
  120. package/dist/components/tooltip.d.ts.map +1 -0
  121. package/dist/components/tooltip.js +18 -0
  122. package/dist/globals.css +155 -188
  123. package/dist/hooks/use-mobile.d.ts +2 -0
  124. package/dist/hooks/use-mobile.d.ts.map +1 -0
  125. package/dist/hooks/use-mobile.js +18 -0
  126. package/dist/index.d.ts +40 -0
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +40 -0
  129. package/package.json +29 -3
@@ -0,0 +1,60 @@
1
+ import { jsx } from 'react/jsx-runtime.js';
2
+ import * as React from 'react';
3
+ import { Slot } from '@radix-ui/react-slot';
4
+ import { FormProvider, useFormContext, useFormState, Controller } from 'react-hook-form';
5
+ import { cn } from '../lib/utils.js';
6
+ import { Label } from './label.js';
7
+
8
+ const Form = FormProvider;
9
+ const FormFieldContext = React.createContext({});
10
+ const FormField = ({ ...props }) => {
11
+ return (jsx(FormFieldContext.Provider, { value: { name: props.name }, children: jsx(Controller, { ...props }) }));
12
+ };
13
+ const useFormField = () => {
14
+ const fieldContext = React.useContext(FormFieldContext);
15
+ const itemContext = React.useContext(FormItemContext);
16
+ const { getFieldState } = useFormContext();
17
+ const formState = useFormState({ name: fieldContext.name });
18
+ const fieldState = getFieldState(fieldContext.name, formState);
19
+ if (!fieldContext) {
20
+ throw new Error("useFormField should be used within <FormField>");
21
+ }
22
+ const { id } = itemContext;
23
+ return {
24
+ id,
25
+ name: fieldContext.name,
26
+ formItemId: `${id}-form-item`,
27
+ formDescriptionId: `${id}-form-item-description`,
28
+ formMessageId: `${id}-form-item-message`,
29
+ ...fieldState,
30
+ };
31
+ };
32
+ const FormItemContext = React.createContext({});
33
+ function FormItem({ className, ...props }) {
34
+ const id = React.useId();
35
+ return (jsx(FormItemContext.Provider, { value: { id }, children: jsx("div", { "data-slot": "form-item", className: cn("tw:grid tw:gap-2", className), ...props }) }));
36
+ }
37
+ function FormLabel({ className, ...props }) {
38
+ const { error, formItemId } = useFormField();
39
+ return (jsx(Label, { "data-slot": "form-label", "data-error": !!error, className: cn("data-[error=true]:tw:text-destructive", className), htmlFor: formItemId, ...props }));
40
+ }
41
+ function FormControl({ ...props }) {
42
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
43
+ return (jsx(Slot, { "data-slot": "form-control", id: formItemId, "aria-describedby": !error
44
+ ? `${formDescriptionId}`
45
+ : `${formDescriptionId} ${formMessageId}`, "aria-invalid": !!error, ...props }));
46
+ }
47
+ function FormDescription({ className, ...props }) {
48
+ const { formDescriptionId } = useFormField();
49
+ return (jsx("p", { "data-slot": "form-description", id: formDescriptionId, className: cn("tw:text-muted-foreground tw:text-sm", className), ...props }));
50
+ }
51
+ function FormMessage({ className, ...props }) {
52
+ const { error, formMessageId } = useFormField();
53
+ const body = error ? String(error?.message ?? "") : props.children;
54
+ if (!body) {
55
+ return null;
56
+ }
57
+ return (jsx("p", { "data-slot": "form-message", id: formMessageId, className: cn("tw:text-destructive tw:text-sm", className), ...props, children: body }));
58
+ }
59
+
60
+ export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
3
+ declare function HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
+ declare function HoverCardContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof HoverCardPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
6
+ export { HoverCard, HoverCardTrigger, HoverCardContent };
7
+ //# sourceMappingURL=hover-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover-card.d.ts","sourceRoot":"","sources":["../../src/components/hover-card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,kBAAkB,MAAM,4BAA4B,CAAA;AAIhE,iBAAS,SAAS,CAAC,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,2CAEtD;AAED,iBAAS,gBAAgB,CAAC,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,2CAIzD;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,2CAezD;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { jsx } from 'react/jsx-runtime.js';
2
+ import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
3
+ import { cn } from '../lib/utils.js';
4
+
5
+ function HoverCard({ ...props }) {
6
+ return jsx(HoverCardPrimitive.Root, { "data-slot": "hover-card", ...props });
7
+ }
8
+ function HoverCardTrigger({ ...props }) {
9
+ return (jsx(HoverCardPrimitive.Trigger, { "data-slot": "hover-card-trigger", ...props }));
10
+ }
11
+ function HoverCardContent({ className, align = "center", sideOffset = 4, ...props }) {
12
+ return (jsx(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: jsx(HoverCardPrimitive.Content, { "data-slot": "hover-card-content", align: align, sideOffset: sideOffset, className: cn("tw:bg-popover tw:text-popover-foreground tw:data-[state=open]:animate-in tw:data-[state=closed]:animate-out tw:data-[state=closed]:fade-out-0 tw:data-[state=open]:fade-in-0 tw:data-[state=closed]:zoom-out-95 tw:data-[state=open]:zoom-in-95 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:z-50 tw:w-64 tw:origin-(--radix-hover-card-content-transform-origin) tw:rounded-md tw:border tw:p-4 tw:shadow-md tw:outline-hidden", className), ...props }) }));
13
+ }
14
+
15
+ export { HoverCard, HoverCardContent, HoverCardTrigger };
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ import { Button } from "../components/button";
4
+ declare function InputGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
5
+ declare const inputGroupAddonVariants: (props?: ({
6
+ align?: "block-end" | "block-start" | "inline-end" | "inline-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>): import("react/jsx-runtime").JSX.Element;
9
+ declare const inputGroupButtonVariants: (props?: ({
10
+ size?: "sm" | "xs" | "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"> & VariantProps<typeof inputGroupButtonVariants>): import("react/jsx-runtime").JSX.Element;
13
+ declare function InputGroupText({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
14
+ declare function InputGroupInput({ className, ...props }: React.ComponentProps<"input">): import("react/jsx-runtime").JSX.Element;
15
+ declare function InputGroupTextarea({ className, ...props }: React.ComponentProps<"textarea">): import("react/jsx-runtime").JSX.Element;
16
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, };
17
+ //# sourceMappingURL=input-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-group.d.ts","sourceRoot":"","sources":["../../src/components/input-group.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAI7C,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CA0BvE;AAED,QAAA,MAAM,uBAAuB;;8EAmB5B,CAAA;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,KAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,uBAAuB,CAAC,2CAgB5E;AAED,QAAA,MAAM,wBAAwB;;8EAgB7B,CAAA;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,IAAe,EACf,OAAiB,EACjB,IAAW,EACX,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,GAClD,YAAY,CAAC,OAAO,wBAAwB,CAAC,2CAU9C;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAU5E;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAW/B;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,2CAWlC;AAED,OAAO,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,GACnB,CAAA"}
@@ -0,0 +1,64 @@
1
+ import { jsx } from 'react/jsx-runtime.js';
2
+ import { cva } from 'class-variance-authority';
3
+ import { cn } from '../lib/utils.js';
4
+ import { Button } from './button.js';
5
+ import { Input } from './input.js';
6
+ import { Textarea } from './textarea.js';
7
+
8
+ function InputGroup({ className, ...props }) {
9
+ return (jsx("div", { "data-slot": "input-group", role: "group", className: cn("group/input-group tw:border-input dark:tw:bg-input/30 tw:relative tw:flex tw:w-full tw:items-center tw:rounded-md tw:border tw:shadow-xs tw:transition-[color,box-shadow] tw:outline-none", "tw:h-9 tw:min-w-0 has-[>textarea]:tw:h-auto",
10
+ // Variants based on alignment.
11
+ "has-[>[data-align=inline-start]]:[&>input]:tw:pl-2", "has-[>[data-align=inline-end]]:[&>input]:tw:pr-2", "has-[>[data-align=block-start]]:tw:h-auto has-[>[data-align=block-start]]:tw:flex-col has-[>[data-align=block-start]]:[&>input]:tw:pb-3", "has-[>[data-align=block-end]]:tw:h-auto has-[>[data-align=block-end]]:tw:flex-col has-[>[data-align=block-end]]:[&>input]:tw:pt-3",
12
+ // Focus state.
13
+ "has-[[data-slot=input-group-control]:focus-visible]:tw:border-ring has-[[data-slot=input-group-control]:focus-visible]:tw:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:tw:ring-[3px]",
14
+ // Error state.
15
+ "has-[[data-slot][aria-invalid=true]]:tw:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:tw:border-destructive dark:has-[[data-slot][aria-invalid=true]]:tw:ring-destructive/40", className), ...props }));
16
+ }
17
+ const inputGroupAddonVariants = cva("tw:text-muted-foreground tw:flex tw:h-auto tw:cursor-text tw:items-center tw:justify-center tw:gap-2 tw:py-1.5 tw:text-sm tw:font-medium tw:select-none [&>svg:not([class*='size-'])]:tw:size-4 [&>kbd]:tw:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:tw:opacity-50", {
18
+ variants: {
19
+ align: {
20
+ "inline-start": "tw:order-first tw:pl-3 has-[>button]:tw:ml-[-0.45rem] has-[>kbd]:tw:ml-[-0.35rem]",
21
+ "inline-end": "tw:order-last tw:pr-3 has-[>button]:tw:mr-[-0.45rem] has-[>kbd]:tw:mr-[-0.35rem]",
22
+ "block-start": "tw:order-first tw:w-full tw:justify-start tw:px-3 tw:pt-3 [.tw:border-b]:tw:pb-3 group-has-[>input]/input-group:tw:pt-2.5",
23
+ "block-end": "tw:order-last tw:w-full tw:justify-start tw:px-3 tw:pb-3 [.tw:border-t]:tw:pt-3 group-has-[>input]/input-group:tw:pb-2.5",
24
+ },
25
+ },
26
+ defaultVariants: {
27
+ align: "inline-start",
28
+ },
29
+ });
30
+ function InputGroupAddon({ className, align = "inline-start", ...props }) {
31
+ return (jsx("div", { role: "group", "data-slot": "input-group-addon", "data-align": align, className: cn(inputGroupAddonVariants({ align }), className), onClick: (e) => {
32
+ if (e.target.closest("button")) {
33
+ return;
34
+ }
35
+ e.currentTarget.parentElement?.querySelector("input")?.focus();
36
+ }, ...props }));
37
+ }
38
+ const inputGroupButtonVariants = cva("tw:text-sm tw:shadow-none tw:flex tw:gap-2 tw:items-center", {
39
+ variants: {
40
+ size: {
41
+ xs: "tw:h-6 tw:gap-1 tw:px-2 tw:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:tw:size-3.5 has-[>svg]:tw:px-2",
42
+ sm: "tw:h-8 tw:px-2.5 tw:gap-1.5 tw:rounded-md has-[>svg]:tw:px-2.5",
43
+ "icon-xs": "tw:size-6 tw:rounded-[calc(var(--radius)-5px)] tw:p-0 has-[>svg]:tw:p-0",
44
+ "icon-sm": "tw:size-8 tw:p-0 has-[>svg]:tw:p-0",
45
+ },
46
+ },
47
+ defaultVariants: {
48
+ size: "xs",
49
+ },
50
+ });
51
+ function InputGroupButton({ className, type = "button", variant = "ghost", size = "xs", ...props }) {
52
+ return (jsx(Button, { type: type, "data-size": size, variant: variant, className: cn(inputGroupButtonVariants({ size }), className), ...props }));
53
+ }
54
+ function InputGroupText({ className, ...props }) {
55
+ return (jsx("span", { className: cn("tw:text-muted-foreground tw:flex tw:items-center tw:gap-2 tw:text-sm [&_svg]:tw:pointer-events-none [&_svg:not([class*='size-'])]:tw:size-4", className), ...props }));
56
+ }
57
+ function InputGroupInput({ className, ...props }) {
58
+ return (jsx(Input, { "data-slot": "input-group-control", className: cn("tw:flex-1 tw:rounded-none tw:border-0 tw:bg-transparent tw:shadow-none focus-visible:tw:ring-0 dark:tw:bg-transparent", className), ...props }));
59
+ }
60
+ function InputGroupTextarea({ className, ...props }) {
61
+ return (jsx(Textarea, { "data-slot": "input-group-control", className: cn("tw:flex-1 tw:resize-none tw:rounded-none tw:border-0 tw:bg-transparent tw:py-3 tw:shadow-none focus-visible:tw:ring-0 dark:tw:bg-transparent", className), ...props }));
62
+ }
63
+
64
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ import { OTPInput } from "input-otp";
3
+ declare function InputOTP({ className, containerClassName, ...props }: React.ComponentProps<typeof OTPInput> & {
4
+ containerClassName?: string;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ declare function InputOTPGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
7
+ declare function InputOTPSlot({ index, className, ...props }: React.ComponentProps<"div"> & {
8
+ index: number;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ declare function InputOTPSeparator({ ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
11
+ export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
12
+ //# sourceMappingURL=input-otp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-otp.d.ts","sourceRoot":"","sources":["../../src/components/input-otp.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAA;AAKrD,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,kBAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,GAAG;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B,2CAYA;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQ1E;AAED,iBAAS,YAAY,CAAC,EACpB,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;CACd,2CAsBA;AAED,iBAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAMnE;AAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime.js';
2
+ import * as React from 'react';
3
+ import { OTPInput, OTPInputContext } from 'input-otp';
4
+ import { MinusIcon } from 'lucide-react';
5
+ import { cn } from '../lib/utils.js';
6
+
7
+ function InputOTP({ className, containerClassName, ...props }) {
8
+ return (jsx(OTPInput, { "data-slot": "input-otp", containerClassName: cn("tw:flex tw:items-center tw:gap-2 tw:has-disabled:opacity-50", containerClassName), className: cn("tw:disabled:cursor-not-allowed", className), ...props }));
9
+ }
10
+ function InputOTPGroup({ className, ...props }) {
11
+ return (jsx("div", { "data-slot": "input-otp-group", className: cn("tw:flex tw:items-center", className), ...props }));
12
+ }
13
+ function InputOTPSlot({ index, className, ...props }) {
14
+ const inputOTPContext = React.useContext(OTPInputContext);
15
+ const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
16
+ return (jsxs("div", { "data-slot": "input-otp-slot", "data-active": isActive, className: cn("tw:data-[active=true]:border-ring tw:data-[active=true]:ring-ring/50 tw:data-[active=true]:aria-invalid:ring-destructive/20 tw:dark:data-[active=true]:aria-invalid:ring-destructive/40 tw:aria-invalid:border-destructive tw:data-[active=true]:aria-invalid:border-destructive tw:dark:bg-input/30 tw:border-input tw:relative tw:flex tw:h-9 tw:w-9 tw:items-center tw:justify-center tw:border-y tw:border-r tw:text-sm tw:shadow-xs tw:transition-all tw:outline-none tw:first:rounded-l-md tw:first:border-l tw:last:rounded-r-md tw:data-[active=true]:z-10 tw:data-[active=true]:ring-[3px]", className), ...props, children: [char, hasFakeCaret && (jsx("div", { className: "tw:pointer-events-none tw:absolute tw:inset-0 tw:flex tw:items-center tw:justify-center", children: jsx("div", { className: "tw:animate-caret-blink tw:bg-foreground tw:h-4 tw:w-px tw:duration-1000" }) }))] }));
17
+ }
18
+ function InputOTPSeparator({ ...props }) {
19
+ return (jsx("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: jsx(MinusIcon, {}) }));
20
+ }
21
+
22
+ export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
@@ -0,0 +1,24 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ import { Separator } from "../components/separator";
4
+ declare function ItemGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
5
+ declare function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): import("react/jsx-runtime").JSX.Element;
6
+ declare const itemVariants: (props?: ({
7
+ variant?: "default" | "outline" | "muted" | null | undefined;
8
+ size?: "default" | "sm" | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
+ declare function Item({ className, variant, size, asChild, ...props }: React.ComponentProps<"div"> & VariantProps<typeof itemVariants> & {
11
+ asChild?: boolean;
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ declare const itemMediaVariants: (props?: ({
14
+ variant?: "default" | "icon" | "image" | null | undefined;
15
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
16
+ declare function ItemMedia({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof itemMediaVariants>): import("react/jsx-runtime").JSX.Element;
17
+ declare function ItemContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
18
+ declare function ItemTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
19
+ declare function ItemDescription({ className, ...props }: React.ComponentProps<"p">): import("react/jsx-runtime").JSX.Element;
20
+ declare function ItemActions({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
21
+ declare function ItemHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
22
+ declare function ItemFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
23
+ export { Item, ItemMedia, ItemContent, ItemActions, ItemGroup, ItemSeparator, ItemTitle, ItemDescription, ItemHeader, ItemFooter, };
24
+ //# sourceMappingURL=item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../src/components/item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAStE;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,2CASxC;AAED,QAAA,MAAM,YAAY;;;8EAmBjB,CAAA;AAED,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,OAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAC5B,YAAY,CAAC,OAAO,YAAY,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,2CAW1D;AAED,QAAA,MAAM,iBAAiB;;8EAetB,CAAA;AAED,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,2CAStE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWxE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWtE;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,2CAY1E;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQxE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWvE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWvE;AAED,OAAO,EACL,IAAI,EACJ,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,GACX,CAAA"}
@@ -0,0 +1,68 @@
1
+ import { jsx } from 'react/jsx-runtime.js';
2
+ import { Slot } from '@radix-ui/react-slot';
3
+ import { cva } from 'class-variance-authority';
4
+ import { cn } from '../lib/utils.js';
5
+ import { Separator } from './separator.js';
6
+
7
+ function ItemGroup({ className, ...props }) {
8
+ return (jsx("div", { role: "list", "data-slot": "item-group", className: cn("group/item-group tw:flex tw:flex-col", className), ...props }));
9
+ }
10
+ function ItemSeparator({ className, ...props }) {
11
+ return (jsx(Separator, { "data-slot": "item-separator", orientation: "horizontal", className: cn("tw:my-0", className), ...props }));
12
+ }
13
+ const itemVariants = cva("group/item tw:flex tw:items-center tw:border tw:border-transparent tw:text-sm tw:rounded-md tw:transition-colors [a]:hover:tw:bg-accent/50 [a]:tw:transition-colors tw:duration-100 tw:flex-wrap tw:outline-none focus-visible:tw:border-ring focus-visible:tw:ring-ring/50 focus-visible:tw:ring-[3px]", {
14
+ variants: {
15
+ variant: {
16
+ default: "tw:bg-transparent",
17
+ outline: "tw:border-border",
18
+ muted: "tw:bg-muted/50",
19
+ },
20
+ size: {
21
+ default: "tw:p-4 tw:gap-4 ",
22
+ sm: "tw:py-3 tw:px-4 tw:gap-2.5",
23
+ },
24
+ },
25
+ defaultVariants: {
26
+ variant: "default",
27
+ size: "default",
28
+ },
29
+ });
30
+ function Item({ className, variant = "default", size = "default", asChild = false, ...props }) {
31
+ const Comp = asChild ? Slot : "div";
32
+ return (jsx(Comp, { "data-slot": "item", "data-variant": variant, "data-size": size, className: cn(itemVariants({ variant, size, className })), ...props }));
33
+ }
34
+ const itemMediaVariants = cva("tw:flex tw:shrink-0 tw:items-center tw:justify-center tw:gap-2 group-has-[[data-slot=item-description]]/item:tw:self-start [&_svg]:tw:pointer-events-none group-has-[[data-slot=item-description]]/item:tw:translate-y-0.5", {
35
+ variants: {
36
+ variant: {
37
+ default: "tw:bg-transparent",
38
+ icon: "tw:size-8 tw:border tw:rounded-sm tw:bg-muted [&_svg:not([class*='size-'])]:tw:size-4",
39
+ image: "tw:size-10 tw:rounded-sm tw:overflow-hidden [&_img]:tw:size-full [&_img]:tw:object-cover",
40
+ },
41
+ },
42
+ defaultVariants: {
43
+ variant: "default",
44
+ },
45
+ });
46
+ function ItemMedia({ className, variant = "default", ...props }) {
47
+ return (jsx("div", { "data-slot": "item-media", "data-variant": variant, className: cn(itemMediaVariants({ variant, className })), ...props }));
48
+ }
49
+ function ItemContent({ className, ...props }) {
50
+ return (jsx("div", { "data-slot": "item-content", className: cn("tw:flex tw:flex-1 tw:flex-col tw:gap-1 [&+[data-slot=item-content]]:tw:flex-none", className), ...props }));
51
+ }
52
+ function ItemTitle({ className, ...props }) {
53
+ return (jsx("div", { "data-slot": "item-title", className: cn("tw:flex tw:w-fit tw:items-center tw:gap-2 tw:text-sm tw:leading-snug tw:font-medium", className), ...props }));
54
+ }
55
+ function ItemDescription({ className, ...props }) {
56
+ return (jsx("p", { "data-slot": "item-description", className: cn("tw:text-muted-foreground tw:line-clamp-2 tw:text-sm tw:leading-normal tw:font-normal tw:text-balance", "[&>a:hover]:tw:text-primary [&>a]:tw:underline [&>a]:tw:underline-offset-4", className), ...props }));
57
+ }
58
+ function ItemActions({ className, ...props }) {
59
+ return (jsx("div", { "data-slot": "item-actions", className: cn("tw:flex tw:items-center tw:gap-2", className), ...props }));
60
+ }
61
+ function ItemHeader({ className, ...props }) {
62
+ return (jsx("div", { "data-slot": "item-header", className: cn("tw:flex tw:basis-full tw:items-center tw:justify-between tw:gap-2", className), ...props }));
63
+ }
64
+ function ItemFooter({ className, ...props }) {
65
+ return (jsx("div", { "data-slot": "item-footer", className: cn("tw:flex tw:basis-full tw:items-center tw:justify-between tw:gap-2", className), ...props }));
66
+ }
67
+
68
+ export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle };
@@ -0,0 +1,4 @@
1
+ declare function Kbd({ className, ...props }: React.ComponentProps<"kbd">): import("react/jsx-runtime").JSX.Element;
2
+ declare function KbdGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
3
+ export { Kbd, KbdGroup };
4
+ //# sourceMappingURL=kbd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kbd.d.ts","sourceRoot":"","sources":["../../src/components/kbd.tsx"],"names":[],"mappings":"AAEA,iBAAS,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAahE;AAED,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQrE;AAED,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { jsx } from 'react/jsx-runtime.js';
2
+ import { cn } from '../lib/utils.js';
3
+
4
+ function Kbd({ className, ...props }) {
5
+ return (jsx("kbd", { "data-slot": "kbd", className: cn("tw:bg-muted tw:text-muted-foreground tw:pointer-events-none tw:inline-flex tw:h-5 tw:w-fit tw:min-w-5 tw:items-center tw:justify-center tw:gap-1 tw:rounded-sm tw:px-1 tw:font-sans tw:text-xs tw:font-medium tw:select-none", "tw:[&_svg:not([class*='size-'])]:size-3", "tw:[[data-slot=tooltip-content]_&]:bg-background/20 tw:[[data-slot=tooltip-content]_&]:text-background tw:dark:[[data-slot=tooltip-content]_&]:bg-background/10", className), ...props }));
6
+ }
7
+ function KbdGroup({ className, ...props }) {
8
+ return (jsx("kbd", { "data-slot": "kbd-group", className: cn("tw:inline-flex tw:items-center tw:gap-1", className), ...props }));
9
+ }
10
+
11
+ export { Kbd, KbdGroup };
@@ -0,0 +1,27 @@
1
+ import * as React from "react";
2
+ import * as MenubarPrimitive from "@radix-ui/react-menubar";
3
+ declare function Menubar({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function MenubarMenu({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Menu>): import("react/jsx-runtime").JSX.Element;
5
+ declare function MenubarGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
6
+ declare function MenubarPortal({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
7
+ declare function MenubarRadioGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>): import("react/jsx-runtime").JSX.Element;
8
+ declare function MenubarTrigger({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
9
+ declare function MenubarContent({ className, align, alignOffset, sideOffset, ...props }: React.ComponentProps<typeof MenubarPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
10
+ declare function MenubarItem({ className, inset, variant, ...props }: React.ComponentProps<typeof MenubarPrimitive.Item> & {
11
+ inset?: boolean;
12
+ variant?: "default" | "destructive";
13
+ }): import("react/jsx-runtime").JSX.Element;
14
+ declare function MenubarCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>): import("react/jsx-runtime").JSX.Element;
15
+ declare function MenubarRadioItem({ className, children, ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioItem>): import("react/jsx-runtime").JSX.Element;
16
+ declare function MenubarLabel({ className, inset, ...props }: React.ComponentProps<typeof MenubarPrimitive.Label> & {
17
+ inset?: boolean;
18
+ }): import("react/jsx-runtime").JSX.Element;
19
+ declare function MenubarSeparator({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
20
+ declare function MenubarShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
21
+ declare function MenubarSub({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Sub>): import("react/jsx-runtime").JSX.Element;
22
+ declare function MenubarSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {
23
+ inset?: boolean;
24
+ }): import("react/jsx-runtime").JSX.Element;
25
+ declare function MenubarSubContent({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.SubContent>): import("react/jsx-runtime").JSX.Element;
26
+ export { Menubar, MenubarPortal, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarSeparator, MenubarLabel, MenubarItem, MenubarShortcut, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSub, MenubarSubTrigger, MenubarSubContent, };
27
+ //# sourceMappingURL=menubar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menubar.d.ts","sourceRoot":"","sources":["../../src/components/menubar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAA;AAK3D,iBAAS,OAAO,CAAC,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAWpD;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAEpD;AAED,iBAAS,YAAY,CAAC,EACpB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAErD;AAED,iBAAS,aAAa,CAAC,EACrB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,2CAEtD;AAED,iBAAS,iBAAiB,CAAC,EACzB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,UAAU,CAAC,2CAI1D;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAWvD;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAe,EACf,WAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAgBvD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,KAAK,EACL,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG;IACtD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAA;CACpC,2CAaA;AAED,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,QAAQ,EACR,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,YAAY,CAAC,2CAmB5D;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,2CAkBzD;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,GAAG;IACvD,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,2CAYA;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,2CAQzD;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAW9B;AAED,iBAAS,UAAU,CAAC,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,2CAEnD;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,UAAU,CAAC,GAAG;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,2CAeA;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,UAAU,CAAC,2CAW1D;AAED,OAAO,EACL,OAAO,EACP,aAAa,EACb,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,GAClB,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime.js';
2
+ import * as MenubarPrimitive from '@radix-ui/react-menubar';
3
+ import { CheckIcon, CircleIcon, ChevronRightIcon } from 'lucide-react';
4
+ import { cn } from '../lib/utils.js';
5
+
6
+ function Menubar({ className, ...props }) {
7
+ return (jsx(MenubarPrimitive.Root, { "data-slot": "menubar", className: cn("tw:bg-background tw:flex tw:h-9 tw:items-center tw:gap-1 tw:rounded-md tw:border tw:p-1 tw:shadow-xs", className), ...props }));
8
+ }
9
+ function MenubarMenu({ ...props }) {
10
+ return jsx(MenubarPrimitive.Menu, { "data-slot": "menubar-menu", ...props });
11
+ }
12
+ function MenubarGroup({ ...props }) {
13
+ return jsx(MenubarPrimitive.Group, { "data-slot": "menubar-group", ...props });
14
+ }
15
+ function MenubarPortal({ ...props }) {
16
+ return jsx(MenubarPrimitive.Portal, { "data-slot": "menubar-portal", ...props });
17
+ }
18
+ function MenubarRadioGroup({ ...props }) {
19
+ return (jsx(MenubarPrimitive.RadioGroup, { "data-slot": "menubar-radio-group", ...props }));
20
+ }
21
+ function MenubarTrigger({ className, ...props }) {
22
+ return (jsx(MenubarPrimitive.Trigger, { "data-slot": "menubar-trigger", className: cn("tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-[state=open]:bg-accent tw:data-[state=open]:text-accent-foreground tw:flex tw:items-center tw:rounded-sm tw:px-2 tw:py-1 tw:text-sm tw:font-medium tw:outline-hidden tw:select-none", className), ...props }));
23
+ }
24
+ function MenubarContent({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }) {
25
+ return (jsx(MenubarPortal, { children: jsx(MenubarPrimitive.Content, { "data-slot": "menubar-content", align: align, alignOffset: alignOffset, sideOffset: sideOffset, className: cn("tw:bg-popover tw:text-popover-foreground tw:data-[state=open]:animate-in tw:data-[state=closed]:fade-out-0 tw:data-[state=open]:fade-in-0 tw:data-[state=closed]:zoom-out-95 tw:data-[state=open]:zoom-in-95 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:z-50 tw:min-w-[12rem] tw:origin-(--radix-menubar-content-transform-origin) tw:overflow-hidden tw:rounded-md tw:border tw:p-1 tw:shadow-md", className), ...props }) }));
26
+ }
27
+ function MenubarItem({ className, inset, variant = "default", ...props }) {
28
+ return (jsx(MenubarPrimitive.Item, { "data-slot": "menubar-item", "data-inset": inset, "data-variant": variant, className: cn("tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-[variant=destructive]:text-destructive tw:data-[variant=destructive]:focus:bg-destructive/10 tw:dark:data-[variant=destructive]:focus:bg-destructive/20 tw:data-[variant=destructive]:focus:text-destructive tw:data-[variant=destructive]:*:[svg]:!text-destructive tw:[&_svg:not([class*='text-'])]:text-muted-foreground tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-2 tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:data-[disabled]:pointer-events-none tw:data-[disabled]:opacity-50 tw:data-[inset]:pl-8 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*='size-'])]:size-4", className), ...props }));
29
+ }
30
+ function MenubarCheckboxItem({ className, children, checked, ...props }) {
31
+ return (jsxs(MenubarPrimitive.CheckboxItem, { "data-slot": "menubar-checkbox-item", className: cn("tw:focus:bg-accent tw:focus:text-accent-foreground tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-2 tw:rounded-xs tw:py-1.5 tw:pr-2 tw:pl-8 tw:text-sm tw:outline-hidden tw:select-none tw:data-[disabled]:pointer-events-none tw:data-[disabled]:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*='size-'])]:size-4", className), checked: checked, ...props, children: [jsx("span", { className: "tw:pointer-events-none tw:absolute tw:left-2 tw:flex tw:size-3.5 tw:items-center tw:justify-center", children: jsx(MenubarPrimitive.ItemIndicator, { children: jsx(CheckIcon, { className: "tw:size-4" }) }) }), children] }));
32
+ }
33
+ function MenubarRadioItem({ className, children, ...props }) {
34
+ return (jsxs(MenubarPrimitive.RadioItem, { "data-slot": "menubar-radio-item", className: cn("tw:focus:bg-accent tw:focus:text-accent-foreground tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-2 tw:rounded-xs tw:py-1.5 tw:pr-2 tw:pl-8 tw:text-sm tw:outline-hidden tw:select-none tw:data-[disabled]:pointer-events-none tw:data-[disabled]:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*='size-'])]:size-4", className), ...props, children: [jsx("span", { className: "tw:pointer-events-none tw:absolute tw:left-2 tw:flex tw:size-3.5 tw:items-center tw:justify-center", children: jsx(MenubarPrimitive.ItemIndicator, { children: jsx(CircleIcon, { className: "tw:size-2 tw:fill-current" }) }) }), children] }));
35
+ }
36
+ function MenubarLabel({ className, inset, ...props }) {
37
+ return (jsx(MenubarPrimitive.Label, { "data-slot": "menubar-label", "data-inset": inset, className: cn("tw:px-2 tw:py-1.5 tw:text-sm tw:font-medium tw:data-[inset]:pl-8", className), ...props }));
38
+ }
39
+ function MenubarSeparator({ className, ...props }) {
40
+ return (jsx(MenubarPrimitive.Separator, { "data-slot": "menubar-separator", className: cn("tw:bg-border tw:-mx-1 tw:my-1 tw:h-px", className), ...props }));
41
+ }
42
+ function MenubarShortcut({ className, ...props }) {
43
+ return (jsx("span", { "data-slot": "menubar-shortcut", className: cn("tw:text-muted-foreground tw:ml-auto tw:text-xs tw:tracking-widest", className), ...props }));
44
+ }
45
+ function MenubarSub({ ...props }) {
46
+ return jsx(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
47
+ }
48
+ function MenubarSubTrigger({ className, inset, children, ...props }) {
49
+ return (jsxs(MenubarPrimitive.SubTrigger, { "data-slot": "menubar-sub-trigger", "data-inset": inset, className: cn("tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-[state=open]:bg-accent tw:data-[state=open]:text-accent-foreground tw:flex tw:cursor-default tw:items-center tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:outline-none tw:select-none tw:data-[inset]:pl-8", className), ...props, children: [children, jsx(ChevronRightIcon, { className: "tw:ml-auto tw:h-4 tw:w-4" })] }));
50
+ }
51
+ function MenubarSubContent({ className, ...props }) {
52
+ return (jsx(MenubarPrimitive.SubContent, { "data-slot": "menubar-sub-content", className: cn("tw:bg-popover tw:text-popover-foreground tw:data-[state=open]:animate-in tw:data-[state=closed]:animate-out tw:data-[state=closed]:fade-out-0 tw:data-[state=open]:fade-in-0 tw:data-[state=closed]:zoom-out-95 tw:data-[state=open]:zoom-in-95 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:z-50 tw:min-w-[8rem] tw:origin-(--radix-menubar-content-transform-origin) tw:overflow-hidden tw:rounded-md tw:border tw:p-1 tw:shadow-lg", className), ...props }));
53
+ }
54
+
55
+ export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger };
@@ -0,0 +1,15 @@
1
+ import * as React from "react";
2
+ import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
3
+ declare function NavigationMenu({ className, children, viewport, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
4
+ viewport?: boolean;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ declare function NavigationMenuList({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.List>): import("react/jsx-runtime").JSX.Element;
7
+ declare function NavigationMenuItem({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
8
+ declare const navigationMenuTriggerStyle: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
9
+ declare function NavigationMenuTrigger({ className, children, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
10
+ declare function NavigationMenuContent({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
11
+ declare function NavigationMenuViewport({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>): import("react/jsx-runtime").JSX.Element;
12
+ declare function NavigationMenuLink({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Link>): import("react/jsx-runtime").JSX.Element;
13
+ declare function NavigationMenuIndicator({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>): import("react/jsx-runtime").JSX.Element;
14
+ export { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuContent, NavigationMenuTrigger, NavigationMenuLink, NavigationMenuIndicator, NavigationMenuViewport, navigationMenuTriggerStyle, };
15
+ //# sourceMappingURL=navigation-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-menu.d.ts","sourceRoot":"","sources":["../../src/components/navigation-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAA;AAM1E,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,QAAQ,EACR,QAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,GAAG;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,2CAeA;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,2CAW3D;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,2CAQ3D;AAED,QAAA,MAAM,0BAA0B,oFAE/B,CAAA;AAED,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,OAAO,CAAC,2CAc9D;AAED,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,OAAO,CAAC,2CAY9D;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,QAAQ,CAAC,2CAiB/D;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,2CAW3D;AAED,iBAAS,uBAAuB,CAAC,EAC/B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,SAAS,CAAC,2CAahE;AAED,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,GAC3B,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime.js';
2
+ import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
3
+ import { cva } from 'class-variance-authority';
4
+ import { ChevronDownIcon } from 'lucide-react';
5
+ import { cn } from '../lib/utils.js';
6
+
7
+ function NavigationMenu({ className, children, viewport = true, ...props }) {
8
+ return (jsxs(NavigationMenuPrimitive.Root, { "data-slot": "navigation-menu", "data-viewport": viewport, className: cn("tw:group/navigation-menu tw:relative tw:flex tw:max-w-max tw:flex-1 tw:items-center tw:justify-center", className), ...props, children: [children, viewport && jsx(NavigationMenuViewport, {})] }));
9
+ }
10
+ function NavigationMenuList({ className, ...props }) {
11
+ return (jsx(NavigationMenuPrimitive.List, { "data-slot": "navigation-menu-list", className: cn("tw:group tw:flex tw:flex-1 tw:list-none tw:items-center tw:justify-center tw:gap-1", className), ...props }));
12
+ }
13
+ function NavigationMenuItem({ className, ...props }) {
14
+ return (jsx(NavigationMenuPrimitive.Item, { "data-slot": "navigation-menu-item", className: cn("tw:relative", className), ...props }));
15
+ }
16
+ const navigationMenuTriggerStyle = cva("tw:group tw:inline-flex tw:h-9 tw:w-max tw:items-center tw:justify-center tw:rounded-md tw:bg-background tw:px-4 tw:py-2 tw:text-sm tw:font-medium hover:tw:bg-accent hover:tw:text-accent-foreground focus:tw:bg-accent focus:tw:text-accent-foreground disabled:tw:pointer-events-none disabled:tw:opacity-50 data-[state=open]:hover:tw:bg-accent data-[state=open]:tw:text-accent-foreground data-[state=open]:focus:tw:bg-accent data-[state=open]:tw:bg-accent/50 focus-visible:tw:ring-ring/50 tw:outline-none tw:transition-[color,box-shadow] focus-visible:tw:ring-[3px] focus-visible:tw:outline-1");
17
+ function NavigationMenuTrigger({ className, children, ...props }) {
18
+ return (jsxs(NavigationMenuPrimitive.Trigger, { "data-slot": "navigation-menu-trigger", className: cn(navigationMenuTriggerStyle(), "tw:group", className), ...props, children: [children, " ", jsx(ChevronDownIcon, { className: "tw:relative tw:top-[1px] tw:ml-1 tw:size-3 tw:transition tw:duration-300 group-data-[state=open]:tw:rotate-180", "aria-hidden": "true" })] }));
19
+ }
20
+ function NavigationMenuContent({ className, ...props }) {
21
+ return (jsx(NavigationMenuPrimitive.Content, { "data-slot": "navigation-menu-content", className: cn("data-[motion^=from-]:tw:animate-in data-[motion^=to-]:tw:animate-out data-[motion^=from-]:tw:fade-in data-[motion^=to-]:tw:fade-out data-[motion=from-end]:tw:slide-in-from-right-52 data-[motion=from-start]:tw:slide-in-from-left-52 data-[motion=to-end]:tw:slide-out-to-right-52 data-[motion=to-start]:tw:slide-out-to-left-52 tw:top-0 tw:left-0 tw:w-full tw:p-2 tw:pr-2.5 md:tw:absolute md:tw:w-auto", "group-data-[viewport=false]/navigation-menu:tw:bg-popover group-data-[viewport=false]/navigation-menu:tw:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:tw:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:tw:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:tw:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:tw:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:tw:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:tw:fade-out-0 group-data-[viewport=false]/navigation-menu:tw:top-full group-data-[viewport=false]/navigation-menu:tw:mt-1.5 group-data-[viewport=false]/navigation-menu:tw:overflow-hidden group-data-[viewport=false]/navigation-menu:tw:rounded-md group-data-[viewport=false]/navigation-menu:tw:border group-data-[viewport=false]/navigation-menu:tw:shadow group-data-[viewport=false]/navigation-menu:tw:duration-200 **:data-[slot=navigation-menu-link]:focus:tw:ring-0 **:data-[slot=navigation-menu-link]:focus:tw:outline-none", className), ...props }));
22
+ }
23
+ function NavigationMenuViewport({ className, ...props }) {
24
+ return (jsx("div", { className: cn("tw:absolute tw:top-full tw:left-0 tw:isolate tw:z-50 tw:flex tw:justify-center"), children: jsx(NavigationMenuPrimitive.Viewport, { "data-slot": "navigation-menu-viewport", className: cn("tw:origin-top-center tw:bg-popover tw:text-popover-foreground data-[state=open]:tw:animate-in data-[state=closed]:tw:animate-out data-[state=closed]:tw:zoom-out-95 data-[state=open]:tw:zoom-in-90 tw:relative tw:mt-1.5 tw:h-[var(--radix-navigation-menu-viewport-height)] tw:w-full tw:overflow-hidden tw:rounded-md tw:border tw:shadow md:tw:w-[var(--radix-navigation-menu-viewport-width)]", className), ...props }) }));
25
+ }
26
+ function NavigationMenuLink({ className, ...props }) {
27
+ return (jsx(NavigationMenuPrimitive.Link, { "data-slot": "navigation-menu-link", className: cn("data-[active=true]:focus:tw:bg-accent data-[active=true]:hover:tw:bg-accent data-[active=true]:tw:bg-accent/50 data-[active=true]:tw:text-accent-foreground hover:tw:bg-accent hover:tw:text-accent-foreground focus:tw:bg-accent focus:tw:text-accent-foreground focus-visible:tw:ring-ring/50 tw:[&_svg:not([class*='text-'])]:text-muted-foreground tw:flex tw:flex-col tw:gap-1 tw:rounded-sm tw:p-2 tw:text-sm tw:transition-all tw:outline-none focus-visible:tw:ring-[3px] focus-visible:tw:outline-1 tw:[&_svg:not([class*='size-'])]:size-4", className), ...props }));
28
+ }
29
+ function NavigationMenuIndicator({ className, ...props }) {
30
+ return (jsx(NavigationMenuPrimitive.Indicator, { "data-slot": "navigation-menu-indicator", className: cn("data-[state=visible]:tw:animate-in data-[state=hidden]:tw:animate-out data-[state=hidden]:tw:fade-out data-[state=visible]:tw:fade-in tw:top-full tw:z-[1] tw:flex tw:h-1.5 tw:items-end tw:justify-center tw:overflow-hidden", className), ...props, children: jsx("div", { className: "tw:bg-border tw:relative tw:top-[60%] tw:h-2 tw:w-2 tw:rotate-45 tw:rounded-tl-sm tw:shadow-md" }) }));
31
+ }
32
+
33
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import { Button } from "../components/button";
3
+ declare function Pagination({ className, ...props }: React.ComponentProps<"nav">): import("react/jsx-runtime").JSX.Element;
4
+ declare function PaginationContent({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
5
+ declare function PaginationItem({ ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").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): import("react/jsx-runtime").JSX.Element;
10
+ declare function PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>): import("react/jsx-runtime").JSX.Element;
11
+ declare function PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>): import("react/jsx-runtime").JSX.Element;
12
+ declare function PaginationEllipsis({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
13
+ export { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis, };
14
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,OAAO,EAAE,MAAM,EAAkB,MAAM,sBAAsB,CAAA;AAE7D,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAUvE;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAQ5B;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAE/D;AAED,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,GACnD,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;AAE3B,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,QAAQ,EACR,IAAa,EACb,GAAG,KAAK,EACT,EAAE,mBAAmB,2CAgBrB;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,2CAY7C;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,2CAY7C;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAY9B;AAED,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,kBAAkB,GACnB,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime.js';
2
+ import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';
3
+ import { cn } from '../lib/utils.js';
4
+ import { buttonVariants } from './button.js';
5
+
6
+ function Pagination({ className, ...props }) {
7
+ return (jsx("nav", { role: "navigation", "aria-label": "pagination", "data-slot": "pagination", className: cn("tw:mx-auto tw:flex tw:w-full tw:justify-center", className), ...props }));
8
+ }
9
+ function PaginationContent({ className, ...props }) {
10
+ return (jsx("ul", { "data-slot": "pagination-content", className: cn("tw:flex tw:flex-row tw:items-center tw:gap-1", className), ...props }));
11
+ }
12
+ function PaginationItem({ ...props }) {
13
+ return jsx("li", { "data-slot": "pagination-item", ...props });
14
+ }
15
+ function PaginationLink({ className, isActive, size = "icon", ...props }) {
16
+ return (jsx("a", { "aria-current": isActive ? "page" : undefined, "data-slot": "pagination-link", "data-active": isActive, className: cn(buttonVariants({
17
+ variant: isActive ? "outline" : "ghost",
18
+ size,
19
+ }), className), ...props }));
20
+ }
21
+ function PaginationPrevious({ className, ...props }) {
22
+ return (jsxs(PaginationLink, { "aria-label": "Go to previous page", size: "default", className: cn("tw:gap-1 tw:px-2.5 sm:tw:pl-2.5", className), ...props, children: [jsx(ChevronLeftIcon, {}), jsx("span", { className: "tw:hidden sm:tw:block", children: "Previous" })] }));
23
+ }
24
+ function PaginationNext({ className, ...props }) {
25
+ return (jsxs(PaginationLink, { "aria-label": "Go to next page", size: "default", className: cn("tw:gap-1 tw:px-2.5 sm:tw:pr-2.5", className), ...props, children: [jsx("span", { className: "tw:hidden sm:tw:block", children: "Next" }), jsx(ChevronRightIcon, {})] }));
26
+ }
27
+ function PaginationEllipsis({ className, ...props }) {
28
+ return (jsxs("span", { "aria-hidden": true, "data-slot": "pagination-ellipsis", className: cn("tw:flex tw:size-9 tw:items-center tw:justify-center", className), ...props, children: [jsx(MoreHorizontalIcon, { className: "tw:size-4" }), jsx("span", { className: "tw:sr-only", children: "More pages" })] }));
29
+ }
30
+
31
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import * as ProgressPrimitive from "@radix-ui/react-progress";
3
+ declare function Progress({ className, value, ...props }: React.ComponentProps<typeof ProgressPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export { Progress };
5
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/components/progress.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAA;AAI7D,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,2CAiBrD;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { jsx } from 'react/jsx-runtime.js';
2
+ import * as ProgressPrimitive from '@radix-ui/react-progress';
3
+ import { cn } from '../lib/utils.js';
4
+
5
+ function Progress({ className, value, ...props }) {
6
+ return (jsx(ProgressPrimitive.Root, { "data-slot": "progress", className: cn("tw:bg-primary/20 tw:relative tw:h-2 tw:w-full tw:overflow-hidden tw:rounded-full", className), ...props, children: jsx(ProgressPrimitive.Indicator, { "data-slot": "progress-indicator", className: "tw:bg-primary tw:h-full tw:w-full tw:flex-1 tw:transition-all", style: { transform: `translateX(-${100 - (value || 0)}%)` } }) }));
7
+ }
8
+
9
+ export { Progress };