@confed/sanity-types 0.1.2 → 0.1.3-2511031831
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 +97 -41
- package/package.json +1 -1
- package/sanity.types.ts +812 -33
package/README.md
CHANGED
|
@@ -2,31 +2,76 @@
|
|
|
2
2
|
|
|
3
3
|
A TypeScript types package for the Confederation College Sanity CMS backend. This package provides auto-generated TypeScript definitions for all Sanity schema types, ensuring type safety across your frontend applications and API integrations.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Quick Start
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### Installation
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
```bash
|
|
10
|
+
npm install @confed/sanity-types
|
|
11
|
+
```
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
2. **GROQ queries** - Any TypeScript/JavaScript files in the `src/` directory that contain GROQ queries
|
|
13
|
+
### Basic Usage
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
```typescript
|
|
16
|
+
import type {Program, Event, Person} from '@confed/sanity-types'
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
// Use types in your components or API functions
|
|
19
|
+
const program: Program = {
|
|
20
|
+
_id: 'program-123',
|
|
21
|
+
_type: 'program',
|
|
22
|
+
_createdAt: '2024-01-01T00:00:00Z',
|
|
23
|
+
_updatedAt: '2024-01-01T00:00:00Z',
|
|
24
|
+
_rev: 'rev-123',
|
|
25
|
+
name: 'Computer Programming',
|
|
26
|
+
slug: {_type: 'slug', current: 'computer-programming'},
|
|
27
|
+
// ... other required fields
|
|
28
|
+
}
|
|
23
29
|
|
|
24
|
-
|
|
30
|
+
// Type-safe event handling
|
|
31
|
+
const handleEvent = (event: Event) => {
|
|
32
|
+
console.log(event.title) // Full IntelliSense support
|
|
33
|
+
console.log(event.startDate) // Type-safe date access
|
|
34
|
+
}
|
|
35
|
+
```
|
|
25
36
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
### Advanced Usage
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// Import multiple types
|
|
41
|
+
import type {
|
|
42
|
+
Program,
|
|
43
|
+
School,
|
|
44
|
+
Campus,
|
|
45
|
+
Person,
|
|
46
|
+
SanityImageAsset,
|
|
47
|
+
PtBasic
|
|
48
|
+
} from '@confed/sanity-types'
|
|
49
|
+
|
|
50
|
+
// Use with React components
|
|
51
|
+
interface ProgramCardProps {
|
|
52
|
+
program: Program
|
|
53
|
+
school?: School
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const ProgramCard: React.FC<ProgramCardProps> = ({ program, school }) => {
|
|
57
|
+
return (
|
|
58
|
+
<div>
|
|
59
|
+
<h2>{program.name}</h2>
|
|
60
|
+
{school && <p>School: {school.name}</p>}
|
|
61
|
+
{program.description && (
|
|
62
|
+
<div>{/* Portable text content */}</div>
|
|
63
|
+
)}
|
|
64
|
+
</div>
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Use with API functions
|
|
69
|
+
async function fetchProgram(id: string): Promise<Program | null> {
|
|
70
|
+
const response = await fetch(`/api/programs/${id}`)
|
|
71
|
+
if (!response.ok) return null
|
|
72
|
+
return response.json() as Promise<Program>
|
|
73
|
+
}
|
|
74
|
+
```
|
|
30
75
|
|
|
31
76
|
## Available Types
|
|
32
77
|
|
|
@@ -77,35 +122,36 @@ The generated types provide:
|
|
|
77
122
|
- **`Geopoint`** - Geographic coordinates
|
|
78
123
|
- **`MediaTag`** - Media tagging system
|
|
79
124
|
|
|
80
|
-
##
|
|
125
|
+
## How It Works
|
|
81
126
|
|
|
82
|
-
|
|
83
|
-
npm install @confed/sanity-types
|
|
84
|
-
```
|
|
127
|
+
This package uses [Sanity TypeGen](https://www.sanity.io/docs/sanity-typegen) to automatically generate TypeScript definitions from your Sanity schema. The types are generated from:
|
|
85
128
|
|
|
86
|
-
|
|
129
|
+
1. **Schema definitions** (`schema.json`) - Contains all your content type schemas
|
|
130
|
+
2. **GROQ queries** - Any TypeScript/JavaScript files in the `src/` directory that contain GROQ queries
|
|
87
131
|
|
|
88
|
-
|
|
89
|
-
import type {Program, Event, Person} from '@confed/sanity-types'
|
|
132
|
+
### Complete Workflow:
|
|
90
133
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
134
|
+
1. **Schema Changes** → You modify Sanity schemas
|
|
135
|
+
2. **Local Generation** → Pre-commit hook generates types automatically
|
|
136
|
+
3. **Commit** → Types and schema changes committed together
|
|
137
|
+
4. **CI/CD Trigger** → GitHub Actions workflow runs on push
|
|
138
|
+
5. **Verification** → Types regenerated in CI for verification
|
|
139
|
+
6. **Publishing** → If types changed, version bumped and published to npm
|
|
140
|
+
7. **Sanity Deployment** → Separate workflow deploys Sanity Studio (handled by `.github/workflows/deploy-sanity.yml`)
|
|
141
|
+
8. **No Circular Commits** → CI never commits back to your repository
|
|
142
|
+
|
|
143
|
+
The generated types provide:
|
|
144
|
+
|
|
145
|
+
- Full type safety for all your content types
|
|
146
|
+
- IntelliSense and autocomplete in your IDE
|
|
147
|
+
- Compile-time error checking for content structure
|
|
148
|
+
- Reference type safety for cross-referenced documents
|
|
103
149
|
|
|
104
150
|
## Keeping Types Up to Date
|
|
105
151
|
|
|
106
152
|
The types in this package are automatically generated and should **never be manually edited**. This project is configured with automatic type generation on every commit, so types stay current automatically.
|
|
107
153
|
|
|
108
|
-
**Current Status:**
|
|
154
|
+
**Current Status:** Types are regenerated on every commit via Husky pre-commit hooks, and automatically published to npm via CI/CD when changes are detected.
|
|
109
155
|
|
|
110
156
|
**Workflow:**
|
|
111
157
|
|
|
@@ -156,17 +202,27 @@ git commit -m "your message"
|
|
|
156
202
|
|
|
157
203
|
### 4. CI/CD Integration (Automated Publishing)
|
|
158
204
|
|
|
159
|
-
This project has automated CI/CD that
|
|
205
|
+
This project has automated CI/CD workflows that handle different concerns:
|
|
206
|
+
|
|
207
|
+
**Types Publishing** (`.github/workflows/publish-types.yml`):
|
|
160
208
|
|
|
161
209
|
```yaml
|
|
162
|
-
# .github/workflows/publish-types.yml
|
|
163
210
|
# Automatically runs on schema changes:
|
|
164
211
|
# - Generates types in CI for verification
|
|
165
212
|
# - Bumps version and publishes to npm if types changed
|
|
166
213
|
# - Does NOT commit back to repository (no circular commits)
|
|
167
214
|
```
|
|
168
215
|
|
|
169
|
-
**
|
|
216
|
+
**Sanity Studio Deployment** (`.github/workflows/deploy-sanity.yml`):
|
|
217
|
+
|
|
218
|
+
```yaml
|
|
219
|
+
# Automatically deploys Sanity Studio on schema/config changes:
|
|
220
|
+
# - Builds the Sanity Studio
|
|
221
|
+
# - Deploys to Sanity hosting
|
|
222
|
+
# - Separate from types publishing workflow
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Note:** The CI workflows are separated by concern. Type generation and commits are handled locally via pre-commit hooks.
|
|
170
226
|
|
|
171
227
|
## Configuration
|
|
172
228
|
|
package/package.json
CHANGED
package/sanity.types.ts
CHANGED
|
@@ -13,6 +13,588 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
// Source: schema.json
|
|
16
|
+
export type HeaderSection = {
|
|
17
|
+
_type: 'headerSection'
|
|
18
|
+
header: string
|
|
19
|
+
eyebrow?: string
|
|
20
|
+
introText?: string
|
|
21
|
+
options?: {
|
|
22
|
+
headerLevel?: 'h1' | 'h2' | 'h3' | 'h4'
|
|
23
|
+
backgroundColor?: 'light' | 'dark' | 'white' | 'black'
|
|
24
|
+
topSpacing?: 'default' | 'minimum' | 'none'
|
|
25
|
+
bottomSpacing?: 'none' | 'default' | 'minimum'
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export type MediaTextSection = {
|
|
30
|
+
_type: 'mediaTextSection'
|
|
31
|
+
text: Array<
|
|
32
|
+
| {
|
|
33
|
+
children?: Array<{
|
|
34
|
+
marks?: Array<string>
|
|
35
|
+
text?: string
|
|
36
|
+
_type: 'span'
|
|
37
|
+
_key: string
|
|
38
|
+
}>
|
|
39
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
40
|
+
listItem?: 'bullet' | 'number'
|
|
41
|
+
markDefs?: Array<{
|
|
42
|
+
href?: string
|
|
43
|
+
openInNewTab?: boolean
|
|
44
|
+
_type: 'link'
|
|
45
|
+
_key: string
|
|
46
|
+
}>
|
|
47
|
+
level?: number
|
|
48
|
+
_type: 'block'
|
|
49
|
+
_key: string
|
|
50
|
+
}
|
|
51
|
+
| {
|
|
52
|
+
asset?: {
|
|
53
|
+
_ref: string
|
|
54
|
+
_type: 'reference'
|
|
55
|
+
_weak?: boolean
|
|
56
|
+
[internalGroqTypeReferenceTo]?: 'sanity.imageAsset'
|
|
57
|
+
}
|
|
58
|
+
media?: unknown
|
|
59
|
+
hotspot?: SanityImageHotspot
|
|
60
|
+
crop?: SanityImageCrop
|
|
61
|
+
altText: string
|
|
62
|
+
caption?: string
|
|
63
|
+
_type: 'figure'
|
|
64
|
+
_key: string
|
|
65
|
+
}
|
|
66
|
+
| ({
|
|
67
|
+
_key: string
|
|
68
|
+
} & PtButton)
|
|
69
|
+
| {
|
|
70
|
+
url: string
|
|
71
|
+
title?: string
|
|
72
|
+
_type: 'ptYoutubeVideo'
|
|
73
|
+
_key: string
|
|
74
|
+
}
|
|
75
|
+
| {
|
|
76
|
+
body: Array<{
|
|
77
|
+
children?: Array<{
|
|
78
|
+
marks?: Array<string>
|
|
79
|
+
text?: string
|
|
80
|
+
_type: 'span'
|
|
81
|
+
_key: string
|
|
82
|
+
}>
|
|
83
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
84
|
+
listItem?: 'bullet' | 'number'
|
|
85
|
+
markDefs?: Array<{
|
|
86
|
+
href?: string
|
|
87
|
+
openInNewTab?: boolean
|
|
88
|
+
_type: 'link'
|
|
89
|
+
_key: string
|
|
90
|
+
}>
|
|
91
|
+
level?: number
|
|
92
|
+
_type: 'block'
|
|
93
|
+
_key: string
|
|
94
|
+
}>
|
|
95
|
+
kind: 'info' | 'tip' | 'important' | 'warning' | 'caution'
|
|
96
|
+
_type: 'note'
|
|
97
|
+
_key: string
|
|
98
|
+
}
|
|
99
|
+
| ({
|
|
100
|
+
_key: string
|
|
101
|
+
} & Table)
|
|
102
|
+
| {
|
|
103
|
+
title?: string
|
|
104
|
+
embedCode: Code
|
|
105
|
+
height?: number
|
|
106
|
+
responsive?: boolean
|
|
107
|
+
_type: 'embed'
|
|
108
|
+
_key: string
|
|
109
|
+
}
|
|
110
|
+
>
|
|
111
|
+
buttons?: Array<
|
|
112
|
+
{
|
|
113
|
+
_key: string
|
|
114
|
+
} & PtButton
|
|
115
|
+
>
|
|
116
|
+
image: {
|
|
117
|
+
asset?: {
|
|
118
|
+
_ref: string
|
|
119
|
+
_type: 'reference'
|
|
120
|
+
_weak?: boolean
|
|
121
|
+
[internalGroqTypeReferenceTo]?: 'sanity.imageAsset'
|
|
122
|
+
}
|
|
123
|
+
media?: unknown
|
|
124
|
+
hotspot?: SanityImageHotspot
|
|
125
|
+
crop?: SanityImageCrop
|
|
126
|
+
altText: string
|
|
127
|
+
caption?: string
|
|
128
|
+
_type: 'accessibleImage'
|
|
129
|
+
}
|
|
130
|
+
options?: {
|
|
131
|
+
backgroundColor?: 'light' | 'dark' | 'white' | 'black'
|
|
132
|
+
imagePosition?: 'left' | 'right'
|
|
133
|
+
spacing?: 'default' | 'minimum' | 'none'
|
|
134
|
+
reverseOnMobile?: boolean
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export type RichTextSection = {
|
|
139
|
+
_type: 'richTextSection'
|
|
140
|
+
content?: Array<
|
|
141
|
+
| {
|
|
142
|
+
children?: Array<{
|
|
143
|
+
marks?: Array<string>
|
|
144
|
+
text?: string
|
|
145
|
+
_type: 'span'
|
|
146
|
+
_key: string
|
|
147
|
+
}>
|
|
148
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
149
|
+
listItem?: 'bullet' | 'number'
|
|
150
|
+
markDefs?: Array<{
|
|
151
|
+
href?: string
|
|
152
|
+
openInNewTab?: boolean
|
|
153
|
+
_type: 'link'
|
|
154
|
+
_key: string
|
|
155
|
+
}>
|
|
156
|
+
level?: number
|
|
157
|
+
_type: 'block'
|
|
158
|
+
_key: string
|
|
159
|
+
}
|
|
160
|
+
| {
|
|
161
|
+
asset?: {
|
|
162
|
+
_ref: string
|
|
163
|
+
_type: 'reference'
|
|
164
|
+
_weak?: boolean
|
|
165
|
+
[internalGroqTypeReferenceTo]?: 'sanity.imageAsset'
|
|
166
|
+
}
|
|
167
|
+
media?: unknown
|
|
168
|
+
hotspot?: SanityImageHotspot
|
|
169
|
+
crop?: SanityImageCrop
|
|
170
|
+
altText: string
|
|
171
|
+
caption?: string
|
|
172
|
+
_type: 'figure'
|
|
173
|
+
_key: string
|
|
174
|
+
}
|
|
175
|
+
| ({
|
|
176
|
+
_key: string
|
|
177
|
+
} & PtButton)
|
|
178
|
+
| {
|
|
179
|
+
url: string
|
|
180
|
+
title?: string
|
|
181
|
+
_type: 'ptYoutubeVideo'
|
|
182
|
+
_key: string
|
|
183
|
+
}
|
|
184
|
+
| {
|
|
185
|
+
body: Array<{
|
|
186
|
+
children?: Array<{
|
|
187
|
+
marks?: Array<string>
|
|
188
|
+
text?: string
|
|
189
|
+
_type: 'span'
|
|
190
|
+
_key: string
|
|
191
|
+
}>
|
|
192
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
193
|
+
listItem?: 'bullet' | 'number'
|
|
194
|
+
markDefs?: Array<{
|
|
195
|
+
href?: string
|
|
196
|
+
openInNewTab?: boolean
|
|
197
|
+
_type: 'link'
|
|
198
|
+
_key: string
|
|
199
|
+
}>
|
|
200
|
+
level?: number
|
|
201
|
+
_type: 'block'
|
|
202
|
+
_key: string
|
|
203
|
+
}>
|
|
204
|
+
kind: 'info' | 'tip' | 'important' | 'warning' | 'caution'
|
|
205
|
+
_type: 'note'
|
|
206
|
+
_key: string
|
|
207
|
+
}
|
|
208
|
+
| ({
|
|
209
|
+
_key: string
|
|
210
|
+
} & Table)
|
|
211
|
+
| {
|
|
212
|
+
title?: string
|
|
213
|
+
embedCode: Code
|
|
214
|
+
height?: number
|
|
215
|
+
responsive?: boolean
|
|
216
|
+
_type: 'embed'
|
|
217
|
+
_key: string
|
|
218
|
+
}
|
|
219
|
+
>
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
export type GallerySection = {
|
|
223
|
+
_type: 'gallerySection'
|
|
224
|
+
title?: string
|
|
225
|
+
introduction?: Array<
|
|
226
|
+
| {
|
|
227
|
+
children?: Array<{
|
|
228
|
+
marks?: Array<string>
|
|
229
|
+
text?: string
|
|
230
|
+
_type: 'span'
|
|
231
|
+
_key: string
|
|
232
|
+
}>
|
|
233
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
234
|
+
listItem?: 'bullet' | 'number'
|
|
235
|
+
markDefs?: Array<{
|
|
236
|
+
href?: string
|
|
237
|
+
openInNewTab?: boolean
|
|
238
|
+
_type: 'link'
|
|
239
|
+
_key: string
|
|
240
|
+
}>
|
|
241
|
+
level?: number
|
|
242
|
+
_type: 'block'
|
|
243
|
+
_key: string
|
|
244
|
+
}
|
|
245
|
+
| {
|
|
246
|
+
asset?: {
|
|
247
|
+
_ref: string
|
|
248
|
+
_type: 'reference'
|
|
249
|
+
_weak?: boolean
|
|
250
|
+
[internalGroqTypeReferenceTo]?: 'sanity.imageAsset'
|
|
251
|
+
}
|
|
252
|
+
media?: unknown
|
|
253
|
+
hotspot?: SanityImageHotspot
|
|
254
|
+
crop?: SanityImageCrop
|
|
255
|
+
altText: string
|
|
256
|
+
caption?: string
|
|
257
|
+
_type: 'figure'
|
|
258
|
+
_key: string
|
|
259
|
+
}
|
|
260
|
+
| ({
|
|
261
|
+
_key: string
|
|
262
|
+
} & PtButton)
|
|
263
|
+
| {
|
|
264
|
+
url: string
|
|
265
|
+
title?: string
|
|
266
|
+
_type: 'ptYoutubeVideo'
|
|
267
|
+
_key: string
|
|
268
|
+
}
|
|
269
|
+
| {
|
|
270
|
+
body: Array<{
|
|
271
|
+
children?: Array<{
|
|
272
|
+
marks?: Array<string>
|
|
273
|
+
text?: string
|
|
274
|
+
_type: 'span'
|
|
275
|
+
_key: string
|
|
276
|
+
}>
|
|
277
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
278
|
+
listItem?: 'bullet' | 'number'
|
|
279
|
+
markDefs?: Array<{
|
|
280
|
+
href?: string
|
|
281
|
+
openInNewTab?: boolean
|
|
282
|
+
_type: 'link'
|
|
283
|
+
_key: string
|
|
284
|
+
}>
|
|
285
|
+
level?: number
|
|
286
|
+
_type: 'block'
|
|
287
|
+
_key: string
|
|
288
|
+
}>
|
|
289
|
+
kind: 'info' | 'tip' | 'important' | 'warning' | 'caution'
|
|
290
|
+
_type: 'note'
|
|
291
|
+
_key: string
|
|
292
|
+
}
|
|
293
|
+
| ({
|
|
294
|
+
_key: string
|
|
295
|
+
} & Table)
|
|
296
|
+
| {
|
|
297
|
+
title?: string
|
|
298
|
+
embedCode: Code
|
|
299
|
+
height?: number
|
|
300
|
+
responsive?: boolean
|
|
301
|
+
_type: 'embed'
|
|
302
|
+
_key: string
|
|
303
|
+
}
|
|
304
|
+
>
|
|
305
|
+
images?: Array<{
|
|
306
|
+
asset?: {
|
|
307
|
+
_ref: string
|
|
308
|
+
_type: 'reference'
|
|
309
|
+
_weak?: boolean
|
|
310
|
+
[internalGroqTypeReferenceTo]?: 'sanity.imageAsset'
|
|
311
|
+
}
|
|
312
|
+
media?: unknown
|
|
313
|
+
hotspot?: SanityImageHotspot
|
|
314
|
+
crop?: SanityImageCrop
|
|
315
|
+
altText: string
|
|
316
|
+
caption?: string
|
|
317
|
+
_type: 'accessibleImage'
|
|
318
|
+
_key: string
|
|
319
|
+
}>
|
|
320
|
+
layout?: 'grid' | 'carousel'
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
export type StaffListSection = {
|
|
324
|
+
_type: 'staffListSection'
|
|
325
|
+
title?: string
|
|
326
|
+
intro?: Array<
|
|
327
|
+
| {
|
|
328
|
+
children?: Array<{
|
|
329
|
+
marks?: Array<string>
|
|
330
|
+
text?: string
|
|
331
|
+
_type: 'span'
|
|
332
|
+
_key: string
|
|
333
|
+
}>
|
|
334
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
335
|
+
listItem?: 'bullet' | 'number'
|
|
336
|
+
markDefs?: Array<{
|
|
337
|
+
href?: string
|
|
338
|
+
openInNewTab?: boolean
|
|
339
|
+
_type: 'link'
|
|
340
|
+
_key: string
|
|
341
|
+
}>
|
|
342
|
+
level?: number
|
|
343
|
+
_type: 'block'
|
|
344
|
+
_key: string
|
|
345
|
+
}
|
|
346
|
+
| {
|
|
347
|
+
asset?: {
|
|
348
|
+
_ref: string
|
|
349
|
+
_type: 'reference'
|
|
350
|
+
_weak?: boolean
|
|
351
|
+
[internalGroqTypeReferenceTo]?: 'sanity.imageAsset'
|
|
352
|
+
}
|
|
353
|
+
media?: unknown
|
|
354
|
+
hotspot?: SanityImageHotspot
|
|
355
|
+
crop?: SanityImageCrop
|
|
356
|
+
altText: string
|
|
357
|
+
caption?: string
|
|
358
|
+
_type: 'figure'
|
|
359
|
+
_key: string
|
|
360
|
+
}
|
|
361
|
+
| ({
|
|
362
|
+
_key: string
|
|
363
|
+
} & PtButton)
|
|
364
|
+
| {
|
|
365
|
+
url: string
|
|
366
|
+
title?: string
|
|
367
|
+
_type: 'ptYoutubeVideo'
|
|
368
|
+
_key: string
|
|
369
|
+
}
|
|
370
|
+
| {
|
|
371
|
+
body: Array<{
|
|
372
|
+
children?: Array<{
|
|
373
|
+
marks?: Array<string>
|
|
374
|
+
text?: string
|
|
375
|
+
_type: 'span'
|
|
376
|
+
_key: string
|
|
377
|
+
}>
|
|
378
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
379
|
+
listItem?: 'bullet' | 'number'
|
|
380
|
+
markDefs?: Array<{
|
|
381
|
+
href?: string
|
|
382
|
+
openInNewTab?: boolean
|
|
383
|
+
_type: 'link'
|
|
384
|
+
_key: string
|
|
385
|
+
}>
|
|
386
|
+
level?: number
|
|
387
|
+
_type: 'block'
|
|
388
|
+
_key: string
|
|
389
|
+
}>
|
|
390
|
+
kind: 'info' | 'tip' | 'important' | 'warning' | 'caution'
|
|
391
|
+
_type: 'note'
|
|
392
|
+
_key: string
|
|
393
|
+
}
|
|
394
|
+
| ({
|
|
395
|
+
_key: string
|
|
396
|
+
} & Table)
|
|
397
|
+
| {
|
|
398
|
+
title?: string
|
|
399
|
+
embedCode: Code
|
|
400
|
+
height?: number
|
|
401
|
+
responsive?: boolean
|
|
402
|
+
_type: 'embed'
|
|
403
|
+
_key: string
|
|
404
|
+
}
|
|
405
|
+
>
|
|
406
|
+
staffMembers?: Array<{
|
|
407
|
+
_ref: string
|
|
408
|
+
_type: 'reference'
|
|
409
|
+
_weak?: boolean
|
|
410
|
+
_key: string
|
|
411
|
+
[internalGroqTypeReferenceTo]?: 'person'
|
|
412
|
+
}>
|
|
413
|
+
layout?: 'grid' | 'list' | 'cards'
|
|
414
|
+
displayOptions?: {
|
|
415
|
+
showPhotos?: boolean
|
|
416
|
+
showContactInfo?: boolean
|
|
417
|
+
showDescription?: boolean
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
export type FaqSection = {
|
|
422
|
+
_type: 'faqSection'
|
|
423
|
+
title?: string
|
|
424
|
+
intro?: Array<
|
|
425
|
+
| {
|
|
426
|
+
children?: Array<{
|
|
427
|
+
marks?: Array<string>
|
|
428
|
+
text?: string
|
|
429
|
+
_type: 'span'
|
|
430
|
+
_key: string
|
|
431
|
+
}>
|
|
432
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
433
|
+
listItem?: 'bullet' | 'number'
|
|
434
|
+
markDefs?: Array<{
|
|
435
|
+
href?: string
|
|
436
|
+
openInNewTab?: boolean
|
|
437
|
+
_type: 'link'
|
|
438
|
+
_key: string
|
|
439
|
+
}>
|
|
440
|
+
level?: number
|
|
441
|
+
_type: 'block'
|
|
442
|
+
_key: string
|
|
443
|
+
}
|
|
444
|
+
| {
|
|
445
|
+
asset?: {
|
|
446
|
+
_ref: string
|
|
447
|
+
_type: 'reference'
|
|
448
|
+
_weak?: boolean
|
|
449
|
+
[internalGroqTypeReferenceTo]?: 'sanity.imageAsset'
|
|
450
|
+
}
|
|
451
|
+
media?: unknown
|
|
452
|
+
hotspot?: SanityImageHotspot
|
|
453
|
+
crop?: SanityImageCrop
|
|
454
|
+
altText: string
|
|
455
|
+
caption?: string
|
|
456
|
+
_type: 'figure'
|
|
457
|
+
_key: string
|
|
458
|
+
}
|
|
459
|
+
| ({
|
|
460
|
+
_key: string
|
|
461
|
+
} & PtButton)
|
|
462
|
+
| {
|
|
463
|
+
url: string
|
|
464
|
+
title?: string
|
|
465
|
+
_type: 'ptYoutubeVideo'
|
|
466
|
+
_key: string
|
|
467
|
+
}
|
|
468
|
+
| {
|
|
469
|
+
body: Array<{
|
|
470
|
+
children?: Array<{
|
|
471
|
+
marks?: Array<string>
|
|
472
|
+
text?: string
|
|
473
|
+
_type: 'span'
|
|
474
|
+
_key: string
|
|
475
|
+
}>
|
|
476
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
477
|
+
listItem?: 'bullet' | 'number'
|
|
478
|
+
markDefs?: Array<{
|
|
479
|
+
href?: string
|
|
480
|
+
openInNewTab?: boolean
|
|
481
|
+
_type: 'link'
|
|
482
|
+
_key: string
|
|
483
|
+
}>
|
|
484
|
+
level?: number
|
|
485
|
+
_type: 'block'
|
|
486
|
+
_key: string
|
|
487
|
+
}>
|
|
488
|
+
kind: 'info' | 'tip' | 'important' | 'warning' | 'caution'
|
|
489
|
+
_type: 'note'
|
|
490
|
+
_key: string
|
|
491
|
+
}
|
|
492
|
+
| ({
|
|
493
|
+
_key: string
|
|
494
|
+
} & Table)
|
|
495
|
+
| {
|
|
496
|
+
title?: string
|
|
497
|
+
embedCode: Code
|
|
498
|
+
height?: number
|
|
499
|
+
responsive?: boolean
|
|
500
|
+
_type: 'embed'
|
|
501
|
+
_key: string
|
|
502
|
+
}
|
|
503
|
+
>
|
|
504
|
+
layout?: 'accordion' | 'list' | 'twoCols'
|
|
505
|
+
items?: Array<
|
|
506
|
+
{
|
|
507
|
+
_key: string
|
|
508
|
+
} & FaqItem
|
|
509
|
+
>
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
export type FaqItem = {
|
|
513
|
+
_type: 'faqItem'
|
|
514
|
+
question: string
|
|
515
|
+
answer: Array<
|
|
516
|
+
| {
|
|
517
|
+
children?: Array<{
|
|
518
|
+
marks?: Array<string>
|
|
519
|
+
text?: string
|
|
520
|
+
_type: 'span'
|
|
521
|
+
_key: string
|
|
522
|
+
}>
|
|
523
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
524
|
+
listItem?: 'bullet' | 'number'
|
|
525
|
+
markDefs?: Array<{
|
|
526
|
+
href?: string
|
|
527
|
+
openInNewTab?: boolean
|
|
528
|
+
_type: 'link'
|
|
529
|
+
_key: string
|
|
530
|
+
}>
|
|
531
|
+
level?: number
|
|
532
|
+
_type: 'block'
|
|
533
|
+
_key: string
|
|
534
|
+
}
|
|
535
|
+
| {
|
|
536
|
+
asset?: {
|
|
537
|
+
_ref: string
|
|
538
|
+
_type: 'reference'
|
|
539
|
+
_weak?: boolean
|
|
540
|
+
[internalGroqTypeReferenceTo]?: 'sanity.imageAsset'
|
|
541
|
+
}
|
|
542
|
+
media?: unknown
|
|
543
|
+
hotspot?: SanityImageHotspot
|
|
544
|
+
crop?: SanityImageCrop
|
|
545
|
+
altText: string
|
|
546
|
+
caption?: string
|
|
547
|
+
_type: 'figure'
|
|
548
|
+
_key: string
|
|
549
|
+
}
|
|
550
|
+
| ({
|
|
551
|
+
_key: string
|
|
552
|
+
} & PtButton)
|
|
553
|
+
| {
|
|
554
|
+
url: string
|
|
555
|
+
title?: string
|
|
556
|
+
_type: 'ptYoutubeVideo'
|
|
557
|
+
_key: string
|
|
558
|
+
}
|
|
559
|
+
| {
|
|
560
|
+
body: Array<{
|
|
561
|
+
children?: Array<{
|
|
562
|
+
marks?: Array<string>
|
|
563
|
+
text?: string
|
|
564
|
+
_type: 'span'
|
|
565
|
+
_key: string
|
|
566
|
+
}>
|
|
567
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
568
|
+
listItem?: 'bullet' | 'number'
|
|
569
|
+
markDefs?: Array<{
|
|
570
|
+
href?: string
|
|
571
|
+
openInNewTab?: boolean
|
|
572
|
+
_type: 'link'
|
|
573
|
+
_key: string
|
|
574
|
+
}>
|
|
575
|
+
level?: number
|
|
576
|
+
_type: 'block'
|
|
577
|
+
_key: string
|
|
578
|
+
}>
|
|
579
|
+
kind: 'info' | 'tip' | 'important' | 'warning' | 'caution'
|
|
580
|
+
_type: 'note'
|
|
581
|
+
_key: string
|
|
582
|
+
}
|
|
583
|
+
| ({
|
|
584
|
+
_key: string
|
|
585
|
+
} & Table)
|
|
586
|
+
| {
|
|
587
|
+
title?: string
|
|
588
|
+
embedCode: Code
|
|
589
|
+
height?: number
|
|
590
|
+
responsive?: boolean
|
|
591
|
+
_type: 'embed'
|
|
592
|
+
_key: string
|
|
593
|
+
}
|
|
594
|
+
>
|
|
595
|
+
anchorId?: Slug
|
|
596
|
+
}
|
|
597
|
+
|
|
16
598
|
export type MenuItem = {
|
|
17
599
|
_type: 'menuItem'
|
|
18
600
|
link: Link
|
|
@@ -100,21 +682,59 @@ export type PtBasic = Array<
|
|
|
100
682
|
_type: 'figure'
|
|
101
683
|
_key: string
|
|
102
684
|
}
|
|
103
|
-
| {
|
|
104
|
-
variant?: 'primary' | 'outlined'
|
|
105
|
-
text: string
|
|
106
|
-
link: string
|
|
107
|
-
_type: 'ptButton'
|
|
685
|
+
| ({
|
|
108
686
|
_key: string
|
|
109
|
-
}
|
|
687
|
+
} & PtButton)
|
|
110
688
|
| {
|
|
111
689
|
url: string
|
|
112
690
|
title?: string
|
|
113
691
|
_type: 'ptYoutubeVideo'
|
|
114
692
|
_key: string
|
|
115
693
|
}
|
|
694
|
+
| {
|
|
695
|
+
body: Array<{
|
|
696
|
+
children?: Array<{
|
|
697
|
+
marks?: Array<string>
|
|
698
|
+
text?: string
|
|
699
|
+
_type: 'span'
|
|
700
|
+
_key: string
|
|
701
|
+
}>
|
|
702
|
+
style?: 'normal' | 'lead' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote'
|
|
703
|
+
listItem?: 'bullet' | 'number'
|
|
704
|
+
markDefs?: Array<{
|
|
705
|
+
href?: string
|
|
706
|
+
openInNewTab?: boolean
|
|
707
|
+
_type: 'link'
|
|
708
|
+
_key: string
|
|
709
|
+
}>
|
|
710
|
+
level?: number
|
|
711
|
+
_type: 'block'
|
|
712
|
+
_key: string
|
|
713
|
+
}>
|
|
714
|
+
kind: 'info' | 'tip' | 'important' | 'warning' | 'caution'
|
|
715
|
+
_type: 'note'
|
|
716
|
+
_key: string
|
|
717
|
+
}
|
|
718
|
+
| ({
|
|
719
|
+
_key: string
|
|
720
|
+
} & Table)
|
|
721
|
+
| {
|
|
722
|
+
title?: string
|
|
723
|
+
embedCode: Code
|
|
724
|
+
height?: number
|
|
725
|
+
responsive?: boolean
|
|
726
|
+
_type: 'embed'
|
|
727
|
+
_key: string
|
|
728
|
+
}
|
|
116
729
|
>
|
|
117
730
|
|
|
731
|
+
export type PtButton = {
|
|
732
|
+
_type: 'ptButton'
|
|
733
|
+
variant?: 'primary' | 'outlined'
|
|
734
|
+
text: string
|
|
735
|
+
link: string
|
|
736
|
+
}
|
|
737
|
+
|
|
118
738
|
export type Figure = {
|
|
119
739
|
_type: 'figure'
|
|
120
740
|
asset?: {
|
|
@@ -290,7 +910,7 @@ export type NewsArticle = {
|
|
|
290
910
|
_type: 'accessibleImage'
|
|
291
911
|
}
|
|
292
912
|
body?: PtBasic
|
|
293
|
-
categories: Array<'media' | 'students' | 'employee'>
|
|
913
|
+
categories: Array<'media' | 'students' | 'employee' | 'alumni'>
|
|
294
914
|
dateCreated?: string
|
|
295
915
|
seo?: Seo
|
|
296
916
|
}
|
|
@@ -303,7 +923,48 @@ export type Webpage = {
|
|
|
303
923
|
_rev: string
|
|
304
924
|
title: string
|
|
305
925
|
slug: Slug
|
|
926
|
+
heroDescription?: string
|
|
927
|
+
heroButtons?: Array<
|
|
928
|
+
{
|
|
929
|
+
_key: string
|
|
930
|
+
} & PtButton
|
|
931
|
+
>
|
|
932
|
+
mainImage?: {
|
|
933
|
+
asset?: {
|
|
934
|
+
_ref: string
|
|
935
|
+
_type: 'reference'
|
|
936
|
+
_weak?: boolean
|
|
937
|
+
[internalGroqTypeReferenceTo]?: 'sanity.imageAsset'
|
|
938
|
+
}
|
|
939
|
+
media?: unknown
|
|
940
|
+
hotspot?: SanityImageHotspot
|
|
941
|
+
crop?: SanityImageCrop
|
|
942
|
+
altText: string
|
|
943
|
+
caption?: string
|
|
944
|
+
_type: 'accessibleImage'
|
|
945
|
+
}
|
|
946
|
+
introduction?: string
|
|
306
947
|
body?: PtBasic
|
|
948
|
+
pageBuilder?: Array<
|
|
949
|
+
| ({
|
|
950
|
+
_key: string
|
|
951
|
+
} & MediaTextSection)
|
|
952
|
+
| ({
|
|
953
|
+
_key: string
|
|
954
|
+
} & HeaderSection)
|
|
955
|
+
| ({
|
|
956
|
+
_key: string
|
|
957
|
+
} & FaqSection)
|
|
958
|
+
| ({
|
|
959
|
+
_key: string
|
|
960
|
+
} & StaffListSection)
|
|
961
|
+
| ({
|
|
962
|
+
_key: string
|
|
963
|
+
} & GallerySection)
|
|
964
|
+
| ({
|
|
965
|
+
_key: string
|
|
966
|
+
} & RichTextSection)
|
|
967
|
+
>
|
|
307
968
|
parentPage?:
|
|
308
969
|
| {
|
|
309
970
|
_ref: string
|
|
@@ -330,8 +991,36 @@ export type Webpage = {
|
|
|
330
991
|
[internalGroqTypeReferenceTo]?: 'area'
|
|
331
992
|
}
|
|
332
993
|
pageType: 'webpage' | 'department'
|
|
994
|
+
departmentContactDetails?: PtBasic
|
|
333
995
|
isPublished?: boolean
|
|
334
|
-
|
|
996
|
+
relatedMenu?: {
|
|
997
|
+
_ref: string
|
|
998
|
+
_type: 'reference'
|
|
999
|
+
_weak?: boolean
|
|
1000
|
+
[internalGroqTypeReferenceTo]?: 'menu'
|
|
1001
|
+
}
|
|
1002
|
+
seo?: Seo
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
export type Facility = {
|
|
1006
|
+
_id: string
|
|
1007
|
+
_type: 'facility'
|
|
1008
|
+
_createdAt: string
|
|
1009
|
+
_updatedAt: string
|
|
1010
|
+
_rev: string
|
|
1011
|
+
title: string
|
|
1012
|
+
slug: Slug
|
|
1013
|
+
campus: {
|
|
1014
|
+
_ref: string
|
|
1015
|
+
_type: 'reference'
|
|
1016
|
+
_weak?: boolean
|
|
1017
|
+
[internalGroqTypeReferenceTo]?: 'campus'
|
|
1018
|
+
}
|
|
1019
|
+
description?: PtBasic
|
|
1020
|
+
isActive?: boolean
|
|
1021
|
+
address?: CanadianAddress
|
|
1022
|
+
tourLink?: string
|
|
1023
|
+
image?: {
|
|
335
1024
|
asset?: {
|
|
336
1025
|
_ref: string
|
|
337
1026
|
_type: 'reference'
|
|
@@ -345,9 +1034,33 @@ export type Webpage = {
|
|
|
345
1034
|
caption?: string
|
|
346
1035
|
_type: 'accessibleImage'
|
|
347
1036
|
}
|
|
1037
|
+
gallery?: Array<{
|
|
1038
|
+
asset?: {
|
|
1039
|
+
_ref: string
|
|
1040
|
+
_type: 'reference'
|
|
1041
|
+
_weak?: boolean
|
|
1042
|
+
[internalGroqTypeReferenceTo]?: 'sanity.imageAsset'
|
|
1043
|
+
}
|
|
1044
|
+
media?: unknown
|
|
1045
|
+
hotspot?: SanityImageHotspot
|
|
1046
|
+
crop?: SanityImageCrop
|
|
1047
|
+
altText: string
|
|
1048
|
+
caption?: string
|
|
1049
|
+
_type: 'accessibleImage'
|
|
1050
|
+
_key: string
|
|
1051
|
+
}>
|
|
348
1052
|
seo?: Seo
|
|
349
1053
|
}
|
|
350
1054
|
|
|
1055
|
+
export type CanadianAddress = {
|
|
1056
|
+
_type: 'canadianAddress'
|
|
1057
|
+
streetAddress: string
|
|
1058
|
+
city: string
|
|
1059
|
+
province: 'AB' | 'BC' | 'MB' | 'NB' | 'NL' | 'NT' | 'NS' | 'NU' | 'ON' | 'PE' | 'QC' | 'SK' | 'YT'
|
|
1060
|
+
postalCode: string
|
|
1061
|
+
country?: string
|
|
1062
|
+
}
|
|
1063
|
+
|
|
351
1064
|
export type ProgramFile = {
|
|
352
1065
|
_id: string
|
|
353
1066
|
_type: 'programFile'
|
|
@@ -355,7 +1068,6 @@ export type ProgramFile = {
|
|
|
355
1068
|
_updatedAt: string
|
|
356
1069
|
_rev: string
|
|
357
1070
|
title: string
|
|
358
|
-
description?: string
|
|
359
1071
|
file: {
|
|
360
1072
|
asset?: {
|
|
361
1073
|
_ref: string
|
|
@@ -373,6 +1085,7 @@ export type ProgramFile = {
|
|
|
373
1085
|
| 'courseOutline'
|
|
374
1086
|
| 'studentGuide'
|
|
375
1087
|
| 'other'
|
|
1088
|
+
description?: string
|
|
376
1089
|
isActive?: boolean
|
|
377
1090
|
}
|
|
378
1091
|
|
|
@@ -421,10 +1134,10 @@ export type Campus = {
|
|
|
421
1134
|
_updatedAt: string
|
|
422
1135
|
_rev: string
|
|
423
1136
|
title: string
|
|
424
|
-
slug: Slug
|
|
425
1137
|
code: string
|
|
1138
|
+
city?: string
|
|
1139
|
+
slug: Slug
|
|
426
1140
|
isEnabled?: boolean
|
|
427
|
-
description?: string
|
|
428
1141
|
image?: {
|
|
429
1142
|
asset?: {
|
|
430
1143
|
_ref: string
|
|
@@ -439,6 +1152,16 @@ export type Campus = {
|
|
|
439
1152
|
caption?: string
|
|
440
1153
|
_type: 'accessibleImage'
|
|
441
1154
|
}
|
|
1155
|
+
description?: PtBasic
|
|
1156
|
+
virtualTourUrl?: string
|
|
1157
|
+
staff?: Array<{
|
|
1158
|
+
_ref: string
|
|
1159
|
+
_type: 'reference'
|
|
1160
|
+
_weak?: boolean
|
|
1161
|
+
_key: string
|
|
1162
|
+
[internalGroqTypeReferenceTo]?: 'person'
|
|
1163
|
+
}>
|
|
1164
|
+
seo?: Seo
|
|
442
1165
|
}
|
|
443
1166
|
|
|
444
1167
|
export type Area = {
|
|
@@ -480,7 +1203,7 @@ export type ProgramIntake = {
|
|
|
480
1203
|
[internalGroqTypeReferenceTo]?: 'program'
|
|
481
1204
|
}
|
|
482
1205
|
programCode: string
|
|
483
|
-
season: 'Fall' | 'Winter' | 'Spring' | 'Summer' | 'Any Time'
|
|
1206
|
+
season: 'Fall' | 'Winter' | 'Spring' | 'Summer' | 'Fall, Winter, Spring' | 'Any Time'
|
|
484
1207
|
duration: {
|
|
485
1208
|
_ref: string
|
|
486
1209
|
_type: 'reference'
|
|
@@ -575,6 +1298,21 @@ export type Program = {
|
|
|
575
1298
|
caption?: string
|
|
576
1299
|
_type: 'accessibleImage'
|
|
577
1300
|
}
|
|
1301
|
+
gallery?: Array<{
|
|
1302
|
+
asset?: {
|
|
1303
|
+
_ref: string
|
|
1304
|
+
_type: 'reference'
|
|
1305
|
+
_weak?: boolean
|
|
1306
|
+
[internalGroqTypeReferenceTo]?: 'sanity.imageAsset'
|
|
1307
|
+
}
|
|
1308
|
+
media?: unknown
|
|
1309
|
+
hotspot?: SanityImageHotspot
|
|
1310
|
+
crop?: SanityImageCrop
|
|
1311
|
+
altText: string
|
|
1312
|
+
caption?: string
|
|
1313
|
+
_type: 'accessibleImage'
|
|
1314
|
+
_key: string
|
|
1315
|
+
}>
|
|
578
1316
|
school?: {
|
|
579
1317
|
_ref: string
|
|
580
1318
|
_type: 'reference'
|
|
@@ -709,12 +1447,14 @@ export type Credential = {
|
|
|
709
1447
|
category:
|
|
710
1448
|
| 'certificate'
|
|
711
1449
|
| 'diploma'
|
|
712
|
-
| 'advancedDiploma'
|
|
713
1450
|
| 'degree'
|
|
1451
|
+
| 'apprenticeship'
|
|
714
1452
|
| 'microCredential'
|
|
715
1453
|
| 'recognition'
|
|
716
1454
|
| 'externalCertification'
|
|
1455
|
+
credentialScope?: 'postsecondary' | 'vocational' | 'apprenticeship'
|
|
717
1456
|
description?: string
|
|
1457
|
+
sortOrder: number
|
|
718
1458
|
isEnabled?: boolean
|
|
719
1459
|
}
|
|
720
1460
|
|
|
@@ -769,7 +1509,14 @@ export type Person = {
|
|
|
769
1509
|
lastName: string
|
|
770
1510
|
suffixes?: Array<string>
|
|
771
1511
|
slug: Slug
|
|
772
|
-
|
|
1512
|
+
email?: string
|
|
1513
|
+
phone?: string
|
|
1514
|
+
mobilePhone?: string
|
|
1515
|
+
socialLinks?: Array<{
|
|
1516
|
+
platform?: string
|
|
1517
|
+
url?: string
|
|
1518
|
+
_key: string
|
|
1519
|
+
}>
|
|
773
1520
|
image?: {
|
|
774
1521
|
asset?: {
|
|
775
1522
|
_ref: string
|
|
@@ -784,14 +1531,11 @@ export type Person = {
|
|
|
784
1531
|
caption?: string
|
|
785
1532
|
_type: 'accessibleImage'
|
|
786
1533
|
}
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
_key: string
|
|
793
|
-
}>
|
|
794
|
-
siteRoles?: Array<'faculty' | 'staff' | 'recruitment' | 'testimonial' | 'dean'>
|
|
1534
|
+
jobTitle?: string
|
|
1535
|
+
siteRoles?: Array<
|
|
1536
|
+
'faculty' | 'staff' | 'recruitment' | 'internationalRecruitment' | 'testimonial' | 'dean'
|
|
1537
|
+
>
|
|
1538
|
+
recruitmentConnectLink?: string
|
|
795
1539
|
affiliations?: Array<{
|
|
796
1540
|
program?: {
|
|
797
1541
|
_ref: string
|
|
@@ -838,6 +1582,28 @@ export type AccessibleImage = {
|
|
|
838
1582
|
caption?: string
|
|
839
1583
|
}
|
|
840
1584
|
|
|
1585
|
+
export type Code = {
|
|
1586
|
+
_type: 'code'
|
|
1587
|
+
language?: string
|
|
1588
|
+
filename?: string
|
|
1589
|
+
code?: string
|
|
1590
|
+
highlightedLines?: Array<number>
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
export type Table = {
|
|
1594
|
+
_type: 'table'
|
|
1595
|
+
rows?: Array<
|
|
1596
|
+
{
|
|
1597
|
+
_key: string
|
|
1598
|
+
} & TableRow
|
|
1599
|
+
>
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
export type TableRow = {
|
|
1603
|
+
_type: 'tableRow'
|
|
1604
|
+
cells?: Array<string>
|
|
1605
|
+
}
|
|
1606
|
+
|
|
841
1607
|
export type MediaTag = {
|
|
842
1608
|
_id: string
|
|
843
1609
|
_type: 'media.tag'
|
|
@@ -868,25 +1634,25 @@ export type SanityImagePalette = {
|
|
|
868
1634
|
|
|
869
1635
|
export type SanityImageDimensions = {
|
|
870
1636
|
_type: 'sanity.imageDimensions'
|
|
871
|
-
height
|
|
872
|
-
width
|
|
873
|
-
aspectRatio
|
|
1637
|
+
height: number
|
|
1638
|
+
width: number
|
|
1639
|
+
aspectRatio: number
|
|
874
1640
|
}
|
|
875
1641
|
|
|
876
1642
|
export type SanityImageHotspot = {
|
|
877
1643
|
_type: 'sanity.imageHotspot'
|
|
878
|
-
x
|
|
879
|
-
y
|
|
880
|
-
height
|
|
881
|
-
width
|
|
1644
|
+
x: number
|
|
1645
|
+
y: number
|
|
1646
|
+
height: number
|
|
1647
|
+
width: number
|
|
882
1648
|
}
|
|
883
1649
|
|
|
884
1650
|
export type SanityImageCrop = {
|
|
885
1651
|
_type: 'sanity.imageCrop'
|
|
886
|
-
top
|
|
887
|
-
bottom
|
|
888
|
-
left
|
|
889
|
-
right
|
|
1652
|
+
top: number
|
|
1653
|
+
bottom: number
|
|
1654
|
+
left: number
|
|
1655
|
+
right: number
|
|
890
1656
|
}
|
|
891
1657
|
|
|
892
1658
|
export type SanityFileAsset = {
|
|
@@ -966,14 +1732,24 @@ export type SanityAssetSourceData = {
|
|
|
966
1732
|
}
|
|
967
1733
|
|
|
968
1734
|
export type AllSanitySchemaTypes =
|
|
1735
|
+
| HeaderSection
|
|
1736
|
+
| MediaTextSection
|
|
1737
|
+
| RichTextSection
|
|
1738
|
+
| GallerySection
|
|
1739
|
+
| StaffListSection
|
|
1740
|
+
| FaqSection
|
|
1741
|
+
| FaqItem
|
|
969
1742
|
| MenuItem
|
|
970
1743
|
| Link
|
|
971
1744
|
| PtBasic
|
|
1745
|
+
| PtButton
|
|
972
1746
|
| Figure
|
|
973
1747
|
| Redirect
|
|
974
1748
|
| Event
|
|
975
1749
|
| NewsArticle
|
|
976
1750
|
| Webpage
|
|
1751
|
+
| Facility
|
|
1752
|
+
| CanadianAddress
|
|
977
1753
|
| ProgramFile
|
|
978
1754
|
| Testimonial
|
|
979
1755
|
| Campus
|
|
@@ -988,6 +1764,9 @@ export type AllSanitySchemaTypes =
|
|
|
988
1764
|
| School
|
|
989
1765
|
| Person
|
|
990
1766
|
| AccessibleImage
|
|
1767
|
+
| Code
|
|
1768
|
+
| Table
|
|
1769
|
+
| TableRow
|
|
991
1770
|
| MediaTag
|
|
992
1771
|
| SanityImagePaletteSwatch
|
|
993
1772
|
| SanityImagePalette
|