@supernova-studio/client 0.10.2 → 0.12.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.mjs CHANGED
@@ -882,8 +882,9 @@ var PageBlockImageAlignment = z33.enum(["Left", "Center", "Stretch"]);
882
882
  var PageBlockTableCellAlignment = z33.enum(["Left", "Center", "Right"]);
883
883
  var PageBlockPreviewContainerSize = z33.enum(["Centered", "NaturalHeight"]);
884
884
  var PageBlockThemeDisplayMode = z33.enum(["Split", "Override"]);
885
+ var PageBlockColorV2 = z33.string();
885
886
  var PageBlockAppearanceV2 = z33.object({
886
- itemBackgroundColor: ColorValue.optional(),
887
+ itemBackgroundColor: PageBlockColorV2.optional(),
887
888
  numberOfColumns: z33.number().optional()
888
889
  });
889
890
  var PageBlockItemUntypedValue = z33.object({
@@ -927,7 +928,7 @@ var PageBlockItemAssetValue = z33.object({
927
928
  selectedPropertyIds: z33.array(z33.string()).optional(),
928
929
  showSearch: z33.boolean().optional(),
929
930
  previewContainerSize: PageBlockPreviewContainerSize.optional(),
930
- backgroundColor: z33.string().optional(),
931
+ backgroundColor: PageBlockColorV2.optional(),
931
932
  value: z33.array(
932
933
  z33.object({
933
934
  entityId: z33.string(),
@@ -1095,12 +1096,12 @@ var SafeIdSchema = z34.string().refine(
1095
1096
  var DocumentationPageAssetType = z35.enum(["image", "figmaFrame"]);
1096
1097
  var DocumentationPageImageAsset = z35.object({
1097
1098
  type: z35.literal(DocumentationPageAssetType.Enum.image),
1098
- url: z35.string().url().optional(),
1099
+ url: z35.string().optional(),
1099
1100
  id: SafeIdSchema
1100
1101
  });
1101
1102
  var DocumentationPageFrameAsset = z35.object({
1102
1103
  type: z35.literal(DocumentationPageAssetType.Enum.figmaFrame),
1103
- url: z35.string().url().optional(),
1104
+ url: z35.string().optional(),
1104
1105
  figmaFrame: PageBlockFrame
1105
1106
  });
1106
1107
  var DocumentationPageAsset = z35.discriminatedUnion("type", [
@@ -2731,11 +2732,11 @@ var DocumentationHierarchyV2DTO = z127.object({
2731
2732
  // src/api/requests/post-bulk-doc-page-elements.ts
2732
2733
  import { z as z128 } from "zod";
2733
2734
  var CreateBulkElementsInput = z128.object({
2735
+ parentPersistentId: z128.string().uuid(),
2734
2736
  persistentId: z128.string().uuid(),
2735
2737
  title: z128.string(),
2736
- configuration: DocumentationItemConfiguration,
2737
- parentPersistentId: z128.string().nullish(),
2738
- afterPersistentId: z128.string().nullish()
2738
+ configuration: DocumentationItemConfiguration.optional(),
2739
+ afterPersistentId: z128.string().uuid().optional()
2739
2740
  });
2740
2741
  var UpdateBulkElementsInput = z128.object({
2741
2742
  id: z128.string(),
@@ -2749,7 +2750,7 @@ var DuplicateBulkElementsInput = z128.object({
2749
2750
  id: z128.string(),
2750
2751
  persistentId: z128.string().uuid(),
2751
2752
  parentPersistentId: z128.string().uuid(),
2752
- afterPersistentId: z128.string().uuid().nullish()
2753
+ afterPersistentId: z128.string().uuid().optional()
2753
2754
  });
2754
2755
  var BulkEditDocPageElementsInput = z128.object({
2755
2756
  documentationPages: z128.object({
@@ -2864,1116 +2865,517 @@ import { Schema } from "prosemirror-model";
2864
2865
  var newSchema = {
2865
2866
  nodes: {
2866
2867
  paragraph: {
2867
- name: "paragraph",
2868
- spec: {
2869
- content: "inline*",
2870
- group: "block",
2871
- attrs: {
2872
- id: {
2873
- default: null
2874
- },
2875
- definitionId: {
2876
- default: "io.supernova.block.rich-text"
2877
- },
2878
- variantId: {
2879
- default: "default"
2880
- }
2881
- },
2882
- parseDOM: [
2883
- {
2884
- tag: "p"
2885
- }
2886
- ]
2887
- },
2888
- markSet: null,
2889
- groups: ["block"],
2868
+ content: "inline*",
2869
+ group: "block",
2890
2870
  attrs: {
2891
2871
  id: {
2892
- hasDefault: true,
2893
2872
  default: null
2894
2873
  },
2895
2874
  definitionId: {
2896
- hasDefault: true,
2897
2875
  default: "io.supernova.block.rich-text"
2898
2876
  },
2899
2877
  variantId: {
2900
- hasDefault: true,
2901
2878
  default: "default"
2902
2879
  }
2903
2880
  },
2904
- defaultAttrs: {
2905
- id: null,
2906
- definitionId: "io.supernova.block.rich-text",
2907
- variantId: "default"
2908
- },
2909
- contentMatch: {
2910
- validEnd: true,
2911
- wrapCache: []
2912
- },
2913
- inlineContent: true,
2914
- isBlock: true,
2915
- isText: false
2881
+ parseDOM: [
2882
+ {
2883
+ tag: "p"
2884
+ }
2885
+ ]
2916
2886
  },
2917
2887
  reactComponent: {
2918
- name: "reactComponent",
2919
- spec: {
2920
- group: "block",
2921
- atom: true,
2922
- draggable: true,
2923
- attrs: {
2924
- count: {
2925
- default: 0
2926
- }
2927
- },
2928
- parseDOM: [
2929
- {
2930
- tag: "react-component"
2931
- }
2932
- ]
2933
- },
2934
- markSet: [],
2935
- groups: ["block"],
2888
+ group: "block",
2889
+ atom: true,
2890
+ draggable: true,
2936
2891
  attrs: {
2937
2892
  count: {
2938
- hasDefault: true,
2939
2893
  default: 0
2940
2894
  }
2941
2895
  },
2942
- defaultAttrs: {
2943
- count: 0
2944
- },
2945
- contentMatch: {
2946
- validEnd: true,
2947
- wrapCache: []
2948
- },
2949
- inlineContent: false,
2950
- isBlock: true,
2951
- isText: false
2896
+ parseDOM: [
2897
+ {
2898
+ tag: "react-component"
2899
+ }
2900
+ ]
2952
2901
  },
2953
2902
  tableRow: {
2954
- name: "tableRow",
2955
- spec: {
2956
- tableRole: "row",
2957
- content: "(tableCell | tableHeader)*",
2958
- parseDOM: [
2959
- {
2960
- tag: "tr"
2961
- }
2962
- ]
2963
- },
2964
- markSet: [],
2965
- groups: [],
2966
- attrs: {},
2967
- defaultAttrs: {},
2968
- contentMatch: {
2969
- validEnd: true,
2970
- wrapCache: []
2971
- },
2972
- inlineContent: false,
2973
- isBlock: true,
2974
- isText: false
2903
+ tableRole: "row",
2904
+ content: "(tableCell | tableHeader)*",
2905
+ parseDOM: [
2906
+ {
2907
+ tag: "tr"
2908
+ }
2909
+ ]
2975
2910
  },
2976
2911
  table: {
2977
- name: "table",
2978
- spec: {
2979
- tableRole: "table",
2980
- content: "tableRow+",
2981
- group: "defaultTable",
2982
- isolating: true,
2983
- parseDOM: [
2984
- {
2985
- tag: "table"
2986
- }
2987
- ]
2988
- },
2989
- markSet: [],
2990
- groups: ["defaultTable"],
2991
- attrs: {},
2992
- defaultAttrs: {},
2993
- contentMatch: {
2994
- validEnd: false,
2995
- wrapCache: []
2996
- },
2997
- inlineContent: false,
2998
- isBlock: true,
2999
- isText: false
2912
+ tableRole: "table",
2913
+ content: "tableRow+",
2914
+ group: "defaultTable",
2915
+ isolating: true,
2916
+ parseDOM: [
2917
+ {
2918
+ tag: "table"
2919
+ }
2920
+ ]
3000
2921
  },
3001
2922
  tableCell: {
3002
- name: "tableCell",
3003
- spec: {
3004
- tableRole: "cell",
3005
- content: "(paragraph|image)+",
3006
- isolating: true,
3007
- attrs: {
3008
- id: {
3009
- default: null
3010
- },
3011
- textAlign: {
3012
- default: "left"
3013
- },
3014
- colspan: {
3015
- default: 1
3016
- },
3017
- rowspan: {
3018
- default: 1
3019
- },
3020
- colwidth: {
3021
- default: null
3022
- }
3023
- },
3024
- parseDOM: [
3025
- {
3026
- tag: "td"
3027
- }
3028
- ]
3029
- },
3030
- markSet: [],
3031
- groups: [],
2923
+ tableRole: "cell",
2924
+ content: "block+",
2925
+ isolating: true,
3032
2926
  attrs: {
3033
2927
  id: {
3034
2928
  default: null
3035
2929
  },
3036
2930
  textAlign: {
3037
- hasDefault: true,
3038
2931
  default: "left"
3039
2932
  },
3040
2933
  colspan: {
3041
- hasDefault: true,
3042
2934
  default: 1
3043
2935
  },
3044
2936
  rowspan: {
3045
- hasDefault: true,
3046
2937
  default: 1
3047
2938
  },
3048
2939
  colwidth: {
3049
- hasDefault: true,
3050
2940
  default: null
3051
2941
  }
3052
2942
  },
3053
- defaultAttrs: {
3054
- id: null,
3055
- textAlign: "left",
3056
- colspan: 1,
3057
- rowspan: 1,
3058
- colwidth: null
3059
- },
3060
- contentMatch: {
3061
- validEnd: false,
3062
- wrapCache: []
3063
- },
3064
- inlineContent: false,
3065
- isBlock: true,
3066
- isText: false
2943
+ parseDOM: [
2944
+ {
2945
+ tag: "td"
2946
+ }
2947
+ ]
3067
2948
  },
3068
2949
  tableHeader: {
3069
- name: "tableHeader",
3070
- spec: {
3071
- tableRole: "header_cell",
3072
- content: "(paragraph|image)+",
3073
- isolating: true,
3074
- attrs: {
3075
- id: {
3076
- default: null
3077
- },
3078
- textAlign: {
3079
- default: "left"
3080
- },
3081
- colspan: {
3082
- default: 1
3083
- },
3084
- rowspan: {
3085
- default: 1
3086
- },
3087
- colwidth: {
3088
- default: null
3089
- }
3090
- },
3091
- parseDOM: [
3092
- {
3093
- tag: "th"
3094
- }
3095
- ]
3096
- },
3097
- markSet: [],
3098
- groups: [],
2950
+ tableRole: "header_cell",
2951
+ content: "block+",
2952
+ isolating: true,
3099
2953
  attrs: {
3100
2954
  id: {
3101
2955
  default: null
3102
2956
  },
3103
2957
  textAlign: {
3104
- hasDefault: true,
3105
2958
  default: "left"
3106
2959
  },
3107
2960
  colspan: {
3108
- hasDefault: true,
3109
2961
  default: 1
3110
2962
  },
3111
2963
  rowspan: {
3112
- hasDefault: true,
3113
2964
  default: 1
3114
2965
  },
3115
2966
  colwidth: {
3116
- hasDefault: true,
3117
2967
  default: null
3118
2968
  }
3119
2969
  },
3120
- defaultAttrs: {
3121
- id: null,
3122
- textAlign: "left",
3123
- colspan: 1,
3124
- rowspan: 1,
3125
- colwidth: null
3126
- },
3127
- contentMatch: {
3128
- validEnd: false,
3129
- wrapCache: []
3130
- },
3131
- inlineContent: false,
3132
- isBlock: true,
3133
- isText: false
2970
+ parseDOM: [
2971
+ {
2972
+ tag: "th"
2973
+ }
2974
+ ]
3134
2975
  },
3135
2976
  tableContainer: {
3136
- name: "tableContainer",
3137
- spec: {
3138
- content: "table",
3139
- group: "block",
3140
- atom: true,
3141
- draggable: false,
3142
- defining: true,
3143
- attrs: {
3144
- id: {
3145
- default: null
3146
- },
3147
- definitionId: {
3148
- default: "io.supernova.block.table"
3149
- },
3150
- variantId: {
3151
- default: "default"
3152
- },
3153
- hasBorder: {
3154
- default: true
3155
- }
3156
- },
3157
- parseDOM: [
3158
- {
3159
- tag: "tableContainer"
3160
- }
3161
- ]
3162
- },
3163
- markSet: [],
3164
- groups: ["block"],
2977
+ content: "table",
2978
+ group: "block",
2979
+ atom: true,
2980
+ draggable: false,
2981
+ defining: true,
3165
2982
  attrs: {
3166
2983
  id: {
3167
- hasDefault: true,
3168
2984
  default: null
3169
2985
  },
3170
2986
  definitionId: {
3171
- hasDefault: true,
3172
2987
  default: "io.supernova.block.table"
3173
2988
  },
3174
2989
  variantId: {
3175
- hasDefault: true,
3176
2990
  default: "default"
3177
2991
  },
3178
2992
  hasBorder: {
3179
- hasDefault: true,
3180
2993
  default: true
3181
2994
  }
3182
2995
  },
3183
- defaultAttrs: {
3184
- id: null,
3185
- definitionId: "io.supernova.block.table",
3186
- variantId: "default",
3187
- hasBorder: true
3188
- },
3189
- contentMatch: {
3190
- validEnd: false,
3191
- wrapCache: []
3192
- },
3193
- inlineContent: false,
3194
- isBlock: true,
3195
- isText: false
3196
- },
3197
- image: {
3198
- name: "image",
3199
- spec: {
3200
- group: "block",
3201
- inline: false,
3202
- draggable: true,
3203
- attrs: {
3204
- src: {
3205
- default: null
3206
- },
3207
- alt: {
3208
- default: null
3209
- },
3210
- title: {
3211
- default: null
3212
- }
3213
- },
3214
- parseDOM: [
3215
- {
3216
- tag: 'img[src]:not([src^="data:"])'
3217
- }
3218
- ]
3219
- },
3220
- markSet: [],
3221
- groups: ["block"],
3222
- attrs: {
3223
- src: {
3224
- hasDefault: true,
3225
- default: null
3226
- },
3227
- alt: {
3228
- hasDefault: true,
3229
- default: null
3230
- },
3231
- title: {
3232
- hasDefault: true,
3233
- default: null
3234
- }
3235
- },
3236
- defaultAttrs: {
3237
- src: null,
3238
- alt: null,
3239
- title: null
3240
- },
3241
- contentMatch: {
3242
- validEnd: true,
3243
- wrapCache: []
3244
- },
3245
- inlineContent: false,
3246
- isBlock: true,
3247
- isText: false
3248
- },
3249
- codeBlock: {
3250
- name: "codeBlock",
3251
- spec: {
3252
- content: "text*",
3253
- marks: "",
3254
- group: "block",
3255
- code: true,
3256
- defining: true,
3257
- attrs: {
3258
- language: {
3259
- default: null
3260
- }
3261
- },
3262
- parseDOM: [
3263
- {
3264
- tag: "pre",
3265
- preserveWhitespace: "full"
3266
- }
3267
- ]
3268
- },
3269
- markSet: [],
3270
- groups: ["block"],
3271
- attrs: {
3272
- language: {
3273
- hasDefault: true,
3274
- default: null
2996
+ parseDOM: [
2997
+ {
2998
+ tag: "tableContainer"
3275
2999
  }
3276
- },
3277
- defaultAttrs: {
3278
- language: null
3279
- },
3280
- contentMatch: {
3281
- validEnd: true,
3282
- wrapCache: []
3283
- },
3284
- inlineContent: true,
3285
- isBlock: true,
3286
- isText: false
3000
+ ]
3287
3001
  },
3288
3002
  hardBreak: {
3289
- name: "hardBreak",
3290
- spec: {
3291
- group: "inline",
3292
- inline: true,
3293
- selectable: false,
3294
- parseDOM: [
3295
- {
3296
- tag: "br"
3297
- }
3298
- ]
3299
- },
3300
- markSet: [],
3301
- groups: ["inline"],
3302
- attrs: {},
3303
- defaultAttrs: {},
3304
- contentMatch: {
3305
- validEnd: true,
3306
- wrapCache: []
3307
- },
3308
- inlineContent: false,
3309
- isBlock: false,
3310
- isText: false
3003
+ group: "inline",
3004
+ inline: true,
3005
+ selectable: false,
3006
+ parseDOM: [
3007
+ {
3008
+ tag: "br"
3009
+ }
3010
+ ]
3311
3011
  },
3312
3012
  text: {
3313
- name: "text",
3314
- spec: {
3315
- group: "inline"
3316
- },
3317
- markSet: [],
3318
- groups: ["inline"],
3319
- attrs: {},
3320
- defaultAttrs: {},
3321
- contentMatch: {
3322
- validEnd: true,
3323
- wrapCache: []
3324
- },
3325
- inlineContent: false,
3326
- isBlock: false,
3327
- isText: true
3013
+ group: "inline"
3328
3014
  },
3329
3015
  heading: {
3330
- name: "heading",
3331
- spec: {
3332
- content: "inline*",
3333
- group: "block",
3334
- defining: true,
3335
- attrs: {
3336
- id: {
3337
- default: null
3338
- },
3339
- level: {
3340
- default: 1
3341
- },
3342
- definitionId: {
3343
- default: null
3344
- },
3345
- variantId: {
3346
- default: null
3347
- }
3348
- },
3349
- parseDOM: [
3350
- {
3351
- tag: "h1",
3352
- attrs: {
3353
- level: 1,
3354
- definitionId: "io.supernova.block.title1",
3355
- variantId: "default"
3356
- }
3357
- },
3358
- {
3359
- tag: "h2",
3360
- attrs: {
3361
- level: 2,
3362
- definitionId: "io.supernova.block.title2",
3363
- variantId: "default"
3364
- }
3365
- },
3366
- {
3367
- tag: "h3",
3368
- attrs: {
3369
- level: 3,
3370
- definitionId: "io.supernova.block.title3",
3371
- variantId: "default"
3372
- }
3373
- },
3374
- {
3375
- tag: "h4",
3376
- attrs: {
3377
- level: 4,
3378
- definitionId: "io.supernova.block.title4",
3379
- variantId: "default"
3380
- }
3381
- },
3382
- {
3383
- tag: "h5",
3384
- attrs: {
3385
- level: 5,
3386
- definitionId: "io.supernova.block.title5",
3387
- variantId: "default"
3388
- }
3389
- }
3390
- ]
3391
- },
3392
- markSet: null,
3393
- groups: ["block"],
3016
+ content: "inline*",
3017
+ group: "block",
3018
+ defining: true,
3394
3019
  attrs: {
3395
3020
  id: {
3396
- hasDefault: true,
3397
3021
  default: null
3398
3022
  },
3399
3023
  level: {
3400
- hasDefault: true,
3401
3024
  default: 1
3402
3025
  },
3403
3026
  definitionId: {
3404
- hasDefault: true,
3405
3027
  default: null
3406
3028
  },
3407
3029
  variantId: {
3408
- hasDefault: true,
3409
3030
  default: null
3410
3031
  }
3411
3032
  },
3412
- defaultAttrs: {
3413
- id: null,
3414
- level: 1,
3415
- definitionId: null,
3416
- variantId: null
3417
- },
3418
- contentMatch: {
3419
- validEnd: true,
3420
- wrapCache: []
3421
- },
3422
- inlineContent: true,
3423
- isBlock: true,
3424
- isText: false
3425
- },
3426
- listItem: {
3427
- name: "listItem",
3428
- spec: {
3429
- content: "paragraph (paragraph | list)*",
3430
- defining: true,
3431
- attrs: {
3432
- id: {
3433
- default: null
3033
+ parseDOM: [
3034
+ {
3035
+ tag: "h1",
3036
+ attrs: {
3037
+ level: 1,
3038
+ definitionId: "io.supernova.block.title1",
3039
+ variantId: "default"
3434
3040
  }
3435
3041
  },
3436
- parseDOM: [
3437
- {
3438
- tag: "li"
3042
+ {
3043
+ tag: "h2",
3044
+ attrs: {
3045
+ level: 2,
3046
+ definitionId: "io.supernova.block.title2",
3047
+ variantId: "default"
3439
3048
  }
3440
- ]
3441
- },
3442
- markSet: [],
3443
- groups: [],
3049
+ },
3050
+ {
3051
+ tag: "h3",
3052
+ attrs: {
3053
+ level: 3,
3054
+ definitionId: "io.supernova.block.title3",
3055
+ variantId: "default"
3056
+ }
3057
+ },
3058
+ {
3059
+ tag: "h4",
3060
+ attrs: {
3061
+ level: 4,
3062
+ definitionId: "io.supernova.block.title4",
3063
+ variantId: "default"
3064
+ }
3065
+ },
3066
+ {
3067
+ tag: "h5",
3068
+ attrs: {
3069
+ level: 5,
3070
+ definitionId: "io.supernova.block.title5",
3071
+ variantId: "default"
3072
+ }
3073
+ }
3074
+ ]
3075
+ },
3076
+ listItem: {
3077
+ content: "paragraph list{0,1}",
3078
+ defining: true,
3444
3079
  attrs: {
3445
3080
  id: {
3446
- hasDefault: true,
3447
3081
  default: null
3448
3082
  }
3449
3083
  },
3450
- defaultAttrs: {
3451
- id: null
3452
- },
3453
- contentMatch: {
3454
- validEnd: false,
3455
- wrapCache: []
3456
- },
3457
- inlineContent: false,
3458
- isBlock: true,
3459
- isText: false
3084
+ parseDOM: [
3085
+ {
3086
+ tag: "li"
3087
+ }
3088
+ ]
3460
3089
  },
3461
3090
  orderedList: {
3462
- name: "orderedList",
3463
- spec: {
3464
- content: "listItem+",
3465
- group: "block list topLevel",
3466
- attrs: {
3467
- id: {
3468
- default: null
3469
- },
3470
- definitionId: {
3471
- default: "io.supernova.block.ordered-list"
3472
- },
3473
- variantId: {
3474
- default: "default"
3475
- },
3476
- start: {
3477
- default: 1
3478
- }
3479
- },
3480
- parseDOM: [
3481
- {
3482
- tag: "ol"
3483
- }
3484
- ]
3485
- },
3486
- markSet: [],
3487
- groups: ["block", "list", "topLevel"],
3091
+ content: "listItem+",
3092
+ group: "block list",
3488
3093
  attrs: {
3489
3094
  id: {
3490
- hasDefault: true,
3491
3095
  default: null
3492
3096
  },
3493
3097
  definitionId: {
3494
- hasDefault: true,
3495
3098
  default: "io.supernova.block.ordered-list"
3496
3099
  },
3497
3100
  variantId: {
3498
- hasDefault: true,
3499
3101
  default: "default"
3500
3102
  },
3501
3103
  start: {
3502
- hasDefault: true,
3503
3104
  default: 1
3504
3105
  }
3505
3106
  },
3506
- defaultAttrs: {
3507
- id: null,
3508
- definitionId: "io.supernova.block.ordered-list",
3509
- variantId: "default",
3510
- start: 1
3511
- },
3512
- contentMatch: {
3513
- validEnd: false,
3514
- wrapCache: []
3515
- },
3516
- inlineContent: false,
3517
- isBlock: true,
3518
- isText: false
3107
+ parseDOM: [
3108
+ {
3109
+ tag: "ol"
3110
+ }
3111
+ ]
3519
3112
  },
3520
3113
  bulletList: {
3521
- name: "bulletList",
3522
- spec: {
3523
- content: "listItem+",
3524
- group: "block list topLevel",
3525
- attrs: {
3526
- id: {
3527
- default: null
3528
- },
3529
- definitionId: {
3530
- default: "io.supernova.block.unordered-list"
3531
- },
3532
- variantId: {
3533
- default: "default"
3534
- }
3535
- },
3536
- parseDOM: [
3537
- {
3538
- tag: "ul"
3539
- }
3540
- ]
3541
- },
3542
- markSet: [],
3543
- groups: ["block", "list", "topLevel"],
3114
+ content: "listItem+",
3115
+ group: "block list",
3544
3116
  attrs: {
3545
3117
  id: {
3546
- hasDefault: true,
3547
3118
  default: null
3548
3119
  },
3549
3120
  definitionId: {
3550
- hasDefault: true,
3551
3121
  default: "io.supernova.block.unordered-list"
3552
3122
  },
3553
3123
  variantId: {
3554
- hasDefault: true,
3555
3124
  default: "default"
3556
3125
  }
3557
3126
  },
3558
- defaultAttrs: {
3559
- id: null,
3560
- definitionId: "io.supernova.block.unordered-list",
3561
- variantId: "default"
3562
- },
3563
- contentMatch: {
3564
- validEnd: false,
3565
- wrapCache: []
3566
- },
3567
- inlineContent: false,
3568
- isBlock: true,
3569
- isText: false
3127
+ parseDOM: [
3128
+ {
3129
+ tag: "ul"
3130
+ }
3131
+ ]
3570
3132
  },
3571
3133
  horizontalRule: {
3572
- name: "horizontalRule",
3573
- spec: {
3574
- group: "block",
3575
- attrs: {
3576
- id: {
3577
- default: null
3578
- },
3579
- definitionId: {
3580
- default: "io.supernova.block.divider"
3581
- },
3582
- variantId: {
3583
- default: "default"
3584
- }
3585
- },
3586
- parseDOM: [
3587
- {
3588
- tag: "div.node-horizontalRule"
3589
- },
3590
- {
3591
- tag: "hr"
3592
- }
3593
- ]
3594
- },
3595
- markSet: [],
3596
- groups: ["block"],
3134
+ group: "block",
3597
3135
  attrs: {
3598
3136
  id: {
3599
- hasDefault: true,
3600
3137
  default: null
3601
3138
  },
3602
3139
  definitionId: {
3603
- hasDefault: true,
3604
3140
  default: "io.supernova.block.divider"
3605
3141
  },
3606
3142
  variantId: {
3607
- hasDefault: true,
3608
3143
  default: "default"
3609
3144
  }
3610
3145
  },
3611
- defaultAttrs: {
3612
- id: null,
3613
- definitionId: "io.supernova.block.divider",
3614
- variantId: "default"
3615
- },
3616
- contentMatch: {
3617
- validEnd: true,
3618
- wrapCache: []
3619
- },
3620
- inlineContent: false,
3621
- isBlock: true,
3622
- isText: false
3623
- },
3624
- blockquote: {
3625
- name: "blockquote",
3626
- spec: {
3627
- content: "paragraph+",
3628
- group: "block",
3629
- defining: true,
3630
- attrs: {
3631
- id: {
3632
- hasDefault: true,
3633
- default: null
3634
- },
3635
- definitionId: {
3636
- default: "io.supernova.block.blockquote"
3637
- },
3638
- variantId: {
3639
- default: "default"
3640
- }
3146
+ parseDOM: [
3147
+ {
3148
+ tag: "div.node-horizontalRule"
3641
3149
  },
3642
- parseDOM: [
3643
- {
3644
- tag: "blockquote"
3645
- }
3646
- ]
3647
- },
3648
- markSet: [],
3649
- groups: ["block"],
3150
+ {
3151
+ tag: "hr"
3152
+ }
3153
+ ]
3154
+ },
3155
+ blockquote: {
3156
+ content: "inline*",
3157
+ group: "block",
3158
+ draggable: true,
3159
+ defining: true,
3650
3160
  attrs: {
3651
3161
  id: {
3652
3162
  default: null
3653
3163
  },
3654
3164
  definitionId: {
3655
- hasDefault: true,
3656
3165
  default: "io.supernova.block.blockquote"
3657
3166
  },
3658
3167
  variantId: {
3659
- hasDefault: true,
3660
3168
  default: "default"
3661
3169
  }
3662
3170
  },
3663
- defaultAttrs: {
3664
- id: null,
3665
- definitionId: "io.supernova.block.blockquote",
3666
- variantId: "default"
3667
- },
3668
- contentMatch: {
3669
- validEnd: false,
3670
- wrapCache: []
3671
- },
3672
- inlineContent: false,
3673
- isBlock: true,
3674
- isText: false
3171
+ parseDOM: [
3172
+ {
3173
+ tag: "blockquote"
3174
+ }
3175
+ ]
3675
3176
  },
3676
3177
  plainSection: {
3677
- name: "plainSection",
3678
- spec: {
3679
- content: "sectionItem",
3680
- group: "section topLevel",
3681
- atom: true,
3682
- draggable: false,
3683
- isolating: true,
3684
- attrs: {
3685
- id: {
3686
- default: null
3687
- }
3688
- },
3689
- parseDOM: [
3690
- {
3691
- tag: "section",
3692
- attrs: {
3693
- "data-section-type": "plain"
3694
- }
3695
- }
3696
- ]
3697
- },
3698
- markSet: [],
3699
- groups: ["section", "topLevel"],
3178
+ content: "sectionItem",
3179
+ group: "section",
3180
+ atom: true,
3181
+ draggable: false,
3182
+ isolating: true,
3700
3183
  attrs: {
3701
3184
  id: {
3702
- hasDefault: true,
3703
3185
  default: null
3704
3186
  }
3705
3187
  },
3706
- defaultAttrs: {
3707
- id: null
3708
- },
3709
- contentMatch: {
3710
- validEnd: false,
3711
- wrapCache: []
3712
- },
3713
- inlineContent: false,
3714
- isBlock: true,
3715
- isText: false
3188
+ parseDOM: [
3189
+ {
3190
+ tag: "section",
3191
+ attrs: {
3192
+ "data-section-type": "plain"
3193
+ }
3194
+ }
3195
+ ]
3716
3196
  },
3717
3197
  tabsSection: {
3718
- name: "tabsSection",
3719
- spec: {
3720
- content: "sectionItem+",
3721
- group: "section topLevel",
3722
- atom: true,
3723
- draggable: false,
3724
- isolating: true,
3725
- attrs: {
3726
- id: {
3727
- default: null
3728
- }
3729
- },
3730
- parseDOM: [
3731
- {
3732
- tag: "div"
3733
- }
3734
- ]
3735
- },
3736
- markSet: [],
3737
- groups: ["section", "topLevel"],
3198
+ content: "sectionItem+",
3199
+ group: "section",
3200
+ atom: true,
3201
+ draggable: false,
3202
+ isolating: true,
3738
3203
  attrs: {
3739
3204
  id: {
3740
- hasDefault: true,
3741
3205
  default: null
3742
3206
  }
3743
3207
  },
3744
- defaultAttrs: {
3745
- id: null
3746
- },
3747
- contentMatch: {
3748
- validEnd: false,
3749
- wrapCache: []
3750
- },
3751
- inlineContent: false,
3752
- isBlock: true,
3753
- isText: false
3208
+ parseDOM: [
3209
+ {
3210
+ tag: "div"
3211
+ }
3212
+ ]
3754
3213
  },
3755
3214
  sectionItem: {
3756
- name: "sectionItem",
3757
- spec: {
3758
- content: "sectionItemColumn{1, 3}",
3759
- group: "sectionItem",
3760
- atom: true,
3761
- selectable: false,
3762
- draggable: false,
3763
- isolating: true,
3764
- attrs: {
3765
- id: {
3766
- default: null
3767
- },
3768
- title: {
3769
- default: ""
3770
- }
3771
- },
3772
- parseDOM: [
3773
- {
3774
- tag: "section-item"
3775
- }
3776
- ]
3777
- },
3778
- markSet: [],
3779
- groups: ["sectionItem"],
3215
+ content: "sectionItemColumn{1, 3}",
3216
+ group: "sectionItem",
3217
+ atom: true,
3218
+ selectable: false,
3219
+ draggable: false,
3220
+ isolating: true,
3780
3221
  attrs: {
3781
3222
  id: {
3782
- hasDefault: true,
3783
3223
  default: null
3784
3224
  },
3785
3225
  title: {
3786
- hasDefault: true,
3787
3226
  default: ""
3788
3227
  }
3789
3228
  },
3790
- defaultAttrs: {
3791
- id: null,
3792
- title: ""
3793
- },
3794
- contentMatch: {
3795
- validEnd: false,
3796
- wrapCache: []
3797
- },
3798
- inlineContent: false,
3799
- isBlock: true,
3800
- isText: false
3229
+ parseDOM: [
3230
+ {
3231
+ tag: "section-item"
3232
+ }
3233
+ ]
3801
3234
  },
3802
3235
  sectionItemColumn: {
3803
- name: "sectionItemColumn",
3804
- spec: {
3805
- content: "block+",
3806
- group: "sectionItemColumn",
3807
- atom: true,
3808
- selectable: false,
3809
- draggable: false,
3810
- isolating: true,
3811
- attrs: {
3812
- id: {
3813
- default: null
3814
- }
3815
- },
3816
- parseDOM: [
3817
- {
3818
- tag: "section-item-column"
3819
- }
3820
- ]
3821
- },
3822
- markSet: [],
3823
- groups: ["sectionItemColumn"],
3236
+ content: "block+",
3237
+ group: "sectionItemColumn",
3238
+ atom: true,
3239
+ selectable: false,
3240
+ draggable: false,
3241
+ isolating: true,
3824
3242
  attrs: {
3825
3243
  id: {
3826
- hasDefault: true,
3827
3244
  default: null
3828
3245
  }
3829
3246
  },
3830
- defaultAttrs: {
3831
- id: null
3832
- },
3833
- contentMatch: {
3834
- validEnd: false,
3835
- wrapCache: []
3836
- },
3837
- inlineContent: false,
3838
- isBlock: true,
3839
- isText: false
3247
+ parseDOM: [
3248
+ {
3249
+ tag: "section-item-column"
3250
+ }
3251
+ ]
3840
3252
  },
3841
3253
  doc: {
3842
- name: "doc",
3843
- spec: {
3844
- content: "(block|section)+"
3845
- },
3846
- markSet: [],
3847
- groups: [],
3848
- attrs: {},
3849
- defaultAttrs: {},
3850
- contentMatch: {
3851
- validEnd: false,
3852
- wrapCache: []
3853
- },
3854
- inlineContent: false,
3855
- isBlock: true,
3856
- isText: false
3254
+ content: "(block|section)+"
3857
3255
  },
3858
3256
  callout: {
3859
- name: "callout",
3860
- spec: {
3861
- content: "inline*",
3862
- group: "block topLevel",
3863
- draggable: true,
3864
- defining: true,
3865
- attrs: {
3866
- id: {
3867
- default: null
3868
- },
3869
- definitionId: {
3870
- default: "io.supernova.block.callout"
3871
- },
3872
- variantId: {
3873
- default: "default"
3874
- },
3875
- type: {
3876
- default: "neutral"
3877
- }
3878
- },
3879
- parseDOM: [
3880
- {
3881
- tag: "callout"
3882
- }
3883
- ]
3884
- },
3885
- markSet: null,
3886
- groups: ["block", "topLevel"],
3257
+ content: "inline*",
3258
+ group: "block",
3259
+ draggable: true,
3260
+ defining: true,
3887
3261
  attrs: {
3888
3262
  id: {
3889
- hasDefault: true,
3890
3263
  default: null
3891
3264
  },
3892
3265
  definitionId: {
3893
- hasDefault: true,
3894
3266
  default: "io.supernova.block.callout"
3895
3267
  },
3896
3268
  variantId: {
3897
- hasDefault: true,
3898
3269
  default: "default"
3899
3270
  },
3900
3271
  type: {
3901
- hasDefault: true,
3902
3272
  default: "neutral"
3903
3273
  }
3904
3274
  },
3905
- defaultAttrs: {
3906
- id: null,
3907
- definitionId: "io.supernova.block.callout",
3908
- variantId: "default",
3909
- type: "neutral"
3910
- },
3911
- contentMatch: {
3912
- validEnd: true,
3913
- wrapCache: []
3914
- },
3915
- inlineContent: true,
3916
- isBlock: true,
3917
- isText: false
3275
+ parseDOM: [
3276
+ {
3277
+ tag: "callout"
3278
+ }
3279
+ ]
3918
3280
  },
3919
3281
  blockNode: {
3920
- name: "blockNode",
3282
+ group: "block",
3283
+ atom: true,
3284
+ draggable: true,
3285
+ attrs: {
3286
+ id: {
3287
+ default: null
3288
+ },
3289
+ definitionId: {
3290
+ default: null
3291
+ },
3292
+ variantId: {
3293
+ default: null
3294
+ },
3295
+ appearance: {
3296
+ default: "{}"
3297
+ },
3298
+ columns: {
3299
+ default: 1
3300
+ },
3301
+ items: {
3302
+ default: "[]"
3303
+ }
3304
+ },
3305
+ parseDOM: [
3306
+ {
3307
+ tag: "block-node"
3308
+ }
3309
+ ]
3310
+ },
3311
+ embed: {
3312
+ group: "block",
3313
+ draggable: true,
3314
+ defining: true,
3315
+ attrs: {
3316
+ id: {
3317
+ default: null
3318
+ },
3319
+ definitionId: {
3320
+ default: null
3321
+ },
3322
+ variantId: {
3323
+ default: null
3324
+ },
3325
+ type: {
3326
+ default: "youtube"
3327
+ },
3328
+ url: {
3329
+ default: null
3330
+ },
3331
+ height: {
3332
+ default: null
3333
+ }
3334
+ }
3335
+ },
3336
+ image: {
3337
+ name: "image",
3921
3338
  spec: {
3922
3339
  group: "block",
3923
- atom: true,
3340
+ inline: false,
3341
+ draggable: true,
3924
3342
  attrs: {
3925
- id: {
3343
+ src: {
3926
3344
  default: null
3927
3345
  },
3928
- definitionId: {
3346
+ alt: {
3929
3347
  default: null
3930
3348
  },
3931
- variantId: {
3349
+ title: {
3932
3350
  default: null
3933
- },
3934
- columns: {
3935
- default: 1
3936
- },
3937
- items: {
3938
- default: "[]"
3939
3351
  }
3940
3352
  },
3941
3353
  parseDOM: [
3942
3354
  {
3943
- tag: "block-node"
3355
+ tag: 'img[src]:not([src^="data:"])'
3944
3356
  }
3945
3357
  ]
3946
3358
  },
3947
3359
  markSet: [],
3948
3360
  groups: ["block"],
3949
3361
  attrs: {
3950
- id: {
3362
+ src: {
3951
3363
  hasDefault: true,
3952
3364
  default: null
3953
3365
  },
3954
- definitionId: {
3366
+ alt: {
3955
3367
  hasDefault: true,
3956
3368
  default: null
3957
3369
  },
3958
- variantId: {
3370
+ title: {
3959
3371
  hasDefault: true,
3960
3372
  default: null
3961
- },
3962
- columns: {
3963
- hasDefault: true,
3964
- default: 1
3965
- },
3966
- items: {
3967
- hasDefault: true,
3968
- default: "[]"
3969
3373
  }
3970
3374
  },
3971
3375
  defaultAttrs: {
3972
- id: null,
3973
- definitionId: null,
3974
- variantId: null,
3975
- columns: 1,
3976
- items: "[]"
3376
+ src: null,
3377
+ alt: null,
3378
+ title: null
3977
3379
  },
3978
3380
  contentMatch: {
3979
3381
  validEnd: true,
@@ -4266,18 +3668,6 @@ function blockToProsemirrorNode(block, definition) {
4266
3668
  property: tableProperty
4267
3669
  });
4268
3670
  }
4269
- const embedProperty = BlockDefinitionUtils.firstEmbedProperty(definition);
4270
- const embedType = serializeEmbedType(block.data.packageId);
4271
- if (embedProperty && embedType) {
4272
- return serializeAsEmbed(
4273
- {
4274
- block,
4275
- definition,
4276
- property: embedProperty
4277
- },
4278
- embedType
4279
- );
4280
- }
4281
3671
  if (block.data.packageId === "io.supernova.block.divider") {
4282
3672
  return serializeAsDivider({
4283
3673
  block,
@@ -4361,7 +3751,7 @@ function serializeAsMultiRichTextBlock(input) {
4361
3751
  }
4362
3752
  function serializeAsMultiParagraph(input) {
4363
3753
  return {
4364
- type: "bulletlist",
3754
+ type: "bulletList",
4365
3755
  attrs: {
4366
3756
  ...serializeBlockNodeAttributes(input)
4367
3757
  },
@@ -4370,7 +3760,7 @@ function serializeAsMultiParagraph(input) {
4370
3760
  }
4371
3761
  function serializeAsOrderedList(input) {
4372
3762
  return {
4373
- type: "orderedlist",
3763
+ type: "orderedList",
4374
3764
  attrs: {
4375
3765
  ...serializeBlockNodeAttributes(input),
4376
3766
  start: "1"
@@ -4380,7 +3770,7 @@ function serializeAsOrderedList(input) {
4380
3770
  }
4381
3771
  function serializeAsUnorderedList(input) {
4382
3772
  return {
4383
- type: "bulletlist",
3773
+ type: "bulletList",
4384
3774
  attrs: {
4385
3775
  ...serializeBlockNodeAttributes(input)
4386
3776
  },
@@ -4389,7 +3779,7 @@ function serializeAsUnorderedList(input) {
4389
3779
  }
4390
3780
  function serializeAsListItem(text) {
4391
3781
  return {
4392
- type: "listitem",
3782
+ type: "listItem",
4393
3783
  content: [
4394
3784
  {
4395
3785
  type: "paragraph",
@@ -4476,32 +3866,6 @@ function serializeTableNode(node) {
4476
3866
  };
4477
3867
  }
4478
3868
  }
4479
- function serializeAsEmbed(input, embedType) {
4480
- const { block, definition, property: embedProperty } = input;
4481
- const blockItem = BlockParsingUtils.singleBlockItem(block);
4482
- const embedValue = BlockParsingUtils.embedPropertyValue(blockItem, embedProperty.id);
4483
- return {
4484
- type: "embed",
4485
- attrs: {
4486
- ...serializeBlockNodeAttributes(input),
4487
- type: embedType,
4488
- url: embedValue.value,
4489
- height: embedValue.height,
4490
- caption: embedValue.caption
4491
- }
4492
- };
4493
- }
4494
- function serializeEmbedType(blockDefinitionId) {
4495
- switch (blockDefinitionId) {
4496
- case "io.supernova.block.embed":
4497
- return "generic";
4498
- case "io.supernova.block.embed-youtube":
4499
- return "youtube";
4500
- case "io.supernova.block.embed-figma":
4501
- return "figma";
4502
- }
4503
- return void 0;
4504
- }
4505
3869
  function serializeAsDivider(input) {
4506
3870
  return {
4507
3871
  type: "horizontalRule",
@@ -4621,7 +3985,7 @@ function serializeAsCustomBlock(block, definition) {
4621
3985
  attrs: {
4622
3986
  id: block.id,
4623
3987
  definitionId: block.data.packageId,
4624
- variantId: block.data.variantId,
3988
+ ...block.data.variantId && { variantId: block.data.variantId },
4625
3989
  items: JSON.stringify(items),
4626
3990
  ...columns && { columns }
4627
3991
  }
@@ -7166,10 +6530,6 @@ function prosemirrorNodeToBlock(prosemirrorNode, definition) {
7166
6530
  if (multiRichTextProperty) {
7167
6531
  return parseAsMultiRichText(prosemirrorNode, definition, multiRichTextProperty);
7168
6532
  }
7169
- const embedProperty = BlockDefinitionUtils.firstEmbedProperty(definition);
7170
- if (prosemirrorNode.type === "embed" && embedProperty) {
7171
- return parseAsEmbed(prosemirrorNode, definition, embedProperty);
7172
- }
7173
6533
  const tableProperty = BlockDefinitionUtils.firstTableProperty(definition);
7174
6534
  if (tableProperty) {
7175
6535
  return parseAsTable(prosemirrorNode, definition, tableProperty);
@@ -7243,7 +6603,7 @@ function parseAsMultiRichText(prosemirrorNode, definition, property) {
7243
6603
  [property.id]: {
7244
6604
  // Required
7245
6605
  value: (prosemirrorNode.content ?? []).map((listItem) => {
7246
- if (listItem.type !== "listitem")
6606
+ if (listItem.type !== "listItem")
7247
6607
  return null;
7248
6608
  if (!listItem.content?.length)
7249
6609
  return parseRichText([]);
@@ -7329,6 +6689,7 @@ function parseAsTable(prosemirrorNode, definition, property) {
7329
6689
  data: {
7330
6690
  packageId: "io.supernova.block.table",
7331
6691
  indentLevel: 0,
6692
+ variantId: "default",
7332
6693
  ...variantId && { variantId },
7333
6694
  items: [
7334
6695
  {
@@ -7439,35 +6800,6 @@ function emptyTableCellContent() {
7439
6800
  }
7440
6801
  ];
7441
6802
  }
7442
- function parseAsEmbed(prosemirrorNode, definition, property) {
7443
- const id = getProsemirrorBlockId(prosemirrorNode);
7444
- if (!id)
7445
- return null;
7446
- const variantId = getProsemirrorBlockVariantId(prosemirrorNode);
7447
- const url = getProsemirrorAttribute(prosemirrorNode, "url", z133.string().optional());
7448
- const caption = getProsemirrorAttribute(prosemirrorNode, "caption", z133.string().optional());
7449
- const height = getProsemirrorAttribute(prosemirrorNode, "height", z133.number().optional());
7450
- return {
7451
- id,
7452
- data: {
7453
- packageId: definition.id,
7454
- indentLevel: 0,
7455
- ...variantId && { variantId },
7456
- items: [
7457
- {
7458
- id,
7459
- props: {
7460
- [property.id]: {
7461
- value: url,
7462
- caption,
7463
- height: height ?? 200
7464
- }
7465
- }
7466
- }
7467
- ]
7468
- }
7469
- };
7470
- }
7471
6803
  function parseAsDivider(prosemirrorNode, definition) {
7472
6804
  const id = getProsemirrorBlockId(prosemirrorNode);
7473
6805
  if (!id)
@@ -7522,7 +6854,7 @@ function parseAppearance(prosemirrorNode) {
7522
6854
  }
7523
6855
  const backgroundColor = getProsemirrorAttribute(prosemirrorNode, "backgroundColor", z133.string().optional());
7524
6856
  if (backgroundColor) {
7525
- const parsedColor = ColorValue.safeParse(JSON.parse(backgroundColor));
6857
+ const parsedColor = PageBlockColorV2.safeParse(JSON.parse(backgroundColor));
7526
6858
  if (parsedColor.success) {
7527
6859
  appearance.itemBackgroundColor = parsedColor.data;
7528
6860
  }
@@ -7552,7 +6884,7 @@ function parseItem(rawItem, definition) {
7552
6884
  }
7553
6885
  return {
7554
6886
  id: parsedItem.data.id,
7555
- linksTo: parsedItem.data.linksTo,
6887
+ ...parsedItem.data.linksTo && { linksTo: parsedItem.data.linksTo },
7556
6888
  props: sanitizedProps
7557
6889
  };
7558
6890
  }