@emberkit/core 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +199 -0
- package/dist/boundaries/error-boundary.d.ts +29 -0
- package/dist/boundaries/error-boundary.d.ts.map +1 -0
- package/dist/boundaries/errors.d.ts +39 -0
- package/dist/boundaries/errors.d.ts.map +1 -0
- package/dist/boundaries/index.d.ts +5 -0
- package/dist/boundaries/index.d.ts.map +1 -0
- package/dist/boundaries/loading-boundary.d.ts +42 -0
- package/dist/boundaries/loading-boundary.d.ts.map +1 -0
- package/dist/cache/index.d.ts +60 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/compiler/compiler.d.ts +6 -0
- package/dist/compiler/compiler.d.ts.map +1 -0
- package/dist/compiler/helpers/attributes.d.ts +4 -0
- package/dist/compiler/helpers/attributes.d.ts.map +1 -0
- package/dist/compiler/helpers/utils.d.ts +10 -0
- package/dist/compiler/helpers/utils.d.ts.map +1 -0
- package/dist/compiler/index.d.ts +5 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/types.d.ts +40 -0
- package/dist/compiler/types.d.ts.map +1 -0
- package/dist/context/index.d.ts +34 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/types.d.ts +10 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/dev-server/index.d.ts +30 -0
- package/dist/dev-server/index.d.ts.map +1 -0
- package/dist/forms/index.d.ts +58 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/mutations.d.ts +48 -0
- package/dist/forms/mutations.d.ts.map +1 -0
- package/dist/hmr/client.d.ts +18 -0
- package/dist/hmr/client.d.ts.map +1 -0
- package/dist/hmr/index.d.ts +3 -0
- package/dist/hmr/index.d.ts.map +1 -0
- package/dist/hmr/types.d.ts +42 -0
- package/dist/hmr/types.d.ts.map +1 -0
- package/dist/hydration/helpers/analyzer.d.ts +9 -0
- package/dist/hydration/helpers/analyzer.d.ts.map +1 -0
- package/dist/hydration/helpers/hydration.d.ts +19 -0
- package/dist/hydration/helpers/hydration.d.ts.map +1 -0
- package/dist/hydration/index.d.ts +4 -0
- package/dist/hydration/index.d.ts.map +1 -0
- package/dist/hydration/types.d.ts +27 -0
- package/dist/hydration/types.d.ts.map +1 -0
- package/dist/image/index.d.ts +9 -0
- package/dist/image/index.d.ts.map +1 -0
- package/dist/image/processor.d.ts +57 -0
- package/dist/image/processor.d.ts.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/jsx-dev-runtime.d.ts +11 -0
- package/dist/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime.d.ts +11 -0
- package/dist/jsx-runtime.d.ts.map +1 -0
- package/dist/loader/helpers/loader.d.ts +6 -0
- package/dist/loader/helpers/loader.d.ts.map +1 -0
- package/dist/loader/index.d.ts +3 -0
- package/dist/loader/index.d.ts.map +1 -0
- package/dist/loader/types.d.ts +34 -0
- package/dist/loader/types.d.ts.map +1 -0
- package/dist/markdown/index.d.ts +77 -0
- package/dist/markdown/index.d.ts.map +1 -0
- package/dist/mdx/index.d.ts +43 -0
- package/dist/mdx/index.d.ts.map +1 -0
- package/dist/mdx/loader.d.ts +3 -0
- package/dist/mdx/loader.d.ts.map +1 -0
- package/dist/meta/head-registry.d.ts +5 -0
- package/dist/meta/head-registry.d.ts.map +1 -0
- package/dist/meta/head.d.ts +29 -0
- package/dist/meta/head.d.ts.map +1 -0
- package/dist/meta/index.d.ts +91 -0
- package/dist/meta/index.d.ts.map +1 -0
- package/dist/navigation/helpers/navigation.d.ts +15 -0
- package/dist/navigation/helpers/navigation.d.ts.map +1 -0
- package/dist/navigation/helpers/useNavigate.d.ts +6 -0
- package/dist/navigation/helpers/useNavigate.d.ts.map +1 -0
- package/dist/navigation/index.d.ts +5 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation/types.d.ts +24 -0
- package/dist/navigation/types.d.ts.map +1 -0
- package/dist/plugin/index.d.ts +73 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/router/helpers/path.d.ts +15 -0
- package/dist/router/helpers/path.d.ts.map +1 -0
- package/dist/router/helpers/route.d.ts +6 -0
- package/dist/router/helpers/route.d.ts.map +1 -0
- package/dist/router/index.d.ts +35 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/types.d.ts +30 -0
- package/dist/router/types.d.ts.map +1 -0
- package/dist/runtime/helpers/element.d.ts +7 -0
- package/dist/runtime/helpers/element.d.ts.map +1 -0
- package/dist/runtime/helpers/render.d.ts +8 -0
- package/dist/runtime/helpers/render.d.ts.map +1 -0
- package/dist/runtime/helpers/render.js +17 -2
- package/dist/runtime/index.d.ts +16 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +53 -0
- package/dist/runtime/types.d.ts +65 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/signals/helpers/core.d.ts +11 -0
- package/dist/signals/helpers/core.d.ts.map +1 -0
- package/dist/signals/helpers/core.js +32 -12
- package/dist/signals/helpers/utils.d.ts +7 -0
- package/dist/signals/helpers/utils.d.ts.map +1 -0
- package/dist/signals/index.d.ts +4 -0
- package/dist/signals/index.d.ts.map +1 -0
- package/dist/signals/types.d.ts +23 -0
- package/dist/signals/types.d.ts.map +1 -0
- package/dist/ssg/index.d.ts +38 -0
- package/dist/ssg/index.d.ts.map +1 -0
- package/dist/ssr/helpers/render-html.d.ts +16 -0
- package/dist/ssr/helpers/render-html.d.ts.map +1 -0
- package/dist/ssr/helpers/ssr.d.ts +14 -0
- package/dist/ssr/helpers/ssr.d.ts.map +1 -0
- package/dist/ssr/index.d.ts +4 -0
- package/dist/ssr/index.d.ts.map +1 -0
- package/dist/ssr/types.d.ts +29 -0
- package/dist/ssr/types.d.ts.map +1 -0
- package/dist/vite-plugin/index.d.ts +5 -0
- package/dist/vite-plugin/index.d.ts.map +1 -0
- package/dist/vite-plugin/types.d.ts +36 -0
- package/dist/vite-plugin/types.d.ts.map +1 -0
- package/package.json +10 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/mdx/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1D,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,SAAS,GAClB,OAAO,CAAC,YAAY,CAAC,CAIvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"head-registry.d.ts","sourceRoot":"","sources":["../../src/meta/head-registry.ts"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { JSXNode } from '../runtime/types.js';
|
|
2
|
+
export interface HeadProps {
|
|
3
|
+
children?: JSXNode | JSXNode[];
|
|
4
|
+
title?: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
og?: {
|
|
7
|
+
title?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
type?: string;
|
|
10
|
+
url?: string;
|
|
11
|
+
image?: string;
|
|
12
|
+
locale?: string;
|
|
13
|
+
siteName?: string;
|
|
14
|
+
};
|
|
15
|
+
twitter?: {
|
|
16
|
+
card?: string;
|
|
17
|
+
site?: string;
|
|
18
|
+
creator?: string;
|
|
19
|
+
title?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
image?: string;
|
|
22
|
+
};
|
|
23
|
+
canonical?: string;
|
|
24
|
+
robots?: string;
|
|
25
|
+
keywords?: string[];
|
|
26
|
+
author?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function Head(props: HeadProps): JSXNode;
|
|
29
|
+
//# sourceMappingURL=head.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"head.d.ts","sourceRoot":"","sources":["../../src/meta/head.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAOnD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAuED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAsB9C"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
export { Head } from './head.js';
|
|
2
|
+
export type { HeadProps } from './head.js';
|
|
3
|
+
export { registerHeadContent, drainHeadContent, peekHeadContent, clearHeadContent, } from './head-registry.js';
|
|
4
|
+
export interface MetaData {
|
|
5
|
+
title?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
keywords?: string[];
|
|
8
|
+
author?: string;
|
|
9
|
+
robots?: string;
|
|
10
|
+
canonical?: string;
|
|
11
|
+
openGraph?: OpenGraphData;
|
|
12
|
+
twitter?: TwitterCardData;
|
|
13
|
+
structuredData?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
export interface OpenGraphData {
|
|
16
|
+
title?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
url?: string;
|
|
19
|
+
type?: 'website' | 'article' | 'product' | 'profile';
|
|
20
|
+
images?: OGImage[];
|
|
21
|
+
locale?: string;
|
|
22
|
+
siteName?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface OGImage {
|
|
25
|
+
url: string;
|
|
26
|
+
width?: number;
|
|
27
|
+
height?: number;
|
|
28
|
+
alt?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface TwitterCardData {
|
|
31
|
+
card: 'summary' | 'summary_large_image' | 'app' | 'player';
|
|
32
|
+
site?: string;
|
|
33
|
+
creator?: string;
|
|
34
|
+
title?: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
image?: string;
|
|
37
|
+
imageAlt?: string;
|
|
38
|
+
}
|
|
39
|
+
export declare class MetaGenerator {
|
|
40
|
+
private baseUrl;
|
|
41
|
+
private defaultTitle;
|
|
42
|
+
private defaultDescription;
|
|
43
|
+
private siteName;
|
|
44
|
+
constructor(baseUrl?: string);
|
|
45
|
+
generate(data: MetaData): string;
|
|
46
|
+
private generateBasicMeta;
|
|
47
|
+
private generateOpenGraph;
|
|
48
|
+
private generateTwitter;
|
|
49
|
+
private generateCanonical;
|
|
50
|
+
private generateStructuredData;
|
|
51
|
+
}
|
|
52
|
+
export declare function createMetaGenerator(baseUrl?: string): MetaGenerator;
|
|
53
|
+
export declare function generateMeta(data: MetaData, baseUrl?: string): string;
|
|
54
|
+
export declare function generateBreadcrumbs(items: Array<{
|
|
55
|
+
name: string;
|
|
56
|
+
url: string;
|
|
57
|
+
}>): string;
|
|
58
|
+
export declare function generateArticleSchema(data: {
|
|
59
|
+
title: string;
|
|
60
|
+
description: string;
|
|
61
|
+
author: string;
|
|
62
|
+
publishedAt: string;
|
|
63
|
+
url: string;
|
|
64
|
+
image?: string;
|
|
65
|
+
}): string;
|
|
66
|
+
export declare function generateProductSchema(data: {
|
|
67
|
+
name: string;
|
|
68
|
+
description: string;
|
|
69
|
+
price: string;
|
|
70
|
+
currency?: string;
|
|
71
|
+
availability?: string;
|
|
72
|
+
image?: string;
|
|
73
|
+
}): string;
|
|
74
|
+
export interface MetaLink {
|
|
75
|
+
rel: string;
|
|
76
|
+
href: string;
|
|
77
|
+
type?: string;
|
|
78
|
+
sizes?: string;
|
|
79
|
+
}
|
|
80
|
+
export declare function generateLinks(links: MetaLink[]): string;
|
|
81
|
+
export interface MetaScript {
|
|
82
|
+
src?: string;
|
|
83
|
+
content?: string;
|
|
84
|
+
type?: string;
|
|
85
|
+
async?: boolean;
|
|
86
|
+
defer?: boolean;
|
|
87
|
+
}
|
|
88
|
+
export declare function generateScripts(scripts: MetaScript[]): string;
|
|
89
|
+
export declare const DEFAULT_META: MetaData;
|
|
90
|
+
export declare function mergeMeta(base: MetaData, override: Partial<MetaData>): MetaData;
|
|
91
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/meta/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { NavigationOptions, ViewTransitionOptions } from '../types.js';
|
|
2
|
+
export declare function navigate(to: string, options?: NavigationOptions): Promise<void>;
|
|
3
|
+
export declare function redirect(to: string, status?: number): never;
|
|
4
|
+
export declare function preload(path: string): void;
|
|
5
|
+
export declare function startViewTransition(options?: ViewTransitionOptions): Promise<void>;
|
|
6
|
+
export interface ViewTransition {
|
|
7
|
+
readonly finished: Promise<void>;
|
|
8
|
+
readonly ready: Promise<void>;
|
|
9
|
+
readonly updateCallbackDone: Promise<void>;
|
|
10
|
+
skipTransition: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function reload(): void;
|
|
13
|
+
export declare function back(): void;
|
|
14
|
+
export declare function forward(): void;
|
|
15
|
+
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/navigation/helpers/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY,GAAG,KAAK,CAQhE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAM1C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,wBAAgB,MAAM,IAAI,IAAI,CAE7B;AAED,wBAAgB,IAAI,IAAI,IAAI,CAE3B;AAED,wBAAgB,OAAO,IAAI,IAAI,CAE9B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { NavigationOptions } from '../types.js';
|
|
2
|
+
export type UseNavigateOptions = Omit<NavigationOptions, 'viewTransition'> & {
|
|
3
|
+
skipTransition?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export declare function useNavigate(): (path: string, options?: UseNavigateOptions) => Promise<void>;
|
|
6
|
+
//# sourceMappingURL=useNavigate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNavigate.d.ts","sourceRoot":"","sources":["../../../src/navigation/helpers/useNavigate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAAG;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,wBAAgB,WAAW,KACX,MAAM,MAAM,EAAE,UAAS,kBAAuB,mBAQ7D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigation/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type NavigationType = 'push' | 'replace' | 'pop' | 'reload';
|
|
2
|
+
export interface NavigationOptions {
|
|
3
|
+
replace?: boolean;
|
|
4
|
+
state?: Record<string, unknown>;
|
|
5
|
+
viewTransition?: boolean | ViewTransitionOptions;
|
|
6
|
+
}
|
|
7
|
+
export interface ViewTransitionOptions {
|
|
8
|
+
skipTransition?: boolean;
|
|
9
|
+
documentViewTransition?: boolean;
|
|
10
|
+
name?: string;
|
|
11
|
+
types?: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface NavigationState {
|
|
14
|
+
type: NavigationType;
|
|
15
|
+
from: string;
|
|
16
|
+
to: string;
|
|
17
|
+
options?: NavigationOptions;
|
|
18
|
+
}
|
|
19
|
+
export interface NavigationTrigger {
|
|
20
|
+
type: NavigationType;
|
|
21
|
+
delta?: number;
|
|
22
|
+
}
|
|
23
|
+
export declare const VIEW_TRANSITION_API_SUPPORTED: boolean;
|
|
24
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/navigation/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;CAClD;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,6BAA6B,SACP,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export interface Plugin {
|
|
2
|
+
name: string;
|
|
3
|
+
version?: string;
|
|
4
|
+
setup: (context: PluginContext) => void | Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export interface PluginContext {
|
|
7
|
+
config: ResolvedConfig;
|
|
8
|
+
api: PluginAPI;
|
|
9
|
+
onHook: (name: string, callback: HookCallback) => void;
|
|
10
|
+
addWatchFile: (file: string) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface ResolvedConfig {
|
|
13
|
+
mode: 'static' | 'ssr' | 'spa' | 'hybrid';
|
|
14
|
+
root: string;
|
|
15
|
+
outDir: string;
|
|
16
|
+
srcDir: string;
|
|
17
|
+
routesDir: string;
|
|
18
|
+
server: ServerConfig;
|
|
19
|
+
build: BuildConfig;
|
|
20
|
+
}
|
|
21
|
+
export interface ServerConfig {
|
|
22
|
+
port: number;
|
|
23
|
+
host: string;
|
|
24
|
+
cors: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface BuildConfig {
|
|
27
|
+
target: string;
|
|
28
|
+
minify: boolean;
|
|
29
|
+
sourcemap: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface PluginAPI {
|
|
32
|
+
resolveId: (id: string, options?: ResolveIdOptions) => Promise<ResolvedId | null>;
|
|
33
|
+
load: (id: string) => Promise<string | null>;
|
|
34
|
+
transform: (code: string, id: string) => Promise<TransformResult | null>;
|
|
35
|
+
render: (html: string, context: RenderContext) => Promise<string>;
|
|
36
|
+
}
|
|
37
|
+
export interface ResolveIdOptions {
|
|
38
|
+
importer?: string;
|
|
39
|
+
skipSelf?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface ResolvedId {
|
|
42
|
+
id: string;
|
|
43
|
+
external?: boolean;
|
|
44
|
+
moduleSideEffects?: boolean | null;
|
|
45
|
+
}
|
|
46
|
+
export interface TransformResult {
|
|
47
|
+
code: string;
|
|
48
|
+
map?: string;
|
|
49
|
+
mappings?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface RenderContext {
|
|
52
|
+
url: string;
|
|
53
|
+
params: Record<string, string>;
|
|
54
|
+
head?: string;
|
|
55
|
+
body?: string;
|
|
56
|
+
}
|
|
57
|
+
export type HookCallback = (context?: unknown) => void | Promise<void>;
|
|
58
|
+
export type HookName = 'buildStart' | 'buildEnd' | 'transform' | 'renderStart' | 'renderEnd' | 'configResolved';
|
|
59
|
+
export declare class PluginPipeline {
|
|
60
|
+
private plugins;
|
|
61
|
+
private hookCache;
|
|
62
|
+
addPlugin(plugin: Plugin): void;
|
|
63
|
+
removePlugin(name: string): void;
|
|
64
|
+
runHook(name: HookName, context?: unknown): Promise<void>;
|
|
65
|
+
private invalidateCache;
|
|
66
|
+
getPlugins(): Plugin[];
|
|
67
|
+
}
|
|
68
|
+
export declare function createPluginContext(config: ResolvedConfig, api: PluginAPI): PluginContext;
|
|
69
|
+
export declare function createPluginAPI(): PluginAPI;
|
|
70
|
+
export declare const CORE_PLUGINS: Plugin[];
|
|
71
|
+
export declare function loadPlugin(name: string): Promise<Plugin>;
|
|
72
|
+
export declare function resolvePlugins(plugins: Plugin[], config: ResolvedConfig): Promise<PluginContext[]>;
|
|
73
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare function normalizePath(path: string): string;
|
|
2
|
+
export declare function pathToRegex(path: string): {
|
|
3
|
+
pattern: RegExp;
|
|
4
|
+
paramNames: string[];
|
|
5
|
+
};
|
|
6
|
+
export declare function matchPath(pattern: RegExp, path: string): string[] | null;
|
|
7
|
+
export declare function scoreRoute(routePath: string): number;
|
|
8
|
+
export declare function extractSegments(filePath: string): string[];
|
|
9
|
+
export declare function segmentsToPath(segments: string[]): string;
|
|
10
|
+
export declare function isIndexFile(fileName: string): boolean;
|
|
11
|
+
export declare function isDynamicSegment(segment: string): boolean;
|
|
12
|
+
export declare function isCatchAll(segment: string): boolean;
|
|
13
|
+
export declare function getParamName(segment: string): string | null;
|
|
14
|
+
export declare function getCatchAllName(segment: string): string | null;
|
|
15
|
+
//# sourceMappingURL=path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/router/helpers/path.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAiBnF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAMxE;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAmBpD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAK1D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEzD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK3D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK9D"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Route, RouteMatch } from '../types.js';
|
|
2
|
+
export declare function createRoute(filePath: string, routeDir?: string): Route | null;
|
|
3
|
+
export declare function matchRoute(routes: Route[], pathname: string): RouteMatch | null;
|
|
4
|
+
export declare function sortRoutes(routes: Route[]): Route[];
|
|
5
|
+
export declare function findLayoutChain(routes: Route[], pathname: string): Route[];
|
|
6
|
+
//# sourceMappingURL=route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/router/helpers/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAqB,GAC9B,KAAK,GAAG,IAAI,CAoDd;AAwBD,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAwB/E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAEnD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,CA0B1E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Route, RouteMatch, NavigateOptions, RouteParams } from './types.js';
|
|
2
|
+
import { createRoute, matchRoute, sortRoutes, findLayoutChain } from './helpers/route.js';
|
|
3
|
+
export type RouterState = {
|
|
4
|
+
pathname: string;
|
|
5
|
+
params: Record<string, string>;
|
|
6
|
+
query: Record<string, string | string[]>;
|
|
7
|
+
};
|
|
8
|
+
type Listener = (state: RouterState) => void;
|
|
9
|
+
declare class EmberKitRouter {
|
|
10
|
+
private basePath;
|
|
11
|
+
private currentPath;
|
|
12
|
+
private listeners;
|
|
13
|
+
private routes;
|
|
14
|
+
back(): void;
|
|
15
|
+
createHref(path: string): string;
|
|
16
|
+
createRouteParams<T extends Record<string, string>>(params: T): RouteParams<T>;
|
|
17
|
+
forward(): void;
|
|
18
|
+
getBasePath(): string;
|
|
19
|
+
getCurrentPath(): string;
|
|
20
|
+
getLayouts(pathname: string): Route[];
|
|
21
|
+
getRoutes(): Route[];
|
|
22
|
+
initialize(routes: Route[]): void;
|
|
23
|
+
match(pathname: string): RouteMatch | null;
|
|
24
|
+
navigate(path: string, options?: NavigateOptions): void;
|
|
25
|
+
setBasePath(path: string): void;
|
|
26
|
+
subscribe(listener: Listener): () => void;
|
|
27
|
+
private notify;
|
|
28
|
+
private parseQuery;
|
|
29
|
+
}
|
|
30
|
+
export declare const router: EmberKitRouter;
|
|
31
|
+
export declare function createRouter(routes: Route[]): EmberKitRouter;
|
|
32
|
+
export declare function createMemoryRouter(initialPath?: string): EmberKitRouter;
|
|
33
|
+
export { createRoute, matchRoute, sortRoutes, findLayoutChain };
|
|
34
|
+
export type { Route, RouteMatch, NavigateOptions, RouteParams };
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1F,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;CAC1C,CAAC;AAEF,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAE7C,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAAe;IAE7B,IAAI,IAAI,IAAI;IAIZ,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIhC,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAQ9E,OAAO,IAAI,IAAI;IAIf,WAAW,IAAI,MAAM;IAIrB,cAAc,IAAI,MAAM;IAIxB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE;IAIrC,SAAS,IAAI,KAAK,EAAE;IAIpB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAKjC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAI1C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI;IAavD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/B,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAKzC,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,UAAU;CAgCnB;AAED,eAAO,MAAM,MAAM,gBAAuB,CAAC;AAE3C,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAI5D;AAED,wBAAgB,kBAAkB,CAAC,WAAW,GAAE,MAAY,GAAG,cAAc,CAI5E;AAED,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AAChE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface Route {
|
|
2
|
+
path: string;
|
|
3
|
+
pattern: RegExp;
|
|
4
|
+
paramNames: string[];
|
|
5
|
+
filePath: string;
|
|
6
|
+
fileName: string;
|
|
7
|
+
isLayout: boolean;
|
|
8
|
+
isError: boolean;
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
isApi: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface RouteMatch {
|
|
13
|
+
route: Route;
|
|
14
|
+
params: Record<string, string>;
|
|
15
|
+
score: number;
|
|
16
|
+
}
|
|
17
|
+
export interface NavigateOptions {
|
|
18
|
+
replace?: boolean;
|
|
19
|
+
state?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
export interface RouteParams<T extends Record<string, string> = Record<string, string>> {
|
|
22
|
+
params: T;
|
|
23
|
+
query: Record<string, string | string[]>;
|
|
24
|
+
request: Request;
|
|
25
|
+
}
|
|
26
|
+
export type RouteHandler = (params: RouteParams) => Promise<unknown> | unknown;
|
|
27
|
+
export declare const SPECIAL_FILES: Set<string>;
|
|
28
|
+
export declare const PARAM_REGEX: RegExp;
|
|
29
|
+
export declare const CATCH_ALL_REGEX: RegExp;
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACpF,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAE/E,eAAO,MAAM,aAAa,aAExB,CAAC;AAEH,eAAO,MAAM,WAAW,QAAkB,CAAC;AAC3C,eAAO,MAAM,eAAe,QAAqB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { JSXElementProps, JSXNode, DOMElement } from '../types.js';
|
|
2
|
+
export declare function createElement(type: string | ((props: JSXElementProps) => JSXNode), props: JSXElementProps | null, ...children: JSXNode[]): DOMElement;
|
|
3
|
+
export declare function isValidElement(element: unknown): element is DOMElement;
|
|
4
|
+
export declare function isComponent(type: unknown): type is (props: JSXElementProps) => JSXNode;
|
|
5
|
+
export declare function flattenChildren(children: unknown[]): JSXNode[];
|
|
6
|
+
export declare function resolveComponent(type: string | ((props: JSXElementProps) => JSXNode), props: JSXElementProps): DOMElement;
|
|
7
|
+
//# sourceMappingURL=element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../src/runtime/helpers/element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExE,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,EACpD,KAAK,EAAE,eAAe,GAAG,IAAI,EAC7B,GAAG,QAAQ,EAAE,OAAO,EAAE,GACrB,UAAU,CAcZ;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,UAAU,CAItE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAEtF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAe9D;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,EACpD,KAAK,EAAE,eAAe,GACrB,UAAU,CAaZ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { JSXElement, JSXElementProps, JSXNode } from '../types.js';
|
|
2
|
+
export declare function getHandler(id: string): ((e: Event) => void) | undefined;
|
|
3
|
+
export declare function clearHandlers(): void;
|
|
4
|
+
export declare function renderElementToHTML(element: JSXElement): string;
|
|
5
|
+
export declare function renderToString(element: JSXElement | string | null | number | unknown[]): string;
|
|
6
|
+
export declare function getComponentName(type: string | ((props: JSXElementProps) => JSXNode)): string;
|
|
7
|
+
export declare function createPropsProxy(props: JSXElementProps): JSXElementProps;
|
|
8
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/runtime/helpers/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAWpF,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,CAEvE;AAED,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAwG/D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,MAAM,CAM/F;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,GACnD,MAAM,CAMR;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CASxE"}
|
|
@@ -73,20 +73,35 @@ export function renderElementToHTML(element) {
|
|
|
73
73
|
return false;
|
|
74
74
|
if (typeof value === 'object' && value !== null && '__html' in value)
|
|
75
75
|
return false;
|
|
76
|
+
if (value == null)
|
|
77
|
+
return false;
|
|
78
|
+
if (typeof value === 'function' && key !== 'data-ek-bind')
|
|
79
|
+
return false;
|
|
76
80
|
return true;
|
|
77
81
|
})
|
|
78
|
-
.filter(([, value]) => typeof value !== 'function' && value != null)
|
|
79
82
|
.map(([key, value]) => {
|
|
80
|
-
// Map React/JSX prop names to HTML attributes
|
|
81
83
|
if (key === 'className')
|
|
82
84
|
key = 'class';
|
|
83
85
|
if (key === 'strokeWidth' || key === 'strokeLinecap' || key === 'strokeLinejoin') {
|
|
84
86
|
key = key.replace(/([A-Z])/g, '-$1').toLowerCase();
|
|
85
87
|
}
|
|
88
|
+
if (key === 'data-ek-bind' && typeof value === 'function' && value.__idx != null) {
|
|
89
|
+
return ` data-ek-bind="${value.__idx}"`;
|
|
90
|
+
}
|
|
86
91
|
if (value === true)
|
|
87
92
|
return ` ${key}`;
|
|
88
93
|
if (value === false)
|
|
89
94
|
return '';
|
|
95
|
+
if (key === 'style' && typeof value === 'object' && value !== null) {
|
|
96
|
+
const styleStr = Object.entries(value)
|
|
97
|
+
.filter(([, v]) => v != null)
|
|
98
|
+
.map(([prop, val]) => {
|
|
99
|
+
const cssProp = prop.replace(/([A-Z])/g, '-$1').toLowerCase();
|
|
100
|
+
return `${cssProp}: ${val}`;
|
|
101
|
+
})
|
|
102
|
+
.join('; ');
|
|
103
|
+
return ` ${key}="${styleStr}"`;
|
|
104
|
+
}
|
|
90
105
|
return ` ${key}="${value}"`;
|
|
91
106
|
})
|
|
92
107
|
.join('');
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { JSXElementProps, JSXNode, DOMElement, JSXElement } from './types.js';
|
|
2
|
+
export declare function createElement(type: string | ((props: JSXElementProps) => JSXNode), props?: Record<string, unknown> | null, ...children: unknown[]): DOMElement;
|
|
3
|
+
export declare function render(element: JSXElement | string | null | ((props: Record<string, unknown>) => JSXNode), container: Element | string, options?: {
|
|
4
|
+
hydrate?: boolean;
|
|
5
|
+
routes?: Array<{
|
|
6
|
+
path: string;
|
|
7
|
+
component: () => Promise<{
|
|
8
|
+
default: (props: Record<string, unknown>) => JSXNode;
|
|
9
|
+
}>;
|
|
10
|
+
}>;
|
|
11
|
+
}): void;
|
|
12
|
+
export declare function hydrate(element: JSXElement | string | null, container: Element | string): void;
|
|
13
|
+
export declare function flushSync(fn: () => void): void;
|
|
14
|
+
export declare function isElement(element: unknown): element is JSXElement;
|
|
15
|
+
export { type JSXElement, type JSXNode };
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAInF,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,EACpD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,GAAG,QAAQ,EAAE,OAAO,EAAE,GACrB,UAAU,CAYZ;AAmFD,wBAAgB,MAAM,CACpB,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,EACnF,SAAS,EAAE,OAAO,GAAG,MAAM,EAC3B,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;CAAE,GACpJ,IAAI,CAuFN;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,EACnC,SAAS,EAAE,OAAO,GAAG,MAAM,GAC1B,IAAI,CAEN;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAE9C;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,UAAU,CAOjE;AAED,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,CAAC"}
|
package/dist/runtime/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { renderToString, getHandler, clearHandlers } from './helpers/render.js';
|
|
2
|
+
import { getSignalByIndex } from '../signals/helpers/core.js';
|
|
2
3
|
export function createElement(type, props, ...children) {
|
|
3
4
|
const resolvedProps = props ?? {};
|
|
4
5
|
const flatChildren = children.flat().filter((child) => child != null && child !== false);
|
|
@@ -32,6 +33,58 @@ function renderToTarget(layout, target, routeComponent) {
|
|
|
32
33
|
const html = renderToString(jsxElement);
|
|
33
34
|
target.innerHTML = html;
|
|
34
35
|
attachEventHandlers(target);
|
|
36
|
+
hydrateSignalBindings(target);
|
|
37
|
+
}
|
|
38
|
+
function hydrateSignalBindings(container) {
|
|
39
|
+
const els = container.querySelectorAll('[data-ek-bind]');
|
|
40
|
+
els.forEach((el) => {
|
|
41
|
+
const idx = parseInt(el.getAttribute('data-ek-bind') ?? '', 10);
|
|
42
|
+
if (isNaN(idx))
|
|
43
|
+
return;
|
|
44
|
+
const sig = getSignalByIndex(idx);
|
|
45
|
+
if (!sig)
|
|
46
|
+
return;
|
|
47
|
+
const showClasses = el.getAttribute('data-ek-show') ?? '';
|
|
48
|
+
const hideClasses = el.getAttribute('data-ek-hide') ?? '';
|
|
49
|
+
const showWhen = el.getAttribute('data-ek-show-when');
|
|
50
|
+
const hideClass = el.getAttribute('data-ek-hide-class') ?? 'hidden';
|
|
51
|
+
const activeWhen = el.getAttribute('data-ek-active-when');
|
|
52
|
+
const activeClass = el.getAttribute('data-ek-active-class');
|
|
53
|
+
const inactiveClassAttr = el.getAttribute('data-ek-inactive-class');
|
|
54
|
+
sig.subscribe((val) => {
|
|
55
|
+
if (activeWhen != null && activeClass != null && activeClass.length > 0) {
|
|
56
|
+
const isActive = String(val) === activeWhen;
|
|
57
|
+
activeClass.split(' ').forEach((c) => { if (c)
|
|
58
|
+
el.classList.toggle(c, isActive); });
|
|
59
|
+
if (inactiveClassAttr && inactiveClassAttr.length > 0) {
|
|
60
|
+
inactiveClassAttr.split(' ').forEach((c) => { if (c)
|
|
61
|
+
el.classList.toggle(c, !isActive); });
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (activeClass != null && activeClass.length > 0 && (!inactiveClassAttr || inactiveClassAttr.length === 0)) {
|
|
66
|
+
const isVisible = !!val;
|
|
67
|
+
activeClass.split(' ').forEach((c) => { if (c)
|
|
68
|
+
el.classList.toggle(c, isVisible); });
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (showWhen != null) {
|
|
72
|
+
el.classList.toggle(hideClass, String(val) !== showWhen);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (showClasses || hideClasses) {
|
|
76
|
+
const isVisible = !!val;
|
|
77
|
+
if (showClasses) {
|
|
78
|
+
showClasses.split(' ').forEach((c) => el.classList.toggle(c, isVisible));
|
|
79
|
+
}
|
|
80
|
+
if (hideClasses) {
|
|
81
|
+
hideClasses.split(' ').forEach((c) => el.classList.toggle(c, !isVisible));
|
|
82
|
+
}
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
el.textContent = String(val);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
35
88
|
}
|
|
36
89
|
export function render(element, container, options) {
|
|
37
90
|
if (!element)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export interface JSXElementProps {
|
|
2
|
+
children?: JSXNode | JSXNode[];
|
|
3
|
+
key?: string;
|
|
4
|
+
ref?: {
|
|
5
|
+
current: Element | null;
|
|
6
|
+
};
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}
|
|
9
|
+
export type JSXNode = JSXElement | string | number | null | false | undefined;
|
|
10
|
+
export interface JSXElement {
|
|
11
|
+
type: string | ((props: JSXElementProps) => JSXNode);
|
|
12
|
+
props: JSXElementProps;
|
|
13
|
+
}
|
|
14
|
+
export type RouteChildren = JSXNode;
|
|
15
|
+
export interface RouteComponent<P extends JSXElementProps = JSXElementProps> {
|
|
16
|
+
(props: P): JSXNode;
|
|
17
|
+
displayName?: string;
|
|
18
|
+
}
|
|
19
|
+
declare module 'react' {
|
|
20
|
+
namespace JSX {
|
|
21
|
+
interface Element extends JSXElement {
|
|
22
|
+
}
|
|
23
|
+
interface IntrinsicElements {
|
|
24
|
+
[elemName: string]: JSXElementProps;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export interface FC<P extends JSXElementProps = JSXElementProps> {
|
|
29
|
+
(props: P): JSXNode;
|
|
30
|
+
displayName?: string;
|
|
31
|
+
}
|
|
32
|
+
export type DOMElement = JSXElement & {
|
|
33
|
+
type: string;
|
|
34
|
+
};
|
|
35
|
+
export interface RenderOptions {
|
|
36
|
+
container: Element | string;
|
|
37
|
+
hydrate?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface EmberKitConfig {
|
|
40
|
+
mode: 'static' | 'ssr' | 'spa' | 'hybrid';
|
|
41
|
+
output: string;
|
|
42
|
+
jsx: 'automatic' | 'classic';
|
|
43
|
+
target: string;
|
|
44
|
+
vite?: Record<string, unknown>;
|
|
45
|
+
plugins?: unknown[];
|
|
46
|
+
}
|
|
47
|
+
export interface RouteParams<T extends Record<string, string> = Record<string, string>> {
|
|
48
|
+
params: T;
|
|
49
|
+
query: Record<string, string | string[]>;
|
|
50
|
+
request: Request;
|
|
51
|
+
}
|
|
52
|
+
export interface LoaderData<T> {
|
|
53
|
+
data: T;
|
|
54
|
+
error?: never;
|
|
55
|
+
}
|
|
56
|
+
export interface LoaderError {
|
|
57
|
+
data?: never;
|
|
58
|
+
error: {
|
|
59
|
+
code: string;
|
|
60
|
+
message: string;
|
|
61
|
+
status: number;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export type LoaderResult<T> = LoaderData<T> | LoaderError;
|
|
65
|
+
//# sourceMappingURL=types.d.ts.map
|