singularity-components 0.1.140 → 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 +36 -4
- package/dist/components/blocks/cards/blogpost-card.d.ts +13 -0
- package/dist/components/blocks/cards/blogpost-card.js +79 -0
- package/dist/components/blocks/cards/blogpost-card.js.map +1 -0
- package/dist/components/blocks/cards/card.d.ts +14 -0
- package/dist/components/blocks/cards/card.js +86 -0
- package/dist/components/blocks/cards/card.js.map +1 -0
- 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 +5 -0
- package/dist/components/blocks/index.js +5 -0
- package/dist/components/blocks/index.js.map +1 -0
- 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 +43 -10
- package/dist/components/index.js +5 -3
- 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.d.ts +5 -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.d.ts +5 -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 +12 -4
- package/dist/components/primitives/badge/badge.js +15 -15
- 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 +15 -9
- package/dist/components/primitives/buttons/button.js +92 -0
- 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/buttons/link-button.d.ts +16 -0
- 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 +10 -3
- package/dist/components/primitives/icon/icon.js +15 -14
- package/dist/components/primitives/icon/icon.js.map +1 -1
- package/dist/components/primitives/index.d.ts +25 -7
- package/dist/components/primitives/index.js +31 -18
- 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 +8 -4
- package/dist/components/primitives/layout/layout.js +35 -17
- package/dist/components/primitives/layout/layout.js.map +1 -1
- package/dist/components/primitives/link/link.d.ts +42 -0
- package/dist/components/primitives/link/link.js +83 -0
- package/dist/components/primitives/link/link.js.map +1 -0
- 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 +5 -1
- package/dist/components/primitives/stack/stack.js +46 -5
- 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/heading.js +53 -0
- package/dist/components/primitives/text/heading.js.map +1 -0
- package/dist/components/primitives/text/internal/text-element.d.ts +30 -4
- package/dist/components/primitives/text/internal/text-element.js +24 -14
- 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.d.ts +1 -1
- 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.d.ts +16 -0
- package/dist/components/primitives/text/{text-paragraph.js → text.js} +16 -5
- 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} +4 -7
- 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/templates/hero/hero.js +301 -0
- package/dist/components/templates/hero/hero.js.map +1 -0
- package/dist/components/templates/index.d.ts +5 -0
- package/dist/components/templates/index.js +5 -0
- package/dist/components/templates/index.js.map +1 -0
- 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 +75 -73
- 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 +22 -0
- package/dist/data/posts.js +285 -0
- package/dist/data/posts.js.map +1 -0
- package/dist/index.d.ts +43 -10
- 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/hooks/useIsClient.d.ts +3 -0
- package/dist/lib/hooks/useIsClient.js +14 -0
- package/dist/lib/hooks/useIsClient.js.map +1 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +2 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/types.d.ts +4 -8
- package/dist/main.css +2026 -455
- 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 +80 -44
- package/dist/components/primitives/accordion/accordion.stories.d.ts +0 -15
- package/dist/components/primitives/accordion/accordion.stories.js +0 -60
- package/dist/components/primitives/accordion/accordion.stories.js.map +0 -1
- package/dist/components/primitives/alert/alert.stories.d.ts +0 -22
- package/dist/components/primitives/alert/alert.stories.js +0 -37
- package/dist/components/primitives/alert/alert.stories.js.map +0 -1
- package/dist/components/primitives/button/button.js +0 -56
- package/dist/components/primitives/button/button.js.map +0 -1
- package/dist/components/primitives/button/button.stories.d.ts +0 -34
- package/dist/components/primitives/button/button.stories.js +0 -74
- package/dist/components/primitives/button/button.stories.js.map +0 -1
- package/dist/components/primitives/button/button_with_icon_variant.js +0 -1
- package/dist/components/primitives/button/button_with_icon_variant.js.map +0 -1
- package/dist/components/primitives/icon/icon.stories.d.ts +0 -27
- package/dist/components/primitives/icon/icon.stories.js +0 -30
- package/dist/components/primitives/icon/icon.stories.js.map +0 -1
- package/dist/components/primitives/layout/layout.stories.d.ts +0 -32
- package/dist/components/primitives/layout/layout.stories.js +0 -72
- package/dist/components/primitives/layout/layout.stories.js.map +0 -1
- package/dist/components/primitives/separator/separator.stories.d.ts +0 -15
- package/dist/components/primitives/separator/separator.stories.js +0 -18
- package/dist/components/primitives/separator/separator.stories.js.map +0 -1
- package/dist/components/primitives/skeleton/skeleton.stories.d.ts +0 -13
- package/dist/components/primitives/skeleton/skeleton.stories.js +0 -16
- package/dist/components/primitives/skeleton/skeleton.stories.js.map +0 -1
- package/dist/components/primitives/spinner/spinner.stories.d.ts +0 -16
- package/dist/components/primitives/spinner/spinner.stories.js +0 -34
- package/dist/components/primitives/spinner/spinner.stories.js.map +0 -1
- package/dist/components/primitives/stack/stack.stories.d.ts +0 -13
- package/dist/components/primitives/stack/stack.stories.js +0 -26
- package/dist/components/primitives/stack/stack.stories.js.map +0 -1
- package/dist/components/primitives/text/text-div.stories.d.ts +0 -32
- package/dist/components/primitives/text/text-div.stories.js +0 -59
- package/dist/components/primitives/text/text-div.stories.js.map +0 -1
- package/dist/components/primitives/text/text-heading.js +0 -53
- package/dist/components/primitives/text/text-heading.js.map +0 -1
- package/dist/components/primitives/text/text-heading.stories.d.ts +0 -27
- package/dist/components/primitives/text/text-heading.stories.js +0 -47
- package/dist/components/primitives/text/text-heading.stories.js.map +0 -1
- package/dist/components/primitives/text/text-paragraph.d.ts +0 -10
- package/dist/components/primitives/text/text-paragraph.js.map +0 -1
- package/dist/components/primitives/text/text-span.stories.d.ts +0 -31
- package/dist/components/primitives/text/text-span.stories.js +0 -59
- package/dist/components/primitives/text/text-span.stories.js.map +0 -1
- package/dist/components/primitives/ui-image.js.map +0 -1
- package/dist/components/primitives/ui-link.d.ts +0 -6
- package/dist/components/primitives/ui-link.js +0 -22
- package/dist/components/primitives/ui-link.js.map +0 -1
- package/dist/components/units/cards/blog-card.d.ts +0 -19
- package/dist/components/units/cards/blog-card.js +0 -82
- package/dist/components/units/cards/blog-card.js.map +0 -1
- package/dist/components/units/cards/card.d.ts +0 -15
- package/dist/components/units/cards/card.js +0 -89
- package/dist/components/units/cards/card.js.map +0 -1
- package/dist/components/units/cards/cards.d.ts +0 -17
- package/dist/components/units/cards/cards.js +0 -37
- package/dist/components/units/cards/cards.js.map +0 -1
- package/dist/components/units/index.d.ts +0 -5
- package/dist/components/units/index.js +0 -4
- package/dist/components/units/index.js.map +0 -1
- package/dist/utils.js.map +0 -1
- /package/dist/{utils.d.ts → utils/index.d.ts} +0 -0
- /package/dist/{components/primitives/button/button_with_icon_variant.d.ts → utils/index.test.d.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import { cn } from "../../../utils";
|
|
3
|
+
import { cn } from "../../../utils/index.js";
|
|
4
4
|
const Badges = ({ children, className, ...props }) => {
|
|
5
5
|
return /* @__PURE__ */ jsx("div", { className: cn("sg:flex sg:flex-wrap sg:gap-2", className), ...props, children });
|
|
6
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/primitives/badge/badges.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cn } from \"../../../utils\";\r\n\r\nexport interface BadgesProps extends React.HTMLAttributes<HTMLDivElement> {}\r\n\r\nexport const Badges = ({ children, className, ...props }: BadgesProps) => {\r\n return (\r\n <div className={cn(\"sg:flex sg:flex-wrap sg:gap-2\", className)} {...props}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n"],"mappings":"AAOI;AAPJ,YAAY,WAAW;AACvB,SAAS,UAAU;AAIZ,MAAM,SAAS,CAAC,EAAE,UAAU,WAAW,GAAG,MAAM,MAAmB;AACxE,SACE,oBAAC,SAAI,WAAW,GAAG,iCAAiC,SAAS,GAAI,GAAG,OACjE,UACH;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/badge/badges.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cn } from \"../../../utils/index\";\r\n\r\nexport interface BadgesProps extends React.HTMLAttributes<HTMLDivElement> {}\r\n\r\nexport const Badges = ({ children, className, ...props }: BadgesProps) => {\r\n return (\r\n <div className={cn(\"sg:flex sg:flex-wrap sg:gap-2\", className)} {...props}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n"],"mappings":"AAOI;AAPJ,YAAY,WAAW;AACvB,SAAS,UAAU;AAIZ,MAAM,SAAS,CAAC,EAAE,UAAU,WAAW,GAAG,MAAM,MAAmB;AACxE,SACE,oBAAC,SAAI,WAAW,GAAG,iCAAiC,SAAS,GAAI,GAAG,OACjE,UACH;AAEJ;","names":[]}
|
|
@@ -2,31 +2,37 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
3
|
import { Button as Button$1 } from '@base-ui/react/button';
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
import { icons } from 'lucide-react';
|
|
5
6
|
|
|
6
7
|
declare const buttonVariants: {
|
|
7
8
|
variant: {
|
|
8
9
|
default: string;
|
|
10
|
+
destructive: string;
|
|
9
11
|
outline: string;
|
|
10
12
|
secondary: string;
|
|
11
13
|
ghost: string;
|
|
12
|
-
destructive: string;
|
|
13
14
|
link: string;
|
|
14
15
|
};
|
|
15
16
|
size: {
|
|
16
|
-
default: string;
|
|
17
17
|
xs: string;
|
|
18
18
|
sm: string;
|
|
19
|
+
md: string;
|
|
19
20
|
lg: string;
|
|
20
|
-
icon: string;
|
|
21
|
-
"icon-xs": string;
|
|
22
|
-
"icon-sm": string;
|
|
23
|
-
"icon-lg": string;
|
|
24
21
|
};
|
|
25
22
|
};
|
|
26
23
|
declare const buttonVariantsProps: (props?: ({
|
|
27
|
-
variant?: "link" | "default" | "
|
|
28
|
-
size?: "
|
|
24
|
+
variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
25
|
+
size?: "sm" | "xs" | "md" | "lg" | null | undefined;
|
|
29
26
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
30
|
-
|
|
27
|
+
type Props = Button$1.Props & VariantProps<typeof buttonVariantsProps> & {
|
|
28
|
+
loading?: boolean;
|
|
29
|
+
iconStart?: keyof typeof icons;
|
|
30
|
+
iconStartAnimate?: boolean;
|
|
31
|
+
iconStartFill?: boolean;
|
|
32
|
+
iconEnd?: keyof typeof icons;
|
|
33
|
+
iconEndAnimate?: boolean;
|
|
34
|
+
iconEndFill?: boolean;
|
|
35
|
+
};
|
|
36
|
+
declare function Button({ className, variant, size, loading, iconStart, iconStartAnimate, iconStartFill, iconEnd, iconEndAnimate, iconEndFill, ...props }: Props): react_jsx_runtime.JSX.Element;
|
|
31
37
|
|
|
32
38
|
export { Button, buttonVariants, buttonVariantsProps };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } 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
|
+
const buttonVariants = {
|
|
8
|
+
variant: {
|
|
9
|
+
default: "sg:bg-primary sg:text-primary-foreground sg:hover:brightness-110",
|
|
10
|
+
destructive: "sg:bg-destructive sg:text-destructive-foreground sg:hover:brightness-110",
|
|
11
|
+
outline: "sg:border sg:border-input sg:bg-background sg:hover:bg-muted sg:hover:text-foreground",
|
|
12
|
+
secondary: "sg:bg-secondary sg:text-secondary-foreground sg:hover:brightness-90",
|
|
13
|
+
ghost: "sg:hover:bg-muted sg:hover:text-foreground",
|
|
14
|
+
link: "sg:text-primary sg:underline-offset-4 sg:hover:underline"
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
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"
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const buttonVariantsProps = cva(
|
|
24
|
+
"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",
|
|
25
|
+
{
|
|
26
|
+
variants: buttonVariants,
|
|
27
|
+
defaultVariants: {
|
|
28
|
+
variant: "default",
|
|
29
|
+
size: "md"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
function Button({
|
|
34
|
+
className,
|
|
35
|
+
variant,
|
|
36
|
+
size,
|
|
37
|
+
loading,
|
|
38
|
+
iconStart,
|
|
39
|
+
iconStartAnimate,
|
|
40
|
+
iconStartFill,
|
|
41
|
+
iconEnd,
|
|
42
|
+
iconEndAnimate,
|
|
43
|
+
iconEndFill,
|
|
44
|
+
...props
|
|
45
|
+
}) {
|
|
46
|
+
const iconAnimateCss = "sg:animate-spin";
|
|
47
|
+
const iconFillCss = "sg:fill-current";
|
|
48
|
+
const LucideIconStart = iconStart && icons[iconStart];
|
|
49
|
+
const LucideIconEnd = loading ? icons["Loader"] : iconEnd && icons[iconEnd];
|
|
50
|
+
return /* @__PURE__ */ jsxs(
|
|
51
|
+
ButtonPrimitive,
|
|
52
|
+
{
|
|
53
|
+
"data-slot": "button",
|
|
54
|
+
className: cn(buttonVariantsProps({ variant, size, className })),
|
|
55
|
+
disabled: props.disabled || loading,
|
|
56
|
+
...props,
|
|
57
|
+
children: [
|
|
58
|
+
LucideIconStart && /* @__PURE__ */ jsx(
|
|
59
|
+
LucideIconStart,
|
|
60
|
+
{
|
|
61
|
+
className: cn(
|
|
62
|
+
"sg:size-4",
|
|
63
|
+
iconStartAnimate && iconAnimateCss,
|
|
64
|
+
iconStartFill && iconFillCss,
|
|
65
|
+
(props.disabled || loading) && "sg:opacity-50"
|
|
66
|
+
),
|
|
67
|
+
"data-icon": "inline-start"
|
|
68
|
+
}
|
|
69
|
+
),
|
|
70
|
+
props.children,
|
|
71
|
+
LucideIconEnd && /* @__PURE__ */ jsx(
|
|
72
|
+
LucideIconEnd,
|
|
73
|
+
{
|
|
74
|
+
className: cn(
|
|
75
|
+
"sg:size-4",
|
|
76
|
+
(iconEndAnimate || loading) && iconAnimateCss,
|
|
77
|
+
iconEndFill && iconFillCss,
|
|
78
|
+
(props.disabled || loading) && "sg:opacity-50"
|
|
79
|
+
),
|
|
80
|
+
"data-icon": "inline-end"
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
export {
|
|
88
|
+
Button,
|
|
89
|
+
buttonVariants,
|
|
90
|
+
buttonVariantsProps
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -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":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { BaseLinkProps } from '../../providers/LinkContext.js';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
import { buttonVariantsProps } from './button.js';
|
|
5
|
+
import { icons } from 'lucide-react';
|
|
6
|
+
import 'react';
|
|
7
|
+
import 'class-variance-authority/types';
|
|
8
|
+
import '@base-ui/react/button';
|
|
9
|
+
|
|
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;
|
|
15
|
+
|
|
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":[]}
|