frontend-hamroun 1.2.74 → 1.2.75

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 (99) hide show
  1. package/dist/Counter.d.ts +0 -0
  2. package/dist/hooks-0728361a.cjs +1 -0
  3. package/dist/hooks-b58f947c.js +133 -0
  4. package/dist/hooks.js +1 -0
  5. package/dist/hooks.mjs +13 -0
  6. package/dist/index.js +1 -384
  7. package/dist/index.mjs +130 -374
  8. package/dist/jsx-runtime.js +1 -0
  9. package/dist/jsx-runtime.mjs +64 -0
  10. package/dist/renderer.js +1 -0
  11. package/dist/renderer.mjs +27 -0
  12. package/dist/server/src/batch.d.ts +3 -0
  13. package/dist/server/src/batch.js +23 -0
  14. package/dist/server/src/batch.js.map +1 -0
  15. package/dist/server/src/component.d.ts +14 -0
  16. package/dist/server/src/component.js +106 -0
  17. package/dist/server/src/component.js.map +1 -0
  18. package/dist/server/src/context.d.ts +13 -0
  19. package/dist/server/src/context.js +21 -0
  20. package/dist/server/src/context.js.map +1 -0
  21. package/dist/server/src/hooks.d.ts +12 -0
  22. package/dist/server/src/hooks.js +170 -0
  23. package/dist/server/src/hooks.js.map +1 -0
  24. package/dist/server/src/index.client.d.ts +12 -0
  25. package/dist/server/src/index.client.js +14 -0
  26. package/dist/server/src/index.client.js.map +1 -0
  27. package/dist/server/src/index.d.ts +88 -0
  28. package/dist/server/src/index.js +70 -0
  29. package/dist/server/src/index.js.map +1 -0
  30. package/dist/server/src/jsx-runtime/jsx-dev-runtime.d.ts +1 -0
  31. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js +2 -0
  32. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js.map +1 -0
  33. package/dist/server/src/jsx-runtime/jsx-runtime.d.ts +4 -0
  34. package/dist/server/src/jsx-runtime/jsx-runtime.js +41 -0
  35. package/dist/server/src/jsx-runtime/jsx-runtime.js.map +1 -0
  36. package/dist/server/src/jsx-runtime.d.ts +20 -0
  37. package/dist/server/src/jsx-runtime.js +105 -0
  38. package/dist/server/src/jsx-runtime.js.map +1 -0
  39. package/dist/server/src/renderComponent.d.ts +14 -0
  40. package/dist/server/src/renderComponent.js +25 -0
  41. package/dist/server/src/renderComponent.js.map +1 -0
  42. package/dist/server/src/renderer.d.ts +2 -0
  43. package/dist/server/src/renderer.js +31 -0
  44. package/dist/server/src/renderer.js.map +1 -0
  45. package/dist/server/src/server/api-router.d.ts +15 -0
  46. package/dist/server/src/server/api-router.js +111 -0
  47. package/dist/server/src/server/api-router.js.map +1 -0
  48. package/dist/server/src/server/auth.d.ts +32 -0
  49. package/dist/server/src/server/auth.js +80 -0
  50. package/dist/server/src/server/auth.js.map +1 -0
  51. package/dist/server/src/server/database.d.ts +24 -0
  52. package/dist/server/src/server/database.js +135 -0
  53. package/dist/server/src/server/database.js.map +1 -0
  54. package/dist/server/src/server/index.d.ts +54 -0
  55. package/dist/server/src/server/index.js +172 -0
  56. package/dist/server/src/server/index.js.map +1 -0
  57. package/dist/server/src/server/middleware.d.ts +11 -0
  58. package/dist/server/src/server/middleware.js +46 -0
  59. package/dist/server/src/server/middleware.js.map +1 -0
  60. package/dist/server/src/server/server.d.ts +9 -0
  61. package/dist/server/src/server/server.js +87 -0
  62. package/dist/server/src/server/server.js.map +1 -0
  63. package/dist/server/src/server/types.d.ts +38 -0
  64. package/dist/server/src/server/types.js +4 -0
  65. package/dist/server/src/server/types.js.map +1 -0
  66. package/dist/server/src/server/wasm.d.ts +9 -0
  67. package/dist/server/src/server/wasm.js +117 -0
  68. package/dist/server/src/server/wasm.js.map +1 -0
  69. package/dist/server/src/server-renderer.d.ts +5 -0
  70. package/dist/server/src/server-renderer.js +106 -0
  71. package/dist/server/src/server-renderer.js.map +1 -0
  72. package/dist/server/src/server-types.d.ts +42 -0
  73. package/dist/server/src/server-types.js +6 -0
  74. package/dist/server/src/server-types.js.map +1 -0
  75. package/dist/server/src/types.d.ts +19 -0
  76. package/dist/server/src/types.js +2 -0
  77. package/dist/server/src/types.js.map +1 -0
  78. package/dist/server/src/vdom.d.ts +8 -0
  79. package/dist/server/src/vdom.js +22 -0
  80. package/dist/server/src/vdom.js.map +1 -0
  81. package/dist/server/src/wasm.d.ts +36 -0
  82. package/dist/server/src/wasm.js +159 -0
  83. package/dist/server/src/wasm.js.map +1 -0
  84. package/dist/server/tsconfig.server.tsbuildinfo +1 -0
  85. package/dist/server/wasm.d.ts +7 -0
  86. package/dist/server-renderer.js +1 -0
  87. package/dist/server-renderer.mjs +64 -0
  88. package/dist/wasm.d.ts +37 -0
  89. package/dist/wasm.js +1 -0
  90. package/dist/wasm.mjs +103 -0
  91. package/package.json +1 -1
  92. package/templates/go/build.sh +43 -43
  93. package/templates/go-wasm-app/build-wasm.js +84 -84
  94. package/templates/go-wasm-app/package.json +6 -5
  95. package/templates/go-wasm-app/public/index.html +49 -53
  96. package/templates/go-wasm-app/server.js +0 -188
  97. package/dist/index.d.ts +0 -1
  98. package/dist/index.js.map +0 -1
  99. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,106 @@
1
+ import { createElement } from './jsx-runtime.js';
2
+ export class Component {
3
+ constructor(props = {}) {
4
+ Object.defineProperty(this, "state", {
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true,
8
+ value: {}
9
+ });
10
+ Object.defineProperty(this, "props", {
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true,
14
+ value: void 0
15
+ });
16
+ Object.defineProperty(this, "element", {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value: null
21
+ });
22
+ Object.defineProperty(this, "_mounted", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: true,
26
+ value: false
27
+ });
28
+ this.props = props;
29
+ }
30
+ componentDidMount() {
31
+ // Hook for after component is mounted
32
+ }
33
+ async setState(newState) {
34
+ const prevState = { ...this.state };
35
+ this.state = { ...prevState, ...newState };
36
+ console.log(`${this.constructor.name} state updated:`, {
37
+ prev: prevState,
38
+ next: this.state
39
+ });
40
+ await Promise.resolve(); // Ensure state is updated before re-render
41
+ if (this._mounted) {
42
+ await this.update();
43
+ }
44
+ else {
45
+ await this.update();
46
+ }
47
+ }
48
+ _replayEvents(oldElement, newElement) {
49
+ const oldEvents = oldElement.__events || {};
50
+ Object.entries(oldEvents).forEach(([event, handler]) => {
51
+ newElement.addEventListener(event, handler);
52
+ });
53
+ newElement.__events = oldEvents;
54
+ }
55
+ _deepCloneWithEvents(node) {
56
+ const clone = node.cloneNode(false);
57
+ // Copy events from original element
58
+ const events = node.__events || {};
59
+ clone.__events = events;
60
+ Object.entries(events).forEach(([event, handler]) => {
61
+ clone.addEventListener(event, handler);
62
+ });
63
+ // Clone children
64
+ Array.from(node.childNodes).forEach(child => {
65
+ if (child instanceof HTMLElement) {
66
+ clone.appendChild(this._deepCloneWithEvents(child));
67
+ }
68
+ else {
69
+ clone.appendChild(child.cloneNode(true));
70
+ }
71
+ });
72
+ return clone;
73
+ }
74
+ async update() {
75
+ const vdom = this.render();
76
+ if (!vdom)
77
+ return document.createTextNode('');
78
+ const rendered = await createElement(vdom);
79
+ if (rendered instanceof HTMLElement) {
80
+ return this._updateElement(rendered);
81
+ }
82
+ const wrapper = document.createElement('div');
83
+ wrapper.appendChild(rendered);
84
+ return this._updateElement(wrapper);
85
+ }
86
+ async _updateElement(rendered) {
87
+ const newElement = this._deepCloneWithEvents(rendered);
88
+ newElement.__instance = this;
89
+ if (!this.element) {
90
+ this.element = newElement;
91
+ if (!this._mounted) {
92
+ this._mounted = true;
93
+ queueMicrotask(() => this.componentDidMount());
94
+ }
95
+ }
96
+ else if (this.element.parentNode) {
97
+ this.element.parentNode.replaceChild(newElement, this.element);
98
+ this.element = newElement;
99
+ }
100
+ return this.element;
101
+ }
102
+ render() {
103
+ throw new Error('Component must implement render() method');
104
+ }
105
+ }
106
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface Context<T> {
2
+ Provider: (props: {
3
+ value: T;
4
+ children?: any;
5
+ }) => any;
6
+ Consumer: (props: {
7
+ children: (value: T) => any;
8
+ }) => any;
9
+ _id: symbol;
10
+ useSelector: <S>(selector: (state: T) => S) => S;
11
+ }
12
+ export declare function createContext<T>(defaultValue: T): Context<T>;
13
+ export declare function useContext<T>(context: any): T;
@@ -0,0 +1,21 @@
1
+ const contexts = new Map();
2
+ let currentRender = null;
3
+ export function createContext(defaultValue) {
4
+ const context = {
5
+ Provider: ({ value, children }) => {
6
+ return children;
7
+ },
8
+ Consumer: ({ children }) => {
9
+ return children(defaultValue);
10
+ },
11
+ _id: Symbol(),
12
+ useSelector: (selector) => {
13
+ return selector(defaultValue);
14
+ }
15
+ };
16
+ return context;
17
+ }
18
+ export function useContext(context) {
19
+ return context;
20
+ }
21
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/context.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;AACxC,IAAI,aAAa,GAAoB,IAAI,CAAC;AAS1C,MAAM,UAAU,aAAa,CAAI,YAAe;IAC9C,MAAM,OAAO,GAAG;QACd,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAgC,EAAE,EAAE;YAC9D,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAmC,EAAE,EAAE;YAC1D,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,GAAG,EAAE,MAAM,EAAE;QACb,WAAW,EAAE,CAAI,QAAyB,EAAE,EAAE;YAC5C,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,OAAY;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { createContext, useContext } from './context.js';
2
+ export declare function setRenderCallback(callback: any, element: any, container: any): void;
3
+ export declare function prepareRender(): number;
4
+ export declare function finishRender(): void;
5
+ export declare function useState<T>(initial: T): [T, (newValue: T | ((prev: T) => T)) => void];
6
+ export declare function useEffect(callback: () => void | (() => void), deps?: any[]): void;
7
+ export declare function useMemo<T>(factory: () => T, deps?: any[]): T;
8
+ export declare function useRef<T>(initial: T): {
9
+ current: T;
10
+ };
11
+ export declare function useErrorBoundary(): ((() => void) | null)[];
12
+ export { createContext, useContext };
@@ -0,0 +1,170 @@
1
+ import { batchUpdates, isBatching } from './batch.js';
2
+ import { createContext, useContext } from './context.js';
3
+ // Current render ID counter
4
+ let currentRender = 0;
5
+ // State storage
6
+ const states = new Map();
7
+ const stateIndices = new Map();
8
+ const effects = new Map();
9
+ const memos = new Map();
10
+ const refs = new Map();
11
+ // Server-side rendering detection
12
+ const isServer = typeof window === 'undefined';
13
+ const serverStates = new Map();
14
+ // Rendering callbacks
15
+ let globalRenderCallback = null;
16
+ let globalContainer = null;
17
+ let currentElement = null;
18
+ export function setRenderCallback(callback, element, container) {
19
+ globalRenderCallback = callback;
20
+ globalContainer = container;
21
+ currentElement = element;
22
+ }
23
+ export function prepareRender() {
24
+ currentRender++;
25
+ stateIndices.set(currentRender, 0);
26
+ return currentRender;
27
+ }
28
+ export function finishRender() {
29
+ if (isServer) {
30
+ serverStates.delete(currentRender);
31
+ }
32
+ currentRender = 0;
33
+ }
34
+ export function useState(initial) {
35
+ if (!currentRender) {
36
+ throw new Error("useState must be called within a render");
37
+ }
38
+ // Handle server-side rendering separately
39
+ if (isServer) {
40
+ if (!serverStates.has(currentRender)) {
41
+ serverStates.set(currentRender, new Map());
42
+ }
43
+ const componentState = serverStates.get(currentRender);
44
+ const index = stateIndices.get(currentRender) || 0;
45
+ if (!componentState.has(index)) {
46
+ componentState.set(index, initial);
47
+ }
48
+ const state = componentState.get(index);
49
+ // In SSR, setState is a no-op
50
+ const setState = (_newValue) => { };
51
+ stateIndices.set(currentRender, index + 1);
52
+ return [state, setState];
53
+ }
54
+ // Client-side implementation
55
+ if (!states.has(currentRender)) {
56
+ states.set(currentRender, []);
57
+ }
58
+ const componentStates = states.get(currentRender);
59
+ const index = stateIndices.get(currentRender) || 0;
60
+ if (index >= componentStates.length) {
61
+ componentStates.push(initial);
62
+ }
63
+ const state = componentStates[index];
64
+ const setState = (newValue) => {
65
+ const nextValue = typeof newValue === 'function'
66
+ ? newValue(componentStates[index])
67
+ : newValue;
68
+ if (componentStates[index] === nextValue)
69
+ return;
70
+ componentStates[index] = nextValue;
71
+ if (isBatching) {
72
+ batchUpdates(() => rerender(currentRender));
73
+ }
74
+ else {
75
+ rerender(currentRender);
76
+ }
77
+ };
78
+ stateIndices.set(currentRender, index + 1);
79
+ return [state, setState];
80
+ }
81
+ export function useEffect(callback, deps) {
82
+ if (!currentRender)
83
+ throw new Error("useEffect must be called within a render");
84
+ // Skip effects on server
85
+ if (isServer) {
86
+ const effectIndex = stateIndices.get(currentRender) || 0;
87
+ stateIndices.set(currentRender, effectIndex + 1);
88
+ return;
89
+ }
90
+ const effectIndex = stateIndices.get(currentRender) || 0;
91
+ if (!effects.has(currentRender)) {
92
+ effects.set(currentRender, []);
93
+ }
94
+ const componentEffects = effects.get(currentRender);
95
+ const prevEffect = componentEffects[effectIndex];
96
+ if (!prevEffect || !deps || !prevEffect.deps || deps.some((dep, i) => dep !== prevEffect.deps[i])) {
97
+ if (prevEffect?.cleanup) {
98
+ prevEffect.cleanup();
99
+ }
100
+ // Schedule effect execution after render is complete
101
+ queueMicrotask(() => {
102
+ const cleanup = callback() || undefined;
103
+ componentEffects[effectIndex] = { cleanup, deps: deps || [] };
104
+ });
105
+ }
106
+ stateIndices.set(currentRender, effectIndex + 1);
107
+ }
108
+ export function useMemo(factory, deps) {
109
+ if (!currentRender)
110
+ throw new Error("useMemo must be called within a render");
111
+ const memoIndex = stateIndices.get(currentRender) || 0;
112
+ if (!memos.has(currentRender)) {
113
+ memos.set(currentRender, []);
114
+ }
115
+ const componentMemos = memos.get(currentRender);
116
+ const prevMemo = componentMemos[memoIndex];
117
+ if (!prevMemo || (deps && deps.some((dep, i) => !Object.is(dep, prevMemo.deps[i])))) {
118
+ const value = factory();
119
+ componentMemos[memoIndex] = { value, deps: deps || [] };
120
+ stateIndices.set(currentRender, memoIndex + 1);
121
+ return value;
122
+ }
123
+ stateIndices.set(currentRender, memoIndex + 1);
124
+ return prevMemo.value;
125
+ }
126
+ export function useRef(initial) {
127
+ if (!currentRender)
128
+ throw new Error("useRef must be called within a render");
129
+ const refIndex = stateIndices.get(currentRender) || 0;
130
+ if (!refs.has(currentRender)) {
131
+ refs.set(currentRender, []);
132
+ }
133
+ const componentRefs = refs.get(currentRender);
134
+ if (refIndex >= componentRefs.length) {
135
+ const ref = { current: initial };
136
+ componentRefs.push(ref);
137
+ stateIndices.set(currentRender, refIndex + 1);
138
+ return ref;
139
+ }
140
+ const ref = componentRefs[refIndex];
141
+ stateIndices.set(currentRender, refIndex + 1);
142
+ return ref;
143
+ }
144
+ async function rerender(rendererId) {
145
+ try {
146
+ // Clean up effects
147
+ const componentEffects = effects.get(rendererId);
148
+ if (componentEffects) {
149
+ componentEffects.forEach(effect => {
150
+ if (effect.cleanup)
151
+ effect.cleanup();
152
+ });
153
+ effects.set(rendererId, []);
154
+ }
155
+ // Trigger re-render
156
+ if (globalRenderCallback && globalContainer && currentElement) {
157
+ await globalRenderCallback(currentElement, globalContainer);
158
+ }
159
+ }
160
+ catch (error) {
161
+ console.error('Error during rerender:', error);
162
+ }
163
+ }
164
+ export function useErrorBoundary() {
165
+ const [error, setError] = useState(null);
166
+ return [error, () => setError(null)];
167
+ }
168
+ // Re-export from context to match index.js
169
+ export { createContext, useContext };
170
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzD,4BAA4B;AAC5B,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,gBAAgB;AAChB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;AACxC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC/C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;AACzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;AACvC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAiB,CAAC;AAEtC,kCAAkC;AAClC,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;AAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;AAEzD,sBAAsB;AACtB,IAAI,oBAAoB,GAAQ,IAAI,CAAC;AACrC,IAAI,eAAe,GAAQ,IAAI,CAAC;AAChC,IAAI,cAAc,GAAQ,IAAI,CAAC;AAE/B,MAAM,UAAU,iBAAiB,CAAC,QAAa,EAAE,OAAY,EAAE,SAAc;IAC3E,oBAAoB,GAAG,QAAQ,CAAC;IAChC,eAAe,GAAG,SAAS,CAAC;IAC5B,cAAc,GAAG,OAAO,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,aAAa,EAAE,CAAC;IAChB,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,QAAQ,EAAE,CAAC;QACb,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IACD,aAAa,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,OAAU;IACpC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,0CAA0C;IAC1C,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACrC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;QACxD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,CAAC,SAA+B,EAAE,EAAE,GAAE,CAAC,CAAC;QAEzD,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;IACnD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnD,IAAI,KAAK,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;QACpC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,CAAC,QAA8B,EAAE,EAAE;QAClD,MAAM,SAAS,GAAG,OAAO,QAAQ,KAAK,UAAU;YAC9C,CAAC,CAAE,QAA6B,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACxD,CAAC,CAAC,QAAQ,CAAC;QAEb,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,SAAS;YAAE,OAAO;QAEjD,eAAe,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QAEnC,IAAI,UAAU,EAAE,CAAC;YACf,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAmC,EAAE,IAAY;IACzE,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAEhF,yBAAyB;IACzB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzD,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAEzD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;IACrD,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClG,IAAI,UAAU,EAAE,OAAO,EAAE,CAAC;YACxB,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QAED,qDAAqD;QACrD,cAAc,CAAC,GAAG,EAAE;YAClB,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,SAAS,CAAC;YACxC,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,OAAO,CAAI,OAAgB,EAAE,IAAY;IACvD,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAE9E,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAEvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE3C,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;QACxB,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;QACxD,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IAC/C,OAAO,QAAQ,CAAC,KAAK,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,OAAU;IAClC,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;IAE/C,IAAI,QAAQ,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,UAAkB;IACxC,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAChC,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;QAED,oBAAoB;QACpB,IAAI,oBAAoB,IAAI,eAAe,IAAI,cAAc,EAAE,CAAC;YAC9D,MAAM,oBAAoB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,2CAA2C;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ export { useState, useEffect, useMemo, useRef, useErrorBoundary } from './hooks.js';
2
+ export { createContext, useContext } from './context.js';
3
+ export { batchUpdates } from './batch.js';
4
+ export { jsx, jsxs, Fragment } from './jsx-runtime.js';
5
+ export { render, hydrate } from './renderer.js';
6
+ export { renderToString } from './server-renderer.js';
7
+ export type { Context } from './context.js';
8
+ export type { VNode } from './types.js';
9
+ export type { Server, ServerConfig, User, DbConfig, MiddlewareFunction } from './server-types.js';
10
+ export declare const server: {
11
+ getServer(): Promise<never>;
12
+ };
@@ -0,0 +1,14 @@
1
+ export { useState, useEffect, useMemo, useRef, useErrorBoundary } from './hooks.js';
2
+ export { createContext, useContext } from './context.js';
3
+ export { batchUpdates } from './batch.js';
4
+ export { jsx, jsxs, Fragment } from './jsx-runtime.js';
5
+ export { render, hydrate } from './renderer.js';
6
+ export { renderToString } from './server-renderer.js';
7
+ // Provide placeholder server functionality
8
+ export const server = {
9
+ async getServer() {
10
+ throw new Error('Server module can only be used in Node.js environment');
11
+ }
12
+ };
13
+ let isHydrating = false;
14
+ //# sourceMappingURL=index.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.client.js","sourceRoot":"","sources":["../../../src/index.client.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAetD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;CACF,CAAC;AAEF,IAAI,WAAW,GAAG,KAAK,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { createElement } from './jsx-runtime.js';
2
+ import { loadGoWasm as loadGoWasmImpl, createTypedWasmFunction as createTypedWasmFunctionImpl, type GoWasmInstance } from './wasm.js';
3
+ import { jsx } from './jsx-runtime.js';
4
+ import { render, hydrate } from './renderer.js';
5
+ import { useState, useEffect, useMemo, useRef, useContext, useErrorBoundary } from './hooks.js';
6
+ import { createContext } from './context.js';
7
+ import { renderToString } from './server-renderer.js';
8
+ import { batchUpdates } from './batch.js';
9
+ import { diff, shouldComponentUpdate } from './vdom.js';
10
+ import { Component } from './component.js';
11
+ export { render, hydrate } from './renderer.js';
12
+ export { jsx, jsxs, jsxDEV, Fragment, createElement } from './jsx-runtime.js';
13
+ export { useState, useEffect, useMemo, useRef, useContext, useErrorBoundary, prepareRender, finishRender, setRenderCallback } from './hooks.js';
14
+ export { createContext } from './context.js';
15
+ export { renderToString } from './server-renderer.js';
16
+ export { batchUpdates, isBatching, getIsBatching } from './batch.js';
17
+ export { diff, shouldComponentUpdate } from './vdom.js';
18
+ export { Component } from './component.js';
19
+ export declare const server: {
20
+ getServer(): Promise<never>;
21
+ };
22
+ export declare const loadGoWasm: typeof loadGoWasmImpl;
23
+ export declare const createTypedWasmFunction: typeof createTypedWasmFunctionImpl;
24
+ export declare const goValues: {
25
+ stringToGo: (instance: GoWasmInstance, str: string) => number;
26
+ stringFromGo: (instance: GoWasmInstance, ptr: number) => string;
27
+ objectToGo: (instance: GoWasmInstance, obj: any) => number;
28
+ objectFromGo: (instance: GoWasmInstance, ptr: number) => any;
29
+ };
30
+ export type { GoWasmInstance, GoWasmOptions } from './wasm.js';
31
+ export declare const wasm: {
32
+ loadGoWasm: typeof loadGoWasmImpl;
33
+ createTypedWasmFunction: typeof createTypedWasmFunctionImpl;
34
+ goValues: {
35
+ stringToGo: (instance: GoWasmInstance, str: string) => number;
36
+ stringFromGo: (instance: GoWasmInstance, ptr: number) => string;
37
+ objectToGo: (instance: GoWasmInstance, obj: any) => number;
38
+ objectFromGo: (instance: GoWasmInstance, ptr: number) => any;
39
+ };
40
+ };
41
+ export type { Context } from './context.js';
42
+ export type { VNode } from './types.js';
43
+ export type { Server, ServerConfig, User, DbConfig, MiddlewareFunction } from './server-types.js';
44
+ export declare let isHydrating: boolean;
45
+ declare const _default: {
46
+ Fragment: ({ children }: {
47
+ children: any;
48
+ }) => any;
49
+ jsx: typeof jsx;
50
+ jsxs: typeof jsx;
51
+ createElement: typeof createElement;
52
+ render: typeof render;
53
+ hydrate: typeof hydrate;
54
+ useState: typeof useState;
55
+ useEffect: typeof useEffect;
56
+ useMemo: typeof useMemo;
57
+ useRef: typeof useRef;
58
+ useContext: typeof useContext;
59
+ useErrorBoundary: typeof useErrorBoundary;
60
+ createContext: typeof createContext;
61
+ renderToString: typeof renderToString;
62
+ batchUpdates: typeof batchUpdates;
63
+ server: {
64
+ getServer(): Promise<never>;
65
+ };
66
+ loadGoWasm: typeof loadGoWasmImpl;
67
+ createTypedWasmFunction: typeof createTypedWasmFunctionImpl;
68
+ goValues: {
69
+ stringToGo: (instance: GoWasmInstance, str: string) => number;
70
+ stringFromGo: (instance: GoWasmInstance, ptr: number) => string;
71
+ objectToGo: (instance: GoWasmInstance, obj: any) => number;
72
+ objectFromGo: (instance: GoWasmInstance, ptr: number) => any;
73
+ };
74
+ wasm: {
75
+ loadGoWasm: typeof loadGoWasmImpl;
76
+ createTypedWasmFunction: typeof createTypedWasmFunctionImpl;
77
+ goValues: {
78
+ stringToGo: (instance: GoWasmInstance, str: string) => number;
79
+ stringFromGo: (instance: GoWasmInstance, ptr: number) => string;
80
+ objectToGo: (instance: GoWasmInstance, obj: any) => number;
81
+ objectFromGo: (instance: GoWasmInstance, ptr: number) => any;
82
+ };
83
+ };
84
+ Component: typeof Component;
85
+ diff: typeof diff;
86
+ shouldComponentUpdate: typeof shouldComponentUpdate;
87
+ };
88
+ export default _default;
@@ -0,0 +1,70 @@
1
+ import { createElement } from './jsx-runtime.js';
2
+ import { loadGoWasm as loadGoWasmImpl, createTypedWasmFunction as createTypedWasmFunctionImpl, goValues as goValuesImpl } from './wasm.js';
3
+ // Import items needed for the default export
4
+ import { jsx, jsxs, Fragment } from './jsx-runtime.js';
5
+ import { render, hydrate } from './renderer.js';
6
+ import { useState, useEffect, useMemo, useRef, useContext, useErrorBoundary } from './hooks.js';
7
+ import { createContext } from './context.js';
8
+ import { renderToString } from './server-renderer.js';
9
+ import { batchUpdates } from './batch.js';
10
+ import { diff, shouldComponentUpdate } from './vdom.js';
11
+ import { Component } from './component.js';
12
+ // Re-export core modules with explicit names to ensure they appear in bundle
13
+ export { render, hydrate } from './renderer.js';
14
+ export { jsx, jsxs, jsxDEV, Fragment, createElement } from './jsx-runtime.js';
15
+ export { useState, useEffect, useMemo, useRef, useContext, useErrorBoundary, prepareRender, finishRender, setRenderCallback } from './hooks.js';
16
+ // Context API
17
+ export { createContext } from './context.js';
18
+ // Server-side rendering
19
+ export { renderToString } from './server-renderer.js';
20
+ // Batch updates utility
21
+ export { batchUpdates, isBatching, getIsBatching } from './batch.js';
22
+ // VDOM utilities
23
+ export { diff, shouldComponentUpdate } from './vdom.js';
24
+ // Export Component class
25
+ export { Component } from './component.js';
26
+ // Server module stub for browser environments
27
+ export const server = {
28
+ async getServer() {
29
+ throw new Error("Server module can only be used in Node.js environment");
30
+ }
31
+ };
32
+ // Export WASM functionality explicitly
33
+ export const loadGoWasm = loadGoWasmImpl;
34
+ export const createTypedWasmFunction = createTypedWasmFunctionImpl;
35
+ export const goValues = goValuesImpl;
36
+ // Add wasm object to ensure compatibility with existing dist/index.js
37
+ export const wasm = {
38
+ loadGoWasm: loadGoWasmImpl,
39
+ createTypedWasmFunction: createTypedWasmFunctionImpl,
40
+ goValues: goValuesImpl
41
+ };
42
+ // Export this so it can be properly identified in the bundle
43
+ export let isHydrating = false;
44
+ // Default export for compatibility with some module systems
45
+ export default {
46
+ Fragment: Fragment,
47
+ jsx: jsx,
48
+ jsxs: jsxs,
49
+ createElement: createElement,
50
+ render: render,
51
+ hydrate: hydrate,
52
+ useState: useState,
53
+ useEffect: useEffect,
54
+ useMemo: useMemo,
55
+ useRef: useRef,
56
+ useContext: useContext,
57
+ useErrorBoundary: useErrorBoundary,
58
+ createContext: createContext,
59
+ renderToString: renderToString,
60
+ batchUpdates: batchUpdates,
61
+ server: server,
62
+ loadGoWasm: loadGoWasm,
63
+ createTypedWasmFunction: createTypedWasmFunction,
64
+ goValues: goValues,
65
+ wasm: wasm,
66
+ Component: Component,
67
+ diff: diff,
68
+ shouldComponentUpdate: shouldComponentUpdate
69
+ };
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=jsx-dev-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-dev-runtime.js","sourceRoot":"","sources":["../../../../src/jsx-runtime/jsx-dev-runtime.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export declare function jsx(type: string | Function, props: any, key?: string): any;
2
+ export declare function jsxs(type: string | Function, props: any, key?: string): any;
3
+ export declare function createElement(vnode: any): HTMLElement | Text;
4
+ export declare const Fragment: unique symbol;
@@ -0,0 +1,41 @@
1
+ // This file serves as the entry point for the library, re-exporting core functionalities
2
+ export function jsx(type, props, key) {
3
+ return {
4
+ type,
5
+ props: props || {},
6
+ key
7
+ };
8
+ }
9
+ export function jsxs(type, props, key) {
10
+ return jsx(type, props, key);
11
+ }
12
+ export function createElement(vnode) {
13
+ if (typeof vnode === 'string' || typeof vnode === 'number') {
14
+ return document.createTextNode(String(vnode));
15
+ }
16
+ if (typeof vnode.type === 'function') {
17
+ const result = vnode.type(vnode.props);
18
+ return createElement(result);
19
+ }
20
+ const element = document.createElement(vnode.type);
21
+ Object.entries(vnode.props || {}).forEach(([name, value]) => {
22
+ if (name === 'children') {
23
+ const children = Array.isArray(value) ? value : [value];
24
+ children.forEach((child) => {
25
+ if (child != null) {
26
+ element.appendChild(createElement(child));
27
+ }
28
+ });
29
+ }
30
+ else if (name.startsWith('on')) {
31
+ const eventName = name.toLowerCase().substring(2);
32
+ element.addEventListener(eventName, value);
33
+ }
34
+ else {
35
+ element.setAttribute(name, value);
36
+ }
37
+ });
38
+ return element;
39
+ }
40
+ export const Fragment = Symbol('Fragment');
41
+ //# sourceMappingURL=jsx-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../../../../src/jsx-runtime/jsx-runtime.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,UAAU,GAAG,CAAC,IAAuB,EAAE,KAAU,EAAE,GAAY;IACnE,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,KAAK,IAAI,EAAE;QAClB,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAuB,EAAE,KAAU,EAAE,GAAY;IACpE,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAU;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAgB,EAAE,EAAE;QACzE,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxD,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;gBAC9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;oBAClB,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ interface VNode {
2
+ type: string | Function;
3
+ props: Record<string, any>;
4
+ }
5
+ declare function jsx(type: string | Function, props: any): VNode;
6
+ declare const Fragment: ({ children }: {
7
+ children: any;
8
+ }) => any;
9
+ declare function createElement(vnode: VNode | any): Promise<Node>;
10
+ export { jsx, jsx as jsxs, jsx as jsxDEV, Fragment, createElement };
11
+ declare const jsxRuntime: {
12
+ jsx: typeof jsx;
13
+ jsxs: typeof jsx;
14
+ jsxDEV: typeof jsx;
15
+ Fragment: ({ children }: {
16
+ children: any;
17
+ }) => any;
18
+ createElement: typeof createElement;
19
+ };
20
+ export default jsxRuntime;