@tanstack/solid-router 2.0.0-alpha.2 → 2.0.0-alpha.3

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 (204) hide show
  1. package/dist/cjs/Asset.cjs +124 -167
  2. package/dist/cjs/Asset.cjs.map +1 -1
  3. package/dist/cjs/CatchBoundary.cjs +52 -68
  4. package/dist/cjs/CatchBoundary.cjs.map +1 -1
  5. package/dist/cjs/ClientOnly.cjs +61 -39
  6. package/dist/cjs/ClientOnly.cjs.map +1 -1
  7. package/dist/cjs/HeadContent.cjs +35 -27
  8. package/dist/cjs/HeadContent.cjs.map +1 -1
  9. package/dist/cjs/HeadContent.dev.cjs +48 -41
  10. package/dist/cjs/HeadContent.dev.cjs.map +1 -1
  11. package/dist/cjs/Match.cjs +367 -442
  12. package/dist/cjs/Match.cjs.map +1 -1
  13. package/dist/cjs/Matches.cjs +114 -158
  14. package/dist/cjs/Matches.cjs.map +1 -1
  15. package/dist/cjs/RouterProvider.cjs +29 -41
  16. package/dist/cjs/RouterProvider.cjs.map +1 -1
  17. package/dist/cjs/SafeFragment.cjs +7 -5
  18. package/dist/cjs/SafeFragment.cjs.map +1 -1
  19. package/dist/cjs/ScriptOnce.cjs +20 -22
  20. package/dist/cjs/ScriptOnce.cjs.map +1 -1
  21. package/dist/cjs/Scripts.cjs +43 -58
  22. package/dist/cjs/Scripts.cjs.map +1 -1
  23. package/dist/cjs/ScrollRestoration.cjs +26 -28
  24. package/dist/cjs/ScrollRestoration.cjs.map +1 -1
  25. package/dist/cjs/Transitioner.cjs +91 -124
  26. package/dist/cjs/Transitioner.cjs.map +1 -1
  27. package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  28. package/dist/cjs/awaited.cjs +31 -53
  29. package/dist/cjs/awaited.cjs.map +1 -1
  30. package/dist/cjs/fileRoute.cjs +96 -91
  31. package/dist/cjs/fileRoute.cjs.map +1 -1
  32. package/dist/cjs/fileRoute.d.cts +2 -2
  33. package/dist/cjs/headContentUtils.cjs +132 -170
  34. package/dist/cjs/headContentUtils.cjs.map +1 -1
  35. package/dist/cjs/index.cjs +245 -176
  36. package/dist/cjs/index.dev.cjs +245 -176
  37. package/dist/cjs/lazyRouteComponent.cjs +48 -54
  38. package/dist/cjs/lazyRouteComponent.cjs.map +1 -1
  39. package/dist/cjs/link.cjs +310 -345
  40. package/dist/cjs/link.cjs.map +1 -1
  41. package/dist/cjs/matchContext.cjs +9 -23
  42. package/dist/cjs/matchContext.cjs.map +1 -1
  43. package/dist/cjs/not-found.cjs +26 -34
  44. package/dist/cjs/not-found.cjs.map +1 -1
  45. package/dist/cjs/renderRouteNotFound.cjs +23 -16
  46. package/dist/cjs/renderRouteNotFound.cjs.map +1 -1
  47. package/dist/cjs/route.cjs +200 -215
  48. package/dist/cjs/route.cjs.map +1 -1
  49. package/dist/cjs/router.cjs +18 -16
  50. package/dist/cjs/router.cjs.map +1 -1
  51. package/dist/cjs/routerContext.cjs +8 -22
  52. package/dist/cjs/routerContext.cjs.map +1 -1
  53. package/dist/cjs/scroll-restoration.cjs +25 -35
  54. package/dist/cjs/scroll-restoration.cjs.map +1 -1
  55. package/dist/cjs/ssr/RouterClient.cjs +18 -23
  56. package/dist/cjs/ssr/RouterClient.cjs.map +1 -1
  57. package/dist/cjs/ssr/RouterServer.cjs +10 -10
  58. package/dist/cjs/ssr/RouterServer.cjs.map +1 -1
  59. package/dist/cjs/ssr/client.cjs +2 -4
  60. package/dist/cjs/ssr/defaultRenderHandler.cjs +12 -16
  61. package/dist/cjs/ssr/defaultRenderHandler.cjs.map +1 -1
  62. package/dist/cjs/ssr/defaultStreamHandler.cjs +13 -18
  63. package/dist/cjs/ssr/defaultStreamHandler.cjs.map +1 -1
  64. package/dist/cjs/ssr/renderRouterToStream.cjs +26 -54
  65. package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -1
  66. package/dist/cjs/ssr/renderRouterToString.cjs +33 -57
  67. package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -1
  68. package/dist/cjs/ssr/server.cjs +18 -18
  69. package/dist/cjs/useBlocker.cjs +140 -177
  70. package/dist/cjs/useBlocker.cjs.map +1 -1
  71. package/dist/cjs/useBlocker.d.cts +8 -5
  72. package/dist/cjs/useCanGoBack.cjs +6 -5
  73. package/dist/cjs/useCanGoBack.cjs.map +1 -1
  74. package/dist/cjs/useLoaderData.cjs +12 -11
  75. package/dist/cjs/useLoaderData.cjs.map +1 -1
  76. package/dist/cjs/useLoaderDeps.cjs +12 -14
  77. package/dist/cjs/useLoaderDeps.cjs.map +1 -1
  78. package/dist/cjs/useLocation.cjs +6 -7
  79. package/dist/cjs/useLocation.cjs.map +1 -1
  80. package/dist/cjs/useMatch.cjs +25 -46
  81. package/dist/cjs/useMatch.cjs.map +1 -1
  82. package/dist/cjs/useNavigate.cjs +20 -38
  83. package/dist/cjs/useNavigate.cjs.map +1 -1
  84. package/dist/cjs/useParams.cjs +14 -13
  85. package/dist/cjs/useParams.cjs.map +1 -1
  86. package/dist/cjs/useRouteContext.cjs +9 -8
  87. package/dist/cjs/useRouteContext.cjs.map +1 -1
  88. package/dist/cjs/useRouter.cjs +13 -26
  89. package/dist/cjs/useRouter.cjs.map +1 -1
  90. package/dist/cjs/useRouterState.cjs +38 -45
  91. package/dist/cjs/useRouterState.cjs.map +1 -1
  92. package/dist/cjs/useSearch.cjs +13 -12
  93. package/dist/cjs/useSearch.cjs.map +1 -1
  94. package/dist/cjs/utils.cjs +57 -49
  95. package/dist/cjs/utils.cjs.map +1 -1
  96. package/dist/esm/Asset.js +122 -166
  97. package/dist/esm/Asset.js.map +1 -1
  98. package/dist/esm/CatchBoundary.js +48 -50
  99. package/dist/esm/CatchBoundary.js.map +1 -1
  100. package/dist/esm/ClientOnly.js +58 -22
  101. package/dist/esm/ClientOnly.js.map +1 -1
  102. package/dist/esm/HeadContent.dev.js +46 -40
  103. package/dist/esm/HeadContent.dev.js.map +1 -1
  104. package/dist/esm/HeadContent.js +33 -26
  105. package/dist/esm/HeadContent.js.map +1 -1
  106. package/dist/esm/Match.js +359 -422
  107. package/dist/esm/Match.js.map +1 -1
  108. package/dist/esm/Matches.js +107 -142
  109. package/dist/esm/Matches.js.map +1 -1
  110. package/dist/esm/RouterProvider.js +26 -40
  111. package/dist/esm/RouterProvider.js.map +1 -1
  112. package/dist/esm/SafeFragment.js +6 -5
  113. package/dist/esm/SafeFragment.js.map +1 -1
  114. package/dist/esm/ScriptOnce.js +18 -21
  115. package/dist/esm/ScriptOnce.js.map +1 -1
  116. package/dist/esm/Scripts.js +42 -58
  117. package/dist/esm/Scripts.js.map +1 -1
  118. package/dist/esm/ScrollRestoration.js +25 -29
  119. package/dist/esm/ScrollRestoration.js.map +1 -1
  120. package/dist/esm/Transitioner.js +87 -105
  121. package/dist/esm/Transitioner.js.map +1 -1
  122. package/dist/esm/awaited.js +28 -36
  123. package/dist/esm/awaited.js.map +1 -1
  124. package/dist/esm/fileRoute.d.ts +2 -2
  125. package/dist/esm/fileRoute.js +90 -92
  126. package/dist/esm/fileRoute.js.map +1 -1
  127. package/dist/esm/headContentUtils.js +129 -152
  128. package/dist/esm/headContentUtils.js.map +1 -1
  129. package/dist/esm/index.dev.js +15 -115
  130. package/dist/esm/index.js +17 -116
  131. package/dist/esm/lazyRouteComponent.js +46 -53
  132. package/dist/esm/lazyRouteComponent.js.map +1 -1
  133. package/dist/esm/link.js +306 -329
  134. package/dist/esm/link.js.map +1 -1
  135. package/dist/esm/matchContext.js +7 -7
  136. package/dist/esm/matchContext.js.map +1 -1
  137. package/dist/esm/not-found.js +23 -33
  138. package/dist/esm/not-found.js.map +1 -1
  139. package/dist/esm/renderRouteNotFound.js +20 -15
  140. package/dist/esm/renderRouteNotFound.js.map +1 -1
  141. package/dist/esm/route.js +193 -218
  142. package/dist/esm/route.js.map +1 -1
  143. package/dist/esm/router.js +17 -17
  144. package/dist/esm/router.js.map +1 -1
  145. package/dist/esm/routerContext.js +6 -5
  146. package/dist/esm/routerContext.js.map +1 -1
  147. package/dist/esm/scroll-restoration.js +23 -34
  148. package/dist/esm/scroll-restoration.js.map +1 -1
  149. package/dist/esm/ssr/RouterClient.js +16 -22
  150. package/dist/esm/ssr/RouterClient.js.map +1 -1
  151. package/dist/esm/ssr/RouterServer.js +9 -10
  152. package/dist/esm/ssr/RouterServer.js.map +1 -1
  153. package/dist/esm/ssr/client.js +1 -4
  154. package/dist/esm/ssr/defaultRenderHandler.js +11 -15
  155. package/dist/esm/ssr/defaultRenderHandler.js.map +1 -1
  156. package/dist/esm/ssr/defaultStreamHandler.js +12 -17
  157. package/dist/esm/ssr/defaultStreamHandler.js.map +1 -1
  158. package/dist/esm/ssr/renderRouterToStream.js +23 -36
  159. package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
  160. package/dist/esm/ssr/renderRouterToString.js +31 -40
  161. package/dist/esm/ssr/renderRouterToString.js.map +1 -1
  162. package/dist/esm/ssr/server.js +3 -10
  163. package/dist/esm/useBlocker.d.ts +8 -5
  164. package/dist/esm/useBlocker.js +136 -159
  165. package/dist/esm/useBlocker.js.map +1 -1
  166. package/dist/esm/useCanGoBack.js +6 -5
  167. package/dist/esm/useCanGoBack.js.map +1 -1
  168. package/dist/esm/useLoaderData.js +12 -11
  169. package/dist/esm/useLoaderData.js.map +1 -1
  170. package/dist/esm/useLoaderDeps.js +12 -14
  171. package/dist/esm/useLoaderDeps.js.map +1 -1
  172. package/dist/esm/useLocation.js +6 -7
  173. package/dist/esm/useLocation.js.map +1 -1
  174. package/dist/esm/useMatch.js +21 -28
  175. package/dist/esm/useMatch.js.map +1 -1
  176. package/dist/esm/useNavigate.js +18 -22
  177. package/dist/esm/useNavigate.js.map +1 -1
  178. package/dist/esm/useParams.js +14 -13
  179. package/dist/esm/useParams.js.map +1 -1
  180. package/dist/esm/useRouteContext.js +9 -8
  181. package/dist/esm/useRouteContext.js.map +1 -1
  182. package/dist/esm/useRouter.js +9 -8
  183. package/dist/esm/useRouter.js.map +1 -1
  184. package/dist/esm/useRouterState.js +36 -44
  185. package/dist/esm/useRouterState.js.map +1 -1
  186. package/dist/esm/useSearch.js +13 -12
  187. package/dist/esm/useSearch.js.map +1 -1
  188. package/dist/esm/utils.js +55 -33
  189. package/dist/esm/utils.js.map +1 -1
  190. package/dist/source/fileRoute.d.ts +2 -2
  191. package/dist/source/useBlocker.d.ts +8 -5
  192. package/dist/source/useBlocker.jsx +2 -2
  193. package/dist/source/useBlocker.jsx.map +1 -1
  194. package/package.json +3 -3
  195. package/src/fileRoute.ts +2 -2
  196. package/src/useBlocker.tsx +15 -10
  197. package/dist/cjs/index.cjs.map +0 -1
  198. package/dist/cjs/index.dev.cjs.map +0 -1
  199. package/dist/cjs/ssr/client.cjs.map +0 -1
  200. package/dist/cjs/ssr/server.cjs.map +0 -1
  201. package/dist/esm/index.dev.js.map +0 -1
  202. package/dist/esm/index.js.map +0 -1
  203. package/dist/esm/ssr/client.js.map +0 -1
  204. package/dist/esm/ssr/server.js.map +0 -1
@@ -1,173 +1,130 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Solid = require("@solidjs/web");
4
- const isServer = require("@tanstack/router-core/isServer");
5
- const Solid$1 = require("solid-js");
6
- const useRouter = require("./useRouter.cjs");
7
- var _tmpl$ = /* @__PURE__ */ Solid.template(`<meta>`), _tmpl$2 = /* @__PURE__ */ Solid.template(`<link>`), _tmpl$3 = /* @__PURE__ */ Solid.template(`<style>`), _tmpl$4 = /* @__PURE__ */ Solid.template(`<title>`), _tmpl$5 = /* @__PURE__ */ Solid.template(`<script>`);
8
- function Asset({
9
- tag,
10
- attrs,
11
- children
12
- }) {
13
- switch (tag) {
14
- case "title":
15
- return Solid.createComponent(Title, {
16
- attrs,
17
- children
18
- });
19
- case "meta":
20
- return (() => {
21
- var _el$ = _tmpl$();
22
- Solid.spread(_el$, attrs, false, false);
23
- return _el$;
24
- })();
25
- case "link":
26
- return (() => {
27
- var _el$2 = _tmpl$2();
28
- Solid.spread(_el$2, attrs, false, false);
29
- return _el$2;
30
- })();
31
- case "style":
32
- if (typeof children === "string") {
33
- return (() => {
34
- var _el$3 = _tmpl$3();
35
- Solid.spread(_el$3, Solid.mergeProps(attrs, {
36
- "innerHTML": children
37
- }), false, false);
38
- return _el$3;
39
- })();
40
- }
41
- return (() => {
42
- var _el$4 = _tmpl$3();
43
- Solid.spread(_el$4, attrs, false, false);
44
- return _el$4;
45
- })();
46
- case "script":
47
- return Solid.createComponent(Script, {
48
- attrs,
49
- children
50
- });
51
- default:
52
- return null;
53
- }
1
+ require("./_virtual/_rolldown/runtime.cjs");
2
+ const require_useRouter = require("./useRouter.cjs");
3
+ let _solidjs_web = require("@solidjs/web");
4
+ let solid_js = require("solid-js");
5
+ let _tanstack_router_core_isServer = require("@tanstack/router-core/isServer");
6
+ //#region src/Asset.tsx
7
+ var _tmpl$ = /* @__PURE__ */ (0, _solidjs_web.template)(`<meta>`), _tmpl$2 = /* @__PURE__ */ (0, _solidjs_web.template)(`<link>`), _tmpl$3 = /* @__PURE__ */ (0, _solidjs_web.template)(`<style>`), _tmpl$4 = /* @__PURE__ */ (0, _solidjs_web.template)(`<title>`), _tmpl$5 = /* @__PURE__ */ (0, _solidjs_web.template)(`<script>`);
8
+ function Asset({ tag, attrs, children }) {
9
+ switch (tag) {
10
+ case "title": return (0, _solidjs_web.createComponent)(Title, {
11
+ attrs,
12
+ children
13
+ });
14
+ case "meta": return (() => {
15
+ var _el$ = _tmpl$();
16
+ (0, _solidjs_web.spread)(_el$, attrs, false, false);
17
+ return _el$;
18
+ })();
19
+ case "link": return (() => {
20
+ var _el$2 = _tmpl$2();
21
+ (0, _solidjs_web.spread)(_el$2, attrs, false, false);
22
+ return _el$2;
23
+ })();
24
+ case "style":
25
+ if (typeof children === "string") return (() => {
26
+ var _el$3 = _tmpl$3();
27
+ (0, _solidjs_web.spread)(_el$3, (0, _solidjs_web.mergeProps)(attrs, { "innerHTML": children }), false, false);
28
+ return _el$3;
29
+ })();
30
+ return (() => {
31
+ var _el$4 = _tmpl$3();
32
+ (0, _solidjs_web.spread)(_el$4, attrs, false, false);
33
+ return _el$4;
34
+ })();
35
+ case "script": return (0, _solidjs_web.createComponent)(Script, {
36
+ attrs,
37
+ children
38
+ });
39
+ default: return null;
40
+ }
54
41
  }
55
42
  function Title(props) {
56
- const router = useRouter.useRouter();
57
- const attrs = props.attrs;
58
- const children = props.children;
59
- if (isServer.isServer ?? router.isServer) {
60
- return (() => {
61
- var _el$5 = _tmpl$4();
62
- Solid.spread(_el$5, attrs, false, true);
63
- Solid.insert(_el$5, children);
64
- return _el$5;
65
- })();
66
- }
67
- Solid$1.createEffect(() => children, (titleText) => {
68
- document.title = typeof titleText === "string" ? titleText : "";
69
- });
70
- return (() => {
71
- var _el$6 = _tmpl$4();
72
- Solid.spread(_el$6, attrs, false, true);
73
- Solid.insert(_el$6, children);
74
- return _el$6;
75
- })();
43
+ const router = require_useRouter.useRouter();
44
+ const attrs = props.attrs;
45
+ const children = props.children;
46
+ if (_tanstack_router_core_isServer.isServer ?? router.isServer) return (() => {
47
+ var _el$5 = _tmpl$4();
48
+ (0, _solidjs_web.spread)(_el$5, attrs, false, true);
49
+ (0, _solidjs_web.insert)(_el$5, children);
50
+ return _el$5;
51
+ })();
52
+ (0, solid_js.createEffect)(() => children, (titleText) => {
53
+ document.title = typeof titleText === "string" ? titleText : "";
54
+ });
55
+ return (() => {
56
+ var _el$6 = _tmpl$4();
57
+ (0, _solidjs_web.spread)(_el$6, attrs, false, true);
58
+ (0, _solidjs_web.insert)(_el$6, children);
59
+ return _el$6;
60
+ })();
76
61
  }
77
62
  function Script(props) {
78
- const router = useRouter.useRouter();
79
- const attrs = props.attrs;
80
- const children = props.children;
81
- const dataScript = typeof attrs?.type === "string" && attrs.type !== "" && attrs.type !== "text/javascript" && attrs.type !== "module";
82
- if (isServer.isServer ?? router.isServer) {
83
- if (attrs?.src) {
84
- return (() => {
85
- var _el$7 = _tmpl$5();
86
- Solid.spread(_el$7, attrs, false, false);
87
- return _el$7;
88
- })();
89
- }
90
- if (typeof children === "string") {
91
- return (() => {
92
- var _el$8 = _tmpl$5();
93
- Solid.spread(_el$8, Solid.mergeProps(attrs, {
94
- "innerHTML": children
95
- }), false, false);
96
- return _el$8;
97
- })();
98
- }
99
- return null;
100
- }
101
- if (dataScript && typeof children === "string") {
102
- return (() => {
103
- var _el$9 = _tmpl$5();
104
- Solid.spread(_el$9, Solid.mergeProps(attrs, {
105
- "innerHTML": children
106
- }), false, false);
107
- return _el$9;
108
- })();
109
- }
110
- Solid$1.createEffect(() => ({
111
- attrs,
112
- children,
113
- dataScript
114
- }), ({
115
- attrs: attrs2,
116
- children: children2,
117
- dataScript: dataScript2
118
- }) => {
119
- if (dataScript2) return;
120
- let script;
121
- if (attrs2?.src) {
122
- const normSrc = (() => {
123
- try {
124
- const base = document.baseURI || window.location.href;
125
- return new URL(attrs2.src, base).href;
126
- } catch {
127
- return attrs2.src;
128
- }
129
- })();
130
- const existingScript = Array.from(document.querySelectorAll("script[src]")).find((el) => el.src === normSrc);
131
- if (existingScript) {
132
- return;
133
- }
134
- script = document.createElement("script");
135
- for (const [key, value] of Object.entries(attrs2)) {
136
- if (value !== void 0 && value !== false) {
137
- script.setAttribute(key, typeof value === "boolean" ? "" : String(value));
138
- }
139
- }
140
- document.head.appendChild(script);
141
- } else if (typeof children2 === "string") {
142
- const typeAttr = typeof attrs2?.type === "string" ? attrs2.type : "text/javascript";
143
- const nonceAttr = typeof attrs2?.nonce === "string" ? attrs2.nonce : void 0;
144
- const existingScript = Array.from(document.querySelectorAll("script:not([src])")).find((el) => {
145
- if (!(el instanceof HTMLScriptElement)) return false;
146
- const sType = el.getAttribute("type") ?? "text/javascript";
147
- const sNonce = el.getAttribute("nonce") ?? void 0;
148
- return el.textContent === children2 && sType === typeAttr && sNonce === nonceAttr;
149
- });
150
- if (existingScript) {
151
- return;
152
- }
153
- script = document.createElement("script");
154
- script.textContent = children2;
155
- if (attrs2) {
156
- for (const [key, value] of Object.entries(attrs2)) {
157
- if (value !== void 0 && value !== false) {
158
- script.setAttribute(key, typeof value === "boolean" ? "" : String(value));
159
- }
160
- }
161
- }
162
- document.head.appendChild(script);
163
- }
164
- Solid$1.onCleanup(() => {
165
- if (script?.parentNode) {
166
- script.parentNode.removeChild(script);
167
- }
168
- });
169
- });
170
- return null;
63
+ const router = require_useRouter.useRouter();
64
+ const attrs = props.attrs;
65
+ const children = props.children;
66
+ const dataScript = typeof attrs?.type === "string" && attrs.type !== "" && attrs.type !== "text/javascript" && attrs.type !== "module";
67
+ if (_tanstack_router_core_isServer.isServer ?? router.isServer) {
68
+ if (attrs?.src) return (() => {
69
+ var _el$7 = _tmpl$5();
70
+ (0, _solidjs_web.spread)(_el$7, attrs, false, false);
71
+ return _el$7;
72
+ })();
73
+ if (typeof children === "string") return (() => {
74
+ var _el$8 = _tmpl$5();
75
+ (0, _solidjs_web.spread)(_el$8, (0, _solidjs_web.mergeProps)(attrs, { "innerHTML": children }), false, false);
76
+ return _el$8;
77
+ })();
78
+ return null;
79
+ }
80
+ if (dataScript && typeof children === "string") return (() => {
81
+ var _el$9 = _tmpl$5();
82
+ (0, _solidjs_web.spread)(_el$9, (0, _solidjs_web.mergeProps)(attrs, { "innerHTML": children }), false, false);
83
+ return _el$9;
84
+ })();
85
+ (0, solid_js.createEffect)(() => ({
86
+ attrs,
87
+ children,
88
+ dataScript
89
+ }), ({ attrs, children, dataScript }) => {
90
+ if (dataScript) return;
91
+ let script;
92
+ if (attrs?.src) {
93
+ const normSrc = (() => {
94
+ try {
95
+ const base = document.baseURI || window.location.href;
96
+ return new URL(attrs.src, base).href;
97
+ } catch {
98
+ return attrs.src;
99
+ }
100
+ })();
101
+ if (Array.from(document.querySelectorAll("script[src]")).find((el) => el.src === normSrc)) return;
102
+ script = document.createElement("script");
103
+ for (const [key, value] of Object.entries(attrs)) if (value !== void 0 && value !== false) script.setAttribute(key, typeof value === "boolean" ? "" : String(value));
104
+ document.head.appendChild(script);
105
+ } else if (typeof children === "string") {
106
+ const typeAttr = typeof attrs?.type === "string" ? attrs.type : "text/javascript";
107
+ const nonceAttr = typeof attrs?.nonce === "string" ? attrs.nonce : void 0;
108
+ if (Array.from(document.querySelectorAll("script:not([src])")).find((el) => {
109
+ if (!(el instanceof HTMLScriptElement)) return false;
110
+ const sType = el.getAttribute("type") ?? "text/javascript";
111
+ const sNonce = el.getAttribute("nonce") ?? void 0;
112
+ return el.textContent === children && sType === typeAttr && sNonce === nonceAttr;
113
+ })) return;
114
+ script = document.createElement("script");
115
+ script.textContent = children;
116
+ if (attrs) {
117
+ for (const [key, value] of Object.entries(attrs)) if (value !== void 0 && value !== false) script.setAttribute(key, typeof value === "boolean" ? "" : String(value));
118
+ }
119
+ document.head.appendChild(script);
120
+ }
121
+ (0, solid_js.onCleanup)(() => {
122
+ if (script?.parentNode) script.parentNode.removeChild(script);
123
+ });
124
+ });
125
+ return null;
171
126
  }
127
+ //#endregion
172
128
  exports.Asset = Asset;
173
- //# sourceMappingURL=Asset.cjs.map
129
+
130
+ //# sourceMappingURL=Asset.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Asset.cjs","sources":["../../src/Asset.tsx"],"sourcesContent":["import { isServer } from '@tanstack/router-core/isServer'\nimport { createEffect, onCleanup } from 'solid-js'\nimport { useRouter } from './useRouter'\nimport type { RouterManagedTag } from '@tanstack/router-core'\nimport type { JSX } from 'solid-js'\n\nexport function Asset({\n tag,\n attrs,\n children,\n}: RouterManagedTag): JSX.Element | null {\n switch (tag) {\n case 'title':\n return <Title attrs={attrs} children={children} />\n case 'meta':\n return <meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n if (typeof children === 'string') {\n return <style {...attrs} innerHTML={children} />\n }\n return <style {...attrs} />\n case 'script':\n return <Script attrs={attrs} children={children} />\n default:\n return null\n }\n}\n\nfunction Title(props: {\n attrs?: Record<string, any>\n children?: unknown\n}): JSX.Element | null {\n const router = useRouter()\n const attrs = props.attrs\n const children = props.children\n\n // Server: render <title> normally\n if (isServer ?? router.isServer) {\n return <title {...attrs}>{children as string}</title>\n }\n\n // Client: imperatively set document.title so it updates during\n // client-side navigation (JSX <title> in <head> doesn't reliably\n // update the browser's document.title).\n createEffect(\n () => children,\n (titleText) => {\n document.title = typeof titleText === 'string' ? titleText : ''\n },\n )\n\n // Still render the <title> element in the DOM for consistency,\n // but the imperative assignment above is what actually drives the update.\n return <title {...attrs}>{children as string}</title>\n}\n\nfunction Script(props: {\n attrs?: Record<string, any>\n children?: unknown\n}): JSX.Element | null {\n const router = useRouter()\n const attrs = props.attrs\n const children = props.children\n\n const dataScript =\n typeof attrs?.type === 'string' &&\n attrs.type !== '' &&\n attrs.type !== 'text/javascript' &&\n attrs.type !== 'module'\n\n // --- Server rendering ---\n if (isServer ?? router.isServer) {\n if (attrs?.src) {\n return <script {...attrs} />\n }\n\n if (typeof children === 'string') {\n return <script {...attrs} innerHTML={children} />\n }\n\n return null\n }\n\n // --- Client rendering ---\n\n // Data scripts (e.g. application/ld+json) are rendered in the tree;\n // they don't need to execute.\n if (dataScript && typeof children === 'string') {\n return <script {...attrs} innerHTML={children} />\n }\n\n // For executable scripts, use imperative DOM injection so the browser\n // actually executes them during client-side navigation.\n createEffect(\n () => ({ attrs, children, dataScript }) as const,\n ({ attrs, children, dataScript }) => {\n if (dataScript) return\n\n let script: HTMLScriptElement | undefined\n\n if (attrs?.src) {\n const normSrc = (() => {\n try {\n const base = document.baseURI || window.location.href\n return new URL(attrs.src, base).href\n } catch {\n return attrs.src\n }\n })()\n const existingScript = Array.from(\n document.querySelectorAll('script[src]'),\n ).find((el) => (el as HTMLScriptElement).src === normSrc)\n\n if (existingScript) {\n return\n }\n\n script = document.createElement('script')\n\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n\n document.head.appendChild(script)\n } else if (typeof children === 'string') {\n const typeAttr =\n typeof attrs?.type === 'string' ? attrs.type : 'text/javascript'\n const nonceAttr =\n typeof attrs?.nonce === 'string' ? attrs.nonce : undefined\n const existingScript = Array.from(\n document.querySelectorAll('script:not([src])'),\n ).find((el) => {\n if (!(el instanceof HTMLScriptElement)) return false\n const sType = el.getAttribute('type') ?? 'text/javascript'\n const sNonce = el.getAttribute('nonce') ?? undefined\n return (\n el.textContent === children &&\n sType === typeAttr &&\n sNonce === nonceAttr\n )\n })\n\n if (existingScript) {\n return\n }\n\n script = document.createElement('script')\n script.textContent = children\n\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n }\n\n document.head.appendChild(script)\n }\n\n onCleanup(() => {\n if (script?.parentNode) {\n script.parentNode.removeChild(script)\n }\n })\n },\n )\n\n return null\n}\n"],"names":["Asset","tag","attrs","children","_$createComponent","Title","_el$","_tmpl$","_$spread","_el$2","_tmpl$2","_el$3","_tmpl$3","_$mergeProps","_el$4","Script","props","router","useRouter","isServer","_el$5","_tmpl$4","_$insert","createEffect","titleText","document","title","_el$6","dataScript","type","src","_el$7","_tmpl$5","_el$8","_el$9","script","normSrc","base","baseURI","window","location","href","URL","existingScript","Array","from","querySelectorAll","find","el","createElement","key","value","Object","entries","undefined","setAttribute","String","head","appendChild","typeAttr","nonceAttr","nonce","HTMLScriptElement","sType","getAttribute","sNonce","textContent","onCleanup","parentNode","removeChild"],"mappings":"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"}
1
+ {"version":3,"file":"Asset.cjs","names":["isServer","createEffect","onCleanup","useRouter","RouterManagedTag","JSX","Asset","tag","attrs","children","Element","_$createComponent","Title","_el$","_tmpl$","_$spread","_el$2","_tmpl$2","_el$3","_tmpl$3","_$mergeProps","_el$4","Script","props","Record","router","_el$5","_tmpl$4","_$insert","titleText","document","title","_el$6","dataScript","type","src","_el$7","_tmpl$5","_el$8","_el$9","const","script","HTMLScriptElement","normSrc","base","baseURI","window","location","href","URL","existingScript","Array","from","querySelectorAll","find","el","createElement","key","value","Object","entries","undefined","setAttribute","String","head","appendChild","typeAttr","nonceAttr","nonce","sType","getAttribute","sNonce","textContent","parentNode","removeChild"],"sources":["../../src/Asset.tsx"],"sourcesContent":["import { isServer } from '@tanstack/router-core/isServer'\nimport { createEffect, onCleanup } from 'solid-js'\nimport { useRouter } from './useRouter'\nimport type { RouterManagedTag } from '@tanstack/router-core'\nimport type { JSX } from 'solid-js'\n\nexport function Asset({\n tag,\n attrs,\n children,\n}: RouterManagedTag): JSX.Element | null {\n switch (tag) {\n case 'title':\n return <Title attrs={attrs} children={children} />\n case 'meta':\n return <meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n if (typeof children === 'string') {\n return <style {...attrs} innerHTML={children} />\n }\n return <style {...attrs} />\n case 'script':\n return <Script attrs={attrs} children={children} />\n default:\n return null\n }\n}\n\nfunction Title(props: {\n attrs?: Record<string, any>\n children?: unknown\n}): JSX.Element | null {\n const router = useRouter()\n const attrs = props.attrs\n const children = props.children\n\n // Server: render <title> normally\n if (isServer ?? router.isServer) {\n return <title {...attrs}>{children as string}</title>\n }\n\n // Client: imperatively set document.title so it updates during\n // client-side navigation (JSX <title> in <head> doesn't reliably\n // update the browser's document.title).\n createEffect(\n () => children,\n (titleText) => {\n document.title = typeof titleText === 'string' ? titleText : ''\n },\n )\n\n // Still render the <title> element in the DOM for consistency,\n // but the imperative assignment above is what actually drives the update.\n return <title {...attrs}>{children as string}</title>\n}\n\nfunction Script(props: {\n attrs?: Record<string, any>\n children?: unknown\n}): JSX.Element | null {\n const router = useRouter()\n const attrs = props.attrs\n const children = props.children\n\n const dataScript =\n typeof attrs?.type === 'string' &&\n attrs.type !== '' &&\n attrs.type !== 'text/javascript' &&\n attrs.type !== 'module'\n\n // --- Server rendering ---\n if (isServer ?? router.isServer) {\n if (attrs?.src) {\n return <script {...attrs} />\n }\n\n if (typeof children === 'string') {\n return <script {...attrs} innerHTML={children} />\n }\n\n return null\n }\n\n // --- Client rendering ---\n\n // Data scripts (e.g. application/ld+json) are rendered in the tree;\n // they don't need to execute.\n if (dataScript && typeof children === 'string') {\n return <script {...attrs} innerHTML={children} />\n }\n\n // For executable scripts, use imperative DOM injection so the browser\n // actually executes them during client-side navigation.\n createEffect(\n () => ({ attrs, children, dataScript }) as const,\n ({ attrs, children, dataScript }) => {\n if (dataScript) return\n\n let script: HTMLScriptElement | undefined\n\n if (attrs?.src) {\n const normSrc = (() => {\n try {\n const base = document.baseURI || window.location.href\n return new URL(attrs.src, base).href\n } catch {\n return attrs.src\n }\n })()\n const existingScript = Array.from(\n document.querySelectorAll('script[src]'),\n ).find((el) => (el as HTMLScriptElement).src === normSrc)\n\n if (existingScript) {\n return\n }\n\n script = document.createElement('script')\n\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n\n document.head.appendChild(script)\n } else if (typeof children === 'string') {\n const typeAttr =\n typeof attrs?.type === 'string' ? attrs.type : 'text/javascript'\n const nonceAttr =\n typeof attrs?.nonce === 'string' ? attrs.nonce : undefined\n const existingScript = Array.from(\n document.querySelectorAll('script:not([src])'),\n ).find((el) => {\n if (!(el instanceof HTMLScriptElement)) return false\n const sType = el.getAttribute('type') ?? 'text/javascript'\n const sNonce = el.getAttribute('nonce') ?? undefined\n return (\n el.textContent === children &&\n sType === typeAttr &&\n sNonce === nonceAttr\n )\n })\n\n if (existingScript) {\n return\n }\n\n script = document.createElement('script')\n script.textContent = children\n\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n }\n\n document.head.appendChild(script)\n }\n\n onCleanup(() => {\n if (script?.parentNode) {\n script.parentNode.removeChild(script)\n }\n })\n },\n )\n\n return null\n}\n"],"mappings":"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"}
@@ -1,73 +1,57 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Solid = require("@solidjs/web");
4
- const Solid$1 = require("solid-js");
5
- function _interopNamespaceDefault(e) {
6
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
7
- if (e) {
8
- for (const k in e) {
9
- if (k !== "default") {
10
- const d = Object.getOwnPropertyDescriptor(e, k);
11
- Object.defineProperty(n, k, d.get ? d : {
12
- enumerable: true,
13
- get: () => e[k]
14
- });
15
- }
16
- }
17
- }
18
- n.default = e;
19
- return Object.freeze(n);
20
- }
21
- const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid$1);
22
- var _tmpl$ = /* @__PURE__ */ Solid.template(`<div style=padding:.5rem;max-width:100%><div style=display:flex;align-items:center;gap:.5rem>∂<strong style=font-size:1rem>Something went wrong!</strong><button style="appearance:none;font-size:.6em;border:1px solid currentColor;padding:.1rem .2rem;font-weight:bold;border-radius:.25rem"></button></div><div style=height:.25rem>`), _tmpl$2 = /* @__PURE__ */ Solid.template(`<div><pre style="font-size:.7em;border:1px solid red;border-radius:.25rem;padding:.3rem;color:red;overflow:auto">`), _tmpl$3 = /* @__PURE__ */ Solid.template(`<code>`);
1
+ const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
2
+ let _solidjs_web = require("@solidjs/web");
3
+ let solid_js = require("solid-js");
4
+ solid_js = require_runtime.__toESM(solid_js);
5
+ //#region src/CatchBoundary.tsx
6
+ var _tmpl$ = /* @__PURE__ */ (0, _solidjs_web.template)(`<div style=padding:.5rem;max-width:100%><div style=display:flex;align-items:center;gap:.5rem>∂<strong style=font-size:1rem>Something went wrong!</strong><button style="appearance:none;font-size:.6em;border:1px solid currentColor;padding:.1rem .2rem;font-weight:bold;border-radius:.25rem"></button></div><div style=height:.25rem>`), _tmpl$2 = /* @__PURE__ */ (0, _solidjs_web.template)(`<div><pre style="font-size:.7em;border:1px solid red;border-radius:.25rem;padding:.3rem;color:red;overflow:auto">`), _tmpl$3 = /* @__PURE__ */ (0, _solidjs_web.template)(`<code>`);
23
7
  function CatchBoundary(props) {
24
- return Solid.createComponent(Solid__namespace.Errored, {
25
- fallback: (error, reset) => {
26
- props.onCatch?.(error);
27
- Solid__namespace.createEffect(props.getResetKey, () => {
28
- reset();
29
- });
30
- return Solid.createComponent(Solid.Dynamic, {
31
- get component() {
32
- return props.errorComponent ?? ErrorComponent;
33
- },
34
- error,
35
- reset
36
- });
37
- },
38
- get children() {
39
- return props.children;
40
- }
41
- });
8
+ return (0, _solidjs_web.createComponent)(solid_js.Errored, {
9
+ fallback: (error, reset) => {
10
+ props.onCatch?.(error);
11
+ solid_js.createEffect(props.getResetKey, () => {
12
+ reset();
13
+ });
14
+ return (0, _solidjs_web.createComponent)(_solidjs_web.Dynamic, {
15
+ get component() {
16
+ return props.errorComponent ?? ErrorComponent;
17
+ },
18
+ error,
19
+ reset
20
+ });
21
+ },
22
+ get children() {
23
+ return props.children;
24
+ }
25
+ });
42
26
  }
43
- function ErrorComponent({
44
- error
45
- }) {
46
- const [show, setShow] = Solid__namespace.createSignal(process.env.NODE_ENV !== "production");
47
- return (() => {
48
- var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling;
49
- _el$2.nextSibling;
50
- _el$5.$$click = () => setShow((d) => !d);
51
- Solid.insert(_el$5, () => show() ? "Hide Error" : "Show Error");
52
- Solid.insert(_el$, (() => {
53
- var _c$ = Solid.memo(() => !!show());
54
- return () => _c$() ? (() => {
55
- var _el$7 = _tmpl$2(), _el$8 = _el$7.firstChild;
56
- Solid.insert(_el$8, (() => {
57
- var _c$2 = Solid.memo(() => !!error.message);
58
- return () => _c$2() ? (() => {
59
- var _el$9 = _tmpl$3();
60
- Solid.insert(_el$9, () => error.message);
61
- return _el$9;
62
- })() : null;
63
- })());
64
- return _el$7;
65
- })() : null;
66
- })(), null);
67
- return _el$;
68
- })();
27
+ function ErrorComponent({ error }) {
28
+ const [show, setShow] = solid_js.createSignal(process.env.NODE_ENV !== "production");
29
+ return (() => {
30
+ var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$5 = _el$2.firstChild.nextSibling.nextSibling;
31
+ _el$2.nextSibling;
32
+ _el$5.$$click = () => setShow((d) => !d);
33
+ (0, _solidjs_web.insert)(_el$5, () => show() ? "Hide Error" : "Show Error");
34
+ (0, _solidjs_web.insert)(_el$, (() => {
35
+ var _c$ = (0, _solidjs_web.memo)(() => !!show());
36
+ return () => _c$() ? (() => {
37
+ var _el$7 = _tmpl$2(), _el$8 = _el$7.firstChild;
38
+ (0, _solidjs_web.insert)(_el$8, (() => {
39
+ var _c$2 = (0, _solidjs_web.memo)(() => !!error.message);
40
+ return () => _c$2() ? (() => {
41
+ var _el$9 = _tmpl$3();
42
+ (0, _solidjs_web.insert)(_el$9, () => error.message);
43
+ return _el$9;
44
+ })() : null;
45
+ })());
46
+ return _el$7;
47
+ })() : null;
48
+ })(), null);
49
+ return _el$;
50
+ })();
69
51
  }
70
- Solid.delegateEvents(["click"]);
52
+ (0, _solidjs_web.delegateEvents)(["click"]);
53
+ //#endregion
71
54
  exports.CatchBoundary = CatchBoundary;
72
55
  exports.ErrorComponent = ErrorComponent;
73
- //# sourceMappingURL=CatchBoundary.cjs.map
56
+
57
+ //# sourceMappingURL=CatchBoundary.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CatchBoundary.cjs","sources":["../../src/CatchBoundary.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { Dynamic } from '@solidjs/web'\nimport type { ErrorRouteComponent } from './route'\n\nexport function CatchBoundary(\n props: {\n getResetKey: () => number | string\n children: Solid.JSX.Element\n errorComponent?: ErrorRouteComponent\n onCatch?: (error: Error) => void\n } & Solid.ParentProps,\n) {\n return (\n <Solid.Errored\n fallback={(error, reset) => {\n props.onCatch?.(error)\n\n Solid.createEffect(props.getResetKey, () => {\n // We trigger reset here. For a fully deferred effect we might need usePrevious,\n // but calling reset on key change is the main goal.\n reset()\n })\n\n return (\n <Dynamic\n component={props.errorComponent ?? ErrorComponent}\n error={error}\n reset={reset}\n />\n )\n }}\n >\n {props.children}\n </Solid.Errored>\n )\n}\n\nexport function ErrorComponent({ error }: { error: any }) {\n const [show, setShow] = Solid.createSignal(\n process.env.NODE_ENV !== 'production',\n )\n\n return (\n <div style={{ padding: '.5rem', 'max-width': '100%' }}>\n <div style={{ display: 'flex', 'align-items': 'center', gap: '.5rem' }}>\n ∂<strong style={{ 'font-size': '1rem' }}>Something went wrong!</strong>\n <button\n style={{\n appearance: 'none',\n 'font-size': '.6em',\n border: '1px solid currentColor',\n padding: '.1rem .2rem',\n 'font-weight': 'bold',\n 'border-radius': '.25rem',\n }}\n onClick={() => setShow((d) => !d)}\n >\n {show() ? 'Hide Error' : 'Show Error'}\n </button>\n </div>\n <div style={{ height: '.25rem' }} />\n {show() ? (\n <div>\n <pre\n style={{\n 'font-size': '.7em',\n border: '1px solid red',\n 'border-radius': '.25rem',\n padding: '.3rem',\n color: 'red',\n overflow: 'auto',\n }}\n >\n {error.message ? <code>{error.message}</code> : null}\n </pre>\n </div>\n ) : null}\n </div>\n )\n}\n"],"names":["CatchBoundary","props","_$createComponent","Solid","Errored","fallback","error","reset","onCatch","createEffect","getResetKey","Dynamic","component","errorComponent","ErrorComponent","children","show","setShow","createSignal","process","env","NODE_ENV","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","$$click","d","_$insert","_c$","_$memo","_el$7","_tmpl$2","_el$8","_c$2","message","_el$9","_tmpl$3","_$delegateEvents"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIO,SAASA,cACdC,OAMA;AACA,SAAAC,MAAAA,gBACGC,iBAAMC,SAAO;AAAA,IACZC,UAAUA,CAACC,OAAOC,UAAU;AAC1BN,YAAMO,UAAUF,KAAK;AAErBH,uBAAMM,aAAaR,MAAMS,aAAa,MAAM;AAG1CH,cAAAA;AAAAA,MACF,CAAC;AAED,aAAAL,MAAAA,gBACGS,MAAAA,SAAO;AAAA,QAAA,IACNC,YAAS;AAAA,iBAAEX,MAAMY,kBAAkBC;AAAAA,QAAc;AAAA,QACjDR;AAAAA,QACAC;AAAAA,MAAAA,CAAY;AAAA,IAGlB;AAAA,IAAC,IAAAQ,WAAA;AAAA,aAEAd,MAAMc;AAAAA,IAAQ;AAAA,EAAA,CAAA;AAGrB;AAEO,SAASD,eAAe;AAAA,EAAER;AAAsB,GAAG;AACxD,QAAM,CAACU,MAAMC,OAAO,IAAId,iBAAMe,aAC5BC,QAAQC,IAAIC,aAAa,YAC3B;AAEA,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA,GAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAC,YAAAE,QAAAD,MAAAE,aAAAC,QAAAF,MAAAC;AAAAJ,UAAAI;AAAAC,UAAAC,UAaiB,MAAMb,QAASc,CAAAA,MAAM,CAACA,CAAC;AAACC,UAAAA,OAAAH,OAAA,MAEhCb,KAAAA,IAAS,eAAe,YAAY;AAAAgB,UAAAA,OAAAV,OAAA,MAAA;AAAA,UAAAW,MAAAC,MAAAA,KAAA,MAAA,CAAA,CAIxClB,MAAM;AAAA,aAAA,MAANiB,IAAAA,KAAA,MAAA;AAAA,YAAAE,QAAAC,QAAAA,GAAAC,QAAAF,MAAAV;AAAAO,cAAAA,OAAAK,QAAA,MAAA;AAAA,cAAAC,OAAAJ,MAAAA,KAAA,MAAA,CAAA,CAYM5B,MAAMiC,OAAO;AAAA,iBAAA,MAAbD,KAAAA,KAAA,MAAA;AAAA,gBAAAE,QAAAC,QAAAA;AAAAT,kBAAAA,OAAAQ,OAAA,MAAuBlC,MAAMiC,OAAO;AAAA,mBAAAC;AAAAA,UAAA,OAAW;AAAA,QAAI,IAAA;AAAA,eAAAL;AAAAA,MAAA,OAGtD;AAAA,IAAI,GAAA,GAAA,IAAA;AAAA,WAAAb;AAAAA,EAAA,GAAA;AAGd;AAACoB,MAAAA,eAAA,CAAA,OAAA,CAAA;;;"}
1
+ {"version":3,"file":"CatchBoundary.cjs","names":["Solid","Dynamic","ErrorRouteComponent","CatchBoundary","props","getResetKey","children","JSX","Element","errorComponent","onCatch","error","Error","ParentProps","_$createComponent","Errored","fallback","reset","createEffect","component","ErrorComponent","show","setShow","createSignal","process","env","NODE_ENV","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","_el$6","$$click","d","_$insert","_c$","_$memo","_el$7","_tmpl$2","_el$8","_c$2","message","_el$9","_tmpl$3","_$delegateEvents"],"sources":["../../src/CatchBoundary.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { Dynamic } from '@solidjs/web'\nimport type { ErrorRouteComponent } from './route'\n\nexport function CatchBoundary(\n props: {\n getResetKey: () => number | string\n children: Solid.JSX.Element\n errorComponent?: ErrorRouteComponent\n onCatch?: (error: Error) => void\n } & Solid.ParentProps,\n) {\n return (\n <Solid.Errored\n fallback={(error, reset) => {\n props.onCatch?.(error)\n\n Solid.createEffect(props.getResetKey, () => {\n // We trigger reset here. For a fully deferred effect we might need usePrevious,\n // but calling reset on key change is the main goal.\n reset()\n })\n\n return (\n <Dynamic\n component={props.errorComponent ?? ErrorComponent}\n error={error}\n reset={reset}\n />\n )\n }}\n >\n {props.children}\n </Solid.Errored>\n )\n}\n\nexport function ErrorComponent({ error }: { error: any }) {\n const [show, setShow] = Solid.createSignal(\n process.env.NODE_ENV !== 'production',\n )\n\n return (\n <div style={{ padding: '.5rem', 'max-width': '100%' }}>\n <div style={{ display: 'flex', 'align-items': 'center', gap: '.5rem' }}>\n ∂<strong style={{ 'font-size': '1rem' }}>Something went wrong!</strong>\n <button\n style={{\n appearance: 'none',\n 'font-size': '.6em',\n border: '1px solid currentColor',\n padding: '.1rem .2rem',\n 'font-weight': 'bold',\n 'border-radius': '.25rem',\n }}\n onClick={() => setShow((d) => !d)}\n >\n {show() ? 'Hide Error' : 'Show Error'}\n </button>\n </div>\n <div style={{ height: '.25rem' }} />\n {show() ? (\n <div>\n <pre\n style={{\n 'font-size': '.7em',\n border: '1px solid red',\n 'border-radius': '.25rem',\n padding: '.3rem',\n color: 'red',\n overflow: 'auto',\n }}\n >\n {error.message ? <code>{error.message}</code> : null}\n </pre>\n </div>\n ) : null}\n </div>\n )\n}\n"],"mappings":";;;;;;AAIA,SAAgBG,cACdC,OAMA;AACA,SAAA,GAAA,aAAA,iBACGJ,SAAMe,SAAO;EACZC,WAAWL,OAAOM,UAAU;AAC1Bb,SAAMM,UAAUC,MAAM;AAEtBX,YAAMkB,aAAad,MAAMC,mBAAmB;AAG1CY,WAAO;KACP;AAEF,WAAA,GAAA,aAAA,iBACGhB,aAAAA,SAAO;IAAA,IACNkB,YAAS;AAAA,YAAEf,MAAMK,kBAAkBW;;IAC5BT;IACAM;IAAK,CAAA;;EAGjB,IAAAX,WAAA;AAAA,UAEAF,MAAME;;EAAQ,CAAA;;AAKrB,SAAgBc,eAAe,EAAET,SAAyB;CACxD,MAAM,CAACU,MAAMC,WAAWtB,SAAMuB,aAAAA,QAAAA,IAAAA,aACH,aAC1B;AAED,eAAA;EAAA,IAAAI,OAAAC,QAAA,EAAAC,QAAAF,KAAAG,YAAAI,QAAAL,MAAAC,WAAAG,YAAAA;AAAAJ,QAAAI;AAAAC,QAAAE,gBAauBd,SAASe,MAAM,CAACA,EAAE;AAAAC,GAAAA,GAAAA,aAAAA,QAAAJ,aAEhCb,MAAM,GAAG,eAAe,aAAY;AAAAiB,GAAAA,GAAAA,aAAAA,QAAAX,aAAA;GAAA,IAAAY,OAAAA,GAAAA,aAAAA,YAAA,CAAA,CAIxClB,MAAM,CAAA;AAAA,gBAANkB,KAAA,UAAA;IAAA,IAAAE,QAAAC,SAAA,EAAAC,QAAAF,MAAAX;AAAAQ,KAAAA,GAAAA,aAAAA,QAAAK,cAAA;KAAA,IAAAC,QAAAA,GAAAA,aAAAA,YAAA,CAAA,CAYMjC,MAAMkC,QAAO;AAAA,kBAAbD,MAAA,UAAA;MAAA,IAAAE,QAAAC,SAAA;AAAAT,OAAAA,GAAAA,aAAAA,QAAAQ,aAAuBnC,MAAMkC,QAAO;AAAA,aAAAC;SAAA,GAAW;QAAI,CAAA;AAAA,WAAAL;OAAA,GAGtD;MAAI,EAAA,KAAA;AAAA,SAAAd;KAAA;;iCAGb,CAAA,QAAA,CAAA"}