datocms-plugin-sdk 0.3.32 → 0.3.34-alpha.2

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.
@@ -136,6 +136,8 @@ function connect(configuration) {
136
136
  manualFieldExtensions: manualFieldExtensions,
137
137
  itemFormSidebarPanels: itemFormSidebarPanels,
138
138
  overrideFieldExtensions: toMultifield(configuration.overrideFieldExtensions),
139
+ customMarksForStructuredTextField: toMultifield(configuration.customMarksForStructuredTextField),
140
+ customBlockStylesForStructuredTextField: toMultifield(configuration.customBlockStylesForStructuredTextField),
139
141
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
140
142
  onChange: function (newSettings) {
141
143
  if (listener) {
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/connect.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Field, ModelBlock } from './SiteApiSchema';
2
2
  import { AssetSource, ContentAreaSidebarItem, FieldExtensionOverride, InitPropertiesAndMethods, ItemFormSidebarPanel, MainNavigationTab, ManualFieldExtension, OnBootPropertiesAndMethods, RenderAssetSourcePropertiesAndMethods, RenderConfigScreenPropertiesAndMethods, RenderFieldExtensionPropertiesAndMethods, RenderManualFieldExtensionConfigScreenPropertiesAndMethods, RenderModalPropertiesAndMethods, RenderPagePropertiesAndMethods, RenderSidebarPanePropertiesAndMethods, SettingsAreaSidebarItemGroup } from './types';
3
+ import { StructuredTextCustomBlockStyle, StructuredTextCustomMark } from '.';
3
4
  export declare type SizingUtilities = {
4
5
  /**
5
6
  * Listens for DOM changes and automatically calls `setHeight` when it detects
@@ -84,6 +85,20 @@ export declare type FullConnectParameters = {
84
85
  * @group forcedFieldExtensions
85
86
  */
86
87
  overrideFieldExtensions: (field: Field, ctx: FieldIntentCtx) => FieldExtensionOverride | void;
88
+ /**
89
+ * Use this function to define a number of custom marks for a specific
90
+ * Structured Text field
91
+ *
92
+ * @group structuredText
93
+ */
94
+ customMarksForStructuredTextField: (field: Field, ctx: FieldIntentCtx) => StructuredTextCustomMark[] | void;
95
+ /**
96
+ * Use this function to define a number of custom block styles for a specific
97
+ * Structured Text field
98
+ *
99
+ * @group structuredText
100
+ */
101
+ customBlockStylesForStructuredTextField: (field: Field, ctx: FieldIntentCtx) => StructuredTextCustomBlockStyle[] | void;
87
102
  /**
88
103
  * This function will be called when the plugin needs to render the plugin's
89
104
  * configuration form
@@ -130,6 +130,8 @@ export function connect(configuration) {
130
130
  manualFieldExtensions: manualFieldExtensions,
131
131
  itemFormSidebarPanels: itemFormSidebarPanels,
132
132
  overrideFieldExtensions: toMultifield(configuration.overrideFieldExtensions),
133
+ customMarksForStructuredTextField: toMultifield(configuration.customMarksForStructuredTextField),
134
+ customBlockStylesForStructuredTextField: toMultifield(configuration.customBlockStylesForStructuredTextField),
133
135
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
134
136
  onChange: function (newSettings) {
135
137
  if (listener) {
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/connect.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import { Account, Field, Fieldset, Item, ModelBlock, Plugin, PluginAttributes, Role, Site, SsoUser, Upload, User } from './SiteApiSchema';
1
+ /// <reference types="react" />
2
+ import { BlockNodeTypeWithCustomStyle } from 'datocms-structured-text-utils';
3
+ import { Account, Field, Fieldset, Item, ModelBlock, Plugin, Role, Site, SsoUser, Upload, User } from './SiteApiSchema';
2
4
  export declare type Icon = string | {
3
5
  type: 'svg';
4
6
  viewBox: string;
@@ -32,7 +34,7 @@ export declare type MainNavigationTab = {
32
34
  * be displayed by ascending `rank`. If you want to specify an explicit value
33
35
  * for `rank`, make sure to offer a way for final users to customize it inside
34
36
  * the plugin's settings form, otherwise the hardcoded value you choose might
35
- * clash with the one of another plugin! *
37
+ * clash with the one of another plugin!
36
38
  */
37
39
  rank?: number;
38
40
  };
@@ -114,6 +116,7 @@ export declare type ContentAreaSidebarItem = {
114
116
  rank?: number;
115
117
  };
116
118
  export declare type FieldExtensionType = 'editor' | 'addon';
119
+ export declare type FieldType = 'boolean' | 'color' | 'date_time' | 'date' | 'file' | 'float' | 'gallery' | 'integer' | 'json' | 'lat_lon' | 'link' | 'links' | 'rich_text' | 'seo' | 'slug' | 'string' | 'structured_text' | 'text' | 'video';
117
120
  /**
118
121
  * Field extensions extend the basic functionality of DatoCMS when it comes to
119
122
  * presenting record's fields to the final user. Depending on the extension type
@@ -141,8 +144,11 @@ export declare type ManualFieldExtension = {
141
144
  asSidebarPanel?: boolean | {
142
145
  startOpen: boolean;
143
146
  };
144
- /** The type of fields that the field extension in compatible with */
145
- fieldTypes: NonNullable<PluginAttributes['field_types']> | 'all';
147
+ /**
148
+ * The type of fields that the field extension in compatible with. You can use
149
+ * the shortcut `all` to target all types of fields
150
+ */
151
+ fieldTypes: 'all' | FieldType[];
146
152
  /**
147
153
  * Whether this field extension needs some configuration options before being
148
154
  * installed in a field or not. Will trigger the
@@ -243,6 +249,65 @@ export declare type AddonOverride = {
243
249
  /** The initial height to set for the iframe that will render the field extension */
244
250
  initialHeight?: number;
245
251
  };
252
+ export declare type StructuredTextCustomMarkPlacement = [
253
+ 'before' | 'after',
254
+ 'strong' | 'emphasis' | 'underline' | 'code' | 'highlight' | 'strikethrough'
255
+ ];
256
+ /** An object expressing a custom mark for a Structured Text field */
257
+ export declare type StructuredTextCustomMark = {
258
+ /** ID of mark */
259
+ id: string;
260
+ /** Label representing the custom mark */
261
+ label: string;
262
+ toolbarButton: {
263
+ /**
264
+ * Icon to be shown alongside the label. Can be a FontAwesome icon name (ie.
265
+ * `"address-book"`) or a custom SVG definition. To maintain visual
266
+ * consistency with the rest of the interface, try to use FontAwesome icons
267
+ * whenever possible
268
+ */
269
+ icon: Icon;
270
+ /**
271
+ * Expresses where you want the custom mark button to be placed inside the
272
+ * toolbar. If not specified, the item will be placed after the standard
273
+ * marks provided by DatoCMS itself.
274
+ */
275
+ placement?: StructuredTextCustomMarkPlacement;
276
+ /**
277
+ * If multiple custom marks specify the same `placement` for their toolbar
278
+ * button, they will be sorted by ascending `rank`. If you want to specify
279
+ * an explicit value for `rank`, make sure to offer a way for final users to
280
+ * customize it inside the plugin's settings form, otherwise the hardcoded
281
+ * value you choose might clash with the one of another plugin!
282
+ */
283
+ rank?: number;
284
+ };
285
+ /**
286
+ * Keyboard shortcut associated with the custom mark, expressed using the
287
+ * https://github.com/ianstormtaylor/is-hotkey syntax (ie. `mod+shift+x`)
288
+ */
289
+ keyboardShortcut?: string;
290
+ /** How the custom mark will be styled inside the editor */
291
+ appliedStyle: React.CSSProperties;
292
+ };
293
+ /** An object expressing a custom block style for a Structured Text field */
294
+ export declare type StructuredTextCustomBlockStyle = {
295
+ /** ID of custom block style */
296
+ id: string;
297
+ /** The block node that can apply this style */
298
+ node: BlockNodeTypeWithCustomStyle;
299
+ /** ID of custom block style */
300
+ label: string;
301
+ /** How the block will be styled inside the editor to represent the style */
302
+ appliedStyle: React.CSSProperties;
303
+ /**
304
+ * Custom styles for a block node will be sorted by ascending `rank`. If you
305
+ * want to specify an explicit value for `rank`, make sure to offer a way for
306
+ * final users to customize it inside the plugin's settings form, otherwise
307
+ * the hardcoded value you choose might clash with the one of another plugin!
308
+ */
309
+ rank?: number;
310
+ };
246
311
  /** An object expressing some field extensions you want to force on a particular field */
247
312
  export declare type FieldExtensionOverride = {
248
313
  /** Force a field editor/sidebar extension on a field */
@@ -1,5 +1,6 @@
1
1
  import { Field, ModelBlock } from './SiteApiSchema';
2
2
  import { AssetSource, ContentAreaSidebarItem, FieldExtensionOverride, InitPropertiesAndMethods, ItemFormSidebarPanel, MainNavigationTab, ManualFieldExtension, OnBootPropertiesAndMethods, RenderAssetSourcePropertiesAndMethods, RenderConfigScreenPropertiesAndMethods, RenderFieldExtensionPropertiesAndMethods, RenderManualFieldExtensionConfigScreenPropertiesAndMethods, RenderModalPropertiesAndMethods, RenderPagePropertiesAndMethods, RenderSidebarPanePropertiesAndMethods, SettingsAreaSidebarItemGroup } from './types';
3
+ import { StructuredTextCustomBlockStyle, StructuredTextCustomMark } from '.';
3
4
  export declare type SizingUtilities = {
4
5
  /**
5
6
  * Listens for DOM changes and automatically calls `setHeight` when it detects
@@ -84,6 +85,20 @@ export declare type FullConnectParameters = {
84
85
  * @group forcedFieldExtensions
85
86
  */
86
87
  overrideFieldExtensions: (field: Field, ctx: FieldIntentCtx) => FieldExtensionOverride | void;
88
+ /**
89
+ * Use this function to define a number of custom marks for a specific
90
+ * Structured Text field
91
+ *
92
+ * @group structuredText
93
+ */
94
+ customMarksForStructuredTextField: (field: Field, ctx: FieldIntentCtx) => StructuredTextCustomMark[] | void;
95
+ /**
96
+ * Use this function to define a number of custom block styles for a specific
97
+ * Structured Text field
98
+ *
99
+ * @group structuredText
100
+ */
101
+ customBlockStylesForStructuredTextField: (field: Field, ctx: FieldIntentCtx) => StructuredTextCustomBlockStyle[] | void;
87
102
  /**
88
103
  * This function will be called when the plugin needs to render the plugin's
89
104
  * configuration form
@@ -1,4 +1,6 @@
1
- import { Account, Field, Fieldset, Item, ModelBlock, Plugin, PluginAttributes, Role, Site, SsoUser, Upload, User } from './SiteApiSchema';
1
+ /// <reference types="react" />
2
+ import { BlockNodeTypeWithCustomStyle } from 'datocms-structured-text-utils';
3
+ import { Account, Field, Fieldset, Item, ModelBlock, Plugin, Role, Site, SsoUser, Upload, User } from './SiteApiSchema';
2
4
  export declare type Icon = string | {
3
5
  type: 'svg';
4
6
  viewBox: string;
@@ -32,7 +34,7 @@ export declare type MainNavigationTab = {
32
34
  * be displayed by ascending `rank`. If you want to specify an explicit value
33
35
  * for `rank`, make sure to offer a way for final users to customize it inside
34
36
  * the plugin's settings form, otherwise the hardcoded value you choose might
35
- * clash with the one of another plugin! *
37
+ * clash with the one of another plugin!
36
38
  */
37
39
  rank?: number;
38
40
  };
@@ -114,6 +116,7 @@ export declare type ContentAreaSidebarItem = {
114
116
  rank?: number;
115
117
  };
116
118
  export declare type FieldExtensionType = 'editor' | 'addon';
119
+ export declare type FieldType = 'boolean' | 'color' | 'date_time' | 'date' | 'file' | 'float' | 'gallery' | 'integer' | 'json' | 'lat_lon' | 'link' | 'links' | 'rich_text' | 'seo' | 'slug' | 'string' | 'structured_text' | 'text' | 'video';
117
120
  /**
118
121
  * Field extensions extend the basic functionality of DatoCMS when it comes to
119
122
  * presenting record's fields to the final user. Depending on the extension type
@@ -141,8 +144,11 @@ export declare type ManualFieldExtension = {
141
144
  asSidebarPanel?: boolean | {
142
145
  startOpen: boolean;
143
146
  };
144
- /** The type of fields that the field extension in compatible with */
145
- fieldTypes: NonNullable<PluginAttributes['field_types']> | 'all';
147
+ /**
148
+ * The type of fields that the field extension in compatible with. You can use
149
+ * the shortcut `all` to target all types of fields
150
+ */
151
+ fieldTypes: 'all' | FieldType[];
146
152
  /**
147
153
  * Whether this field extension needs some configuration options before being
148
154
  * installed in a field or not. Will trigger the
@@ -243,6 +249,65 @@ export declare type AddonOverride = {
243
249
  /** The initial height to set for the iframe that will render the field extension */
244
250
  initialHeight?: number;
245
251
  };
252
+ export declare type StructuredTextCustomMarkPlacement = [
253
+ 'before' | 'after',
254
+ 'strong' | 'emphasis' | 'underline' | 'code' | 'highlight' | 'strikethrough'
255
+ ];
256
+ /** An object expressing a custom mark for a Structured Text field */
257
+ export declare type StructuredTextCustomMark = {
258
+ /** ID of mark */
259
+ id: string;
260
+ /** Label representing the custom mark */
261
+ label: string;
262
+ toolbarButton: {
263
+ /**
264
+ * Icon to be shown alongside the label. Can be a FontAwesome icon name (ie.
265
+ * `"address-book"`) or a custom SVG definition. To maintain visual
266
+ * consistency with the rest of the interface, try to use FontAwesome icons
267
+ * whenever possible
268
+ */
269
+ icon: Icon;
270
+ /**
271
+ * Expresses where you want the custom mark button to be placed inside the
272
+ * toolbar. If not specified, the item will be placed after the standard
273
+ * marks provided by DatoCMS itself.
274
+ */
275
+ placement?: StructuredTextCustomMarkPlacement;
276
+ /**
277
+ * If multiple custom marks specify the same `placement` for their toolbar
278
+ * button, they will be sorted by ascending `rank`. If you want to specify
279
+ * an explicit value for `rank`, make sure to offer a way for final users to
280
+ * customize it inside the plugin's settings form, otherwise the hardcoded
281
+ * value you choose might clash with the one of another plugin!
282
+ */
283
+ rank?: number;
284
+ };
285
+ /**
286
+ * Keyboard shortcut associated with the custom mark, expressed using the
287
+ * https://github.com/ianstormtaylor/is-hotkey syntax (ie. `mod+shift+x`)
288
+ */
289
+ keyboardShortcut?: string;
290
+ /** How the custom mark will be styled inside the editor */
291
+ appliedStyle: React.CSSProperties;
292
+ };
293
+ /** An object expressing a custom block style for a Structured Text field */
294
+ export declare type StructuredTextCustomBlockStyle = {
295
+ /** ID of custom block style */
296
+ id: string;
297
+ /** The block node that can apply this style */
298
+ node: BlockNodeTypeWithCustomStyle;
299
+ /** ID of custom block style */
300
+ label: string;
301
+ /** How the block will be styled inside the editor to represent the style */
302
+ appliedStyle: React.CSSProperties;
303
+ /**
304
+ * Custom styles for a block node will be sorted by ascending `rank`. If you
305
+ * want to specify an explicit value for `rank`, make sure to offer a way for
306
+ * final users to customize it inside the plugin's settings form, otherwise
307
+ * the hardcoded value you choose might clash with the one of another plugin!
308
+ */
309
+ rank?: number;
310
+ };
246
311
  /** An object expressing some field extensions you want to force on a particular field */
247
312
  export declare type FieldExtensionOverride = {
248
313
  /** Force a field editor/sidebar extension on a field */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datocms-plugin-sdk",
3
- "version": "0.3.32",
3
+ "version": "0.3.34-alpha.2",
4
4
  "description": "DatoCMS Plugin SDK",
5
5
  "keywords": [
6
6
  "datocms",
@@ -36,10 +36,12 @@
36
36
  "url": "https://github.com/datocms/plugins-sdk/issues"
37
37
  },
38
38
  "dependencies": {
39
+ "datocms-structured-text-utils": "1.2.3-alpha.1",
39
40
  "penpal": "^4.1.1"
40
41
  },
41
42
  "devDependencies": {
43
+ "@types/react": "^17.0.3",
42
44
  "typedoc": "^0.22.8"
43
45
  },
44
- "gitHead": "db31347c59fa5ef6bfc050f36ff89f59846a7952"
46
+ "gitHead": "725d3879054486ed54fbc3fb6bbf3ff9dbdf7677"
45
47
  }
package/src/connect.ts CHANGED
@@ -38,6 +38,7 @@ import {
38
38
  isRenderSidebarPaneParent,
39
39
  Parent,
40
40
  } from './guards';
41
+ import { StructuredTextCustomBlockStyle, StructuredTextCustomMark } from '.';
41
42
 
42
43
  export type SizingUtilities = {
43
44
  /**
@@ -139,6 +140,29 @@ export type FullConnectParameters = {
139
140
  field: Field,
140
141
  ctx: FieldIntentCtx,
141
142
  ) => FieldExtensionOverride | void;
143
+
144
+ /**
145
+ * Use this function to define a number of custom marks for a specific
146
+ * Structured Text field
147
+ *
148
+ * @group structuredText
149
+ */
150
+ customMarksForStructuredTextField: (
151
+ field: Field,
152
+ ctx: FieldIntentCtx,
153
+ ) => StructuredTextCustomMark[] | void;
154
+
155
+ /**
156
+ * Use this function to define a number of custom block styles for a specific
157
+ * Structured Text field
158
+ *
159
+ * @group structuredText
160
+ */
161
+ customBlockStylesForStructuredTextField: (
162
+ field: Field,
163
+ ctx: FieldIntentCtx,
164
+ ) => StructuredTextCustomBlockStyle[] | void;
165
+
142
166
  /**
143
167
  * This function will be called when the plugin needs to render the plugin's
144
168
  * configuration form
@@ -341,6 +365,12 @@ export async function connect(
341
365
  overrideFieldExtensions: toMultifield(
342
366
  configuration.overrideFieldExtensions,
343
367
  ),
368
+ customMarksForStructuredTextField: toMultifield(
369
+ configuration.customMarksForStructuredTextField,
370
+ ),
371
+ customBlockStylesForStructuredTextField: toMultifield(
372
+ configuration.customBlockStylesForStructuredTextField,
373
+ ),
344
374
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
345
375
  onChange(newSettings: any) {
346
376
  if (listener) {
package/src/types.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { BlockNodeTypeWithCustomStyle } from 'datocms-structured-text-utils';
2
+
1
3
  import {
2
4
  Account,
3
5
  Field,
@@ -5,7 +7,6 @@ import {
5
7
  Item,
6
8
  ModelBlock,
7
9
  Plugin,
8
- PluginAttributes,
9
10
  Role,
10
11
  Site,
11
12
  SsoUser,
@@ -43,7 +44,7 @@ export type MainNavigationTab = {
43
44
  * be displayed by ascending `rank`. If you want to specify an explicit value
44
45
  * for `rank`, make sure to offer a way for final users to customize it inside
45
46
  * the plugin's settings form, otherwise the hardcoded value you choose might
46
- * clash with the one of another plugin! *
47
+ * clash with the one of another plugin!
47
48
  */
48
49
  rank?: number;
49
50
  };
@@ -139,6 +140,27 @@ export type ContentAreaSidebarItem = {
139
140
 
140
141
  export type FieldExtensionType = 'editor' | 'addon';
141
142
 
143
+ export type FieldType =
144
+ | 'boolean'
145
+ | 'color'
146
+ | 'date_time'
147
+ | 'date'
148
+ | 'file'
149
+ | 'float'
150
+ | 'gallery'
151
+ | 'integer'
152
+ | 'json'
153
+ | 'lat_lon'
154
+ | 'link'
155
+ | 'links'
156
+ | 'rich_text'
157
+ | 'seo'
158
+ | 'slug'
159
+ | 'string'
160
+ | 'structured_text'
161
+ | 'text'
162
+ | 'video';
163
+
142
164
  /**
143
165
  * Field extensions extend the basic functionality of DatoCMS when it comes to
144
166
  * presenting record's fields to the final user. Depending on the extension type
@@ -164,8 +186,11 @@ export type ManualFieldExtension = {
164
186
  * editing page, mimicking a sidebar panel
165
187
  */
166
188
  asSidebarPanel?: boolean | { startOpen: boolean };
167
- /** The type of fields that the field extension in compatible with */
168
- fieldTypes: NonNullable<PluginAttributes['field_types']> | 'all';
189
+ /**
190
+ * The type of fields that the field extension in compatible with. You can use
191
+ * the shortcut `all` to target all types of fields
192
+ */
193
+ fieldTypes: 'all' | FieldType[];
169
194
  /**
170
195
  * Whether this field extension needs some configuration options before being
171
196
  * installed in a field or not. Will trigger the
@@ -268,6 +293,68 @@ export type AddonOverride = {
268
293
  initialHeight?: number;
269
294
  };
270
295
 
296
+ export type StructuredTextCustomMarkPlacement = [
297
+ 'before' | 'after',
298
+ 'strong' | 'emphasis' | 'underline' | 'code' | 'highlight' | 'strikethrough',
299
+ ];
300
+
301
+ /** An object expressing a custom mark for a Structured Text field */
302
+ export type StructuredTextCustomMark = {
303
+ /** ID of mark */
304
+ id: string;
305
+ /** Label representing the custom mark */
306
+ label: string;
307
+ toolbarButton: {
308
+ /**
309
+ * Icon to be shown alongside the label. Can be a FontAwesome icon name (ie.
310
+ * `"address-book"`) or a custom SVG definition. To maintain visual
311
+ * consistency with the rest of the interface, try to use FontAwesome icons
312
+ * whenever possible
313
+ */
314
+ icon: Icon;
315
+ /**
316
+ * Expresses where you want the custom mark button to be placed inside the
317
+ * toolbar. If not specified, the item will be placed after the standard
318
+ * marks provided by DatoCMS itself.
319
+ */
320
+ placement?: StructuredTextCustomMarkPlacement;
321
+ /**
322
+ * If multiple custom marks specify the same `placement` for their toolbar
323
+ * button, they will be sorted by ascending `rank`. If you want to specify
324
+ * an explicit value for `rank`, make sure to offer a way for final users to
325
+ * customize it inside the plugin's settings form, otherwise the hardcoded
326
+ * value you choose might clash with the one of another plugin!
327
+ */
328
+ rank?: number;
329
+ };
330
+ /**
331
+ * Keyboard shortcut associated with the custom mark, expressed using the
332
+ * https://github.com/ianstormtaylor/is-hotkey syntax (ie. `mod+shift+x`)
333
+ */
334
+ keyboardShortcut?: string;
335
+ /** How the custom mark will be styled inside the editor */
336
+ appliedStyle: React.CSSProperties;
337
+ };
338
+
339
+ /** An object expressing a custom block style for a Structured Text field */
340
+ export type StructuredTextCustomBlockStyle = {
341
+ /** ID of custom block style */
342
+ id: string;
343
+ /** The block node that can apply this style */
344
+ node: BlockNodeTypeWithCustomStyle;
345
+ /** ID of custom block style */
346
+ label: string;
347
+ /** How the block will be styled inside the editor to represent the style */
348
+ appliedStyle: React.CSSProperties;
349
+ /**
350
+ * Custom styles for a block node will be sorted by ascending `rank`. If you
351
+ * want to specify an explicit value for `rank`, make sure to offer a way for
352
+ * final users to customize it inside the plugin's settings form, otherwise
353
+ * the hardcoded value you choose might clash with the one of another plugin!
354
+ */
355
+ rank?: number;
356
+ };
357
+
271
358
  /** An object expressing some field extensions you want to force on a particular field */
272
359
  export type FieldExtensionOverride = {
273
360
  /** Force a field editor/sidebar extension on a field */