@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.
Files changed (141) hide show
  1. package/README.md +123 -213
  2. package/dist/card.wc-pFLgjfwm.d.ts +1595 -0
  3. package/dist/chunk-7GJXOXOW.js +108 -0
  4. package/dist/chunk-7GJXOXOW.js.map +1 -0
  5. package/dist/chunk-ICB6OBEZ.js +2087 -0
  6. package/dist/chunk-ICB6OBEZ.js.map +1 -0
  7. package/dist/chunk-Q5RCPPCF.js +406 -0
  8. package/dist/chunk-Q5RCPPCF.js.map +1 -0
  9. package/dist/chunk-QTANS5ZS.js +81 -0
  10. package/dist/chunk-QTANS5ZS.js.map +1 -0
  11. package/dist/chunk-RATTHYIP.js +4855 -0
  12. package/dist/chunk-RATTHYIP.js.map +1 -0
  13. package/dist/chunk-RAWESWNC.js +3 -0
  14. package/dist/chunk-RAWESWNC.js.map +1 -0
  15. package/dist/chunk-RQZ7KDYP.js +5941 -0
  16. package/dist/chunk-RQZ7KDYP.js.map +1 -0
  17. package/dist/chunk-T7QLIHHU.js +3 -0
  18. package/dist/chunk-T7QLIHHU.js.map +1 -0
  19. package/dist/chunk-U4WYCYL6.js +116 -0
  20. package/dist/chunk-U4WYCYL6.js.map +1 -0
  21. package/dist/components/index.d.ts +13 -11
  22. package/dist/components/index.js +5 -5
  23. package/dist/components/index.js.map +1 -1
  24. package/dist/define.d.ts +2 -2
  25. package/dist/define.js +8 -1
  26. package/dist/define.js.map +1 -1
  27. package/dist/{core/element.d.ts → element-DHtonJNX.d.ts} +3 -2
  28. package/dist/icons/index.d.ts +33 -5
  29. package/dist/icons/index.js +5 -3
  30. package/dist/icons/index.js.map +1 -1
  31. package/dist/index.d.ts +35 -10
  32. package/dist/index.js +44 -9
  33. package/dist/index.js.map +1 -1
  34. package/dist/jsx-dev-runtime.d.ts +1 -2
  35. package/dist/jsx-dev-runtime.js +3 -1
  36. package/dist/jsx-dev-runtime.js.map +1 -1
  37. package/dist/jsx-runtime.d.ts +644 -7
  38. package/dist/jsx-runtime.js +3 -120
  39. package/dist/jsx-runtime.js.map +1 -1
  40. package/dist/plugins/index.d.ts +21 -3
  41. package/dist/plugins/index.js +85 -1
  42. package/dist/plugins/index.js.map +1 -1
  43. package/dist/react/index.d.ts +1261 -15
  44. package/dist/react/index.js +1443 -15
  45. package/dist/react/index.js.map +1 -1
  46. package/dist/{core/types.d.ts → types-DWglFa91.d.ts} +8 -7
  47. package/package.json +32 -8
  48. package/dist/components/box.wc.d.ts +0 -24
  49. package/dist/components/box.wc.d.ts.map +0 -1
  50. package/dist/components/box.wc.js +0 -52
  51. package/dist/components/box.wc.js.map +0 -1
  52. package/dist/components/button.wc.d.ts +0 -32
  53. package/dist/components/button.wc.d.ts.map +0 -1
  54. package/dist/components/button.wc.js +0 -91
  55. package/dist/components/button.wc.js.map +0 -1
  56. package/dist/components/index.d.ts.map +0 -1
  57. package/dist/components/input.wc.d.ts +0 -45
  58. package/dist/components/input.wc.d.ts.map +0 -1
  59. package/dist/components/input.wc.js +0 -130
  60. package/dist/components/input.wc.js.map +0 -1
  61. package/dist/components/list.wc.d.ts +0 -49
  62. package/dist/components/list.wc.d.ts.map +0 -1
  63. package/dist/components/list.wc.js +0 -120
  64. package/dist/components/list.wc.js.map +0 -1
  65. package/dist/components/portal.wc.d.ts +0 -18
  66. package/dist/components/portal.wc.d.ts.map +0 -1
  67. package/dist/components/portal.wc.js +0 -78
  68. package/dist/components/portal.wc.js.map +0 -1
  69. package/dist/components/styles.d.ts +0 -7
  70. package/dist/components/styles.d.ts.map +0 -1
  71. package/dist/components/styles.js +0 -134
  72. package/dist/components/styles.js.map +0 -1
  73. package/dist/core/define.d.ts +0 -5
  74. package/dist/core/define.d.ts.map +0 -1
  75. package/dist/core/define.js +0 -26
  76. package/dist/core/define.js.map +0 -1
  77. package/dist/core/element.d.ts.map +0 -1
  78. package/dist/core/element.js +0 -30
  79. package/dist/core/element.js.map +0 -1
  80. package/dist/core/index.d.ts +0 -7
  81. package/dist/core/index.d.ts.map +0 -1
  82. package/dist/core/index.js +0 -5
  83. package/dist/core/index.js.map +0 -1
  84. package/dist/core/plugin.d.ts +0 -17
  85. package/dist/core/plugin.d.ts.map +0 -1
  86. package/dist/core/plugin.js +0 -117
  87. package/dist/core/plugin.js.map +0 -1
  88. package/dist/core/reactive-context.d.ts +0 -12
  89. package/dist/core/reactive-context.d.ts.map +0 -1
  90. package/dist/core/reactive-context.js +0 -34
  91. package/dist/core/reactive-context.js.map +0 -1
  92. package/dist/core/scheduler.d.ts +0 -13
  93. package/dist/core/scheduler.d.ts.map +0 -1
  94. package/dist/core/scheduler.js +0 -80
  95. package/dist/core/scheduler.js.map +0 -1
  96. package/dist/core/signal.d.ts +0 -14
  97. package/dist/core/signal.d.ts.map +0 -1
  98. package/dist/core/signal.js +0 -391
  99. package/dist/core/signal.js.map +0 -1
  100. package/dist/core/store.d.ts +0 -6
  101. package/dist/core/store.d.ts.map +0 -1
  102. package/dist/core/store.js +0 -35
  103. package/dist/core/store.js.map +0 -1
  104. package/dist/core/types.d.ts.map +0 -1
  105. package/dist/core/types.js +0 -2
  106. package/dist/core/types.js.map +0 -1
  107. package/dist/define.d.ts.map +0 -1
  108. package/dist/icons/icon-element.d.ts +0 -25
  109. package/dist/icons/icon-element.d.ts.map +0 -1
  110. package/dist/icons/icon-element.js +0 -63
  111. package/dist/icons/icon-element.js.map +0 -1
  112. package/dist/icons/index.d.ts.map +0 -1
  113. package/dist/icons/registry.d.ts +0 -6
  114. package/dist/icons/registry.d.ts.map +0 -1
  115. package/dist/icons/registry.js +0 -4775
  116. package/dist/icons/registry.js.map +0 -1
  117. package/dist/index.d.ts.map +0 -1
  118. package/dist/jsx-dev-runtime.d.ts.map +0 -1
  119. package/dist/jsx-runtime.d.ts.map +0 -1
  120. package/dist/jsx-types.d.ts +0 -651
  121. package/dist/jsx-types.d.ts.map +0 -1
  122. package/dist/jsx-types.js +0 -3
  123. package/dist/jsx-types.js.map +0 -1
  124. package/dist/plugins/index.d.ts.map +0 -1
  125. package/dist/plugins/router.d.ts +0 -4
  126. package/dist/plugins/router.d.ts.map +0 -1
  127. package/dist/plugins/router.js +0 -90
  128. package/dist/plugins/router.js.map +0 -1
  129. package/dist/plugins/types.d.ts +0 -16
  130. package/dist/plugins/types.d.ts.map +0 -1
  131. package/dist/plugins/types.js +0 -2
  132. package/dist/plugins/types.js.map +0 -1
  133. package/dist/react/icon.d.ts +0 -8
  134. package/dist/react/icon.d.ts.map +0 -1
  135. package/dist/react/icon.js +0 -7
  136. package/dist/react/icon.js.map +0 -1
  137. package/dist/react/icons.d.ts +0 -1194
  138. package/dist/react/icons.d.ts.map +0 -1
  139. package/dist/react/icons.js +0 -1196
  140. package/dist/react/icons.js.map +0 -1
  141. package/dist/react/index.d.ts.map +0 -1
@@ -1,121 +1,4 @@
1
- import { effect, isSignal } from './core/signal.js';
2
- export const Fragment = Symbol('Fragment');
3
- function setDOMProp(el, key, value) {
4
- if (key === 'key' || key === 'children' || key === 'ref')
5
- return;
6
- if (key === 'className' || key === 'class') {
7
- el.setAttribute('class', String(value ?? ''));
8
- }
9
- else if (key === 'style' && value && typeof value === 'object') {
10
- Object.assign(el.style, value);
11
- }
12
- else if (key === 'style' && typeof value === 'string') {
13
- el.setAttribute('style', value);
14
- }
15
- else if (key.startsWith('on') && typeof value === 'function') {
16
- const event = key.slice(2).toLowerCase();
17
- el.addEventListener(event, value);
18
- }
19
- else if (value != null && value !== false) {
20
- el.setAttribute(key, String(value));
21
- }
22
- else {
23
- el.removeAttribute(key);
24
- }
25
- }
26
- function applySignalProp(el, key, sig) {
27
- effect(() => {
28
- const val = sig.get();
29
- if (key.startsWith('on') && typeof val === 'function') {
30
- const event = key.slice(2).toLowerCase();
31
- el.addEventListener(event, val);
32
- }
33
- else if (val != null && val !== false) {
34
- el.setAttribute(key, String(val));
35
- }
36
- else {
37
- el.removeAttribute(key);
38
- }
39
- });
40
- }
41
- function createTextNode(value) {
42
- const text = document.createTextNode(String(value ?? ''));
43
- if (isSignal(value)) {
44
- effect(() => { text.textContent = String(value.get() ?? ''); });
45
- }
46
- return text;
47
- }
48
- function isSignalLike(val) {
49
- return isSignal(val);
50
- }
51
- export function jsx(type, config, ...children) {
52
- const props = config ? { ...config } : {};
53
- const key = props.key;
54
- delete props.key;
55
- if (typeof type === 'function') {
56
- const rendered = type(props, ...children);
57
- return rendered instanceof Node ? rendered : document.createTextNode(String(rendered ?? ''));
58
- }
59
- if (type === Fragment) {
60
- const frag = document.createDocumentFragment();
61
- for (const child of children) {
62
- const node = toNode(child);
63
- if (Array.isArray(node)) {
64
- for (const n of node)
65
- frag.appendChild(n);
66
- }
67
- else if (node) {
68
- frag.appendChild(node);
69
- }
70
- }
71
- return frag;
72
- }
73
- const tag = type;
74
- const el = document.createElement(tag);
75
- for (const [key, value] of Object.entries(props)) {
76
- if (key === 'children') {
77
- const childNodes = Array.isArray(value) ? value : [value];
78
- for (const child of childNodes) {
79
- const node = toNode(child);
80
- if (Array.isArray(node)) {
81
- for (const n of node)
82
- el.appendChild(n);
83
- }
84
- else if (node) {
85
- el.appendChild(node);
86
- }
87
- }
88
- }
89
- else if (isSignalLike(value)) {
90
- applySignalProp(el, key, value);
91
- }
92
- else {
93
- setDOMProp(el, key, value);
94
- }
95
- }
96
- for (const child of children) {
97
- const node = toNode(child);
98
- if (Array.isArray(node)) {
99
- for (const n of node)
100
- el.appendChild(n);
101
- }
102
- else if (node) {
103
- el.appendChild(node);
104
- }
105
- }
106
- return el;
107
- }
108
- export const jsxs = jsx;
109
- export const jsxDEV = jsx;
110
- function toNode(child) {
111
- if (child == null || child === false || child === true)
112
- return null;
113
- if (child instanceof Node)
114
- return child;
115
- if (Array.isArray(child))
116
- return child.map(c => toNode(c)).filter(Boolean);
117
- if (isSignalLike(child))
118
- return createTextNode(child);
119
- return document.createTextNode(String(child));
120
- }
1
+ export { Fragment, jsx, jsxDEV, jsxs } from './chunk-7GJXOXOW.js';
2
+ import './chunk-Q5RCPPCF.js';
3
+ //# sourceMappingURL=jsx-runtime.js.map
121
4
  //# sourceMappingURL=jsx-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"jsx-runtime.js"}
@@ -1,3 +1,21 @@
1
- export { createRouter, useRouter } from './router.js';
2
- export type { RouterPluginConfig, RouterPlugin, DevToolsPlugin } from './types.js';
3
- //# sourceMappingURL=index.d.ts.map
1
+ import { P as Plugin } from '../types-DWglFa91.js';
2
+
3
+ interface RouterPluginConfig {
4
+ mode?: 'history' | 'hash' | 'memory';
5
+ base?: string;
6
+ }
7
+ interface RouterPlugin extends Plugin {
8
+ navigate(path: string): void;
9
+ getCurrentPath(): string;
10
+ getQuery(): Record<string, string>;
11
+ subscribe(fn: (path: string) => void): () => void;
12
+ }
13
+ interface DevToolsPlugin extends Plugin {
14
+ sendEvent(name: string, data?: any): void;
15
+ logStateChange(path: string, oldVal: any, newVal: any): void;
16
+ }
17
+
18
+ declare function createRouter(config?: RouterPluginConfig): RouterPlugin;
19
+ declare function useRouter(): RouterPlugin;
20
+
21
+ export { type DevToolsPlugin, type RouterPlugin, type RouterPluginConfig, createRouter, useRouter };
@@ -1,2 +1,86 @@
1
- export { createRouter, useRouter } from './router.js';
1
+ import { getPlugin, registerPlugin } from '../chunk-U4WYCYL6.js';
2
+ import { signal } from '../chunk-Q5RCPPCF.js';
3
+
4
+ // src/plugins/router.ts
5
+ var isBrowser = typeof window !== "undefined";
6
+ function getBrowserPath(base, mode) {
7
+ if (mode === "memory") return "/";
8
+ if (!isBrowser) return "/";
9
+ if (mode === "hash") {
10
+ return window.location.hash.slice(1) || "/";
11
+ }
12
+ return window.location.pathname.replace(base, "") || "/";
13
+ }
14
+ function createRouter(config = {}) {
15
+ const mode = config.mode ?? "history";
16
+ const base = config.base ?? "";
17
+ const currentPath = signal(getBrowserPath(base, mode));
18
+ const listeners = /* @__PURE__ */ new Set();
19
+ function navigate(path) {
20
+ const fullPath = base + path;
21
+ if (isBrowser) {
22
+ if (mode === "hash") {
23
+ window.location.hash = path;
24
+ } else if (mode === "history") {
25
+ window.history.pushState(null, "", fullPath);
26
+ }
27
+ }
28
+ currentPath.set(path);
29
+ }
30
+ function getCurrentPath() {
31
+ return currentPath.get();
32
+ }
33
+ function getQuery() {
34
+ if (!isBrowser) return {};
35
+ const params = new URLSearchParams(window.location.search);
36
+ const result = {};
37
+ params.forEach((value, key) => {
38
+ result[key] = value;
39
+ });
40
+ return result;
41
+ }
42
+ function subscribe(fn) {
43
+ listeners.add(fn);
44
+ return () => listeners.delete(fn);
45
+ }
46
+ currentPath.subscribe(() => {
47
+ const path = currentPath.get();
48
+ listeners.forEach((fn) => fn(path));
49
+ });
50
+ if (isBrowser) {
51
+ if (mode === "history") {
52
+ window.addEventListener("popstate", () => {
53
+ currentPath.set(window.location.pathname.replace(base, "") || "/");
54
+ });
55
+ } else if (mode === "hash") {
56
+ window.addEventListener("hashchange", () => {
57
+ currentPath.set(window.location.hash.slice(1) || "/");
58
+ });
59
+ }
60
+ }
61
+ const router = {
62
+ name: "router",
63
+ version: "0.2.0",
64
+ setup(api) {
65
+ api.registerHook("router:navigate", (path) => {
66
+ navigate(path);
67
+ });
68
+ },
69
+ navigate,
70
+ getCurrentPath,
71
+ getQuery,
72
+ subscribe
73
+ };
74
+ return router;
75
+ }
76
+ function useRouter() {
77
+ const existing = getPlugin("router");
78
+ if (existing) return existing;
79
+ const router = createRouter();
80
+ registerPlugin(router);
81
+ return router;
82
+ }
83
+
84
+ export { createRouter, useRouter };
85
+ //# sourceMappingURL=index.js.map
2
86
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"sources":["../../src/plugins/router.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { RouterPlugin, RouterPluginConfig } from './types.js';\nimport { registerPlugin, getPlugin } from '../core/plugin.js';\nimport { signal } from '../core/signal.js';\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction getBrowserPath(base: string, mode: string): string {\n if (mode === 'memory') return '/';\n if (!isBrowser) return '/';\n if (mode === 'hash') {\n return window.location.hash.slice(1) || '/';\n }\n return window.location.pathname.replace(base, '') || '/';\n}\n\nexport function createRouter(config: RouterPluginConfig = {}): RouterPlugin {\n const mode = config.mode ?? 'history';\n const base = config.base ?? '';\n const currentPath = signal(getBrowserPath(base, mode));\n const listeners = new Set<(path: string) => void>();\n\n function getInitialPath(): string {\n return getBrowserPath(base, mode);\n }\n\n function navigate(path: string): void {\n const fullPath = base + path;\n if (isBrowser) {\n if (mode === 'hash') {\n window.location.hash = path;\n } else if (mode === 'history') {\n window.history.pushState(null, '', fullPath);\n }\n }\n currentPath.set(path);\n }\n\n function getCurrentPath(): string {\n return currentPath.get();\n }\n\n function getQuery(): Record<string, string> {\n if (!isBrowser) return {};\n const params = new URLSearchParams(window.location.search);\n const result: Record<string, string> = {};\n params.forEach((value, key) => {\n result[key] = value;\n });\n return result;\n }\n\n function subscribe(fn: (path: string) => void): () => void {\n listeners.add(fn);\n return () => listeners.delete(fn);\n }\n\n currentPath.subscribe(() => {\n const path = currentPath.get();\n listeners.forEach((fn) => fn(path));\n });\n\n if (isBrowser) {\n if (mode === 'history') {\n window.addEventListener('popstate', () => {\n currentPath.set(window.location.pathname.replace(base, '') || '/');\n });\n } else if (mode === 'hash') {\n window.addEventListener('hashchange', () => {\n currentPath.set(window.location.hash.slice(1) || '/');\n });\n }\n }\n\n const router: RouterPlugin = {\n name: 'router',\n version: '0.2.0',\n setup(api) {\n api.registerHook('router:navigate', (path: string) => {\n navigate(path);\n });\n },\n navigate,\n getCurrentPath,\n getQuery,\n subscribe,\n };\n\n return router;\n}\n\nexport function useRouter(): RouterPlugin {\n const existing = getPlugin('router');\n if (existing) return existing as RouterPlugin;\n\n const router = createRouter();\n registerPlugin(router);\n return router;\n}\n"]}