@protohiro/effects-core 0.1.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 ADDED
@@ -0,0 +1,23 @@
1
+ # @protohiro/effects-core
2
+
3
+ Core runtime utilities used by `@protohiro/effects`.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @protohiro/effects-core
9
+ ```
10
+
11
+ ## API
12
+
13
+ - `ensureGlobalStyle`
14
+ - `applyEffectClass`
15
+ - `applyCssVars`
16
+ - `mergeRefs`
17
+ - `toCssLength`
18
+ - `toCssAngle`
19
+ - `toCssTime`
20
+ - `toCssNumber`
21
+
22
+ For full project docs and examples, see:
23
+ https://github.com/snwol/protoeffects
package/dist/index.cjs ADDED
@@ -0,0 +1,131 @@
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
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ applyCssVars: () => applyCssVars,
24
+ applyEffectClass: () => applyEffectClass,
25
+ assignRef: () => assignRef,
26
+ ensureGlobalStyle: () => ensureGlobalStyle,
27
+ mergeRefs: () => mergeRefs,
28
+ toCssAngle: () => toCssAngle,
29
+ toCssLength: () => toCssLength,
30
+ toCssNumber: () => toCssNumber,
31
+ toCssTime: () => toCssTime
32
+ });
33
+ module.exports = __toCommonJS(index_exports);
34
+ function ensureGlobalStyle(styleId, cssText) {
35
+ if (typeof document === "undefined") {
36
+ return;
37
+ }
38
+ const selector = `style[data-protohiro-effects-style="${styleId}"]`;
39
+ if (document.head.querySelector(selector)) {
40
+ return;
41
+ }
42
+ const node = document.createElement("style");
43
+ node.setAttribute("data-protohiro-effects-style", styleId);
44
+ node.textContent = cssText;
45
+ document.head.appendChild(node);
46
+ }
47
+ function assignRef(ref, value) {
48
+ if (!ref) {
49
+ return;
50
+ }
51
+ if (typeof ref === "function") {
52
+ ref(value);
53
+ return;
54
+ }
55
+ ref.current = value;
56
+ }
57
+ function mergeRefs(...refs) {
58
+ return (value) => {
59
+ for (const ref of refs) {
60
+ assignRef(ref, value);
61
+ }
62
+ };
63
+ }
64
+ function applyEffectClass(element, className) {
65
+ const hadClass = element.classList.contains(className);
66
+ if (!hadClass) {
67
+ element.classList.add(className);
68
+ }
69
+ return () => {
70
+ if (!hadClass) {
71
+ element.classList.remove(className);
72
+ }
73
+ };
74
+ }
75
+ function applyCssVars(element, vars) {
76
+ const previous = /* @__PURE__ */ new Map();
77
+ for (const [name, value] of Object.entries(vars)) {
78
+ previous.set(name, element.style.getPropertyValue(name));
79
+ if (value === void 0) {
80
+ element.style.removeProperty(name);
81
+ } else {
82
+ element.style.setProperty(name, value);
83
+ }
84
+ }
85
+ return () => {
86
+ for (const [name, value] of previous.entries()) {
87
+ if (value) {
88
+ element.style.setProperty(name, value);
89
+ } else {
90
+ element.style.removeProperty(name);
91
+ }
92
+ }
93
+ };
94
+ }
95
+ function toCssLength(value) {
96
+ if (value === void 0) {
97
+ return void 0;
98
+ }
99
+ return typeof value === "number" ? `${value}px` : value;
100
+ }
101
+ function toCssAngle(value) {
102
+ if (value === void 0) {
103
+ return void 0;
104
+ }
105
+ return typeof value === "number" ? `${value}deg` : value;
106
+ }
107
+ function toCssTime(value) {
108
+ if (value === void 0) {
109
+ return void 0;
110
+ }
111
+ return typeof value === "number" ? `${value}s` : value;
112
+ }
113
+ function toCssNumber(value) {
114
+ if (value === void 0) {
115
+ return void 0;
116
+ }
117
+ return String(value);
118
+ }
119
+ // Annotate the CommonJS export names for ESM import in node:
120
+ 0 && (module.exports = {
121
+ applyCssVars,
122
+ applyEffectClass,
123
+ assignRef,
124
+ ensureGlobalStyle,
125
+ mergeRefs,
126
+ toCssAngle,
127
+ toCssLength,
128
+ toCssNumber,
129
+ toCssTime
130
+ });
131
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export type CssVars = Record<string, string | undefined>;\nexport type RefLike<T> = ((value: T | null) => void) | { current: T | null } | null | undefined;\n\nexport function ensureGlobalStyle(styleId: string, cssText: string): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n const selector = `style[data-protohiro-effects-style=\"${styleId}\"]`;\n if (document.head.querySelector(selector)) {\n return;\n }\n\n const node = document.createElement('style');\n node.setAttribute('data-protohiro-effects-style', styleId);\n node.textContent = cssText;\n document.head.appendChild(node);\n}\n\nexport function assignRef<T>(ref: RefLike<T>, value: T | null): void {\n if (!ref) {\n return;\n }\n\n if (typeof ref === 'function') {\n ref(value);\n return;\n }\n\n ref.current = value;\n}\n\nexport function mergeRefs<T>(...refs: Array<RefLike<T>>): (value: T | null) => void {\n return (value) => {\n for (const ref of refs) {\n assignRef(ref, value);\n }\n };\n}\n\nexport function applyEffectClass(element: HTMLElement, className: string): () => void {\n const hadClass = element.classList.contains(className);\n if (!hadClass) {\n element.classList.add(className);\n }\n\n return () => {\n if (!hadClass) {\n element.classList.remove(className);\n }\n };\n}\n\nexport function applyCssVars(element: HTMLElement, vars: CssVars): () => void {\n const previous = new Map<string, string>();\n\n for (const [name, value] of Object.entries(vars)) {\n previous.set(name, element.style.getPropertyValue(name));\n\n if (value === undefined) {\n element.style.removeProperty(name);\n } else {\n element.style.setProperty(name, value);\n }\n }\n\n return () => {\n for (const [name, value] of previous.entries()) {\n if (value) {\n element.style.setProperty(name, value);\n } else {\n element.style.removeProperty(name);\n }\n }\n };\n}\n\nexport function toCssLength(value: string | number | undefined): string | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nexport function toCssAngle(value: string | number | undefined): string | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n return typeof value === 'number' ? `${value}deg` : value;\n}\n\nexport function toCssTime(value: string | number | undefined): string | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n return typeof value === 'number' ? `${value}s` : value;\n}\n\nexport function toCssNumber(value: number | undefined): string | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n return String(value);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,SAAS,kBAAkB,SAAiB,SAAuB;AACxE,MAAI,OAAO,aAAa,aAAa;AACnC;AAAA,EACF;AAEA,QAAM,WAAW,uCAAuC,OAAO;AAC/D,MAAI,SAAS,KAAK,cAAc,QAAQ,GAAG;AACzC;AAAA,EACF;AAEA,QAAM,OAAO,SAAS,cAAc,OAAO;AAC3C,OAAK,aAAa,gCAAgC,OAAO;AACzD,OAAK,cAAc;AACnB,WAAS,KAAK,YAAY,IAAI;AAChC;AAEO,SAAS,UAAa,KAAiB,OAAuB;AACnE,MAAI,CAAC,KAAK;AACR;AAAA,EACF;AAEA,MAAI,OAAO,QAAQ,YAAY;AAC7B,QAAI,KAAK;AACT;AAAA,EACF;AAEA,MAAI,UAAU;AAChB;AAEO,SAAS,aAAgB,MAAoD;AAClF,SAAO,CAAC,UAAU;AAChB,eAAW,OAAO,MAAM;AACtB,gBAAU,KAAK,KAAK;AAAA,IACtB;AAAA,EACF;AACF;AAEO,SAAS,iBAAiB,SAAsB,WAA+B;AACpF,QAAM,WAAW,QAAQ,UAAU,SAAS,SAAS;AACrD,MAAI,CAAC,UAAU;AACb,YAAQ,UAAU,IAAI,SAAS;AAAA,EACjC;AAEA,SAAO,MAAM;AACX,QAAI,CAAC,UAAU;AACb,cAAQ,UAAU,OAAO,SAAS;AAAA,IACpC;AAAA,EACF;AACF;AAEO,SAAS,aAAa,SAAsB,MAA2B;AAC5E,QAAM,WAAW,oBAAI,IAAoB;AAEzC,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,IAAI,GAAG;AAChD,aAAS,IAAI,MAAM,QAAQ,MAAM,iBAAiB,IAAI,CAAC;AAEvD,QAAI,UAAU,QAAW;AACvB,cAAQ,MAAM,eAAe,IAAI;AAAA,IACnC,OAAO;AACL,cAAQ,MAAM,YAAY,MAAM,KAAK;AAAA,IACvC;AAAA,EACF;AAEA,SAAO,MAAM;AACX,eAAW,CAAC,MAAM,KAAK,KAAK,SAAS,QAAQ,GAAG;AAC9C,UAAI,OAAO;AACT,gBAAQ,MAAM,YAAY,MAAM,KAAK;AAAA,MACvC,OAAO;AACL,gBAAQ,MAAM,eAAe,IAAI;AAAA,MACnC;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,YAAY,OAAwD;AAClF,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,UAAU,WAAW,GAAG,KAAK,OAAO;AACpD;AAEO,SAAS,WAAW,OAAwD;AACjF,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,UAAU,WAAW,GAAG,KAAK,QAAQ;AACrD;AAEO,SAAS,UAAU,OAAwD;AAChF,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,UAAU,WAAW,GAAG,KAAK,MAAM;AACnD;AAEO,SAAS,YAAY,OAA+C;AACzE,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,KAAK;AACrB;","names":[]}
@@ -0,0 +1,15 @@
1
+ type CssVars = Record<string, string | undefined>;
2
+ type RefLike<T> = ((value: T | null) => void) | {
3
+ current: T | null;
4
+ } | null | undefined;
5
+ declare function ensureGlobalStyle(styleId: string, cssText: string): void;
6
+ declare function assignRef<T>(ref: RefLike<T>, value: T | null): void;
7
+ declare function mergeRefs<T>(...refs: Array<RefLike<T>>): (value: T | null) => void;
8
+ declare function applyEffectClass(element: HTMLElement, className: string): () => void;
9
+ declare function applyCssVars(element: HTMLElement, vars: CssVars): () => void;
10
+ declare function toCssLength(value: string | number | undefined): string | undefined;
11
+ declare function toCssAngle(value: string | number | undefined): string | undefined;
12
+ declare function toCssTime(value: string | number | undefined): string | undefined;
13
+ declare function toCssNumber(value: number | undefined): string | undefined;
14
+
15
+ export { type CssVars, type RefLike, applyCssVars, applyEffectClass, assignRef, ensureGlobalStyle, mergeRefs, toCssAngle, toCssLength, toCssNumber, toCssTime };
@@ -0,0 +1,15 @@
1
+ type CssVars = Record<string, string | undefined>;
2
+ type RefLike<T> = ((value: T | null) => void) | {
3
+ current: T | null;
4
+ } | null | undefined;
5
+ declare function ensureGlobalStyle(styleId: string, cssText: string): void;
6
+ declare function assignRef<T>(ref: RefLike<T>, value: T | null): void;
7
+ declare function mergeRefs<T>(...refs: Array<RefLike<T>>): (value: T | null) => void;
8
+ declare function applyEffectClass(element: HTMLElement, className: string): () => void;
9
+ declare function applyCssVars(element: HTMLElement, vars: CssVars): () => void;
10
+ declare function toCssLength(value: string | number | undefined): string | undefined;
11
+ declare function toCssAngle(value: string | number | undefined): string | undefined;
12
+ declare function toCssTime(value: string | number | undefined): string | undefined;
13
+ declare function toCssNumber(value: number | undefined): string | undefined;
14
+
15
+ export { type CssVars, type RefLike, applyCssVars, applyEffectClass, assignRef, ensureGlobalStyle, mergeRefs, toCssAngle, toCssLength, toCssNumber, toCssTime };
package/dist/index.js ADDED
@@ -0,0 +1,98 @@
1
+ // src/index.ts
2
+ function ensureGlobalStyle(styleId, cssText) {
3
+ if (typeof document === "undefined") {
4
+ return;
5
+ }
6
+ const selector = `style[data-protohiro-effects-style="${styleId}"]`;
7
+ if (document.head.querySelector(selector)) {
8
+ return;
9
+ }
10
+ const node = document.createElement("style");
11
+ node.setAttribute("data-protohiro-effects-style", styleId);
12
+ node.textContent = cssText;
13
+ document.head.appendChild(node);
14
+ }
15
+ function assignRef(ref, value) {
16
+ if (!ref) {
17
+ return;
18
+ }
19
+ if (typeof ref === "function") {
20
+ ref(value);
21
+ return;
22
+ }
23
+ ref.current = value;
24
+ }
25
+ function mergeRefs(...refs) {
26
+ return (value) => {
27
+ for (const ref of refs) {
28
+ assignRef(ref, value);
29
+ }
30
+ };
31
+ }
32
+ function applyEffectClass(element, className) {
33
+ const hadClass = element.classList.contains(className);
34
+ if (!hadClass) {
35
+ element.classList.add(className);
36
+ }
37
+ return () => {
38
+ if (!hadClass) {
39
+ element.classList.remove(className);
40
+ }
41
+ };
42
+ }
43
+ function applyCssVars(element, vars) {
44
+ const previous = /* @__PURE__ */ new Map();
45
+ for (const [name, value] of Object.entries(vars)) {
46
+ previous.set(name, element.style.getPropertyValue(name));
47
+ if (value === void 0) {
48
+ element.style.removeProperty(name);
49
+ } else {
50
+ element.style.setProperty(name, value);
51
+ }
52
+ }
53
+ return () => {
54
+ for (const [name, value] of previous.entries()) {
55
+ if (value) {
56
+ element.style.setProperty(name, value);
57
+ } else {
58
+ element.style.removeProperty(name);
59
+ }
60
+ }
61
+ };
62
+ }
63
+ function toCssLength(value) {
64
+ if (value === void 0) {
65
+ return void 0;
66
+ }
67
+ return typeof value === "number" ? `${value}px` : value;
68
+ }
69
+ function toCssAngle(value) {
70
+ if (value === void 0) {
71
+ return void 0;
72
+ }
73
+ return typeof value === "number" ? `${value}deg` : value;
74
+ }
75
+ function toCssTime(value) {
76
+ if (value === void 0) {
77
+ return void 0;
78
+ }
79
+ return typeof value === "number" ? `${value}s` : value;
80
+ }
81
+ function toCssNumber(value) {
82
+ if (value === void 0) {
83
+ return void 0;
84
+ }
85
+ return String(value);
86
+ }
87
+ export {
88
+ applyCssVars,
89
+ applyEffectClass,
90
+ assignRef,
91
+ ensureGlobalStyle,
92
+ mergeRefs,
93
+ toCssAngle,
94
+ toCssLength,
95
+ toCssNumber,
96
+ toCssTime
97
+ };
98
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export type CssVars = Record<string, string | undefined>;\nexport type RefLike<T> = ((value: T | null) => void) | { current: T | null } | null | undefined;\n\nexport function ensureGlobalStyle(styleId: string, cssText: string): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n const selector = `style[data-protohiro-effects-style=\"${styleId}\"]`;\n if (document.head.querySelector(selector)) {\n return;\n }\n\n const node = document.createElement('style');\n node.setAttribute('data-protohiro-effects-style', styleId);\n node.textContent = cssText;\n document.head.appendChild(node);\n}\n\nexport function assignRef<T>(ref: RefLike<T>, value: T | null): void {\n if (!ref) {\n return;\n }\n\n if (typeof ref === 'function') {\n ref(value);\n return;\n }\n\n ref.current = value;\n}\n\nexport function mergeRefs<T>(...refs: Array<RefLike<T>>): (value: T | null) => void {\n return (value) => {\n for (const ref of refs) {\n assignRef(ref, value);\n }\n };\n}\n\nexport function applyEffectClass(element: HTMLElement, className: string): () => void {\n const hadClass = element.classList.contains(className);\n if (!hadClass) {\n element.classList.add(className);\n }\n\n return () => {\n if (!hadClass) {\n element.classList.remove(className);\n }\n };\n}\n\nexport function applyCssVars(element: HTMLElement, vars: CssVars): () => void {\n const previous = new Map<string, string>();\n\n for (const [name, value] of Object.entries(vars)) {\n previous.set(name, element.style.getPropertyValue(name));\n\n if (value === undefined) {\n element.style.removeProperty(name);\n } else {\n element.style.setProperty(name, value);\n }\n }\n\n return () => {\n for (const [name, value] of previous.entries()) {\n if (value) {\n element.style.setProperty(name, value);\n } else {\n element.style.removeProperty(name);\n }\n }\n };\n}\n\nexport function toCssLength(value: string | number | undefined): string | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nexport function toCssAngle(value: string | number | undefined): string | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n return typeof value === 'number' ? `${value}deg` : value;\n}\n\nexport function toCssTime(value: string | number | undefined): string | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n return typeof value === 'number' ? `${value}s` : value;\n}\n\nexport function toCssNumber(value: number | undefined): string | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n return String(value);\n}\n"],"mappings":";AAGO,SAAS,kBAAkB,SAAiB,SAAuB;AACxE,MAAI,OAAO,aAAa,aAAa;AACnC;AAAA,EACF;AAEA,QAAM,WAAW,uCAAuC,OAAO;AAC/D,MAAI,SAAS,KAAK,cAAc,QAAQ,GAAG;AACzC;AAAA,EACF;AAEA,QAAM,OAAO,SAAS,cAAc,OAAO;AAC3C,OAAK,aAAa,gCAAgC,OAAO;AACzD,OAAK,cAAc;AACnB,WAAS,KAAK,YAAY,IAAI;AAChC;AAEO,SAAS,UAAa,KAAiB,OAAuB;AACnE,MAAI,CAAC,KAAK;AACR;AAAA,EACF;AAEA,MAAI,OAAO,QAAQ,YAAY;AAC7B,QAAI,KAAK;AACT;AAAA,EACF;AAEA,MAAI,UAAU;AAChB;AAEO,SAAS,aAAgB,MAAoD;AAClF,SAAO,CAAC,UAAU;AAChB,eAAW,OAAO,MAAM;AACtB,gBAAU,KAAK,KAAK;AAAA,IACtB;AAAA,EACF;AACF;AAEO,SAAS,iBAAiB,SAAsB,WAA+B;AACpF,QAAM,WAAW,QAAQ,UAAU,SAAS,SAAS;AACrD,MAAI,CAAC,UAAU;AACb,YAAQ,UAAU,IAAI,SAAS;AAAA,EACjC;AAEA,SAAO,MAAM;AACX,QAAI,CAAC,UAAU;AACb,cAAQ,UAAU,OAAO,SAAS;AAAA,IACpC;AAAA,EACF;AACF;AAEO,SAAS,aAAa,SAAsB,MAA2B;AAC5E,QAAM,WAAW,oBAAI,IAAoB;AAEzC,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,IAAI,GAAG;AAChD,aAAS,IAAI,MAAM,QAAQ,MAAM,iBAAiB,IAAI,CAAC;AAEvD,QAAI,UAAU,QAAW;AACvB,cAAQ,MAAM,eAAe,IAAI;AAAA,IACnC,OAAO;AACL,cAAQ,MAAM,YAAY,MAAM,KAAK;AAAA,IACvC;AAAA,EACF;AAEA,SAAO,MAAM;AACX,eAAW,CAAC,MAAM,KAAK,KAAK,SAAS,QAAQ,GAAG;AAC9C,UAAI,OAAO;AACT,gBAAQ,MAAM,YAAY,MAAM,KAAK;AAAA,MACvC,OAAO;AACL,gBAAQ,MAAM,eAAe,IAAI;AAAA,MACnC;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,YAAY,OAAwD;AAClF,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,UAAU,WAAW,GAAG,KAAK,OAAO;AACpD;AAEO,SAAS,WAAW,OAAwD;AACjF,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,UAAU,WAAW,GAAG,KAAK,QAAQ;AACrD;AAEO,SAAS,UAAU,OAAwD;AAChF,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,UAAU,WAAW,GAAG,KAAK,MAAM;AACnD;AAEO,SAAS,YAAY,OAA+C;AACzE,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,KAAK;AACrB;","names":[]}
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@protohiro/effects-core",
3
+ "version": "0.1.0",
4
+ "description": "Core runtime utilities for ProtoEffects CSS-first effects.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.cjs",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/snwol/protoeffects.git",
13
+ "directory": "packages/core"
14
+ },
15
+ "homepage": "https://github.com/snwol/protoeffects#readme",
16
+ "bugs": {
17
+ "url": "https://github.com/snwol/protoeffects/issues"
18
+ },
19
+ "keywords": [
20
+ "protoeffects",
21
+ "css",
22
+ "effects",
23
+ "runtime",
24
+ "utilities"
25
+ ],
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/index.d.ts",
32
+ "import": "./dist/index.js",
33
+ "require": "./dist/index.cjs"
34
+ }
35
+ },
36
+ "files": [
37
+ "dist",
38
+ "README.md"
39
+ ],
40
+ "sideEffects": false,
41
+ "scripts": {
42
+ "build": "tsup",
43
+ "clean": "rm -rf dist",
44
+ "typecheck": "tsc -p tsconfig.json --noEmit"
45
+ }
46
+ }