fibrae 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/vite-plugin.js +39 -0
- package/dist/cli/vite-plugin.js.map +1 -1
- package/dist/core.js +37 -10
- package/dist/core.js.map +1 -1
- package/dist/dom.d.ts +9 -0
- package/dist/dom.js +30 -4
- package/dist/dom.js.map +1 -1
- package/dist/fiber-commit.d.ts +2 -0
- package/dist/fiber-commit.js +171 -36
- package/dist/fiber-commit.js.map +1 -1
- package/dist/fiber-render.js +13 -27
- package/dist/fiber-render.js.map +1 -1
- package/dist/fiber-update.d.ts +1 -1
- package/dist/fiber-update.js +26 -11
- package/dist/fiber-update.js.map +1 -1
- package/dist/h.d.ts +65 -10
- package/dist/h.js +98 -22
- package/dist/h.js.map +1 -1
- package/dist/head.d.ts +64 -0
- package/dist/head.js +257 -0
- package/dist/head.js.map +1 -0
- package/dist/hydration-dev.d.ts +24 -0
- package/dist/hydration-dev.js +138 -0
- package/dist/hydration-dev.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/jsx-runtime/index.d.ts +174 -9
- package/dist/jsx-runtime/index.js +2 -0
- package/dist/jsx-runtime/index.js.map +1 -1
- package/dist/mdx/index.d.ts +4 -4
- package/dist/mdx/index.js +1 -1
- package/dist/mdx/index.js.map +1 -1
- package/dist/mdx/parse.d.ts +1 -1
- package/dist/mdx/parse.js.map +1 -1
- package/dist/mdx/render.d.ts +6 -5
- package/dist/mdx/render.js +62 -64
- package/dist/mdx/render.js.map +1 -1
- package/dist/router/Link.js +7 -1
- package/dist/router/Link.js.map +1 -1
- package/dist/router/Navigator.d.ts +24 -0
- package/dist/router/Navigator.js +24 -0
- package/dist/router/Navigator.js.map +1 -1
- package/dist/router/RouterOutlet.js +28 -5
- package/dist/router/RouterOutlet.js.map +1 -1
- package/dist/router/index.d.ts +5 -1
- package/dist/router/index.js +3 -1
- package/dist/router/index.js.map +1 -1
- package/dist/server.js +7 -3
- package/dist/server.js.map +1 -1
- package/dist/shared.d.ts +34 -4
- package/dist/shared.js +12 -2
- package/dist/shared.js.map +1 -1
- package/dist/tracking.d.ts +3 -2
- package/dist/tracking.js +4 -1
- package/dist/tracking.js.map +1 -1
- package/dist/transition.d.ts +51 -0
- package/dist/transition.js +46 -0
- package/dist/transition.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transition service — keeps old UI visible during navigation.
|
|
3
|
+
*
|
|
4
|
+
* Provides an `isPending` atom that is true while a route loader is running.
|
|
5
|
+
* Components can subscribe to show loading indicators without Suspense fallback.
|
|
6
|
+
*
|
|
7
|
+
* When provided:
|
|
8
|
+
* - RouterOutlet sets isPending=true during loader execution
|
|
9
|
+
* - Suspense bypasses its threshold during transitions (no fallback flash)
|
|
10
|
+
* - Stale loaders are cancelled via Stream.switchMap
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // Provide TransitionLive to your app
|
|
15
|
+
* render(<App />, root, { layer: TransitionLive })
|
|
16
|
+
*
|
|
17
|
+
* // Read isPending in any component
|
|
18
|
+
* const NavBar = () => Effect.gen(function* () {
|
|
19
|
+
* const { isPending } = yield* Transition
|
|
20
|
+
* const pending = yield* Atom.get(isPending)
|
|
21
|
+
* return <nav class={pending ? "loading" : ""}>...</nav>
|
|
22
|
+
* })
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
import * as Context from "effect/Context";
|
|
26
|
+
import * as Layer from "effect/Layer";
|
|
27
|
+
import { Atom } from "@effect-atom/atom";
|
|
28
|
+
// =============================================================================
|
|
29
|
+
// Service Tag
|
|
30
|
+
// =============================================================================
|
|
31
|
+
/**
|
|
32
|
+
* Context tag for the Transition service.
|
|
33
|
+
* When provided, RouterOutlet sets isPending during loader execution
|
|
34
|
+
* and Suspense bypasses its threshold during transitions.
|
|
35
|
+
*/
|
|
36
|
+
export class Transition extends Context.Tag("fibrae/Transition")() {
|
|
37
|
+
}
|
|
38
|
+
// =============================================================================
|
|
39
|
+
// Layer
|
|
40
|
+
// =============================================================================
|
|
41
|
+
/**
|
|
42
|
+
* Live layer for the Transition service.
|
|
43
|
+
* Creates an isPending atom scoped to this layer.
|
|
44
|
+
*/
|
|
45
|
+
export const TransitionLive = Layer.succeed(Transition, Transition.of({ isPending: Atom.make(false) }));
|
|
46
|
+
//# sourceMappingURL=transition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transition.js","sourceRoot":"","sources":["../src/transition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAiBzC,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,OAAO,UAAW,SAAQ,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAiC;CAAG;AAEpG,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4B,KAAK,CAAC,OAAO,CAClE,UAAU,EACV,UAAU,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAC/C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fibrae",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Effect-first JSX renderer with automatic reactivity",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"@types/hast": "^3.0.4",
|
|
77
77
|
"@types/mdast": "^4.0.0",
|
|
78
78
|
"@types/node": "^24.10.0",
|
|
79
|
-
"@typescript/native-preview": "
|
|
79
|
+
"@typescript/native-preview": "catalog:",
|
|
80
80
|
"typescript": "catalog:",
|
|
81
81
|
"vite": "^8.0.0"
|
|
82
82
|
},
|