@sanity/presets 0.0.2 → 0.2.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/dist/index.d.ts CHANGED
@@ -1,4 +1,30 @@
1
- import * as sanity from "sanity";
2
- declare function presetsComposer(): sanity.PluginOptions;
3
- export { presetsComposer };
1
+ import { PluginOptions, SchemaTypeDefinition } from "sanity";
2
+ import * as _____0 from "../..";
3
+ /**
4
+ * @internal
5
+ */
6
+ declare const presetProvider: unique symbol;
7
+ declare const visitedFactories: unique symbol;
8
+ type PresetProvider = 'user' | 'system';
9
+ interface BaseContext {
10
+ [presetProvider]?: PresetProvider;
11
+ [visitedFactories]?: WeakSet<WeakKey>;
12
+ }
13
+ interface PresetResult {
14
+ type: SchemaTypeDefinition;
15
+ [presetProvider]: PresetProvider;
16
+ }
17
+ declare function presets(...types: PresetResult[][]): PluginOptions;
18
+ declare const LINK_TYPE_NAME = "core.presets.link";
19
+ interface LinkTypeConfig {
20
+ internalTypes?: string[];
21
+ }
22
+ declare const linkType: (context?: (BaseContext & LinkTypeConfig) | undefined) => _____0.PresetResult[];
23
+ declare const ctaType: (context?: (BaseContext & void) | undefined) => _____0.PresetResult[];
24
+ interface PageTypeConfig {
25
+ pageBuilderBlocks: string[];
26
+ }
27
+ declare const pageType: (context?: (BaseContext & PageTypeConfig) | undefined) => _____0.PresetResult[];
28
+ declare const seoType: (context?: (BaseContext & void) | undefined) => _____0.PresetResult[];
29
+ export { LINK_TYPE_NAME, type LinkTypeConfig, type PresetResult, ctaType, linkType, pageType, presets, seoType };
4
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":";iBAEgB,eAAA,CAAA,GAAe,MAAA,CAAA,aAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/definePresetType.ts","../src/types.ts","../src/composer.ts","../src/presets/link-type/constants.ts","../src/presets/link-type/index.ts","../src/presets/cta-type/index.ts","../src/presets/page-type/index.ts","../src/presets/seo-type/index.ts"],"mappings":";;;AAOA;;cAAa,cAAA;AAAA,cAEP,gBAAA;AAAA,KAEM,cAAA;AAAA,UAIK,WAAA;EAAA,CACd,cAAA,IAAkB,cAAA;EAAA,CAClB,gBAAA,IAAoB,OAAA,CAAQ,OAAA;AAAA;AAAA,UCbd,YAAA;EACf,IAAA,EAAM,oBAAA;EAAA,CACL,cAAA,GAAiB,cAAA;AAAA;AAAA,iBCoCJ,OAAA,CAAA,GAAW,KAAA,EAAO,YAAA,OAAmB,aAAA;AAAA,cC1CxC,cAAA;AAAA,UCOI,cAAA;EACf,aAAA;AAAA;AAAA,cAGW,QAAA,GAAQ,OAAA,IAiEnB,WAAA,GAjEmB,cAAA,kBAAA,MAAA,CAAA,YAAA;AAAA,cCNR,OAAA,GAAO,OAAA,IAyBlB,WAAA,yBAzBkB,MAAA,CAAA,YAAA;AAAA,UCAH,cAAA;EACf,iBAAA;AAAA;AAAA,cAGW,QAAA,GAAQ,OAAA,IA6DnB,WAAA,GA7DmB,cAAA,kBAAA,MAAA,CAAA,YAAA;AAAA,cCJR,OAAA,GAAO,OAAA,IAoDlB,WAAA,yBApDkB,MAAA,CAAA,YAAA"}
package/dist/index.js CHANGED
@@ -1,10 +1,230 @@
1
- import { definePlugin } from "sanity";
2
- function presetsComposer() {
3
- return definePlugin({
4
- name: "@sanity/presets"
5
- })();
1
+ import { defineType, defineField, ALL_FIELDS_GROUP, defineArrayMember } from "sanity";
2
+ import { getImageDimensions } from "@sanity/asset-utils";
3
+ const presetProvider = /* @__PURE__ */ Symbol("presetProvider"), visitedFactories = /* @__PURE__ */ Symbol("visitedFactories");
4
+ function definePresetType(factory) {
5
+ return function(context) {
6
+ const {
7
+ schemaType,
8
+ composes = []
9
+ } = factory(context), visited = context?.[visitedFactories] ?? /* @__PURE__ */ new WeakSet();
10
+ if (visited.has(factory))
11
+ throw new Error(`Found circular dependency resolving preset \`${schemaType.name}\`.`);
12
+ return visited.add(factory), composes.flatMap((composedFactory) => composedFactory({
13
+ [presetProvider]: "system",
14
+ [visitedFactories]: visited
15
+ })).concat({
16
+ type: schemaType,
17
+ [presetProvider]: context?.[presetProvider] ?? "user"
18
+ });
19
+ };
6
20
  }
21
+ function collectTypes(presets2) {
22
+ const userSeen = /* @__PURE__ */ new Set(), systemSeen = /* @__PURE__ */ new Set();
23
+ return presets2.flat().toSorted(sortUserPrecedence).filter((preset) => {
24
+ const {
25
+ type
26
+ } = preset, provider = preset[presetProvider];
27
+ return userSeen.has(type.name) ? (provider === "user" && console.warn(`[@sanity/presets] Dropped duplicate type "${type.name}". Keeping first definition.`), !1) : systemSeen.has(type.name) ? !1 : (provider === "user" && userSeen.add(type.name), provider === "system" && systemSeen.add(type.name), !0);
28
+ }).map(({
29
+ type
30
+ }) => type);
31
+ }
32
+ function presets(...types) {
33
+ return {
34
+ name: "@sanity/presets",
35
+ schema: {
36
+ types: collectTypes(types)
37
+ }
38
+ };
39
+ }
40
+ function sortUserPrecedence(a, b) {
41
+ return a[presetProvider] === "user" && b[presetProvider] === "system" ? -1 : a[presetProvider] === "system" && b[presetProvider] === "user" ? 1 : 0;
42
+ }
43
+ const LINK_TYPE_NAME = "core.presets.link", linkType = definePresetType((context) => {
44
+ const referenceTargets = (context?.internalTypes ?? [] ?? []).map((typeName) => ({
45
+ type: typeName
46
+ }));
47
+ return {
48
+ schemaType: defineType({
49
+ name: LINK_TYPE_NAME,
50
+ type: "object",
51
+ title: "Link",
52
+ fields: [defineField({
53
+ name: "linkType",
54
+ type: "string",
55
+ title: "Link Type",
56
+ initialValue: "internal",
57
+ options: {
58
+ layout: "radio",
59
+ list: [{
60
+ title: "Internal",
61
+ value: "internal"
62
+ }, {
63
+ title: "External",
64
+ value: "external"
65
+ }]
66
+ }
67
+ }), defineField({
68
+ name: "reference",
69
+ type: "reference",
70
+ title: "Internal Link",
71
+ to: referenceTargets,
72
+ hidden: ({
73
+ parent
74
+ }) => parent?.linkType === "external"
75
+ }), defineField({
76
+ name: "url",
77
+ type: "url",
78
+ title: "URL",
79
+ hidden: ({
80
+ parent
81
+ }) => parent?.linkType === "internal",
82
+ validation: (rule) => rule.uri({
83
+ scheme: ["http", "https", "mailto", "tel"]
84
+ })
85
+ }), defineField({
86
+ name: "openInNewTab",
87
+ type: "boolean",
88
+ title: "Open in New Tab",
89
+ initialValue: !1,
90
+ hidden: ({
91
+ parent
92
+ }) => parent?.linkType === "internal"
93
+ })],
94
+ preview: {
95
+ select: {
96
+ linkType: "linkType",
97
+ url: "url",
98
+ referenceTitle: "reference.title"
99
+ },
100
+ prepare({
101
+ linkType: linkType2,
102
+ url,
103
+ referenceTitle
104
+ }) {
105
+ return {
106
+ title: linkType2 === "external" ? url || "No URL" : referenceTitle || "No reference",
107
+ subtitle: linkType2 === "external" ? "External link" : "Internal link"
108
+ };
109
+ }
110
+ }
111
+ })
112
+ };
113
+ }), ctaType = definePresetType(() => ({
114
+ composes: [linkType],
115
+ schemaType: defineType({
116
+ name: "core.presets.cta",
117
+ type: "object",
118
+ title: "Call to action",
119
+ fields: [defineField({
120
+ name: "link",
121
+ title: "Link",
122
+ type: LINK_TYPE_NAME
123
+ }), defineField({
124
+ name: "level",
125
+ title: "Level",
126
+ type: "number",
127
+ options: {
128
+ layout: "radio",
129
+ list: [1, 2, 3]
130
+ }
131
+ })]
132
+ })
133
+ })), seoType = definePresetType(() => ({
134
+ schemaType: defineType({
135
+ name: "core.presets.seo",
136
+ type: "object",
137
+ title: "Web page metadata (SEO)",
138
+ fields: [defineField({
139
+ name: "title",
140
+ title: "Title",
141
+ type: "string",
142
+ validation: (rule) => rule.max(70).info("Search engines may truncate this title.")
143
+ }), defineField({
144
+ name: "description",
145
+ title: "Description",
146
+ type: "text",
147
+ validation: (rule) => rule.max(150).info("Search engines may truncate this description.")
148
+ }), defineField({
149
+ name: "ogImage",
150
+ title: "Open Graph image",
151
+ type: "image",
152
+ description: "Landscape 1200x630 (1.91:1)",
153
+ options: {
154
+ hotspot: {
155
+ previews: [{
156
+ title: "Landscape (1.91:1)",
157
+ aspectRatio: 1.91 / 1
158
+ }]
159
+ }
160
+ },
161
+ validation: (Rule) => Rule.custom((value) => {
162
+ if (!value?.asset?._ref)
163
+ return !0;
164
+ const {
165
+ height,
166
+ width
167
+ } = getImageDimensions(value.asset?._ref);
168
+ return height !== 630 || width !== 1200 ? "Open Graph image must be 1200x630" : !0;
169
+ })
170
+ })]
171
+ })
172
+ })), pageType = definePresetType((context) => {
173
+ const pageBuilderBlocks = context?.pageBuilderBlocks ?? [];
174
+ return {
175
+ composes: [seoType],
176
+ schemaType: defineType({
177
+ name: "core.presets.page",
178
+ type: "document",
179
+ title: "Page",
180
+ groups: [{
181
+ ...ALL_FIELDS_GROUP,
182
+ hidden: !0
183
+ }, {
184
+ name: "main",
185
+ title: "Main",
186
+ default: !0
187
+ }, {
188
+ name: "metadata",
189
+ title: "Metadata"
190
+ }],
191
+ fields: [defineField({
192
+ name: "name",
193
+ title: "Name",
194
+ type: "string",
195
+ group: "main",
196
+ validation: (rule) => rule.required()
197
+ }), defineField({
198
+ name: "slug",
199
+ title: "Slug",
200
+ type: "slug",
201
+ group: "main",
202
+ options: {
203
+ source: "name"
204
+ }
205
+ }), defineField({
206
+ name: "content",
207
+ title: "Content",
208
+ group: "main",
209
+ type: "array",
210
+ of: pageBuilderBlocks.map((typeName) => defineArrayMember({
211
+ type: typeName
212
+ }))
213
+ }), defineField({
214
+ name: "seo",
215
+ title: "SEO",
216
+ type: "core.presets.seo",
217
+ group: "metadata"
218
+ })]
219
+ })
220
+ };
221
+ });
7
222
  export {
8
- presetsComposer
223
+ LINK_TYPE_NAME,
224
+ ctaType,
225
+ linkType,
226
+ pageType,
227
+ presets,
228
+ seoType
9
229
  };
10
230
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import {definePlugin} from 'sanity'\n\nexport function presetsComposer() {\n return definePlugin({\n name: '@sanity/presets',\n })()\n}\n"],"names":["presetsComposer","definePlugin","name"],"mappings":";AAEO,SAASA,kBAAkB;AAChC,SAAOC,aAAa;AAAA,IAClBC,MAAM;AAAA,EAAA,CACP,EAAA;AACH;"}
1
+ {"version":3,"file":"index.js","sources":["../src/definePresetType.ts","../src/composer.ts","../src/presets/link-type/constants.ts","../src/presets/link-type/index.ts","../src/presets/cta-type/index.ts","../src/presets/seo-type/index.ts","../src/presets/page-type/index.ts"],"sourcesContent":["import type {SchemaTypeDefinition} from 'sanity'\n\nimport type {PresetResult} from './types'\n\n/**\n * @internal\n */\nexport const presetProvider: unique symbol = Symbol('presetProvider')\n\nconst visitedFactories: unique symbol = Symbol('visitedFactories')\n\nexport type PresetProvider = 'user' | 'system'\n\nexport type PresetResultFactory = (...args: any[]) => PresetResult[]\n\nexport interface BaseContext {\n [presetProvider]?: PresetProvider\n [visitedFactories]?: WeakSet<WeakKey>\n}\n\nexport interface PresetTypeContext {\n [presetProvider]?: PresetProvider\n schemaType: SchemaTypeDefinition\n composes?: PresetResultFactory[]\n}\n\nexport function definePresetType<Context = void>(\n factory: (context?: Context) => PresetTypeContext,\n): (context?: BaseContext & Context) => PresetResult[] {\n return function define(context) {\n const {schemaType, composes = []} = factory(context)\n const visited = context?.[visitedFactories] ?? new WeakSet()\n\n if (visited.has(factory)) {\n throw new Error(`Found circular dependency resolving preset \\`${schemaType.name}\\`.`)\n }\n\n visited.add(factory)\n\n const dependencies = composes.flatMap<PresetResult>((composedFactory) =>\n composedFactory({\n [presetProvider]: 'system',\n [visitedFactories]: visited,\n }),\n )\n\n return dependencies.concat({\n type: schemaType,\n [presetProvider]: context?.[presetProvider] ?? 'user',\n })\n }\n}\n","import {type PluginOptions, type SchemaTypeDefinition} from 'sanity'\n\nimport {presetProvider} from './definePresetType'\nimport type {PresetResult} from './types'\n\nexport function collectTypes(presets: PresetResult[][]): SchemaTypeDefinition[] {\n const userSeen = new Set<string>()\n const systemSeen = new Set<string>()\n\n return presets\n .flat()\n .toSorted(sortUserPrecedence)\n .filter((preset) => {\n const {type} = preset\n const provider = preset[presetProvider]\n\n if (userSeen.has(type.name)) {\n if (provider === 'user') {\n console.warn(\n `[@sanity/presets] Dropped duplicate type \"${type.name}\". Keeping first definition.`,\n )\n }\n return false\n }\n\n if (systemSeen.has(type.name)) {\n return false\n }\n\n if (provider === 'user') {\n userSeen.add(type.name)\n }\n\n if (provider === 'system') {\n systemSeen.add(type.name)\n }\n\n return true\n })\n .map(({type}) => type)\n}\n\nexport function presets(...types: PresetResult[][]): PluginOptions {\n return {\n name: '@sanity/presets',\n schema: {types: collectTypes(types)},\n }\n}\n\nfunction sortUserPrecedence(a: PresetResult, b: PresetResult): number {\n if (a[presetProvider] === 'user' && b[presetProvider] === 'system') {\n return -1\n }\n\n if (a[presetProvider] === 'system' && b[presetProvider] === 'user') {\n return 1\n }\n\n return 0\n}\n","export const LINK_TYPE_NAME = 'core.presets.link'\n","import {defineField, defineType} from 'sanity'\n\nimport {definePresetType} from '../../definePresetType'\nimport {LINK_TYPE_NAME} from './constants'\n\nexport {LINK_TYPE_NAME} from './constants'\n\nexport interface LinkTypeConfig {\n internalTypes?: string[]\n}\n\nexport const linkType = definePresetType<LinkTypeConfig>((context) => {\n const internalTypes = context?.internalTypes ?? []\n const referenceTargets = (internalTypes ?? []).map((typeName) => ({type: typeName}))\n\n return {\n schemaType: defineType({\n name: LINK_TYPE_NAME,\n type: 'object',\n title: 'Link',\n fields: [\n defineField({\n name: 'linkType',\n type: 'string',\n title: 'Link Type',\n initialValue: 'internal',\n options: {\n layout: 'radio',\n list: [\n {title: 'Internal', value: 'internal'},\n {title: 'External', value: 'external'},\n ],\n },\n }),\n defineField({\n name: 'reference',\n type: 'reference',\n title: 'Internal Link',\n to: referenceTargets,\n hidden: ({parent}) => parent?.linkType === 'external',\n }),\n defineField({\n name: 'url',\n type: 'url',\n title: 'URL',\n hidden: ({parent}) => parent?.linkType === 'internal',\n validation: (rule) =>\n rule.uri({\n scheme: ['http', 'https', 'mailto', 'tel'],\n }),\n }),\n defineField({\n name: 'openInNewTab',\n type: 'boolean',\n title: 'Open in New Tab',\n initialValue: false,\n hidden: ({parent}) => parent?.linkType === 'internal',\n }),\n ],\n preview: {\n select: {\n linkType: 'linkType',\n url: 'url',\n referenceTitle: 'reference.title',\n },\n prepare({linkType, url, referenceTitle}) {\n const title = linkType === 'external' ? url || 'No URL' : referenceTitle || 'No reference'\n\n return {\n title,\n subtitle: linkType === 'external' ? 'External link' : 'Internal link',\n }\n },\n },\n }),\n }\n})\n","import {defineField, defineType} from 'sanity'\n\nimport {definePresetType} from '../../definePresetType'\nimport {LINK_TYPE_NAME, linkType} from '../link-type'\n\nexport const ctaType = definePresetType(() => {\n return {\n composes: [linkType],\n schemaType: defineType({\n name: 'core.presets.cta',\n type: 'object',\n title: 'Call to action',\n fields: [\n defineField({\n name: 'link',\n title: 'Link',\n type: LINK_TYPE_NAME,\n }),\n defineField({\n name: 'level',\n title: 'Level',\n type: 'number',\n options: {\n layout: 'radio',\n list: [1, 2, 3],\n },\n }),\n ],\n }),\n }\n})\n","import {getImageDimensions} from '@sanity/asset-utils'\nimport {defineField, defineType} from 'sanity'\n\nimport {definePresetType} from '../../definePresetType'\n\nexport const seoType = definePresetType(() => {\n return {\n schemaType: defineType({\n name: 'core.presets.seo',\n type: 'object',\n title: 'Web page metadata (SEO)',\n fields: [\n defineField({\n name: 'title',\n title: 'Title',\n type: 'string',\n validation: (rule) => rule.max(70).info('Search engines may truncate this title.'),\n }),\n defineField({\n name: 'description',\n title: 'Description',\n type: 'text',\n validation: (rule) => rule.max(150).info('Search engines may truncate this description.'),\n }),\n defineField({\n name: 'ogImage',\n title: 'Open Graph image',\n type: 'image',\n description: 'Landscape 1200x630 (1.91:1)',\n options: {\n hotspot: {\n previews: [\n {\n title: 'Landscape (1.91:1)',\n aspectRatio: 1.91 / 1,\n },\n ],\n },\n },\n validation: (Rule) =>\n Rule.custom((value) => {\n if (!value?.asset?._ref) {\n return true\n }\n\n const {height, width} = getImageDimensions(value.asset?._ref)\n\n if (height !== 630 || width !== 1200) {\n return 'Open Graph image must be 1200x630'\n }\n\n return true\n }),\n }),\n ],\n }),\n }\n})\n","import {ALL_FIELDS_GROUP, defineArrayMember, defineField, defineType} from 'sanity'\n\nimport {definePresetType} from '../../definePresetType'\nimport {seoType} from '../seo-type'\n\nexport interface PageTypeConfig {\n pageBuilderBlocks: string[]\n}\n\nexport const pageType = definePresetType<PageTypeConfig>((context) => {\n const pageBuilderBlocks = context?.pageBuilderBlocks ?? []\n\n return {\n composes: [seoType],\n schemaType: defineType({\n name: 'core.presets.page',\n type: 'document',\n title: 'Page',\n groups: [\n {\n ...ALL_FIELDS_GROUP,\n hidden: true,\n },\n {\n name: 'main',\n title: 'Main',\n default: true,\n },\n {\n name: 'metadata',\n title: 'Metadata',\n },\n ],\n fields: [\n defineField({\n name: 'name',\n title: 'Name',\n type: 'string',\n group: 'main',\n validation: (rule) => rule.required(),\n }),\n defineField({\n name: 'slug',\n title: 'Slug',\n type: 'slug',\n group: 'main',\n options: {\n source: 'name',\n },\n }),\n defineField({\n name: 'content',\n title: 'Content',\n group: 'main',\n type: 'array',\n of: pageBuilderBlocks.map((typeName) =>\n defineArrayMember({\n type: typeName,\n }),\n ),\n }),\n defineField({\n name: 'seo',\n title: 'SEO',\n type: 'core.presets.seo',\n group: 'metadata',\n }),\n ],\n }),\n }\n})\n"],"names":["presetProvider","visitedFactories","definePresetType","factory","context","schemaType","composes","visited","WeakSet","has","Error","name","add","flatMap","composedFactory","concat","type","collectTypes","presets","userSeen","Set","systemSeen","flat","toSorted","sortUserPrecedence","filter","preset","provider","console","warn","map","types","schema","a","b","LINK_TYPE_NAME","linkType","referenceTargets","internalTypes","typeName","defineType","title","fields","defineField","initialValue","options","layout","list","value","to","hidden","parent","validation","rule","uri","scheme","preview","select","url","referenceTitle","prepare","subtitle","ctaType","seoType","max","info","description","hotspot","previews","aspectRatio","Rule","custom","asset","_ref","height","width","getImageDimensions","pageType","pageBuilderBlocks","groups","ALL_FIELDS_GROUP","default","group","required","source","of","defineArrayMember"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/presets",
3
- "version": "0.0.2",
3
+ "version": "0.2.0",
4
4
  "description": "Production ready preset patterns for Sanity Studio",
5
5
  "keywords": [
6
6
  "sanity",
@@ -26,9 +26,12 @@
26
26
  ".": "./dist/index.js",
27
27
  "./package.json": "./package.json"
28
28
  },
29
+ "dependencies": {
30
+ "@sanity/asset-utils": "^2.3.0"
31
+ },
29
32
  "devDependencies": {
30
- "@sanity/pkg-utils": "^10.4.9",
31
- "sanity": "^5.16.0",
33
+ "@sanity/pkg-utils": "^10.4.11",
34
+ "sanity": "^5.17.1",
32
35
  "@repo/package.config": "0.0.0",
33
36
  "@repo/tsconfig": "0.0.0"
34
37
  },