forked from williamiommi/sanity-plugin-icon-manager
-
Notifications
You must be signed in to change notification settings - Fork 0
/
IconManagerType.ts
61 lines (53 loc) · 1.55 KB
/
IconManagerType.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import { z } from 'zod'
export const iconManagerColorSchema = z
.object({
hex: z.string(),
rgba: z.object({
r: z.number(),
g: z.number(),
b: z.number(),
a: z.number(),
}),
})
.nullable()
export type IconManagerColor = z.infer<typeof iconManagerColorSchema>
export const iconManagerSizeSchema = z.object({
width: z.number(),
height: z.number(),
})
export type IconManagerSize = z.infer<typeof iconManagerSizeSchema>
export const iconManagerSchema = z.object({
icon: z.string(),
metadata: z.object({
url: z.string(),
downloadUrl: z.string(),
inlineSvg: z.string().optional(),
collectionId: z.string(),
collectionName: z.string(),
iconName: z.string(),
palette: z.boolean().optional(),
license: z
.object({
name: z.string().optional(),
url: z.string().optional(),
})
.optional(),
author: z
.object({
name: z.string().optional(),
url: z.string().optional(),
})
.optional(),
size: iconManagerSizeSchema,
hFlip: z.boolean(),
vFlip: z.boolean(),
flip: z.enum(['horizontal', 'vertical', 'horizontal,vertical', '']),
rotate: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]),
color: iconManagerColorSchema.optional(),
}),
})
export type IconManagerType = z.infer<typeof iconManagerSchema>
export const iconManagerPartialSchema = iconManagerSchema
.deepPartial()
.extend({ _type: z.literal('icon.manager') })
export type IconManagerPartialType = z.infer<typeof iconManagerPartialSchema>