@udixio/theme 1.0.0-beta.16 → 1.0.0-beta.17
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/plugin/plugin.abstract.d.ts +2 -1
- package/dist/plugin/plugin.service.d.ts +3 -1
- package/dist/plugins/font/font.plugin.d.ts +38 -0
- package/dist/plugins/tailwind/index.d.ts +1 -1
- package/dist/plugins/tailwind/plugins-tailwind/font.d.ts +5 -0
- package/dist/plugins/tailwind/{Tailwind.plugin.d.ts → tailwind.plugin.d.ts} +3 -0
- package/dist/theme.cjs.development.js +236 -12
- package/dist/theme.cjs.development.js.map +1 -1
- package/dist/theme.cjs.production.min.js +1 -1
- package/dist/theme.cjs.production.min.js.map +1 -1
- package/dist/theme.esm.js +236 -12
- package/dist/theme.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/plugin/plugin.abstract.ts +2 -1
- package/src/plugin/plugin.service.ts +23 -5
- package/src/plugins/font/font.plugin.ts +172 -0
- package/src/plugins/tailwind/index.ts +1 -1
- package/src/plugins/tailwind/main.ts +1 -1
- package/src/plugins/tailwind/plugins-tailwind/font.ts +69 -0
- package/src/plugins/tailwind/{Tailwind.plugin.ts → tailwind.plugin.ts} +9 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AppService } from '../app.service';
|
|
2
|
+
import { PluginConstructor } from './plugin.service';
|
|
2
3
|
export declare abstract class PluginAbstract {
|
|
3
|
-
static dependencies:
|
|
4
|
+
static dependencies: PluginConstructor[];
|
|
4
5
|
protected abstract appService: AppService;
|
|
5
6
|
protected abstract options: object;
|
|
6
7
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { PluginAbstract } from './plugin.abstract';
|
|
2
2
|
import { AppService } from '../app.service';
|
|
3
|
-
export type PluginConstructor = new (appService: AppService, options: any) => PluginAbstract
|
|
3
|
+
export type PluginConstructor = (new (appService: AppService, options: any) => PluginAbstract) & {
|
|
4
|
+
dependencies: PluginConstructor[];
|
|
5
|
+
};
|
|
4
6
|
export declare class PluginService {
|
|
5
7
|
private pluginInstances;
|
|
6
8
|
private pluginConstructors;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PluginAbstract } from '../../plugin';
|
|
2
|
+
import { AppService } from '../../app.service';
|
|
3
|
+
export declare enum FontFamily {
|
|
4
|
+
Expressive = "expressive",
|
|
5
|
+
Neutral = "neutral"
|
|
6
|
+
}
|
|
7
|
+
export type FontStyle = {
|
|
8
|
+
fontSize: number;
|
|
9
|
+
lineHeight: number;
|
|
10
|
+
fontWeight: number;
|
|
11
|
+
letterSpacing?: number;
|
|
12
|
+
fontFamily: FontFamily;
|
|
13
|
+
};
|
|
14
|
+
export type FontRole = 'display' | 'headline' | 'title' | 'label' | 'body';
|
|
15
|
+
export type FontSize = 'large' | 'medium' | 'small';
|
|
16
|
+
interface FontPluginOptions {
|
|
17
|
+
fontFamily?: {
|
|
18
|
+
expressive?: string[];
|
|
19
|
+
neutral?: string[];
|
|
20
|
+
};
|
|
21
|
+
fontStyles?: Partial<Record<FontRole, Record<FontSize, Partial<FontStyle>>>>;
|
|
22
|
+
}
|
|
23
|
+
export declare class FontPlugin extends PluginAbstract {
|
|
24
|
+
protected appService: AppService;
|
|
25
|
+
protected options: FontPluginOptions;
|
|
26
|
+
private readonly fontFamily;
|
|
27
|
+
private readonly fontStyles;
|
|
28
|
+
constructor(appService: AppService, options: FontPluginOptions);
|
|
29
|
+
static config(options: FontPluginOptions): FontPluginOptions;
|
|
30
|
+
getFonts(): {
|
|
31
|
+
fontStyles: Record<FontRole, Record<FontSize, FontStyle>>;
|
|
32
|
+
fontFamily: {
|
|
33
|
+
expressive: string[];
|
|
34
|
+
neutral: string[];
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { FontRole, FontSize, FontStyle } from '../../font/font.plugin';
|
|
2
|
+
export declare const font: (fontStyles: Record<FontRole, Record<FontSize, FontStyle>>, responsiveBreakPoints: Record<string, number>) => {
|
|
3
|
+
handler: import("tailwindcss/types/config").PluginCreator;
|
|
4
|
+
config?: Partial<import("tailwindcss/types/config").Config>;
|
|
5
|
+
};
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { PluginAbstract } from '../../plugin/plugin.abstract';
|
|
2
2
|
import { AppService } from '../../app.service';
|
|
3
3
|
import { Theme } from './main';
|
|
4
|
+
import { FontPlugin } from '../font/font.plugin';
|
|
4
5
|
interface TailwindPluginOptions {
|
|
5
6
|
darkMode: 'class' | 'media';
|
|
7
|
+
responsiveBreakPoints: Record<string, number>;
|
|
6
8
|
}
|
|
7
9
|
export declare class TailwindPlugin extends PluginAbstract {
|
|
8
10
|
protected appService: AppService;
|
|
9
11
|
protected options: TailwindPluginOptions;
|
|
12
|
+
static dependencies: (typeof FontPlugin)[];
|
|
10
13
|
constructor(appService: AppService, options: TailwindPluginOptions);
|
|
11
14
|
static config(options: TailwindPluginOptions): TailwindPluginOptions;
|
|
12
15
|
getTheme(): Theme;
|
|
@@ -1592,11 +1592,23 @@ var PluginService = /*#__PURE__*/function () {
|
|
|
1592
1592
|
};
|
|
1593
1593
|
_proto.loadPlugins = function loadPlugins(appService) {
|
|
1594
1594
|
var _this = this;
|
|
1595
|
-
this.pluginConstructors
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1595
|
+
var plugins = new Map(this.pluginConstructors);
|
|
1596
|
+
var size = 0;
|
|
1597
|
+
do {
|
|
1598
|
+
size = plugins.size;
|
|
1599
|
+
plugins.forEach(function (_ref, key) {
|
|
1600
|
+
var plugin = _ref[0],
|
|
1601
|
+
option = _ref[1];
|
|
1602
|
+
var deps = plugin.dependencies.filter(function (dep) {
|
|
1603
|
+
return !_this.pluginInstances.has(dep.name);
|
|
1604
|
+
});
|
|
1605
|
+
if (deps.length === 0) {
|
|
1606
|
+
_this.pluginInstances.set(plugin.name, new plugin(appService, option));
|
|
1607
|
+
plugins["delete"](key);
|
|
1608
|
+
}
|
|
1609
|
+
});
|
|
1610
|
+
} while (plugins.size != 0 && plugins.size < size);
|
|
1611
|
+
if (plugins.size > 0) console.log("Some plugins couldn't be loaded due to missing dependencies: ", Array.from(plugins.keys()));
|
|
1600
1612
|
};
|
|
1601
1613
|
_proto.getPlugin = function getPlugin(plugin) {
|
|
1602
1614
|
var pluginInstance = this.pluginInstances.get(plugin.name);
|
|
@@ -1636,7 +1648,7 @@ function bootstrapFromConfig(path) {
|
|
|
1636
1648
|
}
|
|
1637
1649
|
|
|
1638
1650
|
var PluginAbstract = function PluginAbstract() {};
|
|
1639
|
-
PluginAbstract.dependencies =
|
|
1651
|
+
PluginAbstract.dependencies = [];
|
|
1640
1652
|
|
|
1641
1653
|
var state = function state(colorkeys) {
|
|
1642
1654
|
return plugin(function (pluginArgs) {
|
|
@@ -1722,6 +1734,218 @@ var themer = function themer(colors, darkMode) {
|
|
|
1722
1734
|
return require('tailwindcss-themer')(options);
|
|
1723
1735
|
};
|
|
1724
1736
|
|
|
1737
|
+
var FontFamily;
|
|
1738
|
+
(function (FontFamily) {
|
|
1739
|
+
FontFamily["Expressive"] = "expressive";
|
|
1740
|
+
FontFamily["Neutral"] = "neutral";
|
|
1741
|
+
})(FontFamily || (FontFamily = {}));
|
|
1742
|
+
var FontPlugin = /*#__PURE__*/function (_PluginAbstract) {
|
|
1743
|
+
function FontPlugin(appService, options) {
|
|
1744
|
+
var _options$fontFamily$e, _options$fontFamily, _options$fontFamily$n, _options$fontFamily2;
|
|
1745
|
+
var _this;
|
|
1746
|
+
_this = _PluginAbstract.call(this) || this;
|
|
1747
|
+
_this.appService = void 0;
|
|
1748
|
+
_this.options = void 0;
|
|
1749
|
+
_this.fontFamily = void 0;
|
|
1750
|
+
_this.fontStyles = void 0;
|
|
1751
|
+
_this.appService = appService;
|
|
1752
|
+
_this.options = options;
|
|
1753
|
+
_this.fontFamily = {
|
|
1754
|
+
expressive: (_options$fontFamily$e = options == null || (_options$fontFamily = options.fontFamily) == null ? void 0 : _options$fontFamily.expressive) != null ? _options$fontFamily$e : ['Roboto', 'sans-serif'],
|
|
1755
|
+
neutral: (_options$fontFamily$n = options == null || (_options$fontFamily2 = options.fontFamily) == null ? void 0 : _options$fontFamily2.neutral) != null ? _options$fontFamily$n : ['Roboto', 'sans-serif']
|
|
1756
|
+
};
|
|
1757
|
+
_this.fontStyles = {
|
|
1758
|
+
display: {
|
|
1759
|
+
large: {
|
|
1760
|
+
fontWeight: 400,
|
|
1761
|
+
fontSize: 3.5625,
|
|
1762
|
+
lineHeight: 4,
|
|
1763
|
+
letterSpacing: -0.015625,
|
|
1764
|
+
fontFamily: FontFamily.Expressive
|
|
1765
|
+
},
|
|
1766
|
+
medium: {
|
|
1767
|
+
fontWeight: 400,
|
|
1768
|
+
fontSize: 2.8125,
|
|
1769
|
+
lineHeight: 3.25,
|
|
1770
|
+
fontFamily: FontFamily.Expressive
|
|
1771
|
+
},
|
|
1772
|
+
small: {
|
|
1773
|
+
fontWeight: 400,
|
|
1774
|
+
fontSize: 2.25,
|
|
1775
|
+
lineHeight: 2.75,
|
|
1776
|
+
fontFamily: FontFamily.Expressive
|
|
1777
|
+
}
|
|
1778
|
+
},
|
|
1779
|
+
headline: {
|
|
1780
|
+
large: {
|
|
1781
|
+
fontWeight: 400,
|
|
1782
|
+
fontSize: 2,
|
|
1783
|
+
lineHeight: 2.5,
|
|
1784
|
+
fontFamily: FontFamily.Expressive
|
|
1785
|
+
},
|
|
1786
|
+
medium: {
|
|
1787
|
+
fontWeight: 400,
|
|
1788
|
+
fontSize: 1.75,
|
|
1789
|
+
lineHeight: 2.25,
|
|
1790
|
+
fontFamily: FontFamily.Expressive
|
|
1791
|
+
},
|
|
1792
|
+
small: {
|
|
1793
|
+
fontWeight: 400,
|
|
1794
|
+
fontSize: 1.5,
|
|
1795
|
+
lineHeight: 2,
|
|
1796
|
+
fontFamily: FontFamily.Expressive
|
|
1797
|
+
}
|
|
1798
|
+
},
|
|
1799
|
+
title: {
|
|
1800
|
+
large: {
|
|
1801
|
+
fontWeight: 400,
|
|
1802
|
+
fontSize: 1.375,
|
|
1803
|
+
lineHeight: 1.75,
|
|
1804
|
+
fontFamily: FontFamily.Neutral
|
|
1805
|
+
},
|
|
1806
|
+
medium: {
|
|
1807
|
+
fontWeight: 500,
|
|
1808
|
+
fontSize: 1,
|
|
1809
|
+
lineHeight: 1.5,
|
|
1810
|
+
fontFamily: FontFamily.Neutral,
|
|
1811
|
+
letterSpacing: 0.009375
|
|
1812
|
+
},
|
|
1813
|
+
small: {
|
|
1814
|
+
fontWeight: 500,
|
|
1815
|
+
fontSize: 0.875,
|
|
1816
|
+
lineHeight: 1.25,
|
|
1817
|
+
fontFamily: FontFamily.Neutral,
|
|
1818
|
+
letterSpacing: 0.00625
|
|
1819
|
+
}
|
|
1820
|
+
},
|
|
1821
|
+
label: {
|
|
1822
|
+
large: {
|
|
1823
|
+
fontWeight: 500,
|
|
1824
|
+
fontSize: 0.875,
|
|
1825
|
+
lineHeight: 1.25,
|
|
1826
|
+
fontFamily: FontFamily.Neutral,
|
|
1827
|
+
letterSpacing: 0.00625
|
|
1828
|
+
},
|
|
1829
|
+
medium: {
|
|
1830
|
+
fontWeight: 500,
|
|
1831
|
+
fontSize: 0.75,
|
|
1832
|
+
lineHeight: 1,
|
|
1833
|
+
fontFamily: FontFamily.Neutral,
|
|
1834
|
+
letterSpacing: 0.03125
|
|
1835
|
+
},
|
|
1836
|
+
small: {
|
|
1837
|
+
fontWeight: 500,
|
|
1838
|
+
fontSize: 0.6875,
|
|
1839
|
+
lineHeight: 1,
|
|
1840
|
+
fontFamily: FontFamily.Neutral,
|
|
1841
|
+
letterSpacing: 0.03125
|
|
1842
|
+
}
|
|
1843
|
+
},
|
|
1844
|
+
body: {
|
|
1845
|
+
large: {
|
|
1846
|
+
fontWeight: 400,
|
|
1847
|
+
fontSize: 1,
|
|
1848
|
+
lineHeight: 1.5625,
|
|
1849
|
+
fontFamily: FontFamily.Neutral,
|
|
1850
|
+
letterSpacing: 0.03125
|
|
1851
|
+
},
|
|
1852
|
+
medium: {
|
|
1853
|
+
fontWeight: 400,
|
|
1854
|
+
fontSize: 0.875,
|
|
1855
|
+
lineHeight: 1.25,
|
|
1856
|
+
fontFamily: FontFamily.Neutral,
|
|
1857
|
+
letterSpacing: 0.015625
|
|
1858
|
+
},
|
|
1859
|
+
small: {
|
|
1860
|
+
fontWeight: 400,
|
|
1861
|
+
fontSize: 0.75,
|
|
1862
|
+
lineHeight: 1,
|
|
1863
|
+
fontFamily: FontFamily.Neutral,
|
|
1864
|
+
letterSpacing: 0.025
|
|
1865
|
+
}
|
|
1866
|
+
}
|
|
1867
|
+
};
|
|
1868
|
+
if (options && options.fontStyles) Object.entries(options.fontStyles).forEach(function (_ref) {
|
|
1869
|
+
var key = _ref[0],
|
|
1870
|
+
fontParam = _ref[1];
|
|
1871
|
+
var fontRole = key;
|
|
1872
|
+
Object.entries(fontParam).forEach(function (_ref2) {
|
|
1873
|
+
var size = _ref2[0],
|
|
1874
|
+
fontStyle = _ref2[1];
|
|
1875
|
+
var fontSize = size;
|
|
1876
|
+
if (fontStyle) {
|
|
1877
|
+
_this.fontStyles[fontRole][fontSize] = _extends({}, _this.fontStyles[fontRole][fontSize], fontStyle);
|
|
1878
|
+
}
|
|
1879
|
+
});
|
|
1880
|
+
});
|
|
1881
|
+
return _this;
|
|
1882
|
+
}
|
|
1883
|
+
_inheritsLoose(FontPlugin, _PluginAbstract);
|
|
1884
|
+
FontPlugin.config = function config(options) {
|
|
1885
|
+
return options;
|
|
1886
|
+
};
|
|
1887
|
+
var _proto = FontPlugin.prototype;
|
|
1888
|
+
_proto.getFonts = function getFonts() {
|
|
1889
|
+
return {
|
|
1890
|
+
fontStyles: this.fontStyles,
|
|
1891
|
+
fontFamily: this.fontFamily
|
|
1892
|
+
};
|
|
1893
|
+
};
|
|
1894
|
+
return FontPlugin;
|
|
1895
|
+
}(PluginAbstract);
|
|
1896
|
+
|
|
1897
|
+
var font = function font(fontStyles, responsiveBreakPoints) {
|
|
1898
|
+
var createUtilities = function createUtilities(_ref) {
|
|
1899
|
+
var theme = _ref.theme;
|
|
1900
|
+
var pixelUnit = 'rem';
|
|
1901
|
+
var newUtilities = {};
|
|
1902
|
+
var baseTextStyle = function baseTextStyle(sizeValue) {
|
|
1903
|
+
return {
|
|
1904
|
+
fontSize: sizeValue.fontSize + pixelUnit,
|
|
1905
|
+
fontWeight: sizeValue.fontWeight,
|
|
1906
|
+
lineHeight: sizeValue.lineHeight + pixelUnit,
|
|
1907
|
+
letterSpacing: sizeValue.letterSpacing ? sizeValue.letterSpacing + pixelUnit : null,
|
|
1908
|
+
fontFamily: theme('fontFamily.' + sizeValue.fontFamily)
|
|
1909
|
+
};
|
|
1910
|
+
};
|
|
1911
|
+
var responsiveTextStyle = function responsiveTextStyle(sizeValue, breakPointName, breakPointRatio) {
|
|
1912
|
+
var _ref2;
|
|
1913
|
+
return _ref2 = {}, _ref2["@media (min-width: " + theme('screens.' + breakPointName, {}) + ")"] = {
|
|
1914
|
+
fontSize: sizeValue.fontSize * breakPointRatio + pixelUnit,
|
|
1915
|
+
lineHeight: sizeValue.lineHeight * breakPointRatio + pixelUnit
|
|
1916
|
+
}, _ref2;
|
|
1917
|
+
};
|
|
1918
|
+
for (var _i = 0, _Object$entries = Object.entries(fontStyles); _i < _Object$entries.length; _i++) {
|
|
1919
|
+
var _Object$entries$_i = _Object$entries[_i],
|
|
1920
|
+
roleName = _Object$entries$_i[0],
|
|
1921
|
+
roleValue = _Object$entries$_i[1];
|
|
1922
|
+
var _loop = function _loop() {
|
|
1923
|
+
var _Object$entries2$_i = _Object$entries2[_i2],
|
|
1924
|
+
sizeName = _Object$entries2$_i[0],
|
|
1925
|
+
sizeValue = _Object$entries2$_i[1];
|
|
1926
|
+
newUtilities['.text-' + roleName + '-' + sizeName] = _extends({}, baseTextStyle(sizeValue), Object.entries(responsiveBreakPoints).reduce(function (acc, _ref3) {
|
|
1927
|
+
var breakPointName = _ref3[0],
|
|
1928
|
+
breakPointRatio = _ref3[1];
|
|
1929
|
+
acc = _extends({}, acc, responsiveTextStyle(sizeValue, breakPointName, breakPointRatio));
|
|
1930
|
+
return acc;
|
|
1931
|
+
}, {}));
|
|
1932
|
+
};
|
|
1933
|
+
for (var _i2 = 0, _Object$entries2 = Object.entries(roleValue); _i2 < _Object$entries2.length; _i2++) {
|
|
1934
|
+
_loop();
|
|
1935
|
+
}
|
|
1936
|
+
}
|
|
1937
|
+
return newUtilities;
|
|
1938
|
+
};
|
|
1939
|
+
return plugin(function (_ref4) {
|
|
1940
|
+
var addUtilities = _ref4.addUtilities,
|
|
1941
|
+
theme = _ref4.theme;
|
|
1942
|
+
var newUtilities = createUtilities({
|
|
1943
|
+
theme: theme
|
|
1944
|
+
});
|
|
1945
|
+
addUtilities(newUtilities);
|
|
1946
|
+
});
|
|
1947
|
+
};
|
|
1948
|
+
|
|
1725
1949
|
var TailwindPlugin = /*#__PURE__*/function (_PluginAbstract) {
|
|
1726
1950
|
function TailwindPlugin(appService, options) {
|
|
1727
1951
|
var _this;
|
|
@@ -1757,18 +1981,18 @@ var TailwindPlugin = /*#__PURE__*/function (_PluginAbstract) {
|
|
|
1757
1981
|
colors[newKey][isDark ? 'dark' : 'light'] = value.getHex();
|
|
1758
1982
|
}
|
|
1759
1983
|
}
|
|
1760
|
-
|
|
1984
|
+
var _this$appService$plug = this.appService.pluginService.getPlugin(FontPlugin).getFonts(),
|
|
1985
|
+
fontStyles = _this$appService$plug.fontStyles,
|
|
1986
|
+
fontFamily = _this$appService$plug.fontFamily;
|
|
1761
1987
|
return {
|
|
1762
1988
|
colors: {},
|
|
1763
|
-
fontFamily:
|
|
1764
|
-
|
|
1765
|
-
neutral: []
|
|
1766
|
-
},
|
|
1767
|
-
plugins: [state(Object.keys(colors)), themer(colors, this.options.darkMode)]
|
|
1989
|
+
fontFamily: fontFamily,
|
|
1990
|
+
plugins: [state(Object.keys(colors)), themer(colors, this.options.darkMode), font(fontStyles, this.options.responsiveBreakPoints)]
|
|
1768
1991
|
};
|
|
1769
1992
|
};
|
|
1770
1993
|
return TailwindPlugin;
|
|
1771
1994
|
}(PluginAbstract);
|
|
1995
|
+
TailwindPlugin.dependencies = [FontPlugin];
|
|
1772
1996
|
|
|
1773
1997
|
var createTheme = function createTheme() {
|
|
1774
1998
|
var app = bootstrapFromConfig();
|