@darajs/core 1.20.3 → 1.21.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.
Files changed (260) hide show
  1. package/dist/actions/navigate-to.d.ts.map +1 -1
  2. package/dist/actions/navigate-to.js +5 -1
  3. package/dist/actions/navigate-to.js.map +1 -1
  4. package/dist/api/core.d.ts +8 -20
  5. package/dist/api/core.d.ts.map +1 -1
  6. package/dist/api/core.js +5 -70
  7. package/dist/api/core.js.map +1 -1
  8. package/dist/api/index.d.ts +1 -1
  9. package/dist/api/index.d.ts.map +1 -1
  10. package/dist/api/index.js +1 -1
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/auth/auth.d.ts +0 -20
  13. package/dist/auth/auth.d.ts.map +1 -1
  14. package/dist/auth/auth.js +0 -11
  15. package/dist/auth/auth.js.map +1 -1
  16. package/dist/auth/basic/basic-auth-login.js +4 -4
  17. package/dist/auth/basic/basic-auth-login.js.map +1 -1
  18. package/dist/auth/default/default-auth-login.js +4 -4
  19. package/dist/auth/default/default-auth-login.js.map +1 -1
  20. package/dist/auth/index.d.ts +0 -1
  21. package/dist/auth/index.d.ts.map +1 -1
  22. package/dist/auth/index.js +0 -1
  23. package/dist/auth/index.js.map +1 -1
  24. package/dist/components/fallback/default.d.ts +1 -0
  25. package/dist/components/fallback/default.d.ts.map +1 -1
  26. package/dist/components/fallback/default.js +3 -0
  27. package/dist/components/fallback/default.js.map +1 -1
  28. package/dist/components/index.d.ts +8 -5
  29. package/dist/components/index.d.ts.map +1 -1
  30. package/dist/components/index.js +8 -5
  31. package/dist/components/index.js.map +1 -1
  32. package/dist/components/link.d.ts +18 -0
  33. package/dist/components/link.d.ts.map +1 -0
  34. package/dist/components/link.js +89 -0
  35. package/dist/components/link.js.map +1 -0
  36. package/dist/components/menu-link.d.ts +4 -0
  37. package/dist/components/menu-link.d.ts.map +1 -0
  38. package/dist/components/menu-link.js +45 -0
  39. package/dist/components/menu-link.js.map +1 -0
  40. package/dist/components/{menu/menu.d.ts → menu.d.ts} +1 -1
  41. package/dist/components/menu.d.ts.map +1 -0
  42. package/dist/components/{menu/menu.js → menu.js} +6 -6
  43. package/dist/components/menu.js.map +1 -0
  44. package/dist/components/outlet.d.ts +3 -0
  45. package/dist/components/outlet.d.ts.map +1 -0
  46. package/dist/components/outlet.js +3 -0
  47. package/dist/components/outlet.js.map +1 -0
  48. package/dist/components/powered-by-causalens.d.ts +3 -0
  49. package/dist/components/powered-by-causalens.d.ts.map +1 -0
  50. package/dist/components/powered-by-causalens.js +25 -0
  51. package/dist/components/powered-by-causalens.js.map +1 -0
  52. package/dist/components/progress-tracker.d.ts.map +1 -0
  53. package/dist/components/{progress-tracker/progress-tracker.js → progress-tracker.js} +4 -4
  54. package/dist/components/progress-tracker.js.map +1 -0
  55. package/dist/components/{side-bar-frame/side-bar-frame.d.ts → side-bar-frame.d.ts} +2 -1
  56. package/dist/components/side-bar-frame.d.ts.map +1 -0
  57. package/dist/components/{side-bar-frame/side-bar-frame.js → side-bar-frame.js} +10 -13
  58. package/dist/components/side-bar-frame.js.map +1 -0
  59. package/dist/components/{top-bar-frame/top-bar-frame.d.ts → top-bar-frame.d.ts} +1 -1
  60. package/dist/components/top-bar-frame.d.ts.map +1 -0
  61. package/dist/components/{top-bar-frame/top-bar-frame.js → top-bar-frame.js} +6 -7
  62. package/dist/components/top-bar-frame.js.map +1 -0
  63. package/dist/dara_core-1.21.1-py3-none-any.whl +0 -0
  64. package/dist/index.css +42 -0
  65. package/dist/index.d.ts +1 -1
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +1 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/pages/error-page.d.ts +12 -2
  70. package/dist/pages/error-page.d.ts.map +1 -1
  71. package/dist/pages/error-page.js +18 -10
  72. package/dist/pages/error-page.js.map +1 -1
  73. package/dist/pages/error-status-code-page.d.ts +13 -0
  74. package/dist/pages/error-status-code-page.d.ts.map +1 -0
  75. package/dist/pages/error-status-code-page.js +40 -0
  76. package/dist/pages/error-status-code-page.js.map +1 -0
  77. package/dist/pages/root-error-page.d.ts +3 -0
  78. package/dist/pages/root-error-page.d.ts.map +1 -0
  79. package/dist/pages/root-error-page.js +31 -0
  80. package/dist/pages/root-error-page.js.map +1 -0
  81. package/dist/pages/route-error-boundary.d.ts +3 -0
  82. package/dist/pages/route-error-boundary.d.ts.map +1 -0
  83. package/dist/pages/route-error-boundary.js +85 -0
  84. package/dist/pages/route-error-boundary.js.map +1 -0
  85. package/dist/router/cache.d.ts +19 -0
  86. package/dist/router/cache.d.ts.map +1 -0
  87. package/dist/router/cache.js +56 -0
  88. package/dist/router/cache.js.map +1 -0
  89. package/dist/router/context.d.ts +17 -0
  90. package/dist/router/context.d.ts.map +1 -0
  91. package/dist/router/context.js +21 -0
  92. package/dist/router/context.js.map +1 -0
  93. package/dist/router/create-router.d.ts +22 -0
  94. package/dist/router/create-router.d.ts.map +1 -0
  95. package/dist/router/create-router.js +210 -0
  96. package/dist/router/create-router.js.map +1 -0
  97. package/dist/router/fetching.d.ts +115 -0
  98. package/dist/router/fetching.d.ts.map +1 -0
  99. package/dist/router/fetching.js +280 -0
  100. package/dist/router/fetching.js.map +1 -0
  101. package/dist/router/index.d.ts +7 -0
  102. package/dist/router/index.d.ts.map +1 -0
  103. package/dist/router/index.js +7 -0
  104. package/dist/router/index.js.map +1 -0
  105. package/dist/router/route-content.d.ts +16 -0
  106. package/dist/router/route-content.d.ts.map +1 -0
  107. package/dist/router/route-content.js +112 -0
  108. package/dist/router/route-content.js.map +1 -0
  109. package/dist/router/router-root.d.ts +7 -0
  110. package/dist/router/router-root.d.ts.map +1 -0
  111. package/dist/router/router-root.js +15 -0
  112. package/dist/router/router-root.js.map +1 -0
  113. package/dist/run.d.ts +14 -1
  114. package/dist/run.d.ts.map +1 -1
  115. package/dist/run.js +41 -24
  116. package/dist/run.js.map +1 -1
  117. package/dist/shared/context/config-context.d.ts +7 -0
  118. package/dist/shared/context/config-context.d.ts.map +1 -0
  119. package/dist/shared/context/config-context.js +15 -0
  120. package/dist/shared/context/config-context.js.map +1 -0
  121. package/dist/shared/context/global-task-context.d.ts +2 -1
  122. package/dist/shared/context/global-task-context.d.ts.map +1 -1
  123. package/dist/shared/context/index.d.ts +2 -1
  124. package/dist/shared/context/index.d.ts.map +1 -1
  125. package/dist/shared/context/index.js +2 -1
  126. package/dist/shared/context/index.js.map +1 -1
  127. package/dist/shared/context/registries-context.d.ts +10 -7
  128. package/dist/shared/context/registries-context.d.ts.map +1 -1
  129. package/dist/shared/context/registries-context.js +49 -9
  130. package/dist/shared/context/registries-context.js.map +1 -1
  131. package/dist/shared/dynamic-component/dynamic-auth-component.d.ts +12 -0
  132. package/dist/shared/dynamic-component/dynamic-auth-component.d.ts.map +1 -0
  133. package/dist/shared/dynamic-component/dynamic-auth-component.js +53 -0
  134. package/dist/shared/dynamic-component/dynamic-auth-component.js.map +1 -0
  135. package/dist/shared/dynamic-component/dynamic-component.d.ts +10 -1
  136. package/dist/shared/dynamic-component/dynamic-component.d.ts.map +1 -1
  137. package/dist/shared/dynamic-component/dynamic-component.js +67 -7
  138. package/dist/shared/dynamic-component/dynamic-component.js.map +1 -1
  139. package/dist/shared/error-handling/error-display.js +2 -2
  140. package/dist/shared/index.d.ts +1 -2
  141. package/dist/shared/index.d.ts.map +1 -1
  142. package/dist/shared/index.js +1 -2
  143. package/dist/shared/index.js.map +1 -1
  144. package/dist/shared/interactivity/derived-variable.d.ts +62 -17
  145. package/dist/shared/interactivity/derived-variable.d.ts.map +1 -1
  146. package/dist/shared/interactivity/derived-variable.js +162 -96
  147. package/dist/shared/interactivity/derived-variable.js.map +1 -1
  148. package/dist/shared/interactivity/persistence.d.ts +5 -1
  149. package/dist/shared/interactivity/persistence.d.ts.map +1 -1
  150. package/dist/shared/interactivity/persistence.js +83 -5
  151. package/dist/shared/interactivity/persistence.js.map +1 -1
  152. package/dist/shared/interactivity/plain-variable.d.ts +2 -1
  153. package/dist/shared/interactivity/plain-variable.d.ts.map +1 -1
  154. package/dist/shared/interactivity/plain-variable.js +14 -2
  155. package/dist/shared/interactivity/plain-variable.js.map +1 -1
  156. package/dist/shared/interactivity/resolve-variable.d.ts +7 -1
  157. package/dist/shared/interactivity/resolve-variable.d.ts.map +1 -1
  158. package/dist/shared/interactivity/resolve-variable.js +56 -2
  159. package/dist/shared/interactivity/resolve-variable.js.map +1 -1
  160. package/dist/shared/interactivity/server-variable.d.ts +2 -1
  161. package/dist/shared/interactivity/server-variable.d.ts.map +1 -1
  162. package/dist/shared/interactivity/server-variable.js +18 -0
  163. package/dist/shared/interactivity/server-variable.js.map +1 -1
  164. package/dist/shared/interactivity/store.d.ts +0 -1
  165. package/dist/shared/interactivity/store.d.ts.map +1 -1
  166. package/dist/shared/interactivity/store.js.map +1 -1
  167. package/dist/shared/interactivity/tabular-variable.d.ts.map +1 -1
  168. package/dist/shared/interactivity/tabular-variable.js +5 -2
  169. package/dist/shared/interactivity/tabular-variable.js.map +1 -1
  170. package/dist/shared/interactivity/triggers.d.ts +7 -2
  171. package/dist/shared/interactivity/triggers.d.ts.map +1 -1
  172. package/dist/shared/interactivity/triggers.js +15 -2
  173. package/dist/shared/interactivity/triggers.js.map +1 -1
  174. package/dist/shared/interactivity/use-action.d.ts +6 -1
  175. package/dist/shared/interactivity/use-action.d.ts.map +1 -1
  176. package/dist/shared/interactivity/use-action.js +106 -44
  177. package/dist/shared/interactivity/use-action.js.map +1 -1
  178. package/dist/shared/interactivity/use-server-component.d.ts +4 -1
  179. package/dist/shared/interactivity/use-server-component.d.ts.map +1 -1
  180. package/dist/shared/interactivity/use-server-component.js +107 -38
  181. package/dist/shared/interactivity/use-server-component.js.map +1 -1
  182. package/dist/shared/interactivity/use-variable.js +1 -1
  183. package/dist/shared/interactivity/use-variable.js.map +1 -1
  184. package/dist/shared/{template-root/template-root.d.ts → root/authenticated-root.d.ts} +4 -5
  185. package/dist/shared/root/authenticated-root.d.ts.map +1 -0
  186. package/dist/shared/root/authenticated-root.js +86 -0
  187. package/dist/shared/root/authenticated-root.js.map +1 -0
  188. package/dist/shared/root/dynamic-context.d.ts.map +1 -0
  189. package/dist/shared/root/dynamic-context.js.map +1 -0
  190. package/dist/shared/root/unauthenticated-root.d.ts +7 -0
  191. package/dist/shared/root/unauthenticated-root.d.ts.map +1 -0
  192. package/dist/shared/root/unauthenticated-root.js +38 -0
  193. package/dist/shared/root/unauthenticated-root.js.map +1 -0
  194. package/dist/shared/utils/deferred.d.ts +10 -0
  195. package/dist/shared/utils/deferred.d.ts.map +1 -0
  196. package/dist/shared/utils/deferred.js +13 -0
  197. package/dist/shared/utils/deferred.js.map +1 -0
  198. package/dist/shared/utils/index.d.ts +1 -1
  199. package/dist/shared/utils/index.d.ts.map +1 -1
  200. package/dist/shared/utils/index.js +1 -1
  201. package/dist/shared/utils/index.js.map +1 -1
  202. package/dist/shared/utils/use-component-styles.d.ts +1 -1
  203. package/dist/shared/utils/use-component-styles.d.ts.map +1 -1
  204. package/dist/shared/utils/use-component-styles.js +2 -2
  205. package/dist/shared/utils/use-component-styles.js.map +1 -1
  206. package/dist/shared/utils/use-url-sync.d.ts +1 -13
  207. package/dist/shared/utils/use-url-sync.d.ts.map +1 -1
  208. package/dist/shared/utils/use-url-sync.js +18 -22
  209. package/dist/shared/utils/use-url-sync.js.map +1 -1
  210. package/dist/shared/utils/use-window-title.d.ts +1 -1
  211. package/dist/shared/utils/use-window-title.d.ts.map +1 -1
  212. package/dist/shared/utils/use-window-title.js +5 -5
  213. package/dist/shared/utils/use-window-title.js.map +1 -1
  214. package/dist/types/core.d.ts +90 -15
  215. package/dist/types/core.d.ts.map +1 -1
  216. package/dist/types/core.js +16 -1
  217. package/dist/types/core.js.map +1 -1
  218. package/dist/types/utils.d.ts +2 -2
  219. package/dist/types/utils.d.ts.map +1 -1
  220. package/dist/types/utils.js.map +1 -1
  221. package/dist/umd/{dara.core.umd.js → dara.core.umd.cjs} +62588 -46966
  222. package/dist/umd/style.css +52 -9
  223. package/package.json +15 -16
  224. package/dist/auth/auth-wrapper.d.ts +0 -15
  225. package/dist/auth/auth-wrapper.d.ts.map +0 -1
  226. package/dist/auth/auth-wrapper.js +0 -76
  227. package/dist/auth/auth-wrapper.js.map +0 -1
  228. package/dist/components/menu/menu.d.ts.map +0 -1
  229. package/dist/components/menu/menu.js.map +0 -1
  230. package/dist/components/progress-tracker/progress-tracker.d.ts.map +0 -1
  231. package/dist/components/progress-tracker/progress-tracker.js.map +0 -1
  232. package/dist/components/router-content/router-content.d.ts +0 -14
  233. package/dist/components/router-content/router-content.d.ts.map +0 -1
  234. package/dist/components/router-content/router-content.js +0 -18
  235. package/dist/components/router-content/router-content.js.map +0 -1
  236. package/dist/components/side-bar-frame/side-bar-frame.d.ts.map +0 -1
  237. package/dist/components/side-bar-frame/side-bar-frame.js.map +0 -1
  238. package/dist/components/top-bar-frame/top-bar-frame.d.ts.map +0 -1
  239. package/dist/components/top-bar-frame/top-bar-frame.js.map +0 -1
  240. package/dist/dara_core-1.20.3-py3-none-any.whl +0 -0
  241. package/dist/shared/private-route/private-route.d.ts +0 -19
  242. package/dist/shared/private-route/private-route.d.ts.map +0 -1
  243. package/dist/shared/private-route/private-route.js +0 -37
  244. package/dist/shared/private-route/private-route.js.map +0 -1
  245. package/dist/shared/template-root/dynamic-context.d.ts.map +0 -1
  246. package/dist/shared/template-root/dynamic-context.js.map +0 -1
  247. package/dist/shared/template-root/template-root.d.ts.map +0 -1
  248. package/dist/shared/template-root/template-root.js +0 -100
  249. package/dist/shared/template-root/template-root.js.map +0 -1
  250. package/dist/shared/utils/use-action-registry.d.ts +0 -11
  251. package/dist/shared/utils/use-action-registry.d.ts.map +0 -1
  252. package/dist/shared/utils/use-action-registry.js +0 -19
  253. package/dist/shared/utils/use-action-registry.js.map +0 -1
  254. package/dist/shared/utils/use-component-registry.d.ts +0 -11
  255. package/dist/shared/utils/use-component-registry.d.ts.map +0 -1
  256. package/dist/shared/utils/use-component-registry.js +0 -58
  257. package/dist/shared/utils/use-component-registry.js.map +0 -1
  258. /package/dist/components/{progress-tracker/progress-tracker.d.ts → progress-tracker.d.ts} +0 -0
  259. /package/dist/shared/{template-root → root}/dynamic-context.d.ts +0 -0
  260. /package/dist/shared/{template-root → root}/dynamic-context.js +0 -0
@@ -0,0 +1,115 @@
1
+ import { type Params } from 'react-router';
2
+ import { type Snapshot } from 'recoil';
3
+ import * as z from 'zod/v4';
4
+ import { type Deferred, type DerivedResult } from '../shared';
5
+ import { ActionImpl, type ComponentInstance, type DerivedVariable, type NormalizedPayload, type PyComponentInstance, type RouteDefinition } from '../types';
6
+ export declare const TemplateChunk: z.ZodObject<{
7
+ type: z.ZodLiteral<"template">;
8
+ template: z.ZodObject<{
9
+ data: z.ZodAny;
10
+ lookup: z.ZodRecord<z.ZodString, z.ZodAny>;
11
+ }, z.core.$strip>;
12
+ }, z.core.$strip>;
13
+ export type TemplateChunk = z.infer<typeof TemplateChunk>;
14
+ export declare const ActionChunk: z.ZodObject<{
15
+ type: z.ZodLiteral<"actions">;
16
+ actions: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
17
+ name: z.ZodString;
18
+ __typename: z.ZodLiteral<"ActionImpl">;
19
+ }, z.core.$loose>>>;
20
+ }, z.core.$strip>;
21
+ export type ActionChunk = z.infer<typeof ActionChunk>;
22
+ export declare const DerivedVariableChunk: z.ZodObject<{
23
+ type: z.ZodLiteral<"derived_variable">;
24
+ uid: z.ZodString;
25
+ result: z.ZodObject<{
26
+ ok: z.ZodBoolean;
27
+ value: z.ZodAny;
28
+ }, z.core.$strip>;
29
+ }, z.core.$strip>;
30
+ export type DerivedVariableChunk = z.infer<typeof DerivedVariableChunk>;
31
+ export declare const PyComponentChunk: z.ZodObject<{
32
+ type: z.ZodLiteral<"py_component">;
33
+ uid: z.ZodString;
34
+ result: z.ZodObject<{
35
+ ok: z.ZodBoolean;
36
+ value: z.ZodAny;
37
+ }, z.core.$strip>;
38
+ }, z.core.$strip>;
39
+ export type PyComponentChunk = z.infer<typeof PyComponentChunk>;
40
+ export declare const ResponseChunk: z.ZodUnion<readonly [z.ZodObject<{
41
+ type: z.ZodLiteral<"template">;
42
+ template: z.ZodObject<{
43
+ data: z.ZodAny;
44
+ lookup: z.ZodRecord<z.ZodString, z.ZodAny>;
45
+ }, z.core.$strip>;
46
+ }, z.core.$strip>, z.ZodObject<{
47
+ type: z.ZodLiteral<"actions">;
48
+ actions: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
49
+ name: z.ZodString;
50
+ __typename: z.ZodLiteral<"ActionImpl">;
51
+ }, z.core.$loose>>>;
52
+ }, z.core.$strip>, z.ZodObject<{
53
+ type: z.ZodLiteral<"derived_variable">;
54
+ uid: z.ZodString;
55
+ result: z.ZodObject<{
56
+ ok: z.ZodBoolean;
57
+ value: z.ZodAny;
58
+ }, z.core.$strip>;
59
+ }, z.core.$strip>, z.ZodObject<{
60
+ type: z.ZodLiteral<"py_component">;
61
+ uid: z.ZodString;
62
+ result: z.ZodObject<{
63
+ ok: z.ZodBoolean;
64
+ value: z.ZodAny;
65
+ }, z.core.$strip>;
66
+ }, z.core.$strip>]>;
67
+ export type ResponseChunk = z.infer<typeof ResponseChunk>;
68
+ interface DerivedVariablePayload {
69
+ uid: string;
70
+ values: NormalizedPayload<any[]>;
71
+ }
72
+ interface PyComponentPayload {
73
+ uid: string;
74
+ name: string;
75
+ values: NormalizedPayload<Record<string, any>>;
76
+ }
77
+ interface DerivedVariableHandle {
78
+ dv: DerivedVariable;
79
+ result: DerivedResult;
80
+ handle: Deferred<any>;
81
+ payload: DerivedVariablePayload;
82
+ }
83
+ interface PyComponentHandle {
84
+ py: PyComponentInstance;
85
+ result: DerivedResult;
86
+ handle: Deferred<any>;
87
+ payload: PyComponentPayload;
88
+ }
89
+ export interface LoaderData {
90
+ template: ComponentInstance;
91
+ on_load: ActionImpl[];
92
+ route_definition: RouteDefinition;
93
+ derived_variables: DerivedVariableHandle[];
94
+ py_components: PyComponentHandle[];
95
+ }
96
+ /**
97
+ * Fetch route data from the server.
98
+ *
99
+ * Collects payloads for `on_load` actions as wel as `derived_variable`s and `py_component`s on the page and sends them in the same request.
100
+ */
101
+ export declare function fetchRouteData(route: RouteDefinition, params: Params<string>, snapshot: Snapshot, signal?: AbortSignal): Promise<LoaderData>;
102
+ /**
103
+ * Retrieve route data from the preload cache.
104
+ *
105
+ * @param routeId route ID
106
+ * @param params current route params
107
+ */
108
+ export declare function getFromPreloadCache(routeId: string, params: Params<string>): LoaderData | Promise<LoaderData> | undefined;
109
+ /**
110
+ * Provides a function to preload data for all routes matching a given URL.
111
+ * Checks the preload cache first, and if not found, fetches the data from the server.
112
+ */
113
+ export declare function usePreloadRoute(): (url: Partial<Location> | string) => void;
114
+ export {};
115
+ //# sourceMappingURL=fetching.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetching.d.ts","sourceRoot":"","sources":["../../js/router/fetching.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,KAAK,QAAQ,EAAqB,MAAM,QAAQ,CAAC;AAC1D,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAM5B,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAA4D,MAAM,UAAU,CAAC;AACvH,OAAO,EAEH,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAGpB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAEvB,MAAM,SAAS,CAAC;AA0BjB,eAAO,MAAM,aAAa;;;;;;iBAGxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW;;;;;;iBAGtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,oBAAoB;;;;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,gBAAgB;;;;;;;iBAI3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAgF,CAAC;AAC3G,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,UAAU,sBAAsB;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;CACpC;AAED,UAAU,kBAAkB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CAClD;AAED,UAAU,qBAAqB;IAC3B,EAAE,EAAE,eAAe,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,sBAAsB,CAAC;CACnC;AAED,UAAU,iBAAiB;IACvB,EAAE,EAAE,mBAAmB,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,gBAAgB,EAAE,eAAe,CAAC;IAClC,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACtC;AAkDD;;;;GAIG;AACH,wBAAsB,cAAc,CAChC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EACtB,QAAQ,EAAE,QAAQ,EAClB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,UAAU,CAAC,CAwJrB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GACvB,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAE9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,KAAK,IAAI,CA0B3E"}
@@ -0,0 +1,280 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
11
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
12
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
14
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
15
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
16
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
17
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
18
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
19
+ function fulfill(value) { resume("next", value); }
20
+ function reject(value) { resume("throw", value); }
21
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
22
+ };
23
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
24
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
25
+ var m = o[Symbol.asyncIterator], i;
26
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
27
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
28
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
29
+ };
30
+ import { matchRoutes } from 'react-router';
31
+ import { useRecoilCallback } from 'recoil';
32
+ import * as z from 'zod/v4';
33
+ import { HTTP_METHOD } from '@darajs/ui-utils';
34
+ import { request } from '../api';
35
+ import { handleAuthErrors } from '../auth';
36
+ import { deferred, preloadDerivedVariable, preloadServerComponent } from '../shared';
37
+ import { ActionImpl, LoaderError, isAnnotatedAction, } from '../types';
38
+ import { cleanArgs, cleanKwargs, resolveVariableStatic } from '../shared/interactivity/resolve-variable';
39
+ import { denormalize, normalizeRequest } from '../shared/utils/normalization';
40
+ import { SingleUseCache } from './cache';
41
+ import { useRouterContext } from './context';
42
+ const NormalizedObject = z.object({
43
+ data: z.any(),
44
+ lookup: z.record(z.string(), z.any()),
45
+ });
46
+ export const TemplateChunk = z.object({
47
+ type: z.literal('template'),
48
+ template: NormalizedObject,
49
+ });
50
+ export const ActionChunk = z.object({
51
+ type: z.literal('actions'),
52
+ actions: z.record(z.string(), z.array(ActionImpl)),
53
+ });
54
+ export const DerivedVariableChunk = z.object({
55
+ type: z.literal('derived_variable'),
56
+ uid: z.string(),
57
+ result: z.object({ ok: z.boolean(), value: z.any() }),
58
+ });
59
+ export const PyComponentChunk = z.object({
60
+ type: z.literal('py_component'),
61
+ uid: z.string(),
62
+ result: z.object({ ok: z.boolean(), value: z.any() }),
63
+ });
64
+ export const ResponseChunk = z.union([TemplateChunk, ActionChunk, DerivedVariableChunk, PyComponentChunk]);
65
+ const PRELOAD_TIMEOUT = 5000; // 5 seconds
66
+ const preloadCache = new SingleUseCache({
67
+ defaultTimeout: PRELOAD_TIMEOUT,
68
+ });
69
+ function createCacheKey(routeId, params) {
70
+ return `${routeId}:${JSON.stringify(params)}`;
71
+ }
72
+ /**
73
+ * Creates an NDJSON async generator from a Response object.
74
+ * Yields chunks of JSON data as they are received.
75
+ *
76
+ * @param response Response object to read from
77
+ * @param signal AbortSignal to abort the generator
78
+ */
79
+ function ndjson(response, signal) {
80
+ return __asyncGenerator(this, arguments, function* ndjson_1() {
81
+ const reader = response.body.getReader();
82
+ const newline = /\r?\n/;
83
+ const decoder = new TextDecoder();
84
+ let buffer = '';
85
+ while (true) {
86
+ if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
87
+ throw new DOMException('The operation was aborted', 'AbortError');
88
+ }
89
+ // eslint-disable-next-line no-await-in-loop
90
+ const { done, value } = yield __await(reader.read());
91
+ if (done) {
92
+ if (buffer.length > 0) {
93
+ yield yield __await(JSON.parse(buffer));
94
+ }
95
+ return yield __await(void 0);
96
+ }
97
+ const chunk = decoder.decode(value, { stream: true });
98
+ buffer += chunk;
99
+ const parts = buffer.split(newline);
100
+ buffer = parts.pop();
101
+ for (const part of parts) {
102
+ yield yield __await(JSON.parse(part));
103
+ }
104
+ }
105
+ });
106
+ }
107
+ /**
108
+ * Fetch route data from the server.
109
+ *
110
+ * Collects payloads for `on_load` actions as wel as `derived_variable`s and `py_component`s on the page and sends them in the same request.
111
+ */
112
+ export function fetchRouteData(route, params, snapshot, signal) {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ var _a, _b, _c, _d;
115
+ // collect payloads for annotated actions - action impls can stay on the client
116
+ let actions = [];
117
+ if (Array.isArray(route.on_load)) {
118
+ actions = route.on_load;
119
+ }
120
+ else if (route.on_load) {
121
+ actions = [route.on_load];
122
+ }
123
+ const actionPayloads = actions.filter(isAnnotatedAction).map((a) => {
124
+ const kwargs = cleanKwargs(Object.fromEntries(Object.entries(a.dynamic_kwargs).map(([k, v]) => {
125
+ return [k, resolveVariableStatic(v, snapshot)];
126
+ })), null);
127
+ return {
128
+ uid: a.uid,
129
+ definition_uid: a.definition_uid,
130
+ values: normalizeRequest(kwargs, a.dynamic_kwargs),
131
+ };
132
+ });
133
+ // Collect payloads for DVs and py_components,
134
+ // preloading ones that don't have a cached value
135
+ const dvHandles = Object.values((_b = (_a = route.dependency_graph) === null || _a === void 0 ? void 0 : _a.derived_variables) !== null && _b !== void 0 ? _b : {}).flatMap((dv) => {
136
+ const handle = preloadDerivedVariable(dv, snapshot);
137
+ if (!handle) {
138
+ return [];
139
+ }
140
+ return Object.assign(Object.assign({}, handle), { dv, payload: {
141
+ values: normalizeRequest(cleanArgs(handle.result.values, null), dv.variables),
142
+ uid: dv.uid,
143
+ } });
144
+ });
145
+ const pyHandles = Object.values((_d = (_c = route.dependency_graph) === null || _c === void 0 ? void 0 : _c.py_components) !== null && _d !== void 0 ? _d : {}).flatMap((py) => {
146
+ const handle = preloadServerComponent(py, snapshot);
147
+ if (!handle) {
148
+ return [];
149
+ }
150
+ // turn the resolved values back into an object and clean them up
151
+ const kwargValues = cleanKwargs(Object.keys(py.props.dynamic_kwargs).reduce((acc, k, idx) => {
152
+ acc[k] = handle.result.values[idx];
153
+ return acc;
154
+ }, {}));
155
+ return Object.assign(Object.assign({}, handle), { py, payload: {
156
+ uid: py.uid,
157
+ name: py.name,
158
+ values: normalizeRequest(kwargValues, py.props.dynamic_kwargs),
159
+ } });
160
+ });
161
+ const dvHandlesByUid = dvHandles.reduce((acc, h) => (Object.assign(Object.assign({}, acc), { [h.dv.uid]: h })), {});
162
+ const pyHandlesByUid = pyHandles.reduce((acc, h) => (Object.assign(Object.assign({}, acc), { [h.py.uid]: h })), {});
163
+ const response = yield request(`/api/core/route/${route.id}`, {
164
+ method: HTTP_METHOD.POST,
165
+ body: JSON.stringify({
166
+ action_payloads: actionPayloads,
167
+ derived_variable_payloads: dvHandles.map((h) => h.payload),
168
+ py_component_payloads: pyHandles.map((h) => h.payload),
169
+ ws_channel: yield (yield window.dara.ws.promise).getChannel(),
170
+ params,
171
+ }),
172
+ signal,
173
+ });
174
+ yield handleAuthErrors(response, true);
175
+ if (!response.ok) {
176
+ const error = (yield response.json());
177
+ throw new LoaderError(error.detail);
178
+ }
179
+ const template = deferred();
180
+ const onLoadActions = deferred();
181
+ const resolvedDvs = new Set();
182
+ const resolvedPyComponents = new Set();
183
+ // kick off the async generator in the background
184
+ queueMicrotask(() => __awaiter(this, void 0, void 0, function* () {
185
+ var _a, e_1, _b, _c;
186
+ var _d, _e;
187
+ try {
188
+ try {
189
+ for (var _f = true, _g = __asyncValues(ndjson(response, signal)), _h; _h = yield _g.next(), _a = _h.done, !_a; _f = true) {
190
+ _c = _h.value;
191
+ _f = false;
192
+ const data = _c;
193
+ const chunk = ResponseChunk.parse(data);
194
+ if (chunk.type === 'template') {
195
+ const component = denormalize(chunk.template.data, chunk.template.lookup);
196
+ template.resolve(component);
197
+ }
198
+ if (chunk.type === 'actions') {
199
+ onLoadActions.resolve(actions.flatMap((a) => (isAnnotatedAction(a) ? chunk.actions[a.uid] : a)));
200
+ }
201
+ // process the other chunks, resolving the deferreds as they come in
202
+ if (chunk.type === 'derived_variable') {
203
+ (_d = dvHandlesByUid[chunk.uid]) === null || _d === void 0 ? void 0 : _d.handle.resolve(chunk.result);
204
+ resolvedDvs.add(chunk.uid);
205
+ }
206
+ if (chunk.type === 'py_component') {
207
+ (_e = pyHandlesByUid[chunk.uid]) === null || _e === void 0 ? void 0 : _e.handle.resolve(chunk.result);
208
+ resolvedPyComponents.add(chunk.uid);
209
+ }
210
+ }
211
+ }
212
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
213
+ finally {
214
+ try {
215
+ if (!_f && !_a && (_b = _g.return)) yield _b.call(_g);
216
+ }
217
+ finally { if (e_1) throw e_1.error; }
218
+ }
219
+ }
220
+ catch (e) {
221
+ template.reject(e);
222
+ onLoadActions.reject(e);
223
+ // reject remaining unresolved promises
224
+ for (const [uid, handle] of Object.entries(dvHandlesByUid)) {
225
+ if (!resolvedDvs.has(uid)) {
226
+ handle.handle.reject(e);
227
+ }
228
+ }
229
+ for (const [uid, handle] of Object.entries(pyHandlesByUid)) {
230
+ if (!resolvedPyComponents.has(uid)) {
231
+ handle.handle.reject(e);
232
+ }
233
+ }
234
+ }
235
+ }));
236
+ // return as soon as we have the template and on_load actions
237
+ return {
238
+ template: yield template.promise,
239
+ on_load: yield onLoadActions.promise,
240
+ route_definition: route,
241
+ py_components: pyHandles,
242
+ derived_variables: dvHandles,
243
+ };
244
+ });
245
+ }
246
+ /**
247
+ * Retrieve route data from the preload cache.
248
+ *
249
+ * @param routeId route ID
250
+ * @param params current route params
251
+ */
252
+ export function getFromPreloadCache(routeId, params) {
253
+ return preloadCache.get(createCacheKey(routeId, params));
254
+ }
255
+ /**
256
+ * Provides a function to preload data for all routes matching a given URL.
257
+ * Checks the preload cache first, and if not found, fetches the data from the server.
258
+ */
259
+ export function usePreloadRoute() {
260
+ const { routeObjects, routeDefMap } = useRouterContext();
261
+ return useRecoilCallback(({ snapshot }) => (url) => {
262
+ var _a;
263
+ // Match routes for the given URL using React Router's route objects
264
+ const matches = matchRoutes(routeObjects, url, (_a = window.dara) === null || _a === void 0 ? void 0 : _a.base_url);
265
+ if (!matches) {
266
+ return;
267
+ }
268
+ matches.forEach((match) => {
269
+ // Find the corresponding route definition using the route ID
270
+ const routeDef = routeDefMap.get(match.route.id);
271
+ if (!routeDef) {
272
+ return;
273
+ }
274
+ preloadCache.setIfMissing(createCacheKey(routeDef.id, match.params), () => {
275
+ return fetchRouteData(routeDef, match.params, snapshot);
276
+ });
277
+ });
278
+ }, [routeDefMap, routeObjects]);
279
+ }
280
+ //# sourceMappingURL=fetching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetching.js","sourceRoot":"","sources":["../../js/router/fetching.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { SingleUseCache as LockSecuredCache } from './cache';
2
+ export { RouterContextProvider, useRouterContext } from './context';
3
+ export { createRouter, findFirstPath } from './create-router';
4
+ export { fetchRouteData, getFromPreloadCache, usePreloadRoute, type LoaderData } from './fetching';
5
+ export { default as RouteContent, createRouteLoader, type LoaderResult } from './route-content';
6
+ export { default as RouterRoot } from './router-root';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../js/router/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { SingleUseCache as LockSecuredCache } from './cache';
2
+ export { RouterContextProvider, useRouterContext } from './context';
3
+ export { createRouter, findFirstPath } from './create-router';
4
+ export { fetchRouteData, getFromPreloadCache, usePreloadRoute } from './fetching';
5
+ export { default as RouteContent, createRouteLoader } from './route-content';
6
+ export { default as RouterRoot } from './router-root';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../js/router/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAmB,MAAM,YAAY,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,iBAAiB,EAAqB,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { type LoaderFunctionArgs } from 'react-router';
3
+ import { type Snapshot } from 'recoil';
4
+ import { type RouteDefinition } from '../types';
5
+ import { type LoaderData } from './fetching';
6
+ export interface LoaderResult {
7
+ data: LoaderData | Promise<LoaderData>;
8
+ }
9
+ export declare function createRouteLoader(route: RouteDefinition, snapshotRef: React.MutableRefObject<Snapshot>): ({ request: loaderRequest, params }: LoaderFunctionArgs) => Promise<{
10
+ data: LoaderData | Promise<LoaderData>;
11
+ }>;
12
+ declare function RouteContent(props: {
13
+ route: RouteDefinition;
14
+ }): React.ReactNode;
15
+ export default RouteContent;
16
+ //# sourceMappingURL=route-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-content.d.ts","sourceRoot":"","sources":["../../js/router/route-content.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAS,KAAK,kBAAkB,EAA6B,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIvC,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,SAAS,CAAC;AAKlE,OAAO,EAAE,KAAK,UAAU,EAAuC,MAAM,YAAY,CAAC;AAElF,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC1C;AAoBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,wCAClC,kBAAkB;;GAgBtF;AAsED,iBAAS,YAAY,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,GAAG,KAAK,CAAC,SAAS,CAYxE;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,112 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ /* eslint-disable react/no-unused-prop-types */
12
+ import * as React from 'react';
13
+ import { Await, useLoaderData, useMatches } from 'react-router';
14
+ import {} from 'recoil';
15
+ import { DefaultFallbackStatic } from '../components/fallback/default';
16
+ import { depsRegistry } from '../shared';
17
+ import { isAnnotatedAction } from '../types';
18
+ import DynamicComponent from '../shared/dynamic-component/dynamic-component';
19
+ import { useExecuteAction } from '../shared/interactivity/use-action';
20
+ import { useWindowTitle } from '../shared/utils';
21
+ import { fetchRouteData, getFromPreloadCache } from './fetching';
22
+ function hasServerActions(route) {
23
+ if (!route.on_load) {
24
+ return false;
25
+ }
26
+ const actions = Array.isArray(route.on_load) ? route.on_load : [route.on_load];
27
+ return actions.some(isAnnotatedAction);
28
+ }
29
+ /**
30
+ * Determines whether to hold navigation (await promise) or let it suspend.
31
+ * Currently holds navigation unless it's a page/index route with server actions.
32
+ * This allows rendering fallbacks for routes with server actions while blocking
33
+ * navigation for simpler routes.
34
+ */
35
+ function shouldHoldPromise(route) {
36
+ return !((route.__typename === 'IndexRoute' || route.__typename === 'PageRoute') && hasServerActions(route));
37
+ }
38
+ export function createRouteLoader(route, snapshotRef) {
39
+ return function loader(_a) {
40
+ return __awaiter(this, arguments, void 0, function* ({ request: loaderRequest, params }) {
41
+ // Check preload cache first
42
+ let result = getFromPreloadCache(route.id, params);
43
+ if (!result) {
44
+ // Not in cache, fetch fresh data
45
+ // Note: loader-initiated requests are NOT cached
46
+ result = fetchRouteData(route, params, snapshotRef.current, loaderRequest.signal);
47
+ }
48
+ if (shouldHoldPromise(route)) {
49
+ result = yield result;
50
+ }
51
+ return { data: result };
52
+ });
53
+ };
54
+ }
55
+ function Content({ route, on_load, template, py_components, derived_variables, }) {
56
+ const executeAction = useExecuteAction();
57
+ const [isLoading, setIsLoading] = React.useState(on_load.length > 0 || py_components.length > 0 || derived_variables.length > 0);
58
+ React.useLayoutEffect(() => {
59
+ if (on_load.length === 0 && py_components.length === 0 && derived_variables.length === 0) {
60
+ return;
61
+ }
62
+ // put the pre-computed promises into the deps registry
63
+ for (const resultHandle of [...py_components, ...derived_variables]) {
64
+ depsRegistry.set(resultHandle.result.depsKey, {
65
+ args: resultHandle.result.relevantValues,
66
+ result: resultHandle.handle.promise,
67
+ });
68
+ }
69
+ let cancelled = false;
70
+ const result = executeAction(on_load);
71
+ // if result is a promise, handle async case
72
+ if (result instanceof Promise) {
73
+ result
74
+ .then(() => {
75
+ if (!cancelled) {
76
+ setIsLoading(false);
77
+ }
78
+ })
79
+ .catch((error) => {
80
+ if (!cancelled) {
81
+ // eslint-disable-next-line no-console
82
+ console.error('Error executing on_load actions:', error);
83
+ setIsLoading(false);
84
+ }
85
+ });
86
+ }
87
+ else {
88
+ // synchronous case - immediately stop loading
89
+ setIsLoading(false);
90
+ }
91
+ return () => {
92
+ cancelled = true;
93
+ };
94
+ }, [route.id, on_load, executeAction, py_components, derived_variables]);
95
+ // only sync title for the most exact route
96
+ const matches = useMatches();
97
+ const isMostExact = matches.at(-1).id === route.id;
98
+ useWindowTitle(route.name, isMostExact);
99
+ if (isLoading) {
100
+ return _jsx(DefaultFallbackStatic, {});
101
+ }
102
+ return _jsx(DynamicComponent, { component: template });
103
+ }
104
+ function RouteContent(props) {
105
+ const { data } = useLoaderData();
106
+ if (data instanceof Promise) {
107
+ return (_jsx(React.Suspense, { fallback: _jsx(DefaultFallbackStatic, {}), children: _jsx(Await, { resolve: data, children: (resolved) => _jsx(Content, Object.assign({}, resolved, { route: props.route })) }) }));
108
+ }
109
+ return _jsx(Content, Object.assign({}, data, { route: props.route }));
110
+ }
111
+ export default RouteContent;
112
+ //# sourceMappingURL=route-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-content.js","sourceRoot":"","sources":["../../js/router/route-content.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { DaraData } from '../types';
2
+ interface RouterRootProps {
3
+ daraData: DaraData;
4
+ }
5
+ declare function RouterRoot({ daraData }: RouterRootProps): JSX.Element;
6
+ export default RouterRoot;
7
+ //# sourceMappingURL=router-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-root.d.ts","sourceRoot":"","sources":["../../js/router/router-root.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,UAAU,eAAe;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACtB;AAED,iBAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAe9D;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { RouterProvider } from 'react-router/dom';
4
+ import { useRecoilSnapshot } from 'recoil';
5
+ import { useLatestRef } from '@darajs/ui-utils';
6
+ import { RouterContextProvider } from './context';
7
+ import { createRouter } from './create-router';
8
+ function RouterRoot({ daraData }) {
9
+ const snapshot = useRecoilSnapshot();
10
+ const snapshotRef = useLatestRef(snapshot);
11
+ const [routerData] = useState(() => createRouter(daraData, snapshotRef));
12
+ return (_jsx(RouterContextProvider, { routeDefinitions: routerData.routeDefinitions, routeObjects: routerData.routeObjects, routeDefMap: routerData.routeDefMap, children: _jsx(RouterProvider, { router: routerData.router }) }));
13
+ }
14
+ export default RouterRoot;
15
+ //# sourceMappingURL=router-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-root.js","sourceRoot":"","sources":["../../js/router/router-root.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/C,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAmB;IAC7C,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE3C,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAEzE,OAAO,CACH,KAAC,qBAAqB,IAClB,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,EAC7C,YAAY,EAAE,UAAU,CAAC,YAAY,EACrC,WAAW,EAAE,UAAU,CAAC,WAAW,YAEnC,KAAC,cAAc,IAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAI,GACzB,CAC3B,CAAC;AACN,CAAC;AAED,eAAe,UAAU,CAAC"}