@openpresentation/opf-render 0.11.9 → 0.12.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/README.md +138 -8
- package/dist/annotations.js +45 -0
- package/dist/chart-options.js +177 -0
- package/dist/charts.js +194 -36
- package/dist/color-fonts.js +32 -0
- package/dist/deck-runtime.js +343 -0
- package/dist/element-define.d.ts +1 -0
- package/dist/element-define.js +5 -0
- package/dist/element.d.ts +86 -0
- package/dist/element.js +521 -0
- package/dist/export-browser.d.ts +26 -0
- package/dist/export-browser.js +228 -0
- package/dist/font-manifest.js +158 -0
- package/dist/font-policy.js +232 -16
- package/dist/fonts.d.ts +30 -0
- package/dist/fonts.js +48 -22
- package/dist/index.d.ts +100 -2
- package/dist/pdf-fonts.js +333 -0
- package/dist/pdf-style.js +429 -0
- package/dist/pdf-subset.js +176 -0
- package/dist/pdf-text.js +338 -0
- package/dist/pdf-vector.js +1249 -0
- package/dist/pdf-writer.js +154 -0
- package/dist/pdf-xml.js +78 -0
- package/dist/player.d.ts +79 -0
- package/dist/player.js +706 -0
- package/dist/preview-fonts-cli.js +15 -0
- package/dist/preview-fonts-node.d.ts +14 -0
- package/dist/preview-fonts-node.js +86 -0
- package/dist/preview-fonts.d.ts +23 -0
- package/dist/preview-fonts.js +78 -0
- package/dist/raster-images.js +19 -6
- package/dist/raster-text.js +468 -0
- package/dist/raster.js +81 -12
- package/dist/script-font-pack.js +19 -1
- package/dist/script-fonts.js +214 -23
- package/dist/sha256.js +47 -0
- package/dist/svg.d.ts +9 -1
- package/dist/svg.js +360 -53
- package/dist/symbol-encodings.js +7 -0
- package/dist/symbol-fonts.js +96 -0
- package/package.json +84 -7
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Generated deliberately by scripts/update-symbol-encodings.mjs from opf spec/reference/symbol-font-encodings.json; never during build/install.
|
|
2
|
+
const freeze=value=>{if(value&&typeof value==='object'){for(const child of Object.values(value))freeze(child);Object.freeze(value);}return value;};
|
|
3
|
+
const SNAPSHOT=freeze({"version":1,"source":{"path":"spec/reference/symbol-font-encodings.json","sha256":"64f18aa6a2674125d08af6e3d23275a2c9d4318e2aa4718b2b4b8e264582834d"},"families":[{"family":"Symbol","version":"Version 5.01","unitsPerEm":2048,"mapped":189,"codes":[["0020",512],["0021",682],["2200",1460],["0023",1024],["2203",1124],["0025",1706],["0026",1593],["220B",899],["0028",682],["0029",682],["2217",1024],["002B",1124],["002C",512],["2212",1124],["002E",512],["002F",569],["0030",1024],["0031",1024],["0032",1024],["0033",1024],["0034",1024],["0035",1024],["0036",1024],["0037",1024],["0038",1024],["0039",1024],["003A",569],["003B",569],["003C",1124],["003D",1124],["003E",1124],["003F",909],["2245",1124],["0391",1479],["0392",1366],["03A7",1479],["0394",1253],["0395",1251],["03A6",1563],["0393",1235],["0397",1479],["0399",682],["03D1",1292],["039A",1479],["039B",1405],["039C",1821],["039D",1479],["039F",1479],["03A0",1573],["0398",1518],["03A1",1139],["03A3",1212],["03A4",1251],["03A5",1413],["03C2",899],["03A9",1573],["039E",1321],["03A8",1628],["0396",1251],["005B",682],["2234",1767],["005D",682],["22A5",1348],["005F",1024],["23B7",1024],["03B1",1292],["03B2",1124],["03C7",1124],["03B4",1012],["03B5",899],["03C6",1067],["03B3",842],["03B7",1235],["03B9",674],["03D5",1235],["03BA",1124],["03BB",1124],["00B5",1180],["03BD",1067],["03BF",1124],["03C0",1124],["03B8",1067],["03C1",1124],["03C3",1235],["03C4",899],["03C5",1180],["03D6",1460],["03C9",1405],["03BE",1010],["03C8",1405],["03B6",1012],["007B",983],["007C",410],["007D",983],["223C",1124],[null,null,"unassigned in the Symbol encoding (no glyph at U+F07F)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F080)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F081)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F082)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F083)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F084)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F085)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F086)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F087)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F088)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F089)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F08A)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F08B)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F08C)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F08D)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F08E)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F08F)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F090)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F091)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F092)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F093)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F094)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F095)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F096)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F097)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F098)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F099)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F09A)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F09B)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F09C)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F09D)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F09E)"],[null,null,"unassigned in the Symbol encoding (no glyph at U+F09F)"],["20AC",null],["03D2",1270],["2032",506],["2264",1124],["2044",342],["221E",1460],["0192",1024],["2663",1542],["2666",1542],["2665",1542],["2660",1542],["2194",2134],["2190",2021],["2191",1235],["2192",2021],["2193",1235],["00B0",819],["00B1",1124],["2033",842],["2265",1124],["00D7",1124],["221D",1460],["2202",1012],["2022",942],["00F7",1124],["2260",1124],["2261",1124],["2248",1124],["2026",2048],["23D0",1235],["23AF",2048],["21B5",1348],["2135",1686],["2111",1405],["211C",1628],["2118",2021],["2297",1573],["2295",1573],["2205",1686],["2229",1573],["222A",1573],["2283",1460],["2287",1460],["2284",1460],["2282",1460],["2286",1460],["2208",1460],["2209",1460],["2220",1573],["2207",1460],["00AE",1618],["00A9",1618],["2122",1823],["220F",1686],["221A",1124],["22C5",512],["00AC",1460],["2227",1235],["2228",1235],["21D4",2134],["21D0",2021],["21D1",1235],["21D2",2021],["21D3",1235],["25CA",1012],["2329",674],["00AE",1618],["00A9",1618],["2122",1610],["2211",1460],["239B",786],["239C",786],["239D",786],["23A1",786],["23A2",786],["23A3",786],["23A7",1012],["23A8",1012],["23A9",1012],["23AA",1012],[null,null,"unassigned in Symbol (no glyph at U+F0F0); the Apple build draws its logo (PUA U+F8FF) here"],["232A",674],["222B",561],["2320",1405],["23AE",1405],["2321",1405],["239E",786],["239F",786],["23A0",786],["23A4",786],["23A5",786],["23A6",786],["23AB",1012],["23AC",1012],["23AD",1012],[null,null,"unassigned in the Symbol encoding (no glyph at U+F0FF)"]]},{"family":"Wingdings","version":"Version 5.01","unitsPerEm":2048,"mapped":222,"codes":[["0020",2048],["1F589",2110],["2702",2344],["2701",2665],["1F453",2752],["1F56D",1830],["1F56E",2492],["1F56F",938],["1F57F",2220],["2706",1826],["1F582",2319],["1F583",2319],["1F4EA",2399],["1F4EB",2399],["1F4EC",2951],["1F4ED",2956],["1F5C0",2245],["1F5C1",2751],["1F5CE",1431],["1F5CF",1431],["1F5D0",1826],["1F5C4",1135],["23F3",1233],["1F5AE",2196],["1F5B0",1941],["1F5B2",2208],["1F5B3",1924],["1F5B4",1825],["1F5AB",1826],["1F5AC",1826],["2707",1825],["270D",1863],["1F58E",1863],["270C",1203],["1F58F",1624],["1F44D",1381],["1F44E",1381],["261C",1929],["261E",1929],["261D",1124],["1F597",1124],["1F590",1826],["263A",1727],["1F610",1727],["2639",1727],["1F4A3",2275],["1F571",1352],["1F3F3",1739],["1F3F1",2230],["2708",1819],["263C",1803],["1F322",1332],["2744",1665],["1F546",1529],["271E",1529],["1F548",1480],["2720",1420],["2721",1627],["262A",1813],["262F",1826],["1F549",1834],["2638",1825],["2648",2368],["2649",2159],["264A",1974],["264B",2233],["264C",1927],["264D",1911],["264E",1937],["264F",2099],["2650",1902],["2651",2245],["2652",2181],["2653",1597],["1F670",2150],["1F675",2603],["26AB",1529],["1F53E",1951],["25FC",1529],["1F78F",1825],["1F790",1825],["2751",1825],["2752",1825],["1F79F",937],["29EB",1529],["25C6",2020],["2756",1825],["1F799",1183],["2327",2171],["2BB9",2171],["2318",1825],["1F3F5",1826],["1F3F6",1826],["1F676",1086],["1F677",1086],[null,null,"unassigned (no glyph at U+F07F)"],["1F10B",1826],["2780",1826],["2781",1826],["2782",1826],["2783",1826],["2784",1826],["2785",1826],["2786",1826],["2787",1826],["2788",1826],["2789",1826],["1F10C",1826],["278A",1826],["278B",1826],["278C",1826],["278D",1826],["278E",1826],["278F",1826],["2790",1826],["2791",1826],["2792",1826],["2793",1826],["1F662",2048],["1F660",2048],["1F661",2048],["1F663",2048],["1F65E",2048],["1F65C",2048],["1F65D",2048],["1F65F",2048],["2219",641],["2022",937],["2B1D",641],["2B58",1825],["1F786",1825],["1F788",1825],["1F78A",1825],["1F78B",1825],["1F53F",1951],["25AA",937],["1F78E",1825],["1F7C1",1825],["1F7C5",1825],["2605",1825],["1F7CB",1825],["1F7CF",1825],["1F7D3",1825],["1F7D1",1825],["2BD0",1825],["2316",1825],["2BCE",1825],["2BCF",1825],["2BD1",1825],["272A",1825],["2730",1825],["1F550",1825],["1F551",1825],["1F552",1825],["1F553",1825],["1F554",1825],["1F555",1825],["1F556",1825],["1F557",1825],["1F558",1825],["1F559",1825],["1F55A",1825],["1F55B",1825],["2BB0",1825],["2BB1",1825],["2BB2",1825],["2BB3",1825],["2BB4",2146],["2BB5",2146],["2BB6",2146],["2BB7",2146],["1F66A",2048],["1F66B",2048],["1F655",2048],["1F654",2048],["1F657",2048],["1F656",2048],["1F650",2048],["1F651",2048],["1F652",2048],["1F653",2048],["232B",2566],["2326",2566],["2B98",1627],["2B9A",1627],["2B99",1825],["2B9B",1825],["2B88",1825],["2B8A",1825],["2B89",1825],["2B8B",1825],["1F868",2006],["1F86A",2006],["1F869",1825],["1F86B",1825],["1F86C",1589],["1F86D",1589],["1F86F",1589],["1F86E",1589],["1F878",2186],["1F87A",2186],["1F879",1825],["1F87B",1825],["1F87C",1787],["1F87D",1787],["1F87F",1787],["1F87E",1787],["21E6",1825],["21E8",1825],["21E7",1660],["21E9",1660],["2B04",2171],["21F3",1660],["2B01",1601],["2B00",1601],["2B03",1601],["2B02",1601],["1F8AC",987],["1F8AD",789],["1F5F6",1301],["2713",1609],["1F5F7",1826],["1F5F9",1826],[null,2119,"the Microsoft Windows logo, a trademark Unicode did not encode (the glyph exists in the font)"]]},{"family":"Wingdings 2","version":"Version 1.55","unitsPerEm":2048,"mapped":217,"codes":[["0020",2048],["1F58A",2110],["1F58B",2090],["1F58C",2073],["1F58D",2086],["2704",2344],["2700",2045],["1F57E",2220],["1F57D",989],["1F5C5",1431],["1F5C6",1431],["1F5C7",1826],["1F5C8",1431],["1F5C9",1431],["1F5CA",1826],["1F5CB",1431],["1F5CC",1431],["1F5CD",1826],["1F4CB",1431],["1F5D1",1431],["1F5D4",2320],["1F5B5",2246],["1F5B6",1826],["1F5B7",1826],["1F5B8",1826],["1F5AD",2320],["1F5AF",2170],["1F5B1",2170],["1F592",1381],["1F593",1381],["1F598",1938],["1F599",1938],["1F59A",1938],["1F59B",1938],["1F448",1928],["1F449",1928],["1F59C",1928],["1F59D",1928],["1F59E",1047],["1F59F",1047],["1F5A0",1047],["1F5A1",1047],["1F446",1178],["1F447",1178],["1F5A2",1178],["1F5A3",1178],["1F591",1826],["1F5F4",1321],["1F5F8",1568],["1F5F5",1826],["2611",1826],["2BBD",1826],["2612",1826],["2BBE",1825],["2BBF",1825],["1F6C7",1826],["29B8",1826],["1F671",2226],["1F674",1727],["1F672",1548],["1F673",1579],["203D",984],["1F679",1035],["1F67A",864],["1F67B",1018],["1F666",2048],["1F664",2048],["1F665",2048],["1F667",2048],["1F65A",2048],["1F658",2048],["1F659",2048],["1F65B",2048],["24EA",1826],["2460",1826],["2461",1826],["2462",1826],["2463",1826],["2464",1826],["2465",1826],["2466",1826],["2467",1826],["2468",1826],["2469",1826],["24FF",1826],["2776",1826],["2777",1826],["2778",1826],["2779",1826],["277A",1826],["277B",1826],["277C",1826],["277D",1826],["277E",1826],["277F",1826],[null,null,"unassigned (no glyph at U+F07F)"],["2609",1899],["1F315",1899],["263D",1453],["263E",1453],["2E3F",1673],["271D",1332],["1F547",1431],["1F55C",1825],["1F55D",1825],["1F55E",1825],["1F55F",1825],["1F560",1825],["1F561",1825],["1F562",1825],["1F563",1825],["1F564",1825],["1F565",1825],["1F566",1825],["1F567",1825],["1F668",2048],["1F669",2048],["22C5",542],["1F784",740],["2981",1135],["25CF",1825],["25CB",1825],["1F785",1825],["1F787",1825],["1F789",1825],["2299",1825],["29BF",1825],["1F78C",542],["1F78D",740],["25FE",1135],["25A0",1825],["25A1",1825],["1F791",1825],["1F792",1825],["1F793",1825],["1F794",1825],["25A3",1825],["1F795",1825],["1F796",1825],["1F797",624],["1F798",764],["2B29",903],["2B25",1461],["25C7",2020],["1F79A",2020],["25C8",2020],["1F79B",2020],["1F79C",2020],["1F79D",542],["1F79E",641],["2B2A",740],["2B27",1135],["25CA",1529],["1F7A0",1529],["25D6",1085],["25D7",1085],["2BCA",1825],["2BCB",1825],["2BC0",1825],["2BC1",1825],["2B1F",1825],["2BC2",1825],["2B23",1825],["2B22",1825],["2BC3",1825],["2BC4",1825],["1F7A1",1825],["1F7A2",1825],["1F7A3",1825],["1F7A4",1825],["1F7A5",1825],["1F7A6",1825],["1F7A7",1825],["1F7A8",1825],["1F7A9",1825],["1F7AA",1825],["1F7AB",1825],["1F7AC",1825],["1F7AD",1825],["1F7AE",1825],["1F7AF",1825],["1F7B0",1825],["1F7B1",1825],["1F7B2",1825],["1F7B3",1825],["1F7B4",1825],["1F7B5",1825],["1F7B6",1825],["1F7B7",1825],["1F7B8",1825],["1F7B9",1825],["1F7BA",1825],["1F7BB",1825],["1F7BC",1825],["1F7BD",1825],["1F7BE",1825],["1F7BF",1825],["1F7C0",1825],["1F7C2",1825],["1F7C4",1825],["1F7C6",1825],["1F7C9",1825],["1F7CA",1825],["2736",1825],["1F7CC",1825],["1F7CE",1825],["1F7D0",1825],["1F7D2",1825],["2739",1825],["1F7C3",1825],["1F7C7",1825],["272F",1825],["1F7CD",1825],["1F7D4",1825],["2BCC",1825],["2BCD",1825],["203B",1496],["2042",1825],[null,null,"unassigned (no glyph at U+F0FA)"],[null,null,"unassigned (no glyph at U+F0FB)"],[null,null,"unassigned (no glyph at U+F0FC)"],[null,null,"unassigned (no glyph at U+F0FD)"],[null,null,"unassigned (no glyph at U+F0FE)"],[null,null,"unassigned (no glyph at U+F0FF)"]]},{"family":"Wingdings 3","version":"Version 1.55","unitsPerEm":2048,"mapped":208,"codes":[["0020",2048],["2B60",1825],["2B62",1825],["2B61",1135],["2B63",1135],["2B66",1444],["2B67",1444],["2B69",1444],["2B68",1444],["2B70",1825],["2B72",1825],["2B71",1135],["2B73",1135],["2B76",1677],["2B78",1677],["2B7B",1135],["2B7D",1135],["2B64",1135],["2B65",1135],["2B6A",1135],["2B6C",1135],["2B6B",1135],["2B6D",1135],["2B4D",1135],["2BA0",1135],["2BA1",1135],["2BA2",1825],["2BA3",1825],["2BA4",1455],["2BA5",1455],["2BA6",1455],["2BA7",1455],["2B90",2010],["2B91",2010],["2B92",1825],["2B93",1825],["2B80",1825],["2B83",1825],["2B7E",1825],["2B7F",1825],["2B84",1825],["2B86",1825],["2B85",1825],["2B87",1825],["2B8F",1825],["2B8D",1825],["2B8E",1825],["2B8C",1825],["2B6E",1825],["2B6F",1825],["238B",1825],["2324",2220],["2303",1825],["2325",1751],["2423",1114],["237D",1115],["21EA",1660],["2BB8",1660],["1F8A0",1930],["1F8A1",1930],["1F8A2",1930],["1F8A3",1930],["1F8A4",1924],["1F8A5",1924],["1F8A6",1924],["1F8A7",1924],["1F8A8",1930],["1F8A9",1930],["1F8AA",1931],["1F8AB",1931],["1F850",1825],["1F852",1825],["1F851",1232],["1F853",1232],["1F854",1444],["1F855",1444],["1F857",1444],["1F856",1444],["1F858",1825],["1F859",1232],["25B2",2005],["25BC",2005],["25B3",2005],["25BD",2005],["25C0",1801],["25B6",1801],["25C1",1801],["25B7",1801],["25E3",1801],["25E2",1801],["25E4",1801],["25E5",1801],["1F780",1085],["1F782",1085],["1F781",1825],[null,null,"unassigned (no glyph at U+F07F)"],["1F783",1825],["2BC5",1825],["2BC6",1825],["2BC7",1825],["2BC8",1825],["2B9C",1627],["2B9E",1627],["2B9D",1825],["2B9F",1825],["1F810",1825],["1F812",1825],["1F811",789],["1F813",789],["1F814",1825],["1F816",1825],["1F815",987],["1F817",987],["1F818",1825],["1F81A",1825],["1F819",1184],["1F81B",1184],["1F81C",1825],["1F81E",1825],["1F81D",1579],["1F81F",1579],["1F800",1825],["1F802",1825],["1F801",888],["1F803",888],["1F804",1825],["1F806",1825],["1F805",1381],["1F807",1381],["1F808",1825],["1F80A",1825],["1F809",1875],["1F80B",1875],["1F820",1825],["1F822",1825],["1F824",1825],["1F826",1825],["1F828",1825],["1F82A",1825],["1F82C",1825],["1F89C",789],["1F89D",592],["1F89E",493],["1F89F",394],["1F82E",1825],["1F830",1825],["1F832",1825],["1F834",1825],["1F836",1825],["1F838",1085],["1F83A",1085],["1F839",1381],["1F83B",1381],["1F898",1628],["1F89A",1628],["1F899",1184],["1F89B",1184],["1F83C",900],["1F83E",900],["1F83D",1825],["1F83F",1825],["1F840",1019],["1F842",1019],["1F841",1825],["1F843",1825],["1F844",1825],["1F846",1825],["1F845",1825],["1F847",1825],["2BA8",1825],["2BA9",1825],["2BAA",1825],["2BAB",1825],["2BAC",1291],["2BAD",1291],["2BAE",1291],["2BAF",1291],["1F860",1961],["1F862",1961],["1F861",1825],["1F863",1825],["1F864",1540],["1F865",1540],["1F867",1540],["1F866",1540],["1F870",2096],["1F872",2096],["1F871",1825],["1F873",1825],["1F874",1688],["1F875",1688],["1F877",1688],["1F876",1688],["1F880",2277],["1F882",2277],["1F881",1825],["1F883",1825],["1F884",1885],["1F885",1885],["1F887",1885],["1F886",1885],["1F890",543],["1F892",543],["1F891",1234],["1F893",1234],["1F894",766],["1F896",766],["1F895",1234],["1F897",1234],[null,null,"unassigned (no glyph at U+F0F1)"],[null,null,"unassigned (no glyph at U+F0F2)"],[null,null,"unassigned (no glyph at U+F0F3)"],[null,null,"unassigned (no glyph at U+F0F4)"],[null,null,"unassigned (no glyph at U+F0F5)"],[null,null,"unassigned (no glyph at U+F0F6)"],[null,null,"unassigned (no glyph at U+F0F7)"],[null,null,"unassigned (no glyph at U+F0F8)"],[null,null,"unassigned (no glyph at U+F0F9)"],[null,null,"unassigned (no glyph at U+F0FA)"],[null,null,"unassigned (no glyph at U+F0FB)"],[null,null,"unassigned (no glyph at U+F0FC)"],[null,null,"unassigned (no glyph at U+F0FD)"],[null,null,"unassigned (no glyph at U+F0FE)"],[null,null,"unassigned (no glyph at U+F0FF)"]]},{"family":"Webdings","version":"Version 5.01","unitsPerEm":2048,"mapped":223,"codes":[["0020",1024],["1F577",2048],["1F578",2048],["1F572",2048],["1F576",2048],["1F3C6",2028],["1F396",2048],["1F587",2048],["1F5E8",2048],["1F5E9",2048],["1F5F0",2048],["1F5F1",2048],["1F336",2048],["1F397",2048],["1F67E",2048],["1F67C",2048],["1F5D5",2048],["1F5D6",2048],["1F5D7",2048],["23F4",2048],["23F5",2048],["23F6",2048],["23F7",2048],["23EA",2048],["23E9",2048],["23EE",2048],["23ED",2048],["23F8",2048],["23F9",2048],["23FA",2048],["1F5DA",2048],["1F5F3",2048],["1F6E0",2048],["1F3D7",2048],["1F3D8",2048],["1F3D9",2048],["1F3DA",2048],["1F3DC",2048],["1F3ED",2048],["1F3DB",2048],["1F3E0",2048],["1F3D6",2048],["1F3DD",2048],["1F6E3",2048],["1F50D",2048],["1F3D4",2048],["1F441",2048],["1F442",2048],["1F3DE",2048],["1F3D5",2048],["1F6E4",2048],["1F3DF",2048],["1F6F3",2048],["1F56C",2048],["1F56B",2048],["1F568",1100],["1F508",1100],["1F394",2048],["1F395",2048],["1F5EC",2048],["1F67D",2048],["1F5ED",2048],["1F5EA",2048],["1F5EB",2048],["2B94",2048],["2714",2048],["1F6B2",2048],["2B1C",2048],["1F6E1",2048],["1F4E6",2048],["1F6F1",2048],["2B1B",2048],["1F691",2048],["1F6C8",2048],["1F6E9",2048],["1F6F0",2048],["1F7C8",2048],["1F574",1144],["2B24",2048],["1F6E5",2048],["1F694",2048],["1F5D8",2048],["1F5D9",2048],["2753",2048],["1F6F2",2048],["1F687",2048],["1F68D",2048],["26F3",2048],["29B8",2048],["2296",2048],["1F6AD",2048],["1F5EE",2048],["23D0",2048],["1F5EF",2048],["1F5F2",2048],[null,null,"unassigned (no glyph at U+F07F)"],["1F6B9",2048],["1F6BA",2048],["1F6C9",2048],["1F6CA",2048],["1F6BC",2048],["1F47D",2048],["1F3CB",2048],["26F7",2048],["1F3C2",2048],["1F3CC",2048],["1F3CA",2048],["1F3C4",2048],["1F3CD",2048],["1F3CE",2500],["1F698",2048],["1F5E0",2048],["1F6E2",2048],["1F4B0",2048],["1F3F7",2048],["1F4B3",2048],["1F46A",2048],["1F5E1",2048],["1F5E2",2048],["1F5E3",2048],["272F",2048],["1F584",2048],["1F585",2048],["1F583",2048],["1F586",2048],["1F5B9",2048],["1F5BA",2048],["1F5BB",2048],["1F575",2048],["1F570",2048],["1F5BD",2048],["1F5BE",2048],["1F4CB",2048],["1F5D2",2048],["1F5D3",2048],["1F56E",2048],["1F4DA",2048],["1F5DE",2048],["1F5DF",2048],["1F5C3",2048],["1F5C2",2048],["1F5BC",2048],["1F3AD",2048],["1F39C",2048],["1F398",2048],["1F399",2048],["1F3A7",2048],["1F4BF",2048],["1F39E",2048],["1F4F7",2048],["1F39F",2048],["1F3AC",2048],["1F4FD",2048],["1F4F9",2048],["1F4FE",2048],["1F4FB",2048],["1F39A",1377],["1F39B",1377],["1F4FA",2048],["1F4BB",1726],["1F5A5",1058],["1F5A6",2048],["1F5A7",2048],["1F579",2048],["1F3AE",2048],["1F57B",877],["1F57C",1240],["1F4DF",2048],["1F581",2048],["1F580",2048],["1F5A8",2048],["1F5A9",1357],["1F5BF",2048],["1F5AA",2048],["1F5DC",2048],["1F512",2048],["1F513",2048],["1F5DD",2048],["1F4E5",2048],["1F4E4",2048],["1F573",2048],["1F323",2048],["1F324",2048],["1F325",2048],["1F326",2048],["2601",2048],["1F328",2048],["1F327",2048],["1F329",2048],["1F32A",2048],["1F32C",2048],["1F32B",2048],["1F31C",2048],["1F321",2048],["1F6CB",2048],["1F6CF",2048],["1F37D",2048],["1F378",2048],["1F6CE",2048],["1F6CD",2048],["24C5",2048],["267F",2048],["1F6C6",2048],["1F588",2048],["1F393",2048],["1F5E4",2048],["1F5E5",2048],["1F5E6",2048],["1F5E7",2048],["1F6EA",2048],["1F43F",2048],["1F426",2048],["1F41F",2048],["1F415",2048],["1F408",2048],["1F66C",2048],["1F66E",2048],["1F66D",2048],["1F66F",2048],["1F5FA",2645],["1F30D",2048],["1F30F",2048],["1F30E",2048],["1F54A",2048]]}]});
|
|
4
|
+
/** Per symbol-encoded family (FF-45): the verified font version and, for codes 0x20..0xFF in order, [unicode, advance, reason?]. */
|
|
5
|
+
export const SYMBOL_ENCODINGS=SNAPSHOT.families;
|
|
6
|
+
/** Which core table this snapshot came from. */
|
|
7
|
+
export const SYMBOL_ENCODINGS_SOURCE=freeze({version:SNAPSHOT.version,...SNAPSHOT.source});
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// Symbol-encoded families for previews (font-fidelity-everywhere FF-45).
|
|
2
|
+
//
|
|
3
|
+
// Symbol, Wingdings, Wingdings 2, Wingdings 3 and Webdings keep their glyphs at the 224 codes 0x20..0xFF of a
|
|
4
|
+
// Microsoft Symbol cmap (U+F020..U+F0FF), not at Unicode code points. Office stores such text as private-use
|
|
5
|
+
// characters (U+F0xx, what Insert > Symbol and `a:sym` runs write) or as the Windows-1252 character of each
|
|
6
|
+
// code (the letter "l" typed in a Wingdings run, a `buChar` of "§" with `buFont` Wingdings). None of the five
|
|
7
|
+
// fonts may be bundled (proprietary), so a preview maps each code to its Unicode equivalent (core
|
|
8
|
+
// spec/reference/symbol-font-encodings.json, snapshot in symbol-encodings.js) and draws that character with the
|
|
9
|
+
// first loaded open face that has it; the PPTX keeps the family name and the original characters. Browser-safe
|
|
10
|
+
// and deterministic: no DOM, network or locale data.
|
|
11
|
+
import { SYMBOL_ENCODINGS } from "./symbol-encodings.js";
|
|
12
|
+
export { SYMBOL_ENCODINGS, SYMBOL_ENCODINGS_SOURCE } from "./symbol-encodings.js";
|
|
13
|
+
|
|
14
|
+
const freeze = value => { if (value && typeof value === "object") { for (const child of Object.values(value)) freeze(child); Object.freeze(value); } return value; };
|
|
15
|
+
|
|
16
|
+
/** The script key the symbol faces load under (`scripts: ['Zsym']`; ISO 15924 Zsym, symbols). */
|
|
17
|
+
export const SYMBOL_SCRIPT = "Zsym";
|
|
18
|
+
|
|
19
|
+
/** Drawn for a code with no Unicode equivalent, or whose equivalent no loaded face has: U+25A1 WHITE SQUARE. */
|
|
20
|
+
export const SYMBOL_PLACEHOLDER = "□";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The open faces that preview symbol codes, in the order a code tries them. The dingbat families try the
|
|
24
|
+
* pictograph faces first; Symbol (Greek letters, digits, punctuation, mathematical operators) tries Noto Sans,
|
|
25
|
+
* which every office registry carries, then Noto Sans Math. All four are OFL; the first three ship in the
|
|
26
|
+
* optional script pack under `Zsym`, Noto Sans with the office pack.
|
|
27
|
+
*/
|
|
28
|
+
export const SYMBOL_PREVIEW_FACES = freeze({
|
|
29
|
+
"Symbol": ["Noto Sans", "Noto Sans Math", "Noto Sans Symbols 2", "Noto Sans Symbols"],
|
|
30
|
+
"Wingdings": ["Noto Sans Symbols 2", "Noto Sans Symbols", "Noto Sans Math", "Noto Sans"],
|
|
31
|
+
"Wingdings 2": ["Noto Sans Symbols 2", "Noto Sans Symbols", "Noto Sans Math", "Noto Sans"],
|
|
32
|
+
"Wingdings 3": ["Noto Sans Symbols 2", "Noto Sans Symbols", "Noto Sans Math", "Noto Sans"],
|
|
33
|
+
"Webdings": ["Noto Sans Symbols 2", "Noto Sans Symbols", "Noto Sans Math", "Noto Sans"],
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
/** Every open face a symbol preview may draw with. */
|
|
37
|
+
export const SYMBOL_FACE_FAMILIES = freeze([...new Set(Object.values(SYMBOL_PREVIEW_FACES).flat())]);
|
|
38
|
+
|
|
39
|
+
const byFamily = new Map(SYMBOL_ENCODINGS.map(entry => [entry.family.toLowerCase(), entry]));
|
|
40
|
+
|
|
41
|
+
/** The encoding snapshot of a symbol-encoded family (case-insensitive), or undefined for any other family. */
|
|
42
|
+
export function symbolEncodingFor(family) {
|
|
43
|
+
return typeof family === "string" ? byFamily.get(family.trim().toLowerCase()) : undefined;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** True for Symbol, Wingdings, Wingdings 2, Wingdings 3 and Webdings (case-insensitive). */
|
|
47
|
+
export function isSymbolEncodedFamily(family) {
|
|
48
|
+
return symbolEncodingFor(family) !== undefined;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** The faces a symbol-encoded family previews with, in order. */
|
|
52
|
+
export function symbolPreviewFaces(family) {
|
|
53
|
+
const entry = symbolEncodingFor(family);
|
|
54
|
+
return entry ? SYMBOL_PREVIEW_FACES[entry.family] : [];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Windows-1252 characters at 0x80..0x9F (the five unassigned bytes 0x81, 0x8D, 0x8F, 0x90 and 0x9D have no character).
|
|
58
|
+
const CP1252_HIGH = freeze({
|
|
59
|
+
0x20ac: 0x80, 0x201a: 0x82, 0x0192: 0x83, 0x201e: 0x84, 0x2026: 0x85, 0x2020: 0x86, 0x2021: 0x87, 0x02c6: 0x88, 0x2030: 0x89,
|
|
60
|
+
0x0160: 0x8a, 0x2039: 0x8b, 0x0152: 0x8c, 0x017d: 0x8e, 0x2018: 0x91, 0x2019: 0x92, 0x201c: 0x93, 0x201d: 0x94, 0x2022: 0x95,
|
|
61
|
+
0x2013: 0x96, 0x2014: 0x97, 0x02dc: 0x98, 0x2122: 0x99, 0x0161: 0x9a, 0x203a: 0x9b, 0x0153: 0x9c, 0x017e: 0x9e, 0x0178: 0x9f,
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* The symbol code of one character, or null when it is not a code (the same rule as core `symbolCodeOf`): a
|
|
66
|
+
* private-use character U+F020..U+F0FF gives its low byte; U+0020..U+007E and U+00A0..U+00FF are their own
|
|
67
|
+
* byte; the Windows-1252 characters at 0x80..0x9F give that byte. Any other character is not symbol-encoded
|
|
68
|
+
* text and draws as itself.
|
|
69
|
+
*/
|
|
70
|
+
export function symbolCodeOf(character) {
|
|
71
|
+
if (typeof character !== "string" || !character) return null;
|
|
72
|
+
const point = character.codePointAt(0);
|
|
73
|
+
if (point >= 0xf020 && point <= 0xf0ff) return point - 0xf000;
|
|
74
|
+
if ((point >= 0x20 && point <= 0x7e) || (point >= 0xa0 && point <= 0xff)) return point;
|
|
75
|
+
return CP1252_HIGH[point] ?? null;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const unicodeString = value => String.fromCodePoint(...value.split("+").map(hex => parseInt(hex, 16)));
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Normalise text in a symbol-encoded family character by character: `{source, code, unicode, advance, reason?}`.
|
|
82
|
+
* `code` is null for a character that is not symbol-encoded text (it draws as itself); `unicode` is the
|
|
83
|
+
* equivalent to draw or null with the table's `reason`; `advance` is the verified font's advance for the code
|
|
84
|
+
* in em (null when that font has no glyph there). An unknown family maps every character to `{code: null}`.
|
|
85
|
+
*/
|
|
86
|
+
export function mapSymbolText(family, text) {
|
|
87
|
+
const entry = symbolEncodingFor(family);
|
|
88
|
+
const out = [];
|
|
89
|
+
for (const source of String(text ?? "")) {
|
|
90
|
+
const code = entry ? symbolCodeOf(source) : null;
|
|
91
|
+
if (code === null) { out.push({source, code: null, unicode: null, advance: null}); continue; }
|
|
92
|
+
const [unicode, advance, reason] = entry.codes[code - 0x20];
|
|
93
|
+
out.push({source, code, unicode: unicode === null ? null : unicodeString(unicode), advance: advance === null ? null : advance / entry.unitsPerEm, ...(unicode === null ? {reason} : {})});
|
|
94
|
+
}
|
|
95
|
+
return out;
|
|
96
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openpresentation/opf-render",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Deterministic local OPF renderer for SVG, PNG, and PDF output.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -47,18 +47,44 @@
|
|
|
47
47
|
"types": "./dist/fonts-browser.d.ts",
|
|
48
48
|
"default": "./dist/fonts-browser.js"
|
|
49
49
|
},
|
|
50
|
+
"./export-browser": {
|
|
51
|
+
"types": "./dist/export-browser.d.ts",
|
|
52
|
+
"default": "./dist/export-browser.js"
|
|
53
|
+
},
|
|
50
54
|
"./svg": {
|
|
51
55
|
"types": "./dist/svg.d.ts",
|
|
52
56
|
"default": "./dist/svg.js"
|
|
57
|
+
},
|
|
58
|
+
"./player": {
|
|
59
|
+
"types": "./dist/player.d.ts",
|
|
60
|
+
"default": "./dist/player.js"
|
|
61
|
+
},
|
|
62
|
+
"./element": {
|
|
63
|
+
"types": "./dist/element.d.ts",
|
|
64
|
+
"default": "./dist/element.js"
|
|
65
|
+
},
|
|
66
|
+
"./element/define": {
|
|
67
|
+
"types": "./dist/element-define.d.ts",
|
|
68
|
+
"default": "./dist/element-define.js"
|
|
69
|
+
},
|
|
70
|
+
"./preview-fonts": {
|
|
71
|
+
"types": "./dist/preview-fonts.d.ts",
|
|
72
|
+
"default": "./dist/preview-fonts.js"
|
|
73
|
+
},
|
|
74
|
+
"./preview-fonts-node": {
|
|
75
|
+
"types": "./dist/preview-fonts-node.d.ts",
|
|
76
|
+
"default": "./dist/preview-fonts-node.js"
|
|
53
77
|
}
|
|
54
78
|
},
|
|
55
79
|
"types": "./dist/index.d.ts",
|
|
56
|
-
"sideEffects":
|
|
80
|
+
"sideEffects": [
|
|
81
|
+
"./dist/element-define.js"
|
|
82
|
+
],
|
|
57
83
|
"scripts": {
|
|
58
84
|
"build": "node scripts/build.mjs",
|
|
59
|
-
"typecheck": "node --check src/index.js && node --check scripts/build.mjs && node --check scripts/validate-package.mjs && node --check test/smoke.mjs && node --check test/golden.mjs && node --check src/fonts.js && node --check src/script-fonts.js && node --check src/script-font-pack.js && node --check test/script-fonts.mjs && node --check test/theme-slots.mjs && node --check test/glyph-fallback.mjs && node --check test/script-fonts-browser.mjs && node --check test/script-fonts-auto.mjs && node --check test/script-fonts-auto-robust.mjs && node --check test/mongolian-shaping.mjs && node --check test/script-fonts-auto-browser.mjs && node --check src/fonts-node.js && node --check src/font-compatibility.js && node --check test/office-fonts.mjs && node --check test/font-policy.mjs && node --check test/open-fonts.mjs && node --check test/aptos-preview.mjs && node --check test/aptos-preview-browser.mjs && node --check test/lazy-fonts.mjs && node --check test/extra-lazy-fonts.mjs && node --check test/extra-lazy-fonts-browser.mjs && node --check test/lazy-faces.mjs && node --check test/lazy-fonts-browser.mjs && node --check test/lazy-face-fallback.mjs && node --check test/lazy-face-fallback-browser.mjs && node --check src/font-policy.js && node --check scripts/update-font-policy.mjs && node --check src/fonts-browser.js && node --check test/fonts-browser.mjs && node --check src/svg.js && node --check src/raster.js && node --check src/raster-images.js && node --check test/webp.mjs && node --check test/jpeg-orientation.mjs && node --check scripts/build-browser-check.mjs && node --check test/jpeg-browser.js && node --check test/rich-table.mjs && node --check test/rich-tab.mjs && node --check test/rich-tab-browser.mjs && node --check test/rich-tab-estimated-browser.mjs && node --check test/styled-table.mjs && node --check test/color-references.mjs && node --check test/catalog-source-array-and-background-refs.mjs && node --check test/default-font-scheme.mjs && node --check test/chart-colors.mjs && node --check test/chart-axis.mjs && node --check test/chart-category-labels.mjs && node --check src/charts.js && node --check test/chart-types.mjs && node --check test/chart-scale.mjs && node --check test/chart-catalog.mjs && node --check test/image-placeholders.mjs && node --check test/image-placeholders-browser.mjs && node --check test/accepted-text.mjs && node --check test/accepted-text-fixtures.mjs && node --check test/accepted-text-browser.mjs && node --check test/rich-spacing-browser.mjs && node --check test/rich-flow-browser.mjs && node --check test/rich-flow-review-sheets.mjs && node --check test/furniture.mjs && node --check test/socials.mjs && node --check test/slide-image.mjs && node --check test/slide-image-treatments.mjs && node --check test/item-alignment.mjs && node --check test/tag-colour.mjs && node --check test/design-fields.mjs && node --check test/cover-centering.mjs && node --check scripts/font-license.mjs && node --check test/font-licenses.mjs && node --check scripts/check-font-hotlinks.mjs && node --check scripts/check-font-hotlinks.test.mjs && node --check test/gallery-layout-alignment.mjs",
|
|
85
|
+
"typecheck": "node --check src/index.js && node --check src/annotations.js && node --check test/annotations.mjs && node --check src/color-fonts.js && node --check test/emoji-math.mjs && node --check test/emoji-math-browser.mjs && node --check src/symbol-fonts.js && node --check src/symbol-encodings.js && node --check scripts/update-symbol-encodings.mjs && node --check test/symbol-fonts.mjs && node --check test/symbol-fonts-browser.mjs && node --check scripts/build.mjs && node --check scripts/validate-package.mjs && node --check test/smoke.mjs && node --check test/golden.mjs && node --check src/fonts.js && node --check src/script-fonts.js && node --check src/script-font-pack.js && node --check test/script-fonts.mjs && node --check test/theme-slots.mjs && node --check test/arabic-size-adjust.mjs && node --check test/glyph-fallback.mjs && node --check test/script-fonts-browser.mjs && node --check test/script-fonts-auto.mjs && node --check test/script-fonts-auto-robust.mjs && node --check test/mongolian-shaping.mjs && node --check scripts/script-corpora.mjs && node --check scripts/measure-script-references.mjs && node --check scripts/script-line-breaks.mjs && node --check test/script-corpora.mjs && node --check test/script-corpora-raster.mjs && node --check test/script-corpora-browser.mjs && node --check test/script-corpora-slides-browser.mjs && node --check src/raster-text.js && node --check test/raster-script-clusters.mjs && node --check test/script-fonts-auto-browser.mjs && node --check src/fonts-node.js && node --check src/font-compatibility.js && node --check test/office-fonts.mjs && node --check test/font-policy.mjs && node --check test/open-fonts.mjs && node --check test/aptos-preview.mjs && node --check test/aptos-preview-browser.mjs && node --check test/lazy-fonts.mjs && node --check test/extra-lazy-fonts.mjs && node --check test/extra-lazy-fonts-browser.mjs && node --check test/lazy-faces.mjs && node --check test/lazy-fonts-browser.mjs && node --check test/lazy-face-fallback.mjs && node --check test/lazy-face-fallback-browser.mjs && node --check src/font-policy.js && node --check scripts/update-font-policy.mjs && node --check src/fonts-browser.js && node --check test/fonts-browser.mjs && node --check src/svg.js && node --check src/raster.js && node --check src/raster-images.js && node --check test/webp.mjs && node --check test/jpeg-orientation.mjs && node --check scripts/build-browser-check.mjs && node --check test/jpeg-browser.js && node --check test/rich-table.mjs && node --check test/rich-tab.mjs && node --check test/rich-tab-browser.mjs && node --check test/rich-tab-estimated-browser.mjs && node --check scripts/variable-font-gate.mjs && node --check test/platform-residual-probe.mjs && node --check test/variable-font-retained-gate.mjs && node --check test/styled-table.mjs && node --check test/color-references.mjs && node --check test/catalog-source-array-and-background-refs.mjs && node --check test/default-font-scheme.mjs && node --check test/chart-colors.mjs && node --check test/chart-axis.mjs && node --check test/chart-category-labels.mjs && node --check src/charts.js && node --check src/chart-options.js && node --check test/chart-options.mjs && node --check test/chart-types.mjs && node --check test/chart-scale.mjs && node --check test/chart-catalog.mjs && node --check test/image-placeholders.mjs && node --check test/svg-image.mjs && node --check test/image-placeholders-browser.mjs && node --check test/accepted-text.mjs && node --check test/accepted-text-fixtures.mjs && node --check test/accepted-text-browser.mjs && node --check test/rich-spacing-browser.mjs && node --check test/rich-flow-browser.mjs && node --check test/rich-flow-review-sheets.mjs && node --check test/furniture.mjs && node --check test/socials.mjs && node --check test/slide-image.mjs && node --check test/slide-image-treatments.mjs && node --check test/item-alignment.mjs && node --check test/rtl-layout.mjs && node --check test/numbered-lists.mjs && node --check test/tag-colour.mjs && node --check test/design-fields.mjs && node --check test/cover-centering.mjs && node --check scripts/font-license.mjs && node --check test/font-licenses.mjs && node --check scripts/check-font-hotlinks.mjs && node --check scripts/check-font-hotlinks.test.mjs && node --check test/gallery-layout-alignment.mjs && npm run test:pdf-vector && node --check src/pdf-vector.js && node --check src/pdf-text.js && node --check src/pdf-fonts.js && node --check src/pdf-subset.js && node --check src/pdf-style.js && node --check src/pdf-xml.js && node --check src/pdf-writer.js && node --check test/pdf-helpers.mjs && node --check test/pdf-vector.mjs && node --check test/pdf-vector-visual.mjs && node --check src/sha256.js && node --check src/export-browser.js && node --check test/export-browser.mjs && node --check src/deck-runtime.js && node --check src/preview-fonts.js && node --check src/preview-fonts-node.js && node --check src/preview-fonts-cli.js && node --check src/element.js && node --check src/element-define.js && node --check src/player.js && node --check test/player-unit.mjs && node --check test/player-browser.mjs && node --check test/latin-family-fixture.mjs && node --check test/latin-family-hosts.mjs && node --check test/latin-family-hosts-browser.mjs && node --check test/preview-polish.mjs && node --check scripts/derive-pattern-bitmaps.mjs",
|
|
60
86
|
"validate": "node scripts/validate-package.mjs",
|
|
61
|
-
"test": "npm run build && npm run check:fonts && node test/furniture.mjs && node test/socials.mjs && node test/font-outlines.mjs && node test/accepted-text.mjs && node test/image-placeholders.mjs && node test/slide-image.mjs && node test/slide-image-treatments.mjs && node test/chart-colors.mjs && node test/chart-axis.mjs && node test/chart-category-labels.mjs && node test/chart-types.mjs && node test/chart-scale.mjs && node test/chart-catalog.mjs && node test/smoke.mjs && node test/webp.mjs && node test/jpeg-orientation.mjs && node test/fonts.mjs && node test/office-fonts.mjs && node test/font-policy.mjs && node test/open-fonts.mjs && node test/aptos-preview.mjs && node test/lazy-fonts.mjs && node test/extra-lazy-fonts.mjs && node test/lazy-faces.mjs && node test/lazy-face-fallback.mjs && node test/timeline.mjs && node test/quote-footer.mjs && node test/shared-quote.mjs && node test/rich-trace.mjs && node test/rich-table.mjs && node test/rich-tab.mjs && node test/color-references.mjs && node test/catalog-source-array-and-background-refs.mjs && node test/default-font-scheme.mjs && node test/golden-gate.mjs && node test/golden.mjs && node test/fonts-browser.mjs && node test/script-fonts.mjs && node test/theme-slots.mjs && node test/glyph-fallback.mjs && node test/script-fonts-auto.mjs && node test/script-fonts-auto-robust.mjs && node test/mongolian-shaping.mjs && node test/design-preview.mjs && node test/item-alignment.mjs && node test/tag-colour.mjs && node test/design-fields.mjs && node test/gallery-layout-alignment.mjs && node test/cover-centering.mjs && npm run build:browser-check && npm run test:styled-table",
|
|
87
|
+
"test": "npm run build && npm run check:fonts && node test/furniture.mjs && node test/emoji-math.mjs && node test/socials.mjs && node test/font-outlines.mjs && node test/symbol-fonts.mjs && node test/accepted-text.mjs && node test/image-placeholders.mjs && node test/svg-image.mjs && node test/slide-image.mjs && node test/slide-image-treatments.mjs && node test/chart-colors.mjs && node test/chart-axis.mjs && node test/chart-options.mjs && node test/chart-category-labels.mjs && node test/chart-types.mjs && node test/chart-scale.mjs && node test/chart-catalog.mjs && node test/smoke.mjs && node test/webp.mjs && node test/jpeg-orientation.mjs && node test/fonts.mjs && node test/office-fonts.mjs && node test/font-policy.mjs && node test/open-fonts.mjs && node test/aptos-preview.mjs && node test/lazy-fonts.mjs && node test/extra-lazy-fonts.mjs && node test/lazy-faces.mjs && node test/lazy-face-fallback.mjs && node test/timeline.mjs && node test/quote-footer.mjs && node test/shared-quote.mjs && node test/rich-trace.mjs && node test/rich-table.mjs && node test/rich-tab.mjs && node test/color-references.mjs && node test/template-variables.mjs && node test/catalog-source-array-and-background-refs.mjs && node test/default-font-scheme.mjs && node test/golden-gate.mjs && node test/golden.mjs && node test/fonts-browser.mjs && node test/raster-script-clusters.mjs && node test/script-fonts.mjs && node test/theme-slots.mjs && node test/arabic-size-adjust.mjs && node test/glyph-fallback.mjs && node test/script-fonts-auto.mjs && node test/script-fonts-auto-robust.mjs && node test/mongolian-shaping.mjs && node test/design-preview.mjs && node test/item-alignment.mjs && node test/rtl-layout.mjs && node test/numbered-lists.mjs && node test/tag-colour.mjs && node test/preview-polish.mjs && node test/design-fields.mjs && node test/gallery-layout-alignment.mjs && node test/cover-centering.mjs && node test/annotations.mjs && npm run build:browser-check && npm run test:styled-table && npm run test:pdf-vector && node test/player-unit.mjs && node test/latin-family-hosts.mjs",
|
|
62
88
|
"check:fonts": "node test/font-licenses.mjs && npm run check:font-hotlinks",
|
|
63
89
|
"check:font-hotlinks": "node --test scripts/check-font-hotlinks.test.mjs && node scripts/check-font-hotlinks.mjs",
|
|
64
90
|
"test:golden": "npm run build && node test/golden.mjs",
|
|
@@ -68,6 +94,9 @@
|
|
|
68
94
|
"prepack": "npm run build",
|
|
69
95
|
"build:browser-check": "node scripts/build-browser-check.mjs",
|
|
70
96
|
"test:styled-table": "node test/styled-table.mjs",
|
|
97
|
+
"test:pdf-vector": "node test/pdf-vector.mjs && node test/pdf-vector-visual.mjs",
|
|
98
|
+
"test:export-browser": "node test/export-browser.mjs artifacts/export-browser",
|
|
99
|
+
"report:pdf-vector": "node test/pdf-vector-visual.mjs --all --report artifacts/pdf-vector-visual.json",
|
|
71
100
|
"test:code": "node test/shared-code.mjs",
|
|
72
101
|
"test:code-browser": "node test/shared-code-browser.mjs",
|
|
73
102
|
"test:metric": "node test/shared-metric.mjs",
|
|
@@ -76,17 +105,24 @@
|
|
|
76
105
|
"test:font-preparation-browser": "node test/font-preparation-browser.mjs artifacts/font-preparation-browser.json",
|
|
77
106
|
"test:font-variants": "node test/font-variants.mjs",
|
|
78
107
|
"test:font-variants-browser": "node test/font-variants-browser.mjs",
|
|
108
|
+
"test:variable-font-gate": "node test/platform-residual-probe.mjs ../archive/test/fixtures/font-formats artifacts/variable-font-gate/live.json && node test/variable-font-retained-gate.mjs ../archive/docs/evidence/rejected-truetype-rounding-20260915 artifacts/variable-font-gate/retained.json",
|
|
79
109
|
"test:aptos-preview-browser": "node test/aptos-preview-browser.mjs artifacts/aptos-preview-browser.json",
|
|
80
110
|
"test:lazy-face-fallback-browser": "node test/lazy-face-fallback-browser.mjs artifacts/lazy-face-fallback",
|
|
81
111
|
"test:lazy-fonts-browser": "node test/lazy-fonts-browser.mjs artifacts/lazy-fonts",
|
|
112
|
+
"test:latin-family-hosts-browser": "node test/latin-family-hosts-browser.mjs artifacts/latin-family-hosts",
|
|
82
113
|
"test:extra-lazy-fonts-browser": "node test/extra-lazy-fonts-browser.mjs artifacts/extra-lazy-fonts",
|
|
83
114
|
"test:script-fonts-browser": "node test/script-fonts-browser.mjs artifacts/script-fonts-browser.json",
|
|
115
|
+
"test:script-corpora-browser": "node test/script-corpora-browser.mjs artifacts/script-corpora-browser.json && node test/script-corpora-slides-browser.mjs artifacts/script-corpora-slides-browser.json",
|
|
84
116
|
"test:script-fonts-auto-browser": "node test/script-fonts-auto-browser.mjs artifacts/script-fonts-auto",
|
|
117
|
+
"test:symbol-fonts-browser": "node test/symbol-fonts-browser.mjs artifacts/symbol-fonts-browser.json",
|
|
85
118
|
"test:text": "node test/font-outlines.mjs && node test/accepted-text.mjs",
|
|
86
119
|
"test:text-browser": "node test/accepted-text-browser.mjs",
|
|
87
120
|
"test:rich-spacing-browser": "node test/rich-spacing-browser.mjs",
|
|
88
121
|
"test:rich-flow-browser": "node test/rich-flow-browser.mjs",
|
|
89
|
-
"test:plain-whitespace-browser": "node test/plain-whitespace-browser.mjs"
|
|
122
|
+
"test:plain-whitespace-browser": "node test/plain-whitespace-browser.mjs",
|
|
123
|
+
"test:emoji-math-browser": "node test/emoji-math-browser.mjs artifacts/emoji-math-browser.json",
|
|
124
|
+
"test:player": "node test/player-unit.mjs",
|
|
125
|
+
"test:player-browser": "node test/player-browser.mjs artifacts/player"
|
|
90
126
|
},
|
|
91
127
|
"dependencies": {
|
|
92
128
|
"@expo-google-fonts/arimo": "0.4.3",
|
|
@@ -97,13 +133,17 @@
|
|
|
97
133
|
"@expo-google-fonts/roboto": "0.4.3",
|
|
98
134
|
"@expo-google-fonts/roboto-mono": "0.4.2",
|
|
99
135
|
"@expo-google-fonts/tinos": "0.4.2",
|
|
100
|
-
"@openpresentation/opf": "^0.
|
|
136
|
+
"@openpresentation/opf": "^0.12.0",
|
|
101
137
|
"@resvg/resvg-js": "^2.6.2",
|
|
138
|
+
"bidi-js": "1.1.0",
|
|
102
139
|
"fontkit": "^2.0.4",
|
|
140
|
+
"pako": "1.0.11",
|
|
103
141
|
"pdf-lib": "^1.17.1",
|
|
104
142
|
"sharp": "0.35.4"
|
|
105
143
|
},
|
|
106
144
|
"peerDependencies": {
|
|
145
|
+
"@expo-google-fonts/noto-color-emoji": "0.4.6",
|
|
146
|
+
"@expo-google-fonts/noto-emoji": "0.4.7",
|
|
107
147
|
"@expo-google-fonts/noto-naskh-arabic": "0.4.5",
|
|
108
148
|
"@expo-google-fonts/noto-nastaliq-urdu": "0.4.2",
|
|
109
149
|
"@expo-google-fonts/noto-sans-arabic": "0.4.3",
|
|
@@ -121,11 +161,14 @@
|
|
|
121
161
|
"@expo-google-fonts/noto-sans-kr": "0.4.3",
|
|
122
162
|
"@expo-google-fonts/noto-sans-lao": "0.4.2",
|
|
123
163
|
"@expo-google-fonts/noto-sans-malayalam": "0.4.2",
|
|
164
|
+
"@expo-google-fonts/noto-sans-math": "0.4.2",
|
|
124
165
|
"@expo-google-fonts/noto-sans-mongolian": "0.4.1",
|
|
125
166
|
"@expo-google-fonts/noto-sans-myanmar": "0.4.2",
|
|
126
167
|
"@expo-google-fonts/noto-sans-oriya": "0.4.2",
|
|
127
168
|
"@expo-google-fonts/noto-sans-sc": "0.4.3",
|
|
128
169
|
"@expo-google-fonts/noto-sans-sinhala": "0.4.2",
|
|
170
|
+
"@expo-google-fonts/noto-sans-symbols": "0.4.1",
|
|
171
|
+
"@expo-google-fonts/noto-sans-symbols-2": "0.4.1",
|
|
129
172
|
"@expo-google-fonts/noto-sans-syriac": "0.4.2",
|
|
130
173
|
"@expo-google-fonts/noto-sans-tamil": "0.4.3",
|
|
131
174
|
"@expo-google-fonts/noto-sans-tc": "0.4.3",
|
|
@@ -133,9 +176,16 @@
|
|
|
133
176
|
"@expo-google-fonts/noto-sans-thaana": "0.4.2",
|
|
134
177
|
"@expo-google-fonts/noto-sans-thai": "0.4.2",
|
|
135
178
|
"@expo-google-fonts/noto-serif-hebrew": "0.4.2",
|
|
136
|
-
"@expo-google-fonts/noto-serif-tibetan": "0.4.2"
|
|
179
|
+
"@expo-google-fonts/noto-serif-tibetan": "0.4.2",
|
|
180
|
+
"@expo-google-fonts/stix-two-math": "0.4.0"
|
|
137
181
|
},
|
|
138
182
|
"peerDependenciesMeta": {
|
|
183
|
+
"@expo-google-fonts/noto-color-emoji": {
|
|
184
|
+
"optional": true
|
|
185
|
+
},
|
|
186
|
+
"@expo-google-fonts/noto-emoji": {
|
|
187
|
+
"optional": true
|
|
188
|
+
},
|
|
139
189
|
"@expo-google-fonts/noto-naskh-arabic": {
|
|
140
190
|
"optional": true
|
|
141
191
|
},
|
|
@@ -187,6 +237,9 @@
|
|
|
187
237
|
"@expo-google-fonts/noto-sans-malayalam": {
|
|
188
238
|
"optional": true
|
|
189
239
|
},
|
|
240
|
+
"@expo-google-fonts/noto-sans-math": {
|
|
241
|
+
"optional": true
|
|
242
|
+
},
|
|
190
243
|
"@expo-google-fonts/noto-sans-mongolian": {
|
|
191
244
|
"optional": true
|
|
192
245
|
},
|
|
@@ -202,6 +255,12 @@
|
|
|
202
255
|
"@expo-google-fonts/noto-sans-sinhala": {
|
|
203
256
|
"optional": true
|
|
204
257
|
},
|
|
258
|
+
"@expo-google-fonts/noto-sans-symbols": {
|
|
259
|
+
"optional": true
|
|
260
|
+
},
|
|
261
|
+
"@expo-google-fonts/noto-sans-symbols-2": {
|
|
262
|
+
"optional": true
|
|
263
|
+
},
|
|
205
264
|
"@expo-google-fonts/noto-sans-syriac": {
|
|
206
265
|
"optional": true
|
|
207
266
|
},
|
|
@@ -225,9 +284,14 @@
|
|
|
225
284
|
},
|
|
226
285
|
"@expo-google-fonts/noto-serif-tibetan": {
|
|
227
286
|
"optional": true
|
|
287
|
+
},
|
|
288
|
+
"@expo-google-fonts/stix-two-math": {
|
|
289
|
+
"optional": true
|
|
228
290
|
}
|
|
229
291
|
},
|
|
230
292
|
"devDependencies": {
|
|
293
|
+
"@expo-google-fonts/noto-color-emoji": "0.4.6",
|
|
294
|
+
"@expo-google-fonts/noto-emoji": "0.4.7",
|
|
231
295
|
"@expo-google-fonts/noto-naskh-arabic": "0.4.5",
|
|
232
296
|
"@expo-google-fonts/noto-nastaliq-urdu": "0.4.2",
|
|
233
297
|
"@expo-google-fonts/noto-sans-arabic": "0.4.3",
|
|
@@ -245,11 +309,14 @@
|
|
|
245
309
|
"@expo-google-fonts/noto-sans-kr": "0.4.3",
|
|
246
310
|
"@expo-google-fonts/noto-sans-lao": "0.4.2",
|
|
247
311
|
"@expo-google-fonts/noto-sans-malayalam": "0.4.2",
|
|
312
|
+
"@expo-google-fonts/noto-sans-math": "0.4.2",
|
|
248
313
|
"@expo-google-fonts/noto-sans-mongolian": "0.4.1",
|
|
249
314
|
"@expo-google-fonts/noto-sans-myanmar": "0.4.2",
|
|
250
315
|
"@expo-google-fonts/noto-sans-oriya": "0.4.2",
|
|
251
316
|
"@expo-google-fonts/noto-sans-sc": "0.4.3",
|
|
252
317
|
"@expo-google-fonts/noto-sans-sinhala": "0.4.2",
|
|
318
|
+
"@expo-google-fonts/noto-sans-symbols": "0.4.1",
|
|
319
|
+
"@expo-google-fonts/noto-sans-symbols-2": "0.4.1",
|
|
253
320
|
"@expo-google-fonts/noto-sans-syriac": "0.4.2",
|
|
254
321
|
"@expo-google-fonts/noto-sans-tamil": "0.4.3",
|
|
255
322
|
"@expo-google-fonts/noto-sans-tc": "0.4.3",
|
|
@@ -258,7 +325,17 @@
|
|
|
258
325
|
"@expo-google-fonts/noto-sans-thai": "0.4.2",
|
|
259
326
|
"@expo-google-fonts/noto-serif-hebrew": "0.4.2",
|
|
260
327
|
"@expo-google-fonts/noto-serif-tibetan": "0.4.2",
|
|
328
|
+
"@expo-google-fonts/stix-two-math": "0.4.0",
|
|
329
|
+
"@hyzyla/pdfium": "2.1.13",
|
|
330
|
+
"@jspawn/qpdf-wasm": "0.0.2",
|
|
331
|
+
"@napi-rs/canvas": "1.0.9",
|
|
332
|
+
"axe-core": "4.13.0",
|
|
261
333
|
"esbuild": "0.28.2",
|
|
334
|
+
"harfbuzzjs": "1.6.2",
|
|
335
|
+
"pdfjs-dist": "6.3.289",
|
|
262
336
|
"playwright": "1.63.0"
|
|
337
|
+
},
|
|
338
|
+
"bin": {
|
|
339
|
+
"opf-preview-fonts": "./dist/preview-fonts-cli.js"
|
|
263
340
|
}
|
|
264
341
|
}
|