@ctrliq/quantic-fonts 0.0.1 → 1.60.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/__generated__.d.ts +44 -0
- package/dist/__generated__.js +254 -0
- package/dist/__generated__.js.map +1 -0
- package/dist/assets/Inter-Black.woff2 +0 -0
- package/dist/assets/Inter-BlackItalic.woff2 +0 -0
- package/dist/assets/Inter-Bold.woff2 +0 -0
- package/dist/assets/Inter-BoldItalic.woff2 +0 -0
- package/dist/assets/Inter-ExtraBold.woff2 +0 -0
- package/dist/assets/Inter-ExtraBoldItalic.woff2 +0 -0
- package/dist/assets/Inter-ExtraLight.woff2 +0 -0
- package/dist/assets/Inter-ExtraLightItalic.woff2 +0 -0
- package/dist/assets/Inter-Italic.woff2 +0 -0
- package/dist/assets/Inter-Light.woff2 +0 -0
- package/dist/assets/Inter-LightItalic.woff2 +0 -0
- package/dist/assets/Inter-Medium.woff2 +0 -0
- package/dist/assets/Inter-MediumItalic.woff2 +0 -0
- package/dist/assets/Inter-Regular.woff2 +0 -0
- package/dist/assets/Inter-SemiBold.woff2 +0 -0
- package/dist/assets/Inter-SemiBoldItalic.woff2 +0 -0
- package/dist/assets/Inter-Thin.woff2 +0 -0
- package/dist/assets/Inter-ThinItalic.woff2 +0 -0
- package/dist/assets/Roboto-Black.woff2 +0 -0
- package/dist/assets/Roboto-BlackItalic.woff2 +0 -0
- package/dist/assets/Roboto-Bold.woff2 +0 -0
- package/dist/assets/Roboto-BoldItalic.woff2 +0 -0
- package/dist/assets/Roboto-Light.woff2 +0 -0
- package/dist/assets/Roboto-LightItalic.woff2 +0 -0
- package/dist/assets/Roboto-Medium.woff2 +0 -0
- package/dist/assets/Roboto-MediumItalic.woff2 +0 -0
- package/dist/assets/Roboto-Regular.woff2 +0 -0
- package/dist/assets/Roboto-RegularItalic.woff2 +0 -0
- package/dist/assets/Roboto-Thin.woff2 +0 -0
- package/dist/assets/Roboto-ThinItalic.woff2 +0 -0
- package/dist/assets/Satoshi-Black.woff2 +0 -0
- package/dist/assets/Satoshi-BlackItalic.woff2 +0 -0
- package/dist/assets/Satoshi-Bold.woff2 +0 -0
- package/dist/assets/Satoshi-BoldItalic.woff2 +0 -0
- package/dist/assets/Satoshi-Italic.woff2 +0 -0
- package/dist/assets/Satoshi-Light.woff2 +0 -0
- package/dist/assets/Satoshi-LightItalic.woff2 +0 -0
- package/dist/assets/Satoshi-Medium.woff2 +0 -0
- package/dist/assets/Satoshi-MediumItalic.woff2 +0 -0
- package/dist/assets/Satoshi-Regular.woff2 +0 -0
- package/dist/assets/index.js +1 -0
- package/dist/fonts/inter/assets/Inter-Black.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-Black.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-BlackItalic.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-BlackItalic.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-Bold.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-Bold.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-BoldItalic.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-BoldItalic.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-ExtraBold.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-ExtraBold.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-ExtraBoldItalic.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-ExtraBoldItalic.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-ExtraLight.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-ExtraLight.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-ExtraLightItalic.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-ExtraLightItalic.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-Italic.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-Italic.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-Light.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-Light.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-LightItalic.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-LightItalic.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-Medium.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-Medium.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-MediumItalic.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-MediumItalic.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-Regular.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-Regular.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-SemiBold.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-SemiBold.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-SemiBoldItalic.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-SemiBoldItalic.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-Thin.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-Thin.woff2.js.map +1 -0
- package/dist/fonts/inter/assets/Inter-ThinItalic.woff2.js +4 -0
- package/dist/fonts/inter/assets/Inter-ThinItalic.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-Black.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-Black.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-BlackItalic.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-BlackItalic.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-Bold.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-Bold.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-BoldItalic.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-BoldItalic.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-Light.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-Light.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-LightItalic.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-LightItalic.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-Medium.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-Medium.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-MediumItalic.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-MediumItalic.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-Regular.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-Regular.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-RegularItalic.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-RegularItalic.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-Thin.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-Thin.woff2.js.map +1 -0
- package/dist/fonts/roboto/assets/Roboto-ThinItalic.woff2.js +4 -0
- package/dist/fonts/roboto/assets/Roboto-ThinItalic.woff2.js.map +1 -0
- package/dist/fonts/satoshi/assets/Satoshi-Black.woff2.js +4 -0
- package/dist/fonts/satoshi/assets/Satoshi-Black.woff2.js.map +1 -0
- package/dist/fonts/satoshi/assets/Satoshi-BlackItalic.woff2.js +4 -0
- package/dist/fonts/satoshi/assets/Satoshi-BlackItalic.woff2.js.map +1 -0
- package/dist/fonts/satoshi/assets/Satoshi-Bold.woff2.js +4 -0
- package/dist/fonts/satoshi/assets/Satoshi-Bold.woff2.js.map +1 -0
- package/dist/fonts/satoshi/assets/Satoshi-BoldItalic.woff2.js +4 -0
- package/dist/fonts/satoshi/assets/Satoshi-BoldItalic.woff2.js.map +1 -0
- package/dist/fonts/satoshi/assets/Satoshi-Italic.woff2.js +4 -0
- package/dist/fonts/satoshi/assets/Satoshi-Italic.woff2.js.map +1 -0
- package/dist/fonts/satoshi/assets/Satoshi-Light.woff2.js +4 -0
- package/dist/fonts/satoshi/assets/Satoshi-Light.woff2.js.map +1 -0
- package/dist/fonts/satoshi/assets/Satoshi-LightItalic.woff2.js +4 -0
- package/dist/fonts/satoshi/assets/Satoshi-LightItalic.woff2.js.map +1 -0
- package/dist/fonts/satoshi/assets/Satoshi-Medium.woff2.js +4 -0
- package/dist/fonts/satoshi/assets/Satoshi-Medium.woff2.js.map +1 -0
- package/dist/fonts/satoshi/assets/Satoshi-MediumItalic.woff2.js +4 -0
- package/dist/fonts/satoshi/assets/Satoshi-MediumItalic.woff2.js.map +1 -0
- package/dist/fonts/satoshi/assets/Satoshi-Regular.woff2.js +4 -0
- package/dist/fonts/satoshi/assets/Satoshi-Regular.woff2.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/register.d.ts +5 -0
- package/dist/register.js +76 -0
- package/dist/register.js.map +1 -0
- package/dist/types/index.d.ts +28 -0
- package/package.json +41 -7
- package/README.md +0 -45
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-Black.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-Black.woff2"],"sourcesContent":["export default \"/assets/Roboto-Black.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-BlackItalic.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-BlackItalic.woff2"],"sourcesContent":["export default \"/assets/Roboto-BlackItalic.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-Bold.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-Bold.woff2"],"sourcesContent":["export default \"/assets/Roboto-Bold.woff2\""],"names":[],"mappings":"AAAA,oBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-BoldItalic.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-BoldItalic.woff2"],"sourcesContent":["export default \"/assets/Roboto-BoldItalic.woff2\""],"names":[],"mappings":"AAAA,oBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-Light.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-Light.woff2"],"sourcesContent":["export default \"/assets/Roboto-Light.woff2\""],"names":[],"mappings":"AAAA,oBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-LightItalic.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-LightItalic.woff2"],"sourcesContent":["export default \"/assets/Roboto-LightItalic.woff2\""],"names":[],"mappings":"AAAA,oBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-Medium.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-Medium.woff2"],"sourcesContent":["export default \"/assets/Roboto-Medium.woff2\""],"names":[],"mappings":"AAAA,oBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-MediumItalic.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-MediumItalic.woff2"],"sourcesContent":["export default \"/assets/Roboto-MediumItalic.woff2\""],"names":[],"mappings":"AAAA,oBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-Regular.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-Regular.woff2"],"sourcesContent":["export default \"/assets/Roboto-Regular.woff2\""],"names":[],"mappings":"AAAA,oBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-RegularItalic.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-RegularItalic.woff2"],"sourcesContent":["export default \"/assets/Roboto-RegularItalic.woff2\""],"names":[],"mappings":"AAAA,oBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-Thin.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-Thin.woff2"],"sourcesContent":["export default \"/assets/Roboto-Thin.woff2\""],"names":[],"mappings":"AAAA,oBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roboto-ThinItalic.woff2.js","sources":["../../../../src/fonts/roboto/assets/Roboto-ThinItalic.woff2"],"sourcesContent":["export default \"/assets/Roboto-ThinItalic.woff2\""],"names":[],"mappings":"AAAA,oBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Satoshi-Black.woff2.js","sources":["../../../../src/fonts/satoshi/assets/Satoshi-Black.woff2"],"sourcesContent":["export default \"/assets/Satoshi-Black.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Satoshi-BlackItalic.woff2.js","sources":["../../../../src/fonts/satoshi/assets/Satoshi-BlackItalic.woff2"],"sourcesContent":["export default \"/assets/Satoshi-BlackItalic.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Satoshi-Bold.woff2.js","sources":["../../../../src/fonts/satoshi/assets/Satoshi-Bold.woff2"],"sourcesContent":["export default \"/assets/Satoshi-Bold.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Satoshi-BoldItalic.woff2.js","sources":["../../../../src/fonts/satoshi/assets/Satoshi-BoldItalic.woff2"],"sourcesContent":["export default \"/assets/Satoshi-BoldItalic.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Satoshi-Italic.woff2.js","sources":["../../../../src/fonts/satoshi/assets/Satoshi-Italic.woff2"],"sourcesContent":["export default \"/assets/Satoshi-Italic.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Satoshi-Light.woff2.js","sources":["../../../../src/fonts/satoshi/assets/Satoshi-Light.woff2"],"sourcesContent":["export default \"/assets/Satoshi-Light.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Satoshi-LightItalic.woff2.js","sources":["../../../../src/fonts/satoshi/assets/Satoshi-LightItalic.woff2"],"sourcesContent":["export default \"/assets/Satoshi-LightItalic.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Satoshi-Medium.woff2.js","sources":["../../../../src/fonts/satoshi/assets/Satoshi-Medium.woff2"],"sourcesContent":["export default \"/assets/Satoshi-Medium.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Satoshi-MediumItalic.woff2.js","sources":["../../../../src/fonts/satoshi/assets/Satoshi-MediumItalic.woff2"],"sourcesContent":["export default \"/assets/Satoshi-MediumItalic.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Satoshi-Regular.woff2.js","sources":["../../../../src/fonts/satoshi/assets/Satoshi-Regular.woff2"],"sourcesContent":["export default \"/assets/Satoshi-Regular.woff2\""],"names":[],"mappings":"AAAA,qBAAe;;;;"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './__generated__';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { inter, inter100, inter100Italic, inter200, inter200Italic, inter300, inter300Italic, inter400, inter400Italic, inter500, inter500Italic, inter600, inter600Italic, inter700, inter700Italic, inter800, inter800Italic, inter900, inter900Italic, roboto, roboto100, roboto100Italic, roboto300, roboto300Italic, roboto400, roboto400Italic, roboto500, roboto500Italic, roboto700, roboto700Italic, roboto900, roboto900Italic, satoshi, satoshi300, satoshi300Italic, satoshi400, satoshi400Italic, satoshi500, satoshi500Italic, satoshi600, satoshi600Italic, satoshi900, satoshi900Italic } from './__generated__.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/register.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
const camelCase = (str) => str
|
|
2
|
+
.replace(/[-_ ]+(\w)/g, (_, c) => c.toUpperCase())
|
|
3
|
+
.replace(/^./, (match) => match.toLowerCase());
|
|
4
|
+
function getFontFaceId(name, variant) {
|
|
5
|
+
return `__ciq-font-${name}-${variant.weight}-${variant.style}`;
|
|
6
|
+
}
|
|
7
|
+
function getFontFace(name, variant) {
|
|
8
|
+
return `
|
|
9
|
+
@font-face {
|
|
10
|
+
font-family: '${name}';
|
|
11
|
+
font-style: ${variant.style};
|
|
12
|
+
font-weight: ${variant.weight};
|
|
13
|
+
src: url('${variant.file}') format('woff2');
|
|
14
|
+
font-display: swap;
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
17
|
+
}
|
|
18
|
+
function preload(name, variant) {
|
|
19
|
+
return {
|
|
20
|
+
href: variant.file,
|
|
21
|
+
type: 'font/woff2',
|
|
22
|
+
as: 'font',
|
|
23
|
+
crossOrigin: 'anonymous',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function inject(name, variant) {
|
|
27
|
+
const { id } = variant;
|
|
28
|
+
const tagId = id ?? getFontFaceId(name, variant);
|
|
29
|
+
if (document.getElementById(tagId))
|
|
30
|
+
return;
|
|
31
|
+
const styleEl = document.createElement('style');
|
|
32
|
+
styleEl.id = tagId;
|
|
33
|
+
styleEl.textContent = getFontFace(name, variant);
|
|
34
|
+
document.head.appendChild(styleEl);
|
|
35
|
+
}
|
|
36
|
+
const filterVariants = (variants, filter) => {
|
|
37
|
+
if (!filter)
|
|
38
|
+
return variants;
|
|
39
|
+
return variants.filter((variant) => {
|
|
40
|
+
const matchesWeight = !filter.weights || filter.weights.includes(variant.weight);
|
|
41
|
+
const matchesStyle = !filter.styles || filter.styles.includes(variant.style);
|
|
42
|
+
return matchesWeight && matchesStyle;
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
function buildRegisterers(font) {
|
|
46
|
+
const independent = Object.fromEntries(font.variants.map((variant) => {
|
|
47
|
+
const { weight, style } = variant;
|
|
48
|
+
const id = [font.name, weight, style === 'normal' ? '' : style]
|
|
49
|
+
.filter(Boolean)
|
|
50
|
+
.join('-');
|
|
51
|
+
return [
|
|
52
|
+
camelCase(id),
|
|
53
|
+
{
|
|
54
|
+
css: () => getFontFace(font.name, variant),
|
|
55
|
+
preload: () => [preload(font.name, variant)],
|
|
56
|
+
inject: () => inject(font.name, variant),
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
}));
|
|
60
|
+
const combined = {
|
|
61
|
+
[camelCase(font.name)]: {
|
|
62
|
+
css: (filter) => filterVariants(font.variants, filter)
|
|
63
|
+
.map((variant) => getFontFace(font.name, variant))
|
|
64
|
+
.join('\n'),
|
|
65
|
+
preload: (filter) => filterVariants(font.variants, filter).map((variant) => preload(font.name, variant)),
|
|
66
|
+
inject: (filter) => filterVariants(font.variants, filter).forEach((variant) => inject(font.name, variant)),
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
return {
|
|
70
|
+
...independent,
|
|
71
|
+
...combined,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export { buildRegisterers };
|
|
76
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sources":["../src/register.ts"],"sourcesContent":["import type { Font, FontVariant, FontRegisterer, FontFilter } from './types';\nexport type { FontRegisterer, FontRegisterers } from './types';\n\nconst camelCase = (str: string) =>\n str\n .replace(/[-_ ]+(\\w)/g, (_, c) => c.toUpperCase())\n .replace(/^./, (match) => match.toLowerCase());\n\nfunction getFontFaceId(name: string, variant: FontVariant) {\n return `__ciq-font-${name}-${variant.weight}-${variant.style}`;\n}\n\nfunction getFontFace(name: string, variant: FontVariant) {\n return `\n @font-face {\n font-family: '${name}';\n font-style: ${variant.style};\n font-weight: ${variant.weight};\n src: url('${variant.file}') format('woff2');\n font-display: swap;\n }\n `;\n}\n\nfunction preload(name: string, variant: FontVariant) {\n return {\n href: variant.file,\n type: 'font/woff2',\n as: 'font',\n crossOrigin: 'anonymous',\n };\n}\n\nfunction inject(name: string, variant: FontVariant) {\n const { id } = variant;\n const tagId = id ?? getFontFaceId(name, variant);\n\n if (document.getElementById(tagId)) return;\n\n const styleEl = document.createElement('style');\n styleEl.id = tagId;\n styleEl.textContent = getFontFace(name, variant);\n document.head.appendChild(styleEl);\n}\n\nconst filterVariants = (variants: FontVariant[], filter?: FontFilter) => {\n if (!filter) return variants;\n return variants.filter((variant) => {\n const matchesWeight =\n !filter.weights || filter.weights.includes(variant.weight);\n const matchesStyle =\n !filter.styles || filter.styles.includes(variant.style);\n return matchesWeight && matchesStyle;\n });\n};\n\nexport function buildRegisterers(font: Font) {\n const independent = Object.fromEntries(\n font.variants.map((variant) => {\n const { weight, style } = variant;\n const id = [font.name, weight, style === 'normal' ? '' : style]\n .filter(Boolean)\n .join('-');\n return [\n camelCase(id),\n {\n css: () => getFontFace(font.name, variant),\n preload: () => [preload(font.name, variant)],\n inject: () => inject(font.name, variant),\n } as FontRegisterer,\n ];\n })\n );\n\n const combined = {\n [camelCase(font.name)]: {\n css: (filter?: FontFilter) =>\n filterVariants(font.variants, filter)\n .map((variant) => getFontFace(font.name, variant))\n .join('\\n'),\n preload: (filter?: FontFilter) =>\n filterVariants(font.variants, filter).map((variant) =>\n preload(font.name, variant)\n ),\n inject: (filter?: FontFilter) =>\n filterVariants(font.variants, filter).forEach((variant) =>\n inject(font.name, variant)\n ),\n } as FontRegisterer,\n };\n\n return {\n ...independent,\n ...combined,\n } as const;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type Font = {
|
|
2
|
+
name: string;
|
|
3
|
+
variants: FontVariant[];
|
|
4
|
+
};
|
|
5
|
+
export type FontVariant = {
|
|
6
|
+
weight: number;
|
|
7
|
+
style: 'normal' | 'italic';
|
|
8
|
+
file: string;
|
|
9
|
+
id?: string;
|
|
10
|
+
};
|
|
11
|
+
export type PreloadLink = {
|
|
12
|
+
href: string;
|
|
13
|
+
type: string;
|
|
14
|
+
as: 'font';
|
|
15
|
+
crossOrigin: 'anonymous';
|
|
16
|
+
};
|
|
17
|
+
export type FontFilter = {
|
|
18
|
+
weights?: number[];
|
|
19
|
+
styles?: FontVariant['style'][];
|
|
20
|
+
};
|
|
21
|
+
export type FontRegisterer = {
|
|
22
|
+
css: (filter?: FontFilter) => string;
|
|
23
|
+
preload: (filter?: FontFilter) => PreloadLink[];
|
|
24
|
+
inject: (filter?: FontFilter) => void;
|
|
25
|
+
};
|
|
26
|
+
export type FontRegisterers = {
|
|
27
|
+
[key: string]: FontRegisterer;
|
|
28
|
+
};
|
package/package.json
CHANGED
|
@@ -1,10 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ctrliq/quantic-fonts",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
"version": "1.60.2",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "git+https://github.com/ctrliq/quantic-design-system.git",
|
|
7
|
+
"directory": "packages/fonts"
|
|
8
|
+
},
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"registry": "https://registry.npmjs.org/",
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"style": "./dist/font.css",
|
|
17
|
+
"import": "./dist/index.js",
|
|
18
|
+
"require": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./assets": "./dist/assets",
|
|
21
|
+
"./assets/*": "./dist/assets/*"
|
|
22
|
+
},
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"type": "module",
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"prebuild": "node ./scripts/generate-barrel.mjs",
|
|
30
|
+
"build": "rollup -c",
|
|
31
|
+
"typecheck": "npm run prebuild && tsc",
|
|
32
|
+
"release": "semantic-release"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
36
|
+
"@rollup/plugin-typescript": "^12.1.2",
|
|
37
|
+
"@rollup/plugin-url": "^8.0.2",
|
|
38
|
+
"rollup": "^4.40.1",
|
|
39
|
+
"typescript": "^5.8.3"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"camelcase": "^8.0.0"
|
|
43
|
+
}
|
|
10
44
|
}
|
package/README.md
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# @ctrliq/quantic-fonts
|
|
2
|
-
|
|
3
|
-
## ⚠️ IMPORTANT NOTICE ⚠️
|
|
4
|
-
|
|
5
|
-
**This package is created solely for the purpose of setting up OIDC (OpenID Connect) trusted publishing with npm.**
|
|
6
|
-
|
|
7
|
-
This is **NOT** a functional package and contains **NO** code or functionality beyond the OIDC setup configuration.
|
|
8
|
-
|
|
9
|
-
## Purpose
|
|
10
|
-
|
|
11
|
-
This package exists to:
|
|
12
|
-
1. Configure OIDC trusted publishing for the package name `@ctrliq/quantic-fonts`
|
|
13
|
-
2. Enable secure, token-less publishing from CI/CD workflows
|
|
14
|
-
3. Establish provenance for packages published under this name
|
|
15
|
-
|
|
16
|
-
## What is OIDC Trusted Publishing?
|
|
17
|
-
|
|
18
|
-
OIDC trusted publishing allows package maintainers to publish packages directly from their CI/CD workflows without needing to manage npm access tokens. Instead, it uses OpenID Connect to establish trust between the CI/CD provider (like GitHub Actions) and npm.
|
|
19
|
-
|
|
20
|
-
## Setup Instructions
|
|
21
|
-
|
|
22
|
-
To properly configure OIDC trusted publishing for this package:
|
|
23
|
-
|
|
24
|
-
1. Go to [npmjs.com](https://www.npmjs.com/) and navigate to your package settings
|
|
25
|
-
2. Configure the trusted publisher (e.g., GitHub Actions)
|
|
26
|
-
3. Specify the repository and workflow that should be allowed to publish
|
|
27
|
-
4. Use the configured workflow to publish your actual package
|
|
28
|
-
|
|
29
|
-
## DO NOT USE THIS PACKAGE
|
|
30
|
-
|
|
31
|
-
This package is a placeholder for OIDC configuration only. It:
|
|
32
|
-
- Contains no executable code
|
|
33
|
-
- Provides no functionality
|
|
34
|
-
- Should not be installed as a dependency
|
|
35
|
-
- Exists only for administrative purposes
|
|
36
|
-
|
|
37
|
-
## More Information
|
|
38
|
-
|
|
39
|
-
For more details about npm's trusted publishing feature, see:
|
|
40
|
-
- [npm Trusted Publishing Documentation](https://docs.npmjs.com/generating-provenance-statements)
|
|
41
|
-
- [GitHub Actions OIDC Documentation](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
**Maintained for OIDC setup purposes only**
|