@shadow-garden/bapbong-model 0.9.0 → 0.11.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.cjs CHANGED
@@ -102,12 +102,15 @@ function pastedImageAttrs(el) {
102
102
  src,
103
103
  alt: e.getAttribute("alt") ?? "",
104
104
  width: dim(e.getAttribute("width")),
105
- height: dim(e.getAttribute("height"))
105
+ height: dim(e.getAttribute("height")),
106
+ crop: dataJson(el, "data-crop"),
107
+ outline: dataJson(el, "data-outline")
106
108
  };
107
109
  }
108
110
  function pastedLinkAttrs(el) {
109
- const href = (el.getAttribute("href") ?? "").trim();
110
- return /^(https?:|mailto:|#)/i.test(href) ? { href } : false;
111
+ const e = el;
112
+ const href = (e.getAttribute("href") ?? "").trim();
113
+ return /^(https?:|mailto:|#)/i.test(href) ? { href, targetFrame: e.getAttribute("data-target-frame") } : false;
111
114
  }
112
115
  function pastedCellAttrs(el) {
113
116
  const e = el;
@@ -124,6 +127,7 @@ function pastedCellAttrs(el) {
124
127
  background: bg ? bg[1].trim() : null,
125
128
  vAlign: e.getAttribute("data-valign"),
126
129
  borders: dataJson(el, "data-borders"),
130
+ diagonals: dataJson(el, "data-diagonals"),
127
131
  padding: dataJson(el, "data-padding"),
128
132
  carry: dataJson(el, "data-carry")
129
133
  };
@@ -182,7 +186,9 @@ var schema = new import_prosemirror_model.Schema({
182
186
  // w:tabs — [{ pos, val: 'left'|'right'|'center'|'decimal', leader? }]
183
187
  // in px from the paragraph's content left edge, or null. Importer-set.
184
188
  tabs: { default: null },
185
- // w:spacing — { before?, after?, line?, lineRule? }, or null.
189
+ // w:spacing — { before?, after?, line?, lineRule?, beforeAuto?,
190
+ // afterAuto? }, or null. The two *Auto flags record that Word computes
191
+ // the gap itself; before/after hold what it works out to here.
186
192
  spacing: { default: null },
187
193
  // w:bookmarkStart names anchored in this paragraph (["_Toc89595219"]),
188
194
  // or null. Link hrefs of the form "#name" resolve against these —
@@ -195,6 +201,11 @@ var schema = new import_prosemirror_model.Schema({
195
201
  field: { default: null },
196
202
  // w:pageBreakBefore — start this paragraph on a new page.
197
203
  pageBreakBefore: { default: false },
204
+ // w:contextualSpacing — "ignore spacing above and below when using
205
+ // identical styles". Present ⇒ the flag is on; the two booleans say
206
+ // which side actually borders a paragraph of the SAME style, which is
207
+ // resolved at import (only there is both sides of a boundary visible).
208
+ contextualSpacing: { default: null },
198
209
  // w:keepNext — stay on the same page as the next block's first line.
199
210
  keepNext: { default: false },
200
211
  // w:keepLines — never split this paragraph across pages.
@@ -205,6 +216,10 @@ var schema = new import_prosemirror_model.Schema({
205
216
  // w:pBdr — { top?, bottom?, left?, right? } of BorderSide, or null.
206
217
  // Importer-set; painted as a box around the paragraph's lines.
207
218
  borders: { default: null },
219
+ // w:shd at the paragraph layer, resolved to a fill "#RRGGBB" (or
220
+ // null). Painted behind the paragraph's lines, in the same box the
221
+ // borders use.
222
+ shading: { default: null },
208
223
  // Carry-through fidelity (docx round-trip): OOXML paragraph
209
224
  // properties the model does NOT represent, preserved verbatim so a
210
225
  // customer's save never drops them. { pPr?: string, markRPr?: string }
@@ -230,6 +245,8 @@ var schema = new import_prosemirror_model.Schema({
230
245
  if (attrs.styleId) dom["data-style"] = attrs.styleId;
231
246
  if (node.attrs["borders"])
232
247
  dom["data-borders"] = JSON.stringify(node.attrs["borders"]);
248
+ if (node.attrs["shading"])
249
+ dom["data-shading"] = String(node.attrs["shading"]);
233
250
  if (node.attrs["carry"])
234
251
  dom["data-carry"] = JSON.stringify(node.attrs["carry"]);
235
252
  return [tag, dom, 0];
@@ -271,7 +288,13 @@ var schema = new import_prosemirror_model.Schema({
271
288
  textbox: { default: null },
272
289
  // Clockwise rotation in degrees around the box center (a:xfrm@rot).
273
290
  // Paint-only: the layout box stays axis-aligned.
274
- rotation: { default: 0 }
291
+ rotation: { default: 0 },
292
+ // a:srcRect — { l, t, r, b } ratios of the BITMAP, inward from each
293
+ // edge, or null for the whole image. Negative values outset. The box
294
+ // keeps its size; the selected region scales to fill it.
295
+ crop: { default: null },
296
+ // a:ln on pic:spPr — Word's picture border, as a BorderSide, or null.
297
+ outline: { default: null }
275
298
  },
276
299
  parseDOM: [{ tag: "img[src]", getAttrs: pastedImageAttrs }],
277
300
  toDOM(node) {
@@ -282,6 +305,8 @@ var schema = new import_prosemirror_model.Schema({
282
305
  };
283
306
  if (a["width"] != null) attrs["width"] = String(a["width"]);
284
307
  if (a["height"] != null) attrs["height"] = String(a["height"]);
308
+ if (a["crop"]) attrs["data-crop"] = JSON.stringify(a["crop"]);
309
+ if (a["outline"]) attrs["data-outline"] = JSON.stringify(a["outline"]);
285
310
  return ["img", attrs];
286
311
  }
287
312
  },
@@ -395,6 +420,8 @@ var schema = new import_prosemirror_model.Schema({
395
420
  // w:vAlign — 'center' | 'bottom' (top default)
396
421
  borders: { default: null },
397
422
  // w:tcBorders per-side visibility override
423
+ // w:tcBorders/w:tl2br + w:br2tl — rules across the cell's corners
424
+ diagonals: { default: null },
398
425
  padding: { default: null },
399
426
  // w:tcMar per-side margin override (px)
400
427
  // Carry-through fidelity: unmodelled w:tcPr children ({ tcPr: string
@@ -419,6 +446,8 @@ var schema = new import_prosemirror_model.Schema({
419
446
  attrs["data-valign"] = String(node.attrs["vAlign"]);
420
447
  if (node.attrs["borders"])
421
448
  attrs["data-borders"] = JSON.stringify(node.attrs["borders"]);
449
+ if (node.attrs["diagonals"])
450
+ attrs["data-diagonals"] = JSON.stringify(node.attrs["diagonals"]);
422
451
  if (node.attrs["padding"])
423
452
  attrs["data-padding"] = JSON.stringify(node.attrs["padding"]);
424
453
  if (node.attrs["carry"])
@@ -537,6 +566,29 @@ var schema = new import_prosemirror_model.Schema({
537
566
  0
538
567
  ]
539
568
  },
569
+ // w:kern — the smallest font size (HALF-POINTS) that gets pair kerning.
570
+ // A threshold, not a switch: whether it bites depends on the run's own
571
+ // size, so the declared number is what the model keeps and the layout
572
+ // compares. No DOM representation — CSS font-kerning cannot express a
573
+ // size threshold, so an external paste simply has no opinion.
574
+ kern: {
575
+ attrs: { halfPoints: {} },
576
+ parseDOM: [
577
+ {
578
+ tag: "span[data-kern]",
579
+ getAttrs: (el) => {
580
+ const raw = el.getAttribute("data-kern");
581
+ const n = Number(raw);
582
+ return Number.isFinite(n) ? { halfPoints: n } : false;
583
+ }
584
+ }
585
+ ],
586
+ toDOM: (mark) => [
587
+ "span",
588
+ { "data-kern": String(mark.attrs["halfPoints"]) },
589
+ 0
590
+ ]
591
+ },
540
592
  // w:w — horizontal glyph scale as a PERCENT (100 = normal). Squeezes the
541
593
  // glyphs and their advances; independent of letterSpacing, which rides on
542
594
  // top at its absolute value.
@@ -617,7 +669,11 @@ var schema = new import_prosemirror_model.Schema({
617
669
  },
618
670
  // w:hyperlink — external URL or "#anchor"
619
671
  link: {
620
- attrs: { href: {} },
672
+ // w:hyperlink @w:tgtFrame the frame the link was meant to open in
673
+ // ("_blank", "_top", or a frame name), from the HTML-frames era. There
674
+ // is no frame here to obey it and nothing acts on it; it is modelled so
675
+ // that saving the file gives the attribute back instead of dropping it.
676
+ attrs: { href: {}, targetFrame: { default: null } },
621
677
  inclusive: false,
622
678
  parseDOM: [{ tag: "a[href]", getAttrs: pastedLinkAttrs }],
623
679
  toDOM(mark) {
@@ -626,7 +682,8 @@ var schema = new import_prosemirror_model.Schema({
626
682
  {
627
683
  href: mark.attrs["href"],
628
684
  rel: "noopener",
629
- target: "_blank"
685
+ target: "_blank",
686
+ ...mark.attrs["targetFrame"] ? { "data-target-frame": String(mark.attrs["targetFrame"]) } : {}
630
687
  },
631
688
  0
632
689
  ];
package/dist/index.js CHANGED
@@ -70,12 +70,15 @@ function pastedImageAttrs(el) {
70
70
  src,
71
71
  alt: e.getAttribute("alt") ?? "",
72
72
  width: dim(e.getAttribute("width")),
73
- height: dim(e.getAttribute("height"))
73
+ height: dim(e.getAttribute("height")),
74
+ crop: dataJson(el, "data-crop"),
75
+ outline: dataJson(el, "data-outline")
74
76
  };
75
77
  }
76
78
  function pastedLinkAttrs(el) {
77
- const href = (el.getAttribute("href") ?? "").trim();
78
- return /^(https?:|mailto:|#)/i.test(href) ? { href } : false;
79
+ const e = el;
80
+ const href = (e.getAttribute("href") ?? "").trim();
81
+ return /^(https?:|mailto:|#)/i.test(href) ? { href, targetFrame: e.getAttribute("data-target-frame") } : false;
79
82
  }
80
83
  function pastedCellAttrs(el) {
81
84
  const e = el;
@@ -92,6 +95,7 @@ function pastedCellAttrs(el) {
92
95
  background: bg ? bg[1].trim() : null,
93
96
  vAlign: e.getAttribute("data-valign"),
94
97
  borders: dataJson(el, "data-borders"),
98
+ diagonals: dataJson(el, "data-diagonals"),
95
99
  padding: dataJson(el, "data-padding"),
96
100
  carry: dataJson(el, "data-carry")
97
101
  };
@@ -150,7 +154,9 @@ var schema = new Schema({
150
154
  // w:tabs — [{ pos, val: 'left'|'right'|'center'|'decimal', leader? }]
151
155
  // in px from the paragraph's content left edge, or null. Importer-set.
152
156
  tabs: { default: null },
153
- // w:spacing — { before?, after?, line?, lineRule? }, or null.
157
+ // w:spacing — { before?, after?, line?, lineRule?, beforeAuto?,
158
+ // afterAuto? }, or null. The two *Auto flags record that Word computes
159
+ // the gap itself; before/after hold what it works out to here.
154
160
  spacing: { default: null },
155
161
  // w:bookmarkStart names anchored in this paragraph (["_Toc89595219"]),
156
162
  // or null. Link hrefs of the form "#name" resolve against these —
@@ -163,6 +169,11 @@ var schema = new Schema({
163
169
  field: { default: null },
164
170
  // w:pageBreakBefore — start this paragraph on a new page.
165
171
  pageBreakBefore: { default: false },
172
+ // w:contextualSpacing — "ignore spacing above and below when using
173
+ // identical styles". Present ⇒ the flag is on; the two booleans say
174
+ // which side actually borders a paragraph of the SAME style, which is
175
+ // resolved at import (only there is both sides of a boundary visible).
176
+ contextualSpacing: { default: null },
166
177
  // w:keepNext — stay on the same page as the next block's first line.
167
178
  keepNext: { default: false },
168
179
  // w:keepLines — never split this paragraph across pages.
@@ -173,6 +184,10 @@ var schema = new Schema({
173
184
  // w:pBdr — { top?, bottom?, left?, right? } of BorderSide, or null.
174
185
  // Importer-set; painted as a box around the paragraph's lines.
175
186
  borders: { default: null },
187
+ // w:shd at the paragraph layer, resolved to a fill "#RRGGBB" (or
188
+ // null). Painted behind the paragraph's lines, in the same box the
189
+ // borders use.
190
+ shading: { default: null },
176
191
  // Carry-through fidelity (docx round-trip): OOXML paragraph
177
192
  // properties the model does NOT represent, preserved verbatim so a
178
193
  // customer's save never drops them. { pPr?: string, markRPr?: string }
@@ -198,6 +213,8 @@ var schema = new Schema({
198
213
  if (attrs.styleId) dom["data-style"] = attrs.styleId;
199
214
  if (node.attrs["borders"])
200
215
  dom["data-borders"] = JSON.stringify(node.attrs["borders"]);
216
+ if (node.attrs["shading"])
217
+ dom["data-shading"] = String(node.attrs["shading"]);
201
218
  if (node.attrs["carry"])
202
219
  dom["data-carry"] = JSON.stringify(node.attrs["carry"]);
203
220
  return [tag, dom, 0];
@@ -239,7 +256,13 @@ var schema = new Schema({
239
256
  textbox: { default: null },
240
257
  // Clockwise rotation in degrees around the box center (a:xfrm@rot).
241
258
  // Paint-only: the layout box stays axis-aligned.
242
- rotation: { default: 0 }
259
+ rotation: { default: 0 },
260
+ // a:srcRect — { l, t, r, b } ratios of the BITMAP, inward from each
261
+ // edge, or null for the whole image. Negative values outset. The box
262
+ // keeps its size; the selected region scales to fill it.
263
+ crop: { default: null },
264
+ // a:ln on pic:spPr — Word's picture border, as a BorderSide, or null.
265
+ outline: { default: null }
243
266
  },
244
267
  parseDOM: [{ tag: "img[src]", getAttrs: pastedImageAttrs }],
245
268
  toDOM(node) {
@@ -250,6 +273,8 @@ var schema = new Schema({
250
273
  };
251
274
  if (a["width"] != null) attrs["width"] = String(a["width"]);
252
275
  if (a["height"] != null) attrs["height"] = String(a["height"]);
276
+ if (a["crop"]) attrs["data-crop"] = JSON.stringify(a["crop"]);
277
+ if (a["outline"]) attrs["data-outline"] = JSON.stringify(a["outline"]);
253
278
  return ["img", attrs];
254
279
  }
255
280
  },
@@ -363,6 +388,8 @@ var schema = new Schema({
363
388
  // w:vAlign — 'center' | 'bottom' (top default)
364
389
  borders: { default: null },
365
390
  // w:tcBorders per-side visibility override
391
+ // w:tcBorders/w:tl2br + w:br2tl — rules across the cell's corners
392
+ diagonals: { default: null },
366
393
  padding: { default: null },
367
394
  // w:tcMar per-side margin override (px)
368
395
  // Carry-through fidelity: unmodelled w:tcPr children ({ tcPr: string
@@ -387,6 +414,8 @@ var schema = new Schema({
387
414
  attrs["data-valign"] = String(node.attrs["vAlign"]);
388
415
  if (node.attrs["borders"])
389
416
  attrs["data-borders"] = JSON.stringify(node.attrs["borders"]);
417
+ if (node.attrs["diagonals"])
418
+ attrs["data-diagonals"] = JSON.stringify(node.attrs["diagonals"]);
390
419
  if (node.attrs["padding"])
391
420
  attrs["data-padding"] = JSON.stringify(node.attrs["padding"]);
392
421
  if (node.attrs["carry"])
@@ -505,6 +534,29 @@ var schema = new Schema({
505
534
  0
506
535
  ]
507
536
  },
537
+ // w:kern — the smallest font size (HALF-POINTS) that gets pair kerning.
538
+ // A threshold, not a switch: whether it bites depends on the run's own
539
+ // size, so the declared number is what the model keeps and the layout
540
+ // compares. No DOM representation — CSS font-kerning cannot express a
541
+ // size threshold, so an external paste simply has no opinion.
542
+ kern: {
543
+ attrs: { halfPoints: {} },
544
+ parseDOM: [
545
+ {
546
+ tag: "span[data-kern]",
547
+ getAttrs: (el) => {
548
+ const raw = el.getAttribute("data-kern");
549
+ const n = Number(raw);
550
+ return Number.isFinite(n) ? { halfPoints: n } : false;
551
+ }
552
+ }
553
+ ],
554
+ toDOM: (mark) => [
555
+ "span",
556
+ { "data-kern": String(mark.attrs["halfPoints"]) },
557
+ 0
558
+ ]
559
+ },
508
560
  // w:w — horizontal glyph scale as a PERCENT (100 = normal). Squeezes the
509
561
  // glyphs and their advances; independent of letterSpacing, which rides on
510
562
  // top at its absolute value.
@@ -585,7 +637,11 @@ var schema = new Schema({
585
637
  },
586
638
  // w:hyperlink — external URL or "#anchor"
587
639
  link: {
588
- attrs: { href: {} },
640
+ // w:hyperlink @w:tgtFrame the frame the link was meant to open in
641
+ // ("_blank", "_top", or a frame name), from the HTML-frames era. There
642
+ // is no frame here to obey it and nothing acts on it; it is modelled so
643
+ // that saving the file gives the attribute back instead of dropping it.
644
+ attrs: { href: {}, targetFrame: { default: null } },
589
645
  inclusive: false,
590
646
  parseDOM: [{ tag: "a[href]", getAttrs: pastedLinkAttrs }],
591
647
  toDOM(mark) {
@@ -594,7 +650,8 @@ var schema = new Schema({
594
650
  {
595
651
  href: mark.attrs["href"],
596
652
  rel: "noopener",
597
- target: "_blank"
653
+ target: "_blank",
654
+ ...mark.attrs["targetFrame"] ? { "data-target-frame": String(mark.attrs["targetFrame"]) } : {}
598
655
  },
599
656
  0
600
657
  ];
@@ -8,7 +8,7 @@ import { Schema } from 'prosemirror-model';
8
8
  * extend THIS schema so the importer, layout engine, and (canvas) painter all
9
9
  * agree on one document model.
10
10
  */
11
- export declare const schema: Schema<"paragraph" | "doc" | "text" | "hard_break" | "image" | "page_field" | "table" | "table_row" | "table_cell", "strong" | "em" | "underline" | "strike" | "dstrike" | "smallCaps" | "textColor" | "fontSize" | "vertAlign" | "letterSpacing" | "charScale" | "position" | "highlight" | "fontFamily" | "link" | "footnote" | "carryRPr">;
11
+ export declare const schema: Schema<"paragraph" | "doc" | "text" | "hard_break" | "image" | "page_field" | "table" | "table_row" | "table_cell", "strong" | "em" | "underline" | "strike" | "dstrike" | "smallCaps" | "textColor" | "fontSize" | "vertAlign" | "letterSpacing" | "kern" | "charScale" | "position" | "highlight" | "fontFamily" | "link" | "footnote" | "carryRPr">;
12
12
  /** Concrete schema type, handy for typing Node/Mark across packages. */
13
13
  export type BapbongSchema = typeof schema;
14
14
  /**
@@ -35,6 +35,12 @@ export interface Spacing {
35
35
  after?: number;
36
36
  line?: number;
37
37
  lineRule?: 'auto' | 'exact' | 'atLeast';
38
+ /** w:beforeAutospacing / w:afterAutospacing — "determine the spacing
39
+ * automatically, matching an HTML document". `before`/`after` then hold the
40
+ * amount the importer resolved for this paragraph's position (0 where Word
41
+ * suppresses it), and these flags are what the exporter writes back. */
42
+ beforeAuto?: boolean;
43
+ afterAuto?: boolean;
38
44
  }
39
45
  export interface ParagraphAttrs {
40
46
  list: ListInfo | null;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/lib/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAkF3C;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,+UA0jBjB,CAAC;AAEH,wEAAwE;AACxE,MAAM,MAAM,aAAa,GAAG,OAAO,MAAM,CAAC;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,aAAa,yDA0CxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC;AAEjD,qDAAqD;AACrD,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE5D;+EAC+E;AAC/E,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,2EAA2E;AAC3E,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC;CACvC;AA0BD;;;4EAG4E;AAC5E,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/lib/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAwF3C;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,wVAinBjB,CAAC;AAEH,wEAAwE;AACxE,MAAM,MAAM,aAAa,GAAG,OAAO,MAAM,CAAC;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,aAAa,yDA0CxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC;AAEjD,qDAAqD;AACrD,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE5D;+EAC+E;AAC/E,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,2EAA2E;AAC3E,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC;;;6EAGyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC;CACvC;AA0BD;;;4EAG4E;AAC5E,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shadow-garden/bapbong-model",
3
- "version": "0.9.0",
3
+ "version": "0.11.0",
4
4
  "description": "bapbong — ProseMirror document model / schema",
5
5
  "license": "MIT",
6
6
  "repository": {