@avento-space/ts-ui 1.1.1 → 1.2.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/README.md +123 -213
- package/dist/card.wc-pFLgjfwm.d.ts +1595 -0
- package/dist/chunk-7GJXOXOW.js +108 -0
- package/dist/chunk-7GJXOXOW.js.map +1 -0
- package/dist/chunk-ICB6OBEZ.js +2087 -0
- package/dist/chunk-ICB6OBEZ.js.map +1 -0
- package/dist/chunk-Q5RCPPCF.js +406 -0
- package/dist/chunk-Q5RCPPCF.js.map +1 -0
- package/dist/chunk-QTANS5ZS.js +81 -0
- package/dist/chunk-QTANS5ZS.js.map +1 -0
- package/dist/chunk-RATTHYIP.js +4855 -0
- package/dist/chunk-RATTHYIP.js.map +1 -0
- package/dist/chunk-RAWESWNC.js +3 -0
- package/dist/chunk-RAWESWNC.js.map +1 -0
- package/dist/chunk-RQZ7KDYP.js +5941 -0
- package/dist/chunk-RQZ7KDYP.js.map +1 -0
- package/dist/chunk-T7QLIHHU.js +3 -0
- package/dist/chunk-T7QLIHHU.js.map +1 -0
- package/dist/chunk-U4WYCYL6.js +116 -0
- package/dist/chunk-U4WYCYL6.js.map +1 -0
- package/dist/components/index.d.ts +13 -11
- package/dist/components/index.js +5 -5
- package/dist/components/index.js.map +1 -1
- package/dist/define.d.ts +2 -2
- package/dist/define.js +8 -1
- package/dist/define.js.map +1 -1
- package/dist/{core/element.d.ts → element-DHtonJNX.d.ts} +3 -2
- package/dist/icons/index.d.ts +33 -5
- package/dist/icons/index.js +5 -3
- package/dist/icons/index.js.map +1 -1
- package/dist/index.d.ts +35 -10
- package/dist/index.js +44 -9
- package/dist/index.js.map +1 -1
- package/dist/jsx-dev-runtime.d.ts +1 -2
- package/dist/jsx-dev-runtime.js +3 -1
- package/dist/jsx-dev-runtime.js.map +1 -1
- package/dist/jsx-runtime.d.ts +644 -7
- package/dist/jsx-runtime.js +3 -120
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/plugins/index.d.ts +21 -3
- package/dist/plugins/index.js +85 -1
- package/dist/plugins/index.js.map +1 -1
- package/dist/react/index.d.ts +1261 -15
- package/dist/react/index.js +1443 -15
- package/dist/react/index.js.map +1 -1
- package/dist/{core/types.d.ts → types-DWglFa91.d.ts} +8 -7
- package/package.json +32 -8
- package/dist/components/box.wc.d.ts +0 -24
- package/dist/components/box.wc.d.ts.map +0 -1
- package/dist/components/box.wc.js +0 -52
- package/dist/components/box.wc.js.map +0 -1
- package/dist/components/button.wc.d.ts +0 -32
- package/dist/components/button.wc.d.ts.map +0 -1
- package/dist/components/button.wc.js +0 -91
- package/dist/components/button.wc.js.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/input.wc.d.ts +0 -45
- package/dist/components/input.wc.d.ts.map +0 -1
- package/dist/components/input.wc.js +0 -130
- package/dist/components/input.wc.js.map +0 -1
- package/dist/components/list.wc.d.ts +0 -49
- package/dist/components/list.wc.d.ts.map +0 -1
- package/dist/components/list.wc.js +0 -120
- package/dist/components/list.wc.js.map +0 -1
- package/dist/components/portal.wc.d.ts +0 -18
- package/dist/components/portal.wc.d.ts.map +0 -1
- package/dist/components/portal.wc.js +0 -78
- package/dist/components/portal.wc.js.map +0 -1
- package/dist/components/styles.d.ts +0 -7
- package/dist/components/styles.d.ts.map +0 -1
- package/dist/components/styles.js +0 -134
- package/dist/components/styles.js.map +0 -1
- package/dist/core/define.d.ts +0 -5
- package/dist/core/define.d.ts.map +0 -1
- package/dist/core/define.js +0 -26
- package/dist/core/define.js.map +0 -1
- package/dist/core/element.d.ts.map +0 -1
- package/dist/core/element.js +0 -30
- package/dist/core/element.js.map +0 -1
- package/dist/core/index.d.ts +0 -7
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -5
- package/dist/core/index.js.map +0 -1
- package/dist/core/plugin.d.ts +0 -17
- package/dist/core/plugin.d.ts.map +0 -1
- package/dist/core/plugin.js +0 -117
- package/dist/core/plugin.js.map +0 -1
- package/dist/core/reactive-context.d.ts +0 -12
- package/dist/core/reactive-context.d.ts.map +0 -1
- package/dist/core/reactive-context.js +0 -34
- package/dist/core/reactive-context.js.map +0 -1
- package/dist/core/scheduler.d.ts +0 -13
- package/dist/core/scheduler.d.ts.map +0 -1
- package/dist/core/scheduler.js +0 -80
- package/dist/core/scheduler.js.map +0 -1
- package/dist/core/signal.d.ts +0 -14
- package/dist/core/signal.d.ts.map +0 -1
- package/dist/core/signal.js +0 -391
- package/dist/core/signal.js.map +0 -1
- package/dist/core/store.d.ts +0 -6
- package/dist/core/store.d.ts.map +0 -1
- package/dist/core/store.js +0 -35
- package/dist/core/store.js.map +0 -1
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -2
- package/dist/core/types.js.map +0 -1
- package/dist/define.d.ts.map +0 -1
- package/dist/icons/icon-element.d.ts +0 -25
- package/dist/icons/icon-element.d.ts.map +0 -1
- package/dist/icons/icon-element.js +0 -63
- package/dist/icons/icon-element.js.map +0 -1
- package/dist/icons/index.d.ts.map +0 -1
- package/dist/icons/registry.d.ts +0 -6
- package/dist/icons/registry.d.ts.map +0 -1
- package/dist/icons/registry.js +0 -4775
- package/dist/icons/registry.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/jsx-dev-runtime.d.ts.map +0 -1
- package/dist/jsx-runtime.d.ts.map +0 -1
- package/dist/jsx-types.d.ts +0 -651
- package/dist/jsx-types.d.ts.map +0 -1
- package/dist/jsx-types.js +0 -3
- package/dist/jsx-types.js.map +0 -1
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/router.d.ts +0 -4
- package/dist/plugins/router.d.ts.map +0 -1
- package/dist/plugins/router.js +0 -90
- package/dist/plugins/router.js.map +0 -1
- package/dist/plugins/types.d.ts +0 -16
- package/dist/plugins/types.d.ts.map +0 -1
- package/dist/plugins/types.js +0 -2
- package/dist/plugins/types.js.map +0 -1
- package/dist/react/icon.d.ts +0 -8
- package/dist/react/icon.d.ts.map +0 -1
- package/dist/react/icon.js +0 -7
- package/dist/react/icon.js.map +0 -1
- package/dist/react/icons.d.ts +0 -1194
- package/dist/react/icons.d.ts.map +0 -1
- package/dist/react/icons.js +0 -1196
- package/dist/react/icons.js.map +0 -1
- package/dist/react/index.d.ts.map +0 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { isSignal, effect } from './chunk-Q5RCPPCF.js';
|
|
2
|
+
|
|
3
|
+
// src/jsx-runtime.ts
|
|
4
|
+
var Fragment = /* @__PURE__ */ Symbol("Fragment");
|
|
5
|
+
function setDOMProp(el, key, value) {
|
|
6
|
+
if (key === "key" || key === "children" || key === "ref") return;
|
|
7
|
+
if (key === "className" || key === "class") {
|
|
8
|
+
el.setAttribute("class", String(value ?? ""));
|
|
9
|
+
} else if (key === "style" && value && typeof value === "object") {
|
|
10
|
+
Object.assign(el.style, value);
|
|
11
|
+
} else if (key === "style" && typeof value === "string") {
|
|
12
|
+
el.setAttribute("style", value);
|
|
13
|
+
} else if (key.startsWith("on") && typeof value === "function") {
|
|
14
|
+
const event = key.slice(2).toLowerCase();
|
|
15
|
+
el.addEventListener(event, value);
|
|
16
|
+
} else if (value != null && value !== false) {
|
|
17
|
+
el.setAttribute(key, String(value));
|
|
18
|
+
} else {
|
|
19
|
+
el.removeAttribute(key);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function applySignalProp(el, key, sig) {
|
|
23
|
+
effect(() => {
|
|
24
|
+
const val = sig.get();
|
|
25
|
+
if (key.startsWith("on") && typeof val === "function") {
|
|
26
|
+
const event = key.slice(2).toLowerCase();
|
|
27
|
+
el.addEventListener(event, val);
|
|
28
|
+
} else if (val != null && val !== false) {
|
|
29
|
+
el.setAttribute(key, String(val));
|
|
30
|
+
} else {
|
|
31
|
+
el.removeAttribute(key);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function createTextNode(value) {
|
|
36
|
+
const text = document.createTextNode(String(value ?? ""));
|
|
37
|
+
if (isSignal(value)) {
|
|
38
|
+
effect(() => {
|
|
39
|
+
text.textContent = String(value.get() ?? "");
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return text;
|
|
43
|
+
}
|
|
44
|
+
function isSignalLike(val) {
|
|
45
|
+
return isSignal(val);
|
|
46
|
+
}
|
|
47
|
+
function jsx(type, config, ...children) {
|
|
48
|
+
const props = config ? { ...config } : {};
|
|
49
|
+
props.key;
|
|
50
|
+
delete props.key;
|
|
51
|
+
if (typeof type === "function") {
|
|
52
|
+
const rendered = type(props, ...children);
|
|
53
|
+
return rendered instanceof Node ? rendered : document.createTextNode(String(rendered ?? ""));
|
|
54
|
+
}
|
|
55
|
+
if (type === Fragment) {
|
|
56
|
+
const frag = document.createDocumentFragment();
|
|
57
|
+
for (const child of children) {
|
|
58
|
+
const node = toNode(child);
|
|
59
|
+
if (Array.isArray(node)) {
|
|
60
|
+
for (const n of node) frag.appendChild(n);
|
|
61
|
+
} else if (node) {
|
|
62
|
+
frag.appendChild(node);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return frag;
|
|
66
|
+
}
|
|
67
|
+
const tag = type;
|
|
68
|
+
const el = document.createElement(tag);
|
|
69
|
+
for (const [key2, value] of Object.entries(props)) {
|
|
70
|
+
if (key2 === "children") {
|
|
71
|
+
const childNodes = Array.isArray(value) ? value : [value];
|
|
72
|
+
for (const child of childNodes) {
|
|
73
|
+
const node = toNode(child);
|
|
74
|
+
if (Array.isArray(node)) {
|
|
75
|
+
for (const n of node) el.appendChild(n);
|
|
76
|
+
} else if (node) {
|
|
77
|
+
el.appendChild(node);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
} else if (isSignalLike(value)) {
|
|
81
|
+
applySignalProp(el, key2, value);
|
|
82
|
+
} else {
|
|
83
|
+
setDOMProp(el, key2, value);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
for (const child of children) {
|
|
87
|
+
const node = toNode(child);
|
|
88
|
+
if (Array.isArray(node)) {
|
|
89
|
+
for (const n of node) el.appendChild(n);
|
|
90
|
+
} else if (node) {
|
|
91
|
+
el.appendChild(node);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return el;
|
|
95
|
+
}
|
|
96
|
+
var jsxs = jsx;
|
|
97
|
+
var jsxDEV = jsx;
|
|
98
|
+
function toNode(child) {
|
|
99
|
+
if (child == null || child === false || child === true) return null;
|
|
100
|
+
if (child instanceof Node) return child;
|
|
101
|
+
if (Array.isArray(child)) return child.map((c) => toNode(c)).filter(Boolean);
|
|
102
|
+
if (isSignalLike(child)) return createTextNode(child);
|
|
103
|
+
return document.createTextNode(String(child));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export { Fragment, jsx, jsxDEV, jsxs };
|
|
107
|
+
//# sourceMappingURL=chunk-7GJXOXOW.js.map
|
|
108
|
+
//# sourceMappingURL=chunk-7GJXOXOW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/jsx-runtime.ts"],"names":["key"],"mappings":"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","file":"chunk-7GJXOXOW.js","sourcesContent":["import { effect, isSignal } from './core/signal.js';\r\nimport type { JSX } from './jsx-types.js';\r\nexport type { JSX };\r\n\r\nexport const Fragment = Symbol('Fragment');\r\n\r\nfunction setDOMProp(el: Element, key: string, value: unknown): void {\r\n if (key === 'key' || key === 'children' || key === 'ref') return;\r\n\r\n if (key === 'className' || key === 'class') {\r\n el.setAttribute('class', String(value ?? ''));\r\n } else if (key === 'style' && value && typeof value === 'object') {\r\n Object.assign((el as HTMLElement).style, value as Partial<CSSStyleDeclaration>);\r\n } else if (key === 'style' && typeof value === 'string') {\r\n el.setAttribute('style', value);\r\n } else if (key.startsWith('on') && typeof value === 'function') {\r\n const event = key.slice(2).toLowerCase();\r\n el.addEventListener(event, value as EventListener);\r\n } else if (value != null && value !== false) {\r\n el.setAttribute(key, String(value));\r\n } else {\r\n el.removeAttribute(key);\r\n }\r\n}\r\n\r\nfunction applySignalProp(el: Element, key: string, sig: { get(): unknown }): void {\r\n effect(() => {\r\n const val = sig.get();\r\n if (key.startsWith('on') && typeof val === 'function') {\r\n const event = key.slice(2).toLowerCase();\r\n el.addEventListener(event, val as EventListener);\r\n } else if (val != null && val !== false) {\r\n el.setAttribute(key, String(val));\r\n } else {\r\n el.removeAttribute(key);\r\n }\r\n });\r\n}\r\n\r\nfunction createTextNode(value: unknown): Text {\r\n const text = document.createTextNode(String(value ?? ''));\r\n if (isSignal(value)) {\r\n effect(() => {\r\n text.textContent = String(value.get() ?? '');\r\n });\r\n }\r\n return text;\r\n}\r\n\r\nfunction isSignalLike(val: unknown): val is { get(): unknown } {\r\n return isSignal(val);\r\n}\r\n\r\nexport function jsx(\r\n type: string | symbol | ((props: any, ...children: any[]) => any),\r\n config?: Record<string, any> | null,\r\n ...children: any[]\r\n): Node | Node[] {\r\n const props = config ? { ...config } : {};\r\n const key = props.key;\r\n delete props.key;\r\n\r\n if (typeof type === 'function') {\r\n const rendered = type(props, ...children);\r\n return rendered instanceof Node ? rendered : document.createTextNode(String(rendered ?? ''));\r\n }\r\n\r\n if (type === Fragment) {\r\n const frag = document.createDocumentFragment();\r\n for (const child of children) {\r\n const node = toNode(child);\r\n if (Array.isArray(node)) {\r\n for (const n of node) frag.appendChild(n);\r\n } else if (node) {\r\n frag.appendChild(node);\r\n }\r\n }\r\n return frag;\r\n }\r\n\r\n const tag = type as string;\r\n const el = document.createElement(tag);\r\n\r\n for (const [key, value] of Object.entries(props)) {\r\n if (key === 'children') {\r\n const childNodes = Array.isArray(value) ? value : [value];\r\n for (const child of childNodes) {\r\n const node = toNode(child);\r\n if (Array.isArray(node)) {\r\n for (const n of node) el.appendChild(n);\r\n } else if (node) {\r\n el.appendChild(node);\r\n }\r\n }\r\n } else if (isSignalLike(value)) {\r\n applySignalProp(el, key, value);\r\n } else {\r\n setDOMProp(el, key, value);\r\n }\r\n }\r\n\r\n for (const child of children) {\r\n const node = toNode(child);\r\n if (Array.isArray(node)) {\r\n for (const n of node) el.appendChild(n);\r\n } else if (node) {\r\n el.appendChild(node);\r\n }\r\n }\r\n\r\n return el;\r\n}\r\n\r\nexport const jsxs = jsx;\r\nexport const jsxDEV = jsx;\r\n\r\nfunction toNode(child: any): Node | Node[] | null {\r\n if (child == null || child === false || child === true) return null;\r\n if (child instanceof Node) return child;\r\n if (Array.isArray(child)) return child.map((c) => toNode(c)).filter(Boolean) as Node[];\r\n if (isSignalLike(child)) return createTextNode(child);\r\n return document.createTextNode(String(child));\r\n}\r\n"]}
|