@webstudio-is/css-engine 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/lib/cjs/core/create-css-engine.cjs +27 -0
  2. package/lib/cjs/core/css-engine.cjs +134 -0
  3. package/lib/cjs/core/index.cjs +27 -0
  4. package/lib/cjs/core/rules.cjs +168 -0
  5. package/lib/cjs/core/style-element.cjs +69 -0
  6. package/lib/cjs/core/style-sheet.cjs +57 -0
  7. package/lib/cjs/core/to-value.cjs +55 -0
  8. package/lib/cjs/index.cjs +18 -0
  9. package/lib/core/create-css-engine.js +5 -2
  10. package/lib/core/css-engine.js +107 -85
  11. package/lib/core/index.js +4 -1
  12. package/lib/core/rules.js +125 -95
  13. package/lib/core/style-element.js +43 -33
  14. package/lib/core/style-sheet.js +33 -22
  15. package/lib/core/to-value.js +28 -24
  16. package/package.json +7 -14
  17. package/src/core/create-css-engine.ts +5 -0
  18. package/src/core/css-engine.stories.tsx +48 -0
  19. package/src/core/css-engine.test.ts +206 -0
  20. package/src/core/css-engine.ts +98 -0
  21. package/src/core/index.ts +10 -0
  22. package/src/core/rules.ts +132 -0
  23. package/src/core/style-element.ts +24 -0
  24. package/src/core/style-sheet.ts +15 -0
  25. package/src/core/to-value.test.ts +66 -0
  26. package/src/core/to-value.ts +43 -0
  27. package/src/index.ts +1 -0
  28. package/lib/core/create-css-engine.d.ts +0 -3
  29. package/lib/core/create-css-engine.d.ts.map +0 -1
  30. package/lib/core/css-engine.d.ts +0 -15
  31. package/lib/core/css-engine.d.ts.map +0 -1
  32. package/lib/core/css-engine.stories.d.ts +0 -7
  33. package/lib/core/css-engine.stories.d.ts.map +0 -1
  34. package/lib/core/css-engine.stories.js +0 -31
  35. package/lib/core/css-engine.test.d.ts +0 -2
  36. package/lib/core/css-engine.test.d.ts.map +0 -1
  37. package/lib/core/css-engine.test.js +0 -182
  38. package/lib/core/index.d.ts +0 -5
  39. package/lib/core/index.d.ts.map +0 -1
  40. package/lib/core/rules.d.ts +0 -48
  41. package/lib/core/rules.d.ts.map +0 -1
  42. package/lib/core/style-element.d.ts +0 -8
  43. package/lib/core/style-element.d.ts.map +0 -1
  44. package/lib/core/style-sheet.d.ts +0 -7
  45. package/lib/core/style-sheet.d.ts.map +0 -1
  46. package/lib/core/to-value.d.ts +0 -7
  47. package/lib/core/to-value.d.ts.map +0 -1
  48. package/lib/core/to-value.test.d.ts +0 -2
  49. package/lib/core/to-value.test.d.ts.map +0 -1
  50. package/lib/core/to-value.test.js +0 -55
  51. package/lib/index.d.ts +0 -2
  52. package/lib/index.d.ts.map +0 -1
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var create_css_engine_exports = {};
20
+ __export(create_css_engine_exports, {
21
+ createCssEngine: () => createCssEngine
22
+ });
23
+ module.exports = __toCommonJS(create_css_engine_exports);
24
+ var import_css_engine = require("./css-engine");
25
+ const createCssEngine = () => {
26
+ return new import_css_engine.CssEngine();
27
+ };
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var __accessCheck = (obj, member, msg) => {
20
+ if (!member.has(obj))
21
+ throw TypeError("Cannot " + msg);
22
+ };
23
+ var __privateGet = (obj, member, getter) => {
24
+ __accessCheck(obj, member, "read from private field");
25
+ return getter ? getter.call(obj) : member.get(obj);
26
+ };
27
+ var __privateAdd = (obj, member, value) => {
28
+ if (member.has(obj))
29
+ throw TypeError("Cannot add the same private member more than once");
30
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
31
+ };
32
+ var __privateSet = (obj, member, value, setter) => {
33
+ __accessCheck(obj, member, "write to private field");
34
+ setter ? setter.call(obj, value) : member.set(obj, value);
35
+ return value;
36
+ };
37
+ var css_engine_exports = {};
38
+ __export(css_engine_exports, {
39
+ CssEngine: () => CssEngine
40
+ });
41
+ module.exports = __toCommonJS(css_engine_exports);
42
+ var import_rules = require("./rules");
43
+ var import_style_element = require("./style-element");
44
+ var import_style_sheet = require("./style-sheet");
45
+ var _element, _mediaRules, _plainRules, _fontFaceRules, _sheet, _isDirty, _cssText, _onChangeRule;
46
+ const defaultMediaRuleId = "__default-media-rule__";
47
+ class CssEngine {
48
+ constructor() {
49
+ __privateAdd(this, _element, void 0);
50
+ __privateAdd(this, _mediaRules, /* @__PURE__ */ new Map());
51
+ __privateAdd(this, _plainRules, /* @__PURE__ */ new Map());
52
+ __privateAdd(this, _fontFaceRules, []);
53
+ __privateAdd(this, _sheet, void 0);
54
+ __privateAdd(this, _isDirty, false);
55
+ __privateAdd(this, _cssText, "");
56
+ __privateAdd(this, _onChangeRule, () => {
57
+ __privateSet(this, _isDirty, true);
58
+ });
59
+ __privateSet(this, _element, new import_style_element.StyleElement());
60
+ __privateSet(this, _sheet, new import_style_sheet.StyleSheet(__privateGet(this, _element)));
61
+ }
62
+ addMediaRule(id, options) {
63
+ let mediaRule = __privateGet(this, _mediaRules).get(id);
64
+ if (mediaRule === void 0) {
65
+ mediaRule = new import_rules.MediaRule(options);
66
+ __privateGet(this, _mediaRules).set(id, mediaRule);
67
+ __privateSet(this, _isDirty, true);
68
+ }
69
+ return mediaRule;
70
+ }
71
+ addStyleRule(selectorText, rule) {
72
+ const mediaRule = this.addMediaRule(rule.breakpoint || defaultMediaRuleId);
73
+ __privateSet(this, _isDirty, true);
74
+ const styleRule = new import_rules.StyleRule(selectorText, rule.style);
75
+ styleRule.onChange = __privateGet(this, _onChangeRule);
76
+ if (mediaRule === void 0) {
77
+ throw new Error("No media rule found");
78
+ }
79
+ mediaRule.insertRule(styleRule);
80
+ return styleRule;
81
+ }
82
+ addPlaintextRule(cssText) {
83
+ const rule = __privateGet(this, _plainRules).get(cssText);
84
+ if (rule !== void 0) {
85
+ return rule;
86
+ }
87
+ __privateSet(this, _isDirty, true);
88
+ return __privateGet(this, _plainRules).set(cssText, new import_rules.PlaintextRule(cssText));
89
+ }
90
+ addFontFaceRule(options) {
91
+ __privateSet(this, _isDirty, true);
92
+ return __privateGet(this, _fontFaceRules).push(new import_rules.FontFaceRule(options));
93
+ }
94
+ clear() {
95
+ __privateGet(this, _mediaRules).clear();
96
+ __privateGet(this, _plainRules).clear();
97
+ __privateSet(this, _fontFaceRules, []);
98
+ __privateSet(this, _isDirty, true);
99
+ }
100
+ render() {
101
+ __privateGet(this, _element).mount();
102
+ __privateGet(this, _sheet).replaceSync(this.cssText);
103
+ }
104
+ unmount() {
105
+ __privateGet(this, _element).unmount();
106
+ }
107
+ get cssText() {
108
+ if (__privateGet(this, _isDirty) === false) {
109
+ return __privateGet(this, _cssText);
110
+ }
111
+ __privateSet(this, _isDirty, false);
112
+ const css = [];
113
+ css.push(...__privateGet(this, _fontFaceRules).map((rule) => rule.cssText));
114
+ for (const plaintextRule of __privateGet(this, _plainRules).values()) {
115
+ css.push(plaintextRule.cssText);
116
+ }
117
+ for (const mediaRule of __privateGet(this, _mediaRules).values()) {
118
+ const { cssText } = mediaRule;
119
+ if (cssText !== "") {
120
+ css.push(cssText);
121
+ }
122
+ }
123
+ __privateSet(this, _cssText, css.join("\n"));
124
+ return __privateGet(this, _cssText);
125
+ }
126
+ }
127
+ _element = new WeakMap();
128
+ _mediaRules = new WeakMap();
129
+ _plainRules = new WeakMap();
130
+ _fontFaceRules = new WeakMap();
131
+ _sheet = new WeakMap();
132
+ _isDirty = new WeakMap();
133
+ _cssText = new WeakMap();
134
+ _onChangeRule = new WeakMap();
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var core_exports = {};
21
+ __export(core_exports, {
22
+ CssEngine: () => import_css_engine.CssEngine
23
+ });
24
+ module.exports = __toCommonJS(core_exports);
25
+ var import_css_engine = require("./css-engine");
26
+ __reExport(core_exports, require("./create-css-engine"), module.exports);
27
+ __reExport(core_exports, require("./to-value"), module.exports);
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var __accessCheck = (obj, member, msg) => {
26
+ if (!member.has(obj))
27
+ throw TypeError("Cannot " + msg);
28
+ };
29
+ var __privateGet = (obj, member, getter) => {
30
+ __accessCheck(obj, member, "read from private field");
31
+ return getter ? getter.call(obj) : member.get(obj);
32
+ };
33
+ var __privateAdd = (obj, member, value) => {
34
+ if (member.has(obj))
35
+ throw TypeError("Cannot add the same private member more than once");
36
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
37
+ };
38
+ var __privateSet = (obj, member, value, setter) => {
39
+ __accessCheck(obj, member, "write to private field");
40
+ setter ? setter.call(obj, value) : member.set(obj, value);
41
+ return value;
42
+ };
43
+ var rules_exports = {};
44
+ __export(rules_exports, {
45
+ FontFaceRule: () => FontFaceRule,
46
+ MediaRule: () => MediaRule,
47
+ PlaintextRule: () => PlaintextRule,
48
+ StyleRule: () => StyleRule
49
+ });
50
+ module.exports = __toCommonJS(rules_exports);
51
+ var import_hyphenate_style_name = __toESM(require("hyphenate-style-name"), 1);
52
+ var import_to_value = require("./to-value");
53
+ var _styleMap, _isDirty, _string, _onChange, _options, _mediaType, _options2;
54
+ class StylePropertyMap {
55
+ constructor() {
56
+ __privateAdd(this, _styleMap, /* @__PURE__ */ new Map());
57
+ __privateAdd(this, _isDirty, false);
58
+ __privateAdd(this, _string, "");
59
+ }
60
+ set(property, value) {
61
+ __privateGet(this, _styleMap).set(property, value);
62
+ __privateSet(this, _isDirty, true);
63
+ this.onChange?.();
64
+ }
65
+ has(property) {
66
+ return __privateGet(this, _styleMap).has(property);
67
+ }
68
+ clear() {
69
+ __privateGet(this, _styleMap).clear();
70
+ __privateSet(this, _isDirty, true);
71
+ this.onChange?.();
72
+ }
73
+ toString() {
74
+ if (__privateGet(this, _isDirty) === false) {
75
+ return __privateGet(this, _string);
76
+ }
77
+ const block = [];
78
+ for (const [property, value] of __privateGet(this, _styleMap)) {
79
+ if (value === void 0) {
80
+ continue;
81
+ }
82
+ block.push(`${(0, import_hyphenate_style_name.default)(property)}: ${(0, import_to_value.toValue)(value)}`);
83
+ }
84
+ __privateSet(this, _string, block.join("; "));
85
+ __privateSet(this, _isDirty, false);
86
+ return __privateGet(this, _string);
87
+ }
88
+ }
89
+ _styleMap = new WeakMap();
90
+ _isDirty = new WeakMap();
91
+ _string = new WeakMap();
92
+ class StyleRule {
93
+ constructor(selectorText, style) {
94
+ __privateAdd(this, _onChange, () => {
95
+ this.onChange?.();
96
+ });
97
+ this.styleMap = new StylePropertyMap();
98
+ this.selectorText = selectorText;
99
+ let property;
100
+ for (property in style) {
101
+ this.styleMap.set(property, style[property]);
102
+ }
103
+ this.styleMap.onChange = __privateGet(this, _onChange);
104
+ }
105
+ get cssText() {
106
+ return `${this.selectorText} { ${this.styleMap} }`;
107
+ }
108
+ }
109
+ _onChange = new WeakMap();
110
+ class MediaRule {
111
+ constructor(options = {}) {
112
+ __privateAdd(this, _options, void 0);
113
+ this.rules = [];
114
+ __privateAdd(this, _mediaType, void 0);
115
+ __privateSet(this, _options, options);
116
+ __privateSet(this, _mediaType, options.mediaType ?? "all");
117
+ }
118
+ insertRule(rule) {
119
+ this.rules.push(rule);
120
+ return rule;
121
+ }
122
+ get cssText() {
123
+ if (this.rules.length === 0) {
124
+ return "";
125
+ }
126
+ const rules = [];
127
+ for (const rule of this.rules) {
128
+ rules.push(` ${rule.cssText}`);
129
+ }
130
+ let conditionText = "";
131
+ const { minWidth, maxWidth } = __privateGet(this, _options);
132
+ if (minWidth !== void 0) {
133
+ conditionText = `min-width: ${minWidth}px`;
134
+ }
135
+ if (maxWidth !== void 0) {
136
+ conditionText = `max-width: ${maxWidth}px`;
137
+ }
138
+ if (conditionText) {
139
+ conditionText = `and (${conditionText}) `;
140
+ }
141
+ return `@media ${__privateGet(this, _mediaType)} ${conditionText}{
142
+ ${rules.join(
143
+ "\n"
144
+ )}
145
+ }`;
146
+ }
147
+ }
148
+ _options = new WeakMap();
149
+ _mediaType = new WeakMap();
150
+ class PlaintextRule {
151
+ constructor(cssText) {
152
+ this.styleMap = new StylePropertyMap();
153
+ this.cssText = cssText;
154
+ }
155
+ }
156
+ class FontFaceRule {
157
+ constructor(options) {
158
+ __privateAdd(this, _options2, void 0);
159
+ __privateSet(this, _options2, options);
160
+ }
161
+ get cssText() {
162
+ const { fontFamily, fontStyle, fontWeight, fontDisplay, src } = __privateGet(this, _options2);
163
+ return `@font-face {
164
+ font-family: ${fontFamily}; font-style: ${fontStyle}; font-weight: ${fontWeight}; font-display: ${fontDisplay}; src: ${src};
165
+ }`;
166
+ }
167
+ }
168
+ _options2 = new WeakMap();
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var __accessCheck = (obj, member, msg) => {
20
+ if (!member.has(obj))
21
+ throw TypeError("Cannot " + msg);
22
+ };
23
+ var __privateGet = (obj, member, getter) => {
24
+ __accessCheck(obj, member, "read from private field");
25
+ return getter ? getter.call(obj) : member.get(obj);
26
+ };
27
+ var __privateAdd = (obj, member, value) => {
28
+ if (member.has(obj))
29
+ throw TypeError("Cannot add the same private member more than once");
30
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
31
+ };
32
+ var __privateSet = (obj, member, value, setter) => {
33
+ __accessCheck(obj, member, "write to private field");
34
+ setter ? setter.call(obj, value) : member.set(obj, value);
35
+ return value;
36
+ };
37
+ var style_element_exports = {};
38
+ __export(style_element_exports, {
39
+ StyleElement: () => StyleElement
40
+ });
41
+ module.exports = __toCommonJS(style_element_exports);
42
+ var _element;
43
+ class StyleElement {
44
+ constructor() {
45
+ __privateAdd(this, _element, void 0);
46
+ }
47
+ get isMounted() {
48
+ return __privateGet(this, _element)?.parentElement != null;
49
+ }
50
+ mount() {
51
+ if (this.isMounted === false) {
52
+ __privateSet(this, _element, document.createElement("style"));
53
+ __privateGet(this, _element).setAttribute("data-webstudio", "");
54
+ document.head.appendChild(__privateGet(this, _element));
55
+ }
56
+ }
57
+ unmount() {
58
+ if (this.isMounted) {
59
+ __privateGet(this, _element)?.parentElement?.removeChild(__privateGet(this, _element));
60
+ __privateSet(this, _element, void 0);
61
+ }
62
+ }
63
+ render(cssText) {
64
+ if (__privateGet(this, _element)) {
65
+ __privateGet(this, _element).textContent = cssText;
66
+ }
67
+ }
68
+ }
69
+ _element = new WeakMap();
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var __accessCheck = (obj, member, msg) => {
20
+ if (!member.has(obj))
21
+ throw TypeError("Cannot " + msg);
22
+ };
23
+ var __privateGet = (obj, member, getter) => {
24
+ __accessCheck(obj, member, "read from private field");
25
+ return getter ? getter.call(obj) : member.get(obj);
26
+ };
27
+ var __privateAdd = (obj, member, value) => {
28
+ if (member.has(obj))
29
+ throw TypeError("Cannot add the same private member more than once");
30
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
31
+ };
32
+ var __privateSet = (obj, member, value, setter) => {
33
+ __accessCheck(obj, member, "write to private field");
34
+ setter ? setter.call(obj, value) : member.set(obj, value);
35
+ return value;
36
+ };
37
+ var style_sheet_exports = {};
38
+ __export(style_sheet_exports, {
39
+ StyleSheet: () => StyleSheet
40
+ });
41
+ module.exports = __toCommonJS(style_sheet_exports);
42
+ var _cssText, _element;
43
+ class StyleSheet {
44
+ constructor(element) {
45
+ __privateAdd(this, _cssText, "");
46
+ __privateAdd(this, _element, void 0);
47
+ __privateSet(this, _element, element);
48
+ }
49
+ replaceSync(cssText) {
50
+ if (cssText !== __privateGet(this, _cssText)) {
51
+ __privateSet(this, _cssText, cssText);
52
+ __privateGet(this, _element).render(cssText);
53
+ }
54
+ }
55
+ }
56
+ _cssText = new WeakMap();
57
+ _element = new WeakMap();
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var to_value_exports = {};
20
+ __export(to_value_exports, {
21
+ toValue: () => toValue
22
+ });
23
+ module.exports = __toCommonJS(to_value_exports);
24
+ var import_fonts = require("@webstudio-is/fonts");
25
+ const defaultOptions = {
26
+ withFallback: true
27
+ };
28
+ const toValue = (value, options = defaultOptions) => {
29
+ if (value === void 0) {
30
+ return "";
31
+ }
32
+ if (value.type === "unit") {
33
+ return value.value + (value.unit === "number" ? "" : value.unit);
34
+ }
35
+ if (value.type === "fontFamily") {
36
+ if (options.withFallback === false) {
37
+ return value.value[0];
38
+ }
39
+ const family = value.value[0];
40
+ const fallbacks = import_fonts.SYSTEM_FONTS.get(family);
41
+ if (Array.isArray(fallbacks)) {
42
+ return [...value.value, ...fallbacks].join(", ");
43
+ }
44
+ return [...value.value, import_fonts.DEFAULT_FONT_FALLBACK].join(", ");
45
+ }
46
+ if (value.type === "var") {
47
+ const fallbacks = [];
48
+ for (const fallback of value.fallbacks) {
49
+ fallbacks.push(toValue(fallback, options));
50
+ }
51
+ const fallbacksString = fallbacks.length > 0 ? `, ${fallbacks.join(", ")}` : "";
52
+ return `var(--${value.value}${fallbacksString})`;
53
+ }
54
+ return value.value;
55
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var src_exports = {};
17
+ module.exports = __toCommonJS(src_exports);
18
+ __reExport(src_exports, require("./core"), module.exports);
@@ -1,4 +1,7 @@
1
1
  import { CssEngine } from "./css-engine";
2
- export const createCssEngine = () => {
3
- return new CssEngine();
2
+ const createCssEngine = () => {
3
+ return new CssEngine();
4
+ };
5
+ export {
6
+ createCssEngine
4
7
  };