@webstudio-is/fonts 0.1.0 → 0.2.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.
Files changed (60) hide show
  1. package/lib/cjs/constants.cjs +19 -0
  2. package/lib/cjs/constants.d.ts +6 -0
  3. package/lib/cjs/constants.d.ts.map +1 -0
  4. package/lib/cjs/font-data.cjs +53 -0
  5. package/lib/cjs/font-data.d.ts +23 -0
  6. package/lib/cjs/font-data.d.ts.map +1 -0
  7. package/lib/cjs/font-data.test.cjs +67 -0
  8. package/lib/cjs/font-data.test.d.ts +2 -0
  9. package/lib/cjs/font-data.test.d.ts.map +1 -0
  10. package/lib/cjs/font-weights.cjs +50 -0
  11. package/lib/cjs/font-weights.d.ts +50 -0
  12. package/lib/cjs/font-weights.d.ts.map +1 -0
  13. package/lib/cjs/get-font-faces.cjs +34 -0
  14. package/lib/cjs/get-font-faces.d.ts +16 -0
  15. package/lib/cjs/get-font-faces.d.ts.map +1 -0
  16. package/lib/cjs/get-font-faces.test.cjs +74 -0
  17. package/lib/cjs/get-font-faces.test.d.ts +2 -0
  18. package/lib/cjs/get-font-faces.test.d.ts.map +1 -0
  19. package/lib/cjs/index.cjs +20 -0
  20. package/lib/cjs/index.d.ts +5 -0
  21. package/lib/cjs/index.d.ts.map +1 -0
  22. package/lib/cjs/index.server.cjs +20 -0
  23. package/lib/cjs/index.server.d.ts +3 -0
  24. package/lib/cjs/index.server.d.ts.map +1 -0
  25. package/lib/cjs/schema.cjs +10 -0
  26. package/lib/cjs/schema.d.ts +16 -0
  27. package/lib/cjs/schema.d.ts.map +1 -0
  28. package/lib/cjs/types.cjs +2 -0
  29. package/lib/cjs/types.d.ts +2 -0
  30. package/lib/cjs/types.d.ts.map +1 -0
  31. package/lib/constants.js +4 -7
  32. package/lib/font-data.d.ts +23 -0
  33. package/lib/font-data.d.ts.map +1 -0
  34. package/lib/font-data.js +47 -0
  35. package/lib/font-data.test.d.ts +2 -0
  36. package/lib/font-data.test.d.ts.map +1 -0
  37. package/lib/font-data.test.js +65 -0
  38. package/lib/font-weights.d.ts +50 -0
  39. package/lib/font-weights.d.ts.map +1 -0
  40. package/lib/font-weights.js +47 -0
  41. package/lib/get-font-faces.d.ts +8 -1
  42. package/lib/get-font-faces.d.ts.map +1 -1
  43. package/lib/get-font-faces.js +20 -15
  44. package/lib/get-font-faces.test.js +49 -5
  45. package/lib/index.d.ts +1 -0
  46. package/lib/index.d.ts.map +1 -1
  47. package/lib/index.js +4 -19
  48. package/lib/index.server.d.ts +3 -0
  49. package/lib/index.server.d.ts.map +1 -0
  50. package/lib/index.server.js +2 -0
  51. package/lib/schema.js +6 -9
  52. package/lib/tsconfig.tsbuildinfo +1 -0
  53. package/lib/types.js +1 -2
  54. package/package.json +31 -9
  55. package/lib/get-font-data.d.ts +0 -40
  56. package/lib/get-font-data.d.ts.map +0 -1
  57. package/lib/get-font-data.js +0 -57
  58. package/lib/get-font-data.test.d.ts +0 -2
  59. package/lib/get-font-data.test.d.ts.map +0 -1
  60. package/lib/get-font-data.test.js +0 -53
@@ -1,57 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getFontData = exports.parseSubfamily = exports.styles = void 0;
7
- const fontkit_1 = __importDefault(require("fontkit"));
8
- exports.styles = ["normal", "italic", "oblique"];
9
- const weights = {
10
- thin: 100,
11
- hairline: 100,
12
- "extra light": 200,
13
- "ultra light": 200,
14
- light: 300,
15
- normal: 400,
16
- medium: 500,
17
- "semi bold": 600,
18
- "demi bold": 600,
19
- bold: 700,
20
- "extra bold": 800,
21
- "ultra bold": 800,
22
- black: 900,
23
- heavy: 900,
24
- };
25
- const parseSubfamily = (subfamily) => {
26
- const subfamilyLow = subfamily.toLowerCase();
27
- let style = "normal";
28
- for (const possibleStyle of exports.styles) {
29
- if (subfamilyLow.includes(possibleStyle)) {
30
- style = possibleStyle;
31
- break;
32
- }
33
- }
34
- let weight = weights.normal;
35
- let possibleWeight;
36
- for (possibleWeight in weights) {
37
- if (subfamilyLow.includes(possibleWeight)) {
38
- weight = weights[possibleWeight];
39
- break;
40
- }
41
- }
42
- return { style, weight };
43
- };
44
- exports.parseSubfamily = parseSubfamily;
45
- const getFontData = (data) => {
46
- const font = fontkit_1.default.create(data);
47
- const format = font.type.toLowerCase();
48
- const family = font.getName("fontFamily");
49
- const subfamily = font.getName("preferredSubfamily") ?? font.getName("fontSubfamily");
50
- const parsedSubfamily = (0, exports.parseSubfamily)(subfamily);
51
- return {
52
- format,
53
- family,
54
- ...parsedSubfamily,
55
- };
56
- };
57
- exports.getFontData = getFontData;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=get-font-data.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-font-data.test.d.ts","sourceRoot":"","sources":["../src/get-font-data.test.ts"],"names":[],"mappings":""}
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const get_font_data_1 = require("./get-font-data");
4
- describe("parseSubfamily()", () => {
5
- test("Black Italic", () => {
6
- expect((0, get_font_data_1.parseSubfamily)("Black Italic")).toEqual({
7
- style: "italic",
8
- weight: 900,
9
- });
10
- });
11
- test("Bold", () => {
12
- expect((0, get_font_data_1.parseSubfamily)("Bold")).toEqual({
13
- style: "normal",
14
- weight: 700,
15
- });
16
- });
17
- test("Demi Bold Italic", () => {
18
- expect((0, get_font_data_1.parseSubfamily)("Demi Bold Italic")).toEqual({
19
- style: "italic",
20
- weight: 600,
21
- });
22
- });
23
- test("Light", () => {
24
- expect((0, get_font_data_1.parseSubfamily)("Light")).toEqual({
25
- style: "normal",
26
- weight: 300,
27
- });
28
- });
29
- test("Extra Light", () => {
30
- expect((0, get_font_data_1.parseSubfamily)("Extra Light")).toEqual({
31
- style: "normal",
32
- weight: 200,
33
- });
34
- });
35
- test("Extra Light Italic", () => {
36
- expect((0, get_font_data_1.parseSubfamily)("Extra Light Italic")).toEqual({
37
- style: "italic",
38
- weight: 200,
39
- });
40
- });
41
- test("Heavy Italic", () => {
42
- expect((0, get_font_data_1.parseSubfamily)("Heavy Italic")).toEqual({
43
- style: "italic",
44
- weight: 900,
45
- });
46
- });
47
- test("Medium Italic", () => {
48
- expect((0, get_font_data_1.parseSubfamily)("Medium Italic")).toEqual({
49
- style: "italic",
50
- weight: 500,
51
- });
52
- });
53
- });