@akbarsafari00/ods-react 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +61 -0
  2. package/dist/components/alert-dialog.d.ts +32 -0
  3. package/dist/components/alert-dialog.d.ts.map +1 -0
  4. package/dist/components/alert-dialog.js +48 -0
  5. package/dist/components/alert-dialog.js.map +1 -0
  6. package/dist/components/alert.d.ts +11 -0
  7. package/dist/components/alert.d.ts.map +1 -0
  8. package/dist/components/alert.js +28 -0
  9. package/dist/components/alert.js.map +1 -0
  10. package/dist/components/badge.d.ts +10 -0
  11. package/dist/components/badge.d.ts.map +1 -0
  12. package/dist/components/badge.js +25 -0
  13. package/dist/components/badge.js.map +1 -0
  14. package/dist/components/button-group.d.ts +17 -0
  15. package/dist/components/button-group.d.ts.map +1 -0
  16. package/dist/components/button-group.js +38 -0
  17. package/dist/components/button-group.js.map +1 -0
  18. package/dist/components/button.d.ts +8 -0
  19. package/dist/components/button.d.ts.map +1 -0
  20. package/dist/components/button.js +21 -0
  21. package/dist/components/button.js.map +1 -0
  22. package/dist/components/card.d.ts +10 -0
  23. package/dist/components/card.d.ts.map +1 -0
  24. package/dist/components/card.js +25 -0
  25. package/dist/components/card.js.map +1 -0
  26. package/dist/components/checkbox.d.ts +5 -0
  27. package/dist/components/checkbox.d.ts.map +1 -0
  28. package/dist/components/checkbox.js +10 -0
  29. package/dist/components/checkbox.js.map +1 -0
  30. package/dist/components/collapsible.d.ts +15 -0
  31. package/dist/components/collapsible.d.ts.map +1 -0
  32. package/dist/components/collapsible.js +16 -0
  33. package/dist/components/collapsible.js.map +1 -0
  34. package/dist/components/combobox.d.ts +34 -0
  35. package/dist/components/combobox.d.ts.map +1 -0
  36. package/dist/components/combobox.js +280 -0
  37. package/dist/components/combobox.js.map +1 -0
  38. package/dist/components/context-menu.d.ts +60 -0
  39. package/dist/components/context-menu.d.ts.map +1 -0
  40. package/dist/components/context-menu.js +71 -0
  41. package/dist/components/context-menu.js.map +1 -0
  42. package/dist/components/data-table.d.ts +68 -0
  43. package/dist/components/data-table.d.ts.map +1 -0
  44. package/dist/components/data-table.js +100 -0
  45. package/dist/components/data-table.js.map +1 -0
  46. package/dist/components/dialog.d.ts +32 -0
  47. package/dist/components/dialog.d.ts.map +1 -0
  48. package/dist/components/dialog.js +43 -0
  49. package/dist/components/dialog.js.map +1 -0
  50. package/dist/components/drawer.d.ts +32 -0
  51. package/dist/components/drawer.d.ts.map +1 -0
  52. package/dist/components/drawer.js +43 -0
  53. package/dist/components/drawer.js.map +1 -0
  54. package/dist/components/field.d.ts +50 -0
  55. package/dist/components/field.d.ts.map +1 -0
  56. package/dist/components/field.js +93 -0
  57. package/dist/components/field.js.map +1 -0
  58. package/dist/components/icon-button.d.ts +14 -0
  59. package/dist/components/icon-button.d.ts.map +1 -0
  60. package/dist/components/icon-button.js +28 -0
  61. package/dist/components/icon-button.js.map +1 -0
  62. package/dist/components/input-group.d.ts +17 -0
  63. package/dist/components/input-group.d.ts.map +1 -0
  64. package/dist/components/input-group.js +56 -0
  65. package/dist/components/input-group.js.map +1 -0
  66. package/dist/components/input.d.ts +9 -0
  67. package/dist/components/input.d.ts.map +1 -0
  68. package/dist/components/input.js +7 -0
  69. package/dist/components/input.js.map +1 -0
  70. package/dist/components/label.d.ts +5 -0
  71. package/dist/components/label.d.ts.map +1 -0
  72. package/dist/components/label.js +8 -0
  73. package/dist/components/label.js.map +1 -0
  74. package/dist/components/menubar.d.ts +73 -0
  75. package/dist/components/menubar.d.ts.map +1 -0
  76. package/dist/components/menubar.js +74 -0
  77. package/dist/components/menubar.js.map +1 -0
  78. package/dist/components/pagination.d.ts +23 -0
  79. package/dist/components/pagination.d.ts.map +1 -0
  80. package/dist/components/pagination.js +64 -0
  81. package/dist/components/pagination.js.map +1 -0
  82. package/dist/components/progress.d.ts +17 -0
  83. package/dist/components/progress.d.ts.map +1 -0
  84. package/dist/components/progress.js +23 -0
  85. package/dist/components/progress.js.map +1 -0
  86. package/dist/components/radio-group.d.ts +6 -0
  87. package/dist/components/radio-group.d.ts.map +1 -0
  88. package/dist/components/radio-group.js +12 -0
  89. package/dist/components/radio-group.js.map +1 -0
  90. package/dist/components/select.d.ts +14 -0
  91. package/dist/components/select.d.ts.map +1 -0
  92. package/dist/components/select.js +38 -0
  93. package/dist/components/select.js.map +1 -0
  94. package/dist/components/separator.d.ts +5 -0
  95. package/dist/components/separator.d.ts.map +1 -0
  96. package/dist/components/separator.js +8 -0
  97. package/dist/components/separator.js.map +1 -0
  98. package/dist/components/skeleton.d.ts +23 -0
  99. package/dist/components/skeleton.d.ts.map +1 -0
  100. package/dist/components/skeleton.js +18 -0
  101. package/dist/components/skeleton.js.map +1 -0
  102. package/dist/components/switch.d.ts +7 -0
  103. package/dist/components/switch.d.ts.map +1 -0
  104. package/dist/components/switch.js +8 -0
  105. package/dist/components/switch.js.map +1 -0
  106. package/dist/components/table.d.ts +22 -0
  107. package/dist/components/table.d.ts.map +1 -0
  108. package/dist/components/table.js +31 -0
  109. package/dist/components/table.js.map +1 -0
  110. package/dist/components/tabs.d.ts +36 -0
  111. package/dist/components/tabs.d.ts.map +1 -0
  112. package/dist/components/tabs.js +49 -0
  113. package/dist/components/tabs.js.map +1 -0
  114. package/dist/components/textarea.d.ts +4 -0
  115. package/dist/components/textarea.d.ts.map +1 -0
  116. package/dist/components/textarea.js +7 -0
  117. package/dist/components/textarea.js.map +1 -0
  118. package/dist/index.d.ts +30 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +30 -0
  121. package/dist/index.js.map +1 -0
  122. package/dist/lib/utils.d.ts +3 -0
  123. package/dist/lib/utils.d.ts.map +1 -0
  124. package/dist/lib/utils.js +6 -0
  125. package/dist/lib/utils.js.map +1 -0
  126. package/dist/styles/globals.css +660 -0
  127. package/dist/styles/themes/ods-default.css +130 -0
  128. package/package.json +88 -0
@@ -0,0 +1,56 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ import { Input } from "@akbarsafari00/ods-react/components/input";
5
+ import { Textarea } from "@akbarsafari00/ods-react/components/textarea";
6
+ import { cn } from "@akbarsafari00/ods-react/lib/utils";
7
+ function InputGroup({ className, ...props }) {
8
+ return (_jsx("div", { "data-slot": "input-group", role: "group", className: cn("group/input-group relative flex h-10 w-full min-w-0 items-center rounded-[4px] border border-input bg-background transition-colors outline-none in-data-[density=compact]:h-8 in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:border-border has-disabled:bg-muted 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-1 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:has-[[data-slot][aria-invalid=true]]:ring-destructive/30 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", className), ...props }));
9
+ }
10
+ const inputGroupAddonVariants = cva("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", {
11
+ variants: {
12
+ align: {
13
+ "inline-start": "order-first ps-2 has-[>button]:ms-[-0.3rem] has-[>kbd]:ms-[-0.15rem]",
14
+ "inline-end": "order-last pe-2 has-[>button]:me-[-0.3rem] has-[>kbd]:me-[-0.15rem]",
15
+ "block-start": "order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2",
16
+ "block-end": "order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2",
17
+ },
18
+ },
19
+ defaultVariants: {
20
+ align: "inline-start",
21
+ },
22
+ });
23
+ function InputGroupAddon({ className, align = "inline-start", ...props }) {
24
+ return (_jsx("div", { role: "group", "data-slot": "input-group-addon", "data-align": align, className: cn(inputGroupAddonVariants({ align }), className), onClick: (event) => {
25
+ if (event.target.closest("button"))
26
+ return;
27
+ event.currentTarget.parentElement?.querySelector("input")?.focus();
28
+ }, ...props }));
29
+ }
30
+ const inputGroupButtonVariants = cva("flex items-center gap-2 text-sm shadow-none", {
31
+ variants: {
32
+ size: {
33
+ xs: "h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
34
+ sm: "",
35
+ "icon-xs": "size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0",
36
+ "icon-sm": "size-8 p-0 has-[>svg]:p-0",
37
+ },
38
+ },
39
+ defaultVariants: {
40
+ size: "xs",
41
+ },
42
+ });
43
+ function InputGroupButton({ className, type = "button", size = "xs", ...props }) {
44
+ return (_jsx("button", { type: type, "data-size": size, className: cn("inline-flex items-center justify-center rounded-[4px] text-foreground transition-colors outline-none hover:bg-muted focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:text-muted-foreground", inputGroupButtonVariants({ size }), className), ...props }));
45
+ }
46
+ function InputGroupText({ className, ...props }) {
47
+ return (_jsx("span", { className: cn("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className), ...props }));
48
+ }
49
+ function InputGroupInput({ className, ...props }) {
50
+ return (_jsx(Input, { "data-slot": "input-group-control", className: cn("h-full 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", className), ...props }));
51
+ }
52
+ function InputGroupTextarea({ className, ...props }) {
53
+ return (_jsx(Textarea, { "data-slot": "input-group-control", className: cn("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", className), ...props }));
54
+ }
55
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, };
56
+ //# sourceMappingURL=input-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-group.js","sourceRoot":"","sources":["../../src/components/input-group.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ type InputType = "text" | "email" | "tel" | "url" | "password" | "search";
3
+ type InputProps = Omit<React.ComponentProps<"input">, "type"> & {
4
+ type?: InputType;
5
+ };
6
+ declare function Input({ className, type, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
7
+ export { Input };
8
+ export type { InputProps, InputType };
9
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAA;AAEzE,KAAK,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAYvD;AAED,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "@akbarsafari00/ods-react/lib/utils";
3
+ function Input({ className, type, ...props }) {
4
+ return (_jsx("input", { type: type, "data-slot": "input", className: cn("h-10 w-full min-w-0 rounded-[4px] border border-input bg-background px-4 py-2 text-sm leading-5 text-foreground 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 read-only:bg-muted/40 read-only:text-foreground hover:border-foreground/30 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:border-border disabled:bg-muted disabled:text-muted-foreground in-data-[density=compact]:h-8 in-data-[density=compact]:px-3 in-data-[density=compact]:py-1.5 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive dark:aria-invalid:ring-destructive/30", className), ...props }));
5
+ }
6
+ export { Input };
7
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,oCAAoC,CAAA;AAQvD,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAc;IACtD,OAAO,CACL,gBACE,IAAI,EAAE,IAAI,eACA,OAAO,EACjB,SAAS,EAAE,EAAE,CACX,qzBAAqzB,EACrzB,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import { Label as LabelPrimitive } from "radix-ui";
3
+ declare function Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export { Label };
5
+ //# sourceMappingURL=label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../src/components/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,UAAU,CAAA;AAIlD,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,2CAWlD;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Label as LabelPrimitive } from "radix-ui";
3
+ import { cn } from "@akbarsafari00/ods-react/lib/utils";
4
+ function Label({ className, ...props }) {
5
+ return (_jsx(LabelPrimitive.Root, { "data-slot": "label", className: cn("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", className), ...props }));
6
+ }
7
+ export { Label };
8
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/components/label.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,UAAU,CAAA;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,oCAAoC,CAAA;AAEvD,SAAS,KAAK,CAAC,EACb,SAAS,EACT,GAAG,KAAK,EACyC;IACjD,OAAO,CACL,KAAC,cAAc,CAAC,IAAI,iBACR,OAAO,EACjB,SAAS,EAAE,EAAE,CACX,qNAAqN,EACrN,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,73 @@
1
+ import * as React from "react";
2
+ type MenubarDirection = "ltr" | "rtl";
3
+ type MenubarAccessibleName = {
4
+ "aria-label": string;
5
+ "aria-labelledby"?: never;
6
+ } | {
7
+ "aria-label"?: never;
8
+ "aria-labelledby": string;
9
+ };
10
+ type MenubarProps = Omit<React.ComponentPropsWithoutRef<"div">, "defaultValue" | "dir" | "aria-label" | "aria-labelledby"> & MenubarAccessibleName & {
11
+ value?: string;
12
+ defaultValue?: string;
13
+ onValueChange?: (value: string) => void;
14
+ dir?: MenubarDirection;
15
+ };
16
+ type MenubarMenuProps = {
17
+ children?: React.ReactNode;
18
+ value?: string;
19
+ };
20
+ type MenubarTriggerProps = React.ComponentPropsWithoutRef<"button"> & {
21
+ disabled?: boolean;
22
+ };
23
+ type MenubarContentProps = React.ComponentPropsWithoutRef<"div">;
24
+ type MenubarGroupProps = React.ComponentPropsWithoutRef<"div">;
25
+ type MenubarLabelProps = React.ComponentPropsWithoutRef<"div">;
26
+ type MenubarSeparatorProps = React.ComponentPropsWithoutRef<"div">;
27
+ type MenubarShortcutProps = React.ComponentPropsWithoutRef<"span">;
28
+ type MenubarItemVariant = "default" | "danger";
29
+ type MenubarItemProps = Omit<React.ComponentPropsWithoutRef<"div">, "onSelect"> & {
30
+ disabled?: boolean;
31
+ textValue?: string;
32
+ variant?: MenubarItemVariant;
33
+ onSelect?: (event: Event) => void;
34
+ };
35
+ type MenubarCheckboxItemProps = Omit<MenubarItemProps, "variant"> & {
36
+ checked?: boolean | "indeterminate";
37
+ onCheckedChange?: (checked: boolean) => void;
38
+ };
39
+ type MenubarRadioGroupProps = React.ComponentPropsWithoutRef<"div"> & {
40
+ value?: string;
41
+ onValueChange?: (value: string) => void;
42
+ };
43
+ type MenubarRadioItemProps = Omit<MenubarItemProps, "variant"> & {
44
+ value: string;
45
+ };
46
+ type MenubarSubProps = {
47
+ children?: React.ReactNode;
48
+ open?: boolean;
49
+ defaultOpen?: boolean;
50
+ onOpenChange?: (open: boolean) => void;
51
+ };
52
+ type MenubarSubTriggerProps = React.ComponentPropsWithoutRef<"div"> & {
53
+ disabled?: boolean;
54
+ textValue?: string;
55
+ };
56
+ declare function Menubar({ className, dir, ...props }: MenubarProps): import("react/jsx-runtime").JSX.Element;
57
+ declare function MenubarMenu(props: MenubarMenuProps): import("react/jsx-runtime").JSX.Element;
58
+ declare function MenubarTrigger({ className, type, ...props }: MenubarTriggerProps): import("react/jsx-runtime").JSX.Element;
59
+ declare function MenubarContent({ className, ...props }: MenubarContentProps): import("react/jsx-runtime").JSX.Element;
60
+ declare function MenubarGroup({ className, ...props }: MenubarGroupProps): import("react/jsx-runtime").JSX.Element;
61
+ declare function MenubarLabel({ className, ...props }: MenubarLabelProps): import("react/jsx-runtime").JSX.Element;
62
+ declare function MenubarItem({ className, variant, ...props }: MenubarItemProps): import("react/jsx-runtime").JSX.Element;
63
+ declare function MenubarCheckboxItem({ className, children, ...props }: MenubarCheckboxItemProps): import("react/jsx-runtime").JSX.Element;
64
+ declare function MenubarRadioGroup({ className, ...props }: MenubarRadioGroupProps): import("react/jsx-runtime").JSX.Element;
65
+ declare function MenubarRadioItem({ className, children, ...props }: MenubarRadioItemProps): import("react/jsx-runtime").JSX.Element;
66
+ declare function MenubarSeparator({ className, ...props }: MenubarSeparatorProps): import("react/jsx-runtime").JSX.Element;
67
+ declare function MenubarShortcut({ className, ...props }: MenubarShortcutProps): import("react/jsx-runtime").JSX.Element;
68
+ declare function MenubarSub(props: MenubarSubProps): import("react/jsx-runtime").JSX.Element;
69
+ declare function MenubarSubTrigger({ className, children, ...props }: MenubarSubTriggerProps): import("react/jsx-runtime").JSX.Element;
70
+ declare function MenubarSubContent({ className, ...props }: MenubarContentProps): import("react/jsx-runtime").JSX.Element;
71
+ export { Menubar, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarLabel, MenubarItem, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubTrigger, MenubarSubContent, };
72
+ export type { MenubarProps, MenubarMenuProps, MenubarTriggerProps, MenubarContentProps, MenubarGroupProps, MenubarLabelProps, MenubarItemProps, MenubarItemVariant, MenubarCheckboxItemProps, MenubarRadioGroupProps, MenubarRadioItemProps, MenubarSeparatorProps, MenubarShortcutProps, MenubarSubProps, MenubarSubTriggerProps, };
73
+ //# sourceMappingURL=menubar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menubar.d.ts","sourceRoot":"","sources":["../../src/components/menubar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Check, ChevronRight, Circle } from "lucide-react";
5
+ import { Menubar as MenubarPrimitive } from "radix-ui";
6
+ import { cn } from "@akbarsafari00/ods-react/lib/utils";
7
+ const menubarItemClassName = "relative flex min-h-9 cursor-default items-center gap-2 rounded-[var(--ods-radius-control)] px-3 py-2 text-sm leading-5 outline-none select-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:text-muted-foreground/60 in-data-[density=compact]:min-h-8 in-data-[density=compact]:gap-1.5 in-data-[density=compact]:px-2.5 in-data-[density=compact]:py-1.5 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0";
8
+ function getDocumentDirection() {
9
+ if (typeof document === "undefined")
10
+ return "ltr";
11
+ return document.documentElement.dir === "rtl" ? "rtl" : "ltr";
12
+ }
13
+ function getServerDirection() {
14
+ return "ltr";
15
+ }
16
+ function subscribeToDocumentDirection(onChange) {
17
+ if (typeof document === "undefined")
18
+ return () => undefined;
19
+ const observer = new MutationObserver(onChange);
20
+ observer.observe(document.documentElement, {
21
+ attributes: true,
22
+ attributeFilter: ["dir"],
23
+ });
24
+ return () => observer.disconnect();
25
+ }
26
+ function Menubar({ className, dir, ...props }) {
27
+ const documentDirection = React.useSyncExternalStore(subscribeToDocumentDirection, getDocumentDirection, getServerDirection);
28
+ return (_jsx(MenubarPrimitive.Root, { ...props, loop: true, dir: dir ?? documentDirection, "data-slot": "menubar", className: cn("flex min-h-10 max-w-full min-w-0 [scrollbar-width:thin] items-center gap-0.5 overflow-x-auto rounded-[var(--ods-radius-surface)] border bg-surface p-1 in-data-[density=compact]:min-h-8 in-data-[density=compact]:p-0.5", className) }));
29
+ }
30
+ function MenubarMenu(props) {
31
+ return _jsx(MenubarPrimitive.Menu, { ...props });
32
+ }
33
+ function MenubarTrigger({ className, type = "button", ...props }) {
34
+ return (_jsx(MenubarPrimitive.Trigger, { ...props, type: type, "data-slot": "menubar-trigger", className: cn("inline-flex min-h-8 shrink-0 cursor-default items-center rounded-[var(--ods-radius-control)] px-3 text-sm font-medium text-foreground outline-none select-none hover:bg-muted focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset in-data-[density=compact]:min-h-7 in-data-[density=compact]:px-2.5 data-[disabled]:pointer-events-none data-[disabled]:text-muted-foreground/60 data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground", className) }));
35
+ }
36
+ function MenubarContent({ className, ...props }) {
37
+ return (_jsx(MenubarPrimitive.Portal, { children: _jsx(MenubarPrimitive.Content, { ...props, loop: true, align: "start", sideOffset: 4, avoidCollisions: true, collisionPadding: 8, sticky: "always", "data-slot": "menubar-content", className: cn("z-[var(--ods-layer-menu)] min-w-56 overflow-y-auto overscroll-contain rounded-[var(--ods-radius-surface)] border bg-popover p-1 text-popover-foreground shadow-xl outline-none", className) }) }));
38
+ }
39
+ function MenubarGroup({ className, ...props }) {
40
+ return (_jsx(MenubarPrimitive.Group, { ...props, "data-slot": "menubar-group", className: cn("py-0.5", className) }));
41
+ }
42
+ function MenubarLabel({ className, ...props }) {
43
+ return (_jsx(MenubarPrimitive.Label, { ...props, "data-slot": "menubar-label", className: cn("px-3 py-1.5 text-xs leading-5 font-semibold text-muted-foreground", className) }));
44
+ }
45
+ function MenubarItem({ className, variant = "default", ...props }) {
46
+ return (_jsx(MenubarPrimitive.Item, { ...props, "data-slot": "menubar-item", "data-variant": variant, className: cn(menubarItemClassName, variant === "danger" &&
47
+ "text-destructive data-[highlighted]:bg-destructive/12 data-[highlighted]:text-destructive", className) }));
48
+ }
49
+ function MenubarCheckboxItem({ className, children, ...props }) {
50
+ return (_jsxs(MenubarPrimitive.CheckboxItem, { ...props, "data-slot": "menubar-checkbox-item", className: cn(menubarItemClassName, "ps-9", className), children: [_jsx("span", { className: "absolute start-2.5 inline-flex size-4 items-center justify-center", children: _jsx(MenubarPrimitive.ItemIndicator, { children: _jsx(Check, { "aria-hidden": "true", className: "size-4" }) }) }), children] }));
51
+ }
52
+ function MenubarRadioGroup({ className, ...props }) {
53
+ return (_jsx(MenubarPrimitive.RadioGroup, { ...props, "data-slot": "menubar-radio-group", className: className }));
54
+ }
55
+ function MenubarRadioItem({ className, children, ...props }) {
56
+ return (_jsxs(MenubarPrimitive.RadioItem, { ...props, "data-slot": "menubar-radio-item", className: cn(menubarItemClassName, "ps-9", className), children: [_jsx("span", { className: "absolute start-2.5 inline-flex size-4 items-center justify-center", children: _jsx(MenubarPrimitive.ItemIndicator, { children: _jsx(Circle, { "aria-hidden": "true", className: "size-2 fill-current" }) }) }), children] }));
57
+ }
58
+ function MenubarSeparator({ className, ...props }) {
59
+ return (_jsx(MenubarPrimitive.Separator, { ...props, "data-slot": "menubar-separator", className: cn("-mx-1 my-1 h-px bg-border", className) }));
60
+ }
61
+ function MenubarShortcut({ className, ...props }) {
62
+ return (_jsx("span", { ...props, "data-slot": "menubar-shortcut", className: cn("ms-auto ps-4 text-xs tracking-wide text-muted-foreground", className), dir: "ltr", "aria-hidden": "true" }));
63
+ }
64
+ function MenubarSub(props) {
65
+ return _jsx(MenubarPrimitive.Sub, { ...props });
66
+ }
67
+ function MenubarSubTrigger({ className, children, ...props }) {
68
+ return (_jsxs(MenubarPrimitive.SubTrigger, { ...props, "data-slot": "menubar-sub-trigger", className: cn(menubarItemClassName, className), children: [children, _jsx(ChevronRight, { "data-slot": "menubar-direction-icon", "aria-hidden": "true", className: "ms-auto size-4 text-muted-foreground" })] }));
69
+ }
70
+ function MenubarSubContent({ className, ...props }) {
71
+ return (_jsx(MenubarPrimitive.Portal, { children: _jsx(MenubarPrimitive.SubContent, { ...props, loop: true, avoidCollisions: true, collisionPadding: 8, sticky: "always", "data-slot": "menubar-sub-content", className: cn("z-[var(--ods-layer-menu)] min-w-48 overflow-y-auto overscroll-contain rounded-[var(--ods-radius-surface)] border bg-popover p-1 text-popover-foreground shadow-xl outline-none", className) }) }));
72
+ }
73
+ export { Menubar, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarLabel, MenubarItem, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubTrigger, MenubarSubContent, };
74
+ //# sourceMappingURL=menubar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menubar.js","sourceRoot":"","sources":["../../src/components/menubar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import * as React from "react";
2
+ type PaginationSiblingCount = 1 | 2;
3
+ type PaginationRangeItem = number | "ellipsis-start" | "ellipsis-end";
4
+ type PaginationProps = Omit<React.ComponentProps<"nav">, "children" | "aria-label"> & {
5
+ currentPage: number;
6
+ totalPages: number;
7
+ getPageHref: (page: number) => string;
8
+ label: string;
9
+ previousLabel?: string;
10
+ nextLabel?: string;
11
+ getPageLabel?: (page: number) => string;
12
+ getSummaryLabel?: (currentPage: number, totalPages: number) => string;
13
+ siblingCount?: PaginationSiblingCount;
14
+ onPageChange?: (page: number, event: React.MouseEvent<HTMLAnchorElement>) => void;
15
+ };
16
+ type PaginationLinkProps = Omit<React.ComponentProps<"a">, "aria-current"> & {
17
+ isCurrent?: boolean;
18
+ };
19
+ declare function PaginationLink({ className, isCurrent, ...props }: PaginationLinkProps): import("react/jsx-runtime").JSX.Element;
20
+ declare function Pagination({ className, currentPage, totalPages, getPageHref, label, previousLabel, nextLabel, getPageLabel, getSummaryLabel, siblingCount, onPageChange, ...props }: PaginationProps): import("react/jsx-runtime").JSX.Element;
21
+ export { Pagination, PaginationLink };
22
+ export type { PaginationProps, PaginationLinkProps, PaginationSiblingCount, PaginationRangeItem, };
23
+ //# 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;AAK9B,KAAK,sBAAsB,GAAG,CAAC,GAAG,CAAC,CAAA;AACnC,KAAK,mBAAmB,GAAG,MAAM,GAAG,gBAAgB,GAAG,cAAc,CAAA;AAErE,KAAK,eAAe,GAAG,IAAI,CACzB,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAC3B,UAAU,GAAG,YAAY,CAC1B,GAAG;IACF,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAA;IACrE,YAAY,CAAC,EAAE,sBAAsB,CAAA;IACrC,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KACvC,IAAI,CAAA;CACV,CAAA;AAuDD,KAAK,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,GAAG;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,SAAiB,EACjB,GAAG,KAAK,EACT,EAAE,mBAAmB,2CAgBrB;AAmED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,KAAK,EACL,aAA+B,EAC/B,SAAuB,EACvB,YAAuC,EACvC,eAAmE,EACnE,YAAgB,EAChB,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,eAAe,2CAwFjB;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA;AACrC,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,GACpB,CAAA"}
@@ -0,0 +1,64 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ChevronLeft, ChevronRight, MoreHorizontal } from "lucide-react";
3
+ import { cn } from "@akbarsafari00/ods-react/lib/utils";
4
+ function createPaginationRange(currentPage, totalPages, siblingCount) {
5
+ const visiblePageSlots = siblingCount * 2 + 5;
6
+ if (totalPages <= visiblePageSlots) {
7
+ return Array.from({ length: totalPages }, (_, index) => index + 1);
8
+ }
9
+ const leftSibling = Math.max(currentPage - siblingCount, 1);
10
+ const rightSibling = Math.min(currentPage + siblingCount, totalPages);
11
+ const showLeftEllipsis = leftSibling > 2;
12
+ const showRightEllipsis = rightSibling < totalPages - 1;
13
+ if (!showLeftEllipsis && showRightEllipsis) {
14
+ const leftItemCount = 3 + siblingCount * 2;
15
+ return [
16
+ ...Array.from({ length: leftItemCount }, (_, index) => index + 1),
17
+ "ellipsis-end",
18
+ totalPages,
19
+ ];
20
+ }
21
+ if (showLeftEllipsis && !showRightEllipsis) {
22
+ const rightItemCount = 3 + siblingCount * 2;
23
+ const firstRightPage = totalPages - rightItemCount + 1;
24
+ return [
25
+ 1,
26
+ "ellipsis-start",
27
+ ...Array.from({ length: rightItemCount }, (_, index) => firstRightPage + index),
28
+ ];
29
+ }
30
+ return [
31
+ 1,
32
+ "ellipsis-start",
33
+ ...Array.from({ length: rightSibling - leftSibling + 1 }, (_, index) => leftSibling + index),
34
+ "ellipsis-end",
35
+ totalPages,
36
+ ];
37
+ }
38
+ const itemClassName = "inline-flex min-h-10 min-w-10 shrink-0 items-center justify-center gap-1.5 rounded-[var(--ods-radius-control)] border border-transparent px-2 text-sm font-medium outline-none transition-[color,background-color,border-color,box-shadow] duration-[var(--ods-motion-duration-feedback)] ease-[var(--ods-motion-easing-standard)] focus-visible:z-10 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background in-data-[density=compact]:min-h-8 in-data-[density=compact]:min-w-8 in-data-[density=compact]:px-1.5";
39
+ function PaginationLink({ className, isCurrent = false, ...props }) {
40
+ return (_jsx("a", { "data-slot": "pagination-link", "data-current": isCurrent ? "true" : undefined, className: cn(itemClassName, "text-foreground hover:border-border hover:bg-muted", isCurrent &&
41
+ "border-primary bg-primary font-semibold text-primary-foreground shadow-sm hover:border-primary hover:bg-primary", className), ...props, "aria-current": isCurrent ? "page" : undefined }));
42
+ }
43
+ function PaginationControl({ direction, href, label, onClick, }) {
44
+ const isPrevious = direction === "previous";
45
+ const Icon = isPrevious ? ChevronLeft : ChevronRight;
46
+ const content = (_jsxs(_Fragment, { children: [isPrevious ? (_jsx(Icon, { "data-slot": "pagination-direction-icon", className: "size-4", "aria-hidden": "true" })) : null, _jsx("span", { className: "hidden @lg/pagination:inline", children: label }), !isPrevious ? (_jsx(Icon, { "data-slot": "pagination-direction-icon", className: "size-4", "aria-hidden": "true" })) : null] }));
47
+ if (!href) {
48
+ return (_jsx("span", { "data-slot": `pagination-${direction}`, className: cn(itemClassName, "cursor-not-allowed text-muted-foreground/60"), "aria-label": label, "aria-disabled": "true", children: content }));
49
+ }
50
+ return (_jsx(PaginationLink, { "data-slot": `pagination-${direction}`, className: "text-foreground hover:border-border hover:bg-muted @lg/pagination:px-3", href: href, rel: direction === "previous" ? "prev" : "next", "aria-label": label, onClick: onClick, children: content }));
51
+ }
52
+ function Pagination({ className, currentPage, totalPages, getPageHref, label, previousLabel = "Previous page", nextLabel = "Next page", getPageLabel = (page) => `Page ${page}`, getSummaryLabel = (current, total) => `Page ${current} of ${total}`, siblingCount = 1, onPageChange, ...props }) {
53
+ const safeTotalPages = Math.max(1, Math.floor(totalPages));
54
+ const safeCurrentPage = Math.min(safeTotalPages, Math.max(1, Math.floor(currentPage)));
55
+ const range = createPaginationRange(safeCurrentPage, safeTotalPages, siblingCount);
56
+ const handlePageChange = (page) => (event) => {
57
+ onPageChange?.(page, event);
58
+ };
59
+ return (_jsx("nav", { "data-slot": "pagination", className: cn("@container/pagination flex min-w-0", className), ...props, "aria-label": label, children: _jsxs("ul", { "data-slot": "pagination-content", className: "flex min-w-0 items-center gap-1", children: [_jsx("li", { children: _jsx(PaginationControl, { direction: "previous", href: safeCurrentPage > 1 ? getPageHref(safeCurrentPage - 1) : undefined, label: previousLabel, onClick: handlePageChange(safeCurrentPage - 1) }) }), _jsx("li", { className: "px-2 text-sm font-medium whitespace-nowrap @lg/pagination:hidden", children: _jsx("span", { "aria-live": "polite", children: getSummaryLabel(safeCurrentPage, safeTotalPages) }) }), range.map((item) => (_jsx("li", { className: "hidden @lg/pagination:list-item", "data-slot": "pagination-item", children: typeof item === "number" ? (_jsx(PaginationLink, { href: getPageHref(item), isCurrent: item === safeCurrentPage, "aria-label": getPageLabel(item), onClick: handlePageChange(item), children: item })) : (_jsx("span", { "data-slot": "pagination-ellipsis", className: cn(itemClassName, "text-muted-foreground"), "aria-hidden": "true", children: _jsx(MoreHorizontal, { className: "size-4" }) })) }, item))), _jsx("li", { children: _jsx(PaginationControl, { direction: "next", href: safeCurrentPage < safeTotalPages
60
+ ? getPageHref(safeCurrentPage + 1)
61
+ : undefined, label: nextLabel, onClick: handlePageChange(safeCurrentPage + 1) }) })] }) }));
62
+ }
63
+ export { Pagination, PaginationLink };
64
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAExE,OAAO,EAAE,EAAE,EAAE,MAAM,oCAAoC,CAAA;AAwBvD,SAAS,qBAAqB,CAC5B,WAAmB,EACnB,UAAkB,EAClB,YAAoC;IAEpC,MAAM,gBAAgB,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC,CAAA;IAE7C,IAAI,UAAU,IAAI,gBAAgB,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,CAAC,CAAC,CAAA;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,UAAU,CAAC,CAAA;IACrE,MAAM,gBAAgB,GAAG,WAAW,GAAG,CAAC,CAAA;IACxC,MAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,GAAG,CAAC,CAAA;IAEvD,IAAI,CAAC,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;QAC1C,OAAO;YACL,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;YACjE,cAAc;YACd,UAAU;SACX,CAAA;IACH,CAAC;IAED,IAAI,gBAAgB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;QAC3C,MAAM,cAAc,GAAG,UAAU,GAAG,cAAc,GAAG,CAAC,CAAA;QACtD,OAAO;YACL,CAAC;YACD,gBAAgB;YAChB,GAAG,KAAK,CAAC,IAAI,CACX,EAAE,MAAM,EAAE,cAAc,EAAE,EAC1B,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,GAAG,KAAK,CACrC;SACF,CAAA;IACH,CAAC;IAED,OAAO;QACL,CAAC;QACD,gBAAgB;QAChB,GAAG,KAAK,CAAC,IAAI,CACX,EAAE,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,CAAC,EAAE,EAC1C,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,GAAG,KAAK,CAClC;QACD,cAAc;QACd,UAAU;KACX,CAAA;AACH,CAAC;AAED,MAAM,aAAa,GACjB,0iBAA0iB,CAAA;AAM5iB,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,SAAS,GAAG,KAAK,EACjB,GAAG,KAAK,EACY;IACpB,OAAO,CACL,yBACY,iBAAiB,kBACb,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC5C,SAAS,EAAE,EAAE,CACX,aAAa,EACb,oDAAoD,EACpD,SAAS;YACP,iHAAiH,EACnH,SAAS,CACV,KACG,KAAK,kBACK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAC5C,CACH,CAAA;AACH,CAAC;AASD,SAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,IAAI,EACJ,KAAK,EACL,OAAO,GACgB;IACvB,MAAM,UAAU,GAAG,SAAS,KAAK,UAAU,CAAA;IAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAA;IACpD,MAAM,OAAO,GAAG,CACd,8BACG,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,IAAI,iBACO,2BAA2B,EACrC,SAAS,EAAC,QAAQ,iBACN,MAAM,GAClB,CACH,CAAC,CAAC,CAAC,IAAI,EACR,eAAM,SAAS,EAAC,8BAA8B,YAAE,KAAK,GAAQ,EAC5D,CAAC,UAAU,CAAC,CAAC,CAAC,CACb,KAAC,IAAI,iBACO,2BAA2B,EACrC,SAAS,EAAC,QAAQ,iBACN,MAAM,GAClB,CACH,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAA;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CACL,4BACa,cAAc,SAAS,EAAE,EACpC,SAAS,EAAE,EAAE,CACX,aAAa,EACb,6CAA6C,CAC9C,gBACW,KAAK,mBACH,MAAM,YAEnB,OAAO,GACH,CACR,CAAA;IACH,CAAC;IAED,OAAO,CACL,KAAC,cAAc,iBACF,cAAc,SAAS,EAAE,EACpC,SAAS,EAAC,wEAAwE,EAClF,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,gBACnC,KAAK,EACjB,OAAO,EAAE,OAAO,YAEf,OAAO,GACO,CAClB,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAClB,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,KAAK,EACL,aAAa,GAAG,eAAe,EAC/B,SAAS,GAAG,WAAW,EACvB,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,EAAE,EACvC,eAAe,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,OAAO,OAAO,KAAK,EAAE,EACnE,YAAY,GAAG,CAAC,EAChB,YAAY,EACZ,GAAG,KAAK,EACQ;IAChB,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;IAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAC9B,cAAc,EACd,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CACrC,CAAA;IACD,MAAM,KAAK,GAAG,qBAAqB,CACjC,eAAe,EACf,cAAc,EACd,YAAY,CACb,CAAA;IAED,MAAM,gBAAgB,GACpB,CAAC,IAAY,EAA8C,EAAE,CAC7D,CAAC,KAAK,EAAE,EAAE;QACR,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC7B,CAAC,CAAA;IAEH,OAAO,CACL,2BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAC1D,KAAK,gBACG,KAAK,YAEjB,2BACY,oBAAoB,EAC9B,SAAS,EAAC,iCAAiC,aAE3C,uBACE,KAAC,iBAAiB,IAChB,SAAS,EAAC,UAAU,EACpB,IAAI,EACF,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAEpE,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,gBAAgB,CAAC,eAAe,GAAG,CAAC,CAAC,GAC9C,GACC,EAEL,aAAI,SAAS,EAAC,kEAAkE,YAC9E,4BAAgB,QAAQ,YACrB,eAAe,CAAC,eAAe,EAAE,cAAc,CAAC,GAC5C,GACJ,EAEJ,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,aAEE,SAAS,EAAC,iCAAiC,eACjC,iBAAiB,YAE1B,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC1B,KAAC,cAAc,IACb,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EACvB,SAAS,EAAE,IAAI,KAAK,eAAe,gBACvB,YAAY,CAAC,IAAI,CAAC,EAC9B,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,YAE9B,IAAI,GACU,CAClB,CAAC,CAAC,CAAC,CACF,4BACY,qBAAqB,EAC/B,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,uBAAuB,CAAC,iBACzC,MAAM,YAElB,KAAC,cAAc,IAAC,SAAS,EAAC,QAAQ,GAAG,GAChC,CACR,IArBI,IAAI,CAsBN,CACN,CAAC,EAEF,uBACE,KAAC,iBAAiB,IAChB,SAAS,EAAC,MAAM,EAChB,IAAI,EACF,eAAe,GAAG,cAAc;4BAC9B,CAAC,CAAC,WAAW,CAAC,eAAe,GAAG,CAAC,CAAC;4BAClC,CAAC,CAAC,SAAS,EAEf,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,gBAAgB,CAAC,eAAe,GAAG,CAAC,CAAC,GAC9C,GACC,IACF,GACD,CACP,CAAA;AACH,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+ type ProgressAccessibleName = {
3
+ "aria-label": string;
4
+ "aria-labelledby"?: never;
5
+ } | {
6
+ "aria-label"?: never;
7
+ "aria-labelledby": string;
8
+ };
9
+ type ProgressProps = Omit<React.ComponentProps<"div">, "children" | "role" | "aria-label" | "aria-labelledby" | "aria-valuemin" | "aria-valuemax" | "aria-valuenow" | "aria-valuetext"> & ProgressAccessibleName & {
10
+ value: number | null;
11
+ max?: number;
12
+ getValueText?: (value: number, max: number) => string;
13
+ };
14
+ declare function Progress({ className, value, max, getValueText, ...props }: ProgressProps): import("react/jsx-runtime").JSX.Element;
15
+ export { Progress };
16
+ export type { ProgressProps };
17
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/components/progress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,KAAK,sBAAsB,GACvB;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,KAAK,CAAA;CAAE,GACnD;IAAE,YAAY,CAAC,EAAE,KAAK,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvD,KAAK,aAAa,GAAG,IAAI,CACvB,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EACzB,UAAU,GACV,MAAM,GACN,YAAY,GACZ,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,CACnB,GACC,sBAAsB,GAAG;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;CACtD,CAAA;AAEH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,KAAK,EACL,GAAS,EACT,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,aAAa,2CA8Cf;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnB,YAAY,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "@akbarsafari00/ods-react/lib/utils";
3
+ function Progress({ className, value, max = 100, getValueText, ...props }) {
4
+ const safeMax = Number.isFinite(max) && max > 0 ? max : 100;
5
+ const safeValue = value === null
6
+ ? null
7
+ : Math.min(safeMax, Math.max(0, Number.isFinite(value) ? value : 0));
8
+ const percentage = safeValue === null ? null : (safeValue / safeMax) * 100;
9
+ const state = safeValue === null
10
+ ? "indeterminate"
11
+ : safeValue >= safeMax
12
+ ? "complete"
13
+ : "loading";
14
+ const valueText = safeValue !== null && getValueText
15
+ ? getValueText(safeValue, safeMax)
16
+ : undefined;
17
+ const indicatorStyle = {
18
+ "--ods-progress-value": `${percentage ?? 0}%`,
19
+ };
20
+ return (_jsx("div", { className: cn("relative h-2 min-w-12 overflow-hidden rounded-full bg-muted in-data-[density=compact]:h-1.5", className), ...props, "data-slot": "progress", "data-state": state, "data-value": safeValue ?? undefined, "data-max": safeMax, role: "progressbar", "aria-valuemin": 0, "aria-valuemax": safeMax, "aria-valuenow": safeValue ?? undefined, "aria-valuetext": valueText, children: _jsx("div", { "data-slot": "progress-indicator", "data-state": state, className: "h-full rounded-full bg-primary transition-[inline-size] duration-[var(--ods-motion-duration-panel-enter)] ease-[var(--ods-motion-easing-standard)] data-[state=complete]:bg-success", style: indicatorStyle }) }));
21
+ }
22
+ export { Progress };
23
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/components/progress.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,oCAAoC,CAAA;AAuBvD,SAAS,QAAQ,CAAC,EAChB,SAAS,EACT,KAAK,EACL,GAAG,GAAG,GAAG,EACT,YAAY,EACZ,GAAG,KAAK,EACM;IACd,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;IAC3D,MAAM,SAAS,GACb,KAAK,KAAK,IAAI;QACZ,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,GAAG,CAAA;IAC1E,MAAM,KAAK,GACT,SAAS,KAAK,IAAI;QAChB,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,SAAS,IAAI,OAAO;YACpB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,SAAS,CAAA;IACjB,MAAM,SAAS,GACb,SAAS,KAAK,IAAI,IAAI,YAAY;QAChC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC;QAClC,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,cAAc,GAAG;QACrB,sBAAsB,EAAE,GAAG,UAAU,IAAI,CAAC,GAAG;KACvB,CAAA;IAExB,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,6FAA6F,EAC7F,SAAS,CACV,KACG,KAAK,eACC,UAAU,gBACR,KAAK,gBACL,SAAS,IAAI,SAAS,cACxB,OAAO,EACjB,IAAI,EAAC,aAAa,mBACH,CAAC,mBACD,OAAO,mBACP,SAAS,IAAI,SAAS,oBACrB,SAAS,YAEzB,2BACY,oBAAoB,gBAClB,KAAK,EACjB,SAAS,EAAC,qLAAqL,EAC/L,KAAK,EAAE,cAAc,GACrB,GACE,CACP,CAAA;AACH,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
3
+ declare function RadioGroup({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function RadioGroupItem({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
5
+ export { RadioGroup, RadioGroupItem };
6
+ //# sourceMappingURL=radio-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../src/components/radio-group.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAI5D,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,2CAQvD;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,2CAkBvD;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
4
+ import { cn } from "@akbarsafari00/ods-react/lib/utils";
5
+ function RadioGroup({ className, ...props }) {
6
+ return (_jsx(RadioGroupPrimitive.Root, { "data-slot": "radio-group", className: cn("grid gap-3", className), ...props }));
7
+ }
8
+ function RadioGroupItem({ className, ...props }) {
9
+ return (_jsx(RadioGroupPrimitive.Item, { "data-slot": "radio-group-item", className: cn("peer relative flex size-4 shrink-0 items-center justify-center rounded-full border border-input transition-colors outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:border-border disabled:bg-muted disabled:text-muted-foreground aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 data-[state=checked]:border-primary dark:aria-invalid:border-destructive dark:aria-invalid:ring-destructive/30", className), ...props, children: _jsx(RadioGroupPrimitive.Indicator, { "data-slot": "radio-group-indicator", className: "flex items-center justify-center", children: _jsx("span", { className: "size-2 rounded-full bg-primary" }) }) }));
10
+ }
11
+ export { RadioGroup, RadioGroupItem };
12
+ //# sourceMappingURL=radio-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../src/components/radio-group.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EAAE,EAAE,EAAE,MAAM,oCAAoC,CAAA;AAEvD,SAAS,UAAU,CAAC,EAClB,SAAS,EACT,GAAG,KAAK,EAC8C;IACtD,OAAO,CACL,KAAC,mBAAmB,CAAC,IAAI,iBACb,aAAa,EACvB,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,KAClC,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EAC8C;IACtD,OAAO,CACL,KAAC,mBAAmB,CAAC,IAAI,iBACb,kBAAkB,EAC5B,SAAS,EAAE,EAAE,CACX,miBAAmiB,EACniB,SAAS,CACV,KACG,KAAK,YAET,KAAC,mBAAmB,CAAC,SAAS,iBAClB,uBAAuB,EACjC,SAAS,EAAC,kCAAkC,YAE5C,eAAM,SAAS,EAAC,gCAAgC,GAAG,GACrB,GACP,CAC5B,CAAA;AACH,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import { Select as SelectPrimitive } from "radix-ui";
3
+ declare function Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function SelectGroup({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
5
+ declare function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>): import("react/jsx-runtime").JSX.Element;
6
+ declare function SelectTrigger({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
7
+ declare function SelectContent({ className, children, position, align, ...props }: React.ComponentProps<typeof SelectPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
8
+ declare function SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>): import("react/jsx-runtime").JSX.Element;
9
+ declare function SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
10
+ declare function SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
11
+ declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>): import("react/jsx-runtime").JSX.Element;
12
+ declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>): import("react/jsx-runtime").JSX.Element;
13
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
14
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;AAKpD,iBAAS,MAAM,CAAC,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAEnD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQpD;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAgBtD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAyB,EACzB,KAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CA8BtD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQpD;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAkBnD;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,2CAQxD;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,2CAa7D;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,2CAa/D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAA"}
@@ -0,0 +1,38 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Select as SelectPrimitive } from "radix-ui";
4
+ import { cn } from "@akbarsafari00/ods-react/lib/utils";
5
+ import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react";
6
+ function Select({ ...props }) {
7
+ return _jsx(SelectPrimitive.Root, { "data-slot": "select", ...props });
8
+ }
9
+ function SelectGroup({ className, ...props }) {
10
+ return (_jsx(SelectPrimitive.Group, { "data-slot": "select-group", className: cn("scroll-my-1 p-1", className), ...props }));
11
+ }
12
+ function SelectValue({ ...props }) {
13
+ return _jsx(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
14
+ }
15
+ function SelectTrigger({ className, children, ...props }) {
16
+ return (_jsxs(SelectPrimitive.Trigger, { "data-slot": "select-trigger", className: cn("flex h-10 w-fit items-center justify-between gap-2 rounded-[4px] border border-input bg-background py-2 ps-4 pe-3 text-sm leading-5 whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:border-border disabled:bg-muted disabled:text-muted-foreground in-data-[density=compact]:h-8 in-data-[density=compact]:gap-1.5 in-data-[density=compact]:py-1.5 in-data-[density=compact]:ps-3 in-data-[density=compact]:pe-2 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:aria-invalid:border-destructive dark:aria-invalid:ring-destructive/30 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(SelectPrimitive.Icon, { asChild: true, children: _jsx(ChevronDownIcon, { className: "pointer-events-none size-4 text-muted-foreground" }) })] }));
17
+ }
18
+ function SelectContent({ className, children, position = "item-aligned", align = "center", ...props }) {
19
+ return (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { "data-slot": "select-content", "data-align-trigger": position === "item-aligned", className: cn("relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", position === "popper" &&
20
+ "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1 rtl:data-[side=left]:translate-x-1 rtl:data-[side=right]:-translate-x-1", className), position: position, align: align, ...props, children: [_jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.Viewport, { "data-position": position, className: cn("data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)", position === "popper" && ""), children: children }), _jsx(SelectScrollDownButton, {})] }) }));
21
+ }
22
+ function SelectLabel({ className, ...props }) {
23
+ return (_jsx(SelectPrimitive.Label, { "data-slot": "select-label", className: cn("px-1.5 py-1 text-xs text-muted-foreground", className), ...props }));
24
+ }
25
+ function SelectItem({ className, children, ...props }) {
26
+ return (_jsxs(SelectPrimitive.Item, { "data-slot": "select-item", className: cn("relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 ps-1.5 pe-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className), ...props, children: [_jsx("span", { className: "pointer-events-none absolute end-2 flex size-4 items-center justify-center", children: _jsx(SelectPrimitive.ItemIndicator, { children: _jsx(CheckIcon, { className: "pointer-events-none" }) }) }), _jsx(SelectPrimitive.ItemText, { children: children })] }));
27
+ }
28
+ function SelectSeparator({ className, ...props }) {
29
+ return (_jsx(SelectPrimitive.Separator, { "data-slot": "select-separator", className: cn("pointer-events-none -mx-1 my-1 h-px bg-border", className), ...props }));
30
+ }
31
+ function SelectScrollUpButton({ className, ...props }) {
32
+ return (_jsx(SelectPrimitive.ScrollUpButton, { "data-slot": "select-scroll-up-button", className: cn("z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: _jsx(ChevronUpIcon, {}) }));
33
+ }
34
+ function SelectScrollDownButton({ className, ...props }) {
35
+ return (_jsx(SelectPrimitive.ScrollDownButton, { "data-slot": "select-scroll-down-button", className: cn("z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: _jsx(ChevronDownIcon, {}) }));
36
+ }
37
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
38
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import { Separator as SeparatorPrimitive } from "radix-ui";
3
+ declare function Separator({ className, orientation, decorative, ...props }: React.ComponentProps<typeof SeparatorPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export { Separator };
5
+ //# sourceMappingURL=separator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../src/components/separator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAI1D,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,WAA0B,EAC1B,UAAiB,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,2CAatD;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Separator as SeparatorPrimitive } from "radix-ui";
3
+ import { cn } from "@akbarsafari00/ods-react/lib/utils";
4
+ function Separator({ className, orientation = "horizontal", decorative = true, ...props }) {
5
+ return (_jsx(SeparatorPrimitive.Root, { "data-slot": "separator", decorative: decorative, orientation: orientation, className: cn("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch", className), ...props }));
6
+ }
7
+ export { Separator };
8
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.js","sourceRoot":"","sources":["../../src/components/separator.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAE1D,OAAO,EAAE,EAAE,EAAE,MAAM,oCAAoC,CAAA;AAEvD,SAAS,SAAS,CAAC,EACjB,SAAS,EACT,WAAW,GAAG,YAAY,EAC1B,UAAU,GAAG,IAAI,EACjB,GAAG,KAAK,EAC6C;IACrD,OAAO,CACL,KAAC,kBAAkB,CAAC,IAAI,iBACZ,WAAW,EACrB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CACX,sKAAsK,EACtK,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}