frontend-hamroun 1.2.79 → 1.2.82

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 (259) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +129 -1513
  3. package/bin/cli.js +506 -145
  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 +299 -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/dev.js +27 -0
  31. package/templates/basic-app/esbuild.config.js +28 -0
  32. package/templates/basic-app/index.html +1 -1
  33. package/templates/basic-app/package.json +29 -28
  34. package/templates/basic-app/server.js +24 -0
  35. package/templates/basic-app/src/App.jsx +16 -0
  36. package/templates/basic-app/src/App.tsx +26 -0
  37. package/templates/basic-app/src/client.jsx +5 -0
  38. package/templates/basic-app/src/client.tsx +11 -0
  39. package/templates/basic-app/src/components/Counter.jsx +13 -0
  40. package/templates/basic-app/src/components/Counter.tsx +18 -0
  41. package/templates/basic-app/src/jsx-shim.js +3 -0
  42. package/templates/basic-app/src/jsx-shim.ts +11 -0
  43. package/templates/basic-app/src/main.jsx +98 -0
  44. package/templates/basic-app/src/main.tsx +0 -1
  45. package/templates/basic-app/src/server.js +47 -0
  46. package/templates/basic-app/src/server.ts +52 -0
  47. package/templates/basic-app/tsconfig.server.json +11 -0
  48. package/templates/complete-app/lib/frontend-hamroun.js +182 -0
  49. package/templates/complete-app/package.json +2 -1
  50. package/templates/complete-app/pages/about.jsx +0 -0
  51. package/templates/complete-app/pages/index.jsx +0 -0
  52. package/templates/complete-app/pages/wasm-demo.jsx +0 -0
  53. package/templates/complete-app/public/client.js +58 -49
  54. package/templates/complete-app/public/index.html +88 -17
  55. package/templates/complete-app/public/styles.css +30 -533
  56. package/templates/complete-app/server.js +31 -222
  57. package/templates/complete-app/wasm/build.bat +0 -0
  58. package/templates/complete-app/wasm/build.sh +0 -0
  59. package/templates/complete-app/wasm/example.go +0 -0
  60. package/templates/fullstack-app/build/main.js +130 -101
  61. package/templates/fullstack-app/build/main.js.map +4 -4
  62. package/templates/fullstack-app/package-lock.json +1773 -566
  63. package/templates/ssr-template/esbuild.config.js +33 -0
  64. package/templates/ssr-template/jsx-shim.js +1 -0
  65. package/templates/ssr-template/package.json +22 -16
  66. package/templates/ssr-template/src/App.tsx +12 -52
  67. package/templates/ssr-template/src/client.tsx +3 -17
  68. package/templates/ssr-template/src/server.ts +21 -204
  69. package/templates/ssr-template/tsconfig.json +10 -13
  70. package/templates/ssr-template/tsconfig.server.json +6 -14
  71. package/templates/wasm/build-wasm.js +228 -0
  72. package/templates/wasm/esbuild.config.js +63 -0
  73. package/templates/wasm/go/main.go +256 -0
  74. package/templates/wasm/go/wasm_exec.js +0 -0
  75. package/templates/wasm/index.html +97 -0
  76. package/templates/wasm/jsx-shim.js +9 -0
  77. package/templates/{go-wasm-app → wasm}/package-lock.json +5307 -3732
  78. package/templates/wasm/package.json +42 -0
  79. package/templates/wasm/public/example.wasm +0 -0
  80. package/templates/wasm/src/App.tsx +564 -0
  81. package/templates/wasm/src/client.tsx +220 -0
  82. package/templates/wasm/src/index.tsx +21 -0
  83. package/templates/wasm/src/server.ts +145 -0
  84. package/templates/wasm/tsconfig.json +21 -0
  85. package/templates/wasm/tsconfig.node.json +13 -0
  86. package/templates/wasm/tsconfig.server.json +23 -0
  87. package/templates/wasm/vite.config.ts +56 -0
  88. package/templates/wasm/wasm-loader.js +103 -0
  89. package/dist/batch/package.json +0 -16
  90. package/dist/client-router/package.json +0 -16
  91. package/dist/component/package.json +0 -16
  92. package/dist/context/package.json +0 -16
  93. package/dist/event-bus/package.json +0 -16
  94. package/dist/forms/package.json +0 -16
  95. package/dist/hooks/package.json +0 -16
  96. package/dist/hooks-0728361a.cjs +0 -1
  97. package/dist/hooks-b58f947c.js +0 -133
  98. package/dist/hooks.js +0 -1
  99. package/dist/hooks.mjs +0 -13
  100. package/dist/index.mjs +0 -137
  101. package/dist/jsx-runtime/package.json +0 -16
  102. package/dist/jsx-runtime.mjs +0 -64
  103. package/dist/lifecycle-events/package.json +0 -16
  104. package/dist/package.json +0 -71
  105. package/dist/render-component/package.json +0 -16
  106. package/dist/renderer/package.json +0 -16
  107. package/dist/renderer.js +0 -1
  108. package/dist/renderer.mjs +0 -27
  109. package/dist/router/package.json +0 -16
  110. package/dist/server/package.json +0 -17
  111. package/dist/server/src/batch.d.ts +0 -3
  112. package/dist/server/src/batch.js +0 -23
  113. package/dist/server/src/batch.js.map +0 -1
  114. package/dist/server/src/client-router.d.ts +0 -60
  115. package/dist/server/src/client-router.js +0 -210
  116. package/dist/server/src/client-router.js.map +0 -1
  117. package/dist/server/src/component.d.ts +0 -14
  118. package/dist/server/src/component.js +0 -106
  119. package/dist/server/src/component.js.map +0 -1
  120. package/dist/server/src/context.d.ts +0 -13
  121. package/dist/server/src/context.js +0 -21
  122. package/dist/server/src/context.js.map +0 -1
  123. package/dist/server/src/event-bus.d.ts +0 -23
  124. package/dist/server/src/event-bus.js +0 -75
  125. package/dist/server/src/event-bus.js.map +0 -1
  126. package/dist/server/src/forms.d.ts +0 -40
  127. package/dist/server/src/forms.js +0 -148
  128. package/dist/server/src/forms.js.map +0 -1
  129. package/dist/server/src/hooks.d.ts +0 -12
  130. package/dist/server/src/hooks.js +0 -170
  131. package/dist/server/src/hooks.js.map +0 -1
  132. package/dist/server/src/index.client.d.ts +0 -12
  133. package/dist/server/src/index.client.js +0 -14
  134. package/dist/server/src/index.client.js.map +0 -1
  135. package/dist/server/src/index.d.ts +0 -88
  136. package/dist/server/src/index.js +0 -79
  137. package/dist/server/src/index.js.map +0 -1
  138. package/dist/server/src/jsx-runtime/jsx-dev-runtime.d.ts +0 -1
  139. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js +0 -2
  140. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js.map +0 -1
  141. package/dist/server/src/jsx-runtime/jsx-runtime.d.ts +0 -4
  142. package/dist/server/src/jsx-runtime/jsx-runtime.js +0 -41
  143. package/dist/server/src/jsx-runtime/jsx-runtime.js.map +0 -1
  144. package/dist/server/src/jsx-runtime.d.ts +0 -20
  145. package/dist/server/src/jsx-runtime.js +0 -105
  146. package/dist/server/src/jsx-runtime.js.map +0 -1
  147. package/dist/server/src/lifecycle-events.d.ts +0 -108
  148. package/dist/server/src/lifecycle-events.js +0 -177
  149. package/dist/server/src/lifecycle-events.js.map +0 -1
  150. package/dist/server/src/renderComponent.d.ts +0 -13
  151. package/dist/server/src/renderComponent.js +0 -30
  152. package/dist/server/src/renderComponent.js.map +0 -1
  153. package/dist/server/src/renderer.d.ts +0 -2
  154. package/dist/server/src/renderer.js +0 -31
  155. package/dist/server/src/renderer.js.map +0 -1
  156. package/dist/server/src/router.d.ts +0 -55
  157. package/dist/server/src/router.js +0 -166
  158. package/dist/server/src/router.js.map +0 -1
  159. package/dist/server/src/server/api-router.d.ts +0 -15
  160. package/dist/server/src/server/api-router.js +0 -111
  161. package/dist/server/src/server/api-router.js.map +0 -1
  162. package/dist/server/src/server/auth.d.ts +0 -32
  163. package/dist/server/src/server/auth.js +0 -80
  164. package/dist/server/src/server/auth.js.map +0 -1
  165. package/dist/server/src/server/database.d.ts +0 -24
  166. package/dist/server/src/server/database.js +0 -135
  167. package/dist/server/src/server/database.js.map +0 -1
  168. package/dist/server/src/server/index.d.ts +0 -116
  169. package/dist/server/src/server/index.js +0 -508
  170. package/dist/server/src/server/index.js.map +0 -1
  171. package/dist/server/src/server/middleware.d.ts +0 -11
  172. package/dist/server/src/server/middleware.js +0 -46
  173. package/dist/server/src/server/middleware.js.map +0 -1
  174. package/dist/server/src/server/server.d.ts +0 -9
  175. package/dist/server/src/server/server.js +0 -87
  176. package/dist/server/src/server/server.js.map +0 -1
  177. package/dist/server/src/server/templates.d.ts +0 -30
  178. package/dist/server/src/server/templates.js +0 -208
  179. package/dist/server/src/server/templates.js.map +0 -1
  180. package/dist/server/src/server/types.d.ts +0 -38
  181. package/dist/server/src/server/types.js +0 -4
  182. package/dist/server/src/server/types.js.map +0 -1
  183. package/dist/server/src/server/utils.d.ts +0 -70
  184. package/dist/server/src/server/utils.js +0 -156
  185. package/dist/server/src/server/utils.js.map +0 -1
  186. package/dist/server/src/server/wasm.d.ts +0 -9
  187. package/dist/server/src/server/wasm.js +0 -117
  188. package/dist/server/src/server/wasm.js.map +0 -1
  189. package/dist/server/src/server-renderer.d.ts +0 -5
  190. package/dist/server/src/server-renderer.js +0 -106
  191. package/dist/server/src/server-renderer.js.map +0 -1
  192. package/dist/server/src/server-types.d.ts +0 -42
  193. package/dist/server/src/server-types.js +0 -6
  194. package/dist/server/src/server-types.js.map +0 -1
  195. package/dist/server/src/store.d.ts +0 -41
  196. package/dist/server/src/store.js +0 -99
  197. package/dist/server/src/store.js.map +0 -1
  198. package/dist/server/src/types.d.ts +0 -19
  199. package/dist/server/src/types.js +0 -2
  200. package/dist/server/src/types.js.map +0 -1
  201. package/dist/server/src/utils.d.ts +0 -46
  202. package/dist/server/src/utils.js +0 -144
  203. package/dist/server/src/utils.js.map +0 -1
  204. package/dist/server/src/vdom.d.ts +0 -8
  205. package/dist/server/src/vdom.js +0 -22
  206. package/dist/server/src/vdom.js.map +0 -1
  207. package/dist/server/src/wasm.d.ts +0 -36
  208. package/dist/server/src/wasm.js +0 -159
  209. package/dist/server/src/wasm.js.map +0 -1
  210. package/dist/server/tsconfig.server.tsbuildinfo +0 -1
  211. package/dist/server-renderer/package.json +0 -16
  212. package/dist/server-renderer.mjs +0 -64
  213. package/dist/store/package.json +0 -16
  214. package/dist/types/package.json +0 -16
  215. package/dist/utils/package.json +0 -16
  216. package/dist/vdom/package.json +0 -16
  217. package/dist/wasm/package.json +0 -16
  218. package/dist/wasm.js +0 -1
  219. package/dist/wasm.mjs +0 -103
  220. package/templates/basic-app/docs/rapport_pfe.aux +0 -27
  221. package/templates/basic-app/docs/rapport_pfe.log +0 -399
  222. package/templates/basic-app/docs/rapport_pfe.out +0 -10
  223. package/templates/basic-app/docs/rapport_pfe.pdf +0 -0
  224. package/templates/basic-app/docs/rapport_pfe.tex +0 -68
  225. package/templates/basic-app/docs/rapport_pfe.toc +0 -14
  226. package/templates/complete-app/package-lock.json +0 -2536
  227. package/templates/go-wasm-app/README.md +0 -38
  228. package/templates/go-wasm-app/babel.config.js +0 -21
  229. package/templates/go-wasm-app/build-client.js +0 -49
  230. package/templates/go-wasm-app/build-wasm.js +0 -237
  231. package/templates/go-wasm-app/build.config.js +0 -62
  232. package/templates/go-wasm-app/build.js +0 -218
  233. package/templates/go-wasm-app/package.json +0 -32
  234. package/templates/go-wasm-app/public/index.html +0 -128
  235. package/templates/go-wasm-app/public/styles.css +0 -197
  236. package/templates/go-wasm-app/public/wasm/example.wasm +0 -0
  237. package/templates/go-wasm-app/public/wasm/wasm_exec_node.js +0 -39
  238. package/templates/go-wasm-app/server.js +0 -70
  239. package/templates/go-wasm-app/src/App.jsx +0 -38
  240. package/templates/go-wasm-app/src/app.js +0 -173
  241. package/templates/go-wasm-app/src/client.js +0 -57
  242. package/templates/go-wasm-app/src/components/Footer.jsx +0 -13
  243. package/templates/go-wasm-app/src/components/Header.jsx +0 -19
  244. package/templates/go-wasm-app/src/components/WasmDemo.jsx +0 -120
  245. package/templates/go-wasm-app/src/main.jsx +0 -12
  246. package/templates/go-wasm-app/src/wasm/example.go +0 -75
  247. package/templates/go-wasm-app/tsconfig.server.json +0 -18
  248. package/templates/go-wasm-app/vite.config.js +0 -45
  249. package/templates/ssr-template/client.js +0 -58
  250. package/templates/ssr-template/package-lock.json +0 -2478
  251. package/templates/ssr-template/public/index.html +0 -47
  252. package/templates/ssr-template/readme.md +0 -188
  253. package/templates/ssr-template/server.js +0 -369
  254. package/templates/ssr-template/server.ts +0 -275
  255. package/templates/ssr-template/src/client.ts +0 -61
  256. package/templates/ssr-template/src/pages/index.tsx +0 -51
  257. package/templates/ssr-template/vite.config.js +0 -57
  258. /package/{dist/Counter.d.ts → templates/complete-app/api/hello.js} +0 -0
  259. /package/templates/{go-wasm-app/public/wasm → wasm/public}/wasm_exec.js +0 -0
@@ -1,60 +0,0 @@
1
- export interface Route {
2
- path: string;
3
- component: any;
4
- props?: Record<string, any>;
5
- exact?: boolean;
6
- }
7
- export interface RouterState {
8
- location: {
9
- pathname: string;
10
- search: string;
11
- hash: string;
12
- };
13
- params: Record<string, string>;
14
- navigate: (to: string, options?: NavigateOptions) => void;
15
- match: (path: string) => boolean;
16
- }
17
- export interface NavigateOptions {
18
- replace?: boolean;
19
- state?: any;
20
- }
21
- export declare const RouterContext: import("./context.js").Context<RouterState>;
22
- export declare function RouterProvider({ routes, children }: {
23
- routes: Route[];
24
- children: any;
25
- }): any;
26
- export declare function Route({ path, component: Component, props }: Route): any;
27
- export declare function Switch({ children }: {
28
- children: any;
29
- }): any;
30
- export declare function Link({ to, replace, state, className, activeClassName, children, ...rest }: {
31
- to: string;
32
- replace?: boolean;
33
- state?: any;
34
- className?: string;
35
- activeClassName?: string;
36
- children: any;
37
- [key: string]: any;
38
- }): any;
39
- export declare function Redirect({ to, replace }: {
40
- to: string;
41
- replace?: boolean;
42
- }): null;
43
- export declare function useLocation(): {
44
- pathname: string;
45
- search: string;
46
- hash: string;
47
- };
48
- export declare function useParams(): Record<string, string>;
49
- export declare function useNavigate(): (to: string, options?: NavigateOptions) => void;
50
- declare const _default: {
51
- RouterProvider: typeof RouterProvider;
52
- Route: typeof Route;
53
- Switch: typeof Switch;
54
- Link: typeof Link;
55
- Redirect: typeof Redirect;
56
- useLocation: typeof useLocation;
57
- useParams: typeof useParams;
58
- useNavigate: typeof useNavigate;
59
- };
60
- export default _default;
@@ -1,210 +0,0 @@
1
- /**
2
- * Client-side router for single-page applications
3
- */
4
- import { useState, useEffect } from './hooks';
5
- import { createContext, useContext } from './context';
6
- import { jsx } from './jsx-runtime';
7
- // Create context for router
8
- export const RouterContext = createContext({
9
- location: {
10
- pathname: '/',
11
- search: '',
12
- hash: ''
13
- },
14
- params: {},
15
- navigate: () => { },
16
- match: () => false
17
- });
18
- // Parse path pattern into regex
19
- function parsePath(path) {
20
- // Convert :param syntax to capture groups
21
- const pattern = path
22
- .replace(/\/+$/, '') // Remove trailing slashes
23
- .replace(/^\/+/, '/') // Ensure leading slash
24
- .replace(/\/:([^/]+)/g, '/([^/]+)');
25
- // Get param names
26
- const paramNames = [];
27
- path.replace(/\/:([^/]+)/g, (_, paramName) => {
28
- paramNames.push(paramName);
29
- return '';
30
- });
31
- return { pattern, paramNames };
32
- }
33
- // Match a path against a pattern
34
- function matchPath(pathname, route) {
35
- const { path, exact = false } = route;
36
- const { pattern, paramNames } = parsePath(path);
37
- // Create regex with or without exact matching
38
- const regex = new RegExp(`^${pattern}${exact ? '$' : ''}`);
39
- const match = pathname.match(regex);
40
- if (!match)
41
- return null;
42
- // Extract params
43
- const params = {};
44
- paramNames.forEach((name, index) => {
45
- params[name] = match[index + 1];
46
- });
47
- return params;
48
- }
49
- // Router Provider component
50
- export function RouterProvider({ routes, children }) {
51
- // Get initial location from window if available
52
- const getInitialLocation = () => {
53
- if (typeof window === 'undefined') {
54
- return { pathname: '/', search: '', hash: '' };
55
- }
56
- return {
57
- pathname: window.location.pathname,
58
- search: window.location.search,
59
- hash: window.location.hash
60
- };
61
- };
62
- // Fix: Call the function to get the initial value instead of passing the function itself
63
- const [location, setLocation] = useState(getInitialLocation());
64
- const [params, setParams] = useState({});
65
- // Update params when location changes
66
- useEffect(() => {
67
- for (const route of routes) {
68
- const matchedParams = matchPath(location.pathname, route);
69
- if (matchedParams) {
70
- setParams(matchedParams);
71
- break;
72
- }
73
- }
74
- }, [location, routes]);
75
- // Listen for popstate events
76
- useEffect(() => {
77
- if (typeof window === 'undefined')
78
- return;
79
- const handlePopState = () => {
80
- setLocation({
81
- pathname: window.location.pathname,
82
- search: window.location.search,
83
- hash: window.location.hash
84
- });
85
- };
86
- window.addEventListener('popstate', handlePopState);
87
- return () => window.removeEventListener('popstate', handlePopState);
88
- }, []);
89
- // Navigation function
90
- const navigate = (to, options = {}) => {
91
- if (typeof window === 'undefined')
92
- return;
93
- const { replace = false, state = null } = options;
94
- if (replace) {
95
- window.history.replaceState(state, '', to);
96
- }
97
- else {
98
- window.history.pushState(state, '', to);
99
- }
100
- // Update location
101
- setLocation({
102
- pathname: window.location.pathname,
103
- search: window.location.search,
104
- hash: window.location.hash
105
- });
106
- };
107
- // Match function to test if a path matches the current location
108
- const match = (path) => {
109
- const { pattern } = parsePath(path);
110
- const regex = new RegExp(`^${pattern}`);
111
- return regex.test(location.pathname);
112
- };
113
- // Router context value
114
- const routerValue = {
115
- location: {
116
- pathname: location.pathname,
117
- search: location.search,
118
- hash: location.hash
119
- },
120
- params,
121
- navigate,
122
- match
123
- };
124
- return jsx(RouterContext.Provider, { value: routerValue, children });
125
- }
126
- // Route component
127
- export function Route({ path, component: Component, props = {} }) {
128
- const context = useContext(RouterContext);
129
- const params = context.params;
130
- const locationPathname = context.location.pathname;
131
- const routeToMatch = { path, component: Component };
132
- const match = matchPath(locationPathname, routeToMatch);
133
- if (!match)
134
- return null;
135
- return jsx(Component, { ...props, params });
136
- }
137
- // Switch component
138
- export function Switch({ children }) {
139
- const context = useContext(RouterContext);
140
- const locationPathname = context.location.pathname;
141
- // Find the first matching route
142
- const child = Array.isArray(children)
143
- ? children.find(child => {
144
- if (!child || typeof child.type !== 'function' || !child.props.path)
145
- return false;
146
- const routeObj = {
147
- path: child.props.path,
148
- component: child.type,
149
- exact: child.props.exact || false
150
- };
151
- return matchPath(locationPathname, routeObj);
152
- })
153
- : children;
154
- return child || null;
155
- }
156
- // Link component
157
- export function Link({ to, replace = false, state = null, className = '', activeClassName = '', children, ...rest }) {
158
- const context = useContext(RouterContext);
159
- const navigate = context.navigate;
160
- const match = context.match;
161
- const handleClick = (e) => {
162
- e.preventDefault();
163
- navigate(to, { replace, state });
164
- };
165
- const isActive = match(to);
166
- const classes = [
167
- className,
168
- isActive ? activeClassName : ''
169
- ].filter(Boolean).join(' ');
170
- return jsx('a', {
171
- href: to,
172
- className: classes || undefined,
173
- onClick: handleClick,
174
- ...rest,
175
- children
176
- });
177
- }
178
- // Redirect component
179
- export function Redirect({ to, replace = true }) {
180
- const context = useContext(RouterContext);
181
- const navigate = context.navigate;
182
- useEffect(() => {
183
- navigate(to, { replace });
184
- }, [to]);
185
- return null;
186
- }
187
- // Hooks
188
- export function useLocation() {
189
- const context = useContext(RouterContext);
190
- return context.location;
191
- }
192
- export function useParams() {
193
- const context = useContext(RouterContext);
194
- return context.params;
195
- }
196
- export function useNavigate() {
197
- const context = useContext(RouterContext);
198
- return context.navigate;
199
- }
200
- export default {
201
- RouterProvider,
202
- Route,
203
- Switch,
204
- Link,
205
- Redirect,
206
- useLocation,
207
- useParams,
208
- useNavigate
209
- };
210
- //# sourceMappingURL=client-router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-router.js","sourceRoot":"","sources":["../../../src/client-router.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export declare class Component {
2
- state: any;
3
- props: any;
4
- element: HTMLElement | null;
5
- private _mounted;
6
- constructor(props?: any);
7
- componentDidMount(): void;
8
- setState(newState: any): Promise<void>;
9
- private _replayEvents;
10
- private _deepCloneWithEvents;
11
- update(): Promise<HTMLElement | Text>;
12
- private _updateElement;
13
- render(): any;
14
- }
@@ -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;