@mdigital_ui/ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +296 -0
- package/dist/accordion/index.js +5 -0
- package/dist/accordion/index.js.map +1 -0
- package/dist/badge/index.js +5 -0
- package/dist/badge/index.js.map +1 -0
- package/dist/button/index.js +6 -0
- package/dist/button/index.js.map +1 -0
- package/dist/card/index.js +4 -0
- package/dist/card/index.js.map +1 -0
- package/dist/carousel/index.js +3 -0
- package/dist/carousel/index.js.map +1 -0
- package/dist/cascader/index.js +4 -0
- package/dist/cascader/index.js.map +1 -0
- package/dist/chart/index.js +4 -0
- package/dist/chart/index.js.map +1 -0
- package/dist/checkbox/index.js +5 -0
- package/dist/checkbox/index.js.map +1 -0
- package/dist/checkbox-group/index.js +4 -0
- package/dist/checkbox-group/index.js.map +1 -0
- package/dist/chunk-2JGAYDZR.js +181 -0
- package/dist/chunk-2JGAYDZR.js.map +1 -0
- package/dist/chunk-3PFA3YG6.js +228 -0
- package/dist/chunk-3PFA3YG6.js.map +1 -0
- package/dist/chunk-4OMLQCUV.js +96 -0
- package/dist/chunk-4OMLQCUV.js.map +1 -0
- package/dist/chunk-4P5EMRFI.js +298 -0
- package/dist/chunk-4P5EMRFI.js.map +1 -0
- package/dist/chunk-5UEWVFF6.js +212 -0
- package/dist/chunk-5UEWVFF6.js.map +1 -0
- package/dist/chunk-5VCGW53O.js +332 -0
- package/dist/chunk-5VCGW53O.js.map +1 -0
- package/dist/chunk-75XESYGN.js +49 -0
- package/dist/chunk-75XESYGN.js.map +1 -0
- package/dist/chunk-7AEGBABZ.js +1102 -0
- package/dist/chunk-7AEGBABZ.js.map +1 -0
- package/dist/chunk-AOITJRSV.js +134 -0
- package/dist/chunk-AOITJRSV.js.map +1 -0
- package/dist/chunk-AWPKZYHT.js +152 -0
- package/dist/chunk-AWPKZYHT.js.map +1 -0
- package/dist/chunk-BNILRB4T.js +37 -0
- package/dist/chunk-BNILRB4T.js.map +1 -0
- package/dist/chunk-BP434VYV.js +448 -0
- package/dist/chunk-BP434VYV.js.map +1 -0
- package/dist/chunk-C7SXY3ZV.js +65 -0
- package/dist/chunk-C7SXY3ZV.js.map +1 -0
- package/dist/chunk-CLLQDCDR.js +560 -0
- package/dist/chunk-CLLQDCDR.js.map +1 -0
- package/dist/chunk-CWHFK7ZC.js +128 -0
- package/dist/chunk-CWHFK7ZC.js.map +1 -0
- package/dist/chunk-D3JWPGCA.js +123 -0
- package/dist/chunk-D3JWPGCA.js.map +1 -0
- package/dist/chunk-DOKTHDG3.js +55 -0
- package/dist/chunk-DOKTHDG3.js.map +1 -0
- package/dist/chunk-DPOSWW22.js +126 -0
- package/dist/chunk-DPOSWW22.js.map +1 -0
- package/dist/chunk-E2CYDDYC.js +39 -0
- package/dist/chunk-E2CYDDYC.js.map +1 -0
- package/dist/chunk-EYTOKUBM.js +401 -0
- package/dist/chunk-EYTOKUBM.js.map +1 -0
- package/dist/chunk-FGWSUPVW.js +356 -0
- package/dist/chunk-FGWSUPVW.js.map +1 -0
- package/dist/chunk-FPOXTCYV.js +166 -0
- package/dist/chunk-FPOXTCYV.js.map +1 -0
- package/dist/chunk-FTJOSVTY.js +104 -0
- package/dist/chunk-FTJOSVTY.js.map +1 -0
- package/dist/chunk-FYHQDFKE.js +164 -0
- package/dist/chunk-FYHQDFKE.js.map +1 -0
- package/dist/chunk-H2HIBD5Y.js +158 -0
- package/dist/chunk-H2HIBD5Y.js.map +1 -0
- package/dist/chunk-J3G5WWGR.js +53 -0
- package/dist/chunk-J3G5WWGR.js.map +1 -0
- package/dist/chunk-JZCHZ4B3.js +487 -0
- package/dist/chunk-JZCHZ4B3.js.map +1 -0
- package/dist/chunk-KBCBVH7B.js +51 -0
- package/dist/chunk-KBCBVH7B.js.map +1 -0
- package/dist/chunk-KNQ7UQ2W.js +143 -0
- package/dist/chunk-KNQ7UQ2W.js.map +1 -0
- package/dist/chunk-KTBPIEP2.js +102 -0
- package/dist/chunk-KTBPIEP2.js.map +1 -0
- package/dist/chunk-L3SP7GHC.js +1023 -0
- package/dist/chunk-L3SP7GHC.js.map +1 -0
- package/dist/chunk-LBJG2UWT.js +100 -0
- package/dist/chunk-LBJG2UWT.js.map +1 -0
- package/dist/chunk-MLDX3Z67.js +470 -0
- package/dist/chunk-MLDX3Z67.js.map +1 -0
- package/dist/chunk-NNSS366W.js +331 -0
- package/dist/chunk-NNSS366W.js.map +1 -0
- package/dist/chunk-OQANRZPV.js +197 -0
- package/dist/chunk-OQANRZPV.js.map +1 -0
- package/dist/chunk-OW5A5IIF.js +175 -0
- package/dist/chunk-OW5A5IIF.js.map +1 -0
- package/dist/chunk-R225A5II.js +187 -0
- package/dist/chunk-R225A5II.js.map +1 -0
- package/dist/chunk-ROR4E6IE.js +119 -0
- package/dist/chunk-ROR4E6IE.js.map +1 -0
- package/dist/chunk-RPAQAZTI.js +54 -0
- package/dist/chunk-RPAQAZTI.js.map +1 -0
- package/dist/chunk-RQBXZKTH.js +452 -0
- package/dist/chunk-RQBXZKTH.js.map +1 -0
- package/dist/chunk-S5XJXU52.js +178 -0
- package/dist/chunk-S5XJXU52.js.map +1 -0
- package/dist/chunk-SAVE5ACL.js +324 -0
- package/dist/chunk-SAVE5ACL.js.map +1 -0
- package/dist/chunk-SERJ3TZE.js +640 -0
- package/dist/chunk-SERJ3TZE.js.map +1 -0
- package/dist/chunk-SK5ECBBK.js +175 -0
- package/dist/chunk-SK5ECBBK.js.map +1 -0
- package/dist/chunk-SOV4PE3P.js +218 -0
- package/dist/chunk-SOV4PE3P.js.map +1 -0
- package/dist/chunk-W7BQYIXF.js +687 -0
- package/dist/chunk-W7BQYIXF.js.map +1 -0
- package/dist/chunk-XMAH5PDW.js +59 -0
- package/dist/chunk-XMAH5PDW.js.map +1 -0
- package/dist/chunk-XOBGEMQY.js +94 -0
- package/dist/chunk-XOBGEMQY.js.map +1 -0
- package/dist/chunk-YNNAOXU5.js +57 -0
- package/dist/chunk-YNNAOXU5.js.map +1 -0
- package/dist/chunk-YZVSDRJD.js +253 -0
- package/dist/chunk-YZVSDRJD.js.map +1 -0
- package/dist/collapse/index.js +4 -0
- package/dist/collapse/index.js.map +1 -0
- package/dist/command/index.js +5 -0
- package/dist/command/index.js.map +1 -0
- package/dist/date-picker/index.js +5 -0
- package/dist/date-picker/index.js.map +1 -0
- package/dist/descriptions/index.js +4 -0
- package/dist/descriptions/index.js.map +1 -0
- package/dist/drawer/index.js +4 -0
- package/dist/drawer/index.js.map +1 -0
- package/dist/dropdown/index.js +5 -0
- package/dist/dropdown/index.js.map +1 -0
- package/dist/empty/index.js +4 -0
- package/dist/empty/index.js.map +1 -0
- package/dist/fetching-overlay/index.js +5 -0
- package/dist/fetching-overlay/index.js.map +1 -0
- package/dist/image/index.js +4 -0
- package/dist/image/index.js.map +1 -0
- package/dist/index.d.ts +2672 -0
- package/dist/index.js +976 -0
- package/dist/index.js.map +1 -0
- package/dist/input/index.js +5 -0
- package/dist/input/index.js.map +1 -0
- package/dist/input-group/index.js +4 -0
- package/dist/input-group/index.js.map +1 -0
- package/dist/input-otp/index.js +4 -0
- package/dist/input-otp/index.js.map +1 -0
- package/dist/input-password/index.js +6 -0
- package/dist/input-password/index.js.map +1 -0
- package/dist/kbd/index.js +4 -0
- package/dist/kbd/index.js.map +1 -0
- package/dist/modal/index.js +4 -0
- package/dist/modal/index.js.map +1 -0
- package/dist/multi-select/index.js +5 -0
- package/dist/multi-select/index.js.map +1 -0
- package/dist/notification/index.js +4 -0
- package/dist/notification/index.js.map +1 -0
- package/dist/pagination/index.js +4 -0
- package/dist/pagination/index.js.map +1 -0
- package/dist/popover/index.js +4 -0
- package/dist/popover/index.js.map +1 -0
- package/dist/progress/index.js +4 -0
- package/dist/progress/index.js.map +1 -0
- package/dist/radio/index.js +4 -0
- package/dist/radio/index.js.map +1 -0
- package/dist/radio-group/index.js +4 -0
- package/dist/radio-group/index.js.map +1 -0
- package/dist/rating/index.js +4 -0
- package/dist/rating/index.js.map +1 -0
- package/dist/ribbon/index.js +4 -0
- package/dist/ribbon/index.js.map +1 -0
- package/dist/select/index.js +6 -0
- package/dist/select/index.js.map +1 -0
- package/dist/skeleton/index.js +4 -0
- package/dist/skeleton/index.js.map +1 -0
- package/dist/slider/index.js +4 -0
- package/dist/slider/index.js.map +1 -0
- package/dist/spinner/index.js +4 -0
- package/dist/spinner/index.js.map +1 -0
- package/dist/stepper/index.js +4 -0
- package/dist/stepper/index.js.map +1 -0
- package/dist/styles/base.css +161 -0
- package/dist/styles/global.css +633 -0
- package/dist/styles/themes/dark.css +84 -0
- package/dist/styles/themes/light.css +84 -0
- package/dist/switch/index.js +4 -0
- package/dist/switch/index.js.map +1 -0
- package/dist/table/index.js +12 -0
- package/dist/table/index.js.map +1 -0
- package/dist/tabs/index.js +5 -0
- package/dist/tabs/index.js.map +1 -0
- package/dist/textarea/index.js +4 -0
- package/dist/textarea/index.js.map +1 -0
- package/dist/toggle/index.js +4 -0
- package/dist/toggle/index.js.map +1 -0
- package/dist/toggle-group/index.js +4 -0
- package/dist/toggle-group/index.js.map +1 -0
- package/dist/tooltip/index.js +4 -0
- package/dist/tooltip/index.js.map +1 -0
- package/dist/transfer/index.js +6 -0
- package/dist/transfer/index.js.map +1 -0
- package/dist/tree/index.js +4 -0
- package/dist/tree/index.js.map +1 -0
- package/dist/tree-select/index.js +6 -0
- package/dist/tree-select/index.js.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/command/index.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-4P5EMRFI.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { SearchIcon } from 'lucide-react'\nimport * as React from 'react'\n\nimport { CommandSize } from './types'\n\nimport {\n Modal,\n ModalContent,\n ModalDescription,\n ModalHeader,\n ModalTitle,\n} from '../modal'\nimport { cn, iconSizes } from '../utils'\n\nconst commandVariants = cva(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-background text-text-primary',\n {\n variants: {\n size: {\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nfunction Command({\n className,\n size = 'md',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive> & {\n size?: 'sm' | 'md' | 'lg'\n}) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(commandVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction CommandModal({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = true,\n size = 'md',\n ...props\n}: React.ComponentProps<typeof Modal> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n size?: 'sm' | 'md' | 'lg'\n}) {\n return (\n <Modal {...props}>\n <ModalHeader className=\"sr-only\">\n <ModalTitle>{title}</ModalTitle>\n <ModalDescription>{description}</ModalDescription>\n </ModalHeader>\n <ModalContent\n className={cn('overflow-hidden p-0', className)}\n showCloseButton={showCloseButton}\n >\n <Command\n size={size}\n className=\"[&_[cmdk-group-heading]]:text-text-muted [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0\"\n >\n {children}\n </Command>\n </ModalContent>\n </Modal>\n )\n}\n\nconst commandInputVariants = cva(\n 'flex w-full bg-transparent outline-hidden disabled:cursor-not-allowed disabled:opacity-50 placeholder:text-text-muted text-text-primary',\n {\n variants: {\n size: {\n sm: 'h-8 py-2 text-sm',\n md: 'h-10 py-3 text-base',\n lg: 'h-12 py-4 text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst commandInputWrapperVariants = cva(\n 'flex items-center gap-2 border-b border-border px-3',\n {\n variants: {\n size: {\n sm: 'h-8',\n md: 'h-10',\n lg: 'h-12',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nfunction CommandInput({\n className,\n size = 'md',\n ...props\n}: Omit<React.ComponentProps<typeof CommandPrimitive.Input>, 'size'> & {\n size?: CommandSize\n}) {\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className={commandInputWrapperVariants({ size })}\n >\n <SearchIcon\n className={cn('shrink-0 opacity-50 text-text-muted', iconSizes[size])}\n />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(commandInputVariants({ size }), className)}\n {...props}\n />\n </div>\n )\n}\n\nconst commandListVariants = cva(\n 'scroll-py-1 overflow-x-hidden overflow-y-auto',\n {\n variants: {\n size: {\n sm: 'max-h-[200px]',\n md: 'max-h-[300px]',\n lg: 'max-h-[400px]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nfunction CommandList({\n className,\n size = 'md',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List> & {\n size?: 'sm' | 'md' | 'lg'\n}) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(commandListVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nconst commandEmptyVariants = cva('text-center text-text-muted', {\n variants: {\n size: {\n sm: 'py-4 text-xs',\n md: 'py-6 text-sm',\n lg: 'py-8 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nfunction CommandEmpty({\n size = 'md',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty> & {\n size?: 'sm' | 'md' | 'lg'\n}) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={commandEmptyVariants({ size })}\n {...props}\n />\n )\n}\n\nconst commandGroupVariants = cva(\n 'overflow-hidden text-text-primary [&_[cmdk-group-heading]]:text-text-muted [&_[cmdk-group-heading]]:font-medium',\n {\n variants: {\n size: {\n sm: 'p-0.5 [&_[cmdk-group-heading]]:px-1.5 [&_[cmdk-group-heading]]:py-1 [&_[cmdk-group-heading]]:text-[10px]',\n md: 'p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs',\n lg: 'p-1.5 [&_[cmdk-group-heading]]:px-3 [&_[cmdk-group-heading]]:py-2 [&_[cmdk-group-heading]]:text-sm',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nfunction CommandGroup({\n className,\n size = 'md',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group> & {\n size?: 'sm' | 'md' | 'lg'\n}) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(commandGroupVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nconst commandSeparatorVariants = cva('bg-border h-px', {\n variants: {\n size: {\n xs: '-mx-0',\n sm: '-mx-0.5',\n md: '-mx-1',\n lg: '-mx-1.5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nfunction CommandSeparator({\n className,\n size = 'md',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator> & {\n size?: 'sm' | 'md' | 'lg'\n}) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn(commandSeparatorVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nconst commandItemVariants = cva(\n \"relative flex cursor-default items-center gap-2 rounded-sm outline-hidden select-none text-text-primary data-[selected=true]:bg-primary/10 data-[selected=true]:text-primary data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-text-muted transition-colors\",\n {\n variants: {\n size: {\n sm: \"px-1.5 py-1 text-xs gap-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n md: \"px-2 py-1.5 text-sm gap-2 [&_svg:not([class*='size-'])]:size-4\",\n lg: \"px-3 py-2 text-base gap-2.5 [&_svg:not([class*='size-'])]:size-5\",\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nfunction CommandItem({\n className,\n size = 'md',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item> & {\n size?: 'sm' | 'md' | 'lg'\n}) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(commandItemVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nconst commandShortcutVariants = cva(\n 'ml-auto tracking-widest text-text-muted opacity-60',\n {\n variants: {\n size: {\n sm: 'text-[10px]',\n md: 'text-xs',\n lg: 'text-sm',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nfunction CommandShortcut({\n className,\n size = 'md',\n ...props\n}: React.ComponentProps<'span'> & {\n size?: 'sm' | 'md' | 'lg'\n}) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(commandShortcutVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nexport type * from './types'\nexport {\n Command,\n CommandModal,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n"]}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { cva } from 'class-variance-authority';
|
|
2
|
+
|
|
3
|
+
// src/variants.ts
|
|
4
|
+
var componentColors = [
|
|
5
|
+
"default",
|
|
6
|
+
"primary",
|
|
7
|
+
"secondary",
|
|
8
|
+
"accent",
|
|
9
|
+
"success",
|
|
10
|
+
"error",
|
|
11
|
+
"warning",
|
|
12
|
+
"info"
|
|
13
|
+
];
|
|
14
|
+
var buttonColors = [
|
|
15
|
+
"primary",
|
|
16
|
+
"secondary",
|
|
17
|
+
"accent",
|
|
18
|
+
"success",
|
|
19
|
+
"error",
|
|
20
|
+
"warning",
|
|
21
|
+
"info"
|
|
22
|
+
];
|
|
23
|
+
function createDefaultColorVariants(colors) {
|
|
24
|
+
return colors.map((color) => ({
|
|
25
|
+
variant: "default",
|
|
26
|
+
color,
|
|
27
|
+
class: color === "default" ? "bg-background border border-border text-text-primary" : `bg-background border border-${color} text-text-primary`
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
function createSolidColorVariants(colors) {
|
|
31
|
+
return colors.map((color) => ({
|
|
32
|
+
variant: "solid",
|
|
33
|
+
color,
|
|
34
|
+
class: color === "default" ? "bg-surface border border-border text-text-primary" : `bg-${color} text-background hover:bg-${color}/90`
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
function createOutlineColorVariants(colors) {
|
|
38
|
+
return colors.map((color) => ({
|
|
39
|
+
variant: "outline",
|
|
40
|
+
color,
|
|
41
|
+
class: color === "default" ? "border border-border text-text-primary" : `border border-${color} text-${color} hover:bg-${color}/10`
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
function createSoftColorVariants(colors) {
|
|
45
|
+
return colors.map((color) => ({
|
|
46
|
+
variant: "soft",
|
|
47
|
+
color,
|
|
48
|
+
class: color === "default" ? "bg-surface border border-border text-text-primary" : `bg-${color}/10 text-${color}`
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
function createDashedColorVariants(colors) {
|
|
52
|
+
return colors.map((color) => ({
|
|
53
|
+
variant: "dashed",
|
|
54
|
+
color,
|
|
55
|
+
class: color === "default" ? "border-dashed border-border text-text-primary" : `border-dashed border-${color} text-${color} hover:bg-${color}/10`
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
function createLinkColorVariants(colors) {
|
|
59
|
+
return colors.map((color) => ({
|
|
60
|
+
variant: "link",
|
|
61
|
+
color,
|
|
62
|
+
class: color === "default" ? "text-text-primary hover:text-text-primary/80" : `text-${color} hover:text-${color}/80`
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
function createGhostColorVariants(colors) {
|
|
66
|
+
return colors.map((color) => ({
|
|
67
|
+
variant: "ghost",
|
|
68
|
+
color,
|
|
69
|
+
class: color === "default" ? "text-text-primary hover:bg-surface" : `text-${color} hover:bg-${color}/10`
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
function createAllColorVariants(colors, variants) {
|
|
73
|
+
const variantGenerators = {
|
|
74
|
+
default: createDefaultColorVariants,
|
|
75
|
+
solid: createSolidColorVariants,
|
|
76
|
+
outline: createOutlineColorVariants,
|
|
77
|
+
soft: createSoftColorVariants,
|
|
78
|
+
dashed: createDashedColorVariants,
|
|
79
|
+
link: createLinkColorVariants,
|
|
80
|
+
ghost: createGhostColorVariants
|
|
81
|
+
};
|
|
82
|
+
return variants.flatMap(
|
|
83
|
+
(variant) => variantGenerators[variant](
|
|
84
|
+
colors
|
|
85
|
+
)
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
var iconColorClasses = {
|
|
89
|
+
primary: "text-primary",
|
|
90
|
+
secondary: "text-secondary",
|
|
91
|
+
accent: "text-accent",
|
|
92
|
+
success: "text-success",
|
|
93
|
+
error: "text-error",
|
|
94
|
+
warning: "text-warning",
|
|
95
|
+
info: "text-info"
|
|
96
|
+
};
|
|
97
|
+
function getIconColorClass(color) {
|
|
98
|
+
return iconColorClasses[color];
|
|
99
|
+
}
|
|
100
|
+
var textColorVariants = cva("", {
|
|
101
|
+
variants: {
|
|
102
|
+
color: {
|
|
103
|
+
default: "text-text-primary",
|
|
104
|
+
primary: "text-primary",
|
|
105
|
+
secondary: "text-secondary",
|
|
106
|
+
accent: "text-accent",
|
|
107
|
+
success: "text-success",
|
|
108
|
+
error: "text-error",
|
|
109
|
+
warning: "text-warning",
|
|
110
|
+
info: "text-info"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
defaultVariants: {
|
|
114
|
+
color: "default"
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
var componentSizeVariants = {
|
|
118
|
+
sm: "sm",
|
|
119
|
+
md: "md",
|
|
120
|
+
lg: "lg",
|
|
121
|
+
xl: "xl"
|
|
122
|
+
};
|
|
123
|
+
var extendedComponentSizeVariants = {
|
|
124
|
+
xs: "xs",
|
|
125
|
+
sm: "sm",
|
|
126
|
+
md: "md",
|
|
127
|
+
lg: "lg",
|
|
128
|
+
xl: "xl"
|
|
129
|
+
};
|
|
130
|
+
var commonSpacing = {
|
|
131
|
+
"0.5": "0.125rem",
|
|
132
|
+
// 2px
|
|
133
|
+
"1": "0.25rem",
|
|
134
|
+
// 4px
|
|
135
|
+
"1.5": "0.375rem",
|
|
136
|
+
// 6px
|
|
137
|
+
"2": "0.5rem",
|
|
138
|
+
// 8px
|
|
139
|
+
"2.5": "0.625rem",
|
|
140
|
+
// 10px
|
|
141
|
+
"3": "0.75rem",
|
|
142
|
+
// 12px
|
|
143
|
+
"4": "1rem",
|
|
144
|
+
// 16px
|
|
145
|
+
"5": "1.25rem",
|
|
146
|
+
// 20px
|
|
147
|
+
"6": "1.5rem",
|
|
148
|
+
// 24px
|
|
149
|
+
"8": "2rem"
|
|
150
|
+
// 32px
|
|
151
|
+
};
|
|
152
|
+
function getAccordionColorClass(color, variant) {
|
|
153
|
+
const colorMap = {
|
|
154
|
+
default: {
|
|
155
|
+
default: "border-border bg-background text-text-primary hover:bg-surface",
|
|
156
|
+
solid: "border-border bg-surface text-text-primary hover:bg-surface/80",
|
|
157
|
+
soft: "border-border bg-surface/50 text-text-primary hover:bg-surface/70"
|
|
158
|
+
},
|
|
159
|
+
primary: {
|
|
160
|
+
default: "border-primary bg-background text-text-primary hover:bg-primary/5",
|
|
161
|
+
solid: "border-primary bg-primary text-background hover:bg-primary/90",
|
|
162
|
+
soft: "border-primary bg-primary/10 text-text-primary hover:bg-primary/20"
|
|
163
|
+
},
|
|
164
|
+
secondary: {
|
|
165
|
+
default: "border-secondary bg-background text-text-primary hover:bg-secondary/5",
|
|
166
|
+
solid: "border-secondary bg-secondary text-background hover:bg-secondary/90",
|
|
167
|
+
soft: "border-secondary bg-secondary/10 text-text-primary hover:bg-secondary/20"
|
|
168
|
+
},
|
|
169
|
+
accent: {
|
|
170
|
+
default: "border-accent bg-background text-text-primary hover:bg-accent/5",
|
|
171
|
+
solid: "border-accent bg-accent text-background hover:bg-accent/90",
|
|
172
|
+
soft: "border-accent bg-accent/10 text-text-primary hover:bg-accent/20"
|
|
173
|
+
},
|
|
174
|
+
success: {
|
|
175
|
+
default: "border-success bg-background text-text-primary hover:bg-success/5",
|
|
176
|
+
solid: "border-success bg-success text-background hover:bg-success/90",
|
|
177
|
+
soft: "border-success bg-success/10 text-text-primary hover:bg-success/20"
|
|
178
|
+
},
|
|
179
|
+
error: {
|
|
180
|
+
default: "border-error bg-background text-text-primary hover:bg-error/5",
|
|
181
|
+
solid: "border-error bg-error text-background hover:bg-error/90",
|
|
182
|
+
soft: "border-error bg-error/10 text-text-primary hover:bg-error/20"
|
|
183
|
+
},
|
|
184
|
+
warning: {
|
|
185
|
+
default: "border-warning bg-background text-text-primary hover:bg-warning/5",
|
|
186
|
+
solid: "border-warning bg-warning text-background hover:bg-warning/90",
|
|
187
|
+
soft: "border-warning bg-warning/10 text-text-primary hover:bg-warning/20"
|
|
188
|
+
},
|
|
189
|
+
info: {
|
|
190
|
+
default: "border-info bg-background text-text-primary hover:bg-info/5",
|
|
191
|
+
solid: "border-info bg-info text-background hover:bg-info/90",
|
|
192
|
+
soft: "border-info bg-info/10 text-text-primary hover:bg-info/20"
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
return colorMap[color][variant];
|
|
196
|
+
}
|
|
197
|
+
function getCheckboxColorClass(color) {
|
|
198
|
+
const colorMap = {
|
|
199
|
+
primary: "bg-primary border-primary",
|
|
200
|
+
secondary: "bg-secondary border-secondary",
|
|
201
|
+
accent: "bg-accent border-accent",
|
|
202
|
+
success: "bg-success border-success",
|
|
203
|
+
error: "bg-error border-error",
|
|
204
|
+
warning: "bg-warning border-warning",
|
|
205
|
+
info: "bg-info border-info"
|
|
206
|
+
};
|
|
207
|
+
return colorMap[color];
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
export { buttonColors, commonSpacing, componentColors, componentSizeVariants, createAllColorVariants, createDashedColorVariants, createDefaultColorVariants, createGhostColorVariants, createLinkColorVariants, createOutlineColorVariants, createSoftColorVariants, createSolidColorVariants, extendedComponentSizeVariants, getAccordionColorClass, getCheckboxColorClass, getIconColorClass, iconColorClasses, textColorVariants };
|
|
211
|
+
//# sourceMappingURL=chunk-5UEWVFF6.js.map
|
|
212
|
+
//# sourceMappingURL=chunk-5UEWVFF6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/variants.ts"],"names":[],"mappings":"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","file":"chunk-5UEWVFF6.js","sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\n\nimport type { ButtonColor, ComponentColor } from './types'\n\n// ============================================================================\n// Color Variant Generators\n// ============================================================================\n\n/**\n * Color palette for component variants\n * Maps to Tailwind CSS v4 theme variables (--color-primary, --color-secondary, etc.)\n */\nexport const componentColors = [\n 'default',\n 'primary',\n 'secondary',\n 'accent',\n 'success',\n 'error',\n 'warning',\n 'info',\n] as const\n\nexport const buttonColors = [\n 'primary',\n 'secondary',\n 'accent',\n 'success',\n 'error',\n 'warning',\n 'info',\n] as const\n\n/**\n * Generates compound variants for default style\n * Used by: Badge, Toast, and other components\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createDefaultColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'default' as const,\n color: color as ComponentColor | ButtonColor,\n class:\n color === 'default'\n ? 'bg-background border border-border text-text-primary'\n : `bg-background border border-${color} text-text-primary`,\n }))\n}\n\n/**\n * Generates compound variants for solid color style\n * Used by: Button, Badge, Accordion, Toast\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor | ButtonColor,\n class:\n color === 'default'\n ? 'bg-surface border border-border text-text-primary'\n : `bg-${color} text-background hover:bg-${color}/90`,\n }))\n}\n\n/**\n * Generates compound variants for outline color style\n * Used by: Button, Badge, Accordion\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createOutlineColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'outline' as const,\n color: color as ComponentColor | ButtonColor,\n class:\n color === 'default'\n ? 'border border-border text-text-primary'\n : `border border-${color} text-${color} hover:bg-${color}/10`,\n }))\n}\n\n/**\n * Generates compound variants for soft/subtle color style\n * Used by: Badge, Accordion, Toast\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor | ButtonColor,\n class:\n color === 'default'\n ? 'bg-surface border border-border text-text-primary'\n : `bg-${color}/10 text-${color}`,\n }))\n}\n\n/**\n * Generates compound variants for dashed border color style\n * Used by: Button\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createDashedColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'dashed' as const,\n color: color as ComponentColor | ButtonColor,\n class:\n color === 'default'\n ? 'border-dashed border-border text-text-primary'\n : `border-dashed border-${color} text-${color} hover:bg-${color}/10`,\n }))\n}\n\n/**\n * Generates compound variants for link/text-only color style\n * Used by: Button, Breadcrumbs\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createLinkColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'link' as const,\n color: color as ComponentColor | ButtonColor,\n class:\n color === 'default'\n ? 'text-text-primary hover:text-text-primary/80'\n : `text-${color} hover:text-${color}/80`,\n }))\n}\n\n/**\n * Generates compound variants for ghost (borderless) color style\n * Used by: Button, Table\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createGhostColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'ghost' as const,\n color: color as ComponentColor | ButtonColor,\n class:\n color === 'default'\n ? 'text-text-primary hover:bg-surface'\n : `text-${color} hover:bg-${color}/10`,\n }))\n}\n\n/**\n * Complete color variant generator for components with multiple style variants\n * Combines all color variant generators into a single array\n *\n * @example\n * const buttonVariants = cva(\"base-classes\", {\n * variants: {\n * variant: { solid: \"\", outline: \"\", ghost: \"\" },\n * color: { primary: \"\", secondary: \"\", ... }\n * },\n * compoundVariants: createAllColorVariants(buttonColors, ['solid', 'outline', 'ghost'])\n * })\n */\nexport function createAllColorVariants(\n colors: readonly string[],\n variants: Array<\n 'default' | 'solid' | 'outline' | 'soft' | 'dashed' | 'link' | 'ghost'\n >,\n): any {\n const variantGenerators = {\n default: createDefaultColorVariants,\n solid: createSolidColorVariants,\n outline: createOutlineColorVariants,\n soft: createSoftColorVariants,\n dashed: createDashedColorVariants,\n link: createLinkColorVariants,\n ghost: createGhostColorVariants,\n }\n\n return variants.flatMap(\n (variant) =>\n variantGenerators[variant as keyof typeof variantGenerators](\n colors,\n ) as any,\n )\n}\n\n// ============================================================================\n// Shared Icon Variants\n// ============================================================================\n\n/**\n * Icon color variants mapped to component colors\n * Used by: Checkbox, Radio, and other components with colored icons\n *\n * Maps to Tailwind utilities: text-primary, text-secondary, etc.\n * Generated from theme variables: --color-primary, --color-secondary, etc.\n */\nexport const iconColorClasses = {\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n} as const\n\n/**\n * Helper to get icon color class for a given color\n */\nexport function getIconColorClass(color: ButtonColor): string {\n return iconColorClasses[color]\n}\n\n// ============================================================================\n// Shared Text Color Variants\n// ============================================================================\n\n/**\n * Text-only color variants (no background)\n * Used by: Breadcrumbs, Text components, Labels\n */\nexport const textColorVariants = cva('', {\n variants: {\n color: {\n default: 'text-text-primary',\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n },\n },\n defaultVariants: {\n color: 'default',\n },\n})\n\nexport type TextColorVariants = VariantProps<typeof textColorVariants>\n\n// ============================================================================\n// Shared Size Variants\n// ============================================================================\n\n/**\n * Standard component size scale (4 sizes)\n * Used by: Button, Input, Select, Textarea, most form components\n */\nexport const componentSizeVariants = {\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n xl: 'xl',\n} as const\n\n/**\n * Extended component size scale (5 sizes)\n * Used by: Components that need extra small sizing\n */\nexport const extendedComponentSizeVariants = {\n xs: 'xs',\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n xl: 'xl',\n} as const\n\n// ============================================================================\n// Shared Spacing Utilities\n// ============================================================================\n\n/**\n * Common spacing values for consistent gaps, padding, and margins\n * Maps to Tailwind spacing scale\n *\n * Note: These are standard Tailwind values. For component-specific spacing,\n * use CSS custom properties defined in index.css (e.g., --button-padding-x-sm)\n */\nexport const commonSpacing = {\n '0.5': '0.125rem', // 2px\n '1': '0.25rem', // 4px\n '1.5': '0.375rem', // 6px\n '2': '0.5rem', // 8px\n '2.5': '0.625rem', // 10px\n '3': '0.75rem', // 12px\n '4': '1rem', // 16px\n '5': '1.25rem', // 20px\n '6': '1.5rem', // 24px\n '8': '2rem', // 32px\n} as const\n\n// ============================================================================\n// Component-Specific Variant Generators\n// ============================================================================\n\n/**\n * Accordion color style generator\n * Generates variant, color, and hover state combinations\n *\n * @param color - Component color\n * @param variant - Style variant (default, solid, soft)\n * @returns Combined class string\n */\nexport function getAccordionColorClass(\n color: ComponentColor,\n variant: 'default' | 'solid' | 'soft',\n): string {\n const colorMap = {\n default: {\n default: 'border-border bg-background text-text-primary hover:bg-surface',\n solid: 'border-border bg-surface text-text-primary hover:bg-surface/80',\n soft: 'border-border bg-surface/50 text-text-primary hover:bg-surface/70',\n },\n primary: {\n default:\n 'border-primary bg-background text-text-primary hover:bg-primary/5',\n solid: 'border-primary bg-primary text-background hover:bg-primary/90',\n soft: 'border-primary bg-primary/10 text-text-primary hover:bg-primary/20',\n },\n secondary: {\n default:\n 'border-secondary bg-background text-text-primary hover:bg-secondary/5',\n solid:\n 'border-secondary bg-secondary text-background hover:bg-secondary/90',\n soft: 'border-secondary bg-secondary/10 text-text-primary hover:bg-secondary/20',\n },\n accent: {\n default:\n 'border-accent bg-background text-text-primary hover:bg-accent/5',\n solid: 'border-accent bg-accent text-background hover:bg-accent/90',\n soft: 'border-accent bg-accent/10 text-text-primary hover:bg-accent/20',\n },\n success: {\n default:\n 'border-success bg-background text-text-primary hover:bg-success/5',\n solid: 'border-success bg-success text-background hover:bg-success/90',\n soft: 'border-success bg-success/10 text-text-primary hover:bg-success/20',\n },\n error: {\n default: 'border-error bg-background text-text-primary hover:bg-error/5',\n solid: 'border-error bg-error text-background hover:bg-error/90',\n soft: 'border-error bg-error/10 text-text-primary hover:bg-error/20',\n },\n warning: {\n default:\n 'border-warning bg-background text-text-primary hover:bg-warning/5',\n solid: 'border-warning bg-warning text-background hover:bg-warning/90',\n soft: 'border-warning bg-warning/10 text-text-primary hover:bg-warning/20',\n },\n info: {\n default: 'border-info bg-background text-text-primary hover:bg-info/5',\n solid: 'border-info bg-info text-background hover:bg-info/90',\n soft: 'border-info bg-info/10 text-text-primary hover:bg-info/20',\n },\n }\n\n return colorMap[color][variant]\n}\n\n/**\n * Checkbox/Radio indeterminate/checked state color generator\n * Generates background color for checked state with proper contrast\n *\n * @param color - Component color\n * @returns Background class string\n */\nexport function getCheckboxColorClass(color: ButtonColor): string {\n const colorMap = {\n primary: 'bg-primary border-primary',\n secondary: 'bg-secondary border-secondary',\n accent: 'bg-accent border-accent',\n success: 'bg-success border-success',\n error: 'bg-error border-error',\n warning: 'bg-warning border-warning',\n info: 'bg-info border-info',\n }\n\n return colorMap[color]\n}\n\n// ============================================================================\n// Export Usage Note\n// ============================================================================\n\n/**\n * To use these utilities in your components:\n *\n * @example Button component\n * import { createAllColorVariants, buttonColors } from \"../variants\";\n * compoundVariants: createAllColorVariants(buttonColors, ['solid', 'outline', 'dashed', 'link', 'ghost'])\n *\n * @example Badge component\n * import { createAllColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createAllColorVariants(componentColors, ['solid', 'outline', 'soft'])\n */\n"]}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
import { cn } from './chunk-YNNAOXU5.js';
|
|
2
|
+
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { XIcon } from 'lucide-react';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
function Modal({
|
|
9
|
+
...props
|
|
10
|
+
}) {
|
|
11
|
+
return /* @__PURE__ */ jsx(
|
|
12
|
+
DialogPrimitive.Root,
|
|
13
|
+
{
|
|
14
|
+
"data-slot": "modal",
|
|
15
|
+
...props
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
function ModalTrigger({
|
|
20
|
+
...props
|
|
21
|
+
}) {
|
|
22
|
+
return /* @__PURE__ */ jsx(
|
|
23
|
+
DialogPrimitive.Trigger,
|
|
24
|
+
{
|
|
25
|
+
"data-slot": "modal-trigger",
|
|
26
|
+
...props
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
function ModalPortal({
|
|
31
|
+
...props
|
|
32
|
+
}) {
|
|
33
|
+
return /* @__PURE__ */ jsx(
|
|
34
|
+
DialogPrimitive.Portal,
|
|
35
|
+
{
|
|
36
|
+
"data-slot": "modal-portal",
|
|
37
|
+
...props
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
function ModalClose({
|
|
42
|
+
...props
|
|
43
|
+
}) {
|
|
44
|
+
return /* @__PURE__ */ jsx(
|
|
45
|
+
DialogPrimitive.Close,
|
|
46
|
+
{
|
|
47
|
+
"data-slot": "modal-close",
|
|
48
|
+
...props
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
var modalOverlayVariants = cva(
|
|
53
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/20 backdrop-blur-sm",
|
|
54
|
+
{
|
|
55
|
+
variants: {
|
|
56
|
+
opacity: {
|
|
57
|
+
light: "bg-opacity-30",
|
|
58
|
+
medium: "bg-opacity-50",
|
|
59
|
+
heavy: "bg-opacity-70"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
defaultVariants: {
|
|
63
|
+
opacity: "medium"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
function ModalOverlay({
|
|
68
|
+
className,
|
|
69
|
+
opacity = "medium",
|
|
70
|
+
...props
|
|
71
|
+
}) {
|
|
72
|
+
return /* @__PURE__ */ jsx(
|
|
73
|
+
DialogPrimitive.Overlay,
|
|
74
|
+
{
|
|
75
|
+
"data-slot": "modal-overlay",
|
|
76
|
+
className: cn(modalOverlayVariants({ opacity }), className),
|
|
77
|
+
...props
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
var modalContentVariants = cva(
|
|
82
|
+
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] rounded-md border duration-200",
|
|
83
|
+
{
|
|
84
|
+
variants: {
|
|
85
|
+
size: {
|
|
86
|
+
xs: "max-w-xs gap-3 p-4 sm:max-w-xs",
|
|
87
|
+
sm: "max-w-sm gap-3 p-4 sm:max-w-sm",
|
|
88
|
+
md: "max-w-md gap-4 p-6 sm:max-w-md",
|
|
89
|
+
lg: "max-w-lg gap-5 p-8 sm:max-w-lg"
|
|
90
|
+
},
|
|
91
|
+
color: {
|
|
92
|
+
default: "border-border",
|
|
93
|
+
primary: "border-primary border-l-4",
|
|
94
|
+
secondary: "border-secondary border-l-4",
|
|
95
|
+
accent: "border-accent border-l-4",
|
|
96
|
+
success: "border-success border-l-4",
|
|
97
|
+
error: "border-error border-l-4",
|
|
98
|
+
warning: "border-warning border-l-4",
|
|
99
|
+
info: "border-info border-l-4"
|
|
100
|
+
},
|
|
101
|
+
centered: {
|
|
102
|
+
true: "text-center",
|
|
103
|
+
false: ""
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
defaultVariants: {
|
|
107
|
+
size: "md",
|
|
108
|
+
color: "default",
|
|
109
|
+
centered: false
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
var modalCloseVariants = cva(
|
|
114
|
+
"absolute right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:pointer-events-none text-text-muted hover:text-text-primary [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
115
|
+
{
|
|
116
|
+
variants: {
|
|
117
|
+
size: {
|
|
118
|
+
xs: "top-3 [&_svg]:size-3.5",
|
|
119
|
+
sm: "top-3 [&_svg]:size-3.5",
|
|
120
|
+
md: "top-4 [&_svg]:size-4",
|
|
121
|
+
lg: "top-6 [&_svg]:size-5"
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
defaultVariants: {
|
|
125
|
+
size: "md"
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
);
|
|
129
|
+
function ModalContent({
|
|
130
|
+
className,
|
|
131
|
+
children,
|
|
132
|
+
showCloseButton = true,
|
|
133
|
+
size = "md",
|
|
134
|
+
color = "default",
|
|
135
|
+
centered = false,
|
|
136
|
+
...props
|
|
137
|
+
}) {
|
|
138
|
+
return /* @__PURE__ */ jsxs(ModalPortal, { "data-slot": "modal-portal", children: [
|
|
139
|
+
/* @__PURE__ */ jsx(ModalOverlay, {}),
|
|
140
|
+
/* @__PURE__ */ jsxs(
|
|
141
|
+
DialogPrimitive.Content,
|
|
142
|
+
{
|
|
143
|
+
"data-slot": "modal-content",
|
|
144
|
+
className: cn(
|
|
145
|
+
modalContentVariants({ size, color, centered }),
|
|
146
|
+
className
|
|
147
|
+
),
|
|
148
|
+
...props,
|
|
149
|
+
children: [
|
|
150
|
+
children,
|
|
151
|
+
showCloseButton && /* @__PURE__ */ jsxs(
|
|
152
|
+
DialogPrimitive.Close,
|
|
153
|
+
{
|
|
154
|
+
"data-slot": "modal-close",
|
|
155
|
+
className: modalCloseVariants({ size }),
|
|
156
|
+
children: [
|
|
157
|
+
/* @__PURE__ */ jsx(XIcon, {}),
|
|
158
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
)
|
|
162
|
+
]
|
|
163
|
+
}
|
|
164
|
+
)
|
|
165
|
+
] });
|
|
166
|
+
}
|
|
167
|
+
var modalHeaderVariants = cva("flex flex-col text-text-primary", {
|
|
168
|
+
variants: {
|
|
169
|
+
size: {
|
|
170
|
+
xs: "gap-1.5",
|
|
171
|
+
sm: "gap-1.5",
|
|
172
|
+
md: "gap-2",
|
|
173
|
+
lg: "gap-3"
|
|
174
|
+
},
|
|
175
|
+
color: {
|
|
176
|
+
default: "",
|
|
177
|
+
primary: "border-l-primary",
|
|
178
|
+
secondary: "border-l-secondary",
|
|
179
|
+
success: "border-l-success",
|
|
180
|
+
error: "border-l-error",
|
|
181
|
+
accent: "border-l-accent",
|
|
182
|
+
warning: "border-l-warning",
|
|
183
|
+
info: "border-l-info"
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
defaultVariants: {
|
|
187
|
+
size: "md",
|
|
188
|
+
color: "default"
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
var ModalHeader = React.memo(function ModalHeader2({
|
|
192
|
+
className,
|
|
193
|
+
size = "md",
|
|
194
|
+
color = "default",
|
|
195
|
+
...props
|
|
196
|
+
}) {
|
|
197
|
+
return /* @__PURE__ */ jsx(
|
|
198
|
+
"div",
|
|
199
|
+
{
|
|
200
|
+
"data-slot": "modal-header",
|
|
201
|
+
className: cn(modalHeaderVariants({ size, color }), className),
|
|
202
|
+
...props
|
|
203
|
+
}
|
|
204
|
+
);
|
|
205
|
+
});
|
|
206
|
+
var modalFooterVariants = cva(
|
|
207
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end",
|
|
208
|
+
{
|
|
209
|
+
variants: {
|
|
210
|
+
size: {
|
|
211
|
+
xs: "gap-1.5",
|
|
212
|
+
sm: "gap-1.5",
|
|
213
|
+
md: "gap-2",
|
|
214
|
+
lg: "gap-3"
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
defaultVariants: {
|
|
218
|
+
size: "md"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
);
|
|
222
|
+
var ModalFooter = React.memo(function ModalFooter2({ className, size = "md", ...props }) {
|
|
223
|
+
return /* @__PURE__ */ jsx(
|
|
224
|
+
"div",
|
|
225
|
+
{
|
|
226
|
+
"data-slot": "modal-footer",
|
|
227
|
+
className: cn(modalFooterVariants({ size }), className),
|
|
228
|
+
...props
|
|
229
|
+
}
|
|
230
|
+
);
|
|
231
|
+
});
|
|
232
|
+
var modalTitleVariants = cva("leading-none font-semibold text-text-primary", {
|
|
233
|
+
variants: {
|
|
234
|
+
size: {
|
|
235
|
+
xs: "text-base",
|
|
236
|
+
sm: "text-base",
|
|
237
|
+
md: "text-lg",
|
|
238
|
+
lg: "text-2xl"
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
defaultVariants: {
|
|
242
|
+
size: "md"
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
var ModalTitle = React.memo(function ModalTitle2({ className, size = "md", ...props }) {
|
|
246
|
+
return /* @__PURE__ */ jsx(
|
|
247
|
+
DialogPrimitive.Title,
|
|
248
|
+
{
|
|
249
|
+
"data-slot": "modal-title",
|
|
250
|
+
className: cn(modalTitleVariants({ size }), className),
|
|
251
|
+
...props
|
|
252
|
+
}
|
|
253
|
+
);
|
|
254
|
+
});
|
|
255
|
+
var modalDescriptionVariants = cva("text-text-muted", {
|
|
256
|
+
variants: {
|
|
257
|
+
size: {
|
|
258
|
+
xs: "text-xs",
|
|
259
|
+
sm: "text-xs",
|
|
260
|
+
md: "text-sm",
|
|
261
|
+
lg: "text-base"
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
defaultVariants: {
|
|
265
|
+
size: "md"
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
var ModalDescription = React.memo(function ModalDescription2({ className, size = "md", ...props }) {
|
|
269
|
+
return /* @__PURE__ */ jsx(
|
|
270
|
+
DialogPrimitive.Description,
|
|
271
|
+
{
|
|
272
|
+
"data-slot": "modal-description",
|
|
273
|
+
className: cn(modalDescriptionVariants({ size }), className),
|
|
274
|
+
...props
|
|
275
|
+
}
|
|
276
|
+
);
|
|
277
|
+
});
|
|
278
|
+
function ComposedModal({
|
|
279
|
+
open,
|
|
280
|
+
onOpenChange,
|
|
281
|
+
title,
|
|
282
|
+
description,
|
|
283
|
+
children,
|
|
284
|
+
footer,
|
|
285
|
+
size = "md",
|
|
286
|
+
color = "default",
|
|
287
|
+
centered = false,
|
|
288
|
+
showCloseButton = true,
|
|
289
|
+
hideHeader = false,
|
|
290
|
+
hideFooter = false,
|
|
291
|
+
className,
|
|
292
|
+
contentClassName
|
|
293
|
+
}) {
|
|
294
|
+
return /* @__PURE__ */ jsx(
|
|
295
|
+
Modal,
|
|
296
|
+
{
|
|
297
|
+
open,
|
|
298
|
+
onOpenChange,
|
|
299
|
+
children: /* @__PURE__ */ jsxs(
|
|
300
|
+
ModalContent,
|
|
301
|
+
{
|
|
302
|
+
size,
|
|
303
|
+
color,
|
|
304
|
+
centered,
|
|
305
|
+
showCloseButton,
|
|
306
|
+
className: contentClassName,
|
|
307
|
+
children: [
|
|
308
|
+
!hideHeader && (title || description) && /* @__PURE__ */ jsxs(
|
|
309
|
+
ModalHeader,
|
|
310
|
+
{
|
|
311
|
+
size,
|
|
312
|
+
color,
|
|
313
|
+
className,
|
|
314
|
+
children: [
|
|
315
|
+
title && /* @__PURE__ */ jsx(ModalTitle, { size, children: title }),
|
|
316
|
+
description && /* @__PURE__ */ jsx(ModalDescription, { size, children: description })
|
|
317
|
+
]
|
|
318
|
+
}
|
|
319
|
+
),
|
|
320
|
+
children,
|
|
321
|
+
!hideFooter && footer && /* @__PURE__ */ jsx(ModalFooter, { size, children: footer })
|
|
322
|
+
]
|
|
323
|
+
}
|
|
324
|
+
)
|
|
325
|
+
}
|
|
326
|
+
);
|
|
327
|
+
}
|
|
328
|
+
var modal_default = ComposedModal;
|
|
329
|
+
|
|
330
|
+
export { Modal, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, modal_default };
|
|
331
|
+
//# sourceMappingURL=chunk-5VCGW53O.js.map
|
|
332
|
+
//# sourceMappingURL=chunk-5VCGW53O.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/modal/index.tsx"],"names":["ModalHeader","ModalFooter","ModalTitle","ModalDescription"],"mappings":"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","file":"chunk-5VCGW53O.js","sourcesContent":["import * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { cva } from 'class-variance-authority'\nimport { XIcon } from 'lucide-react'\nimport * as React from 'react'\n\nimport { cn } from '../utils'\nimport type { ComposedModalProps, ModalColor, ModalSize } from './types'\n\nfunction Modal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return (\n <DialogPrimitive.Root\n data-slot=\"modal\"\n {...props}\n />\n )\n}\n\nfunction ModalTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return (\n <DialogPrimitive.Trigger\n data-slot=\"modal-trigger\"\n {...props}\n />\n )\n}\n\nfunction ModalPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return (\n <DialogPrimitive.Portal\n data-slot=\"modal-portal\"\n {...props}\n />\n )\n}\n\nfunction ModalClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return (\n <DialogPrimitive.Close\n data-slot=\"modal-close\"\n {...props}\n />\n )\n}\n\nconst modalOverlayVariants = cva(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/20 backdrop-blur-sm',\n {\n variants: {\n opacity: {\n light: 'bg-opacity-30',\n medium: 'bg-opacity-50',\n heavy: 'bg-opacity-70',\n },\n },\n defaultVariants: {\n opacity: 'medium',\n },\n },\n)\n\nfunction ModalOverlay({\n className,\n opacity = 'medium',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay> & {\n opacity?: 'light' | 'medium' | 'heavy'\n}) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"modal-overlay\"\n className={cn(modalOverlayVariants({ opacity }), className)}\n {...props}\n />\n )\n}\n\nconst modalContentVariants = cva(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] rounded-md border duration-200',\n {\n variants: {\n size: {\n xs: 'max-w-xs gap-3 p-4 sm:max-w-xs',\n sm: 'max-w-sm gap-3 p-4 sm:max-w-sm',\n md: 'max-w-md gap-4 p-6 sm:max-w-md',\n lg: 'max-w-lg gap-5 p-8 sm:max-w-lg',\n },\n color: {\n default: 'border-border',\n primary: 'border-primary border-l-4',\n secondary: 'border-secondary border-l-4',\n accent: 'border-accent border-l-4',\n success: 'border-success border-l-4',\n error: 'border-error border-l-4',\n warning: 'border-warning border-l-4',\n info: 'border-info border-l-4',\n },\n centered: {\n true: 'text-center',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n color: 'default',\n centered: false,\n },\n },\n)\n\nconst modalCloseVariants = cva(\n 'absolute right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:pointer-events-none text-text-muted hover:text-text-primary [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n size: {\n xs: 'top-3 [&_svg]:size-3.5',\n sm: 'top-3 [&_svg]:size-3.5',\n md: 'top-4 [&_svg]:size-4',\n lg: 'top-6 [&_svg]:size-5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nfunction ModalContent({\n className,\n children,\n showCloseButton = true,\n size = 'md',\n color = 'default',\n centered = false,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n size?: ModalSize\n color?: ModalColor\n centered?: boolean\n}) {\n return (\n <ModalPortal data-slot=\"modal-portal\">\n <ModalOverlay />\n <DialogPrimitive.Content\n data-slot=\"modal-content\"\n className={cn(\n modalContentVariants({ size, color, centered }),\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"modal-close\"\n className={modalCloseVariants({ size })}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </ModalPortal>\n )\n}\n\nconst modalHeaderVariants = cva('flex flex-col text-text-primary', {\n variants: {\n size: {\n xs: 'gap-1.5',\n sm: 'gap-1.5',\n md: 'gap-2',\n lg: 'gap-3',\n },\n color: {\n default: '',\n primary: 'border-l-primary',\n secondary: 'border-l-secondary',\n success: 'border-l-success',\n error: 'border-l-error',\n accent: 'border-l-accent',\n warning: 'border-l-warning',\n info: 'border-l-info',\n },\n },\n defaultVariants: {\n size: 'md',\n color: 'default',\n },\n})\n\n// Performance optimization: Memoize Modal subcomponents to prevent unnecessary\n// re-renders when modal state changes but subcomponent props haven't changed\nconst ModalHeader = React.memo<\n React.ComponentProps<'div'> & {\n size?: ModalSize\n color?: ModalColor\n }\n>(function ModalHeader({\n className,\n size = 'md',\n color = 'default',\n ...props\n}) {\n return (\n <div\n data-slot=\"modal-header\"\n className={cn(modalHeaderVariants({ size, color }), className)}\n {...props}\n />\n )\n})\n\nconst modalFooterVariants = cva(\n 'flex flex-col-reverse sm:flex-row sm:justify-end',\n {\n variants: {\n size: {\n xs: 'gap-1.5',\n sm: 'gap-1.5',\n md: 'gap-2',\n lg: 'gap-3',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst ModalFooter = React.memo<\n React.ComponentProps<'div'> & {\n size?: ModalSize\n }\n>(function ModalFooter({ className, size = 'md', ...props }) {\n return (\n <div\n data-slot=\"modal-footer\"\n className={cn(modalFooterVariants({ size }), className)}\n {...props}\n />\n )\n})\n\nconst modalTitleVariants = cva('leading-none font-semibold text-text-primary', {\n variants: {\n size: {\n xs: 'text-base',\n sm: 'text-base',\n md: 'text-lg',\n lg: 'text-2xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst ModalTitle = React.memo<\n React.ComponentProps<typeof DialogPrimitive.Title> & {\n size?: ModalSize\n }\n>(function ModalTitle({ className, size = 'md', ...props }) {\n return (\n <DialogPrimitive.Title\n data-slot=\"modal-title\"\n className={cn(modalTitleVariants({ size }), className)}\n {...props}\n />\n )\n})\n\nconst modalDescriptionVariants = cva('text-text-muted', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst ModalDescription = React.memo<\n React.ComponentProps<typeof DialogPrimitive.Description> & {\n size?: ModalSize\n }\n>(function ModalDescription({ className, size = 'md', ...props }) {\n return (\n <DialogPrimitive.Description\n data-slot=\"modal-description\"\n className={cn(modalDescriptionVariants({ size }), className)}\n {...props}\n />\n )\n})\n\nfunction ComposedModal({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n size = 'md',\n color = 'default',\n centered = false,\n showCloseButton = true,\n hideHeader = false,\n hideFooter = false,\n className,\n contentClassName,\n}: ComposedModalProps) {\n return (\n <Modal\n open={open}\n onOpenChange={onOpenChange}\n >\n <ModalContent\n size={size}\n color={color}\n centered={centered}\n showCloseButton={showCloseButton}\n className={contentClassName}\n >\n {!hideHeader && (title || description) && (\n <ModalHeader\n size={size}\n color={color}\n className={className}\n >\n {title && <ModalTitle size={size}>{title}</ModalTitle>}\n {description && (\n <ModalDescription size={size}>{description}</ModalDescription>\n )}\n </ModalHeader>\n )}\n {children}\n {!hideFooter && footer && (\n <ModalFooter size={size}>{footer}</ModalFooter>\n )}\n </ModalContent>\n </Modal>\n )\n}\n\nexport type * from './types'\nexport {\n Modal,\n ModalClose,\n ModalContent,\n ModalDescription,\n ModalFooter,\n ModalHeader,\n ModalOverlay,\n ModalPortal,\n ModalTitle,\n ModalTrigger,\n}\nexport default ComposedModal\n"]}
|