@opendaw/lib-jsx 0.0.22 → 0.0.24
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/create-element.js +10 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/std/HTML.d.ts +6 -0
- package/dist/std/HTML.d.ts.map +1 -0
- package/dist/std/HTML.js +31 -0
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/create-element.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { canWrite, panic } from "@opendaw/lib-std";
|
1
|
+
import { canWrite, isDefined, panic, safeWrite } from "@opendaw/lib-std";
|
2
2
|
import { Html } from "@opendaw/lib-dom";
|
3
3
|
import { SupportedSvgTags } from "./supported-svg-tags";
|
4
4
|
import { Inject } from "./inject";
|
@@ -95,8 +95,15 @@ const transferAttributes = (element, attributes) => {
|
|
95
95
|
if (typeof value === "string") {
|
96
96
|
element.setAttribute(key, value);
|
97
97
|
}
|
98
|
-
else {
|
99
|
-
Object.
|
98
|
+
else if (isDefined(value)) {
|
99
|
+
Object.entries(value).forEach(([key, value]) => {
|
100
|
+
if (key.startsWith("--")) {
|
101
|
+
element.style.setProperty(key, value); // special treatment for css variables
|
102
|
+
}
|
103
|
+
else {
|
104
|
+
safeWrite(element.style, key, value);
|
105
|
+
}
|
106
|
+
});
|
100
107
|
}
|
101
108
|
}
|
102
109
|
else if (key === "ref") {
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA"}
|
package/dist/index.js
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"HTML.d.ts","sourceRoot":"","sources":["../../src/std/HTML.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEzD,eAAO,MAAM,IAAI,GAAI,oBAAkB;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,oBAyB7E,CAAA"}
|
package/dist/std/HTML.js
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
import { EmptyExec, isDefined } from "@opendaw/lib-std";
|
2
|
+
import { Html } from "@opendaw/lib-dom";
|
3
|
+
var sanitize = Html.sanitize;
|
4
|
+
export const HTML = ({ src, className }) => {
|
5
|
+
const placeholder = document.createElement("span");
|
6
|
+
(async () => {
|
7
|
+
let markup;
|
8
|
+
if (typeof src === "string") {
|
9
|
+
markup = src;
|
10
|
+
}
|
11
|
+
else if (src instanceof URL) {
|
12
|
+
const response = await fetch(src.toString(), { credentials: "same-origin" });
|
13
|
+
markup = await response.text();
|
14
|
+
}
|
15
|
+
else {
|
16
|
+
markup = await src.then(x => x.text());
|
17
|
+
}
|
18
|
+
const frag = document.createElement("div");
|
19
|
+
frag.innerHTML = markup;
|
20
|
+
sanitize(frag);
|
21
|
+
if (isDefined(className)) {
|
22
|
+
for (const node of frag.childNodes) {
|
23
|
+
if (node instanceof Element) {
|
24
|
+
node.classList.add(...className.split(/\s+/));
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
placeholder.replaceWith(...Array.from(frag.childNodes));
|
29
|
+
})().catch(EmptyExec);
|
30
|
+
return placeholder;
|
31
|
+
};
|
package/dist/types.d.ts
CHANGED
@@ -2,9 +2,10 @@ import { Procedure } from "@opendaw/lib-std";
|
|
2
2
|
import { Inject } from "./inject";
|
3
3
|
export type DomElement = HTMLElement | SVGElement;
|
4
4
|
export type JsxValue = null | undefined | boolean | string | number | DomElement | Array<JsxValue>;
|
5
|
+
export type CSSVars = Record<`--${string}`, string>;
|
5
6
|
type AttributeMap = {
|
6
7
|
className?: string | Inject.ClassList;
|
7
|
-
style?: Partial<CSSStyleDeclaration
|
8
|
+
style?: Partial<CSSStyleDeclaration> | CSSVars;
|
8
9
|
};
|
9
10
|
type ExtractProperties<T extends Element> = Partial<{
|
10
11
|
[K in keyof T]: K extends keyof AttributeMap ? AttributeMap[K] : K extends keyof GlobalEventHandlers ? GlobalEventHandlers[K] : T[K] extends Function ? never : (T[K] extends SVGAnimatedBoolean ? boolean | string : T[K] extends SVGAnimatedAngle ? number | string : T[K] extends SVGAnimatedLength ? number | string : T[K] extends number ? number | string : T[K] extends boolean ? boolean | string : string) | Inject.Attribute;
|
package/dist/types.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAE/B,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,CAAA;AACjD,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAE/B,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,CAAA;AACjD,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AAClG,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,MAAM,CAAC,CAAA;AAInD,KAAK,YAAY,GAAG;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAA;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAA;CACjD,CAAA;AAED,KAAK,iBAAiB,CAAC,CAAC,SAAS,OAAO,IAAI,OAAO,CAAC;KAC/C,CAAC,IAAI,MAAM,CAAC,GACb,CAAC,SAAS,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,GAC1C,CAAC,SAAS,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,CAAC,CAAC,GACxD,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,KAAK,GACzB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAC/C,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAC3C,CAAC,CAAC,CAAC,CAAC,SAAS,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAC5C,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GACjC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,GAAG,MAAM,GACnC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS;CAC7D,CAAC,GAAG;IACD,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;CACxB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE3B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,GAAG,CAAC;QAEV,KAAK,iBAAiB,GAChB;aAAG,CAAC,IAAI,MAAM,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE,GACvG;aAAG,CAAC,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE,GAEzG;YAAE,CAAC,EAAE,GAAG,CAAA;SAAE,CAAA;KACnB;CACJ"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@opendaw/lib-jsx",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.24",
|
4
4
|
"license": "LGPL-3.0-or-later",
|
5
5
|
"main": "./dist/index.js",
|
6
6
|
"types": "./dist/index.d.ts",
|
@@ -22,12 +22,12 @@
|
|
22
22
|
"test": "echo \"No tests to run\""
|
23
23
|
},
|
24
24
|
"dependencies": {
|
25
|
-
"@opendaw/lib-dom": "^0.0.
|
26
|
-
"@opendaw/lib-std": "^0.0.
|
25
|
+
"@opendaw/lib-dom": "^0.0.24",
|
26
|
+
"@opendaw/lib-std": "^0.0.24"
|
27
27
|
},
|
28
28
|
"devDependencies": {
|
29
29
|
"@opendaw/eslint-config": "^0.0.18",
|
30
30
|
"@opendaw/typescript-config": "^0.0.19"
|
31
31
|
},
|
32
|
-
"gitHead": "
|
32
|
+
"gitHead": "6d864cfb079bb09a5fcb8f2db5d015a4581bea6a"
|
33
33
|
}
|