@easy-editor/setters 0.0.5 → 0.0.6
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/dist/index.cjs +230 -281
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +225 -276
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +279 -329
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +4 -4
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/lib/utils.ts","../src/components/ui/button.tsx","../src/components/ui/popover.tsx","../src/basic/color-setter/index.tsx","../src/basic/node-id-setter/index.tsx","../src/components/ui/input.tsx","../src/basic/number-setter/index.tsx","../src/basic/rect-setter/index.tsx","../src/basic/string-setter/index.tsx","../src/components/ui/switch.tsx","../src/basic/switch-setter/index.tsx","../src/basic/upload-setter/index.tsx","../src/components/ui/collapsible.tsx","../src/group/collapse-setter/index.tsx","../src/components/ui/tabs.tsx","../src/group/tab-setter/index.tsx","../src/index.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\r\nimport { Slot } from \"@radix-ui/react-slot\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst buttonVariants = cva(\r\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\r\n destructive:\r\n \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\r\n outline:\r\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\r\n secondary:\r\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\r\n ghost:\r\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\r\n link: \"text-primary underline-offset-4 hover:underline\",\r\n },\r\n size: {\r\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\r\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\r\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\r\n icon: \"size-9\",\r\n \"icon-sm\": \"size-8\",\r\n \"icon-lg\": \"size-10\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nconst Button = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> &\r\n VariantProps<typeof buttonVariants> & {\r\n asChild?: boolean\r\n }\r\n>(({ className, variant = \"default\", size = \"default\", asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\"\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-slot=\"button\"\r\n data-variant={variant}\r\n data-size={size}\r\n className={cn(buttonVariants({ variant, size, className }))}\r\n {...props}\r\n />\r\n )\r\n})\r\nButton.displayName = \"Button\"\r\n\r\nexport { Button, buttonVariants }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nfunction Popover({\r\n ...props\r\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\r\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\r\n}\r\n\r\nfunction PopoverTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\r\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\r\n}\r\n\r\nfunction PopoverContent({\r\n className,\r\n align = \"center\",\r\n sideOffset = 4,\r\n ...props\r\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\r\n return (\r\n <PopoverPrimitive.Portal>\r\n <PopoverPrimitive.Content\r\n data-slot=\"popover-content\"\r\n align={align}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"bg-popover text-popover-foreground 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </PopoverPrimitive.Portal>\r\n )\r\n}\r\n\r\nfunction PopoverAnchor({\r\n ...props\r\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\r\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\r\n}\r\n\r\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\r\n","import { Button } from '@/components/ui/button'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\nimport type { SetterProps } from '@easy-editor/core'\nimport Sketch from '@uiw/react-color-sketch'\n\nexport interface ColorSetterProps extends SetterProps<string> {\n disableAlpha?: boolean\n}\n\nconst ColorSetter = (props: ColorSetterProps) => {\n const { value, initialValue, onChange, disableAlpha = false } = props\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n aria-label='Select color'\n className={'h-8 w-full justify-start gap-2 bg-transparent px-2 py-[5px] text-left font-normal text-xs'}\n variant={'outline'}\n >\n <div\n aria-label='Current color'\n className='h-3.5 w-3.5 rounded-full border border-muted-foreground'\n style={{ backgroundColor: value ?? initialValue }}\n />\n <span className='truncate font-mono'>{value ?? initialValue}</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent align='start' className='w-auto p-0'>\n <Sketch color={value} disableAlpha={disableAlpha} onChange={res => onChange(res.hexa)} presetColors={[]} />\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default ColorSetter\n","import type { SetterProps } from '@easy-editor/core'\n\nexport interface NodeIdSetterProps extends SetterProps<string> {}\n\nconst NodeIdSetter = (props: NodeIdSetterProps) => {\n const { selected } = props\n\n return (\n <div className='flex flex-col'>\n <p className='leading-7'>{selected.id}</p>\n <p className='text-muted-foreground text-xs'>{selected.componentMeta.title}</p>\n </div>\n )\n}\n\nexport default NodeIdSetter\n","import * as React from \"react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\r\n return (\r\n <input\r\n type={type}\r\n data-slot=\"input\"\r\n className={cn(\r\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\r\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\r\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Input }\r\n","import { Input } from '@/components/ui/input'\nimport { cn } from '@/lib/utils'\nimport type { SetterProps } from '@easy-editor/core'\n\nexport interface NumberSetterProps extends SetterProps<number> {\n placeholder?: string\n suffix?: string\n}\n\nconst NumberSetter = (props: NumberSetterProps) => {\n const { value, initialValue, placeholder, onChange, suffix } = props\n\n return (\n <div className='relative w-full'>\n <Input\n className={cn(\n 'h-8 px-2 py-[5px] pr-8 text-xs! [-moz-appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none',\n !!suffix && 'pr-8',\n )}\n onChange={e => onChange(+e.target.value)}\n placeholder={placeholder || ''}\n type='number'\n value={value ?? initialValue}\n />\n {!!suffix && (\n <span\n aria-label={`Unit: ${suffix}`}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n {suffix}\n </span>\n )}\n </div>\n )\n}\n\nexport default NumberSetter\n","import { Input } from '@/components/ui/input'\nimport type { SetterProps } from '@easy-editor/core'\n\nexport interface RectSetterProps extends SetterProps<DOMRect> {}\n\nconst RectSetter = (props: RectSetterProps) => {\n const { value, onChange } = props\n\n const handleChange = (key: keyof DOMRect, newValue: number) => {\n onChange({ ...value, [key]: newValue })\n }\n\n return (\n <div className='flex w-full flex-wrap gap-2'>\n <div className='relative w-[calc(50%-4px)]'>\n <Input\n className='h-8 px-2 py-[5px] pr-8 text-xs! [-moz-appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none'\n onChange={e => handleChange('x', Number(e.target.value))}\n type='number'\n value={formatDecimal(value.x)}\n />\n <span\n aria-label={'Unit: X'}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n X\n </span>\n </div>\n <div className='relative w-[calc(50%-4px)]'>\n <Input\n className='h-8 px-2 py-[5px] pr-8 text-xs! [-moz-appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none'\n onChange={e => handleChange('y', Number(e.target.value))}\n type='number'\n value={formatDecimal(value.y)}\n />\n <span\n aria-label={'Unit: Y'}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n Y\n </span>\n </div>\n <div className='relative w-[calc(50%-4px)]'>\n <Input\n className='h-8 px-2 py-[5px] pr-8 text-xs! [-moz-appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none'\n onChange={e => handleChange('width', Number(e.target.value))}\n type='number'\n value={formatDecimal(value.width)}\n />\n <span\n aria-label={'Unit: W'}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n W\n </span>\n </div>\n <div className='relative w-[calc(50%-4px)]'>\n <Input\n className='h-8 px-2 py-[5px] pr-8 text-xs! [-moz-appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none'\n onChange={e => handleChange('height', Number(e.target.value))}\n type='number'\n value={formatDecimal(value.height)}\n />\n <span\n aria-label={'Unit: H'}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n H\n </span>\n </div>\n </div>\n )\n}\n\nexport default RectSetter\n\nconst decimalRegex = /(\\.\\d{2})\\d+$/\nconst formatDecimal = (num: number) => num.toString().replace(decimalRegex, '$1')\n","import { Input } from '@/components/ui/input'\nimport { cn } from '@/lib/utils'\nimport type { SetterProps } from '@easy-editor/core'\n\nexport interface StringSetterProps extends SetterProps<string> {\n placeholder?: string\n suffix?: string\n}\n\nconst StringSetter = (props: StringSetterProps) => {\n const { value, initialValue, placeholder, onChange, suffix } = props\n\n return (\n <div className='relative w-full'>\n <Input\n className={cn('h-8 px-2 py-[5px] text-xs!', !!suffix && 'pr-8')}\n onChange={e => onChange(e.target.value)}\n placeholder={placeholder || ''}\n value={value || initialValue}\n />\n {!!suffix && (\n <span\n aria-label={`Unit: ${suffix}`}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n {suffix}\n </span>\n )}\n </div>\n )\n}\n\nexport default StringSetter\n","import * as React from \"react\"\r\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nfunction Switch({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\r\n return (\r\n <SwitchPrimitive.Root\r\n data-slot=\"switch\"\r\n className={cn(\r\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <SwitchPrimitive.Thumb\r\n data-slot=\"switch-thumb\"\r\n className={cn(\r\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\"\r\n )}\r\n />\r\n </SwitchPrimitive.Root>\r\n )\r\n}\r\n\r\nexport { Switch }\r\n","import { Switch } from '@/components/ui/switch'\nimport type { SetterProps } from '@easy-editor/core'\n\nexport interface SwitchSetterProps extends SetterProps<boolean> {}\n\nconst SwitchSetter = (props: SwitchSetterProps) => {\n const { value, initialValue, onChange } = props\n\n return (\n <div className='py-0.5'>\n <Switch checked={value || initialValue} onCheckedChange={onChange} />\n </div>\n )\n}\n\nexport default SwitchSetter\n","import { Button } from '@/components/ui/button'\nimport { cn } from '@/lib/utils'\nimport type { SetterProps } from '@easy-editor/core'\nimport { Upload, X } from 'lucide-react'\nimport { useRef, useState } from 'react'\n\nexport interface UploadValue {\n raw: {\n name: string\n size: number\n type: string\n width: number\n height: number\n }\n base64: string\n}\n\nexport interface UploadSetterProps extends SetterProps<UploadValue | null> {\n accept?: string\n maxSize?: number\n}\n\nconst UploadSetter = (props: UploadSetterProps) => {\n const { value, onChange, accept = '.jpg,.jpeg,.png,.gif', maxSize = 10 * 1024 * 1024 } = props\n const [error, setError] = useState('')\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleFileChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0]\n setError('')\n\n if (!file) {\n onChange(null)\n return\n }\n\n // 验证文件类型\n const ext = `.${file.name.split('.').pop()?.toLowerCase()}`\n if (!accept.includes(ext)) {\n setError(`仅支持 ${accept} 格式文件`)\n onChange(null)\n return\n }\n\n // 验证文件大小\n if (file.size > maxSize) {\n setError(`文件大小不能超过 ${maxSize / 1024 / 1024}MB`)\n onChange(null)\n return\n }\n\n try {\n const [base64, dimensions] = await Promise.all([\n // 读取Base64\n new Promise<string>((resolve, reject) => {\n const reader = new FileReader()\n reader.onload = () => resolve(reader.result as string)\n reader.onerror = err => reject(err)\n reader.readAsDataURL(file)\n }),\n // 读取图片尺寸\n new Promise<{ width: number; height: number }>((resolve, reject) => {\n const img = new Image()\n img.onload = () =>\n resolve({\n width: img.naturalWidth,\n height: img.naturalHeight,\n })\n img.onerror = reject\n img.src = URL.createObjectURL(file)\n }),\n ])\n\n onChange({\n raw: {\n name: file.name,\n size: file.size,\n type: file.type,\n width: dimensions.width,\n height: dimensions.height,\n },\n base64,\n })\n } catch (_) {\n setError('文件读取失败,请重试')\n onChange(null)\n }\n }\n\n const handleClear = () => {\n onChange(null)\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n }\n\n return (\n <div className='group relative w-full overflow-hidden'>\n <div className='flex gap-2'>\n <label className='flex-1 cursor-pointer'>\n <input\n accept={accept}\n className={cn(\n 'h-8 cursor-pointer px-2 py-[5px] text-xs',\n 'border-dashed transition-colors hover:border-primary',\n 'absolute h-0 w-0 opacity-0',\n )}\n onChange={handleFileChange}\n ref={inputRef}\n type='file'\n />\n <div className='flex h-8 w-full items-center justify-center rounded-md border border-dashed text-muted-foreground text-xs transition-colors hover:border-primary'>\n <Upload className='mr-2 h-4 w-4' />\n <span>{value ? '更换文件' : '点击上传'}</span>\n </div>\n </label>\n\n {!!value && (\n <Button\n aria-label='清除文件'\n className='h-8 px-2 text-muted-foreground hover:text-destructive'\n onClick={handleClear}\n size='sm'\n type='button'\n variant='ghost'\n >\n <X className='h-4 w-4' />\n </Button>\n )}\n </div>\n\n {!!value && (\n <div className='mt-2 flex w-full items-center gap-2 text-foreground/80 text-xs'>\n <span className='min-w-0 flex-1 truncate'>{value.raw?.name}</span>\n <span className='shrink-0 whitespace-nowrap text-muted-foreground/50'>\n {(value.raw?.size / 1024).toFixed(1)}KB\n </span>\n </div>\n )}\n\n {!!error && (\n <p className='mt-1 text-destructive text-xs' role='alert'>\n {error}\n </p>\n )}\n </div>\n )\n}\n\nexport default UploadSetter\n","\"use client\"\r\n\r\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\r\n\r\nfunction Collapsible({\r\n ...props\r\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\r\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\r\n}\r\n\r\nfunction CollapsibleTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\r\n return (\r\n <CollapsiblePrimitive.CollapsibleTrigger\r\n data-slot=\"collapsible-trigger\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction CollapsibleContent({\r\n ...props\r\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\r\n return (\r\n <CollapsiblePrimitive.CollapsibleContent\r\n data-slot=\"collapsible-content\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\r\n","import { Button } from '@/components/ui/button'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'\nimport type { SetterProps } from '@easy-editor/core'\nimport { ChevronsUpDown } from 'lucide-react'\nimport type { PropsWithChildren } from 'react'\nimport { useState } from 'react'\n\nexport interface CollapseSetterProps extends SetterProps<boolean>, PropsWithChildren {\n icon?: boolean\n}\n\nconst CollapseSetter = (props: CollapseSetterProps) => {\n const { field, children, initialValue, icon = true } = props\n const [isOpen, setIsOpen] = useState(initialValue ?? true)\n\n return (\n <Collapsible className='w-[calc(100%+32px)] -translate-x-4 space-y-2' onOpenChange={setIsOpen} open={isOpen}>\n <div className='flex h-8 items-center justify-between space-x-4 bg-muted px-4'>\n <h4>{field.title}</h4>\n {!!icon && (\n <CollapsibleTrigger asChild>\n <Button size='sm' variant='ghost'>\n <ChevronsUpDown className='h-4 w-4' />\n <span className='sr-only'>Toggle</span>\n </Button>\n </CollapsibleTrigger>\n )}\n </div>\n <CollapsibleContent className='space-y-3 px-4 py-2'>{children}</CollapsibleContent>\n </Collapsible>\n )\n}\n\nexport default CollapseSetter\n","import * as React from \"react\"\r\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nfunction Tabs({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\r\n return (\r\n <TabsPrimitive.Root\r\n data-slot=\"tabs\"\r\n className={cn(\"flex flex-col gap-2\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TabsList({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\r\n return (\r\n <TabsPrimitive.List\r\n data-slot=\"tabs-list\"\r\n className={cn(\r\n \"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TabsTrigger({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\r\n return (\r\n <TabsPrimitive.Trigger\r\n data-slot=\"tabs-trigger\"\r\n className={cn(\r\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TabsContent({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\r\n return (\r\n <TabsPrimitive.Content\r\n data-slot=\"tabs-content\"\r\n className={cn(\"flex-1 outline-none\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\r\n","import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'\nimport type { SetterProps } from '@easy-editor/core'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nexport interface TabSetterProps extends SetterProps<string>, PropsWithChildren {\n tabs?: {\n label: string\n value: string\n }[]\n}\n\nconst TabSetter = (props: TabSetterProps) => {\n const { tabs, initialValue, children } = props\n\n const tabsList = React.useMemo(() => {\n if (tabs) {\n return tabs\n }\n if (Array.isArray(children) && children.length > 0) {\n return children.map(child => ({\n label: child.props.field.config.title,\n value: child.props.field.config.key,\n }))\n }\n throw new Error('TabSetter: children or tabs must be an array')\n }, [tabs, children])\n const firstTabValue = React.useMemo(() => tabsList[0]?.value, [tabsList])\n\n return (\n <Tabs className='w-full' defaultValue={initialValue ?? firstTabValue}>\n <TabsList\n className='grid w-full'\n style={{\n gridTemplateColumns: `repeat(${tabsList.length}, minmax(0, 1fr))`,\n }}\n >\n {tabsList.map(tab => (\n <TabsTrigger key={tab.value} value={tab.value}>\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n {/* INFO:两种 group 的渲染方式,一种是 field.items,一种是 children */}\n {Array.isArray(children) &&\n children.map(child => (\n <TabsContent\n className='mt-0 box-border space-y-3 p-2'\n key={child.props.field.config.key}\n value={child.props.field.config.key}\n >\n {child}\n </TabsContent>\n ))}\n </Tabs>\n )\n}\n\nexport default TabSetter\n","/**\n * @easy-editor/setters\n * Official setters library for EasyEditor\n */\n\n// Import styles\nimport './styles/global.css'\n\n// Basic Setters\nexport { default as ColorSetter } from './basic/color-setter'\nexport { default as NodeIdSetter } from './basic/node-id-setter'\nexport { default as NumberSetter } from './basic/number-setter'\nexport { default as RectSetter } from './basic/rect-setter'\nexport { default as StringSetter } from './basic/string-setter'\nexport { default as SwitchSetter } from './basic/switch-setter'\nexport { default as UploadSetter } from './basic/upload-setter'\n\n// Group Setters\nexport { default as CollapseSetter } from './group/collapse-setter'\nexport { default as TabSetter } from './group/tab-setter'\n\n// Export Setter Props types\nexport type { StringSetterProps } from './basic/string-setter'\nexport type { NumberSetterProps } from './basic/number-setter'\nexport type { ColorSetterProps } from './basic/color-setter'\nexport type { NodeIdSetterProps } from './basic/node-id-setter'\nexport type { RectSetterProps } from './basic/rect-setter'\nexport type { SwitchSetterProps } from './basic/switch-setter'\nexport type { UploadSetterProps, UploadValue } from './basic/upload-setter'\nexport type { CollapseSetterProps } from './group/collapse-setter'\nexport type { TabSetterProps } from './group/tab-setter'\n\n// Default setter map\nimport ColorSetter from './basic/color-setter'\nimport NodeIdSetter from './basic/node-id-setter'\nimport NumberSetter from './basic/number-setter'\nimport RectSetter from './basic/rect-setter'\nimport StringSetter from './basic/string-setter'\nimport SwitchSetter from './basic/switch-setter'\nimport UploadSetter from './basic/upload-setter'\nimport CollapseSetter from './group/collapse-setter'\nimport TabSetter from './group/tab-setter'\n\nexport const setterMap = {\n ColorSetter,\n NodeIdSetter,\n NumberSetter,\n RectSetter,\n StringSetter,\n SwitchSetter,\n UploadSetter,\n CollapseSetter,\n TabSetter,\n}\n\nexport default setterMap\n"],"names":["cn","inputs","twMerge","clsx","buttonVariants","cva","variants","variant","default","destructive","outline","secondary","ghost","link","size","sm","lg","icon","defaultVariants","Button","React","forwardRef","className","asChild","props","ref","Comp","Slot","_jsx","displayName","Popover","PopoverPrimitive","Root","PopoverTrigger","Trigger","PopoverContent","align","sideOffset","Portal","children","Content","ColorSetter","value","initialValue","onChange","disableAlpha","_jsxs","style","backgroundColor","Sketch","color","res","hexa","presetColors","NodeIdSetter","selected","id","componentMeta","title","Input","type","NumberSetter","placeholder","suffix","e","target","RectSetter","handleChange","key","newValue","Number","formatDecimal","x","y","width","height","decimalRegex","num","toString","replace","StringSetter","Switch","SwitchPrimitive","Thumb","SwitchSetter","checked","onCheckedChange","UploadSetter","accept","maxSize","error","setError","useState","inputRef","useRef","handleFileChange","file","files","ext","name","split","pop","toLowerCase","includes","base64","dimensions","Promise","all","resolve","reject","reader","FileReader","onload","result","onerror","err","readAsDataURL","img","Image","naturalWidth","naturalHeight","src","URL","createObjectURL","raw","_","handleClear","current","Upload","onClick","X","toFixed","role","Collapsible","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","CollapseSetter","field","isOpen","setIsOpen","onOpenChange","open","ChevronsUpDown","Tabs","TabsPrimitive","TabsList","List","TabsTrigger","TabsContent","TabSetter","tabs","tabsList","useMemo","Array","isArray","length","map","child","label","config","Error","firstTabValue","defaultValue","gridTemplateColumns","tab","setterMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/lib/utils.ts","../src/components/ui/button.tsx","../src/components/ui/popover.tsx","../src/basic/color-setter/index.tsx","../src/basic/node-id-setter/index.tsx","../src/components/ui/input.tsx","../src/basic/number-setter/index.tsx","../src/basic/rect-setter/index.tsx","../src/basic/string-setter/index.tsx","../src/components/ui/switch.tsx","../src/basic/switch-setter/index.tsx","../src/basic/upload-setter/index.tsx","../src/components/ui/collapsible.tsx","../src/group/collapse-setter/index.tsx","../src/components/ui/tabs.tsx","../src/group/tab-setter/index.tsx","../src/index.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\r\nimport { Slot } from \"@radix-ui/react-slot\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst buttonVariants = cva(\r\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\r\n destructive:\r\n \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\r\n outline:\r\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\r\n secondary:\r\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\r\n ghost:\r\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\r\n link: \"text-primary underline-offset-4 hover:underline\",\r\n },\r\n size: {\r\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\r\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\r\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\r\n icon: \"size-9\",\r\n \"icon-sm\": \"size-8\",\r\n \"icon-lg\": \"size-10\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nconst Button = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> &\r\n VariantProps<typeof buttonVariants> & {\r\n asChild?: boolean\r\n }\r\n>(({ className, variant = \"default\", size = \"default\", asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\"\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-slot=\"button\"\r\n data-variant={variant}\r\n data-size={size}\r\n className={cn(buttonVariants({ variant, size, className }))}\r\n {...props}\r\n />\r\n )\r\n})\r\nButton.displayName = \"Button\"\r\n\r\nexport { Button, buttonVariants }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nfunction Popover({\r\n ...props\r\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\r\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\r\n}\r\n\r\nfunction PopoverTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\r\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\r\n}\r\n\r\nfunction PopoverContent({\r\n className,\r\n align = \"center\",\r\n sideOffset = 4,\r\n ...props\r\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\r\n return (\r\n <PopoverPrimitive.Portal>\r\n <PopoverPrimitive.Content\r\n data-slot=\"popover-content\"\r\n align={align}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"bg-popover text-popover-foreground 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </PopoverPrimitive.Portal>\r\n )\r\n}\r\n\r\nfunction PopoverAnchor({\r\n ...props\r\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\r\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\r\n}\r\n\r\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\r\n","import { Button } from '@/components/ui/button'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\nimport type { SetterProps } from '@easy-editor/core'\nimport Sketch from '@uiw/react-color-sketch'\n\nexport interface ColorSetterProps extends SetterProps<string> {\n disableAlpha?: boolean\n}\n\nconst ColorSetter = (props: ColorSetterProps) => {\n const { value, initialValue, onChange, disableAlpha = false } = props\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n aria-label='Select color'\n className={'h-8 w-full justify-start gap-2 bg-transparent px-2 py-[5px] text-left font-normal text-xs'}\n variant={'outline'}\n >\n <div\n aria-label='Current color'\n className='h-3.5 w-3.5 rounded-full border border-muted-foreground'\n style={{ backgroundColor: value ?? initialValue }}\n />\n <span className='truncate font-mono'>{value ?? initialValue}</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent align='start' className='w-auto p-0'>\n <Sketch color={value} disableAlpha={disableAlpha} onChange={res => onChange(res.hexa)} presetColors={[]} />\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default ColorSetter\n","import type { SetterProps } from '@easy-editor/core'\n\nexport interface NodeIdSetterProps extends SetterProps<string> {}\n\nconst NodeIdSetter = (props: NodeIdSetterProps) => {\n const { selected } = props\n\n return (\n <div className='flex flex-col'>\n <p className='leading-7'>{selected.id}</p>\n <p className='text-muted-foreground text-xs'>{selected.componentMeta.title}</p>\n </div>\n )\n}\n\nexport default NodeIdSetter\n","import * as React from \"react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\r\n return (\r\n <input\r\n type={type}\r\n data-slot=\"input\"\r\n className={cn(\r\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\r\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\r\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Input }\r\n","import { Input } from '@/components/ui/input'\nimport { cn } from '@/lib/utils'\nimport type { SetterProps } from '@easy-editor/core'\n\nexport interface NumberSetterProps extends SetterProps<number> {\n placeholder?: string\n suffix?: string\n}\n\nconst NumberSetter = (props: NumberSetterProps) => {\n const { value, initialValue, placeholder, onChange, suffix } = props\n\n return (\n <div className='relative w-full'>\n <Input\n className={cn(\n 'h-8 px-2 py-[5px] pr-8 text-xs! [-moz-appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none',\n !!suffix && 'pr-8',\n )}\n onChange={e => onChange(+e.target.value)}\n placeholder={placeholder || ''}\n type='number'\n value={value ?? initialValue}\n />\n {!!suffix && (\n <span\n aria-label={`Unit: ${suffix}`}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n {suffix}\n </span>\n )}\n </div>\n )\n}\n\nexport default NumberSetter\n","import { Input } from '@/components/ui/input'\nimport type { SetterProps } from '@easy-editor/core'\n\nexport interface RectSetterProps extends SetterProps<DOMRect> {}\n\nconst RectSetter = (props: RectSetterProps) => {\n const { value, onChange } = props\n\n const handleChange = (key: keyof DOMRect, newValue: number) => {\n onChange({ ...value, [key]: newValue })\n }\n\n return (\n <div className='flex w-full flex-wrap gap-2'>\n <div className='relative w-[calc(50%-4px)]'>\n <Input\n className='h-8 px-2 py-[5px] pr-8 text-xs! [-moz-appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none'\n onChange={e => handleChange('x', Number(e.target.value))}\n type='number'\n value={formatDecimal(value.x)}\n />\n <span\n aria-label={'Unit: X'}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n X\n </span>\n </div>\n <div className='relative w-[calc(50%-4px)]'>\n <Input\n className='h-8 px-2 py-[5px] pr-8 text-xs! [-moz-appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none'\n onChange={e => handleChange('y', Number(e.target.value))}\n type='number'\n value={formatDecimal(value.y)}\n />\n <span\n aria-label={'Unit: Y'}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n Y\n </span>\n </div>\n <div className='relative w-[calc(50%-4px)]'>\n <Input\n className='h-8 px-2 py-[5px] pr-8 text-xs! [-moz-appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none'\n onChange={e => handleChange('width', Number(e.target.value))}\n type='number'\n value={formatDecimal(value.width)}\n />\n <span\n aria-label={'Unit: W'}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n W\n </span>\n </div>\n <div className='relative w-[calc(50%-4px)]'>\n <Input\n className='h-8 px-2 py-[5px] pr-8 text-xs! [-moz-appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none'\n onChange={e => handleChange('height', Number(e.target.value))}\n type='number'\n value={formatDecimal(value.height)}\n />\n <span\n aria-label={'Unit: H'}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n H\n </span>\n </div>\n </div>\n )\n}\n\nexport default RectSetter\n\nconst decimalRegex = /(\\.\\d{2})\\d+$/\nconst formatDecimal = (num: number) => num.toString().replace(decimalRegex, '$1')\n","import { Input } from '@/components/ui/input'\nimport { cn } from '@/lib/utils'\nimport type { SetterProps } from '@easy-editor/core'\n\nexport interface StringSetterProps extends SetterProps<string> {\n placeholder?: string\n suffix?: string\n}\n\nconst StringSetter = (props: StringSetterProps) => {\n const { value, initialValue, placeholder, onChange, suffix } = props\n\n return (\n <div className='relative w-full'>\n <Input\n className={cn('h-8 px-2 py-[5px] text-xs!', !!suffix && 'pr-8')}\n onChange={e => onChange(e.target.value)}\n placeholder={placeholder || ''}\n value={value || initialValue}\n />\n {!!suffix && (\n <span\n aria-label={`Unit: ${suffix}`}\n className='pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-muted-foreground'\n >\n {suffix}\n </span>\n )}\n </div>\n )\n}\n\nexport default StringSetter\n","import * as React from \"react\"\r\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nfunction Switch({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\r\n return (\r\n <SwitchPrimitive.Root\r\n data-slot=\"switch\"\r\n className={cn(\r\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <SwitchPrimitive.Thumb\r\n data-slot=\"switch-thumb\"\r\n className={cn(\r\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\"\r\n )}\r\n />\r\n </SwitchPrimitive.Root>\r\n )\r\n}\r\n\r\nexport { Switch }\r\n","import { Switch } from '@/components/ui/switch'\nimport type { SetterProps } from '@easy-editor/core'\n\nexport interface SwitchSetterProps extends SetterProps<boolean> {}\n\nconst SwitchSetter = (props: SwitchSetterProps) => {\n const { value, initialValue, onChange } = props\n\n return (\n <div className='py-0.5'>\n <Switch checked={value || initialValue} onCheckedChange={onChange} />\n </div>\n )\n}\n\nexport default SwitchSetter\n","import { Button } from '@/components/ui/button'\nimport { cn } from '@/lib/utils'\nimport type { SetterProps } from '@easy-editor/core'\nimport { Upload, X } from 'lucide-react'\nimport { useRef, useState } from 'react'\n\nexport interface UploadValue {\n raw: {\n name: string\n size: number\n type: string\n width: number\n height: number\n }\n base64: string\n}\n\nexport interface UploadSetterProps extends SetterProps<UploadValue | null> {\n accept?: string\n maxSize?: number\n}\n\nconst UploadSetter = (props: UploadSetterProps) => {\n const { value, onChange, accept = '.jpg,.jpeg,.png,.gif', maxSize = 10 * 1024 * 1024 } = props\n const [error, setError] = useState('')\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleFileChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0]\n setError('')\n\n if (!file) {\n onChange(null)\n return\n }\n\n // 验证文件类型\n const ext = `.${file.name.split('.').pop()?.toLowerCase()}`\n if (!accept.includes(ext)) {\n setError(`仅支持 ${accept} 格式文件`)\n onChange(null)\n return\n }\n\n // 验证文件大小\n if (file.size > maxSize) {\n setError(`文件大小不能超过 ${maxSize / 1024 / 1024}MB`)\n onChange(null)\n return\n }\n\n try {\n const [base64, dimensions] = await Promise.all([\n // 读取Base64\n new Promise<string>((resolve, reject) => {\n const reader = new FileReader()\n reader.onload = () => resolve(reader.result as string)\n reader.onerror = err => reject(err)\n reader.readAsDataURL(file)\n }),\n // 读取图片尺寸\n new Promise<{ width: number; height: number }>((resolve, reject) => {\n const img = new Image()\n img.onload = () =>\n resolve({\n width: img.naturalWidth,\n height: img.naturalHeight,\n })\n img.onerror = reject\n img.src = URL.createObjectURL(file)\n }),\n ])\n\n onChange({\n raw: {\n name: file.name,\n size: file.size,\n type: file.type,\n width: dimensions.width,\n height: dimensions.height,\n },\n base64,\n })\n } catch (_) {\n setError('文件读取失败,请重试')\n onChange(null)\n }\n }\n\n const handleClear = () => {\n onChange(null)\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n }\n\n return (\n <div className='group relative w-full overflow-hidden'>\n <div className='flex gap-2'>\n <label className='flex-1 cursor-pointer'>\n <input\n accept={accept}\n className={cn(\n 'h-8 cursor-pointer px-2 py-[5px] text-xs',\n 'border-dashed transition-colors hover:border-primary',\n 'absolute h-0 w-0 opacity-0',\n )}\n onChange={handleFileChange}\n ref={inputRef}\n type='file'\n />\n <div className='flex h-8 w-full items-center justify-center rounded-md border border-dashed text-muted-foreground text-xs transition-colors hover:border-primary'>\n <Upload className='mr-2 h-4 w-4' />\n <span>{value ? '更换文件' : '点击上传'}</span>\n </div>\n </label>\n\n {!!value && (\n <Button\n aria-label='清除文件'\n className='h-8 px-2 text-muted-foreground hover:text-destructive'\n onClick={handleClear}\n size='sm'\n type='button'\n variant='ghost'\n >\n <X className='h-4 w-4' />\n </Button>\n )}\n </div>\n\n {!!value && (\n <div className='mt-2 flex w-full items-center gap-2 text-foreground/80 text-xs'>\n <span className='min-w-0 flex-1 truncate'>{value.raw?.name}</span>\n <span className='shrink-0 whitespace-nowrap text-muted-foreground/50'>\n {(value.raw?.size / 1024).toFixed(1)}KB\n </span>\n </div>\n )}\n\n {!!error && (\n <p className='mt-1 text-destructive text-xs' role='alert'>\n {error}\n </p>\n )}\n </div>\n )\n}\n\nexport default UploadSetter\n","\"use client\"\r\n\r\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\r\n\r\nfunction Collapsible({\r\n ...props\r\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\r\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\r\n}\r\n\r\nfunction CollapsibleTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\r\n return (\r\n <CollapsiblePrimitive.CollapsibleTrigger\r\n data-slot=\"collapsible-trigger\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction CollapsibleContent({\r\n ...props\r\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\r\n return (\r\n <CollapsiblePrimitive.CollapsibleContent\r\n data-slot=\"collapsible-content\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\r\n","import { Button } from '@/components/ui/button'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'\nimport type { SetterProps } from '@easy-editor/core'\nimport { ChevronsUpDown } from 'lucide-react'\nimport type { PropsWithChildren } from 'react'\nimport { useState } from 'react'\n\nexport interface CollapseSetterProps extends SetterProps<boolean>, PropsWithChildren {\n icon?: boolean\n}\n\nconst CollapseSetter = (props: CollapseSetterProps) => {\n const { field, children, initialValue, icon = true } = props\n const [isOpen, setIsOpen] = useState(initialValue ?? true)\n\n return (\n <Collapsible className='w-[calc(100%+32px)] -translate-x-4 space-y-2' onOpenChange={setIsOpen} open={isOpen}>\n <div className='flex h-8 items-center justify-between space-x-4 bg-muted px-4'>\n <h4>{field.title}</h4>\n {!!icon && (\n <CollapsibleTrigger asChild>\n <Button size='sm' variant='ghost'>\n <ChevronsUpDown className='h-4 w-4' />\n <span className='sr-only'>Toggle</span>\n </Button>\n </CollapsibleTrigger>\n )}\n </div>\n <CollapsibleContent className='space-y-3 px-4 py-2'>{children}</CollapsibleContent>\n </Collapsible>\n )\n}\n\nexport default CollapseSetter\n","import * as React from \"react\"\r\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nfunction Tabs({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\r\n return (\r\n <TabsPrimitive.Root\r\n data-slot=\"tabs\"\r\n className={cn(\"flex flex-col gap-2\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TabsList({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\r\n return (\r\n <TabsPrimitive.List\r\n data-slot=\"tabs-list\"\r\n className={cn(\r\n \"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TabsTrigger({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\r\n return (\r\n <TabsPrimitive.Trigger\r\n data-slot=\"tabs-trigger\"\r\n className={cn(\r\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TabsContent({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\r\n return (\r\n <TabsPrimitive.Content\r\n data-slot=\"tabs-content\"\r\n className={cn(\"flex-1 outline-none\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\r\n","import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'\nimport type { SetterProps } from '@easy-editor/core'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nexport interface TabSetterProps extends SetterProps<string>, PropsWithChildren {\n tabs?: {\n label: string\n value: string\n }[]\n}\n\nconst TabSetter = (props: TabSetterProps) => {\n const { tabs, initialValue, children } = props\n\n const tabsList = React.useMemo(() => {\n if (tabs) {\n return tabs\n }\n if (Array.isArray(children) && children.length > 0) {\n return children.map(child => ({\n label: child.props.field.config.title,\n value: child.props.field.config.key,\n }))\n }\n throw new Error('TabSetter: children or tabs must be an array')\n }, [tabs, children])\n const firstTabValue = React.useMemo(() => tabsList[0]?.value, [tabsList])\n\n return (\n <Tabs className='w-full' defaultValue={initialValue ?? firstTabValue}>\n <TabsList\n className='grid w-full'\n style={{\n gridTemplateColumns: `repeat(${tabsList.length}, minmax(0, 1fr))`,\n }}\n >\n {tabsList.map(tab => (\n <TabsTrigger key={tab.value} value={tab.value}>\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n {/* INFO:两种 group 的渲染方式,一种是 field.items,一种是 children */}\n {Array.isArray(children) &&\n children.map(child => (\n <TabsContent\n className='mt-0 box-border space-y-3 p-2'\n key={child.props.field.config.key}\n value={child.props.field.config.key}\n >\n {child}\n </TabsContent>\n ))}\n </Tabs>\n )\n}\n\nexport default TabSetter\n","/**\n * @easy-editor/setters\n * Official setters library for EasyEditor\n */\n\n// Import styles\nimport './styles/global.css'\n\n// Basic Setters\nexport { default as ColorSetter } from './basic/color-setter'\nexport { default as NodeIdSetter } from './basic/node-id-setter'\nexport { default as NumberSetter } from './basic/number-setter'\nexport { default as RectSetter } from './basic/rect-setter'\nexport { default as StringSetter } from './basic/string-setter'\nexport { default as SwitchSetter } from './basic/switch-setter'\nexport { default as UploadSetter } from './basic/upload-setter'\n\n// Group Setters\nexport { default as CollapseSetter } from './group/collapse-setter'\nexport { default as TabSetter } from './group/tab-setter'\n\n// Export Setter Props types\nexport type { StringSetterProps } from './basic/string-setter'\nexport type { NumberSetterProps } from './basic/number-setter'\nexport type { ColorSetterProps } from './basic/color-setter'\nexport type { NodeIdSetterProps } from './basic/node-id-setter'\nexport type { RectSetterProps } from './basic/rect-setter'\nexport type { SwitchSetterProps } from './basic/switch-setter'\nexport type { UploadSetterProps, UploadValue } from './basic/upload-setter'\nexport type { CollapseSetterProps } from './group/collapse-setter'\nexport type { TabSetterProps } from './group/tab-setter'\n\n// Default setter map\nimport ColorSetter from './basic/color-setter'\nimport NodeIdSetter from './basic/node-id-setter'\nimport NumberSetter from './basic/number-setter'\nimport RectSetter from './basic/rect-setter'\nimport StringSetter from './basic/string-setter'\nimport SwitchSetter from './basic/switch-setter'\nimport UploadSetter from './basic/upload-setter'\nimport CollapseSetter from './group/collapse-setter'\nimport TabSetter from './group/tab-setter'\n\nexport const setterMap = {\n ColorSetter,\n NodeIdSetter,\n NumberSetter,\n RectSetter,\n StringSetter,\n SwitchSetter,\n UploadSetter,\n CollapseSetter,\n TabSetter,\n}\n\nexport default setterMap\n"],"names":["cn","inputs","twMerge","clsx","buttonVariants","cva","variants","variant","default","destructive","outline","secondary","ghost","link","size","sm","lg","icon","defaultVariants","Button","React","forwardRef","className","asChild","props","ref","Comp","Slot","createElement","_extends","displayName","Popover","PopoverPrimitive","Root","PopoverTrigger","Trigger","PopoverContent","align","sideOffset","Portal","Content","ColorSetter","value","initialValue","onChange","disableAlpha","style","backgroundColor","Sketch","color","res","hexa","presetColors","NodeIdSetter","selected","id","componentMeta","title","Input","type","NumberSetter","placeholder","suffix","e","target","RectSetter","handleChange","key","newValue","Number","formatDecimal","x","y","width","height","decimalRegex","num","toString","replace","StringSetter","Switch","SwitchPrimitive","Thumb","SwitchSetter","checked","onCheckedChange","UploadSetter","accept","maxSize","error","setError","useState","inputRef","useRef","handleFileChange","file","files","ext","name","split","pop","toLowerCase","includes","base64","dimensions","Promise","all","resolve","reject","reader","FileReader","onload","result","onerror","err","readAsDataURL","img","Image","naturalWidth","naturalHeight","src","URL","createObjectURL","raw","_","handleClear","current","Upload","onClick","X","toFixed","role","Collapsible","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","CollapseSetter","field","children","isOpen","setIsOpen","onOpenChange","open","ChevronsUpDown","Tabs","TabsPrimitive","TabsList","List","TabsTrigger","TabsContent","TabSetter","tabs","tabsList","useMemo","Array","isArray","length","map","child","label","config","Error","firstTabValue","defaultValue","gridTemplateColumns","tab","setterMap"],"mappings":"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"}
|