@ibodr/editor 0.1.1 → 0.1.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.
package/dist/index.mjs CHANGED
@@ -9681,6 +9681,38 @@ __decorateClass([
9681
9681
  ], FocusManager.prototype, "handleMouseDown");
9682
9682
  var EMPTY_SHAPE_FONT_FACES_CACHE = { get: () => void 0 };
9683
9683
  var EMPTY_SHAPE_FONT_LOAD_STATE_CACHE = { get: () => void 0 };
9684
+ var BUILTIN_FONT_LOCAL_SOURCES = {
9685
+ draw_mono: 'local("Menlo"), local("Consolas"), local("Courier New")',
9686
+ draw_mono_italic: 'local("Menlo Italic"), local("Consolas Italic"), local("Courier New Italic")',
9687
+ draw_mono_bold: 'local("Menlo Bold"), local("Consolas Bold"), local("Courier New Bold")',
9688
+ draw_mono_italic_bold: 'local("Menlo Bold Italic"), local("Consolas Bold Italic"), local("Courier New Bold Italic")',
9689
+ draw_serif: 'local("Georgia"), local("Times New Roman")',
9690
+ draw_serif_italic: 'local("Georgia Italic"), local("Times New Roman Italic")',
9691
+ draw_serif_bold: 'local("Georgia Bold"), local("Times New Roman Bold")',
9692
+ draw_serif_italic_bold: 'local("Georgia Bold Italic"), local("Times New Roman Bold Italic")',
9693
+ draw_sans: 'local("Helvetica Neue"), local("Arial"), local("sans-serif")',
9694
+ draw_sans_italic: 'local("Helvetica Neue Italic"), local("Arial Italic")',
9695
+ draw_sans_bold: 'local("Helvetica Neue Bold"), local("Arial Bold")',
9696
+ draw_sans_italic_bold: 'local("Helvetica Neue Bold Italic"), local("Arial Bold Italic")',
9697
+ draw_draw: 'local("Comic Sans MS"), local("Segoe Print"), local("cursive")',
9698
+ draw_draw_italic: 'local("Comic Sans MS Italic"), local("Segoe Print")',
9699
+ draw_draw_bold: 'local("Comic Sans MS Bold"), local("Segoe Print Bold")',
9700
+ draw_draw_italic_bold: 'local("Comic Sans MS Bold Italic"), local("Segoe Print Bold")'
9701
+ };
9702
+ function resolveFontFaceSource(font, assetUrls) {
9703
+ const assetUrl = assetUrls?.[font.src.url];
9704
+ if (assetUrl) {
9705
+ return `url(${JSON.stringify(assetUrl)})`;
9706
+ }
9707
+ const localSource = BUILTIN_FONT_LOCAL_SOURCES[font.src.url];
9708
+ if (localSource) {
9709
+ return localSource;
9710
+ }
9711
+ if (font.src.url.startsWith("http://") || font.src.url.startsWith("https://") || font.src.url.startsWith("data:") || font.src.url.startsWith("blob:")) {
9712
+ return `url(${JSON.stringify(font.src.url)})`;
9713
+ }
9714
+ return 'local("Arial")';
9715
+ }
9684
9716
  var FontManager = class {
9685
9717
  constructor(editor, assetUrls) {
9686
9718
  this.editor = editor;
@@ -9790,8 +9822,8 @@ var FontManager = class {
9790
9822
  return existing;
9791
9823
  }
9792
9824
  }
9793
- const url = this.assetUrls?.[font.src.url] ?? font.src.url;
9794
- const instance = new FontFace(font.family, `url(${JSON.stringify(url)})`, {
9825
+ const src = resolveFontFaceSource(font, this.assetUrls);
9826
+ const instance = new FontFace(font.family, src, {
9795
9827
  ...mapObjectMapValues(defaultFontFaceDescriptors, (key) => font[key]),
9796
9828
  display: "swap"
9797
9829
  });
@@ -9799,13 +9831,27 @@ var FontManager = class {
9799
9831
  return instance;
9800
9832
  }
9801
9833
  async toEmbeddedCssDeclaration(font) {
9802
- const url = this.assetUrls?.[font.src.url] ?? font.src.url;
9803
- const dataUrl = await FileHelpers.urlToDataUrl(url);
9804
- const src = compact([
9805
- `url("${dataUrl}")`,
9806
- font.src.format ? `format(${font.src.format})` : null,
9807
- font.src.tech ? `tech(${font.src.tech})` : null
9808
- ]).join(" ");
9834
+ let src;
9835
+ const assetUrl = this.assetUrls?.[font.src.url];
9836
+ if (assetUrl) {
9837
+ const dataUrl = await FileHelpers.urlToDataUrl(assetUrl);
9838
+ src = compact([
9839
+ `url("${dataUrl}")`,
9840
+ font.src.format ? `format(${font.src.format})` : null,
9841
+ font.src.tech ? `tech(${font.src.tech})` : null
9842
+ ]).join(" ");
9843
+ } else if (BUILTIN_FONT_LOCAL_SOURCES[font.src.url]) {
9844
+ src = BUILTIN_FONT_LOCAL_SOURCES[font.src.url];
9845
+ } else if (font.src.url.startsWith("http://") || font.src.url.startsWith("https://") || font.src.url.startsWith("data:") || font.src.url.startsWith("blob:")) {
9846
+ const dataUrl = await FileHelpers.urlToDataUrl(font.src.url);
9847
+ src = compact([
9848
+ `url("${dataUrl}")`,
9849
+ font.src.format ? `format(${font.src.format})` : null,
9850
+ font.src.tech ? `tech(${font.src.tech})` : null
9851
+ ]).join(" ");
9852
+ } else {
9853
+ src = 'local("Arial")';
9854
+ }
9809
9855
  return compact([
9810
9856
  `@font-face {`,
9811
9857
  ` font-family: "${font.family}";`,
@@ -24784,7 +24830,7 @@ function getFontsFromRichText(editor, richText, initialState2) {
24784
24830
  // src/index.ts
24785
24831
  registerDrawLibraryVersion(
24786
24832
  "@ibodr/editor",
24787
- "0.1.1",
24833
+ "0.1.2",
24788
24834
  "esm"
24789
24835
  );
24790
24836
  /*!