@shipfox/react-ui 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +5 -5
- package/.turbo/turbo-check.log +2 -2
- package/.turbo/turbo-type.log +1 -1
- package/CHANGELOG.md +6 -0
- package/dist/components/button/button.js +14 -11
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +58 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.js +280 -0
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.stories.js +462 -0
- package/dist/components/dropdown-menu/dropdown-menu.stories.js.map +1 -0
- package/dist/components/dropdown-menu/index.d.ts +3 -0
- package/dist/components/dropdown-menu/index.d.ts.map +1 -0
- package/dist/components/dropdown-menu/index.js +3 -0
- package/dist/components/dropdown-menu/index.js.map +1 -0
- package/dist/components/dynamic-item/dynamic-item.d.ts +1 -1
- package/dist/components/dynamic-item/dynamic-item.d.ts.map +1 -1
- package/dist/components/dynamic-item/dynamic-item.js +4 -4
- package/dist/components/dynamic-item/dynamic-item.js.map +1 -1
- package/dist/components/dynamic-item/dynamic-item.stories.js +11 -1
- package/dist/components/dynamic-item/dynamic-item.stories.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +3 -3
- package/src/components/button/button.tsx +12 -12
- package/src/components/dropdown-menu/dropdown-menu.stories.tsx +384 -0
- package/src/components/dropdown-menu/dropdown-menu.tsx +416 -0
- package/src/components/dropdown-menu/index.ts +29 -0
- package/src/components/dynamic-item/dynamic-item.stories.tsx +6 -1
- package/src/components/dynamic-item/dynamic-item.tsx +9 -3
- package/src/components/index.ts +1 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
WARN Issue while reading "/runner/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @shipfox/react-ui@0.
|
|
3
|
+
> @shipfox/react-ui@0.11.0 build /runner/_work/tooling/tooling/libs/react/ui
|
|
4
4
|
> swc && pnpm run build:css
|
|
5
5
|
|
|
6
|
-
Successfully compiled:
|
|
6
|
+
Successfully compiled: 123 files with swc (685.7ms)
|
|
7
7
|
WARN Issue while reading "/runner/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
|
|
8
8
|
|
|
9
|
-
> @shipfox/react-ui@0.
|
|
9
|
+
> @shipfox/react-ui@0.11.0 build:css /runner/_work/tooling/tooling/libs/react/ui
|
|
10
10
|
> vite build --config vite.css.config.ts && rm -f dist/css-entry.js dist/css-entry.js.map
|
|
11
11
|
|
|
12
12
|
[36mvite v7.2.4 [32mbuilding client environment for production...[36m[39m
|
|
@@ -14,6 +14,6 @@ transforming...
|
|
|
14
14
|
[32m✓[39m 2 modules transformed.
|
|
15
15
|
rendering chunks...
|
|
16
16
|
computing gzip size...
|
|
17
|
-
[2mdist/[22m[35mstyles.css [39m[1m[
|
|
17
|
+
[2mdist/[22m[35mstyles.css [39m[1m[2m87.48 kB[22m[1m[22m[2m │ gzip: 13.97 kB[22m
|
|
18
18
|
[2mdist/[22m[36mcss-entry.js [39m[1m[2m 0.00 kB[22m[1m[22m[2m │ gzip: 0.02 kB[22m
|
|
19
|
-
[32m✓ built in
|
|
19
|
+
[32m✓ built in 2.01s[39m
|
package/.turbo/turbo-check.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
WARN Issue while reading "/runner/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @shipfox/react-ui@0.
|
|
3
|
+
> @shipfox/react-ui@0.11.0 check /runner/_work/tooling/tooling/libs/react/ui
|
|
4
4
|
> biome-check --fix
|
|
5
5
|
|
|
6
|
-
Checked
|
|
6
|
+
Checked 142 files in 453ms. No fixes applied.
|
package/.turbo/turbo-type.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
WARN Issue while reading "/runner/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @shipfox/react-ui@0.
|
|
3
|
+
> @shipfox/react-ui@0.11.0 type /runner/_work/tooling/tooling/libs/react/ui
|
|
4
4
|
> tsc-emit
|
|
5
5
|
|
package/CHANGELOG.md
CHANGED
|
@@ -27,17 +27,18 @@ export const buttonVariants = cva('rounded-6 inline-flex items-center justify-ce
|
|
|
27
27
|
size: 'md'
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
const
|
|
31
|
-
'2xs': 'size-
|
|
32
|
-
xs: 'size-
|
|
33
|
-
sm: 'size-
|
|
34
|
-
md: 'size-
|
|
35
|
-
lg: 'size-
|
|
36
|
-
xl: 'size-
|
|
30
|
+
const iconSizeMap = {
|
|
31
|
+
'2xs': 'size-14',
|
|
32
|
+
xs: 'size-16',
|
|
33
|
+
sm: 'size-20',
|
|
34
|
+
md: 'size-20',
|
|
35
|
+
lg: 'size-20',
|
|
36
|
+
xl: 'size-20'
|
|
37
37
|
};
|
|
38
38
|
export function Button({ className, variant, size, asChild = false, children, iconLeft, iconRight, isLoading = false, disabled, ...props }) {
|
|
39
39
|
const Comp = asChild ? Slot : 'button';
|
|
40
|
-
const
|
|
40
|
+
const resolvedSize = size ?? 'md';
|
|
41
|
+
const iconSize = iconSizeMap[resolvedSize];
|
|
41
42
|
return /*#__PURE__*/ _jsxs(Comp, {
|
|
42
43
|
"data-slot": "button",
|
|
43
44
|
className: cn(buttonVariants({
|
|
@@ -55,13 +56,15 @@ export function Button({ className, variant, size, asChild = false, children, ic
|
|
|
55
56
|
children: [
|
|
56
57
|
isLoading ? /*#__PURE__*/ _jsx(Icon, {
|
|
57
58
|
name: "spinner",
|
|
58
|
-
className:
|
|
59
|
+
className: iconSize
|
|
59
60
|
}) : iconLeft && /*#__PURE__*/ _jsx(Icon, {
|
|
60
|
-
name: iconLeft
|
|
61
|
+
name: iconLeft,
|
|
62
|
+
className: iconSize
|
|
61
63
|
}),
|
|
62
64
|
children,
|
|
63
65
|
iconRight && /*#__PURE__*/ _jsx(Icon, {
|
|
64
|
-
name: iconRight
|
|
66
|
+
name: iconRight,
|
|
67
|
+
className: iconSize
|
|
65
68
|
})
|
|
66
69
|
]
|
|
67
70
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/button/button.tsx"],"sourcesContent":["import {Slot} from '@radix-ui/react-slot';\nimport {cva, type VariantProps} from 'class-variance-authority';\nimport {Icon, type IconName} from 'components/icon';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nexport const buttonVariants = cva(\n 'rounded-6 inline-flex items-center justify-center whitespace-nowrap transition-colors cursor-pointer disabled:pointer-events-none shrink-0 outline-none',\n {\n variants: {\n variant: {\n primary:\n 'bg-background-button-inverted-default text-foreground-contrast-primary shadow-button-inverted hover:bg-background-button-inverted-hover active:bg-background-button-inverted-pressed focus-visible:shadow-button-inverted-focus disabled:bg-background-neutral-disabled disabled:text-foreground-neutral-disabled disabled:shadow-none',\n secondary:\n 'bg-background-button-neutral-default text-foreground-neutral-base shadow-button-neutral hover:bg-background-button-neutral-hover active:bg-background-button-neutral-pressed disabled:bg-background-neutral-disabled focus-visible:shadow-button-neutral-focus disabled:text-foreground-neutral-disabled disabled:shadow-none',\n danger:\n 'bg-background-button-danger-default text-foreground-neutral-on-color shadow-button-danger hover:bg-background-button-danger-hover active:bg-background-button-danger-pressed focus-visible:shadow-button-danger-focus disabled:bg-background-neutral-disabled disabled:text-foreground-neutral-disabled disabled:shadow-none',\n success:\n 'bg-background-button-success-default text-foreground-neutral-on-color shadow-button-success hover:bg-background-button-success-hover active:bg-background-button-success-pressed focus-visible:shadow-button-success-focus disabled:bg-background-neutral-disabled disabled:text-foreground-neutral-disabled disabled:shadow-none',\n transparent:\n 'bg-background-button-transparent-default text-foreground-neutral-base hover:bg-background-button-transparent-hover active:bg-background-button-transparent-pressed focus-visible:shadow-button-neutral-focus disabled:text-foreground-neutral-disabled',\n transparentMuted:\n 'bg-background-button-transparent-default text-foreground-neutral-muted hover:bg-background-button-transparent-hover active:bg-background-button-transparent-pressed focus-visible:shadow-button-neutral-focus disabled:text-foreground-neutral-disabled',\n },\n size: {\n '2xs': 'h-20 px-6 text-xs gap-4',\n xs: 'h-24 px-6 text-xs gap-4',\n sm: 'h-28 px-8 text-sm gap-6',\n md: 'h-32 px-10 text-md gap-8',\n lg: 'h-36 px-12 text-lg gap-8',\n xl: 'h-40 px-12 text-xl gap-10',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n },\n);\n\nconst
|
|
1
|
+
{"version":3,"sources":["../../../src/components/button/button.tsx"],"sourcesContent":["import {Slot} from '@radix-ui/react-slot';\nimport {cva, type VariantProps} from 'class-variance-authority';\nimport {Icon, type IconName} from 'components/icon';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nexport const buttonVariants = cva(\n 'rounded-6 inline-flex items-center justify-center whitespace-nowrap transition-colors cursor-pointer disabled:pointer-events-none shrink-0 outline-none',\n {\n variants: {\n variant: {\n primary:\n 'bg-background-button-inverted-default text-foreground-contrast-primary shadow-button-inverted hover:bg-background-button-inverted-hover active:bg-background-button-inverted-pressed focus-visible:shadow-button-inverted-focus disabled:bg-background-neutral-disabled disabled:text-foreground-neutral-disabled disabled:shadow-none',\n secondary:\n 'bg-background-button-neutral-default text-foreground-neutral-base shadow-button-neutral hover:bg-background-button-neutral-hover active:bg-background-button-neutral-pressed disabled:bg-background-neutral-disabled focus-visible:shadow-button-neutral-focus disabled:text-foreground-neutral-disabled disabled:shadow-none',\n danger:\n 'bg-background-button-danger-default text-foreground-neutral-on-color shadow-button-danger hover:bg-background-button-danger-hover active:bg-background-button-danger-pressed focus-visible:shadow-button-danger-focus disabled:bg-background-neutral-disabled disabled:text-foreground-neutral-disabled disabled:shadow-none',\n success:\n 'bg-background-button-success-default text-foreground-neutral-on-color shadow-button-success hover:bg-background-button-success-hover active:bg-background-button-success-pressed focus-visible:shadow-button-success-focus disabled:bg-background-neutral-disabled disabled:text-foreground-neutral-disabled disabled:shadow-none',\n transparent:\n 'bg-background-button-transparent-default text-foreground-neutral-base hover:bg-background-button-transparent-hover active:bg-background-button-transparent-pressed focus-visible:shadow-button-neutral-focus disabled:text-foreground-neutral-disabled',\n transparentMuted:\n 'bg-background-button-transparent-default text-foreground-neutral-muted hover:bg-background-button-transparent-hover active:bg-background-button-transparent-pressed focus-visible:shadow-button-neutral-focus disabled:text-foreground-neutral-disabled',\n },\n size: {\n '2xs': 'h-20 px-6 text-xs gap-4',\n xs: 'h-24 px-6 text-xs gap-4',\n sm: 'h-28 px-8 text-sm gap-6',\n md: 'h-32 px-10 text-md gap-8',\n lg: 'h-36 px-12 text-lg gap-8',\n xl: 'h-40 px-12 text-xl gap-10',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n },\n);\n\nconst iconSizeMap: Record<NonNullable<VariantProps<typeof buttonVariants>['size']>, string> = {\n '2xs': 'size-14',\n xs: 'size-16',\n sm: 'size-20',\n md: 'size-20',\n lg: 'size-20',\n xl: 'size-20',\n};\n\nexport function Button({\n className,\n variant,\n size,\n asChild = false,\n children,\n iconLeft,\n iconRight,\n isLoading = false,\n disabled,\n ...props\n}: ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n iconLeft?: IconName;\n iconRight?: IconName;\n isLoading?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n const resolvedSize = (size ?? 'md') as NonNullable<VariantProps<typeof buttonVariants>['size']>;\n const iconSize = iconSizeMap[resolvedSize];\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({variant, size, className}))}\n disabled={disabled || isLoading}\n aria-busy={isLoading}\n aria-live={isLoading ? 'polite' : undefined}\n {...(asChild ? {'aria-disabled': disabled || isLoading} : {})}\n {...props}\n >\n {isLoading ? (\n <Icon name=\"spinner\" className={iconSize} />\n ) : (\n iconLeft && <Icon name={iconLeft} className={iconSize} />\n )}\n {children}\n {iconRight && <Icon name={iconRight} className={iconSize} />}\n </Comp>\n );\n}\n"],"names":["Slot","cva","Icon","cn","buttonVariants","variants","variant","primary","secondary","danger","success","transparent","transparentMuted","size","xs","sm","md","lg","xl","defaultVariants","iconSizeMap","Button","className","asChild","children","iconLeft","iconRight","isLoading","disabled","props","Comp","resolvedSize","iconSize","data-slot","aria-busy","aria-live","undefined","name"],"mappings":";AAAA,SAAQA,IAAI,QAAO,uBAAuB;AAC1C,SAAQC,GAAG,QAA0B,2BAA2B;AAChE,SAAQC,IAAI,QAAsB,kBAAkB;AAEpD,SAAQC,EAAE,QAAO,WAAW;AAE5B,OAAO,MAAMC,iBAAiBH,IAC5B,2JACA;IACEI,UAAU;QACRC,SAAS;YACPC,SACE;YACFC,WACE;YACFC,QACE;YACFC,SACE;YACFC,aACE;YACFC,kBACE;QACJ;QACAC,MAAM;YACJ,OAAO;YACPC,IAAI;YACJC,IAAI;YACJC,IAAI;YACJC,IAAI;YACJC,IAAI;QACN;IACF;IACAC,iBAAiB;QACfb,SAAS;QACTO,MAAM;IACR;AACF,GACA;AAEF,MAAMO,cAAwF;IAC5F,OAAO;IACPN,IAAI;IACJC,IAAI;IACJC,IAAI;IACJC,IAAI;IACJC,IAAI;AACN;AAEA,OAAO,SAASG,OAAO,EACrBC,SAAS,EACThB,OAAO,EACPO,IAAI,EACJU,UAAU,KAAK,EACfC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,YAAY,KAAK,EACjBC,QAAQ,EACR,GAAGC,OAOF;IACD,MAAMC,OAAOP,UAAUvB,OAAO;IAC9B,MAAM+B,eAAgBlB,QAAQ;IAC9B,MAAMmB,WAAWZ,WAAW,CAACW,aAAa;IAE1C,qBACE,MAACD;QACCG,aAAU;QACVX,WAAWnB,GAAGC,eAAe;YAACE;YAASO;YAAMS;QAAS;QACtDM,UAAUA,YAAYD;QACtBO,aAAWP;QACXQ,aAAWR,YAAY,WAAWS;QACjC,GAAIb,UAAU;YAAC,iBAAiBK,YAAYD;QAAS,IAAI,CAAC,CAAC;QAC3D,GAAGE,KAAK;;YAERF,0BACC,KAACzB;gBAAKmC,MAAK;gBAAUf,WAAWU;iBAEhCP,0BAAY,KAACvB;gBAAKmC,MAAMZ;gBAAUH,WAAWU;;YAE9CR;YACAE,2BAAa,KAACxB;gBAAKmC,MAAMX;gBAAWJ,WAAWU;;;;AAGtD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
import type { ComponentProps } from 'react';
|
|
4
|
+
import { type IconName } from '../icon';
|
|
5
|
+
declare function DropdownMenu({ ...props }: ComponentProps<typeof DropdownMenuPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function DropdownMenuTrigger({ className, ...props }: ComponentProps<typeof DropdownMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function DropdownMenuPortal({ ...props }: ComponentProps<typeof DropdownMenuPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare const dropdownMenuContentVariants: (props?: ({
|
|
9
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
10
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
|
+
type DropdownMenuContentProps = ComponentProps<typeof DropdownMenuPrimitive.Content> & VariantProps<typeof dropdownMenuContentVariants> & {
|
|
12
|
+
container?: HTMLElement | null;
|
|
13
|
+
};
|
|
14
|
+
declare function DropdownMenuContent({ className, sideOffset, size, onCloseAutoFocus, container, ...props }: DropdownMenuContentProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare function DropdownMenuGroup({ className, ...props }: ComponentProps<typeof DropdownMenuPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare const dropdownMenuLabelVariants: (props?: ({
|
|
17
|
+
inset?: boolean | null | undefined;
|
|
18
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
19
|
+
type DropdownMenuLabelProps = ComponentProps<typeof DropdownMenuPrimitive.Label> & {
|
|
20
|
+
inset?: boolean;
|
|
21
|
+
};
|
|
22
|
+
declare function DropdownMenuLabel({ className, inset, ...props }: DropdownMenuLabelProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
declare const dropdownMenuItemVariants: (props?: ({
|
|
24
|
+
inset?: boolean | null | undefined;
|
|
25
|
+
variant?: "default" | null | undefined;
|
|
26
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
27
|
+
type DropdownMenuItemProps = ComponentProps<typeof DropdownMenuPrimitive.Item> & VariantProps<typeof dropdownMenuItemVariants> & {
|
|
28
|
+
icon?: IconName;
|
|
29
|
+
shortcut?: string;
|
|
30
|
+
closeOnSelect?: boolean;
|
|
31
|
+
iconStyle?: string;
|
|
32
|
+
};
|
|
33
|
+
declare function DropdownMenuItem({ className, inset, variant, icon, shortcut, children, closeOnSelect, iconStyle, onSelect, ...props }: DropdownMenuItemProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
type DropdownMenuCheckboxItemProps = ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {
|
|
35
|
+
icon?: IconName;
|
|
36
|
+
shortcut?: string;
|
|
37
|
+
closeOnSelect?: boolean;
|
|
38
|
+
};
|
|
39
|
+
declare function DropdownMenuCheckboxItem({ className, children, checked, icon, shortcut, closeOnSelect, onSelect, ...props }: DropdownMenuCheckboxItemProps): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
declare function DropdownMenuRadioGroup({ className, ...props }: ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
type DropdownMenuRadioItemProps = ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {
|
|
42
|
+
icon?: IconName;
|
|
43
|
+
closeOnSelect?: boolean;
|
|
44
|
+
};
|
|
45
|
+
declare function DropdownMenuRadioItem({ className, children, icon, closeOnSelect, onSelect, ...props }: DropdownMenuRadioItemProps): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
declare function DropdownMenuSeparator({ className, ...props }: ComponentProps<typeof DropdownMenuPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
type DropdownMenuShortcutProps = ComponentProps<'span'>;
|
|
48
|
+
declare function DropdownMenuShortcut({ className, ...props }: DropdownMenuShortcutProps): import("react/jsx-runtime").JSX.Element;
|
|
49
|
+
declare function DropdownMenuSub({ ...props }: ComponentProps<typeof DropdownMenuPrimitive.Sub>): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
type DropdownMenuSubTriggerProps = ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
|
|
51
|
+
inset?: boolean;
|
|
52
|
+
icon?: IconName;
|
|
53
|
+
};
|
|
54
|
+
declare function DropdownMenuSubTrigger({ className, inset, icon, children, ...props }: DropdownMenuSubTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
declare function DropdownMenuSubContent({ className, ...props }: ComponentProps<typeof DropdownMenuPrimitive.SubContent>): import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
export { DropdownMenu, DropdownMenuTrigger, DropdownMenuPortal, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, dropdownMenuContentVariants, dropdownMenuItemVariants, dropdownMenuLabelVariants, };
|
|
57
|
+
export type { DropdownMenuContentProps, DropdownMenuLabelProps, DropdownMenuItemProps, DropdownMenuCheckboxItemProps, DropdownMenuRadioItemProps, DropdownMenuSubTriggerProps, DropdownMenuShortcutProps, };
|
|
58
|
+
//# sourceMappingURL=dropdown-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown-menu/dropdown-menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { cn } from '../../utils/cn.js';
|
|
5
|
+
import { Icon } from '../icon/index.js';
|
|
6
|
+
function DropdownMenu({ ...props }) {
|
|
7
|
+
return /*#__PURE__*/ _jsx(DropdownMenuPrimitive.Root, {
|
|
8
|
+
"data-slot": "dropdown-menu",
|
|
9
|
+
...props
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function DropdownMenuTrigger({ className, ...props }) {
|
|
13
|
+
return /*#__PURE__*/ _jsx(DropdownMenuPrimitive.Trigger, {
|
|
14
|
+
"data-slot": "dropdown-menu-trigger",
|
|
15
|
+
className: cn('outline-none', className),
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function DropdownMenuPortal({ ...props }) {
|
|
20
|
+
return /*#__PURE__*/ _jsx(DropdownMenuPrimitive.Portal, {
|
|
21
|
+
"data-slot": "dropdown-menu-portal",
|
|
22
|
+
...props
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
const dropdownMenuContentVariants = cva([
|
|
26
|
+
'z-50 min-w-[180px] overflow-hidden rounded-10 p-4',
|
|
27
|
+
'bg-background-neutral-overlay text-foreground-neutral-subtle',
|
|
28
|
+
'shadow-tooltip',
|
|
29
|
+
'data-[state=open]:animate-in data-[state=closed]:animate-out',
|
|
30
|
+
'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',
|
|
31
|
+
'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',
|
|
32
|
+
'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',
|
|
33
|
+
'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2'
|
|
34
|
+
], {
|
|
35
|
+
variants: {
|
|
36
|
+
size: {
|
|
37
|
+
sm: 'min-w-[160px]',
|
|
38
|
+
md: 'min-w-[200px]',
|
|
39
|
+
lg: 'min-w-[240px]'
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
defaultVariants: {
|
|
43
|
+
size: 'md'
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
function DropdownMenuContent({ className, sideOffset = 4, size, onCloseAutoFocus, container, ...props }) {
|
|
47
|
+
return /*#__PURE__*/ _jsx(DropdownMenuPrimitive.Portal, {
|
|
48
|
+
container: container,
|
|
49
|
+
children: /*#__PURE__*/ _jsx(DropdownMenuPrimitive.Content, {
|
|
50
|
+
"data-slot": "dropdown-menu-content",
|
|
51
|
+
sideOffset: sideOffset,
|
|
52
|
+
className: cn(dropdownMenuContentVariants({
|
|
53
|
+
size
|
|
54
|
+
}), className),
|
|
55
|
+
onCloseAutoFocus: (e)=>{
|
|
56
|
+
e.preventDefault();
|
|
57
|
+
onCloseAutoFocus?.(e);
|
|
58
|
+
},
|
|
59
|
+
...props
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function DropdownMenuGroup({ className, ...props }) {
|
|
64
|
+
return /*#__PURE__*/ _jsx(DropdownMenuPrimitive.Group, {
|
|
65
|
+
"data-slot": "dropdown-menu-group",
|
|
66
|
+
className: cn('flex flex-col', className),
|
|
67
|
+
...props
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const dropdownMenuLabelVariants = cva('px-8 py-4 text-xs leading-20 text-foreground-neutral-subtle select-none', {
|
|
71
|
+
variants: {
|
|
72
|
+
inset: {
|
|
73
|
+
true: 'pl-32'
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
function DropdownMenuLabel({ className, inset, ...props }) {
|
|
78
|
+
return /*#__PURE__*/ _jsx(DropdownMenuPrimitive.Label, {
|
|
79
|
+
"data-slot": "dropdown-menu-label",
|
|
80
|
+
className: cn(dropdownMenuLabelVariants({
|
|
81
|
+
inset
|
|
82
|
+
}), className),
|
|
83
|
+
...props
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
const dropdownMenuItemVariants = cva([
|
|
87
|
+
'relative flex cursor-pointer select-none items-center gap-8 rounded-6 px-8 py-6',
|
|
88
|
+
'text-sm leading-20 text-foreground-neutral-subtle outline-none transition-colors',
|
|
89
|
+
'focus:bg-background-components-hover',
|
|
90
|
+
'data-disabled:pointer-events-none data-disabled:text-foreground-neutral-disabled'
|
|
91
|
+
], {
|
|
92
|
+
variants: {
|
|
93
|
+
inset: {
|
|
94
|
+
true: 'pl-32'
|
|
95
|
+
},
|
|
96
|
+
variant: {
|
|
97
|
+
default: ''
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
defaultVariants: {
|
|
101
|
+
variant: 'default'
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
function DropdownMenuItem({ className, inset, variant, icon, shortcut, children, closeOnSelect = true, iconStyle, onSelect, ...props }) {
|
|
105
|
+
return /*#__PURE__*/ _jsxs(DropdownMenuPrimitive.Item, {
|
|
106
|
+
"data-slot": "dropdown-menu-item",
|
|
107
|
+
className: cn(dropdownMenuItemVariants({
|
|
108
|
+
inset,
|
|
109
|
+
variant
|
|
110
|
+
}), className),
|
|
111
|
+
onSelect: (e)=>{
|
|
112
|
+
if (!closeOnSelect) e.preventDefault();
|
|
113
|
+
onSelect?.(e);
|
|
114
|
+
},
|
|
115
|
+
...props,
|
|
116
|
+
children: [
|
|
117
|
+
icon && /*#__PURE__*/ _jsx(Icon, {
|
|
118
|
+
name: icon,
|
|
119
|
+
className: cn('size-16 shrink-0 text-foreground-neutral-subtle', iconStyle)
|
|
120
|
+
}),
|
|
121
|
+
/*#__PURE__*/ _jsx("span", {
|
|
122
|
+
className: "flex-1 truncate",
|
|
123
|
+
children: children
|
|
124
|
+
}),
|
|
125
|
+
shortcut && /*#__PURE__*/ _jsx(DropdownMenuShortcut, {
|
|
126
|
+
children: shortcut
|
|
127
|
+
})
|
|
128
|
+
]
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function DropdownMenuCheckboxItem({ className, children, checked, icon, shortcut, closeOnSelect = true, onSelect, ...props }) {
|
|
132
|
+
return /*#__PURE__*/ _jsxs(DropdownMenuPrimitive.CheckboxItem, {
|
|
133
|
+
"data-slot": "dropdown-menu-checkbox-item",
|
|
134
|
+
className: cn([
|
|
135
|
+
'relative flex cursor-pointer select-none items-center gap-8 rounded-6 py-6 pl-32 pr-8',
|
|
136
|
+
'text-sm leading-20 text-foreground-neutral-subtle outline-none transition-colors',
|
|
137
|
+
'focus:bg-background-components-hover',
|
|
138
|
+
'data-disabled:pointer-events-none data-disabled:text-foreground-neutral-disabled',
|
|
139
|
+
'data-[state=checked]:text-foreground-neutral-base'
|
|
140
|
+
], className),
|
|
141
|
+
checked: checked,
|
|
142
|
+
onSelect: (e)=>{
|
|
143
|
+
if (!closeOnSelect) e.preventDefault();
|
|
144
|
+
onSelect?.(e);
|
|
145
|
+
},
|
|
146
|
+
...props,
|
|
147
|
+
children: [
|
|
148
|
+
/*#__PURE__*/ _jsx("span", {
|
|
149
|
+
className: "absolute left-8 flex size-16 items-center justify-center",
|
|
150
|
+
children: /*#__PURE__*/ _jsx(DropdownMenuPrimitive.ItemIndicator, {
|
|
151
|
+
children: /*#__PURE__*/ _jsx(Icon, {
|
|
152
|
+
name: "check",
|
|
153
|
+
className: "size-14 text-foreground-neutral-base"
|
|
154
|
+
})
|
|
155
|
+
})
|
|
156
|
+
}),
|
|
157
|
+
icon && /*#__PURE__*/ _jsx(Icon, {
|
|
158
|
+
name: icon,
|
|
159
|
+
className: "size-16 shrink-0 text-foreground-neutral-subtle"
|
|
160
|
+
}),
|
|
161
|
+
/*#__PURE__*/ _jsx("span", {
|
|
162
|
+
className: "flex-1 truncate",
|
|
163
|
+
children: children
|
|
164
|
+
}),
|
|
165
|
+
shortcut && /*#__PURE__*/ _jsx(DropdownMenuShortcut, {
|
|
166
|
+
children: shortcut
|
|
167
|
+
})
|
|
168
|
+
]
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
function DropdownMenuRadioGroup({ className, ...props }) {
|
|
172
|
+
return /*#__PURE__*/ _jsx(DropdownMenuPrimitive.RadioGroup, {
|
|
173
|
+
"data-slot": "dropdown-menu-radio-group",
|
|
174
|
+
className: cn('flex flex-col', className),
|
|
175
|
+
...props
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
function DropdownMenuRadioItem({ className, children, icon, closeOnSelect = true, onSelect, ...props }) {
|
|
179
|
+
return /*#__PURE__*/ _jsxs(DropdownMenuPrimitive.RadioItem, {
|
|
180
|
+
"data-slot": "dropdown-menu-radio-item",
|
|
181
|
+
className: cn([
|
|
182
|
+
'relative flex cursor-pointer select-none items-center gap-8 rounded-6 py-6 pl-32 pr-8',
|
|
183
|
+
'text-sm leading-20 text-foreground-neutral-subtle outline-none transition-colors',
|
|
184
|
+
'focus:bg-background-components-hover',
|
|
185
|
+
'data-disabled:pointer-events-none data-disabled:text-foreground-neutral-disabled',
|
|
186
|
+
'data-[state=checked]:text-foreground-neutral-base'
|
|
187
|
+
], className),
|
|
188
|
+
onSelect: (e)=>{
|
|
189
|
+
if (!closeOnSelect) e.preventDefault();
|
|
190
|
+
onSelect?.(e);
|
|
191
|
+
},
|
|
192
|
+
...props,
|
|
193
|
+
children: [
|
|
194
|
+
/*#__PURE__*/ _jsx("span", {
|
|
195
|
+
className: "absolute left-8 flex size-16 items-center justify-center",
|
|
196
|
+
children: /*#__PURE__*/ _jsx(DropdownMenuPrimitive.ItemIndicator, {
|
|
197
|
+
children: /*#__PURE__*/ _jsx(Icon, {
|
|
198
|
+
name: "ellipseMiniSolid",
|
|
199
|
+
className: "size-6 text-foreground-neutral-base"
|
|
200
|
+
})
|
|
201
|
+
})
|
|
202
|
+
}),
|
|
203
|
+
icon && /*#__PURE__*/ _jsx(Icon, {
|
|
204
|
+
name: icon,
|
|
205
|
+
className: "size-16 shrink-0 text-foreground-neutral-subtle"
|
|
206
|
+
}),
|
|
207
|
+
/*#__PURE__*/ _jsx("span", {
|
|
208
|
+
className: "flex-1 truncate",
|
|
209
|
+
children: children
|
|
210
|
+
})
|
|
211
|
+
]
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
function DropdownMenuSeparator({ className, ...props }) {
|
|
215
|
+
return /*#__PURE__*/ _jsx(DropdownMenuPrimitive.Separator, {
|
|
216
|
+
"data-slot": "dropdown-menu-separator",
|
|
217
|
+
className: cn('relative -mx-4 my-4 h-px', 'bg-border-neutral-menu-top', 'after:absolute after:inset-x-0 after:top-px after:h-px', 'after:bg-border-neutral-menu-bottom', className),
|
|
218
|
+
...props
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
function DropdownMenuShortcut({ className, ...props }) {
|
|
222
|
+
return /*#__PURE__*/ _jsx("span", {
|
|
223
|
+
"data-slot": "dropdown-menu-shortcut",
|
|
224
|
+
className: cn('ml-auto text-xs leading-20 text-foreground-neutral-muted tabular-nums', className),
|
|
225
|
+
...props
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
function DropdownMenuSub({ ...props }) {
|
|
229
|
+
return /*#__PURE__*/ _jsx(DropdownMenuPrimitive.Sub, {
|
|
230
|
+
"data-slot": "dropdown-menu-sub",
|
|
231
|
+
...props
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
function DropdownMenuSubTrigger({ className, inset, icon, children, ...props }) {
|
|
235
|
+
return /*#__PURE__*/ _jsxs(DropdownMenuPrimitive.SubTrigger, {
|
|
236
|
+
"data-slot": "dropdown-menu-sub-trigger",
|
|
237
|
+
className: cn([
|
|
238
|
+
'relative flex cursor-pointer select-none items-center gap-8 rounded-6 px-8 py-6',
|
|
239
|
+
'text-sm leading-20 text-foreground-neutral-subtle outline-none transition-colors',
|
|
240
|
+
'focus:bg-background-components-hover',
|
|
241
|
+
'data-[state=open]:bg-background-components-hover',
|
|
242
|
+
'data-disabled:pointer-events-none data-disabled:text-foreground-neutral-disabled',
|
|
243
|
+
'data-[state=checked]:text-foreground-neutral-base'
|
|
244
|
+
], inset && 'pl-32', className),
|
|
245
|
+
...props,
|
|
246
|
+
children: [
|
|
247
|
+
icon && /*#__PURE__*/ _jsx(Icon, {
|
|
248
|
+
name: icon,
|
|
249
|
+
className: "size-16 shrink-0 text-foreground-neutral-subtle"
|
|
250
|
+
}),
|
|
251
|
+
/*#__PURE__*/ _jsx("span", {
|
|
252
|
+
className: "flex-1 truncate",
|
|
253
|
+
children: children
|
|
254
|
+
}),
|
|
255
|
+
/*#__PURE__*/ _jsx(Icon, {
|
|
256
|
+
name: "chevronRight",
|
|
257
|
+
className: "ml-auto size-14 text-foreground-neutral-muted"
|
|
258
|
+
})
|
|
259
|
+
]
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
function DropdownMenuSubContent({ className, ...props }) {
|
|
263
|
+
return /*#__PURE__*/ _jsx(DropdownMenuPrimitive.SubContent, {
|
|
264
|
+
"data-slot": "dropdown-menu-sub-content",
|
|
265
|
+
className: cn([
|
|
266
|
+
'z-50 min-w-180 overflow-hidden rounded-10 p-4',
|
|
267
|
+
'bg-background-neutral-overlay text-foreground-neutral-subtle',
|
|
268
|
+
'shadow-tooltip',
|
|
269
|
+
'data-[state=open]:animate-in data-[state=closed]:animate-out',
|
|
270
|
+
'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',
|
|
271
|
+
'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',
|
|
272
|
+
'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',
|
|
273
|
+
'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2'
|
|
274
|
+
], className),
|
|
275
|
+
...props
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
export { DropdownMenu, DropdownMenuTrigger, DropdownMenuPortal, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, dropdownMenuContentVariants, dropdownMenuItemVariants, dropdownMenuLabelVariants };
|
|
279
|
+
|
|
280
|
+
//# sourceMappingURL=dropdown-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport {cva, type VariantProps} from 'class-variance-authority';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\nimport {Icon, type IconName} from '../icon';\n\nfunction DropdownMenu({...props}: ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n className={cn('outline-none', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuPortal({...props}: ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nconst dropdownMenuContentVariants = cva(\n [\n 'z-50 min-w-[180px] overflow-hidden rounded-10 p-4',\n 'bg-background-neutral-overlay text-foreground-neutral-subtle',\n 'shadow-tooltip',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n ],\n {\n variants: {\n size: {\n sm: 'min-w-[160px]',\n md: 'min-w-[200px]',\n lg: 'min-w-[240px]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n);\n\ntype DropdownMenuContentProps = ComponentProps<typeof DropdownMenuPrimitive.Content> &\n VariantProps<typeof dropdownMenuContentVariants> & {\n container?: HTMLElement | null;\n };\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n size,\n onCloseAutoFocus,\n container,\n ...props\n}: DropdownMenuContentProps) {\n return (\n <DropdownMenuPrimitive.Portal container={container}>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(dropdownMenuContentVariants({size}), className)}\n onCloseAutoFocus={(e) => {\n e.preventDefault();\n onCloseAutoFocus?.(e);\n }}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group\n data-slot=\"dropdown-menu-group\"\n className={cn('flex flex-col', className)}\n {...props}\n />\n );\n}\n\nconst dropdownMenuLabelVariants = cva(\n 'px-8 py-4 text-xs leading-20 text-foreground-neutral-subtle select-none',\n {\n variants: {\n inset: {\n true: 'pl-32',\n },\n },\n },\n);\n\ntype DropdownMenuLabelProps = ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n};\n\nfunction DropdownMenuLabel({className, inset, ...props}: DropdownMenuLabelProps) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n className={cn(dropdownMenuLabelVariants({inset}), className)}\n {...props}\n />\n );\n}\n\nconst dropdownMenuItemVariants = cva(\n [\n 'relative flex cursor-pointer select-none items-center gap-8 rounded-6 px-8 py-6',\n 'text-sm leading-20 text-foreground-neutral-subtle outline-none transition-colors',\n 'focus:bg-background-components-hover',\n 'data-disabled:pointer-events-none data-disabled:text-foreground-neutral-disabled',\n ],\n {\n variants: {\n inset: {\n true: 'pl-32',\n },\n variant: {\n default: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\ntype DropdownMenuItemProps = ComponentProps<typeof DropdownMenuPrimitive.Item> &\n VariantProps<typeof dropdownMenuItemVariants> & {\n icon?: IconName;\n shortcut?: string;\n closeOnSelect?: boolean;\n iconStyle?: string;\n };\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant,\n icon,\n shortcut,\n children,\n closeOnSelect = true,\n iconStyle,\n onSelect,\n ...props\n}: DropdownMenuItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n className={cn(dropdownMenuItemVariants({inset, variant}), className)}\n onSelect={(e) => {\n if (!closeOnSelect) e.preventDefault();\n onSelect?.(e);\n }}\n {...props}\n >\n {icon && (\n <Icon\n name={icon}\n className={cn('size-16 shrink-0 text-foreground-neutral-subtle', iconStyle)}\n />\n )}\n <span className=\"flex-1 truncate\">{children}</span>\n {shortcut && <DropdownMenuShortcut>{shortcut}</DropdownMenuShortcut>}\n </DropdownMenuPrimitive.Item>\n );\n}\n\ntype DropdownMenuCheckboxItemProps = ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {\n icon?: IconName;\n shortcut?: string;\n closeOnSelect?: boolean;\n};\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n icon,\n shortcut,\n closeOnSelect = true,\n onSelect,\n ...props\n}: DropdownMenuCheckboxItemProps) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n [\n 'relative flex cursor-pointer select-none items-center gap-8 rounded-6 py-6 pl-32 pr-8',\n 'text-sm leading-20 text-foreground-neutral-subtle outline-none transition-colors',\n 'focus:bg-background-components-hover',\n 'data-disabled:pointer-events-none data-disabled:text-foreground-neutral-disabled',\n 'data-[state=checked]:text-foreground-neutral-base',\n ],\n className,\n )}\n checked={checked}\n onSelect={(e) => {\n if (!closeOnSelect) e.preventDefault();\n onSelect?.(e);\n }}\n {...props}\n >\n <span className=\"absolute left-8 flex size-16 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Icon name=\"check\" className=\"size-14 text-foreground-neutral-base\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {icon && <Icon name={icon} className=\"size-16 shrink-0 text-foreground-neutral-subtle\" />}\n <span className=\"flex-1 truncate\">{children}</span>\n {shortcut && <DropdownMenuShortcut>{shortcut}</DropdownMenuShortcut>}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n className={cn('flex flex-col', className)}\n {...props}\n />\n );\n}\n\ntype DropdownMenuRadioItemProps = ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {\n icon?: IconName;\n closeOnSelect?: boolean;\n};\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n icon,\n closeOnSelect = true,\n onSelect,\n ...props\n}: DropdownMenuRadioItemProps) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n [\n 'relative flex cursor-pointer select-none items-center gap-8 rounded-6 py-6 pl-32 pr-8',\n 'text-sm leading-20 text-foreground-neutral-subtle outline-none transition-colors',\n 'focus:bg-background-components-hover',\n 'data-disabled:pointer-events-none data-disabled:text-foreground-neutral-disabled',\n 'data-[state=checked]:text-foreground-neutral-base',\n ],\n className,\n )}\n onSelect={(e) => {\n if (!closeOnSelect) e.preventDefault();\n onSelect?.(e);\n }}\n {...props}\n >\n <span className=\"absolute left-8 flex size-16 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Icon name=\"ellipseMiniSolid\" className=\"size-6 text-foreground-neutral-base\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {icon && <Icon name={icon} className=\"size-16 shrink-0 text-foreground-neutral-subtle\" />}\n <span className=\"flex-1 truncate\">{children}</span>\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\n 'relative -mx-4 my-4 h-px',\n 'bg-border-neutral-menu-top',\n 'after:absolute after:inset-x-0 after:top-px after:h-px',\n 'after:bg-border-neutral-menu-bottom',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype DropdownMenuShortcutProps = ComponentProps<'span'>;\n\nfunction DropdownMenuShortcut({className, ...props}: DropdownMenuShortcutProps) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'ml-auto text-xs leading-20 text-foreground-neutral-muted tabular-nums',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({...props}: ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\ntype DropdownMenuSubTriggerProps = ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n icon?: IconName;\n};\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n icon,\n children,\n ...props\n}: DropdownMenuSubTriggerProps) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn(\n [\n 'relative flex cursor-pointer select-none items-center gap-8 rounded-6 px-8 py-6',\n 'text-sm leading-20 text-foreground-neutral-subtle outline-none transition-colors',\n 'focus:bg-background-components-hover',\n 'data-[state=open]:bg-background-components-hover',\n 'data-disabled:pointer-events-none data-disabled:text-foreground-neutral-disabled',\n 'data-[state=checked]:text-foreground-neutral-base',\n ],\n inset && 'pl-32',\n className,\n )}\n {...props}\n >\n {icon && <Icon name={icon} className=\"size-16 shrink-0 text-foreground-neutral-subtle\" />}\n <span className=\"flex-1 truncate\">{children}</span>\n <Icon name=\"chevronRight\" className=\"ml-auto size-14 text-foreground-neutral-muted\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n [\n 'z-50 min-w-180 overflow-hidden rounded-10 p-4',\n 'bg-background-neutral-overlay text-foreground-neutral-subtle',\n 'shadow-tooltip',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n ],\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuPortal,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n dropdownMenuContentVariants,\n dropdownMenuItemVariants,\n dropdownMenuLabelVariants,\n};\n\nexport type {\n DropdownMenuContentProps,\n DropdownMenuLabelProps,\n DropdownMenuItemProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuRadioItemProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuShortcutProps,\n};\n"],"names":["DropdownMenuPrimitive","cva","cn","Icon","DropdownMenu","props","Root","data-slot","DropdownMenuTrigger","className","Trigger","DropdownMenuPortal","Portal","dropdownMenuContentVariants","variants","size","sm","md","lg","defaultVariants","DropdownMenuContent","sideOffset","onCloseAutoFocus","container","Content","e","preventDefault","DropdownMenuGroup","Group","dropdownMenuLabelVariants","inset","true","DropdownMenuLabel","Label","dropdownMenuItemVariants","variant","default","DropdownMenuItem","icon","shortcut","children","closeOnSelect","iconStyle","onSelect","Item","name","span","DropdownMenuShortcut","DropdownMenuCheckboxItem","checked","CheckboxItem","ItemIndicator","DropdownMenuRadioGroup","RadioGroup","DropdownMenuRadioItem","RadioItem","DropdownMenuSeparator","Separator","DropdownMenuSub","Sub","DropdownMenuSubTrigger","SubTrigger","DropdownMenuSubContent","SubContent"],"mappings":"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"}
|