singularity-components 0.1.151 → 0.1.193
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.
- package/README.md +29 -12
- package/dist/components/blocks/cards/blogpost-card.d.ts +9 -4
- package/dist/components/blocks/cards/blogpost-card.js +37 -23
- package/dist/components/blocks/cards/blogpost-card.js.map +1 -1
- package/dist/components/blocks/cards/card.js +1 -1
- package/dist/components/blocks/cards/card.js.map +1 -1
- package/dist/components/blocks/empty-state/EmptyState.d.ts +15 -0
- package/dist/components/blocks/empty-state/EmptyState.js +36 -0
- package/dist/components/blocks/empty-state/EmptyState.js.map +1 -0
- package/dist/components/blocks/index.d.ts +2 -0
- package/dist/components/blocks/index.js +4 -2
- package/dist/components/blocks/index.js.map +1 -1
- package/dist/components/blocks/post-list/post-filters.d.ts +19 -0
- package/dist/components/blocks/post-list/post-filters.js +99 -0
- package/dist/components/blocks/post-list/post-filters.js.map +1 -0
- package/dist/components/blocks/post-list/post-list-with-filters.d.ts +19 -0
- package/dist/components/blocks/post-list/post-list-with-filters.js +439 -0
- package/dist/components/blocks/post-list/post-list-with-filters.js.map +1 -0
- package/dist/components/index.d.ts +42 -12
- package/dist/components/index.js +5 -6
- package/dist/components/index.js.map +1 -1
- package/dist/components/pages/admin/admin-page.d.ts +8 -0
- package/dist/components/pages/admin/admin-page.js +299 -0
- package/dist/components/pages/admin/admin-page.js.map +1 -0
- package/dist/components/pages/blogpost/blogpost.js +440 -0
- package/dist/components/pages/blogpost/blogpost.js.map +1 -0
- package/dist/components/pages/category/category-page.d.ts +8 -0
- package/dist/components/pages/category/category-page.js +69 -0
- package/dist/components/pages/category/category-page.js.map +1 -0
- package/dist/components/pages/chat/chat-page.d.ts +5 -0
- package/dist/components/pages/chat/chat-page.js +209 -0
- package/dist/components/pages/chat/chat-page.js.map +1 -0
- package/dist/components/pages/index.d.ts +11 -0
- package/dist/components/pages/index.js +11 -0
- package/dist/components/pages/index.js.map +1 -0
- package/dist/components/pages/login/login-page.d.ts +19 -0
- package/dist/components/pages/login/login-page.js +108 -0
- package/dist/components/pages/login/login-page.js.map +1 -0
- package/dist/components/pages/maintenance/maintenance-page.d.ts +5 -0
- package/dist/components/pages/maintenance/maintenance-page.js +50 -0
- package/dist/components/pages/maintenance/maintenance-page.js.map +1 -0
- package/dist/components/pages/not-found/not-found.d.ts +10 -0
- package/dist/components/pages/not-found/not-found.js +64 -0
- package/dist/components/pages/not-found/not-found.js.map +1 -0
- package/dist/components/pages/privacy/privacy-page.d.ts +15 -0
- package/dist/components/pages/privacy/privacy-page.js +98 -0
- package/dist/components/pages/privacy/privacy-page.js.map +1 -0
- package/dist/components/pages/search/search-page.d.ts +5 -0
- package/dist/components/pages/search/search-page.js +18 -0
- package/dist/components/pages/search/search-page.js.map +1 -0
- package/dist/components/pages/startpage/startpage.js +50 -0
- package/dist/components/pages/startpage/startpage.js.map +1 -0
- package/dist/components/pages/terms/terms-page.d.ts +15 -0
- package/dist/components/pages/terms/terms-page.js +98 -0
- package/dist/components/pages/terms/terms-page.js.map +1 -0
- package/dist/components/primitives/accordion/accordion.js +1 -1
- package/dist/components/primitives/accordion/accordion.js.map +1 -1
- package/dist/components/primitives/alert/alert.js +1 -1
- package/dist/components/primitives/alert/alert.js.map +1 -1
- package/dist/components/primitives/avatar/avatar.d.ts +14 -0
- package/dist/components/primitives/avatar/avatar.js +103 -0
- package/dist/components/primitives/avatar/avatar.js.map +1 -0
- package/dist/components/primitives/badge/badge.d.ts +1 -1
- package/dist/components/primitives/badge/badge.js +5 -5
- package/dist/components/primitives/badge/badge.js.map +1 -1
- package/dist/components/primitives/badge/badges.js +1 -1
- package/dist/components/primitives/badge/badges.js.map +1 -1
- package/dist/components/primitives/{button → buttons}/button.d.ts +8 -7
- package/dist/components/primitives/{button → buttons}/button.js +19 -14
- package/dist/components/primitives/buttons/button.js.map +1 -0
- package/dist/components/primitives/buttons/icon-button.d.ts +33 -0
- package/dist/components/primitives/buttons/icon-button.js +61 -0
- package/dist/components/primitives/buttons/icon-button.js.map +1 -0
- package/dist/components/primitives/{link → buttons}/link-button.d.ts +7 -4
- package/dist/components/primitives/buttons/link-button.js +35 -0
- package/dist/components/primitives/buttons/link-button.js.map +1 -0
- package/dist/components/primitives/collapsible/collapsible.d.ts +9 -0
- package/dist/components/primitives/collapsible/collapsible.js +53 -0
- package/dist/components/primitives/collapsible/collapsible.js.map +1 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu.d.ts +30 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu.js +164 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/components/primitives/forms/checkbox.d.ts +6 -0
- package/dist/components/primitives/forms/checkbox.js +30 -0
- package/dist/components/primitives/forms/checkbox.js.map +1 -0
- package/dist/components/primitives/forms/field.d.ts +29 -0
- package/dist/components/primitives/forms/field.js +218 -0
- package/dist/components/primitives/forms/field.js.map +1 -0
- package/dist/components/primitives/forms/input.d.ts +6 -0
- package/dist/components/primitives/forms/input.js +22 -0
- package/dist/components/primitives/forms/input.js.map +1 -0
- package/dist/components/primitives/forms/select.d.ts +22 -0
- package/dist/components/primitives/forms/select.js +169 -0
- package/dist/components/primitives/forms/select.js.map +1 -0
- package/dist/components/primitives/forms/textarea.d.ts +6 -0
- package/dist/components/primitives/forms/textarea.js +20 -0
- package/dist/components/primitives/forms/textarea.js.map +1 -0
- package/dist/components/primitives/icon/icon.d.ts +9 -2
- package/dist/components/primitives/icon/icon.js +10 -3
- package/dist/components/primitives/icon/icon.js.map +1 -1
- package/dist/components/primitives/index.d.ts +23 -7
- package/dist/components/primitives/index.js +31 -20
- package/dist/components/primitives/index.js.map +1 -1
- package/dist/components/primitives/label/label.d.ts +6 -0
- package/dist/components/primitives/label/label.js +22 -0
- package/dist/components/primitives/label/label.js.map +1 -0
- package/dist/components/primitives/layout/layout.d.ts +6 -3
- package/dist/components/primitives/layout/layout.js +28 -11
- package/dist/components/primitives/layout/layout.js.map +1 -1
- package/dist/components/primitives/link/link.d.ts +11 -5
- package/dist/components/primitives/link/link.js +38 -11
- package/dist/components/primitives/link/link.js.map +1 -1
- package/dist/components/primitives/separator/separator.js +1 -1
- package/dist/components/primitives/separator/separator.js.map +1 -1
- package/dist/components/primitives/sheet/sheet.d.ts +29 -0
- package/dist/components/primitives/sheet/sheet.js +117 -0
- package/dist/components/primitives/sheet/sheet.js.map +1 -0
- package/dist/components/primitives/skeleton/skeleton.js +1 -1
- package/dist/components/primitives/skeleton/skeleton.js.map +1 -1
- package/dist/components/primitives/sonner/sonner.d.ts +7 -0
- package/dist/components/primitives/sonner/sonner.js +42 -0
- package/dist/components/primitives/sonner/sonner.js.map +1 -0
- package/dist/components/primitives/sonner/use-toast.d.ts +24 -0
- package/dist/components/primitives/sonner/use-toast.js +21 -0
- package/dist/components/primitives/sonner/use-toast.js.map +1 -0
- package/dist/components/primitives/spinner/spinner.js +1 -1
- package/dist/components/primitives/spinner/spinner.js.map +1 -1
- package/dist/components/primitives/stack/stack.d.ts +3 -0
- package/dist/components/primitives/stack/stack.js +34 -4
- package/dist/components/primitives/stack/stack.js.map +1 -1
- package/dist/components/primitives/text/{text-heading.d.ts → heading.d.ts} +5 -5
- package/dist/components/primitives/text/{text-heading.js → heading.js} +11 -11
- package/dist/components/primitives/text/heading.js.map +1 -0
- package/dist/components/primitives/text/internal/text-element.d.ts +7 -3
- package/dist/components/primitives/text/internal/text-element.js +4 -2
- package/dist/components/primitives/text/internal/text-element.js.map +1 -1
- package/dist/components/primitives/text/text-code.d.ts +26 -0
- package/dist/components/primitives/text/text-code.js +44 -0
- package/dist/components/primitives/text/text-code.js.map +1 -0
- package/dist/components/primitives/text/text-div.js +2 -2
- package/dist/components/primitives/text/text-div.js.map +1 -1
- package/dist/components/primitives/text/text-span.js +2 -2
- package/dist/components/primitives/text/text-span.js.map +1 -1
- package/dist/components/primitives/text/text-time.js +2 -2
- package/dist/components/primitives/text/text-time.js.map +1 -1
- package/dist/components/primitives/text/{text-paragraph.d.ts → text.d.ts} +4 -4
- package/dist/components/primitives/text/{text-paragraph.js → text.js} +11 -11
- package/dist/components/primitives/text/text.js.map +1 -0
- package/dist/components/primitives/{ui-image.d.ts → ui-image/ui-image.d.ts} +1 -1
- package/dist/components/primitives/{ui-image.js → ui-image/ui-image.js} +3 -3
- package/dist/components/primitives/ui-image/ui-image.js.map +1 -0
- package/dist/components/primitives/ui-link/ui-link.d.ts +8 -0
- package/dist/components/primitives/ui-link/ui-link.js +19 -0
- package/dist/components/primitives/ui-link/ui-link.js.map +1 -0
- package/dist/components/providers/LinkContext.d.ts +1 -1
- package/dist/components/providers/LinkContext.js +1 -1
- package/dist/components/providers/LinkContext.js.map +1 -1
- package/dist/components/providers/SingularityContext.d.ts +4 -1
- package/dist/components/providers/SingularityContext.js +7 -3
- package/dist/components/providers/SingularityContext.js.map +1 -1
- package/dist/components/providers/auth-provider.d.ts +15 -0
- package/dist/components/providers/auth-provider.js +30 -0
- package/dist/components/providers/auth-provider.js.map +1 -0
- package/dist/components/providers/index.d.ts +3 -0
- package/dist/components/providers/index.js +5 -3
- package/dist/components/providers/index.js.map +1 -1
- package/dist/components/providers/theme-provider.d.ts +27 -0
- package/dist/components/providers/theme-provider.js +75 -0
- package/dist/components/providers/theme-provider.js.map +1 -0
- package/dist/components/templates/container/container.d.ts +20 -0
- package/dist/components/templates/container/container.js +58 -0
- package/dist/components/templates/container/container.js.map +1 -0
- package/dist/components/templates/footer/footer.d.ts +5 -0
- package/dist/components/templates/footer/footer.js +12 -0
- package/dist/components/templates/footer/footer.js.map +1 -0
- package/dist/components/templates/form/form.d.ts +5 -0
- package/dist/components/templates/form/form.js +141 -0
- package/dist/components/templates/form/form.js.map +1 -0
- package/dist/components/templates/hero/hero.d.ts +18 -0
- package/dist/components/{sections → templates}/hero/hero.js +52 -22
- package/dist/components/templates/hero/hero.js.map +1 -0
- package/dist/components/templates/index.d.ts +4 -2
- package/dist/components/templates/index.js +4 -2
- package/dist/components/templates/index.js.map +1 -1
- package/dist/components/templates/navigation/header.d.ts +19 -0
- package/dist/components/templates/navigation/header.js +222 -0
- package/dist/components/templates/navigation/header.js.map +1 -0
- package/dist/components/templates/navigation/index.d.ts +3 -0
- package/dist/components/templates/navigation/index.js +2 -0
- package/dist/components/templates/navigation/index.js.map +1 -0
- package/dist/css/variables.css +2 -2
- package/dist/css/variables.css.map +1 -1
- package/dist/data/authors.d.ts +12 -0
- package/dist/data/authors.js +33 -0
- package/dist/data/authors.js.map +1 -0
- package/dist/data/posts.d.ts +5 -3
- package/dist/data/posts.js +66 -47
- package/dist/data/posts.js.map +1 -1
- package/dist/index.d.ts +42 -12
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/helpers/index.js +1 -1
- package/dist/lib/helpers/index.js.map +1 -1
- package/dist/lib/index.js +2 -2
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/types.d.ts +4 -8
- package/dist/main.css +1528 -85
- package/dist/main.css.map +1 -1
- package/dist/{utils.js → utils/index.js} +1 -1
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.test.js +37 -0
- package/dist/utils/index.test.js.map +1 -0
- package/package.json +69 -44
- package/dist/components/primitives/button/button.js.map +0 -1
- package/dist/components/primitives/link/link-button.js +0 -21
- package/dist/components/primitives/link/link-button.js.map +0 -1
- package/dist/components/primitives/text/text-heading.js.map +0 -1
- package/dist/components/primitives/text/text-paragraph.js.map +0 -1
- package/dist/components/primitives/ui-image.js.map +0 -1
- package/dist/components/primitives/ui-link.d.ts +0 -8
- package/dist/components/primitives/ui-link.js +0 -16
- package/dist/components/primitives/ui-link.js.map +0 -1
- package/dist/components/sections/body/body.d.ts +0 -19
- package/dist/components/sections/body/body.js +0 -49
- package/dist/components/sections/body/body.js.map +0 -1
- package/dist/components/sections/footer/footer.d.ts +0 -12
- package/dist/components/sections/footer/footer.js +0 -59
- package/dist/components/sections/footer/footer.js.map +0 -1
- package/dist/components/sections/hero/hero.d.ts +0 -6
- package/dist/components/sections/hero/hero.js.map +0 -1
- package/dist/components/sections/index.d.ts +0 -3
- package/dist/components/sections/index.js +0 -4
- package/dist/components/sections/index.js.map +0 -1
- package/dist/components/templates/blogpost/blogpost.js +0 -173
- package/dist/components/templates/blogpost/blogpost.js.map +0 -1
- package/dist/components/templates/startpage/startpage.js +0 -48
- package/dist/components/templates/startpage/startpage.js.map +0 -1
- package/dist/components/units/index.js +0 -1
- package/dist/components/units/index.js.map +0 -1
- package/dist/utils.js.map +0 -1
- /package/dist/components/{templates → pages}/blogpost/blogpost.d.ts +0 -0
- /package/dist/components/{templates → pages}/startpage/startpage.d.ts +0 -0
- /package/dist/{utils.d.ts → utils/index.d.ts} +0 -0
- /package/dist/{components/units/index.d.ts → utils/index.test.d.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { cn } from "../../../utils";
|
|
3
|
+
import { cn } from "../../../utils/index.js";
|
|
4
4
|
import { Button as ButtonPrimitive } from "@base-ui/react/button";
|
|
5
5
|
import { cva } from "class-variance-authority";
|
|
6
6
|
import { icons } from "lucide-react";
|
|
@@ -14,12 +14,10 @@ const buttonVariants = {
|
|
|
14
14
|
link: "sg:text-primary sg:underline-offset-4 sg:hover:underline"
|
|
15
15
|
},
|
|
16
16
|
size: {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
21
|
-
"icon-md": "sg:size-9",
|
|
22
|
-
"icon-lg": "sg:size-10"
|
|
17
|
+
xs: "sg:h-6 sg:min-w-6 sg:gap-1 sg:px-1.5 sg:has-data-[icon=inline-end]:pr-1.5 sg:text-xs",
|
|
18
|
+
sm: "sg:h-8 sg:min-w-8 sg:gap-1 sg:px-2 sg:has-data-[icon=inline-end]:pr-2",
|
|
19
|
+
md: "sg:h-9 sg:min-w-9 sg:gap-1.5 sg:px-2.5 sg:has-data-[icon=inline-end]:pr-2.5",
|
|
20
|
+
lg: "sg:h-10 sg:min-w-10 sg:gap-1.5 sg:px-3 sg:has-data-[icon=inline-end]:pr-3"
|
|
23
21
|
}
|
|
24
22
|
};
|
|
25
23
|
const buttonVariantsProps = cva(
|
|
@@ -28,28 +26,33 @@ const buttonVariantsProps = cva(
|
|
|
28
26
|
variants: buttonVariants,
|
|
29
27
|
defaultVariants: {
|
|
30
28
|
variant: "default",
|
|
31
|
-
size: "
|
|
29
|
+
size: "md"
|
|
32
30
|
}
|
|
33
31
|
}
|
|
34
32
|
);
|
|
35
33
|
function Button({
|
|
36
34
|
className,
|
|
37
|
-
variant
|
|
38
|
-
size
|
|
35
|
+
variant,
|
|
36
|
+
size,
|
|
37
|
+
loading,
|
|
39
38
|
iconStart,
|
|
40
39
|
iconStartAnimate,
|
|
40
|
+
iconStartFill,
|
|
41
41
|
iconEnd,
|
|
42
42
|
iconEndAnimate,
|
|
43
|
+
iconEndFill,
|
|
43
44
|
...props
|
|
44
45
|
}) {
|
|
45
46
|
const iconAnimateCss = "sg:animate-spin";
|
|
47
|
+
const iconFillCss = "sg:fill-current";
|
|
46
48
|
const LucideIconStart = iconStart && icons[iconStart];
|
|
47
|
-
const LucideIconEnd = iconEnd && icons[iconEnd];
|
|
49
|
+
const LucideIconEnd = loading ? icons["Loader"] : iconEnd && icons[iconEnd];
|
|
48
50
|
return /* @__PURE__ */ jsxs(
|
|
49
51
|
ButtonPrimitive,
|
|
50
52
|
{
|
|
51
53
|
"data-slot": "button",
|
|
52
54
|
className: cn(buttonVariantsProps({ variant, size, className })),
|
|
55
|
+
disabled: props.disabled || loading,
|
|
53
56
|
...props,
|
|
54
57
|
children: [
|
|
55
58
|
LucideIconStart && /* @__PURE__ */ jsx(
|
|
@@ -58,7 +61,8 @@ function Button({
|
|
|
58
61
|
className: cn(
|
|
59
62
|
"sg:size-4",
|
|
60
63
|
iconStartAnimate && iconAnimateCss,
|
|
61
|
-
|
|
64
|
+
iconStartFill && iconFillCss,
|
|
65
|
+
(props.disabled || loading) && "sg:opacity-50"
|
|
62
66
|
),
|
|
63
67
|
"data-icon": "inline-start"
|
|
64
68
|
}
|
|
@@ -69,8 +73,9 @@ function Button({
|
|
|
69
73
|
{
|
|
70
74
|
className: cn(
|
|
71
75
|
"sg:size-4",
|
|
72
|
-
iconEndAnimate && iconAnimateCss,
|
|
73
|
-
|
|
76
|
+
(iconEndAnimate || loading) && iconAnimateCss,
|
|
77
|
+
iconEndFill && iconFillCss,
|
|
78
|
+
(props.disabled || loading) && "sg:opacity-50"
|
|
74
79
|
),
|
|
75
80
|
"data-icon": "inline-end"
|
|
76
81
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/buttons/button.tsx"],"sourcesContent":["\"use client\";\r\nimport { cn } from \"../../../utils/index\";\r\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { icons } from \"lucide-react\";\r\n\r\nconst buttonVariants = {\r\n variant: {\r\n default: \"sg:bg-primary sg:text-primary-foreground sg:hover:brightness-110\",\r\n destructive:\r\n \"sg:bg-destructive sg:text-destructive-foreground sg:hover:brightness-110\",\r\n outline:\r\n \"sg:border sg:border-input sg:bg-background sg:hover:bg-muted sg:hover:text-foreground\",\r\n secondary:\r\n \"sg:bg-secondary sg:text-secondary-foreground sg:hover:brightness-90\",\r\n ghost: \"sg:hover:bg-muted sg:hover:text-foreground\",\r\n link: \"sg:text-primary sg:underline-offset-4 sg:hover:underline\",\r\n },\r\n size: {\r\n xs: \"sg:h-6 sg:min-w-6 sg:gap-1 sg:px-1.5 sg:has-data-[icon=inline-end]:pr-1.5 sg:text-xs\",\r\n sm: \"sg:h-8 sg:min-w-8 sg:gap-1 sg:px-2 sg:has-data-[icon=inline-end]:pr-2\",\r\n md: \"sg:h-9 sg:min-w-9 sg:gap-1.5 sg:px-2.5 sg:has-data-[icon=inline-end]:pr-2.5\",\r\n lg: \"sg:h-10 sg:min-w-10 sg:gap-1.5 sg:px-3 sg:has-data-[icon=inline-end]:pr-3\",\r\n },\r\n};\r\n\r\nconst buttonVariantsProps = cva(\r\n \"sg:inline-flex sg:items-center sg:justify-center sg:gap-2 sg:whitespace-nowrap sg:rounded-md sg:text-sm sg:font-medium sg:ring-offset-background sg:transition-colors sg:focus-visible:outline-none sg:focus-visible:ring-2 sg:focus-visible:ring-ring sg:focus-visible:ring-offset-2 sg:disabled:pointer-events-none sg:disabled:opacity-50 sg:[&_svg]:pointer-events-none sg:[&_svg]:size-4 sg:[&_svg]:shrink-0\",\r\n {\r\n variants: buttonVariants,\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"md\",\r\n },\r\n },\r\n);\r\n\r\ntype Props = ButtonPrimitive.Props &\r\n VariantProps<typeof buttonVariantsProps> & {\r\n loading?: boolean;\r\n iconStart?: keyof typeof icons;\r\n iconStartAnimate?: boolean;\r\n iconStartFill?: boolean;\r\n iconEnd?: keyof typeof icons;\r\n iconEndAnimate?: boolean;\r\n iconEndFill?: boolean;\r\n };\r\n\r\nfunction Button({\r\n className,\r\n variant,\r\n size,\r\n loading,\r\n iconStart,\r\n iconStartAnimate,\r\n iconStartFill,\r\n iconEnd,\r\n iconEndAnimate,\r\n iconEndFill,\r\n ...props\r\n}: Props) {\r\n const iconAnimateCss = \"sg:animate-spin\";\r\n const iconFillCss = \"sg:fill-current\";\r\n\r\n const LucideIconStart = iconStart && icons[iconStart];\r\n const LucideIconEnd = loading ? icons[\"Loader\"] : iconEnd && icons[iconEnd];\r\n\r\n return (\r\n <ButtonPrimitive\r\n data-slot=\"button\"\r\n className={cn(buttonVariantsProps({ variant, size, className }))}\r\n disabled={props.disabled || loading}\r\n {...props}\r\n >\r\n {LucideIconStart && (\r\n <LucideIconStart\r\n className={cn(\r\n \"sg:size-4\",\r\n iconStartAnimate && iconAnimateCss,\r\n iconStartFill && iconFillCss,\r\n (props.disabled || loading) && \"sg:opacity-50\",\r\n )}\r\n data-icon=\"inline-start\"\r\n />\r\n )}\r\n {props.children}\r\n {LucideIconEnd && (\r\n <LucideIconEnd\r\n className={cn(\r\n \"sg:size-4\",\r\n (iconEndAnimate || loading) && iconAnimateCss,\r\n iconEndFill && iconFillCss,\r\n (props.disabled || loading) && \"sg:opacity-50\",\r\n )}\r\n data-icon=\"inline-end\"\r\n />\r\n )}\r\n </ButtonPrimitive>\r\n );\r\n}\r\n\r\nexport { Button, buttonVariantsProps, buttonVariants };\r\n"],"mappings":";AAoEI,SAOI,KAPJ;AAnEJ,SAAS,UAAU;AACnB,SAAS,UAAU,uBAAuB;AAC1C,SAAS,WAA8B;AACvC,SAAS,aAAa;AAEtB,MAAM,iBAAiB;AAAA,EACrB,SAAS;AAAA,IACP,SAAS;AAAA,IACT,aACE;AAAA,IACF,SACE;AAAA,IACF,WACE;AAAA,IACF,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,MAAM;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACF;AAEA,MAAM,sBAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAaA,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAU;AACR,QAAM,iBAAiB;AACvB,QAAM,cAAc;AAEpB,QAAM,kBAAkB,aAAa,MAAM,SAAS;AACpD,QAAM,gBAAgB,UAAU,MAAM,QAAQ,IAAI,WAAW,MAAM,OAAO;AAE1E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,oBAAoB,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,MAC/D,UAAU,MAAM,YAAY;AAAA,MAC3B,GAAG;AAAA,MAEH;AAAA,2BACC;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,oBAAoB;AAAA,cACpB,iBAAiB;AAAA,eAChB,MAAM,YAAY,YAAY;AAAA,YACjC;AAAA,YACA,aAAU;AAAA;AAAA,QACZ;AAAA,QAED,MAAM;AAAA,QACN,iBACC;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,eACC,kBAAkB,YAAY;AAAA,cAC/B,eAAe;AAAA,eACd,MAAM,YAAY,YAAY;AAAA,YACjC;AAAA,YACA,aAAU;AAAA;AAAA,QACZ;AAAA;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import { Button } from '@base-ui/react/button';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
import { icons } from 'lucide-react';
|
|
6
|
+
|
|
7
|
+
declare const buttonIconVariants: {
|
|
8
|
+
variant: {
|
|
9
|
+
default: string;
|
|
10
|
+
destructive: string;
|
|
11
|
+
outline: string;
|
|
12
|
+
secondary: string;
|
|
13
|
+
ghost: string;
|
|
14
|
+
link: string;
|
|
15
|
+
};
|
|
16
|
+
size: {
|
|
17
|
+
sm: string;
|
|
18
|
+
md: string;
|
|
19
|
+
lg: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
declare const iconButtonVariantsProps: (props?: ({
|
|
23
|
+
variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
24
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
25
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
26
|
+
type Props = Button.Props & VariantProps<typeof iconButtonVariantsProps> & {
|
|
27
|
+
icon: keyof typeof icons;
|
|
28
|
+
iconFill?: boolean;
|
|
29
|
+
"aria-label": string;
|
|
30
|
+
};
|
|
31
|
+
declare function IconButton({ className, variant, size, icon, iconFill, "aria-label": ariaLabel, ...props }: Props): react_jsx_runtime.JSX.Element;
|
|
32
|
+
|
|
33
|
+
export { IconButton, buttonIconVariants, iconButtonVariantsProps };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../../../utils/index.js";
|
|
4
|
+
import { Button as ButtonPrimitive } from "@base-ui/react/button";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
import { icons } from "lucide-react";
|
|
7
|
+
import { buttonVariants } from "./button.js";
|
|
8
|
+
const buttonIconVariants = {
|
|
9
|
+
variant: buttonVariants.variant,
|
|
10
|
+
size: {
|
|
11
|
+
sm: "sg:size-8 sg:[&_svg]:size-4",
|
|
12
|
+
md: "sg:size-9 sg:[&_svg]:size-4",
|
|
13
|
+
lg: "sg:size-10 sg:[&_svg]:size-5"
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const iconButtonVariantsProps = cva(
|
|
17
|
+
"sg:inline-flex sg:items-center sg:justify-center sg:whitespace-nowrap sg:rounded-md sg:text-sm sg:font-medium sg:ring-offset-background sg:transition-colors sg:focus-visible:outline-none sg:focus-visible:ring-2 sg:focus-visible:ring-ring sg:focus-visible:ring-offset-2 sg:disabled:pointer-events-none sg:disabled:opacity-50 sg:[&_svg]:pointer-events-none sg:[&_svg]:shrink-0",
|
|
18
|
+
{
|
|
19
|
+
variants: buttonIconVariants,
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
variant: "default",
|
|
22
|
+
size: "md"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
function IconButton({
|
|
27
|
+
className,
|
|
28
|
+
variant,
|
|
29
|
+
size,
|
|
30
|
+
icon,
|
|
31
|
+
iconFill,
|
|
32
|
+
"aria-label": ariaLabel,
|
|
33
|
+
...props
|
|
34
|
+
}) {
|
|
35
|
+
const LucideIcon = icons[icon];
|
|
36
|
+
const iconFillCss = "sg:fill-current";
|
|
37
|
+
return /* @__PURE__ */ jsx(
|
|
38
|
+
ButtonPrimitive,
|
|
39
|
+
{
|
|
40
|
+
"data-slot": "icon-button",
|
|
41
|
+
"aria-label": ariaLabel,
|
|
42
|
+
className: cn(iconButtonVariantsProps({ variant, size, className })),
|
|
43
|
+
...props,
|
|
44
|
+
children: /* @__PURE__ */ jsx(
|
|
45
|
+
LucideIcon,
|
|
46
|
+
{
|
|
47
|
+
className: cn(
|
|
48
|
+
iconFill && iconFillCss,
|
|
49
|
+
props.disabled && "sg:opacity-50"
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
export {
|
|
57
|
+
IconButton,
|
|
58
|
+
buttonIconVariants,
|
|
59
|
+
iconButtonVariantsProps
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=icon-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/buttons/icon-button.tsx"],"sourcesContent":["\"use client\";\r\nimport { cn } from \"../../../utils/index\";\r\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { icons } from \"lucide-react\";\r\nimport { buttonVariants } from \"./button\";\r\n\r\nconst buttonIconVariants = {\r\n variant: buttonVariants.variant,\r\n size: {\r\n sm: \"sg:size-8 sg:[&_svg]:size-4\",\r\n md: \"sg:size-9 sg:[&_svg]:size-4\",\r\n lg: \"sg:size-10 sg:[&_svg]:size-5\",\r\n },\r\n};\r\n\r\nconst iconButtonVariantsProps = cva(\r\n \"sg:inline-flex sg:items-center sg:justify-center sg:whitespace-nowrap sg:rounded-md sg:text-sm sg:font-medium sg:ring-offset-background sg:transition-colors sg:focus-visible:outline-none sg:focus-visible:ring-2 sg:focus-visible:ring-ring sg:focus-visible:ring-offset-2 sg:disabled:pointer-events-none sg:disabled:opacity-50 sg:[&_svg]:pointer-events-none sg:[&_svg]:shrink-0\",\r\n {\r\n variants: buttonIconVariants,\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"md\",\r\n },\r\n },\r\n);\r\n\r\ntype Props = ButtonPrimitive.Props &\r\n VariantProps<typeof iconButtonVariantsProps> & {\r\n icon: keyof typeof icons;\r\n iconFill?: boolean;\r\n \"aria-label\": string;\r\n };\r\n\r\nfunction IconButton({\r\n className,\r\n variant,\r\n size,\r\n icon,\r\n iconFill,\r\n \"aria-label\": ariaLabel,\r\n ...props\r\n}: Props) {\r\n const LucideIcon = icons[icon];\r\n const iconFillCss = \"sg:fill-current\";\r\n\r\n return (\r\n <ButtonPrimitive\r\n data-slot=\"icon-button\"\r\n aria-label={ariaLabel}\r\n className={cn(iconButtonVariantsProps({ variant, size, className }))}\r\n {...props}\r\n >\r\n <LucideIcon\r\n className={cn(\r\n iconFill && iconFillCss,\r\n props.disabled && \"sg:opacity-50\",\r\n )}\r\n />\r\n </ButtonPrimitive>\r\n );\r\n}\r\n\r\nexport { IconButton, iconButtonVariantsProps, buttonIconVariants };\r\n"],"mappings":";AAqDM;AApDN,SAAS,UAAU;AACnB,SAAS,UAAU,uBAAuB;AAC1C,SAAS,WAA8B;AACvC,SAAS,aAAa;AACtB,SAAS,sBAAsB;AAE/B,MAAM,qBAAqB;AAAA,EACzB,SAAS,eAAe;AAAA,EACxB,MAAM;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACF;AAEA,MAAM,0BAA0B;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AASA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACL,GAAU;AACR,QAAM,aAAa,MAAM,IAAI;AAC7B,QAAM,cAAc;AAEpB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,cAAY;AAAA,MACZ,WAAW,GAAG,wBAAwB,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,MAClE,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT,YAAY;AAAA,YACZ,MAAM,YAAY;AAAA,UACpB;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { BaseLinkProps } from '../../providers/LinkContext.js';
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
|
-
import { buttonVariantsProps } from '
|
|
4
|
+
import { buttonVariantsProps } from './button.js';
|
|
5
|
+
import { icons } from 'lucide-react';
|
|
5
6
|
import 'react';
|
|
6
7
|
import 'class-variance-authority/types';
|
|
7
8
|
import '@base-ui/react/button';
|
|
8
|
-
import 'lucide-react';
|
|
9
9
|
|
|
10
|
-
type Props = BaseLinkProps & VariantProps<typeof buttonVariantsProps
|
|
11
|
-
|
|
10
|
+
type Props = BaseLinkProps & VariantProps<typeof buttonVariantsProps> & {
|
|
11
|
+
iconStart?: keyof typeof icons;
|
|
12
|
+
iconEnd?: keyof typeof icons;
|
|
13
|
+
};
|
|
14
|
+
declare const LinkButton: ({ className, variant, size, iconStart, iconEnd, ...props }: Props) => react_jsx_runtime.JSX.Element;
|
|
12
15
|
|
|
13
16
|
export { LinkButton };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../../../utils/index.js";
|
|
4
|
+
import {} from "singularity-components/components/providers/LinkContext";
|
|
5
|
+
import {} from "class-variance-authority";
|
|
6
|
+
import { buttonVariantsProps } from "./button.js";
|
|
7
|
+
import { icons } from "lucide-react";
|
|
8
|
+
import { UiLink } from "../ui-link/ui-link.js";
|
|
9
|
+
const LinkButton = ({
|
|
10
|
+
className,
|
|
11
|
+
variant,
|
|
12
|
+
size,
|
|
13
|
+
iconStart,
|
|
14
|
+
iconEnd,
|
|
15
|
+
...props
|
|
16
|
+
}) => {
|
|
17
|
+
const LucideIconStart = iconStart && icons[iconStart];
|
|
18
|
+
const LucideIconEnd = iconEnd && icons[iconEnd];
|
|
19
|
+
return /* @__PURE__ */ jsxs(
|
|
20
|
+
UiLink,
|
|
21
|
+
{
|
|
22
|
+
className: cn(buttonVariantsProps({ variant, size }), className),
|
|
23
|
+
...props,
|
|
24
|
+
children: [
|
|
25
|
+
LucideIconStart && /* @__PURE__ */ jsx(LucideIconStart, { className: "sg:size-4", "data-icon": "inline-start" }),
|
|
26
|
+
props.children,
|
|
27
|
+
LucideIconEnd && /* @__PURE__ */ jsx(LucideIconEnd, { className: "sg:size-4", "data-icon": "inline-end" })
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
export {
|
|
33
|
+
LinkButton
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=link-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/buttons/link-button.tsx"],"sourcesContent":["\"use client\";\r\nimport { cn } from \"../../../utils/index\";\r\nimport { type BaseLinkProps } from \"singularity-components/components/providers/LinkContext\";\r\nimport { type VariantProps } from \"class-variance-authority\";\r\nimport { buttonVariantsProps } from \"./button\";\r\nimport { icons } from \"lucide-react\";\r\nimport { UiLink } from \"../ui-link/ui-link\";\r\n\r\ntype Props = BaseLinkProps &\r\n VariantProps<typeof buttonVariantsProps> & {\r\n iconStart?: keyof typeof icons;\r\n iconEnd?: keyof typeof icons;\r\n };\r\n\r\nexport const LinkButton = ({\r\n className,\r\n variant,\r\n size,\r\n iconStart,\r\n iconEnd,\r\n ...props\r\n}: Props) => {\r\n const LucideIconStart = iconStart && icons[iconStart];\r\n const LucideIconEnd = iconEnd && icons[iconEnd];\r\n\r\n return (\r\n <UiLink\r\n className={cn(buttonVariantsProps({ variant, size }), className)}\r\n {...props}\r\n >\r\n {LucideIconStart && (\r\n <LucideIconStart className=\"sg:size-4\" data-icon=\"inline-start\" />\r\n )}\r\n {props.children}\r\n {LucideIconEnd && (\r\n <LucideIconEnd className=\"sg:size-4\" data-icon=\"inline-end\" />\r\n )}\r\n </UiLink>\r\n );\r\n};\r\n"],"mappings":";AA0BI,SAKI,KALJ;AAzBJ,SAAS,UAAU;AACnB,eAAmC;AACnC,eAAkC;AAClC,SAAS,2BAA2B;AACpC,SAAS,aAAa;AACtB,SAAS,cAAc;AAQhB,MAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAa;AACX,QAAM,kBAAkB,aAAa,MAAM,SAAS;AACpD,QAAM,gBAAgB,WAAW,MAAM,OAAO;AAE9C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,oBAAoB,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS;AAAA,MAC9D,GAAG;AAAA,MAEH;AAAA,2BACC,oBAAC,mBAAgB,WAAU,aAAY,aAAU,gBAAe;AAAA,QAEjE,MAAM;AAAA,QACN,iBACC,oBAAC,iBAAc,WAAU,aAAY,aAAU,cAAa;AAAA;AAAA;AAAA,EAEhE;AAEJ;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
4
|
+
|
|
5
|
+
declare function Collapsible({ className, ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
6
|
+
declare function CollapsibleTrigger({ className, ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): react_jsx_runtime.JSX.Element;
|
|
7
|
+
declare function CollapsibleContent({ className, ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): react_jsx_runtime.JSX.Element;
|
|
8
|
+
|
|
9
|
+
export { Collapsible, CollapsibleContent, CollapsibleTrigger };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
5
|
+
import { cn } from "singularity-components/utils";
|
|
6
|
+
function Collapsible({
|
|
7
|
+
className,
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
CollapsiblePrimitive.Root,
|
|
12
|
+
{
|
|
13
|
+
"data-slot": "collapsible",
|
|
14
|
+
className: cn("", className),
|
|
15
|
+
...props
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
function CollapsibleTrigger({
|
|
20
|
+
className,
|
|
21
|
+
...props
|
|
22
|
+
}) {
|
|
23
|
+
return /* @__PURE__ */ jsx(
|
|
24
|
+
CollapsiblePrimitive.CollapsibleTrigger,
|
|
25
|
+
{
|
|
26
|
+
"data-slot": "collapsible-trigger",
|
|
27
|
+
className: cn("sg:flex sg:cursor-pointer sg:items-center", className),
|
|
28
|
+
...props
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
function CollapsibleContent({
|
|
33
|
+
className,
|
|
34
|
+
...props
|
|
35
|
+
}) {
|
|
36
|
+
return /* @__PURE__ */ jsx(
|
|
37
|
+
CollapsiblePrimitive.CollapsibleContent,
|
|
38
|
+
{
|
|
39
|
+
"data-slot": "collapsible-content",
|
|
40
|
+
className: cn(
|
|
41
|
+
"sg:overflow-hidden sg:data-[state=open]:animate-accordion-down sg:data-[state=closed]:animate-accordion-up",
|
|
42
|
+
className
|
|
43
|
+
),
|
|
44
|
+
...props
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
export {
|
|
49
|
+
Collapsible,
|
|
50
|
+
CollapsibleContent,
|
|
51
|
+
CollapsibleTrigger
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=collapsible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/collapsible/collapsible.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nimport { cn } from \"singularity-components/utils\";\n\nfunction Collapsible({\n className,\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return (\n <CollapsiblePrimitive.Root\n data-slot=\"collapsible\"\n className={cn(\"\", className)}\n {...props}\n />\n );\n}\n\nfunction CollapsibleTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n className={cn(\"sg:flex sg:cursor-pointer sg:items-center\", className)}\n {...props}\n />\n );\n}\n\nfunction CollapsibleContent({\n className,\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n className={cn(\n \"sg:overflow-hidden sg:data-[state=open]:animate-accordion-down sg:data-[state=closed]:animate-accordion-up\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n"],"mappings":";AAWI;AATJ,YAAY,WAAW;AACvB,YAAY,0BAA0B;AACtC,SAAS,UAAU;AAEnB,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,GAAG;AACL,GAA2D;AACzD,SACE;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,IAAI,SAAS;AAAA,MAC1B,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAAyE;AACvE,SACE;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,6CAA6C,SAAS;AAAA,MACnE,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAAyE;AACvE,SACE;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
4
|
+
|
|
5
|
+
declare const DropdownMenu: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
|
|
6
|
+
declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
declare const DropdownMenuPortal: React.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
|
|
9
|
+
declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
|
|
10
|
+
declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
12
|
+
inset?: boolean;
|
|
13
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
15
|
+
declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
17
|
+
inset?: boolean;
|
|
18
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
21
|
+
declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
22
|
+
inset?: boolean;
|
|
23
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
24
|
+
declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
+
declare const DropdownMenuShortcut: {
|
|
26
|
+
({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime.JSX.Element;
|
|
27
|
+
displayName: string;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
4
|
+
import { icons } from "lucide-react";
|
|
5
|
+
import { cn } from "../../../utils/index.js";
|
|
6
|
+
const DropdownMenu = DropdownMenuPrimitive.Root;
|
|
7
|
+
const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
8
|
+
const DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
9
|
+
const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
10
|
+
const DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
11
|
+
const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
12
|
+
const DropdownMenuSubTrigger = React.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
13
|
+
DropdownMenuPrimitive.SubTrigger,
|
|
14
|
+
{
|
|
15
|
+
ref,
|
|
16
|
+
"data-slot": "dropdown-menu-sub-trigger",
|
|
17
|
+
className: cn(
|
|
18
|
+
"sg:flex sg:cursor-default sg:select-none sg:items-center sg:rounded-sm sg:px-2 sg:py-1.5 sg:text-sm sg:outline-none sg:data-[state=open]:bg-accent sg:focus:bg-accent",
|
|
19
|
+
inset && "sg:pl-8",
|
|
20
|
+
className
|
|
21
|
+
),
|
|
22
|
+
...props,
|
|
23
|
+
children: [
|
|
24
|
+
children,
|
|
25
|
+
/* @__PURE__ */ jsx(icons.ChevronRight, { className: "sg:ml-auto sg:h-4 sg:w-4" })
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
));
|
|
29
|
+
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
30
|
+
const DropdownMenuSubContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
31
|
+
DropdownMenuPrimitive.SubContent,
|
|
32
|
+
{
|
|
33
|
+
ref,
|
|
34
|
+
"data-slot": "dropdown-menu-sub-content",
|
|
35
|
+
className: cn(
|
|
36
|
+
"sg:z-50 sg:min-w-32 sg:overflow-hidden sg:rounded-md sg:border sg:bg-popover sg:p-1 sg:text-popover-foreground sg:shadow-lg sg:data-[state=open]:animate-in sg:data-[state=closed]:animate-out sg:data-[state=closed]:fade-out-0 sg:data-[state=open]:fade-in-0 sg:data-[state=closed]:zoom-out-95 sg:data-[state=open]:zoom-in-95 sg:data-[side=bottom]:slide-in-from-top-2 sg:data-[side=left]:slide-in-from-right-2 sg:data-[side=right]:slide-in-from-left-2 sg:data-[side=top]:slide-in-from-bottom-2",
|
|
37
|
+
className
|
|
38
|
+
),
|
|
39
|
+
...props
|
|
40
|
+
}
|
|
41
|
+
));
|
|
42
|
+
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
43
|
+
const DropdownMenuContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
44
|
+
DropdownMenuPrimitive.Content,
|
|
45
|
+
{
|
|
46
|
+
ref,
|
|
47
|
+
sideOffset,
|
|
48
|
+
"data-slot": "dropdown-menu-content",
|
|
49
|
+
className: cn(
|
|
50
|
+
"sg:z-50 sg:min-w-32 sg:overflow-hidden sg:rounded-md sg:border sg:bg-popover sg:p-1 sg:text-popover-foreground sg:shadow-md sg:data-[state=open]:animate-in sg:data-[state=closed]:animate-out sg:data-[state=closed]:fade-out-0 sg:data-[state=open]:fade-in-0 sg:data-[state=closed]:zoom-out-95 sg:data-[state=open]:zoom-in-95 sg:data-[side=bottom]:slide-in-from-top-2 sg:data-[side=left]:slide-in-from-right-2 sg:data-[side=right]:slide-in-from-left-2 sg:data-[side=top]:slide-in-from-bottom-2",
|
|
51
|
+
className
|
|
52
|
+
),
|
|
53
|
+
...props
|
|
54
|
+
}
|
|
55
|
+
) }));
|
|
56
|
+
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
57
|
+
const DropdownMenuItem = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
58
|
+
DropdownMenuPrimitive.Item,
|
|
59
|
+
{
|
|
60
|
+
ref,
|
|
61
|
+
"data-slot": "dropdown-menu-item",
|
|
62
|
+
className: cn(
|
|
63
|
+
"sg:relative sg:flex sg:cursor-default sg:select-none sg:items-center sg:rounded-sm sg:px-2 sg:py-1.5 sg:text-sm sg:outline-none sg:transition-colors sg:data-disabled:pointer-events-none sg:data-disabled:opacity-50 sg:focus:bg-accent sg:focus:text-accent-foreground",
|
|
64
|
+
inset && "sg:pl-8",
|
|
65
|
+
className
|
|
66
|
+
),
|
|
67
|
+
...props
|
|
68
|
+
}
|
|
69
|
+
));
|
|
70
|
+
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
71
|
+
const DropdownMenuCheckboxItem = React.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
72
|
+
DropdownMenuPrimitive.CheckboxItem,
|
|
73
|
+
{
|
|
74
|
+
ref,
|
|
75
|
+
"data-slot": "dropdown-menu-checkbox-item",
|
|
76
|
+
className: cn(
|
|
77
|
+
"sg:relative sg:flex sg:cursor-default sg:select-none sg:items-center sg:rounded-sm sg:py-1.5 sg:pl-8 sg:pr-2 sg:text-sm sg:outline-none sg:transition-colors sg:data-disabled:pointer-events-none sg:data-disabled:opacity-50 sg:focus:bg-accent sg:focus:text-accent-foreground",
|
|
78
|
+
className
|
|
79
|
+
),
|
|
80
|
+
checked,
|
|
81
|
+
...props,
|
|
82
|
+
children: [
|
|
83
|
+
/* @__PURE__ */ jsx("span", { className: "sg:absolute sg:left-2 sg:flex sg:h-3.5 sg:w-3.5 sg:items-center sg:justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(icons.Check, { className: "sg:h-4 sg:w-4" }) }) }),
|
|
84
|
+
children
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
));
|
|
88
|
+
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
89
|
+
const DropdownMenuRadioItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
90
|
+
DropdownMenuPrimitive.RadioItem,
|
|
91
|
+
{
|
|
92
|
+
ref,
|
|
93
|
+
"data-slot": "dropdown-menu-radio-item",
|
|
94
|
+
className: cn(
|
|
95
|
+
"sg:relative sg:flex sg:cursor-default sg:select-none sg:items-center sg:rounded-sm sg:py-1.5 sg:pl-8 sg:pr-2 sg:text-sm sg:outline-none sg:transition-colors sg:data-disabled:pointer-events-none sg:data-disabled:opacity-50 sg:focus:bg-accent sg:focus:text-accent-foreground",
|
|
96
|
+
className
|
|
97
|
+
),
|
|
98
|
+
...props,
|
|
99
|
+
children: [
|
|
100
|
+
/* @__PURE__ */ jsx("span", { className: "sg:absolute sg:left-2 sg:flex sg:h-3.5 sg:w-3.5 sg:items-center sg:justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(icons.Circle, { className: "sg:h-2 sg:w-2 sg:fill-current" }) }) }),
|
|
101
|
+
children
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
));
|
|
105
|
+
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
106
|
+
const DropdownMenuLabel = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
107
|
+
DropdownMenuPrimitive.Label,
|
|
108
|
+
{
|
|
109
|
+
ref,
|
|
110
|
+
"data-slot": "dropdown-menu-label",
|
|
111
|
+
className: cn(
|
|
112
|
+
"sg:px-2 sg:py-1.5 sg:text-sm sg:font-semibold",
|
|
113
|
+
inset && "sg:pl-8",
|
|
114
|
+
className
|
|
115
|
+
),
|
|
116
|
+
...props
|
|
117
|
+
}
|
|
118
|
+
));
|
|
119
|
+
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
120
|
+
const DropdownMenuSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
121
|
+
DropdownMenuPrimitive.Separator,
|
|
122
|
+
{
|
|
123
|
+
ref,
|
|
124
|
+
"data-slot": "dropdown-menu-separator",
|
|
125
|
+
className: cn("sg:-mx-1 sg:my-1 sg:h-px sg:bg-muted", className),
|
|
126
|
+
...props
|
|
127
|
+
}
|
|
128
|
+
));
|
|
129
|
+
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
130
|
+
const DropdownMenuShortcut = ({
|
|
131
|
+
className,
|
|
132
|
+
...props
|
|
133
|
+
}) => {
|
|
134
|
+
return /* @__PURE__ */ jsx(
|
|
135
|
+
"span",
|
|
136
|
+
{
|
|
137
|
+
"data-slot": "dropdown-menu-shortcut",
|
|
138
|
+
className: cn(
|
|
139
|
+
"sg:ml-auto sg:text-xs sg:tracking-widest sg:opacity-60",
|
|
140
|
+
className
|
|
141
|
+
),
|
|
142
|
+
...props
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
};
|
|
146
|
+
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
147
|
+
export {
|
|
148
|
+
DropdownMenu,
|
|
149
|
+
DropdownMenuCheckboxItem,
|
|
150
|
+
DropdownMenuContent,
|
|
151
|
+
DropdownMenuGroup,
|
|
152
|
+
DropdownMenuItem,
|
|
153
|
+
DropdownMenuLabel,
|
|
154
|
+
DropdownMenuPortal,
|
|
155
|
+
DropdownMenuRadioGroup,
|
|
156
|
+
DropdownMenuRadioItem,
|
|
157
|
+
DropdownMenuSeparator,
|
|
158
|
+
DropdownMenuShortcut,
|
|
159
|
+
DropdownMenuSub,
|
|
160
|
+
DropdownMenuSubContent,
|
|
161
|
+
DropdownMenuSubTrigger,
|
|
162
|
+
DropdownMenuTrigger
|
|
163
|
+
};
|
|
164
|
+
//# sourceMappingURL=dropdown-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { icons } from \"lucide-react\";\nimport { cn } from \"../../../utils/index\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn(\n \"sg:flex sg:cursor-default sg:select-none sg:items-center sg:rounded-sm sg:px-2 sg:py-1.5 sg:text-sm sg:outline-none sg:data-[state=open]:bg-accent sg:focus:bg-accent\",\n inset && \"sg:pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <icons.ChevronRight className=\"sg:ml-auto sg:h-4 sg:w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"sg:z-50 sg:min-w-32 sg:overflow-hidden sg:rounded-md sg:border sg:bg-popover sg:p-1 sg:text-popover-foreground sg:shadow-lg sg:data-[state=open]:animate-in sg:data-[state=closed]:animate-out sg:data-[state=closed]:fade-out-0 sg:data-[state=open]:fade-in-0 sg:data-[state=closed]:zoom-out-95 sg:data-[state=open]:zoom-in-95 sg:data-[side=bottom]:slide-in-from-top-2 sg:data-[side=left]:slide-in-from-right-2 sg:data-[side=right]:slide-in-from-left-2 sg:data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"sg:z-50 sg:min-w-32 sg:overflow-hidden sg:rounded-md sg:border sg:bg-popover sg:p-1 sg:text-popover-foreground sg:shadow-md sg:data-[state=open]:animate-in sg:data-[state=closed]:animate-out sg:data-[state=closed]:fade-out-0 sg:data-[state=open]:fade-in-0 sg:data-[state=closed]:zoom-out-95 sg:data-[state=open]:zoom-in-95 sg:data-[side=bottom]:slide-in-from-top-2 sg:data-[side=left]:slide-in-from-right-2 sg:data-[side=right]:slide-in-from-left-2 sg:data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n data-slot=\"dropdown-menu-item\"\n className={cn(\n \"sg:relative sg:flex sg:cursor-default sg:select-none sg:items-center sg:rounded-sm sg:px-2 sg:py-1.5 sg:text-sm sg:outline-none sg:transition-colors sg:data-disabled:pointer-events-none sg:data-disabled:opacity-50 sg:focus:bg-accent sg:focus:text-accent-foreground\",\n inset && \"sg:pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"sg:relative sg:flex sg:cursor-default sg:select-none sg:items-center sg:rounded-sm sg:py-1.5 sg:pl-8 sg:pr-2 sg:text-sm sg:outline-none sg:transition-colors sg:data-disabled:pointer-events-none sg:data-disabled:opacity-50 sg:focus:bg-accent sg:focus:text-accent-foreground\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"sg:absolute sg:left-2 sg:flex sg:h-3.5 sg:w-3.5 sg:items-center sg:justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <icons.Check className=\"sg:h-4 sg:w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"sg:relative sg:flex sg:cursor-default sg:select-none sg:items-center sg:rounded-sm sg:py-1.5 sg:pl-8 sg:pr-2 sg:text-sm sg:outline-none sg:transition-colors sg:data-disabled:pointer-events-none sg:data-disabled:opacity-50 sg:focus:bg-accent sg:focus:text-accent-foreground\",\n className,\n )}\n {...props}\n >\n <span className=\"sg:absolute sg:left-2 sg:flex sg:h-3.5 sg:w-3.5 sg:items-center sg:justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <icons.Circle className=\"sg:h-2 sg:w-2 sg:fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n data-slot=\"dropdown-menu-label\"\n className={cn(\n \"sg:px-2 sg:py-1.5 sg:text-sm sg:font-semibold\",\n inset && \"sg:pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"sg:-mx-1 sg:my-1 sg:h-px sg:bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"sg:ml-auto sg:text-xs sg:tracking-widest sg:opacity-60\",\n className,\n )}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n"],"mappings":"AAuBE,SAWE,KAXF;AAvBF,YAAY,WAAW;AACvB,YAAY,2BAA2B;AACvC,SAAS,aAAa;AACtB,SAAS,UAAU;AAEnB,MAAM,eAAe,sBAAsB;AAE3C,MAAM,sBAAsB,sBAAsB;AAElD,MAAM,oBAAoB,sBAAsB;AAEhD,MAAM,qBAAqB,sBAAsB;AAEjD,MAAM,kBAAkB,sBAAsB;AAE9C,MAAM,yBAAyB,sBAAsB;AAErD,MAAM,yBAAyB,MAAM,WAKnC,CAAC,EAAE,WAAW,OAAO,UAAU,GAAG,MAAM,GAAG,QAC3C;AAAA,EAAC,sBAAsB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,aAAU;AAAA,IACV,WAAW;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH;AAAA;AAAA,MACD,oBAAC,MAAM,cAAN,EAAmB,WAAU,4BAA2B;AAAA;AAAA;AAC3D,CACD;AACD,uBAAuB,cACrB,sBAAsB,WAAW;AAEnC,MAAM,yBAAyB,MAAM,WAGnC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC,sBAAsB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,aAAU;AAAA,IACV,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,uBAAuB,cACrB,sBAAsB,WAAW;AAEnC,MAAM,sBAAsB,MAAM,WAGhC,CAAC,EAAE,WAAW,aAAa,GAAG,GAAG,MAAM,GAAG,QAC1C,oBAAC,sBAAsB,QAAtB,EACC;AAAA,EAAC,sBAAsB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA;AAAA,IACA,aAAU;AAAA,IACV,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,GACF,CACD;AACD,oBAAoB,cAAc,sBAAsB,QAAQ;AAEhE,MAAM,mBAAmB,MAAM,WAK7B,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QACjC;AAAA,EAAC,sBAAsB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,aAAU;AAAA,IACV,WAAW;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,iBAAiB,cAAc,sBAAsB,KAAK;AAE1D,MAAM,2BAA2B,MAAM,WAGrC,CAAC,EAAE,WAAW,UAAU,SAAS,GAAG,MAAM,GAAG,QAC7C;AAAA,EAAC,sBAAsB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,aAAU;AAAA,IACV,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACC,GAAG;AAAA,IAEJ;AAAA,0BAAC,UAAK,WAAU,qFACd,8BAAC,sBAAsB,eAAtB,EACC,8BAAC,MAAM,OAAN,EAAY,WAAU,iBAAgB,GACzC,GACF;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,yBAAyB,cACvB,sBAAsB,aAAa;AAErC,MAAM,wBAAwB,MAAM,WAGlC,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC;AAAA,EAAC,sBAAsB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,aAAU;AAAA,IACV,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ;AAAA,0BAAC,UAAK,WAAU,qFACd,8BAAC,sBAAsB,eAAtB,EACC,8BAAC,MAAM,QAAN,EAAa,WAAU,iCAAgC,GAC1D,GACF;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,sBAAsB,cAAc,sBAAsB,UAAU;AAEpE,MAAM,oBAAoB,MAAM,WAK9B,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QACjC;AAAA,EAAC,sBAAsB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,aAAU;AAAA,IACV,WAAW;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,kBAAkB,cAAc,sBAAsB,MAAM;AAE5D,MAAM,wBAAwB,MAAM,WAGlC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC,sBAAsB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,aAAU;AAAA,IACV,WAAW,GAAG,wCAAwC,SAAS;AAAA,IAC9D,GAAG;AAAA;AACN,CACD;AACD,sBAAsB,cAAc,sBAAsB,UAAU;AAEpE,MAAM,uBAAuB,CAAC;AAAA,EAC5B;AAAA,EACA,GAAG;AACL,MAA6C;AAC3C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,qBAAqB,cAAc;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Checkbox as CheckboxPrimitive } from "@base-ui/react";
|
|
4
|
+
import { CheckIcon } from "lucide-react";
|
|
5
|
+
import { cn } from "../../../utils/index.js";
|
|
6
|
+
function Checkbox({ className, ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsx(
|
|
8
|
+
CheckboxPrimitive.Root,
|
|
9
|
+
{
|
|
10
|
+
"data-slot": "checkbox",
|
|
11
|
+
className: cn(
|
|
12
|
+
"sg:peer sg:h-4 sg:w-4 sg:shrink-0 sg:rounded-sm sg:border sg:border-primary sg:ring-offset-background sg:data-[state=checked]:bg-primary sg:data-[state=checked]:text-primary-foreground sg:focus-visible:outline-none sg:focus-visible:ring-2 sg:focus-visible:ring-ring sg:focus-visible:ring-offset-2 sg:disabled:cursor-not-allowed sg:disabled:opacity-50",
|
|
13
|
+
className
|
|
14
|
+
),
|
|
15
|
+
...props,
|
|
16
|
+
children: /* @__PURE__ */ jsx(
|
|
17
|
+
CheckboxPrimitive.Indicator,
|
|
18
|
+
{
|
|
19
|
+
"data-slot": "checkbox-indicator",
|
|
20
|
+
className: "sg:flex sg:items-center sg:justify-center sg:text-current",
|
|
21
|
+
children: /* @__PURE__ */ jsx(CheckIcon, { className: "sg:h-4 sg:w-4" })
|
|
22
|
+
}
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
Checkbox
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/forms/checkbox.tsx"],"sourcesContent":["\"use client\";\n\nimport { Checkbox as CheckboxPrimitive } from \"@base-ui/react\";\nimport { CheckIcon } from \"lucide-react\";\nimport { cn } from \"../../../utils/index\";\n\nfunction Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"sg:peer sg:h-4 sg:w-4 sg:shrink-0 sg:rounded-sm sg:border sg:border-primary sg:ring-offset-background sg:data-[state=checked]:bg-primary sg:data-[state=checked]:text-primary-foreground sg:focus-visible:outline-none sg:focus-visible:ring-2 sg:focus-visible:ring-ring sg:focus-visible:ring-offset-2 sg:disabled:cursor-not-allowed sg:disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"sg:flex sg:items-center sg:justify-center sg:text-current\"\n >\n <CheckIcon className=\"sg:h-4 sg:w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n"],"mappings":";AAoBQ;AAlBR,SAAS,YAAY,yBAAyB;AAC9C,SAAS,iBAAiB;AAC1B,SAAS,UAAU;AAEnB,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAiC;AACvE,SACE;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,QAAC,kBAAkB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV,8BAAC,aAAU,WAAU,iBAAgB;AAAA;AAAA,MACvC;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
import { Label } from '../label/label.js';
|
|
5
|
+
import 'react';
|
|
6
|
+
|
|
7
|
+
declare function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">): react_jsx_runtime.JSX.Element;
|
|
8
|
+
declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<"legend"> & {
|
|
9
|
+
variant?: "legend" | "label";
|
|
10
|
+
}): react_jsx_runtime.JSX.Element;
|
|
11
|
+
declare function FieldGroup({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
12
|
+
declare const fieldVariants: (props?: ({
|
|
13
|
+
orientation?: "vertical" | "horizontal" | "responsive" | null | undefined;
|
|
14
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
15
|
+
declare function Field({ className, orientation, ...props }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>): react_jsx_runtime.JSX.Element;
|
|
16
|
+
declare function FieldContent({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
17
|
+
declare function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>): react_jsx_runtime.JSX.Element;
|
|
18
|
+
declare function FieldTitle({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
19
|
+
declare function FieldDescription({ className, ...props }: React.ComponentProps<"p">): react_jsx_runtime.JSX.Element;
|
|
20
|
+
declare function FieldSeparator({ children, className, ...props }: React.ComponentProps<"div"> & {
|
|
21
|
+
children?: React.ReactNode;
|
|
22
|
+
}): react_jsx_runtime.JSX.Element;
|
|
23
|
+
declare function FieldError({ className, children, errors, ...props }: React.ComponentProps<"div"> & {
|
|
24
|
+
errors?: Array<{
|
|
25
|
+
message?: string;
|
|
26
|
+
} | undefined>;
|
|
27
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
28
|
+
|
|
29
|
+
export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle };
|