storyloco 1.9.2 → 1.9.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "storyloco",
3
- "version": "1.9.2",
3
+ "version": "1.9.3",
4
4
  "description": "A collection of slick Storyblok field plugins built with Svelte 5, TypeScript, and Tailwind CSS",
5
5
  "keywords": [
6
6
  "storyblok",
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * AUTO-GENERATED FILE. DO NOT EDIT.
3
- * Generated by vite-storyblok-schema plugin on 2025-08-25T23:00:07.720Z.
3
+ * Generated by vite-storyblok-schema plugin on 2025-08-26T10:23:02.498Z.
4
4
  * Any changes will be overwritten.
5
5
  */
6
6
  import type { StoryblokCustomPlugins } from "../../vite.config.js";
@@ -8,16 +8,16 @@ import type { SbBlokData } from "@storyblok/svelte";
8
8
  export type Blok<T> = SbBlokData & T;
9
9
  import type { ISbStoryData } from "@storyblok/js";
10
10
  export interface Acc {
11
- component: "acc";
12
- _uid: string;
11
+ component?: "acc";
12
+ _uid?: string;
13
13
  }
14
14
  export interface Accord {
15
15
  title?: string;
16
16
  body?: StoryblokRichtext;
17
17
  images?: StoryblokMultiasset;
18
18
  embed?: string;
19
- component: "accord";
20
- _uid: string;
19
+ component?: "accord";
20
+ _uid?: string;
21
21
  }
22
22
  export interface Accordion {
23
23
  split?: boolean;
@@ -30,8 +30,8 @@ export interface Accordion {
30
30
  title?: StoryblokCustomPlugins["heading-field"];
31
31
  body?: StoryblokRichtext;
32
32
  items?: Accord[];
33
- component: "accordion";
34
- _uid: string;
33
+ component?: "accordion";
34
+ _uid?: string;
35
35
  }
36
36
  export interface Actions {
37
37
  alt?: boolean;
@@ -46,37 +46,37 @@ export interface Actions {
46
46
  subtitle?: StoryblokRichtext;
47
47
  items?: Link[];
48
48
  image?: StoryblokAsset;
49
- component: "actions";
50
- _uid: string;
49
+ component?: "actions";
50
+ _uid?: string;
51
51
  }
52
52
  export interface Alumni {
53
53
  metatags?: StoryblokCustomPlugins["seo-metatags"];
54
54
  photo?: StoryblokAsset;
55
55
  body?: StoryblokRichtext;
56
- component: "alumni";
57
- _uid: string;
56
+ component?: "alumni";
57
+ _uid?: string;
58
58
  }
59
59
  export interface BLOCK {
60
60
  anchor?: string;
61
61
  theme?: StoryblokCustomPlugins["theme-field"];
62
62
  padding_top?: number | string;
63
63
  padding_bottom?: number | string;
64
- component: "__ BLOCK ___";
65
- _uid: string;
64
+ component?: "__ BLOCK ___";
65
+ _uid?: string;
66
66
  }
67
67
  export interface Blog {
68
68
  metatags?: StoryblokCustomPlugins["seo-metatags"];
69
69
  image?: StoryblokAsset;
70
70
  content?: (ImageCarousel | RichText)[];
71
71
  school?: (number | string)[];
72
- component: "blog";
73
- _uid: string;
72
+ component?: "blog";
73
+ _uid?: string;
74
74
  }
75
75
  export interface Button {
76
76
  link?: StoryblokCustomPlugins["loco-link-field"];
77
77
  outline?: boolean;
78
- component: "button";
79
- _uid: string;
78
+ component?: "button";
79
+ _uid?: string;
80
80
  }
81
81
  export interface Card {
82
82
  image?: StoryblokAsset;
@@ -88,15 +88,15 @@ export interface Card {
88
88
  shape?: "" | "5_6-01" | "5_6-02" | "6_5-06" | "5_6-03" | "5_6-04";
89
89
  link?: StoryblokCustomPlugins["loco-link-field"];
90
90
  marker?: boolean;
91
- component: "card";
92
- _uid: string;
91
+ component?: "card";
92
+ _uid?: string;
93
93
  }
94
94
  export interface Cardgroup {
95
95
  title?: string;
96
96
  subtitle?: string;
97
97
  items?: Card[];
98
- component: "cardgroup";
99
- _uid: string;
98
+ component?: "cardgroup";
99
+ _uid?: string;
100
100
  }
101
101
  export interface CardLite {
102
102
  populate?: ISbStoryData<Member> | ISbStoryData<Alumni> | string;
@@ -111,8 +111,8 @@ export interface CardLite {
111
111
  modal_image?: StoryblokAsset;
112
112
  modal_quote?: string;
113
113
  theme?: StoryblokCustomPlugins["theme-field"];
114
- component: "card_lite";
115
- _uid: string;
114
+ component?: "card_lite";
115
+ _uid?: string;
116
116
  }
117
117
  export interface Cardousel {
118
118
  anchor?: string;
@@ -120,8 +120,8 @@ export interface Cardousel {
120
120
  items?: Card[];
121
121
  padding_top?: number | string;
122
122
  padding_bottom?: number | string;
123
- component: "cardousel";
124
- _uid: string;
123
+ component?: "cardousel";
124
+ _uid?: string;
125
125
  }
126
126
  export interface Cards {
127
127
  title?: string;
@@ -131,8 +131,8 @@ export interface Cards {
131
131
  theme?: StoryblokCustomPlugins["theme-field"];
132
132
  padding_top?: number | string;
133
133
  padding_bottom?: number | string;
134
- component: "cards";
135
- _uid: string;
134
+ component?: "cards";
135
+ _uid?: string;
136
136
  }
137
137
  export interface Centerpiece {
138
138
  anchor?: string;
@@ -141,8 +141,8 @@ export interface Centerpiece {
141
141
  padding_bottom?: number | string;
142
142
  title?: string;
143
143
  body?: StoryblokRichtext;
144
- component: "centerpiece";
145
- _uid: string;
144
+ component?: "centerpiece";
145
+ _uid?: string;
146
146
  }
147
147
  export interface Collagousel {
148
148
  anchor?: string;
@@ -152,24 +152,24 @@ export interface Collagousel {
152
152
  title?: StoryblokCustomPlugins["heading-field"];
153
153
  body?: StoryblokRichtext;
154
154
  images?: StoryblokMultiasset;
155
- component: "collagousel";
156
- _uid: string;
155
+ component?: "collagousel";
156
+ _uid?: string;
157
157
  }
158
158
  export interface Divider {
159
159
  theme?: StoryblokCustomPlugins["theme-field"];
160
160
  padding_top?: number | string;
161
161
  padding_bottom?: number | string;
162
- component: "divider";
163
- _uid: string;
162
+ component?: "divider";
163
+ _uid?: string;
164
164
  }
165
165
  export interface Embed {
166
166
  code?: string;
167
- component: "embed";
168
- _uid: string;
167
+ component?: "embed";
168
+ _uid?: string;
169
169
  }
170
170
  export interface Enquire {
171
- component: "enquire";
172
- _uid: string;
171
+ component?: "enquire";
172
+ _uid?: string;
173
173
  }
174
174
  export interface Event {
175
175
  override_terms?: StoryblokRichtext;
@@ -179,8 +179,8 @@ export interface Event {
179
179
  override_description?: StoryblokRichtext;
180
180
  override_image?: StoryblokAsset;
181
181
  metatags?: StoryblokCustomPlugins["seo-metatags"];
182
- component: "event";
183
- _uid: string;
182
+ component?: "event";
183
+ _uid?: string;
184
184
  }
185
185
  export interface Float {
186
186
  anchor?: string;
@@ -188,8 +188,8 @@ export interface Float {
188
188
  padding_top?: number | string;
189
189
  padding_bottom?: number | string;
190
190
  images?: StoryblokMultiasset;
191
- component: "float";
192
- _uid: string;
191
+ component?: "float";
192
+ _uid?: string;
193
193
  }
194
194
  export interface Frame {
195
195
  anchor?: string;
@@ -201,17 +201,17 @@ export interface Frame {
201
201
  } | {
202
202
  linktype?: "asset";
203
203
  }>;
204
- component: "frame";
205
- _uid: string;
204
+ component?: "frame";
205
+ _uid?: string;
206
206
  }
207
207
  export interface Gallery {
208
208
  metatags?: StoryblokCustomPlugins["seo-metatags"];
209
209
  image?: StoryblokAsset;
210
210
  body?: StoryblokRichtext;
211
- images: StoryblokMultiasset;
211
+ images?: StoryblokMultiasset;
212
212
  school?: (number | string)[];
213
- component: "gallery";
214
- _uid: string;
213
+ component?: "gallery";
214
+ _uid?: string;
215
215
  }
216
216
  export interface Header {
217
217
  anchor?: string;
@@ -219,8 +219,8 @@ export interface Header {
219
219
  title?: StoryblokCustomPlugins["heading-field"];
220
220
  trail?: boolean;
221
221
  accent?: "" | "true";
222
- component: "header";
223
- _uid: string;
222
+ component?: "header";
223
+ _uid?: string;
224
224
  }
225
225
  export interface Heading {
226
226
  anchor?: string;
@@ -230,8 +230,8 @@ export interface Heading {
230
230
  title?: StoryblokCustomPlugins["heading-field"];
231
231
  body?: StoryblokRichtext;
232
232
  link?: StoryblokCustomPlugins["loco-link-field"];
233
- component: "heading";
234
- _uid: string;
233
+ component?: "heading";
234
+ _uid?: string;
235
235
  }
236
236
  export interface Hero {
237
237
  accent?: boolean;
@@ -244,13 +244,13 @@ export interface Hero {
244
244
  padding_bottom?: number | string;
245
245
  video?: StoryblokCustomPlugins["mux-field"];
246
246
  image?: StoryblokAsset;
247
- component: "hero";
248
- _uid: string;
247
+ component?: "hero";
248
+ _uid?: string;
249
249
  }
250
250
  export interface ImageCarousel {
251
- assets: StoryblokMultiasset;
252
- component: "image_carousel";
253
- _uid: string;
251
+ assets?: StoryblokMultiasset;
252
+ component?: "image_carousel";
253
+ _uid?: string;
254
254
  }
255
255
  export interface Infousel {
256
256
  title?: StoryblokCustomPlugins["heading-field"];
@@ -262,8 +262,8 @@ export interface Infousel {
262
262
  theme?: StoryblokCustomPlugins["theme-field"];
263
263
  padding_top?: number | string;
264
264
  padding_bottom?: number | string;
265
- component: "infousel";
266
- _uid: string;
265
+ component?: "infousel";
266
+ _uid?: string;
267
267
  }
268
268
  export interface Intro {
269
269
  titlesize?: "" | "large" | "medium" | "small";
@@ -277,8 +277,8 @@ export interface Intro {
277
277
  image?: StoryblokAsset;
278
278
  body?: StoryblokRichtext;
279
279
  action?: StoryblokCustomPlugins["loco-link-field"];
280
- component: "intro";
281
- _uid: string;
280
+ component?: "intro";
281
+ _uid?: string;
282
282
  }
283
283
  export interface Kickousel {
284
284
  title?: StoryblokCustomPlugins["heading-field"];
@@ -287,8 +287,8 @@ export interface Kickousel {
287
287
  theme?: StoryblokCustomPlugins["theme-field"];
288
288
  padding_top?: number | string;
289
289
  padding_bottom?: number | string;
290
- component: "kickousel";
291
- _uid: string;
290
+ component?: "kickousel";
291
+ _uid?: string;
292
292
  }
293
293
  export interface Latest {
294
294
  anchor?: string;
@@ -300,8 +300,8 @@ export interface Latest {
300
300
  title?: string;
301
301
  subtitle?: string;
302
302
  link?: StoryblokCustomPlugins["loco-link-field"];
303
- component: "latest";
304
- _uid: string;
303
+ component?: "latest";
304
+ _uid?: string;
305
305
  }
306
306
  export interface Layout {
307
307
  foot_title?: string;
@@ -320,15 +320,15 @@ export interface Layout {
320
320
  shortcuts?: Link[];
321
321
  pattern?: StoryblokAsset;
322
322
  illustration?: StoryblokAsset;
323
- component: "layout";
324
- _uid: string;
323
+ component?: "layout";
324
+ _uid?: string;
325
325
  }
326
326
  export interface Link {
327
327
  link?: StoryblokCustomPlugins["loco-link-field"];
328
328
  subtitle?: string;
329
329
  download?: boolean;
330
- component: "link";
331
- _uid: string;
330
+ component?: "link";
331
+ _uid?: string;
332
332
  }
333
333
  export interface Linklist {
334
334
  plain?: boolean;
@@ -340,15 +340,15 @@ export interface Linklist {
340
340
  title?: string;
341
341
  body?: StoryblokRichtext;
342
342
  items?: Link[];
343
- component: "linklist";
344
- _uid: string;
343
+ component?: "linklist";
344
+ _uid?: string;
345
345
  }
346
346
  export interface Links {
347
347
  link?: StoryblokCustomPlugins["loco-link-field"];
348
348
  items?: Link[];
349
349
  gap?: boolean;
350
- component: "links";
351
- _uid: string;
350
+ component?: "links";
351
+ _uid?: string;
352
352
  }
353
353
  export interface Linktiles {
354
354
  title?: StoryblokCustomPlugins["heading-field"];
@@ -358,20 +358,20 @@ export interface Linktiles {
358
358
  theme?: StoryblokCustomPlugins["theme-field"];
359
359
  padding_top?: number | string;
360
360
  padding_bottom?: number | string;
361
- component: "linktiles";
362
- _uid: string;
361
+ component?: "linktiles";
362
+ _uid?: string;
363
363
  }
364
364
  export interface Member {
365
- title: string;
366
- photo: StoryblokAsset;
367
- education: StoryblokRichtext;
365
+ title?: string;
366
+ photo?: StoryblokAsset;
367
+ education?: StoryblokRichtext;
368
368
  quote?: string;
369
369
  interview1?: StoryblokRichtext;
370
370
  image?: StoryblokAsset;
371
371
  passions?: Passion[];
372
372
  interview2?: StoryblokRichtext;
373
- component: "member";
374
- _uid: string;
373
+ component?: "member";
374
+ _uid?: string;
375
375
  }
376
376
  export interface Navblock {
377
377
  title?: StoryblokCustomPlugins["heading-field"];
@@ -385,31 +385,31 @@ export interface Navblock {
385
385
  theme?: StoryblokCustomPlugins["theme-field"];
386
386
  padding_top?: number | string;
387
387
  padding_bottom?: number | string;
388
- component: "navblock";
389
- _uid: string;
388
+ component?: "navblock";
389
+ _uid?: string;
390
390
  }
391
391
  export interface News {
392
392
  metatags?: StoryblokCustomPlugins["seo-metatags"];
393
393
  image?: StoryblokAsset;
394
394
  content?: (ImageCarousel | RichText)[];
395
395
  school?: (number | string)[];
396
- component: "news";
397
- _uid: string;
396
+ component?: "news";
397
+ _uid?: string;
398
398
  }
399
399
  export interface Page {
400
400
  metatags?: StoryblokCustomPlugins["seo-metatags"];
401
401
  show_discover_block?: boolean;
402
402
  blocks?: (Accordion | Actions | BLOCK | Cardousel | Cards | Centerpiece | Collagousel | Divider | Float | Frame | Header | Heading | Hero | Infousel | Intro | Kickousel | Latest | Linklist | Linktiles | Navblock | Photousel | Postdex | Questions | Quoteo | Quotes | Sideaccord | Sidekick | Staff | Table | Tabs | Timeline | Vacancies | Vertabs | Vertcards)[];
403
- component: "page";
404
- _uid: string;
403
+ component?: "page";
404
+ _uid?: string;
405
405
  }
406
406
  export interface Passion {
407
407
  suptitle?: string;
408
408
  title?: string;
409
409
  image?: StoryblokAsset;
410
410
  shape?: number | string;
411
- component: "passion";
412
- _uid: string;
411
+ component?: "passion";
412
+ _uid?: string;
413
413
  }
414
414
  export interface Photousel {
415
415
  anchor?: string;
@@ -417,33 +417,33 @@ export interface Photousel {
417
417
  padding_top?: number | string;
418
418
  padding_bottom?: number | string;
419
419
  items?: StoryblokMultiasset;
420
- component: "photousel";
421
- _uid: string;
420
+ component?: "photousel";
421
+ _uid?: string;
422
422
  }
423
423
  export interface Postdex {
424
424
  anchor?: string;
425
425
  theme?: StoryblokCustomPlugins["theme-field"];
426
426
  padding_top?: number | string;
427
427
  padding_bottom?: number | string;
428
- type: "" | "news" | "thoughts" | "events";
429
- component: "postdex";
430
- _uid: string;
428
+ type?: "" | "news" | "thoughts" | "events";
429
+ component?: "postdex";
430
+ _uid?: string;
431
431
  }
432
432
  export interface Question {
433
- question: string;
434
- answer: StoryblokRichtext;
435
- component: "question";
436
- _uid: string;
433
+ question?: string;
434
+ answer?: StoryblokRichtext;
435
+ component?: "question";
436
+ _uid?: string;
437
437
  }
438
438
  export interface Questions {
439
- items: Question[];
439
+ items?: Question[];
440
440
  anchor?: string;
441
441
  image?: StoryblokAsset;
442
442
  theme?: StoryblokCustomPlugins["theme-field"];
443
443
  padding_top?: number | string;
444
444
  padding_bottom?: number | string;
445
- component: "questions";
446
- _uid: string;
445
+ component?: "questions";
446
+ _uid?: string;
447
447
  }
448
448
  export interface Quote {
449
449
  super?: boolean;
@@ -457,8 +457,8 @@ export interface Quote {
457
457
  avatar?: StoryblokAsset;
458
458
  image?: StoryblokAsset;
459
459
  link?: StoryblokCustomPlugins["loco-link-field"];
460
- component: "quote";
461
- _uid: string;
460
+ component?: "quote";
461
+ _uid?: string;
462
462
  }
463
463
  export interface Quoteo {
464
464
  video?: StoryblokCustomPlugins["mux-field"];
@@ -469,8 +469,8 @@ export interface Quoteo {
469
469
  theme?: StoryblokCustomPlugins["theme-field"];
470
470
  padding_top?: number | string;
471
471
  padding_bottom?: number | string;
472
- component: "quoteo";
473
- _uid: string;
472
+ component?: "quoteo";
473
+ _uid?: string;
474
474
  }
475
475
  export interface Quotes {
476
476
  vertical?: boolean;
@@ -478,13 +478,13 @@ export interface Quotes {
478
478
  anchor?: string;
479
479
  padding_top?: number | string;
480
480
  padding_bottom?: number | string;
481
- component: "quotes";
482
- _uid: string;
481
+ component?: "quotes";
482
+ _uid?: string;
483
483
  }
484
484
  export interface RichText {
485
- content: StoryblokRichtext;
486
- component: "rich_text";
487
- _uid: string;
485
+ content?: StoryblokRichtext;
486
+ component?: "rich_text";
487
+ _uid?: string;
488
488
  }
489
489
  export interface Sideaccord {
490
490
  image?: StoryblokAsset;
@@ -495,8 +495,8 @@ export interface Sideaccord {
495
495
  padding_top?: number | string;
496
496
  padding_bottom?: number | string;
497
497
  body?: StoryblokRichtext;
498
- component: "sideaccord";
499
- _uid: string;
498
+ component?: "sideaccord";
499
+ _uid?: string;
500
500
  }
501
501
  export interface Sidekick {
502
502
  split?: "" | "6" | "7" | "8";
@@ -519,14 +519,14 @@ export interface Sidekick {
519
519
  title?: StoryblokCustomPlugins["heading-field"];
520
520
  subtitle?: StoryblokCustomPlugins["heading-field"];
521
521
  body?: StoryblokRichtext;
522
- component: "sidekick";
523
- _uid: string;
522
+ component?: "sidekick";
523
+ _uid?: string;
524
524
  }
525
525
  export interface SocialMedia {
526
- platform: "" | "facebook" | "instagram" | "linkedin" | "whatsapp";
527
- link: string;
528
- component: "social_media";
529
- _uid: string;
526
+ platform?: "" | "facebook" | "instagram" | "linkedin" | "whatsapp";
527
+ link?: string;
528
+ component?: "social_media";
529
+ _uid?: string;
530
530
  }
531
531
  export interface Staff {
532
532
  perpage?: string;
@@ -534,8 +534,8 @@ export interface Staff {
534
534
  theme?: StoryblokCustomPlugins["theme-field"];
535
535
  padding_top?: number | string;
536
536
  padding_bottom?: number | string;
537
- component: "staff";
538
- _uid: string;
537
+ component?: "staff";
538
+ _uid?: string;
539
539
  }
540
540
  export interface Subject {
541
541
  image?: StoryblokAsset;
@@ -545,8 +545,8 @@ export interface Subject {
545
545
  faculty_title?: string;
546
546
  faculty_body?: StoryblokRichtext;
547
547
  faculty_gallery?: StoryblokMultiasset;
548
- component: "subject";
549
- _uid: string;
548
+ component?: "subject";
549
+ _uid?: string;
550
550
  }
551
551
  export interface Tab {
552
552
  image?: StoryblokAsset;
@@ -555,22 +555,22 @@ export interface Tab {
555
555
  body?: StoryblokRichtext;
556
556
  action?: StoryblokCustomPlugins["loco-link-field"];
557
557
  shape?: number | string;
558
- component: "tab";
559
- _uid: string;
558
+ component?: "tab";
559
+ _uid?: string;
560
560
  }
561
561
  export interface Tabaccord {
562
562
  title?: string;
563
563
  body?: StoryblokRichtext;
564
564
  blocks?: (Hero | Photousel | Accordion)[];
565
565
  staff?: Card[];
566
- component: "tabaccord";
567
- _uid: string;
566
+ component?: "tabaccord";
567
+ _uid?: string;
568
568
  }
569
569
  export interface Tabgroup {
570
570
  title?: string;
571
571
  blocks?: (Accordion | Actions | BLOCK | Cardousel | Cards | Centerpiece | Collagousel | Divider | Float | Frame | Header | Heading | Hero | Infousel | Intro | Kickousel | Latest | Linklist | Linktiles | Navblock | Photousel | Postdex | Questions | Quoteo | Quotes | Sideaccord | Sidekick | Staff | Table | Tabs | Timeline | Vacancies | Vertabs | Vertcards)[];
572
- component: "tabgroup";
573
- _uid: string;
572
+ component?: "tabgroup";
573
+ _uid?: string;
574
574
  }
575
575
  export interface Table {
576
576
  header?: boolean;
@@ -580,8 +580,8 @@ export interface Table {
580
580
  padding_top?: number | string;
581
581
  padding_bottom?: number | string;
582
582
  cells?: StoryblokTable;
583
- component: "table";
584
- _uid: string;
583
+ component?: "table";
584
+ _uid?: string;
585
585
  }
586
586
  export interface Tabs {
587
587
  tabs?: Tabgroup[];
@@ -590,8 +590,8 @@ export interface Tabs {
590
590
  theme?: StoryblokCustomPlugins["theme-field"];
591
591
  padding_top?: number | string;
592
592
  padding_bottom?: number | string;
593
- component: "tabs";
594
- _uid: string;
593
+ component?: "tabs";
594
+ _uid?: string;
595
595
  }
596
596
  export interface Timeline {
597
597
  anchor?: string;
@@ -600,16 +600,16 @@ export interface Timeline {
600
600
  padding_bottom?: number | string;
601
601
  title?: StoryblokCustomPlugins["heading-field"];
602
602
  items?: Card[];
603
- component: "timeline";
604
- _uid: string;
603
+ component?: "timeline";
604
+ _uid?: string;
605
605
  }
606
606
  export interface Vacancies {
607
607
  anchor?: string;
608
608
  theme?: StoryblokCustomPlugins["theme-field"];
609
609
  padding_top?: number | string;
610
610
  padding_bottom?: number | string;
611
- component: "vacancies";
612
- _uid: string;
611
+ component?: "vacancies";
612
+ _uid?: string;
613
613
  }
614
614
  export interface Vertabs {
615
615
  anchor?: string;
@@ -620,8 +620,8 @@ export interface Vertabs {
620
620
  subtitle?: StoryblokCustomPlugins["heading-field"];
621
621
  body?: StoryblokRichtext;
622
622
  tabs?: Cardgroup[];
623
- component: "vertabs";
624
- _uid: string;
623
+ component?: "vertabs";
624
+ _uid?: string;
625
625
  }
626
626
  export interface Vertcards {
627
627
  large?: boolean;
@@ -633,15 +633,15 @@ export interface Vertcards {
633
633
  title?: string;
634
634
  body?: StoryblokRichtext;
635
635
  items?: Card[];
636
- component: "vertcards";
637
- _uid: string;
636
+ component?: "vertcards";
637
+ _uid?: string;
638
638
  }
639
639
  export interface Video {
640
- video: StoryblokCustomPlugins["mux-field"];
640
+ video?: StoryblokCustomPlugins["mux-field"];
641
641
  metatags?: StoryblokCustomPlugins["seo-metatags"];
642
642
  image?: StoryblokAsset;
643
- component: "video";
644
- _uid: string;
643
+ component?: "video";
644
+ _uid?: string;
645
645
  }
646
646
  type StoryblokPropertyType = "asset" | "multiasset" | "multilink" | "table" | "richtext";
647
647
  interface StoryblokAsset {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * AUTO-GENERATED FILE. DO NOT EDIT.
3
- * Generated by vite-storyblok-schema plugin on 2025-08-25T23:00:07.720Z.
3
+ * Generated by vite-storyblok-schema plugin on 2025-08-26T10:23:02.498Z.
4
4
  * Any changes will be overwritten.
5
5
  */
6
6
  export {};
@@ -126,11 +126,13 @@ export default function storyblok_schema({ output_path, interval_ms, storyblok_p
126
126
  await mkdir(path.dirname(components_file), { recursive: true });
127
127
  // Write the data to the components file
128
128
  await writeFile(components_file, JSON.stringify(new_components, null, 2));
129
- const here = (str) => path.join("node_modules/storyloco/packages/vite/src/lib", str);
129
+ const here = (str) => process.env.SCHEMA_DEV
130
+ ? path.join("src/lib", str)
131
+ : path.join("node_modules/storyloco/packages/vite/dist", str);
130
132
  // Generate types
131
133
  logger.start("Generating TypeScript definitions...");
132
134
  await $ `chmod u+w ${schema_ts_file}`.quiet().nothrow();
133
- await $ `${x} storyblok@4.2.0 ts generate -s ${storyblok_space_id} -p .svelte-kit/storyblok --compiler-options ${here("compiler_options.js")} --custom-fields-parser ${here("custom_fields_parser.js")} --strict`;
135
+ await $ `${x} storyblok@4.2.0 ts generate -s ${storyblok_space_id} -p .svelte-kit/storyblok --compiler-options ${here("compiler_options.js")} --custom-fields-parser ${here("custom_fields_parser.js")} --strict`.quiet();
134
136
  logger.succeed("TypeScript definitions generated.");
135
137
  // Get generated files
136
138
  const component_types = await readFile(`.svelte-kit/storyblok/types/${storyblok_space_id}/storyblok-components.d.ts`, "utf-8");
@@ -161,6 +163,8 @@ import type { ISbStoryData } from '@storyblok/js';`, "");
161
163
  // Try and use unknown instead of any
162
164
  content = content.replace(/Record<string, any>/g, "Record<string, unknown>");
163
165
  content = content.replace(/any\[]/g, "unknown[]");
166
+ // Make _uid and component optional (helps us reuse Storyblok types for non-storyblok components)
167
+ content = content.replace(/^([a-zA-Z0-9_]+):/gm, "$1?:");
164
168
  const formatted = await prettier.format(content, { parser: "typescript" });
165
169
  // Write the final file
166
170
  logger.start("Finalising schema file...");