frontend-hamroun 1.2.79 → 1.2.80

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 (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +129 -1513
  3. package/bin/cli.js +505 -144
  4. package/dist/index.cjs +2 -0
  5. package/dist/index.cjs.map +1 -0
  6. package/dist/index.client.cjs +2 -0
  7. package/dist/index.client.cjs.map +1 -0
  8. package/dist/index.client.js +26 -0
  9. package/dist/index.client.js.map +1 -0
  10. package/dist/index.js +298 -1
  11. package/dist/index.js.map +1 -0
  12. package/dist/jsx-runtime.cjs +2 -0
  13. package/dist/jsx-runtime.cjs.map +1 -0
  14. package/dist/jsx-runtime.js +93 -1
  15. package/dist/jsx-runtime.js.map +1 -0
  16. package/dist/renderer-Bo9zkUZ_.js +52 -0
  17. package/dist/renderer-Bo9zkUZ_.js.map +1 -0
  18. package/dist/renderer-Din1y3YM.cjs +2 -0
  19. package/dist/renderer-Din1y3YM.cjs.map +1 -0
  20. package/dist/server-renderer-CqIpQ-od.cjs +2 -0
  21. package/dist/server-renderer-CqIpQ-od.cjs.map +1 -0
  22. package/dist/server-renderer-QHt45Ip2.js +255 -0
  23. package/dist/server-renderer-QHt45Ip2.js.map +1 -0
  24. package/dist/server-renderer.cjs +2 -0
  25. package/dist/server-renderer.cjs.map +1 -0
  26. package/dist/server-renderer.js +5 -1
  27. package/dist/server-renderer.js.map +1 -0
  28. package/package.json +77 -120
  29. package/templates/basic-app/build.js +22 -0
  30. package/templates/basic-app/bun.lock +196 -0
  31. package/templates/basic-app/dev.js +27 -0
  32. package/templates/basic-app/docs/rapport_pfe.aux +27 -27
  33. package/templates/basic-app/docs/rapport_pfe.out +10 -10
  34. package/templates/basic-app/docs/rapport_pfe.toc +14 -14
  35. package/templates/basic-app/esbuild.config.js +28 -0
  36. package/templates/basic-app/index.html +1 -1
  37. package/templates/{fullstack-app → basic-app}/package-lock.json +4185 -5094
  38. package/templates/basic-app/package.json +29 -28
  39. package/templates/basic-app/server.js +24 -0
  40. package/templates/basic-app/src/App.tsx +26 -0
  41. package/templates/basic-app/src/client.tsx +11 -0
  42. package/templates/basic-app/src/components/Counter.tsx +18 -0
  43. package/templates/basic-app/src/jsx-shim.ts +4 -0
  44. package/templates/basic-app/src/main.tsx +0 -1
  45. package/templates/basic-app/src/server.ts +52 -0
  46. package/templates/basic-app/tsconfig.server.json +11 -0
  47. package/templates/fullstack-app/build/main.css +874 -874
  48. package/templates/fullstack-app/build/main.css.map +7 -7
  49. package/templates/fullstack-app/build/main.js +967 -967
  50. package/templates/fullstack-app/build/main.js.map +7 -7
  51. package/templates/fullstack-app/public/styles.css +768 -768
  52. package/templates/go/example.go +99 -154
  53. package/templates/go-wasm-app/babel.config.js +2 -8
  54. package/templates/go-wasm-app/package.json +12 -21
  55. package/templates/go-wasm-app/public/wasm/wasm_exec.js +561 -561
  56. package/templates/go-wasm-app/public/wasm/wasm_exec_node.js +39 -39
  57. package/templates/go-wasm-app/server.js +510 -59
  58. package/templates/go-wasm-app/src/app.js +2 -22
  59. package/templates/go-wasm-app/src/wasm/example.go +75 -75
  60. package/templates/go-wasm-app/vite.config.js +5 -16
  61. package/templates/ssr-template/server.js +2 -2
  62. package/templates/ssr-template/vite.config.js +5 -16
  63. package/dist/Counter.d.ts +0 -0
  64. package/dist/batch/package.json +0 -16
  65. package/dist/client-router/package.json +0 -16
  66. package/dist/component/package.json +0 -16
  67. package/dist/context/package.json +0 -16
  68. package/dist/event-bus/package.json +0 -16
  69. package/dist/forms/package.json +0 -16
  70. package/dist/hooks/package.json +0 -16
  71. package/dist/hooks-0728361a.cjs +0 -1
  72. package/dist/hooks-b58f947c.js +0 -133
  73. package/dist/hooks.js +0 -1
  74. package/dist/hooks.mjs +0 -13
  75. package/dist/index.mjs +0 -137
  76. package/dist/jsx-runtime/package.json +0 -16
  77. package/dist/jsx-runtime.mjs +0 -64
  78. package/dist/lifecycle-events/package.json +0 -16
  79. package/dist/package.json +0 -71
  80. package/dist/render-component/package.json +0 -16
  81. package/dist/renderer/package.json +0 -16
  82. package/dist/renderer.js +0 -1
  83. package/dist/renderer.mjs +0 -27
  84. package/dist/router/package.json +0 -16
  85. package/dist/server/package.json +0 -17
  86. package/dist/server/src/batch.d.ts +0 -3
  87. package/dist/server/src/batch.js +0 -23
  88. package/dist/server/src/batch.js.map +0 -1
  89. package/dist/server/src/client-router.d.ts +0 -60
  90. package/dist/server/src/client-router.js +0 -210
  91. package/dist/server/src/client-router.js.map +0 -1
  92. package/dist/server/src/component.d.ts +0 -14
  93. package/dist/server/src/component.js +0 -106
  94. package/dist/server/src/component.js.map +0 -1
  95. package/dist/server/src/context.d.ts +0 -13
  96. package/dist/server/src/context.js +0 -21
  97. package/dist/server/src/context.js.map +0 -1
  98. package/dist/server/src/event-bus.d.ts +0 -23
  99. package/dist/server/src/event-bus.js +0 -75
  100. package/dist/server/src/event-bus.js.map +0 -1
  101. package/dist/server/src/forms.d.ts +0 -40
  102. package/dist/server/src/forms.js +0 -148
  103. package/dist/server/src/forms.js.map +0 -1
  104. package/dist/server/src/hooks.d.ts +0 -12
  105. package/dist/server/src/hooks.js +0 -170
  106. package/dist/server/src/hooks.js.map +0 -1
  107. package/dist/server/src/index.client.d.ts +0 -12
  108. package/dist/server/src/index.client.js +0 -14
  109. package/dist/server/src/index.client.js.map +0 -1
  110. package/dist/server/src/index.d.ts +0 -88
  111. package/dist/server/src/index.js +0 -79
  112. package/dist/server/src/index.js.map +0 -1
  113. package/dist/server/src/jsx-runtime/jsx-dev-runtime.d.ts +0 -1
  114. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js +0 -2
  115. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js.map +0 -1
  116. package/dist/server/src/jsx-runtime/jsx-runtime.d.ts +0 -4
  117. package/dist/server/src/jsx-runtime/jsx-runtime.js +0 -41
  118. package/dist/server/src/jsx-runtime/jsx-runtime.js.map +0 -1
  119. package/dist/server/src/jsx-runtime.d.ts +0 -20
  120. package/dist/server/src/jsx-runtime.js +0 -105
  121. package/dist/server/src/jsx-runtime.js.map +0 -1
  122. package/dist/server/src/lifecycle-events.d.ts +0 -108
  123. package/dist/server/src/lifecycle-events.js +0 -177
  124. package/dist/server/src/lifecycle-events.js.map +0 -1
  125. package/dist/server/src/renderComponent.d.ts +0 -13
  126. package/dist/server/src/renderComponent.js +0 -30
  127. package/dist/server/src/renderComponent.js.map +0 -1
  128. package/dist/server/src/renderer.d.ts +0 -2
  129. package/dist/server/src/renderer.js +0 -31
  130. package/dist/server/src/renderer.js.map +0 -1
  131. package/dist/server/src/router.d.ts +0 -55
  132. package/dist/server/src/router.js +0 -166
  133. package/dist/server/src/router.js.map +0 -1
  134. package/dist/server/src/server/api-router.d.ts +0 -15
  135. package/dist/server/src/server/api-router.js +0 -111
  136. package/dist/server/src/server/api-router.js.map +0 -1
  137. package/dist/server/src/server/auth.d.ts +0 -32
  138. package/dist/server/src/server/auth.js +0 -80
  139. package/dist/server/src/server/auth.js.map +0 -1
  140. package/dist/server/src/server/database.d.ts +0 -24
  141. package/dist/server/src/server/database.js +0 -135
  142. package/dist/server/src/server/database.js.map +0 -1
  143. package/dist/server/src/server/index.d.ts +0 -116
  144. package/dist/server/src/server/index.js +0 -508
  145. package/dist/server/src/server/index.js.map +0 -1
  146. package/dist/server/src/server/middleware.d.ts +0 -11
  147. package/dist/server/src/server/middleware.js +0 -46
  148. package/dist/server/src/server/middleware.js.map +0 -1
  149. package/dist/server/src/server/server.d.ts +0 -9
  150. package/dist/server/src/server/server.js +0 -87
  151. package/dist/server/src/server/server.js.map +0 -1
  152. package/dist/server/src/server/templates.d.ts +0 -30
  153. package/dist/server/src/server/templates.js +0 -208
  154. package/dist/server/src/server/templates.js.map +0 -1
  155. package/dist/server/src/server/types.d.ts +0 -38
  156. package/dist/server/src/server/types.js +0 -4
  157. package/dist/server/src/server/types.js.map +0 -1
  158. package/dist/server/src/server/utils.d.ts +0 -70
  159. package/dist/server/src/server/utils.js +0 -156
  160. package/dist/server/src/server/utils.js.map +0 -1
  161. package/dist/server/src/server/wasm.d.ts +0 -9
  162. package/dist/server/src/server/wasm.js +0 -117
  163. package/dist/server/src/server/wasm.js.map +0 -1
  164. package/dist/server/src/server-renderer.d.ts +0 -5
  165. package/dist/server/src/server-renderer.js +0 -106
  166. package/dist/server/src/server-renderer.js.map +0 -1
  167. package/dist/server/src/server-types.d.ts +0 -42
  168. package/dist/server/src/server-types.js +0 -6
  169. package/dist/server/src/server-types.js.map +0 -1
  170. package/dist/server/src/store.d.ts +0 -41
  171. package/dist/server/src/store.js +0 -99
  172. package/dist/server/src/store.js.map +0 -1
  173. package/dist/server/src/types.d.ts +0 -19
  174. package/dist/server/src/types.js +0 -2
  175. package/dist/server/src/types.js.map +0 -1
  176. package/dist/server/src/utils.d.ts +0 -46
  177. package/dist/server/src/utils.js +0 -144
  178. package/dist/server/src/utils.js.map +0 -1
  179. package/dist/server/src/vdom.d.ts +0 -8
  180. package/dist/server/src/vdom.js +0 -22
  181. package/dist/server/src/vdom.js.map +0 -1
  182. package/dist/server/src/wasm.d.ts +0 -36
  183. package/dist/server/src/wasm.js +0 -159
  184. package/dist/server/src/wasm.js.map +0 -1
  185. package/dist/server/tsconfig.server.tsbuildinfo +0 -1
  186. package/dist/server-renderer/package.json +0 -16
  187. package/dist/server-renderer.mjs +0 -64
  188. package/dist/store/package.json +0 -16
  189. package/dist/types/package.json +0 -16
  190. package/dist/utils/package.json +0 -16
  191. package/dist/vdom/package.json +0 -16
  192. package/dist/wasm/package.json +0 -16
  193. package/dist/wasm.js +0 -1
  194. package/dist/wasm.mjs +0 -103
  195. package/templates/basic-app/docs/rapport_pfe.log +0 -399
  196. package/templates/complete-app/client.js +0 -58
  197. package/templates/complete-app/package-lock.json +0 -2536
  198. package/templates/complete-app/package.json +0 -17
  199. package/templates/complete-app/pages/about.js +0 -119
  200. package/templates/complete-app/pages/index.js +0 -157
  201. package/templates/complete-app/pages/wasm-demo.js +0 -290
  202. package/templates/complete-app/public/client.js +0 -80
  203. package/templates/complete-app/public/index.html +0 -47
  204. package/templates/complete-app/public/styles.css +0 -579
  205. package/templates/complete-app/readme.md +0 -188
  206. package/templates/complete-app/server.js +0 -417
  207. package/templates/complete-app/server.ts +0 -275
  208. package/templates/complete-app/src/App.tsx +0 -59
  209. package/templates/complete-app/src/client.ts +0 -61
  210. package/templates/complete-app/src/client.tsx +0 -18
  211. package/templates/complete-app/src/pages/index.tsx +0 -51
  212. package/templates/complete-app/src/server.ts +0 -218
  213. package/templates/complete-app/tsconfig.json +0 -22
  214. package/templates/complete-app/tsconfig.server.json +0 -19
  215. package/templates/complete-app/vite.config.js +0 -57
  216. package/templates/complete-app/vite.config.ts +0 -30
  217. package/templates/go-wasm-app/build.config.js +0 -62
  218. package/templates/go-wasm-app/build.js +0 -218
  219. package/templates/go-wasm-app/package-lock.json +0 -3732
@@ -1,106 +0,0 @@
1
- import { createElement } from './jsx-runtime';
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/component.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
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;
@@ -1,21 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Event bus for communication between components
3
- */
4
- export type EventHandler = (...args: any[]) => void;
5
- export interface EventBus {
6
- on(event: string, handler: EventHandler): () => void;
7
- once(event: string, handler: EventHandler): () => void;
8
- off(event: string, handler?: EventHandler): void;
9
- emit(event: string, ...args: any[]): void;
10
- clear(event?: string): void;
11
- }
12
- export declare function createEventBus(): EventBus;
13
- declare const globalEventBus: EventBus;
14
- export declare function useEvent(event: string, handler: EventHandler, options?: {
15
- once?: boolean;
16
- }): () => void;
17
- export { globalEventBus as eventBus };
18
- declare const _default: {
19
- createEventBus: typeof createEventBus;
20
- eventBus: EventBus;
21
- useEvent: typeof useEvent;
22
- };
23
- export default _default;
@@ -1,75 +0,0 @@
1
- export function createEventBus() {
2
- const events = new Map();
3
- const onceHandlers = new WeakMap();
4
- const on = (event, handler) => {
5
- if (!events.has(event)) {
6
- events.set(event, new Set());
7
- }
8
- events.get(event).add(handler);
9
- // Return a function to remove this handler
10
- return () => off(event, handler);
11
- };
12
- const once = (event, handler) => {
13
- // Create a wrapper that will call the handler and remove itself
14
- const onceWrapper = (...args) => {
15
- off(event, onceWrapper);
16
- handler(...args);
17
- };
18
- // Store the mapping between the original handler and the wrapper
19
- onceHandlers.set(handler, onceWrapper);
20
- // Register the wrapper
21
- return on(event, onceWrapper);
22
- };
23
- const off = (event, handler) => {
24
- // If no handler is provided, remove all handlers for the event
25
- if (!handler) {
26
- events.delete(event);
27
- return;
28
- }
29
- // Check if it's a once handler wrapper
30
- const wrappedHandler = onceHandlers.get(handler);
31
- const handlerToRemove = wrappedHandler || handler;
32
- if (events.has(event)) {
33
- events.get(event).delete(handlerToRemove);
34
- // Clean up empty event sets
35
- if (events.get(event).size === 0) {
36
- events.delete(event);
37
- }
38
- }
39
- };
40
- const emit = (event, ...args) => {
41
- if (!events.has(event)) {
42
- return;
43
- }
44
- // Create a copy of the handlers to avoid issues if handlers modify the set
45
- const handlers = Array.from(events.get(event));
46
- // Call each handler with the arguments
47
- for (const handler of handlers) {
48
- handler(...args);
49
- }
50
- };
51
- const clear = (event) => {
52
- if (event) {
53
- events.delete(event);
54
- }
55
- else {
56
- events.clear();
57
- }
58
- };
59
- return { on, once, off, emit, clear };
60
- }
61
- // Create a global event bus instance
62
- const globalEventBus = createEventBus();
63
- // Hook to use the event bus in components
64
- export function useEvent(event, handler, options = {}) {
65
- return options.once
66
- ? globalEventBus.once(event, handler)
67
- : globalEventBus.on(event, handler);
68
- }
69
- export { globalEventBus as eventBus };
70
- export default {
71
- createEventBus,
72
- eventBus: globalEventBus,
73
- useEvent
74
- };
75
- //# sourceMappingURL=event-bus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../src/event-bus.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- export interface FormField {
2
- value: any;
3
- error?: string;
4
- touched: boolean;
5
- dirty: boolean;
6
- }
7
- export interface FormState {
8
- fields: Record<string, FormField>;
9
- isValid: boolean;
10
- isDirty: boolean;
11
- isSubmitting: boolean;
12
- submitCount: number;
13
- }
14
- export interface FormOptions<T> {
15
- initialValues: T;
16
- validate?: (values: T) => Record<string, string>;
17
- onSubmit?: (values: T, form: FormState) => void | Promise<void>;
18
- }
19
- export interface FormConfig<T> {
20
- values: T;
21
- errors: Record<string, string>;
22
- touched: Record<string, boolean>;
23
- dirty: Record<string, boolean>;
24
- isValid: boolean;
25
- isDirty: boolean;
26
- isSubmitting: boolean;
27
- submitCount: number;
28
- handleChange: (e: any) => void;
29
- handleBlur: (e: any) => void;
30
- handleSubmit: (e: any) => void;
31
- setFieldValue: (field: string, value: any) => void;
32
- setFieldError: (field: string, error: string) => void;
33
- setValues: (values: Partial<T>) => void;
34
- resetForm: () => void;
35
- }
36
- export declare function useForm<T extends Record<string, any>>(options: FormOptions<T>): FormConfig<T>;
37
- declare const _default: {
38
- useForm: typeof useForm;
39
- };
40
- export default _default;
@@ -1,148 +0,0 @@
1
- /**
2
- * Form handling utilities for the framework
3
- */
4
- import { useState, useEffect } from './hooks';
5
- export function useForm(options) {
6
- const { initialValues, validate, onSubmit } = options;
7
- const [values, setValues] = useState(initialValues);
8
- const [errors, setErrors] = useState({});
9
- const [touched, setTouched] = useState({});
10
- const [dirty, setDirty] = useState({});
11
- const [isSubmitting, setIsSubmitting] = useState(false);
12
- const [submitCount, setSubmitCount] = useState(0);
13
- // Track form validity and dirty state
14
- const isValid = Object.keys(errors).length === 0;
15
- const isDirty = Object.values(dirty).some(Boolean);
16
- // Validate form when values or validate function changes
17
- useEffect(() => {
18
- if (validate) {
19
- const validationErrors = validate(values);
20
- setErrors(validationErrors || {});
21
- }
22
- }, [values, validate]);
23
- // Handle form input changes
24
- const handleChange = (e) => {
25
- const { name, value, type, checked } = e.target;
26
- const fieldValue = type === 'checkbox' ? checked : value;
27
- setValues(prev => ({
28
- ...prev,
29
- [name]: fieldValue
30
- }));
31
- setDirty(prev => ({
32
- ...prev,
33
- [name]: true
34
- }));
35
- };
36
- // Handle field blur
37
- const handleBlur = (e) => {
38
- const { name } = e.target;
39
- setTouched(prev => ({
40
- ...prev,
41
- [name]: true
42
- }));
43
- };
44
- // Set field value programmatically
45
- const setFieldValue = (field, value) => {
46
- setValues(prev => ({
47
- ...prev,
48
- [field]: value
49
- }));
50
- setDirty(prev => ({
51
- ...prev,
52
- [field]: true
53
- }));
54
- };
55
- // Set field error programmatically
56
- const setFieldError = (field, error) => {
57
- setErrors(prev => ({
58
- ...prev,
59
- [field]: error
60
- }));
61
- };
62
- // Update multiple values at once
63
- const updateValues = (newValues) => {
64
- setValues(prev => ({
65
- ...prev,
66
- ...newValues
67
- }));
68
- // Mark changed fields as dirty
69
- const dirtyFields = {};
70
- Object.keys(newValues).forEach(key => {
71
- dirtyFields[key] = true;
72
- });
73
- setDirty(prev => ({
74
- ...prev,
75
- ...dirtyFields
76
- }));
77
- };
78
- // Reset form to initial state
79
- const resetForm = () => {
80
- setValues(initialValues);
81
- setErrors({});
82
- setTouched({});
83
- setDirty({});
84
- setIsSubmitting(false);
85
- };
86
- // Handle form submission
87
- const handleSubmit = async (e) => {
88
- e.preventDefault();
89
- // Mark all fields as touched
90
- const allTouched = {};
91
- Object.keys(values).forEach(key => {
92
- allTouched[key] = true;
93
- });
94
- setTouched(allTouched);
95
- // Validate before submission
96
- let validationErrors = {};
97
- if (validate) {
98
- validationErrors = validate(values);
99
- setErrors(validationErrors || {});
100
- }
101
- // Only proceed if valid
102
- if (Object.keys(validationErrors).length === 0 && onSubmit) {
103
- setIsSubmitting(true);
104
- setSubmitCount(count => count + 1);
105
- try {
106
- await onSubmit(values, {
107
- fields: Object.keys(values).reduce((acc, key) => {
108
- acc[key] = {
109
- value: values[key],
110
- error: errors[key],
111
- touched: touched[key] || false,
112
- dirty: dirty[key] || false
113
- };
114
- return acc;
115
- }, {}),
116
- isValid,
117
- isDirty,
118
- isSubmitting: true,
119
- submitCount: submitCount + 1
120
- });
121
- }
122
- finally {
123
- setIsSubmitting(false);
124
- }
125
- }
126
- };
127
- return {
128
- values,
129
- errors,
130
- touched,
131
- dirty,
132
- isValid,
133
- isDirty,
134
- isSubmitting,
135
- submitCount,
136
- handleChange,
137
- handleBlur,
138
- handleSubmit,
139
- setFieldValue,
140
- setFieldError,
141
- setValues: updateValues,
142
- resetForm
143
- };
144
- }
145
- export default {
146
- useForm
147
- };
148
- //# sourceMappingURL=forms.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/forms.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
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 };
@@ -1,170 +0,0 @@
1
- import { batchUpdates, isBatching } from './batch';
2
- import { createContext, useContext } from './context';
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/hooks.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
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
- };