@ogxjs/core 0.2.0-alpha.1 → 0.3.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.
@@ -14,6 +14,7 @@ export declare class FontRegistry {
14
14
  /**
15
15
  * Helper to register Inter fonts with specified weights (local files)
16
16
  * Only works in Bun/Node without bundlers
17
+ * @deprecated Use registerInterFromUrl() for universal compatibility. This method will be removed in v1.0.0
17
18
  */
18
19
  registerInter(weights?: (300 | 400 | 500 | 600 | 700)[]): Promise<void>;
19
20
  /**
@@ -21,6 +22,20 @@ export declare class FontRegistry {
21
22
  * Works with all bundlers (Next.js, Vite, etc.)
22
23
  */
23
24
  registerInterFromUrl(weights?: (300 | 400 | 500 | 600 | 700)[]): Promise<void>;
25
+ /**
26
+ * Helper to register any Google Font by name
27
+ * Works with all bundlers (Next.js, Vite, etc.)
28
+ */
29
+ registerGoogleFont(fontName: string, weights?: (100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900)[]): Promise<void>;
30
+ /**
31
+ * Helper to register a font from a local file
32
+ * Works in Node.js environments (Route Handlers, API routes)
33
+ */
34
+ registerFontFromFile(path: string, options: {
35
+ name: string;
36
+ weight?: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
37
+ style?: "normal" | "italic";
38
+ }): Promise<void>;
24
39
  /**
25
40
  * Get all registered fonts
26
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"font-registry.d.ts","sourceRoot":"","sources":["../src/font-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;GAEG;AACH,qBAAa,YAAY;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,KAAK,CAAoB;IAEjC,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,YAAY;IAOlC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI;IAgB/C;;;OAGG;IACG,aAAa,CAClB,OAAO,GAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAe,GACnD,OAAO,CAAC,IAAI,CAAC;IAMhB;;;OAGG;IACG,oBAAoB,CACzB,OAAO,GAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAe,GACnD,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACH,QAAQ,IAAI,UAAU,EAAE;IAIxB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGb;AAED,eAAO,MAAM,YAAY,cAA6B,CAAC"}
1
+ {"version":3,"file":"font-registry.d.ts","sourceRoot":"","sources":["../src/font-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;GAEG;AACH,qBAAa,YAAY;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,KAAK,CAAoB;IAEjC,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,YAAY;IAOlC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI;IAgB/C;;;;OAIG;IACG,aAAa,CAClB,OAAO,GAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAe,GACnD,OAAO,CAAC,IAAI,CAAC;IAMhB;;;OAGG;IACG,oBAAoB,CACzB,OAAO,GAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAe,GACnD,OAAO,CAAC,IAAI,CAAC;IAMhB;;;OAGG;IACG,kBAAkB,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,GAC/D,OAAO,CAAC,IAAI,CAAC;IAMhB;;;OAGG;IACG,oBAAoB,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAC7D,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC5B,GACC,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACH,QAAQ,IAAI,UAAU,EAAE;IAIxB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGb;AAED,eAAO,MAAM,YAAY,cAA6B,CAAC"}
@@ -28,6 +28,7 @@ export class FontRegistry {
28
28
  /**
29
29
  * Helper to register Inter fonts with specified weights (local files)
30
30
  * Only works in Bun/Node without bundlers
31
+ * @deprecated Use registerInterFromUrl() for universal compatibility. This method will be removed in v1.0.0
31
32
  */
32
33
  async registerInter(weights = [400, 700]) {
33
34
  const { loadInterFont } = await import("./fonts");
@@ -43,6 +44,24 @@ export class FontRegistry {
43
44
  const fonts = await Promise.all(weights.map((w) => loadInterFromUrl(w)));
44
45
  this.register(fonts);
45
46
  }
47
+ /**
48
+ * Helper to register any Google Font by name
49
+ * Works with all bundlers (Next.js, Vite, etc.)
50
+ */
51
+ async registerGoogleFont(fontName, weights) {
52
+ const { loadGoogleFont } = await import("./fonts");
53
+ const fonts = await loadGoogleFont(fontName, weights);
54
+ this.register(fonts);
55
+ }
56
+ /**
57
+ * Helper to register a font from a local file
58
+ * Works in Node.js environments (Route Handlers, API routes)
59
+ */
60
+ async registerFontFromFile(path, options) {
61
+ const { loadFontFromFile } = await import("./fonts");
62
+ const font = await loadFontFromFile(path, options);
63
+ this.register(font);
64
+ }
46
65
  /**
47
66
  * Get all registered fonts
48
67
  */
package/dist/fonts.d.ts CHANGED
@@ -26,6 +26,27 @@ export declare function loadInterFromUrl(weight?: 300 | 400 | 500 | 600 | 700):
26
26
  * Load Inter font from local file
27
27
  * Only works in Bun/Node without bundlers
28
28
  * Supports weights: 300 (Light), 400 (Regular), 500 (Medium), 600 (SemiBold), 700 (Bold)
29
+ * @deprecated Use loadInterFromUrl() for universal compatibility. This function will be removed in v1.0.0
29
30
  */
30
31
  export declare function loadInterFont(weight?: 300 | 400 | 500 | 600 | 700): Promise<FontConfig>;
32
+ /**
33
+ * Load any Google Font by name with specified weights
34
+ * Uses Bunny Fonts CDN (privacy-friendly Google Fonts mirror)
35
+ * @param fontName - Name of the Google Font (e.g., 'Roboto', 'Poppins', 'Playfair Display')
36
+ * @param weights - Array of font weights to load (default: [400, 700])
37
+ * @returns Promise resolving to array of FontConfig objects
38
+ */
39
+ export declare function loadGoogleFont(fontName: string, weights?: (100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900)[]): Promise<FontConfig[]>;
40
+ /**
41
+ * Load a font from a local file path
42
+ * Useful for loading custom fonts or integrating with next/font/local
43
+ * @param path - Path to the font file (relative or absolute)
44
+ * @param options - Font configuration options
45
+ * @returns Promise resolving to FontConfig object
46
+ */
47
+ export declare function loadFontFromFile(path: string, options: {
48
+ name: string;
49
+ weight?: FontConfig["weight"];
50
+ style?: FontConfig["style"];
51
+ }): Promise<FontConfig>;
31
52
  //# sourceMappingURL=fonts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C;;GAEG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAajE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACpC,GAAG,EAAE,MAAM,EACX,SAAS,SAAQ,GACf,OAAO,CAAC,WAAW,CAAC,CAoCtB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAO,GAC1E,UAAU,CAOZ;AAWD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACrC,MAAM,GAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAS,GACvC,OAAO,CAAC,UAAU,CAAC,CAIrB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,MAAM,GAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAS,GACvC,OAAO,CAAC,UAAU,CAAC,CAkCrB"}
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C;;GAEG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAajE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACpC,GAAG,EAAE,MAAM,EACX,SAAS,SAAQ,GACf,OAAO,CAAC,WAAW,CAAC,CAoCtB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAO,GAC1E,UAAU,CAOZ;AAWD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACrC,MAAM,GAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAS,GACvC,OAAO,CAAC,UAAU,CAAC,CAIrB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAClC,MAAM,GAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAS,GACvC,OAAO,CAAC,UAAU,CAAC,CAkCrB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAe,GAC3E,OAAO,CAAC,UAAU,EAAE,CAAC,CAcvB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACR,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC5B,GACC,OAAO,CAAC,UAAU,CAAC,CAMrB"}
package/dist/fonts.js CHANGED
@@ -80,6 +80,7 @@ export async function loadInterFromUrl(weight = 400) {
80
80
  * Load Inter font from local file
81
81
  * Only works in Bun/Node without bundlers
82
82
  * Supports weights: 300 (Light), 400 (Regular), 500 (Medium), 600 (SemiBold), 700 (Bold)
83
+ * @deprecated Use loadInterFromUrl() for universal compatibility. This function will be removed in v1.0.0
83
84
  */
84
85
  export async function loadInterFont(weight = 400) {
85
86
  if (typeof globalThis !== "undefined" &&
@@ -108,3 +109,35 @@ export async function loadInterFont(weight = 400) {
108
109
  const data = await loadFont(path);
109
110
  return createFont("Inter", data, { weight });
110
111
  }
112
+ /**
113
+ * Load any Google Font by name with specified weights
114
+ * Uses Bunny Fonts CDN (privacy-friendly Google Fonts mirror)
115
+ * @param fontName - Name of the Google Font (e.g., 'Roboto', 'Poppins', 'Playfair Display')
116
+ * @param weights - Array of font weights to load (default: [400, 700])
117
+ * @returns Promise resolving to array of FontConfig objects
118
+ */
119
+ export async function loadGoogleFont(fontName, weights = [400, 700]) {
120
+ // Normalize font name for URL (replace spaces with hyphens, lowercase)
121
+ const urlFontName = fontName.toLowerCase().replace(/\s+/g, "-");
122
+ const fontConfigs = await Promise.all(weights.map(async (weight) => {
123
+ // Use Bunny Fonts CDN (privacy-friendly alternative to Google Fonts)
124
+ const url = `https://fonts.bunny.net/${urlFontName}/files/${urlFontName}-latin-${weight}-normal.woff`;
125
+ const data = await loadFontFromUrl(url);
126
+ return createFont(fontName, data, { weight });
127
+ }));
128
+ return fontConfigs;
129
+ }
130
+ /**
131
+ * Load a font from a local file path
132
+ * Useful for loading custom fonts or integrating with next/font/local
133
+ * @param path - Path to the font file (relative or absolute)
134
+ * @param options - Font configuration options
135
+ * @returns Promise resolving to FontConfig object
136
+ */
137
+ export async function loadFontFromFile(path, options) {
138
+ const data = await loadFont(path);
139
+ return createFont(options.name, data, {
140
+ weight: options.weight,
141
+ style: options.style,
142
+ });
143
+ }
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * Generate beautiful Open Graph images using Tailwind CSS classes.
6
6
  * Built for Node.js, Bun, and Deno.
7
7
  *
8
- * @version 0.2.0 "Turbo"
8
+ * @version 0.3.0 "Universal Fonts"
9
9
  * @see https://ogx-three.vercel.app
10
10
  */
11
11
  export { absolute, badge, card, div, fluent, footer, grid, h, h1, h2, header, img, imgFromUrl, main, p, row, spacer, span, stack, svgFromContent, unsafe_img, validateImageUrl, } from "./builder";
@@ -13,7 +13,7 @@ export type { LRUCacheOptions, LRUCacheStats, SnapshotCacheOptions, SnapshotCach
13
13
  export { configureSnapshotCache, fastHash, fnv1a, getSnapshotCache, hashObject, LRUCache, snapshotCache, } from "./cache/index";
14
14
  export type { CSSProperties } from "./css";
15
15
  export { fontRegistry } from "./font-registry";
16
- export { createFont, loadFont, loadFontFromUrl, loadInterFont, loadInterFromUrl, } from "./fonts";
16
+ export { createFont, loadFont, loadFontFromFile, loadFontFromUrl, loadGoogleFont, loadInterFont, loadInterFromUrl, } from "./fonts";
17
17
  export { ogx, ogxToSVG } from "./ogx";
18
18
  export type { TimingAggregate, TimingEntry, TimingReport } from "./perf";
19
19
  export { benchmark, benchmarkSync, quickTime, quickTimeSync, Timer, timing, } from "./perf";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EACN,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,GAAG,EACH,MAAM,EACN,MAAM,EACN,IAAI,EACJ,CAAC,EACD,EAAE,EACF,EAAE,EACF,MAAM,EACN,GAAG,EACH,UAAU,EACV,IAAI,EACJ,CAAC,EACD,GAAG,EACH,MAAM,EACN,IAAI,EACJ,KAAK,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EACX,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,kBAAkB,GAClB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACN,sBAAsB,EACtB,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,aAAa,GACb,MAAM,eAAe,CAAC;AAIvB,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACN,UAAU,EACV,QAAQ,EACR,eAAe,EACf,aAAa,EACb,gBAAgB,GAChB,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAIzE,OAAO,EACN,SAAS,EACT,aAAa,EACb,SAAS,EACT,aAAa,EACb,KAAK,EACL,MAAM,GACN,MAAM,QAAQ,CAAC;AAChB,YAAY,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GACjB,MAAM,WAAW,CAAC;AAInB,OAAO,EACN,UAAU,EACV,UAAU,EACV,aAAa,EACb,OAAO,EACP,YAAY,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1E,OAAO,EACN,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,cAAc,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAI1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EACX,UAAU,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,UAAU,EACV,eAAe,EACf,MAAM,EACN,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,GACX,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EACN,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,GAAG,EACH,MAAM,EACN,MAAM,EACN,IAAI,EACJ,CAAC,EACD,EAAE,EACF,EAAE,EACF,MAAM,EACN,GAAG,EACH,UAAU,EACV,IAAI,EACJ,CAAC,EACD,GAAG,EACH,MAAM,EACN,IAAI,EACJ,KAAK,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EACX,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,kBAAkB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACN,sBAAsB,EACtB,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,aAAa,GACb,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACN,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,gBAAgB,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEzE,OAAO,EACN,SAAS,EACT,aAAa,EACb,SAAS,EACT,aAAa,EACb,KAAK,EACL,MAAM,GACN,MAAM,QAAQ,CAAC;AAChB,YAAY,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GACjB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACN,UAAU,EACV,UAAU,EACV,aAAa,EACb,OAAO,EACP,YAAY,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EACN,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,cAAc,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EACX,UAAU,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,UAAU,EACV,eAAe,EACf,MAAM,EACN,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -5,46 +5,28 @@
5
5
  * Generate beautiful Open Graph images using Tailwind CSS classes.
6
6
  * Built for Node.js, Bun, and Deno.
7
7
  *
8
- * @version 0.2.0 "Turbo"
8
+ * @version 0.3.0 "Universal Fonts"
9
9
  * @see https://ogx-three.vercel.app
10
10
  */
11
- // ═══════════════════════════════════════════════════════════════════════════
12
11
  // BUILDER - Element construction
13
- // ═══════════════════════════════════════════════════════════════════════════
14
12
  export { absolute, badge, card, div, fluent, footer, grid, h, h1, h2, header, img, imgFromUrl, main, p, row, spacer, span, stack, svgFromContent, unsafe_img, validateImageUrl, } from "./builder";
15
- // ═══════════════════════════════════════════════════════════════════════════
16
13
  // CACHE - v2 with LRU + Fast Hash
17
- // ═══════════════════════════════════════════════════════════════════════════
18
14
  export { configureSnapshotCache, fastHash, fnv1a, getSnapshotCache, hashObject, LRUCache, snapshotCache, } from "./cache/index";
19
- // ═══════════════════════════════════════════════════════════════════════════
20
15
  // FONTS - Loading and registration
21
- // ═══════════════════════════════════════════════════════════════════════════
22
16
  export { fontRegistry } from "./font-registry";
23
- export { createFont, loadFont, loadFontFromUrl, loadInterFont, loadInterFromUrl, } from "./fonts";
24
- // ═══════════════════════════════════════════════════════════════════════════
17
+ export { createFont, loadFont, loadFontFromFile, loadFontFromUrl, loadGoogleFont, loadInterFont, loadInterFromUrl, } from "./fonts";
25
18
  // RENDERING - SVG and PNG generation
26
- // ═══════════════════════════════════════════════════════════════════════════
27
19
  export { ogx, ogxToSVG } from "./ogx";
28
- // ═══════════════════════════════════════════════════════════════════════════
29
20
  // PERFORMANCE - Timing API
30
- // ═══════════════════════════════════════════════════════════════════════════
31
21
  export { benchmark, benchmarkSync, quickTime, quickTimeSync, Timer, timing, } from "./perf";
32
- // ═══════════════════════════════════════════════════════════════════════════
33
22
  // PRESETS - Ready-to-use templates
34
- // ═══════════════════════════════════════════════════════════════════════════
35
23
  export { blogPreset, docsPreset, minimalPreset, presets, socialPreset, } from "./presets";
36
24
  export { render } from "./render-png";
37
25
  export { renderToSVG } from "./render-svg";
38
- // ═══════════════════════════════════════════════════════════════════════════
39
26
  // TAILWIND - Parser v2 with O(1) lookups
40
- // ═══════════════════════════════════════════════════════════════════════════
41
27
  export { clearAllCaches, getCacheStats, isStaticClass, parseTailwind, parseTailwindBatch, STATIC_CLASSES, } from "./tailwind";
42
- // ═══════════════════════════════════════════════════════════════════════════
43
28
  // PLATFORM - Target dimensions
44
- // ═══════════════════════════════════════════════════════════════════════════
45
29
  export { getPlatformDimensions } from "./targets";
46
- // ═══════════════════════════════════════════════════════════════════════════
47
30
  // UTILITIES
48
- // ═══════════════════════════════════════════════════════════════════════════
49
31
  export { loadAsset, toDataUri } from "./utils/assets";
50
32
  export { calculateFittingFontSize } from "./utils/text";
package/dist/ogx.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { snapshotCache } from "./cache";
2
2
  import { fontRegistry } from "./font-registry";
3
- import { loadInterFont } from "./fonts";
3
+ import { loadInterFromUrl } from "./fonts";
4
4
  import { render } from "./render-png";
5
5
  import { renderToSVG } from "./render-svg";
6
6
  import { presets } from "./types";
@@ -33,11 +33,11 @@ export async function ogx(config) {
33
33
  }
34
34
  if (resolvedFonts.length === 0) {
35
35
  resolvedFonts = [
36
- await loadInterFont(300),
37
- await loadInterFont(400),
38
- await loadInterFont(500),
39
- await loadInterFont(600),
40
- await loadInterFont(700),
36
+ await loadInterFromUrl(300),
37
+ await loadInterFromUrl(400),
38
+ await loadInterFromUrl(500),
39
+ await loadInterFromUrl(600),
40
+ await loadInterFromUrl(700),
41
41
  ];
42
42
  }
43
43
  const result = await render(element, {
@@ -82,11 +82,11 @@ export async function ogxToSVG(config) {
82
82
  }
83
83
  if (resolvedFonts.length === 0) {
84
84
  resolvedFonts = [
85
- await loadInterFont(300),
86
- await loadInterFont(400),
87
- await loadInterFont(500),
88
- await loadInterFont(600),
89
- await loadInterFont(700),
85
+ await loadInterFromUrl(300),
86
+ await loadInterFromUrl(400),
87
+ await loadInterFromUrl(500),
88
+ await loadInterFromUrl(600),
89
+ await loadInterFromUrl(700),
90
90
  ];
91
91
  }
92
92
  const result = await renderToSVG(element, {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ogxjs/core",
3
- "version": "0.2.0-alpha.1",
4
- "description": "High-performance Open Graph image generator with Tailwind CSS support - v0.2.0 Turbo",
3
+ "version": "0.3.0",
4
+ "description": "High-performance Open Graph image generator with Tailwind CSS support - v0.3.0 Universal Fonts",
5
5
  "author": "Carlos Eduardo",
6
6
  "repository": {
7
7
  "type": "git",
@@ -47,11 +47,9 @@
47
47
  "satori": "^0.12.1"
48
48
  },
49
49
  "devDependencies": {
50
- "@types/bun": "^1.2.4",
51
50
  "@types/node": "^20.19.27",
52
51
  "@vercel/og": "^0.8.6",
53
52
  "@vitest/ui": "^4.0.16",
54
- "bun-types": "^1.3.5",
55
53
  "tsx": "^4.21.0",
56
54
  "vitest": "^4.0.16"
57
55
  },
@@ -73,7 +71,7 @@
73
71
  "access": "public"
74
72
  },
75
73
  "scripts": {
76
- "build": "tsc && mkdir -p dist/fonts/inter && cp src/fonts/inter/*.ttf dist/fonts/inter/",
74
+ "build": "tsc",
77
75
  "dev": "tsc --watch",
78
76
  "check-types": "tsc --noEmit",
79
77
  "test": "vitest run",
Binary file
Binary file
Binary file
Binary file
Binary file