next 15.2.0-canary.65 → 15.2.0-canary.66

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.

Potentially problematic release.


This version of next might be problematic. Click here for more details.

Files changed (334) hide show
  1. package/dist/bin/next +5 -1
  2. package/dist/bin/next.map +1 -1
  3. package/dist/build/entries.d.ts +1 -0
  4. package/dist/build/entries.js +12 -1
  5. package/dist/build/entries.js.map +1 -1
  6. package/dist/build/index.js +3 -3
  7. package/dist/build/index.js.map +1 -1
  8. package/dist/build/swc/index.js +1 -1
  9. package/dist/build/webpack/config/blocks/base.js +3 -1
  10. package/dist/build/webpack/config/blocks/base.js.map +1 -1
  11. package/dist/build/webpack/config/blocks/css/index.js +3 -1
  12. package/dist/build/webpack/config/blocks/css/index.js.map +1 -1
  13. package/dist/build/webpack/config/blocks/css/loaders/client.js +3 -1
  14. package/dist/build/webpack/config/blocks/css/loaders/client.js.map +1 -1
  15. package/dist/build/webpack/loaders/next-flight-client-entry-loader.js +4 -0
  16. package/dist/build/webpack/loaders/next-flight-client-entry-loader.js.map +1 -1
  17. package/dist/build/webpack/loaders/next-flight-client-module-loader.js +7 -1
  18. package/dist/build/webpack/loaders/next-flight-client-module-loader.js.map +1 -1
  19. package/dist/build/webpack/loaders/next-flight-loader/index.js +8 -2
  20. package/dist/build/webpack/loaders/next-flight-loader/index.js.map +1 -1
  21. package/dist/build/webpack/loaders/utils.js +1 -1
  22. package/dist/build/webpack/loaders/utils.js.map +1 -1
  23. package/dist/build/webpack/plugins/build-manifest-plugin.d.ts +1 -1
  24. package/dist/build/webpack/plugins/build-manifest-plugin.js +13 -4
  25. package/dist/build/webpack/plugins/build-manifest-plugin.js.map +1 -1
  26. package/dist/build/webpack/plugins/flight-client-entry-plugin.d.ts +1 -1
  27. package/dist/build/webpack/plugins/flight-client-entry-plugin.js +28 -18
  28. package/dist/build/webpack/plugins/flight-client-entry-plugin.js.map +1 -1
  29. package/dist/build/webpack/plugins/flight-manifest-plugin.js +3 -3
  30. package/dist/build/webpack/plugins/flight-manifest-plugin.js.map +1 -1
  31. package/dist/build/webpack/plugins/middleware-plugin.js +6 -3
  32. package/dist/build/webpack/plugins/middleware-plugin.js.map +1 -1
  33. package/dist/build/webpack/plugins/next-trace-entrypoints-plugin.js +11 -1
  34. package/dist/build/webpack/plugins/next-trace-entrypoints-plugin.js.map +1 -1
  35. package/dist/build/webpack/plugins/nextjs-require-cache-hot-reloader.js +1 -1
  36. package/dist/build/webpack/plugins/nextjs-require-cache-hot-reloader.js.map +1 -1
  37. package/dist/build/webpack/plugins/rspack-flight-client-entry-plugin.d.ts +36 -0
  38. package/dist/build/webpack/plugins/rspack-flight-client-entry-plugin.js +97 -0
  39. package/dist/build/webpack/plugins/rspack-flight-client-entry-plugin.js.map +1 -0
  40. package/dist/build/webpack/plugins/rspack-profiling-plugin.d.ts +9 -0
  41. package/dist/build/webpack/plugins/rspack-profiling-plugin.js +62 -0
  42. package/dist/build/webpack/plugins/rspack-profiling-plugin.js.map +1 -0
  43. package/dist/build/webpack/plugins/wellknown-errors-plugin/parseNextAppLoaderError.js +2 -1
  44. package/dist/build/webpack/plugins/wellknown-errors-plugin/parseNextAppLoaderError.js.map +1 -1
  45. package/dist/build/webpack/utils.js +6 -2
  46. package/dist/build/webpack/utils.js.map +1 -1
  47. package/dist/build/webpack-config.js +37 -5
  48. package/dist/build/webpack-config.js.map +1 -1
  49. package/dist/client/app-bootstrap.js +1 -1
  50. package/dist/client/app-dir/link.js +2 -0
  51. package/dist/client/app-dir/link.js.map +1 -1
  52. package/dist/client/components/react-dev-overlay/_experimental/app/react-dev-overlay.js +34 -26
  53. package/dist/client/components/react-dev-overlay/_experimental/app/react-dev-overlay.js.map +1 -1
  54. package/dist/client/components/react-dev-overlay/_experimental/app/react-dev-overlay.stories.js +1 -0
  55. package/dist/client/components/react-dev-overlay/_experimental/app/react-dev-overlay.stories.js.map +1 -1
  56. package/dist/client/components/react-dev-overlay/_experimental/font/font-styles.d.ts +1 -0
  57. package/dist/client/components/react-dev-overlay/_experimental/font/font-styles.js +41 -0
  58. package/dist/client/components/react-dev-overlay/_experimental/font/font-styles.js.map +1 -0
  59. package/dist/client/components/react-dev-overlay/_experimental/font/geist-latin-ext.woff2 +0 -0
  60. package/dist/client/components/react-dev-overlay/_experimental/font/geist-latin.woff2 +0 -0
  61. package/dist/client/components/react-dev-overlay/_experimental/font/geist-mono-latin-ext.woff2 +0 -0
  62. package/dist/client/components/react-dev-overlay/_experimental/font/geist-mono-latin.woff2 +0 -0
  63. package/dist/client/components/react-dev-overlay/_experimental/font/get-dev-overlay-font-middleware.d.ts +2 -0
  64. package/dist/client/components/react-dev-overlay/_experimental/font/get-dev-overlay-font-middleware.js +72 -0
  65. package/dist/client/components/react-dev-overlay/_experimental/font/get-dev-overlay-font-middleware.js.map +1 -0
  66. package/dist/client/components/react-dev-overlay/_experimental/internal/components/code-frame/code-frame.js +16 -8
  67. package/dist/client/components/react-dev-overlay/_experimental/internal/components/code-frame/code-frame.js.map +1 -1
  68. package/dist/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js +3 -3
  69. package/dist/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js.map +1 -1
  70. package/dist/client/components/react-dev-overlay/_experimental/internal/components/dialog/dialog.js +2 -1
  71. package/dist/client/components/react-dev-overlay/_experimental/internal/components/dialog/dialog.js.map +1 -1
  72. package/dist/client/components/react-dev-overlay/_experimental/internal/components/dialog/styles.js +1 -1
  73. package/dist/client/components/react-dev-overlay/_experimental/internal/components/dialog/styles.js.map +1 -1
  74. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.d.ts +2 -1
  75. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.js +82 -31
  76. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.js.map +1 -1
  77. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.stories.d.ts +2 -2
  78. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.stories.js +20 -21
  79. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.stories.js.map +1 -1
  80. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/dev-tools-info.d.ts +8 -0
  81. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/dev-tools-info.js +80 -0
  82. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/dev-tools-info.js.map +1 -0
  83. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/route-info.d.ts +9 -0
  84. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/route-info.js +158 -0
  85. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/route-info.js.map +1 -0
  86. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/turbopack-info.d.ts +8 -0
  87. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/turbopack-info.js +212 -0
  88. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/turbopack-info.js.map +1 -0
  89. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/next-logo.d.ts +1 -0
  90. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/next-logo.js +28 -6
  91. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/next-logo.js.map +1 -1
  92. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-message/error-message.js +1 -1
  93. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-message/error-message.js.map +1 -1
  94. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay/error-overlay.d.ts +2 -2
  95. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay/error-overlay.js +3 -3
  96. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay/error-overlay.js.map +1 -1
  97. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-layout/error-overlay-layout.d.ts +2 -2
  98. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-layout/error-overlay-layout.js +4 -4
  99. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-layout/error-overlay-layout.js.map +1 -1
  100. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.d.ts +2 -2
  101. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.js +2 -2
  102. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.js.map +1 -1
  103. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.stories.js +1 -1
  104. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.stories.js.map +1 -1
  105. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.d.ts +2 -2
  106. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.js +9 -9
  107. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.js.map +1 -1
  108. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.stories.js +4 -4
  109. package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.stories.js.map +1 -1
  110. package/dist/client/components/react-dev-overlay/_experimental/internal/components/terminal/terminal.js +15 -10
  111. package/dist/client/components/react-dev-overlay/_experimental/internal/components/terminal/terminal.js.map +1 -1
  112. package/dist/client/components/react-dev-overlay/_experimental/internal/components/toast/toast.js +3 -1
  113. package/dist/client/components/react-dev-overlay/_experimental/internal/components/toast/toast.js.map +1 -1
  114. package/dist/client/components/react-dev-overlay/_experimental/internal/container/errors.d.ts +2 -2
  115. package/dist/client/components/react-dev-overlay/_experimental/internal/container/errors.js +7 -7
  116. package/dist/client/components/react-dev-overlay/_experimental/internal/container/errors.js.map +1 -1
  117. package/dist/client/components/react-dev-overlay/_experimental/internal/container/errors.stories.js +5 -5
  118. package/dist/client/components/react-dev-overlay/_experimental/internal/container/errors.stories.js.map +1 -1
  119. package/dist/client/components/react-dev-overlay/_experimental/internal/container/runtime-error/component-stack-pseudo-html.js +1 -1
  120. package/dist/client/components/react-dev-overlay/_experimental/internal/container/runtime-error/component-stack-pseudo-html.js.map +1 -1
  121. package/dist/client/components/react-dev-overlay/_experimental/internal/container/runtime-error/render-error.d.ts +1 -1
  122. package/dist/client/components/react-dev-overlay/_experimental/internal/container/runtime-error/render-error.js +4 -12
  123. package/dist/client/components/react-dev-overlay/_experimental/internal/container/runtime-error/render-error.js.map +1 -1
  124. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/collapse-icon.js +3 -1
  125. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/collapse-icon.js.map +1 -1
  126. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/stop-icon.d.ts +1 -0
  127. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/stop-icon.js +34 -0
  128. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/stop-icon.js.map +1 -0
  129. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/base.js +2 -2
  130. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/base.js.map +1 -1
  131. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/component-styles.js +7 -1
  132. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/component-styles.js.map +1 -1
  133. package/dist/client/components/react-dev-overlay/_experimental/pages/react-dev-overlay.js +6 -2
  134. package/dist/client/components/react-dev-overlay/_experimental/pages/react-dev-overlay.js.map +1 -1
  135. package/dist/client/components/react-dev-overlay/hydration-diff/diff-view.js +2 -2
  136. package/dist/client/components/react-dev-overlay/hydration-diff/diff-view.js.map +1 -1
  137. package/dist/client/components/react-dev-overlay/server/get-next-error-feedback-middleware.js +4 -4
  138. package/dist/client/components/react-dev-overlay/server/get-next-error-feedback-middleware.js.map +1 -1
  139. package/dist/client/components/react-dev-overlay/server/middleware-response.d.ts +9 -0
  140. package/dist/client/components/react-dev-overlay/server/middleware-response.js +46 -0
  141. package/dist/client/components/react-dev-overlay/server/middleware-response.js.map +1 -0
  142. package/dist/client/components/react-dev-overlay/server/middleware-turbopack.js +13 -12
  143. package/dist/client/components/react-dev-overlay/server/middleware-turbopack.js.map +1 -1
  144. package/dist/client/components/react-dev-overlay/server/middleware-webpack.js +12 -11
  145. package/dist/client/components/react-dev-overlay/server/middleware-webpack.js.map +1 -1
  146. package/dist/client/components/react-dev-overlay/server/shared.d.ts +0 -7
  147. package/dist/client/components/react-dev-overlay/server/shared.js +1 -51
  148. package/dist/client/components/react-dev-overlay/server/shared.js.map +1 -1
  149. package/dist/client/components/react-dev-overlay/shared.d.ts +1 -0
  150. package/dist/client/components/react-dev-overlay/shared.js +2 -0
  151. package/dist/client/components/react-dev-overlay/shared.js.map +1 -1
  152. package/dist/client/index.js +2 -3
  153. package/dist/client/index.js.map +1 -1
  154. package/dist/client/link.js.map +1 -1
  155. package/dist/compiled/@next/font/dist/google/fetch-css-from-google-fonts.js +8 -44
  156. package/dist/compiled/@next/font/dist/google/fetch-font-file.d.ts +2 -1
  157. package/dist/compiled/@next/font/dist/google/fetch-font-file.js +6 -20
  158. package/dist/compiled/@next/font/dist/google/fetch-resource.d.ts +6 -0
  159. package/dist/compiled/@next/font/dist/google/fetch-resource.js +46 -0
  160. package/dist/compiled/next-server/app-page-experimental.runtime.dev.js +3 -3
  161. package/dist/compiled/next-server/app-page-experimental.runtime.dev.js.map +1 -1
  162. package/dist/compiled/next-server/app-page.runtime.dev.js +3 -3
  163. package/dist/compiled/next-server/app-page.runtime.dev.js.map +1 -1
  164. package/dist/compiled/next-server/server.runtime.prod.js +2 -2
  165. package/dist/compiled/next-server/server.runtime.prod.js.map +1 -1
  166. package/dist/compiled/node-fetch/index.js +1 -1
  167. package/dist/compiled/sass-loader/cjs.js +1 -1
  168. package/dist/compiled/webpack/webpack.js +23 -1
  169. package/dist/esm/build/entries.js +9 -2
  170. package/dist/esm/build/entries.js.map +1 -1
  171. package/dist/esm/build/index.js +3 -3
  172. package/dist/esm/build/index.js.map +1 -1
  173. package/dist/esm/build/swc/index.js +1 -1
  174. package/dist/esm/build/webpack/config/blocks/base.js +3 -1
  175. package/dist/esm/build/webpack/config/blocks/base.js.map +1 -1
  176. package/dist/esm/build/webpack/config/blocks/css/index.js +3 -1
  177. package/dist/esm/build/webpack/config/blocks/css/index.js.map +1 -1
  178. package/dist/esm/build/webpack/config/blocks/css/loaders/client.js +3 -1
  179. package/dist/esm/build/webpack/config/blocks/css/loaders/client.js.map +1 -1
  180. package/dist/esm/build/webpack/loaders/next-flight-client-entry-loader.js +4 -0
  181. package/dist/esm/build/webpack/loaders/next-flight-client-entry-loader.js.map +1 -1
  182. package/dist/esm/build/webpack/loaders/next-flight-client-module-loader.js +7 -1
  183. package/dist/esm/build/webpack/loaders/next-flight-client-module-loader.js.map +1 -1
  184. package/dist/esm/build/webpack/loaders/next-flight-loader/index.js +8 -2
  185. package/dist/esm/build/webpack/loaders/next-flight-loader/index.js.map +1 -1
  186. package/dist/esm/build/webpack/loaders/utils.js +1 -1
  187. package/dist/esm/build/webpack/loaders/utils.js.map +1 -1
  188. package/dist/esm/build/webpack/plugins/build-manifest-plugin.js +14 -5
  189. package/dist/esm/build/webpack/plugins/build-manifest-plugin.js.map +1 -1
  190. package/dist/esm/build/webpack/plugins/flight-client-entry-plugin.js +28 -18
  191. package/dist/esm/build/webpack/plugins/flight-client-entry-plugin.js.map +1 -1
  192. package/dist/esm/build/webpack/plugins/flight-manifest-plugin.js +3 -3
  193. package/dist/esm/build/webpack/plugins/flight-manifest-plugin.js.map +1 -1
  194. package/dist/esm/build/webpack/plugins/middleware-plugin.js +6 -3
  195. package/dist/esm/build/webpack/plugins/middleware-plugin.js.map +1 -1
  196. package/dist/esm/build/webpack/plugins/next-trace-entrypoints-plugin.js +11 -1
  197. package/dist/esm/build/webpack/plugins/next-trace-entrypoints-plugin.js.map +1 -1
  198. package/dist/esm/build/webpack/plugins/nextjs-require-cache-hot-reloader.js +1 -1
  199. package/dist/esm/build/webpack/plugins/nextjs-require-cache-hot-reloader.js.map +1 -1
  200. package/dist/esm/build/webpack/plugins/rspack-flight-client-entry-plugin.js +87 -0
  201. package/dist/esm/build/webpack/plugins/rspack-flight-client-entry-plugin.js.map +1 -0
  202. package/dist/esm/build/webpack/plugins/rspack-profiling-plugin.js +40 -0
  203. package/dist/esm/build/webpack/plugins/rspack-profiling-plugin.js.map +1 -0
  204. package/dist/esm/build/webpack/plugins/wellknown-errors-plugin/parseNextAppLoaderError.js +2 -1
  205. package/dist/esm/build/webpack/plugins/wellknown-errors-plugin/parseNextAppLoaderError.js.map +1 -1
  206. package/dist/esm/build/webpack/utils.js +6 -2
  207. package/dist/esm/build/webpack/utils.js.map +1 -1
  208. package/dist/esm/build/webpack-config.js +37 -5
  209. package/dist/esm/build/webpack-config.js.map +1 -1
  210. package/dist/esm/client/app-bootstrap.js +1 -1
  211. package/dist/esm/client/app-dir/link.js +2 -0
  212. package/dist/esm/client/app-dir/link.js.map +1 -1
  213. package/dist/esm/client/components/react-dev-overlay/_experimental/app/react-dev-overlay.js +34 -26
  214. package/dist/esm/client/components/react-dev-overlay/_experimental/app/react-dev-overlay.js.map +1 -1
  215. package/dist/esm/client/components/react-dev-overlay/_experimental/app/react-dev-overlay.stories.js +1 -0
  216. package/dist/esm/client/components/react-dev-overlay/_experimental/app/react-dev-overlay.stories.js.map +1 -1
  217. package/dist/esm/client/components/react-dev-overlay/_experimental/font/font-styles.js +25 -0
  218. package/dist/esm/client/components/react-dev-overlay/_experimental/font/font-styles.js.map +1 -0
  219. package/dist/esm/client/components/react-dev-overlay/_experimental/font/geist-latin-ext.woff2 +0 -0
  220. package/dist/esm/client/components/react-dev-overlay/_experimental/font/geist-latin.woff2 +0 -0
  221. package/dist/esm/client/components/react-dev-overlay/_experimental/font/geist-mono-latin-ext.woff2 +0 -0
  222. package/dist/esm/client/components/react-dev-overlay/_experimental/font/geist-mono-latin.woff2 +0 -0
  223. package/dist/esm/client/components/react-dev-overlay/_experimental/font/get-dev-overlay-font-middleware.js +54 -0
  224. package/dist/esm/client/components/react-dev-overlay/_experimental/font/get-dev-overlay-font-middleware.js.map +1 -0
  225. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/code-frame/code-frame.js +16 -8
  226. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/code-frame/code-frame.js.map +1 -1
  227. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js +3 -3
  228. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js.map +1 -1
  229. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/dialog/dialog.js +2 -1
  230. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/dialog/dialog.js.map +1 -1
  231. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/dialog/styles.js +1 -1
  232. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/dialog/styles.js.map +1 -1
  233. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.js +83 -31
  234. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.js.map +1 -1
  235. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.stories.js +13 -14
  236. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.stories.js.map +1 -1
  237. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/dev-tools-info.js +52 -0
  238. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/dev-tools-info.js.map +1 -0
  239. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/route-info.js +130 -0
  240. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/route-info.js.map +1 -0
  241. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/turbopack-info.js +184 -0
  242. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-info/turbopack-info.js.map +1 -0
  243. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/next-logo.js +28 -6
  244. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/next-logo.js.map +1 -1
  245. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-message/error-message.js +1 -1
  246. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-message/error-message.js.map +1 -1
  247. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay/error-overlay.js +3 -3
  248. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay/error-overlay.js.map +1 -1
  249. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-layout/error-overlay-layout.js +4 -4
  250. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-layout/error-overlay-layout.js.map +1 -1
  251. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.js +2 -2
  252. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.js.map +1 -1
  253. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.stories.js +1 -1
  254. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.stories.js.map +1 -1
  255. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.js +9 -9
  256. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.js.map +1 -1
  257. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.stories.js +4 -4
  258. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.stories.js.map +1 -1
  259. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/terminal/terminal.js +15 -10
  260. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/terminal/terminal.js.map +1 -1
  261. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/toast/toast.js +3 -1
  262. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/toast/toast.js.map +1 -1
  263. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/errors.js +7 -7
  264. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/errors.js.map +1 -1
  265. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/errors.stories.js +5 -5
  266. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/errors.stories.js.map +1 -1
  267. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/runtime-error/component-stack-pseudo-html.js +1 -1
  268. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/runtime-error/component-stack-pseudo-html.js.map +1 -1
  269. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/runtime-error/render-error.js +4 -12
  270. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/runtime-error/render-error.js.map +1 -1
  271. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/collapse-icon.js +3 -1
  272. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/collapse-icon.js.map +1 -1
  273. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/stop-icon.js +18 -0
  274. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/stop-icon.js.map +1 -0
  275. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/base.js +2 -2
  276. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/base.js.map +1 -1
  277. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/component-styles.js +7 -1
  278. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/component-styles.js.map +1 -1
  279. package/dist/esm/client/components/react-dev-overlay/_experimental/pages/react-dev-overlay.js +6 -2
  280. package/dist/esm/client/components/react-dev-overlay/_experimental/pages/react-dev-overlay.js.map +1 -1
  281. package/dist/esm/client/components/react-dev-overlay/hydration-diff/diff-view.js +1 -1
  282. package/dist/esm/client/components/react-dev-overlay/hydration-diff/diff-view.js.map +1 -1
  283. package/dist/esm/client/components/react-dev-overlay/server/get-next-error-feedback-middleware.js +4 -4
  284. package/dist/esm/client/components/react-dev-overlay/server/get-next-error-feedback-middleware.js.map +1 -1
  285. package/dist/esm/client/components/react-dev-overlay/server/middleware-response.js +30 -0
  286. package/dist/esm/client/components/react-dev-overlay/server/middleware-response.js.map +1 -0
  287. package/dist/esm/client/components/react-dev-overlay/server/middleware-turbopack.js +14 -13
  288. package/dist/esm/client/components/react-dev-overlay/server/middleware-turbopack.js.map +1 -1
  289. package/dist/esm/client/components/react-dev-overlay/server/middleware-webpack.js +13 -12
  290. package/dist/esm/client/components/react-dev-overlay/server/middleware-webpack.js.map +1 -1
  291. package/dist/esm/client/components/react-dev-overlay/server/shared.js +0 -26
  292. package/dist/esm/client/components/react-dev-overlay/server/shared.js.map +1 -1
  293. package/dist/esm/client/components/react-dev-overlay/shared.js +2 -0
  294. package/dist/esm/client/components/react-dev-overlay/shared.js.map +1 -1
  295. package/dist/esm/client/index.js +2 -3
  296. package/dist/esm/client/index.js.map +1 -1
  297. package/dist/esm/client/link.js.map +1 -1
  298. package/dist/esm/server/base-server.js +15 -15
  299. package/dist/esm/server/base-server.js.map +1 -1
  300. package/dist/esm/server/config-shared.js.map +1 -1
  301. package/dist/esm/server/config.js +1 -1
  302. package/dist/esm/server/dev/hot-reloader-turbopack.js +4 -2
  303. package/dist/esm/server/dev/hot-reloader-turbopack.js.map +1 -1
  304. package/dist/esm/server/dev/hot-reloader-webpack.js +4 -2
  305. package/dist/esm/server/dev/hot-reloader-webpack.js.map +1 -1
  306. package/dist/esm/server/lib/app-info-log.js +1 -1
  307. package/dist/esm/server/lib/start-server.js +1 -1
  308. package/dist/esm/shared/lib/get-rspack.js +32 -0
  309. package/dist/esm/shared/lib/get-rspack.js.map +1 -0
  310. package/dist/server/base-server.js +15 -15
  311. package/dist/server/base-server.js.map +1 -1
  312. package/dist/server/config-shared.d.ts +3 -3
  313. package/dist/server/config-shared.js.map +1 -1
  314. package/dist/server/config.js +1 -1
  315. package/dist/server/dev/hot-reloader-turbopack.js +4 -2
  316. package/dist/server/dev/hot-reloader-turbopack.js.map +1 -1
  317. package/dist/server/dev/hot-reloader-webpack.js +4 -2
  318. package/dist/server/dev/hot-reloader-webpack.js.map +1 -1
  319. package/dist/server/lib/app-info-log.js +1 -1
  320. package/dist/server/lib/start-server.js +1 -1
  321. package/dist/shared/lib/get-rspack.d.ts +2 -0
  322. package/dist/shared/lib/get-rspack.js +54 -0
  323. package/dist/shared/lib/get-rspack.js.map +1 -0
  324. package/dist/telemetry/anonymous-meta.js +1 -1
  325. package/dist/telemetry/events/session-stopped.js +2 -2
  326. package/dist/telemetry/events/version.js +2 -2
  327. package/dist/trace/trace-uploader.js +1 -2
  328. package/dist/trace/trace-uploader.js.map +1 -1
  329. package/package.json +15 -15
  330. package/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.d.ts +0 -3
  331. package/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js +0 -43
  332. package/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js.map +0 -1
  333. package/dist/esm/client/components/react-dev-overlay/internal/icons/CollapseIcon.js +0 -27
  334. package/dist/esm/client/components/react-dev-overlay/internal/icons/CollapseIcon.js.map +0 -1
@@ -55,7 +55,7 @@ function _templateObject() {
55
55
  return data;
56
56
  }
57
57
  function ErrorOverlayLayout(param) {
58
- let { errorMessage, errorType, children, errorCode, error, debugInfo, isBuildError, onClose, versionInfo, readyErrors, activeIdx, setActiveIndex, footerMessage, isTurbopack, dialogResizerRef, // This prop is used to animate the dialog, it comes from a parent component (<ErrorOverlay>)
58
+ let { errorMessage, errorType, children, errorCode, error, debugInfo, isBuildError, onClose, versionInfo, runtimeErrors, activeIdx, setActiveIndex, footerMessage, isTurbopack, dialogResizerRef, // This prop is used to animate the dialog, it comes from a parent component (<ErrorOverlay>)
59
59
  // If it's not being passed, we should just render the component as it is being
60
60
  // used without the context of a parent component that controls its state (e.g. Storybook).
61
61
  rendered = true, transitionDurationMs } = param;
@@ -66,7 +66,7 @@ function ErrorOverlayLayout(param) {
66
66
  }
67
67
  };
68
68
  const hasFooter = Boolean(footerMessage || errorCode);
69
- var _readyErrors_length;
69
+ var _runtimeErrors_length;
70
70
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_overlay.ErrorOverlayOverlay, {
71
71
  fixed: isBuildError,
72
72
  ...animationProps,
@@ -122,13 +122,13 @@ function ErrorOverlayLayout(param) {
122
122
  })
123
123
  }),
124
124
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_erroroverlaybottomstack.ErrorOverlayBottomStack, {
125
- count: (_readyErrors_length = readyErrors == null ? void 0 : readyErrors.length) != null ? _readyErrors_length : 0,
125
+ count: (_runtimeErrors_length = runtimeErrors == null ? void 0 : runtimeErrors.length) != null ? _runtimeErrors_length : 0,
126
126
  activeIdx: activeIdx != null ? activeIdx : 0
127
127
  })
128
128
  ]
129
129
  }),
130
130
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_erroroverlaynav.ErrorOverlayNav, {
131
- readyErrors: readyErrors,
131
+ runtimeErrors: runtimeErrors,
132
132
  activeIdx: activeIdx,
133
133
  setActiveIndex: setActiveIndex,
134
134
  versionInfo: versionInfo,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-layout/error-overlay-layout.tsx"],"sourcesContent":["import type { DebugInfo } from '../../../../../types'\nimport type { ErrorMessageType } from '../error-message/error-message'\nimport type { ErrorType } from '../error-type-label/error-type-label'\n\nimport { DialogContent, DialogFooter } from '../../dialog'\nimport {\n ErrorOverlayToolbar,\n styles as toolbarStyles,\n} from '../error-overlay-toolbar/error-overlay-toolbar'\nimport { ErrorOverlayFooter } from '../error-overlay-footer/error-overlay-footer'\nimport { noop as css } from '../../../helpers/noop-template'\nimport {\n ErrorMessage,\n styles as errorMessageStyles,\n} from '../error-message/error-message'\nimport {\n ErrorTypeLabel,\n styles as errorTypeLabelStyles,\n} from '../error-type-label/error-type-label'\nimport {\n ErrorOverlayNav,\n styles as floatingHeaderStyles,\n} from '../error-overlay-nav/error-overlay-nav'\n\nimport { ErrorOverlayDialog, DIALOG_STYLES } from '../dialog/dialog'\nimport {\n ErrorOverlayDialogHeader,\n DIALOG_HEADER_STYLES,\n} from '../dialog/header'\nimport { ErrorOverlayDialogBody, DIALOG_BODY_STYLES } from '../dialog/body'\nimport { CALL_STACK_STYLES } from '../call-stack/call-stack'\nimport { OVERLAY_STYLES, ErrorOverlayOverlay } from '../overlay/overlay'\nimport { ErrorOverlayBottomStack } from '../error-overlay-bottom-stack'\nimport type { ErrorBaseProps } from '../error-overlay/error-overlay'\nimport type { ReadyRuntimeError } from '../../../../../internal/helpers/get-error-by-type'\nimport { EnvironmentNameLabel } from '../environment-name-label/environment-name-label'\n\ninterface ErrorOverlayLayoutProps extends ErrorBaseProps {\n errorMessage: ErrorMessageType\n errorType: ErrorType\n children?: React.ReactNode\n errorCode?: string\n error: ReadyRuntimeError['error']\n debugInfo?: DebugInfo\n isBuildError?: boolean\n onClose?: () => void\n // TODO: better handle receiving\n readyErrors?: ReadyRuntimeError[]\n activeIdx?: number\n setActiveIndex?: (index: number) => void\n footerMessage?: string\n dialogResizerRef?: React.RefObject<HTMLDivElement | null>\n}\n\nexport function ErrorOverlayLayout({\n errorMessage,\n errorType,\n children,\n errorCode,\n error,\n debugInfo,\n isBuildError,\n onClose,\n versionInfo,\n readyErrors,\n activeIdx,\n setActiveIndex,\n footerMessage,\n isTurbopack,\n dialogResizerRef,\n // This prop is used to animate the dialog, it comes from a parent component (<ErrorOverlay>)\n // If it's not being passed, we should just render the component as it is being\n // used without the context of a parent component that controls its state (e.g. Storybook).\n rendered = true,\n transitionDurationMs,\n}: ErrorOverlayLayoutProps) {\n const animationProps = {\n 'data-rendered': rendered,\n style: {\n '--transition-duration': `${transitionDurationMs}ms`,\n } as React.CSSProperties,\n }\n\n const hasFooter = Boolean(footerMessage || errorCode)\n\n return (\n <ErrorOverlayOverlay fixed={isBuildError} {...animationProps}>\n <div data-nextjs-dialog-root {...animationProps}>\n <ErrorOverlayDialog\n onClose={onClose}\n dialogResizerRef={dialogResizerRef}\n data-has-footer={hasFooter}\n >\n <DialogContent>\n <ErrorOverlayDialogHeader>\n <div\n className=\"nextjs__container_errors__error_title\"\n // allow assertion in tests before error rating is implemented\n data-nextjs-error-code={errorCode}\n >\n <span data-nextjs-error-label-group>\n <ErrorTypeLabel errorType={errorType} />\n {error.environmentName && (\n <EnvironmentNameLabel\n environmentName={error.environmentName}\n />\n )}\n </span>\n <ErrorOverlayToolbar error={error} debugInfo={debugInfo} />\n </div>\n <ErrorMessage errorMessage={errorMessage} />\n </ErrorOverlayDialogHeader>\n\n <ErrorOverlayDialogBody>{children}</ErrorOverlayDialogBody>\n </DialogContent>\n {hasFooter && (\n <DialogFooter>\n <ErrorOverlayFooter\n footerMessage={footerMessage}\n errorCode={errorCode}\n />\n </DialogFooter>\n )}\n <ErrorOverlayBottomStack\n count={readyErrors?.length ?? 0}\n activeIdx={activeIdx ?? 0}\n />\n </ErrorOverlayDialog>\n <ErrorOverlayNav\n readyErrors={readyErrors}\n activeIdx={activeIdx}\n setActiveIndex={setActiveIndex}\n versionInfo={versionInfo}\n isTurbopack={isTurbopack}\n />\n </div>\n </ErrorOverlayOverlay>\n )\n}\n\nexport const styles = css`\n ${OVERLAY_STYLES}\n ${DIALOG_STYLES}\n ${DIALOG_HEADER_STYLES}\n ${DIALOG_BODY_STYLES}\n\n ${floatingHeaderStyles}\n ${errorTypeLabelStyles}\n ${errorMessageStyles}\n ${toolbarStyles}\n ${CALL_STACK_STYLES}\n\n [data-nextjs-error-label-group] {\n display: flex;\n align-items: center;\n gap: var(--size-2);\n }\n`\n"],"names":["ErrorOverlayLayout","styles","errorMessage","errorType","children","errorCode","error","debugInfo","isBuildError","onClose","versionInfo","readyErrors","activeIdx","setActiveIndex","footerMessage","isTurbopack","dialogResizerRef","rendered","transitionDurationMs","animationProps","style","hasFooter","Boolean","ErrorOverlayOverlay","fixed","div","data-nextjs-dialog-root","ErrorOverlayDialog","data-has-footer","DialogContent","ErrorOverlayDialogHeader","className","data-nextjs-error-code","span","data-nextjs-error-label-group","ErrorTypeLabel","environmentName","EnvironmentNameLabel","ErrorOverlayToolbar","ErrorMessage","ErrorOverlayDialogBody","DialogFooter","ErrorOverlayFooter","ErrorOverlayBottomStack","count","length","ErrorOverlayNav","css","OVERLAY_STYLES","DIALOG_STYLES","DIALOG_HEADER_STYLES","DIALOG_BODY_STYLES","floatingHeaderStyles","errorTypeLabelStyles","errorMessageStyles","toolbarStyles","CALL_STACK_STYLES"],"mappings":";;;;;;;;;;;;;;;IAsDgBA,kBAAkB;eAAlBA;;IAsFHC,MAAM;eAANA;;;;;wBAxI+B;qCAIrC;oCAC4B;8BACP;8BAIrB;gCAIA;iCAIA;yBAE2C;wBAI3C;sBACoD;2BACzB;yBACkB;yCACZ;sCAGH;;;;;;;;;;;;;;;;;;;AAmB9B,SAASD,mBAAmB,KAqBT;IArBS,IAAA,EACjCE,YAAY,EACZC,SAAS,EACTC,QAAQ,EACRC,SAAS,EACTC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,OAAO,EACPC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,cAAc,EACdC,aAAa,EACbC,WAAW,EACXC,gBAAgB,EAChB,6FAA6F;IAC7F,+EAA+E;IAC/E,2FAA2F;IAC3FC,WAAW,IAAI,EACfC,oBAAoB,EACI,GArBS;IAsBjC,MAAMC,iBAAiB;QACrB,iBAAiBF;QACjBG,OAAO;YACL,yBAAyB,AAAC,KAAEF,uBAAqB;QACnD;IACF;IAEA,MAAMG,YAAYC,QAAQR,iBAAiBT;QAyC1BM;IAvCjB,qBACE,qBAACY,4BAAmB;QAACC,OAAOhB;QAAe,GAAGW,cAAc;kBAC1D,cAAA,sBAACM;YAAIC,yBAAuB;YAAE,GAAGP,cAAc;;8BAC7C,sBAACQ,2BAAkB;oBACjBlB,SAASA;oBACTO,kBAAkBA;oBAClBY,mBAAiBP;;sCAEjB,sBAACQ,qBAAa;;8CACZ,sBAACC,gCAAwB;;sDACvB,sBAACL;4CACCM,WAAU;4CACV,8DAA8D;4CAC9DC,0BAAwB3B;;8DAExB,sBAAC4B;oDAAKC,+BAA6B;;sEACjC,qBAACC,8BAAc;4DAAChC,WAAWA;;wDAC1BG,MAAM8B,eAAe,kBACpB,qBAACC,0CAAoB;4DACnBD,iBAAiB9B,MAAM8B,eAAe;;;;8DAI5C,qBAACE,wCAAmB;oDAAChC,OAAOA;oDAAOC,WAAWA;;;;sDAEhD,qBAACgC,0BAAY;4CAACrC,cAAcA;;;;8CAG9B,qBAACsC,4BAAsB;8CAAEpC;;;;wBAE1BiB,2BACC,qBAACoB,oBAAY;sCACX,cAAA,qBAACC,sCAAkB;gCACjB5B,eAAeA;gCACfT,WAAWA;;;sCAIjB,qBAACsC,gDAAuB;4BACtBC,OAAOjC,CAAAA,sBAAAA,+BAAAA,YAAakC,MAAM,YAAnBlC,sBAAuB;4BAC9BC,WAAWA,oBAAAA,YAAa;;;;8BAG5B,qBAACkC,gCAAe;oBACdnC,aAAaA;oBACbC,WAAWA;oBACXC,gBAAgBA;oBAChBH,aAAaA;oBACbK,aAAaA;;;;;AAKvB;AAEO,MAAMd,aAAS8C,kBAAG,qBACrBC,uBAAc,EACdC,sBAAa,EACbC,4BAAoB,EACpBC,wBAAkB,EAElBC,uBAAoB,EACpBC,sBAAoB,EACpBC,oBAAkB,EAClBC,2BAAa,EACbC,4BAAiB"}
1
+ {"version":3,"sources":["../../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-layout/error-overlay-layout.tsx"],"sourcesContent":["import type { DebugInfo } from '../../../../../types'\nimport type { ErrorMessageType } from '../error-message/error-message'\nimport type { ErrorType } from '../error-type-label/error-type-label'\n\nimport { DialogContent, DialogFooter } from '../../dialog'\nimport {\n ErrorOverlayToolbar,\n styles as toolbarStyles,\n} from '../error-overlay-toolbar/error-overlay-toolbar'\nimport { ErrorOverlayFooter } from '../error-overlay-footer/error-overlay-footer'\nimport { noop as css } from '../../../helpers/noop-template'\nimport {\n ErrorMessage,\n styles as errorMessageStyles,\n} from '../error-message/error-message'\nimport {\n ErrorTypeLabel,\n styles as errorTypeLabelStyles,\n} from '../error-type-label/error-type-label'\nimport {\n ErrorOverlayNav,\n styles as floatingHeaderStyles,\n} from '../error-overlay-nav/error-overlay-nav'\n\nimport { ErrorOverlayDialog, DIALOG_STYLES } from '../dialog/dialog'\nimport {\n ErrorOverlayDialogHeader,\n DIALOG_HEADER_STYLES,\n} from '../dialog/header'\nimport { ErrorOverlayDialogBody, DIALOG_BODY_STYLES } from '../dialog/body'\nimport { CALL_STACK_STYLES } from '../call-stack/call-stack'\nimport { OVERLAY_STYLES, ErrorOverlayOverlay } from '../overlay/overlay'\nimport { ErrorOverlayBottomStack } from '../error-overlay-bottom-stack'\nimport type { ErrorBaseProps } from '../error-overlay/error-overlay'\nimport type { ReadyRuntimeError } from '../../../../../internal/helpers/get-error-by-type'\nimport { EnvironmentNameLabel } from '../environment-name-label/environment-name-label'\n\ninterface ErrorOverlayLayoutProps extends ErrorBaseProps {\n errorMessage: ErrorMessageType\n errorType: ErrorType\n children?: React.ReactNode\n errorCode?: string\n error: ReadyRuntimeError['error']\n debugInfo?: DebugInfo\n isBuildError?: boolean\n onClose?: () => void\n // TODO: better handle receiving\n runtimeErrors?: ReadyRuntimeError[]\n activeIdx?: number\n setActiveIndex?: (index: number) => void\n footerMessage?: string\n dialogResizerRef?: React.RefObject<HTMLDivElement | null>\n}\n\nexport function ErrorOverlayLayout({\n errorMessage,\n errorType,\n children,\n errorCode,\n error,\n debugInfo,\n isBuildError,\n onClose,\n versionInfo,\n runtimeErrors,\n activeIdx,\n setActiveIndex,\n footerMessage,\n isTurbopack,\n dialogResizerRef,\n // This prop is used to animate the dialog, it comes from a parent component (<ErrorOverlay>)\n // If it's not being passed, we should just render the component as it is being\n // used without the context of a parent component that controls its state (e.g. Storybook).\n rendered = true,\n transitionDurationMs,\n}: ErrorOverlayLayoutProps) {\n const animationProps = {\n 'data-rendered': rendered,\n style: {\n '--transition-duration': `${transitionDurationMs}ms`,\n } as React.CSSProperties,\n }\n\n const hasFooter = Boolean(footerMessage || errorCode)\n\n return (\n <ErrorOverlayOverlay fixed={isBuildError} {...animationProps}>\n <div data-nextjs-dialog-root {...animationProps}>\n <ErrorOverlayDialog\n onClose={onClose}\n dialogResizerRef={dialogResizerRef}\n data-has-footer={hasFooter}\n >\n <DialogContent>\n <ErrorOverlayDialogHeader>\n <div\n className=\"nextjs__container_errors__error_title\"\n // allow assertion in tests before error rating is implemented\n data-nextjs-error-code={errorCode}\n >\n <span data-nextjs-error-label-group>\n <ErrorTypeLabel errorType={errorType} />\n {error.environmentName && (\n <EnvironmentNameLabel\n environmentName={error.environmentName}\n />\n )}\n </span>\n <ErrorOverlayToolbar error={error} debugInfo={debugInfo} />\n </div>\n <ErrorMessage errorMessage={errorMessage} />\n </ErrorOverlayDialogHeader>\n\n <ErrorOverlayDialogBody>{children}</ErrorOverlayDialogBody>\n </DialogContent>\n {hasFooter && (\n <DialogFooter>\n <ErrorOverlayFooter\n footerMessage={footerMessage}\n errorCode={errorCode}\n />\n </DialogFooter>\n )}\n <ErrorOverlayBottomStack\n count={runtimeErrors?.length ?? 0}\n activeIdx={activeIdx ?? 0}\n />\n </ErrorOverlayDialog>\n <ErrorOverlayNav\n runtimeErrors={runtimeErrors}\n activeIdx={activeIdx}\n setActiveIndex={setActiveIndex}\n versionInfo={versionInfo}\n isTurbopack={isTurbopack}\n />\n </div>\n </ErrorOverlayOverlay>\n )\n}\n\nexport const styles = css`\n ${OVERLAY_STYLES}\n ${DIALOG_STYLES}\n ${DIALOG_HEADER_STYLES}\n ${DIALOG_BODY_STYLES}\n\n ${floatingHeaderStyles}\n ${errorTypeLabelStyles}\n ${errorMessageStyles}\n ${toolbarStyles}\n ${CALL_STACK_STYLES}\n\n [data-nextjs-error-label-group] {\n display: flex;\n align-items: center;\n gap: var(--size-2);\n }\n`\n"],"names":["ErrorOverlayLayout","styles","errorMessage","errorType","children","errorCode","error","debugInfo","isBuildError","onClose","versionInfo","runtimeErrors","activeIdx","setActiveIndex","footerMessage","isTurbopack","dialogResizerRef","rendered","transitionDurationMs","animationProps","style","hasFooter","Boolean","ErrorOverlayOverlay","fixed","div","data-nextjs-dialog-root","ErrorOverlayDialog","data-has-footer","DialogContent","ErrorOverlayDialogHeader","className","data-nextjs-error-code","span","data-nextjs-error-label-group","ErrorTypeLabel","environmentName","EnvironmentNameLabel","ErrorOverlayToolbar","ErrorMessage","ErrorOverlayDialogBody","DialogFooter","ErrorOverlayFooter","ErrorOverlayBottomStack","count","length","ErrorOverlayNav","css","OVERLAY_STYLES","DIALOG_STYLES","DIALOG_HEADER_STYLES","DIALOG_BODY_STYLES","floatingHeaderStyles","errorTypeLabelStyles","errorMessageStyles","toolbarStyles","CALL_STACK_STYLES"],"mappings":";;;;;;;;;;;;;;;IAsDgBA,kBAAkB;eAAlBA;;IAsFHC,MAAM;eAANA;;;;;wBAxI+B;qCAIrC;oCAC4B;8BACP;8BAIrB;gCAIA;iCAIA;yBAE2C;wBAI3C;sBACoD;2BACzB;yBACkB;yCACZ;sCAGH;;;;;;;;;;;;;;;;;;;AAmB9B,SAASD,mBAAmB,KAqBT;IArBS,IAAA,EACjCE,YAAY,EACZC,SAAS,EACTC,QAAQ,EACRC,SAAS,EACTC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,OAAO,EACPC,WAAW,EACXC,aAAa,EACbC,SAAS,EACTC,cAAc,EACdC,aAAa,EACbC,WAAW,EACXC,gBAAgB,EAChB,6FAA6F;IAC7F,+EAA+E;IAC/E,2FAA2F;IAC3FC,WAAW,IAAI,EACfC,oBAAoB,EACI,GArBS;IAsBjC,MAAMC,iBAAiB;QACrB,iBAAiBF;QACjBG,OAAO;YACL,yBAAyB,AAAC,KAAEF,uBAAqB;QACnD;IACF;IAEA,MAAMG,YAAYC,QAAQR,iBAAiBT;QAyC1BM;IAvCjB,qBACE,qBAACY,4BAAmB;QAACC,OAAOhB;QAAe,GAAGW,cAAc;kBAC1D,cAAA,sBAACM;YAAIC,yBAAuB;YAAE,GAAGP,cAAc;;8BAC7C,sBAACQ,2BAAkB;oBACjBlB,SAASA;oBACTO,kBAAkBA;oBAClBY,mBAAiBP;;sCAEjB,sBAACQ,qBAAa;;8CACZ,sBAACC,gCAAwB;;sDACvB,sBAACL;4CACCM,WAAU;4CACV,8DAA8D;4CAC9DC,0BAAwB3B;;8DAExB,sBAAC4B;oDAAKC,+BAA6B;;sEACjC,qBAACC,8BAAc;4DAAChC,WAAWA;;wDAC1BG,MAAM8B,eAAe,kBACpB,qBAACC,0CAAoB;4DACnBD,iBAAiB9B,MAAM8B,eAAe;;;;8DAI5C,qBAACE,wCAAmB;oDAAChC,OAAOA;oDAAOC,WAAWA;;;;sDAEhD,qBAACgC,0BAAY;4CAACrC,cAAcA;;;;8CAG9B,qBAACsC,4BAAsB;8CAAEpC;;;;wBAE1BiB,2BACC,qBAACoB,oBAAY;sCACX,cAAA,qBAACC,sCAAkB;gCACjB5B,eAAeA;gCACfT,WAAWA;;;sCAIjB,qBAACsC,gDAAuB;4BACtBC,OAAOjC,CAAAA,wBAAAA,iCAAAA,cAAekC,MAAM,YAArBlC,wBAAyB;4BAChCC,WAAWA,oBAAAA,YAAa;;;;8BAG5B,qBAACkC,gCAAe;oBACdnC,eAAeA;oBACfC,WAAWA;oBACXC,gBAAgBA;oBAChBH,aAAaA;oBACbK,aAAaA;;;;;AAKvB;AAEO,MAAMd,aAAS8C,kBAAG,qBACrBC,uBAAc,EACdC,sBAAa,EACbC,4BAAoB,EACpBC,wBAAkB,EAElBC,uBAAoB,EACpBC,sBAAoB,EACpBC,oBAAkB,EAClBC,2BAAa,EACbC,4BAAiB"}
@@ -1,12 +1,12 @@
1
1
  import type { VersionInfo } from '../../../../../../../../server/dev/parse-version-info';
2
2
  import type { ReadyRuntimeError } from '../../../../../internal/helpers/get-error-by-type';
3
3
  type ErrorOverlayNavProps = {
4
- readyErrors?: ReadyRuntimeError[];
4
+ runtimeErrors?: ReadyRuntimeError[];
5
5
  activeIdx?: number;
6
6
  setActiveIndex?: (index: number) => void;
7
7
  versionInfo?: VersionInfo;
8
8
  isTurbopack?: boolean;
9
9
  };
10
- export declare function ErrorOverlayNav({ readyErrors, activeIdx, setActiveIndex, versionInfo, isTurbopack, }: ErrorOverlayNavProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function ErrorOverlayNav({ runtimeErrors, activeIdx, setActiveIndex, versionInfo, isTurbopack, }: ErrorOverlayNavProps): import("react/jsx-runtime").JSX.Element;
11
11
  export declare const styles: string;
12
12
  export {};
@@ -35,14 +35,14 @@ function _templateObject() {
35
35
  return data;
36
36
  }
37
37
  function ErrorOverlayNav(param) {
38
- let { readyErrors, activeIdx, setActiveIndex, versionInfo, isTurbopack } = param;
38
+ let { runtimeErrors, activeIdx, setActiveIndex, versionInfo, isTurbopack } = param;
39
39
  return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
40
40
  "data-nextjs-error-overlay-nav": true,
41
41
  children: [
42
42
  /*#__PURE__*/ (0, _jsxruntime.jsx)(Notch, {
43
43
  side: "left",
44
44
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_erroroverlaypagination.ErrorOverlayPagination, {
45
- readyErrors: readyErrors != null ? readyErrors : [],
45
+ runtimeErrors: runtimeErrors != null ? runtimeErrors : [],
46
46
  activeIdx: activeIdx != null ? activeIdx : 0,
47
47
  onActiveIndexChange: setActiveIndex != null ? setActiveIndex : ()=>{}
48
48
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.tsx"],"sourcesContent":["import type { VersionInfo } from '../../../../../../../../server/dev/parse-version-info'\n\nimport { ErrorOverlayPagination } from '../error-overlay-pagination/error-overlay-pagination'\nimport { VersionStalenessInfo } from '../../version-staleness-info/version-staleness-info'\nimport { noop as css } from '../../../helpers/noop-template'\nimport type { ReadyRuntimeError } from '../../../../../internal/helpers/get-error-by-type'\n\ntype ErrorOverlayNavProps = {\n readyErrors?: ReadyRuntimeError[]\n activeIdx?: number\n setActiveIndex?: (index: number) => void\n versionInfo?: VersionInfo\n isTurbopack?: boolean\n}\n\nexport function ErrorOverlayNav({\n readyErrors,\n activeIdx,\n setActiveIndex,\n versionInfo,\n isTurbopack,\n}: ErrorOverlayNavProps) {\n return (\n <div data-nextjs-error-overlay-nav>\n <Notch side=\"left\">\n {/* TODO: better passing data instead of nullish coalescing */}\n <ErrorOverlayPagination\n readyErrors={readyErrors ?? []}\n activeIdx={activeIdx ?? 0}\n onActiveIndexChange={setActiveIndex ?? (() => {})}\n />\n </Notch>\n {versionInfo && (\n <Notch side=\"right\">\n <VersionStalenessInfo\n versionInfo={versionInfo}\n isTurbopack={isTurbopack}\n />\n </Notch>\n )}\n </div>\n )\n}\n\nexport const styles = css`\n [data-nextjs-error-overlay-nav] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n width: 100%;\n\n outline: none;\n translate: 1px 1px;\n max-width: var(--next-dialog-max-width);\n\n .error-overlay-notch {\n --stroke-color: var(--color-gray-400);\n --background-color: var(--color-background-100);\n\n translate: -1px 0;\n width: auto;\n height: 42px;\n padding: 12px;\n background: var(--background-color);\n border: 1px solid var(--stroke-color);\n border-bottom: none;\n position: relative;\n\n &[data-side='left'] {\n padding-right: 0;\n border-radius: var(--next-dialog-radius) 0 0 0;\n\n .error-overlay-notch-tail {\n right: -54px;\n }\n\n > *:not(.error-overlay-notch-tail) {\n margin-right: -10px;\n }\n }\n\n &[data-side='right'] {\n padding-left: 0;\n border-radius: 0 var(--next-dialog-radius) 0 0;\n\n .error-overlay-notch-tail {\n left: -54px;\n transform: rotateY(180deg);\n }\n\n > *:not(.error-overlay-notch-tail) {\n margin-left: -12px;\n }\n }\n\n .error-overlay-notch-tail {\n position: absolute;\n top: -1px;\n pointer-events: none;\n z-index: -1;\n }\n }\n }\n`\n\nfunction Notch({\n children,\n side = 'left',\n}: {\n children: React.ReactNode\n side?: 'left' | 'right'\n}) {\n return (\n <div className=\"error-overlay-notch\" data-side={side}>\n {children}\n <Tail />\n </div>\n )\n}\n\nfunction Tail() {\n return (\n <svg\n width=\"60\"\n height=\"42\"\n viewBox=\"0 0 60 42\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"error-overlay-notch-tail\"\n >\n <mask\n id=\"mask0_2667_14687\"\n style={{\n maskType: 'alpha',\n }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"-1\"\n width=\"60\"\n height=\"43\"\n >\n <mask\n id=\"path-1-outside-1_2667_14687\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"-1\"\n width=\"60\"\n height=\"43\"\n fill=\"black\"\n >\n <rect fill=\"white\" y=\"-1\" width=\"60\" height=\"43\" />\n <path d=\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\" />\n </mask>\n <path\n d=\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\"\n fill=\"white\"\n />\n <path\n d=\"M1 0V-1H0V0L1 0ZM1 41H0V42H1V41ZM34.8889 29.6498L33.9873 30.0823L34.8889 29.6498ZM26.111 11.3501L27.0127 10.9177L26.111 11.3501ZM1 1H8.0783V-1H1V1ZM60 40H1V42H60V40ZM2 41V0L0 0L0 41H2ZM25.2094 11.7826L33.9873 30.0823L35.7906 29.2174L27.0127 10.9177L25.2094 11.7826ZM52.9217 42H60V40H52.9217V42ZM33.9873 30.0823C37.4811 37.3661 44.8433 42 52.9217 42V40C45.6127 40 38.9517 35.8074 35.7906 29.2174L33.9873 30.0823ZM8.0783 1C15.3873 1 22.0483 5.19257 25.2094 11.7826L27.0127 10.9177C23.5188 3.6339 16.1567 -1 8.0783 -1V1Z\"\n fill=\"black\"\n mask=\"url(#path-1-outside-1_2667_14687)\"\n />\n </mask>\n <g mask=\"url(#mask0_2667_14687)\">\n <mask\n id=\"path-3-outside-2_2667_14687\"\n maskUnits=\"userSpaceOnUse\"\n x=\"-1\"\n y=\"0.0244141\"\n width=\"60\"\n height=\"43\"\n fill=\"black\"\n >\n <rect fill=\"white\" x=\"-1\" y=\"0.0244141\" width=\"60\" height=\"43\" />\n <path d=\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\" />\n </mask>\n <path\n d=\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\"\n fill=\"var(--background-color)\"\n />\n <path\n d=\"M0 1.02441L0 0.0244141H-1V1.02441H0ZM0 42.0244H-1V43.0244H0L0 42.0244ZM33.8889 30.6743L32.9873 31.1068L33.8889 30.6743ZM25.111 12.3746L26.0127 11.9421L25.111 12.3746ZM0 2.02441H7.0783V0.0244141H0L0 2.02441ZM59 41.0244H0L0 43.0244H59V41.0244ZM1 42.0244L1 1.02441H-1L-1 42.0244H1ZM24.2094 12.8071L32.9873 31.1068L34.7906 30.2418L26.0127 11.9421L24.2094 12.8071ZM51.9217 43.0244H59V41.0244H51.9217V43.0244ZM32.9873 31.1068C36.4811 38.3905 43.8433 43.0244 51.9217 43.0244V41.0244C44.6127 41.0244 37.9517 36.8318 34.7906 30.2418L32.9873 31.1068ZM7.0783 2.02441C14.3873 2.02441 21.0483 6.21699 24.2094 12.8071L26.0127 11.9421C22.5188 4.65831 15.1567 0.0244141 7.0783 0.0244141V2.02441Z\"\n fill=\"var(--stroke-color)\"\n mask=\"url(#path-3-outside-2_2667_14687)\"\n />\n </g>\n </svg>\n )\n}\n"],"names":["ErrorOverlayNav","styles","readyErrors","activeIdx","setActiveIndex","versionInfo","isTurbopack","div","data-nextjs-error-overlay-nav","Notch","side","ErrorOverlayPagination","onActiveIndexChange","VersionStalenessInfo","css","children","className","data-side","Tail","svg","width","height","viewBox","fill","xmlns","mask","id","style","maskType","maskUnits","x","y","rect","path","d","g"],"mappings":";;;;;;;;;;;;;;;IAegBA,eAAe;eAAfA;;IA6BHC,MAAM;eAANA;;;;;wCA1C0B;sCACF;8BACT;;;;;;;;;;AAWrB,SAASD,gBAAgB,KAMT;IANS,IAAA,EAC9BE,WAAW,EACXC,SAAS,EACTC,cAAc,EACdC,WAAW,EACXC,WAAW,EACU,GANS;IAO9B,qBACE,sBAACC;QAAIC,+BAA6B;;0BAChC,qBAACC;gBAAMC,MAAK;0BAEV,cAAA,qBAACC,8CAAsB;oBACrBT,aAAaA,sBAAAA,cAAe,EAAE;oBAC9BC,WAAWA,oBAAAA,YAAa;oBACxBS,qBAAqBR,yBAAAA,iBAAmB,KAAO;;;YAGlDC,6BACC,qBAACI;gBAAMC,MAAK;0BACV,cAAA,qBAACG,0CAAoB;oBACnBR,aAAaA;oBACbC,aAAaA;;;;;AAMzB;AAEO,MAAML,aAASa,kBAAG;AA8DzB,SAASL,MAAM,KAMd;IANc,IAAA,EACbM,QAAQ,EACRL,OAAO,MAAM,EAId,GANc;IAOb,qBACE,sBAACH;QAAIS,WAAU;QAAsBC,aAAWP;;YAC7CK;0BACD,qBAACG;;;AAGP;AAEA,SAASA;IACP,qBACE,sBAACC;QACCC,OAAM;QACNC,QAAO;QACPC,SAAQ;QACRC,MAAK;QACLC,OAAM;QACNR,WAAU;;0BAEV,sBAACS;gBACCC,IAAG;gBACHC,OAAO;oBACLC,UAAU;gBACZ;gBACAC,WAAU;gBACVC,GAAE;gBACFC,GAAE;gBACFX,OAAM;gBACNC,QAAO;;kCAEP,sBAACI;wBACCC,IAAG;wBACHG,WAAU;wBACVC,GAAE;wBACFC,GAAE;wBACFX,OAAM;wBACNC,QAAO;wBACPE,MAAK;;0CAEL,qBAACS;gCAAKT,MAAK;gCAAQQ,GAAE;gCAAKX,OAAM;gCAAKC,QAAO;;0CAC5C,qBAACY;gCAAKC,GAAE;;;;kCAEV,qBAACD;wBACCC,GAAE;wBACFX,MAAK;;kCAEP,qBAACU;wBACCC,GAAE;wBACFX,MAAK;wBACLE,MAAK;;;;0BAGT,sBAACU;gBAAEV,MAAK;;kCACN,sBAACA;wBACCC,IAAG;wBACHG,WAAU;wBACVC,GAAE;wBACFC,GAAE;wBACFX,OAAM;wBACNC,QAAO;wBACPE,MAAK;;0CAEL,qBAACS;gCAAKT,MAAK;gCAAQO,GAAE;gCAAKC,GAAE;gCAAYX,OAAM;gCAAKC,QAAO;;0CAC1D,qBAACY;gCAAKC,GAAE;;;;kCAEV,qBAACD;wBACCC,GAAE;wBACFX,MAAK;;kCAEP,qBAACU;wBACCC,GAAE;wBACFX,MAAK;wBACLE,MAAK;;;;;;AAKf"}
1
+ {"version":3,"sources":["../../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.tsx"],"sourcesContent":["import type { VersionInfo } from '../../../../../../../../server/dev/parse-version-info'\n\nimport { ErrorOverlayPagination } from '../error-overlay-pagination/error-overlay-pagination'\nimport { VersionStalenessInfo } from '../../version-staleness-info/version-staleness-info'\nimport { noop as css } from '../../../helpers/noop-template'\nimport type { ReadyRuntimeError } from '../../../../../internal/helpers/get-error-by-type'\n\ntype ErrorOverlayNavProps = {\n runtimeErrors?: ReadyRuntimeError[]\n activeIdx?: number\n setActiveIndex?: (index: number) => void\n versionInfo?: VersionInfo\n isTurbopack?: boolean\n}\n\nexport function ErrorOverlayNav({\n runtimeErrors,\n activeIdx,\n setActiveIndex,\n versionInfo,\n isTurbopack,\n}: ErrorOverlayNavProps) {\n return (\n <div data-nextjs-error-overlay-nav>\n <Notch side=\"left\">\n {/* TODO: better passing data instead of nullish coalescing */}\n <ErrorOverlayPagination\n runtimeErrors={runtimeErrors ?? []}\n activeIdx={activeIdx ?? 0}\n onActiveIndexChange={setActiveIndex ?? (() => {})}\n />\n </Notch>\n {versionInfo && (\n <Notch side=\"right\">\n <VersionStalenessInfo\n versionInfo={versionInfo}\n isTurbopack={isTurbopack}\n />\n </Notch>\n )}\n </div>\n )\n}\n\nexport const styles = css`\n [data-nextjs-error-overlay-nav] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n width: 100%;\n\n outline: none;\n translate: 1px 1px;\n max-width: var(--next-dialog-max-width);\n\n .error-overlay-notch {\n --stroke-color: var(--color-gray-400);\n --background-color: var(--color-background-100);\n\n translate: -1px 0;\n width: auto;\n height: 42px;\n padding: 12px;\n background: var(--background-color);\n border: 1px solid var(--stroke-color);\n border-bottom: none;\n position: relative;\n\n &[data-side='left'] {\n padding-right: 0;\n border-radius: var(--next-dialog-radius) 0 0 0;\n\n .error-overlay-notch-tail {\n right: -54px;\n }\n\n > *:not(.error-overlay-notch-tail) {\n margin-right: -10px;\n }\n }\n\n &[data-side='right'] {\n padding-left: 0;\n border-radius: 0 var(--next-dialog-radius) 0 0;\n\n .error-overlay-notch-tail {\n left: -54px;\n transform: rotateY(180deg);\n }\n\n > *:not(.error-overlay-notch-tail) {\n margin-left: -12px;\n }\n }\n\n .error-overlay-notch-tail {\n position: absolute;\n top: -1px;\n pointer-events: none;\n z-index: -1;\n }\n }\n }\n`\n\nfunction Notch({\n children,\n side = 'left',\n}: {\n children: React.ReactNode\n side?: 'left' | 'right'\n}) {\n return (\n <div className=\"error-overlay-notch\" data-side={side}>\n {children}\n <Tail />\n </div>\n )\n}\n\nfunction Tail() {\n return (\n <svg\n width=\"60\"\n height=\"42\"\n viewBox=\"0 0 60 42\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"error-overlay-notch-tail\"\n >\n <mask\n id=\"mask0_2667_14687\"\n style={{\n maskType: 'alpha',\n }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"-1\"\n width=\"60\"\n height=\"43\"\n >\n <mask\n id=\"path-1-outside-1_2667_14687\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"-1\"\n width=\"60\"\n height=\"43\"\n fill=\"black\"\n >\n <rect fill=\"white\" y=\"-1\" width=\"60\" height=\"43\" />\n <path d=\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\" />\n </mask>\n <path\n d=\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\"\n fill=\"white\"\n />\n <path\n d=\"M1 0V-1H0V0L1 0ZM1 41H0V42H1V41ZM34.8889 29.6498L33.9873 30.0823L34.8889 29.6498ZM26.111 11.3501L27.0127 10.9177L26.111 11.3501ZM1 1H8.0783V-1H1V1ZM60 40H1V42H60V40ZM2 41V0L0 0L0 41H2ZM25.2094 11.7826L33.9873 30.0823L35.7906 29.2174L27.0127 10.9177L25.2094 11.7826ZM52.9217 42H60V40H52.9217V42ZM33.9873 30.0823C37.4811 37.3661 44.8433 42 52.9217 42V40C45.6127 40 38.9517 35.8074 35.7906 29.2174L33.9873 30.0823ZM8.0783 1C15.3873 1 22.0483 5.19257 25.2094 11.7826L27.0127 10.9177C23.5188 3.6339 16.1567 -1 8.0783 -1V1Z\"\n fill=\"black\"\n mask=\"url(#path-1-outside-1_2667_14687)\"\n />\n </mask>\n <g mask=\"url(#mask0_2667_14687)\">\n <mask\n id=\"path-3-outside-2_2667_14687\"\n maskUnits=\"userSpaceOnUse\"\n x=\"-1\"\n y=\"0.0244141\"\n width=\"60\"\n height=\"43\"\n fill=\"black\"\n >\n <rect fill=\"white\" x=\"-1\" y=\"0.0244141\" width=\"60\" height=\"43\" />\n <path d=\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\" />\n </mask>\n <path\n d=\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\"\n fill=\"var(--background-color)\"\n />\n <path\n d=\"M0 1.02441L0 0.0244141H-1V1.02441H0ZM0 42.0244H-1V43.0244H0L0 42.0244ZM33.8889 30.6743L32.9873 31.1068L33.8889 30.6743ZM25.111 12.3746L26.0127 11.9421L25.111 12.3746ZM0 2.02441H7.0783V0.0244141H0L0 2.02441ZM59 41.0244H0L0 43.0244H59V41.0244ZM1 42.0244L1 1.02441H-1L-1 42.0244H1ZM24.2094 12.8071L32.9873 31.1068L34.7906 30.2418L26.0127 11.9421L24.2094 12.8071ZM51.9217 43.0244H59V41.0244H51.9217V43.0244ZM32.9873 31.1068C36.4811 38.3905 43.8433 43.0244 51.9217 43.0244V41.0244C44.6127 41.0244 37.9517 36.8318 34.7906 30.2418L32.9873 31.1068ZM7.0783 2.02441C14.3873 2.02441 21.0483 6.21699 24.2094 12.8071L26.0127 11.9421C22.5188 4.65831 15.1567 0.0244141 7.0783 0.0244141V2.02441Z\"\n fill=\"var(--stroke-color)\"\n mask=\"url(#path-3-outside-2_2667_14687)\"\n />\n </g>\n </svg>\n )\n}\n"],"names":["ErrorOverlayNav","styles","runtimeErrors","activeIdx","setActiveIndex","versionInfo","isTurbopack","div","data-nextjs-error-overlay-nav","Notch","side","ErrorOverlayPagination","onActiveIndexChange","VersionStalenessInfo","css","children","className","data-side","Tail","svg","width","height","viewBox","fill","xmlns","mask","id","style","maskType","maskUnits","x","y","rect","path","d","g"],"mappings":";;;;;;;;;;;;;;;IAegBA,eAAe;eAAfA;;IA6BHC,MAAM;eAANA;;;;;wCA1C0B;sCACF;8BACT;;;;;;;;;;AAWrB,SAASD,gBAAgB,KAMT;IANS,IAAA,EAC9BE,aAAa,EACbC,SAAS,EACTC,cAAc,EACdC,WAAW,EACXC,WAAW,EACU,GANS;IAO9B,qBACE,sBAACC;QAAIC,+BAA6B;;0BAChC,qBAACC;gBAAMC,MAAK;0BAEV,cAAA,qBAACC,8CAAsB;oBACrBT,eAAeA,wBAAAA,gBAAiB,EAAE;oBAClCC,WAAWA,oBAAAA,YAAa;oBACxBS,qBAAqBR,yBAAAA,iBAAmB,KAAO;;;YAGlDC,6BACC,qBAACI;gBAAMC,MAAK;0BACV,cAAA,qBAACG,0CAAoB;oBACnBR,aAAaA;oBACbC,aAAaA;;;;;AAMzB;AAEO,MAAML,aAASa,kBAAG;AA8DzB,SAASL,MAAM,KAMd;IANc,IAAA,EACbM,QAAQ,EACRL,OAAO,MAAM,EAId,GANc;IAOb,qBACE,sBAACH;QAAIS,WAAU;QAAsBC,aAAWP;;YAC7CK;0BACD,qBAACG;;;AAGP;AAEA,SAASA;IACP,qBACE,sBAACC;QACCC,OAAM;QACNC,QAAO;QACPC,SAAQ;QACRC,MAAK;QACLC,OAAM;QACNR,WAAU;;0BAEV,sBAACS;gBACCC,IAAG;gBACHC,OAAO;oBACLC,UAAU;gBACZ;gBACAC,WAAU;gBACVC,GAAE;gBACFC,GAAE;gBACFX,OAAM;gBACNC,QAAO;;kCAEP,sBAACI;wBACCC,IAAG;wBACHG,WAAU;wBACVC,GAAE;wBACFC,GAAE;wBACFX,OAAM;wBACNC,QAAO;wBACPE,MAAK;;0CAEL,qBAACS;gCAAKT,MAAK;gCAAQQ,GAAE;gCAAKX,OAAM;gCAAKC,QAAO;;0CAC5C,qBAACY;gCAAKC,GAAE;;;;kCAEV,qBAACD;wBACCC,GAAE;wBACFX,MAAK;;kCAEP,qBAACU;wBACCC,GAAE;wBACFX,MAAK;wBACLE,MAAK;;;;0BAGT,sBAACU;gBAAEV,MAAK;;kCACN,sBAACA;wBACCC,IAAG;wBACHG,WAAU;wBACVC,GAAE;wBACFC,GAAE;wBACFX,OAAM;wBACNC,QAAO;wBACPE,MAAK;;0CAEL,qBAACS;gCAAKT,MAAK;gCAAQO,GAAE;gCAAKC,GAAE;gCAAYX,OAAM;gCAAKC,QAAO;;0CAC1D,qBAACY;gCAAKC,GAAE;;;;kCAEV,qBAACD;wBACCC,GAAE;wBACFX,MAAK;;kCAEP,qBAACU;wBACCC,GAAE;wBACFX,MAAK;wBACLE,MAAK;;;;;;AAKf"}
@@ -35,7 +35,7 @@ const meta = {
35
35
  const _default = meta;
36
36
  const Default = {
37
37
  args: {
38
- readyErrors: [
38
+ runtimeErrors: [
39
39
  {
40
40
  id: 0,
41
41
  runtime: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { ErrorOverlayNav } from './error-overlay-nav'\nimport { withShadowPortal } from '../../../storybook/with-shadow-portal'\n\nconst meta: Meta<typeof ErrorOverlayNav> = {\n component: ErrorOverlayNav,\n parameters: {\n layout: 'fullscreen',\n },\n decorators: [withShadowPortal],\n}\n\nexport default meta\ntype Story = StoryObj<typeof ErrorOverlayNav>\n\nexport const Default: Story = {\n args: {\n readyErrors: [\n {\n id: 0,\n runtime: true,\n error: new Error('First error message'),\n frames: () => Promise.resolve([]),\n },\n {\n id: 1,\n runtime: true,\n error: new Error('Second error message'),\n frames: () => Promise.resolve([]),\n },\n {\n id: 2,\n runtime: true,\n error: new Error('Third error message'),\n frames: () => Promise.resolve([]),\n },\n ],\n activeIdx: 1,\n versionInfo: {\n installed: '15.0.0',\n staleness: 'stale-major',\n },\n },\n parameters: {\n docs: {\n story: { inline: true },\n },\n },\n decorators: [\n (Story) => (\n // Offset the translateY applied to the floating header.\n <div style={{ paddingTop: 'var(--size-10_5)' }}>\n <Story />\n </div>\n ),\n ],\n}\n"],"names":["Default","meta","component","ErrorOverlayNav","parameters","layout","decorators","withShadowPortal","args","readyErrors","id","runtime","error","Error","frames","Promise","resolve","activeIdx","versionInfo","installed","staleness","docs","story","inline","Story","div","style","paddingTop"],"mappings":";;;;;;;;;;;;;;;IAeaA,OAAO;eAAPA;;IAHb,OAAmB;eAAnB;;;;iCAXgC;kCACC;AAEjC,MAAMC,OAAqC;IACzCC,WAAWC,gCAAe;IAC1BC,YAAY;QACVC,QAAQ;IACV;IACAC,YAAY;QAACC,kCAAgB;KAAC;AAChC;MAEA,WAAeN;AAGR,MAAMD,UAAiB;IAC5BQ,MAAM;QACJC,aAAa;YACX;gBACEC,IAAI;gBACJC,SAAS;gBACTC,OAAO,IAAIC,MAAM;gBACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;YAClC;YACA;gBACEN,IAAI;gBACJC,SAAS;gBACTC,OAAO,IAAIC,MAAM;gBACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;YAClC;YACA;gBACEN,IAAI;gBACJC,SAAS;gBACTC,OAAO,IAAIC,MAAM;gBACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;YAClC;SACD;QACDC,WAAW;QACXC,aAAa;YACXC,WAAW;YACXC,WAAW;QACb;IACF;IACAhB,YAAY;QACViB,MAAM;YACJC,OAAO;gBAAEC,QAAQ;YAAK;QACxB;IACF;IACAjB,YAAY;QACV,CAACkB,QACC,wDAAwD;0BACxD,qBAACC;gBAAIC,OAAO;oBAAEC,YAAY;gBAAmB;0BAC3C,cAAA,qBAACH;;KAGN;AACH"}
1
+ {"version":3,"sources":["../../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-nav/error-overlay-nav.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { ErrorOverlayNav } from './error-overlay-nav'\nimport { withShadowPortal } from '../../../storybook/with-shadow-portal'\n\nconst meta: Meta<typeof ErrorOverlayNav> = {\n component: ErrorOverlayNav,\n parameters: {\n layout: 'fullscreen',\n },\n decorators: [withShadowPortal],\n}\n\nexport default meta\ntype Story = StoryObj<typeof ErrorOverlayNav>\n\nexport const Default: Story = {\n args: {\n runtimeErrors: [\n {\n id: 0,\n runtime: true,\n error: new Error('First error message'),\n frames: () => Promise.resolve([]),\n },\n {\n id: 1,\n runtime: true,\n error: new Error('Second error message'),\n frames: () => Promise.resolve([]),\n },\n {\n id: 2,\n runtime: true,\n error: new Error('Third error message'),\n frames: () => Promise.resolve([]),\n },\n ],\n activeIdx: 1,\n versionInfo: {\n installed: '15.0.0',\n staleness: 'stale-major',\n },\n },\n parameters: {\n docs: {\n story: { inline: true },\n },\n },\n decorators: [\n (Story) => (\n // Offset the translateY applied to the floating header.\n <div style={{ paddingTop: 'var(--size-10_5)' }}>\n <Story />\n </div>\n ),\n ],\n}\n"],"names":["Default","meta","component","ErrorOverlayNav","parameters","layout","decorators","withShadowPortal","args","runtimeErrors","id","runtime","error","Error","frames","Promise","resolve","activeIdx","versionInfo","installed","staleness","docs","story","inline","Story","div","style","paddingTop"],"mappings":";;;;;;;;;;;;;;;IAeaA,OAAO;eAAPA;;IAHb,OAAmB;eAAnB;;;;iCAXgC;kCACC;AAEjC,MAAMC,OAAqC;IACzCC,WAAWC,gCAAe;IAC1BC,YAAY;QACVC,QAAQ;IACV;IACAC,YAAY;QAACC,kCAAgB;KAAC;AAChC;MAEA,WAAeN;AAGR,MAAMD,UAAiB;IAC5BQ,MAAM;QACJC,eAAe;YACb;gBACEC,IAAI;gBACJC,SAAS;gBACTC,OAAO,IAAIC,MAAM;gBACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;YAClC;YACA;gBACEN,IAAI;gBACJC,SAAS;gBACTC,OAAO,IAAIC,MAAM;gBACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;YAClC;YACA;gBACEN,IAAI;gBACJC,SAAS;gBACTC,OAAO,IAAIC,MAAM;gBACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;YAClC;SACD;QACDC,WAAW;QACXC,aAAa;YACXC,WAAW;YACXC,WAAW;QACb;IACF;IACAhB,YAAY;QACViB,MAAM;YACJC,OAAO;gBAAEC,QAAQ;YAAK;QACxB;IACF;IACAjB,YAAY;QACV,CAACkB,QACC,wDAAwD;0BACxD,qBAACC;gBAAIC,OAAO;oBAAEC,YAAY;gBAAmB;0BAC3C,cAAA,qBAACH;;KAGN;AACH"}
@@ -1,9 +1,9 @@
1
1
  import type { ReadyRuntimeError } from '../../../../../internal/helpers/get-error-by-type';
2
2
  type ErrorPaginationProps = {
3
- readyErrors: ReadyRuntimeError[];
3
+ runtimeErrors: ReadyRuntimeError[];
4
4
  activeIdx: number;
5
5
  onActiveIndexChange: (index: number) => void;
6
6
  };
7
- export declare function ErrorOverlayPagination({ readyErrors, activeIdx, onActiveIndexChange, }: ErrorPaginationProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function ErrorOverlayPagination({ runtimeErrors, activeIdx, onActiveIndexChange, }: ErrorPaginationProps): import("react/jsx-runtime").JSX.Element;
8
8
  export declare const styles: string;
9
9
  export {};
@@ -36,7 +36,7 @@ function _templateObject() {
36
36
  return data;
37
37
  }
38
38
  function ErrorOverlayPagination(param) {
39
- let { readyErrors, activeIdx, onActiveIndexChange } = param;
39
+ let { runtimeErrors, activeIdx, onActiveIndexChange } = param;
40
40
  const handlePrevious = (0, _react.useCallback)(()=>(0, _react.startTransition)(()=>{
41
41
  if (activeIdx > 0) {
42
42
  onActiveIndexChange(Math.max(0, activeIdx - 1));
@@ -46,12 +46,12 @@ function ErrorOverlayPagination(param) {
46
46
  onActiveIndexChange
47
47
  ]);
48
48
  const handleNext = (0, _react.useCallback)(()=>(0, _react.startTransition)(()=>{
49
- if (activeIdx < readyErrors.length - 1) {
50
- onActiveIndexChange(Math.max(0, Math.min(readyErrors.length - 1, activeIdx + 1)));
49
+ if (activeIdx < runtimeErrors.length - 1) {
50
+ onActiveIndexChange(Math.max(0, Math.min(runtimeErrors.length - 1, activeIdx + 1)));
51
51
  }
52
52
  }), [
53
53
  activeIdx,
54
- readyErrors.length,
54
+ runtimeErrors.length,
55
55
  onActiveIndexChange
56
56
  ]);
57
57
  const buttonLeft = (0, _react.useRef)(null);
@@ -106,7 +106,7 @@ function ErrorOverlayPagination(param) {
106
106
  if (buttonLeft.current && a === buttonLeft.current) {
107
107
  buttonLeft.current.blur();
108
108
  }
109
- } else if (activeIdx === readyErrors.length - 1) {
109
+ } else if (activeIdx === runtimeErrors.length - 1) {
110
110
  if (buttonRight.current && a === buttonRight.current) {
111
111
  buttonRight.current.blur();
112
112
  }
@@ -115,7 +115,7 @@ function ErrorOverlayPagination(param) {
115
115
  }, [
116
116
  nav,
117
117
  activeIdx,
118
- readyErrors.length
118
+ runtimeErrors.length
119
119
  ]);
120
120
  return /*#__PURE__*/ (0, _jsxruntime.jsxs)("nav", {
121
121
  className: "error-overlay-pagination dialog-exclude-closing-from-outside-click",
@@ -146,7 +146,7 @@ function ErrorOverlayPagination(param) {
146
146
  }),
147
147
  /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
148
148
  "data-nextjs-dialog-header-total-count": true,
149
- children: readyErrors.length || 1
149
+ children: runtimeErrors.length || 1
150
150
  })
151
151
  ]
152
152
  }),
@@ -154,8 +154,8 @@ function ErrorOverlayPagination(param) {
154
154
  ref: buttonRight,
155
155
  type: "button",
156
156
  // If no errors or the last error is active, disable the button.
157
- disabled: activeIdx >= readyErrors.length - 1,
158
- "aria-disabled": activeIdx >= readyErrors.length - 1,
157
+ disabled: activeIdx >= runtimeErrors.length - 1,
158
+ "aria-disabled": activeIdx >= runtimeErrors.length - 1,
159
159
  onClick: handleNext,
160
160
  "data-nextjs-dialog-error-next": true,
161
161
  className: "error-overlay-pagination-button",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.tsx"],"sourcesContent":["import {\n startTransition,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { noop as css } from '../../../helpers/noop-template'\nimport { LeftArrow } from '../../../icons/left-arrow'\nimport { RightArrow } from '../../../icons/right-arrow'\nimport type { ReadyRuntimeError } from '../../../../../internal/helpers/get-error-by-type'\n\ntype ErrorPaginationProps = {\n readyErrors: ReadyRuntimeError[]\n activeIdx: number\n onActiveIndexChange: (index: number) => void\n}\n\nexport function ErrorOverlayPagination({\n readyErrors,\n activeIdx,\n onActiveIndexChange,\n}: ErrorPaginationProps) {\n const handlePrevious = useCallback(\n () =>\n startTransition(() => {\n if (activeIdx > 0) {\n onActiveIndexChange(Math.max(0, activeIdx - 1))\n }\n }),\n [activeIdx, onActiveIndexChange]\n )\n\n const handleNext = useCallback(\n () =>\n startTransition(() => {\n if (activeIdx < readyErrors.length - 1) {\n onActiveIndexChange(\n Math.max(0, Math.min(readyErrors.length - 1, activeIdx + 1))\n )\n }\n }),\n [activeIdx, readyErrors.length, onActiveIndexChange]\n )\n\n const buttonLeft = useRef<HTMLButtonElement | null>(null)\n const buttonRight = useRef<HTMLButtonElement | null>(null)\n\n const [nav, setNav] = useState<HTMLElement | null>(null)\n const onNav = useCallback((el: HTMLElement) => {\n setNav(el)\n }, [])\n\n useEffect(() => {\n if (nav == null) {\n return\n }\n\n const root = nav.getRootNode()\n const d = self.document\n\n function handler(e: KeyboardEvent) {\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n e.stopPropagation()\n handlePrevious && handlePrevious()\n } else if (e.key === 'ArrowRight') {\n e.preventDefault()\n e.stopPropagation()\n handleNext && handleNext()\n }\n }\n\n root.addEventListener('keydown', handler as EventListener)\n if (root !== d) {\n d.addEventListener('keydown', handler)\n }\n return function () {\n root.removeEventListener('keydown', handler as EventListener)\n if (root !== d) {\n d.removeEventListener('keydown', handler)\n }\n }\n }, [nav, handleNext, handlePrevious])\n\n // Unlock focus for browsers like Firefox, that break all user focus if the\n // currently focused item becomes disabled.\n useEffect(() => {\n if (nav == null) {\n return\n }\n\n const root = nav.getRootNode()\n // Always true, but we do this for TypeScript:\n if (root instanceof ShadowRoot) {\n const a = root.activeElement\n\n if (activeIdx === 0) {\n if (buttonLeft.current && a === buttonLeft.current) {\n buttonLeft.current.blur()\n }\n } else if (activeIdx === readyErrors.length - 1) {\n if (buttonRight.current && a === buttonRight.current) {\n buttonRight.current.blur()\n }\n }\n }\n }, [nav, activeIdx, readyErrors.length])\n\n return (\n <nav\n className=\"error-overlay-pagination dialog-exclude-closing-from-outside-click\"\n ref={onNav}\n >\n <button\n ref={buttonLeft}\n type=\"button\"\n disabled={activeIdx === 0}\n aria-disabled={activeIdx === 0}\n onClick={handlePrevious}\n data-nextjs-dialog-error-previous\n className=\"error-overlay-pagination-button\"\n >\n <LeftArrow\n title=\"previous\"\n className=\"error-overlay-pagination-button-icon\"\n />\n </button>\n <div className=\"error-overlay-pagination-count\">\n <span data-nextjs-dialog-error-index={activeIdx}>{activeIdx + 1}/</span>\n <span data-nextjs-dialog-header-total-count>\n {/* Display 1 out of 1 if there are no errors (e.g. for build errors). */}\n {readyErrors.length || 1}\n </span>\n </div>\n <button\n ref={buttonRight}\n type=\"button\"\n // If no errors or the last error is active, disable the button.\n disabled={activeIdx >= readyErrors.length - 1}\n aria-disabled={activeIdx >= readyErrors.length - 1}\n onClick={handleNext}\n data-nextjs-dialog-error-next\n className=\"error-overlay-pagination-button\"\n >\n <RightArrow\n title=\"next\"\n className=\"error-overlay-pagination-button-icon\"\n />\n </button>\n </nav>\n )\n}\n\nexport const styles = css`\n .error-overlay-pagination {\n -webkit-font-smoothing: antialiased;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 8px;\n width: fit-content;\n }\n\n .error-overlay-pagination-count {\n color: var(--color-gray-900);\n text-align: center;\n font-size: var(--size-font-small);\n font-weight: 500;\n line-height: 16px;\n font-variant-numeric: tabular-nums;\n }\n\n .error-overlay-pagination-button {\n display: flex;\n justify-content: center;\n align-items: center;\n\n width: 24px;\n height: 24px;\n background: var(--color-gray-300);\n flex-shrink: 0;\n\n border: none;\n border-radius: var(--rounded-full);\n\n &:focus-visible {\n outline: var(--focus-ring);\n }\n\n &:not(:disabled):active {\n background: var(--color-gray-500);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n\n .error-overlay-pagination-button-icon {\n color: var(--color-gray-1000);\n }\n`\n"],"names":["ErrorOverlayPagination","styles","readyErrors","activeIdx","onActiveIndexChange","handlePrevious","useCallback","startTransition","Math","max","handleNext","length","min","buttonLeft","useRef","buttonRight","nav","setNav","useState","onNav","el","useEffect","root","getRootNode","d","self","document","handler","e","key","preventDefault","stopPropagation","addEventListener","removeEventListener","ShadowRoot","a","activeElement","current","blur","className","ref","button","type","disabled","aria-disabled","onClick","data-nextjs-dialog-error-previous","LeftArrow","title","div","span","data-nextjs-dialog-error-index","data-nextjs-dialog-header-total-count","data-nextjs-dialog-error-next","RightArrow","css"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.tsx"],"sourcesContent":["import {\n startTransition,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { noop as css } from '../../../helpers/noop-template'\nimport { LeftArrow } from '../../../icons/left-arrow'\nimport { RightArrow } from '../../../icons/right-arrow'\nimport type { ReadyRuntimeError } from '../../../../../internal/helpers/get-error-by-type'\n\ntype ErrorPaginationProps = {\n runtimeErrors: ReadyRuntimeError[]\n activeIdx: number\n onActiveIndexChange: (index: number) => void\n}\n\nexport function ErrorOverlayPagination({\n runtimeErrors,\n activeIdx,\n onActiveIndexChange,\n}: ErrorPaginationProps) {\n const handlePrevious = useCallback(\n () =>\n startTransition(() => {\n if (activeIdx > 0) {\n onActiveIndexChange(Math.max(0, activeIdx - 1))\n }\n }),\n [activeIdx, onActiveIndexChange]\n )\n\n const handleNext = useCallback(\n () =>\n startTransition(() => {\n if (activeIdx < runtimeErrors.length - 1) {\n onActiveIndexChange(\n Math.max(0, Math.min(runtimeErrors.length - 1, activeIdx + 1))\n )\n }\n }),\n [activeIdx, runtimeErrors.length, onActiveIndexChange]\n )\n\n const buttonLeft = useRef<HTMLButtonElement | null>(null)\n const buttonRight = useRef<HTMLButtonElement | null>(null)\n\n const [nav, setNav] = useState<HTMLElement | null>(null)\n const onNav = useCallback((el: HTMLElement) => {\n setNav(el)\n }, [])\n\n useEffect(() => {\n if (nav == null) {\n return\n }\n\n const root = nav.getRootNode()\n const d = self.document\n\n function handler(e: KeyboardEvent) {\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n e.stopPropagation()\n handlePrevious && handlePrevious()\n } else if (e.key === 'ArrowRight') {\n e.preventDefault()\n e.stopPropagation()\n handleNext && handleNext()\n }\n }\n\n root.addEventListener('keydown', handler as EventListener)\n if (root !== d) {\n d.addEventListener('keydown', handler)\n }\n return function () {\n root.removeEventListener('keydown', handler as EventListener)\n if (root !== d) {\n d.removeEventListener('keydown', handler)\n }\n }\n }, [nav, handleNext, handlePrevious])\n\n // Unlock focus for browsers like Firefox, that break all user focus if the\n // currently focused item becomes disabled.\n useEffect(() => {\n if (nav == null) {\n return\n }\n\n const root = nav.getRootNode()\n // Always true, but we do this for TypeScript:\n if (root instanceof ShadowRoot) {\n const a = root.activeElement\n\n if (activeIdx === 0) {\n if (buttonLeft.current && a === buttonLeft.current) {\n buttonLeft.current.blur()\n }\n } else if (activeIdx === runtimeErrors.length - 1) {\n if (buttonRight.current && a === buttonRight.current) {\n buttonRight.current.blur()\n }\n }\n }\n }, [nav, activeIdx, runtimeErrors.length])\n\n return (\n <nav\n className=\"error-overlay-pagination dialog-exclude-closing-from-outside-click\"\n ref={onNav}\n >\n <button\n ref={buttonLeft}\n type=\"button\"\n disabled={activeIdx === 0}\n aria-disabled={activeIdx === 0}\n onClick={handlePrevious}\n data-nextjs-dialog-error-previous\n className=\"error-overlay-pagination-button\"\n >\n <LeftArrow\n title=\"previous\"\n className=\"error-overlay-pagination-button-icon\"\n />\n </button>\n <div className=\"error-overlay-pagination-count\">\n <span data-nextjs-dialog-error-index={activeIdx}>{activeIdx + 1}/</span>\n <span data-nextjs-dialog-header-total-count>\n {/* Display 1 out of 1 if there are no errors (e.g. for build errors). */}\n {runtimeErrors.length || 1}\n </span>\n </div>\n <button\n ref={buttonRight}\n type=\"button\"\n // If no errors or the last error is active, disable the button.\n disabled={activeIdx >= runtimeErrors.length - 1}\n aria-disabled={activeIdx >= runtimeErrors.length - 1}\n onClick={handleNext}\n data-nextjs-dialog-error-next\n className=\"error-overlay-pagination-button\"\n >\n <RightArrow\n title=\"next\"\n className=\"error-overlay-pagination-button-icon\"\n />\n </button>\n </nav>\n )\n}\n\nexport const styles = css`\n .error-overlay-pagination {\n -webkit-font-smoothing: antialiased;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 8px;\n width: fit-content;\n }\n\n .error-overlay-pagination-count {\n color: var(--color-gray-900);\n text-align: center;\n font-size: var(--size-font-small);\n font-weight: 500;\n line-height: 16px;\n font-variant-numeric: tabular-nums;\n }\n\n .error-overlay-pagination-button {\n display: flex;\n justify-content: center;\n align-items: center;\n\n width: 24px;\n height: 24px;\n background: var(--color-gray-300);\n flex-shrink: 0;\n\n border: none;\n border-radius: var(--rounded-full);\n\n &:focus-visible {\n outline: var(--focus-ring);\n }\n\n &:not(:disabled):active {\n background: var(--color-gray-500);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n\n .error-overlay-pagination-button-icon {\n color: var(--color-gray-1000);\n }\n`\n"],"names":["ErrorOverlayPagination","styles","runtimeErrors","activeIdx","onActiveIndexChange","handlePrevious","useCallback","startTransition","Math","max","handleNext","length","min","buttonLeft","useRef","buttonRight","nav","setNav","useState","onNav","el","useEffect","root","getRootNode","d","self","document","handler","e","key","preventDefault","stopPropagation","addEventListener","removeEventListener","ShadowRoot","a","activeElement","current","blur","className","ref","button","type","disabled","aria-disabled","onClick","data-nextjs-dialog-error-previous","LeftArrow","title","div","span","data-nextjs-dialog-error-index","data-nextjs-dialog-header-total-count","data-nextjs-dialog-error-next","RightArrow","css"],"mappings":"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"}
@@ -72,7 +72,7 @@ const SingleError = {
72
72
  const [activeIdx, setActiveIdx] = (0, _react.useState)(0);
73
73
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_erroroverlaypagination.ErrorOverlayPagination, {
74
74
  activeIdx: activeIdx,
75
- readyErrors: [
75
+ runtimeErrors: [
76
76
  mockErrors[0]
77
77
  ],
78
78
  onActiveIndexChange: setActiveIdx
@@ -84,7 +84,7 @@ const MultipleErrors = {
84
84
  const [activeIdx, setActiveIdx] = (0, _react.useState)(1);
85
85
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_erroroverlaypagination.ErrorOverlayPagination, {
86
86
  activeIdx: activeIdx,
87
- readyErrors: mockErrors,
87
+ runtimeErrors: mockErrors,
88
88
  onActiveIndexChange: setActiveIdx
89
89
  });
90
90
  }
@@ -94,7 +94,7 @@ const LastError = {
94
94
  const [activeIdx, setActiveIdx] = (0, _react.useState)(2);
95
95
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_erroroverlaypagination.ErrorOverlayPagination, {
96
96
  activeIdx: activeIdx,
97
- readyErrors: mockErrors,
97
+ runtimeErrors: mockErrors,
98
98
  onActiveIndexChange: setActiveIdx
99
99
  });
100
100
  }
@@ -104,7 +104,7 @@ const VeryManyErrors = {
104
104
  const [activeIdx, setActiveIdx] = (0, _react.useState)(1233);
105
105
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_erroroverlaypagination.ErrorOverlayPagination, {
106
106
  activeIdx: activeIdx,
107
- readyErrors: Array(780).fill(mockErrors).flat(),
107
+ runtimeErrors: Array(780).fill(mockErrors).flat(),
108
108
  onActiveIndexChange: setActiveIdx
109
109
  });
110
110
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { ErrorOverlayPagination } from './error-overlay-pagination'\nimport { withShadowPortal } from '../../../storybook/with-shadow-portal'\nimport { useState } from 'react'\n\nconst meta: Meta<typeof ErrorOverlayPagination> = {\n component: ErrorOverlayPagination,\n parameters: {\n layout: 'centered',\n },\n decorators: [withShadowPortal],\n}\n\nexport default meta\ntype Story = StoryObj<typeof ErrorOverlayPagination>\n\n// Mock errors for stories\nconst mockErrors = [\n {\n id: 1,\n runtime: true as const,\n error: new Error('First error'),\n frames: () => Promise.resolve([]),\n },\n {\n id: 2,\n runtime: true as const,\n error: new Error('Second error'),\n frames: () => Promise.resolve([]),\n },\n {\n id: 3,\n runtime: true as const,\n error: new Error('Third error'),\n frames: () => Promise.resolve([]),\n },\n]\n\nexport const SingleError: Story = {\n render: function ErrorOverlayPaginationStory() {\n const [activeIdx, setActiveIdx] = useState(0)\n return (\n <ErrorOverlayPagination\n activeIdx={activeIdx}\n readyErrors={[mockErrors[0]]}\n onActiveIndexChange={setActiveIdx}\n />\n )\n },\n}\n\nexport const MultipleErrors: Story = {\n render: function ErrorOverlayPaginationStory() {\n const [activeIdx, setActiveIdx] = useState(1)\n return (\n <ErrorOverlayPagination\n activeIdx={activeIdx}\n readyErrors={mockErrors}\n onActiveIndexChange={setActiveIdx}\n />\n )\n },\n}\n\nexport const LastError: Story = {\n render: function ErrorOverlayPaginationStory() {\n const [activeIdx, setActiveIdx] = useState(2)\n return (\n <ErrorOverlayPagination\n activeIdx={activeIdx}\n readyErrors={mockErrors}\n onActiveIndexChange={setActiveIdx}\n />\n )\n },\n}\n\nexport const VeryManyErrors: Story = {\n render: function ErrorOverlayPaginationStory() {\n const [activeIdx, setActiveIdx] = useState(1233)\n return (\n <ErrorOverlayPagination\n activeIdx={activeIdx}\n readyErrors={Array(780).fill(mockErrors).flat()}\n onActiveIndexChange={setActiveIdx}\n />\n )\n },\n}\n"],"names":["LastError","MultipleErrors","SingleError","VeryManyErrors","meta","component","ErrorOverlayPagination","parameters","layout","decorators","withShadowPortal","mockErrors","id","runtime","error","Error","frames","Promise","resolve","render","ErrorOverlayPaginationStory","activeIdx","setActiveIdx","useState","readyErrors","onActiveIndexChange","Array","fill","flat"],"mappings":";;;;;;;;;;;;;;;;;;IAgEaA,SAAS;eAATA;;IAbAC,cAAc;eAAdA;;IAbAC,WAAW;eAAXA;;IAuCAC,cAAc;eAAdA;;IAhEb,OAAmB;eAAnB;;;;wCAZuC;kCACN;uBACR;AAEzB,MAAMC,OAA4C;IAChDC,WAAWC,8CAAsB;IACjCC,YAAY;QACVC,QAAQ;IACV;IACAC,YAAY;QAACC,kCAAgB;KAAC;AAChC;MAEA,WAAeN;AAGf,0BAA0B;AAC1B,MAAMO,aAAa;IACjB;QACEC,IAAI;QACJC,SAAS;QACTC,OAAO,IAAIC,MAAM;QACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;IAClC;IACA;QACEN,IAAI;QACJC,SAAS;QACTC,OAAO,IAAIC,MAAM;QACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;IAClC;IACA;QACEN,IAAI;QACJC,SAAS;QACTC,OAAO,IAAIC,MAAM;QACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;IAClC;CACD;AAEM,MAAMhB,cAAqB;IAChCiB,QAAQ,SAASC;QACf,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,eAAQ,EAAC;QAC3C,qBACE,qBAACjB,8CAAsB;YACrBe,WAAWA;YACXG,aAAa;gBAACb,UAAU,CAAC,EAAE;aAAC;YAC5Bc,qBAAqBH;;IAG3B;AACF;AAEO,MAAMrB,iBAAwB;IACnCkB,QAAQ,SAASC;QACf,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,eAAQ,EAAC;QAC3C,qBACE,qBAACjB,8CAAsB;YACrBe,WAAWA;YACXG,aAAab;YACbc,qBAAqBH;;IAG3B;AACF;AAEO,MAAMtB,YAAmB;IAC9BmB,QAAQ,SAASC;QACf,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,eAAQ,EAAC;QAC3C,qBACE,qBAACjB,8CAAsB;YACrBe,WAAWA;YACXG,aAAab;YACbc,qBAAqBH;;IAG3B;AACF;AAEO,MAAMnB,iBAAwB;IACnCgB,QAAQ,SAASC;QACf,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,eAAQ,EAAC;QAC3C,qBACE,qBAACjB,8CAAsB;YACrBe,WAAWA;YACXG,aAAaE,MAAM,KAAKC,IAAI,CAAChB,YAAYiB,IAAI;YAC7CH,qBAAqBH;;IAG3B;AACF"}
1
+ {"version":3,"sources":["../../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/errors/error-overlay-pagination/error-overlay-pagination.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { ErrorOverlayPagination } from './error-overlay-pagination'\nimport { withShadowPortal } from '../../../storybook/with-shadow-portal'\nimport { useState } from 'react'\n\nconst meta: Meta<typeof ErrorOverlayPagination> = {\n component: ErrorOverlayPagination,\n parameters: {\n layout: 'centered',\n },\n decorators: [withShadowPortal],\n}\n\nexport default meta\ntype Story = StoryObj<typeof ErrorOverlayPagination>\n\n// Mock errors for stories\nconst mockErrors = [\n {\n id: 1,\n runtime: true as const,\n error: new Error('First error'),\n frames: () => Promise.resolve([]),\n },\n {\n id: 2,\n runtime: true as const,\n error: new Error('Second error'),\n frames: () => Promise.resolve([]),\n },\n {\n id: 3,\n runtime: true as const,\n error: new Error('Third error'),\n frames: () => Promise.resolve([]),\n },\n]\n\nexport const SingleError: Story = {\n render: function ErrorOverlayPaginationStory() {\n const [activeIdx, setActiveIdx] = useState(0)\n return (\n <ErrorOverlayPagination\n activeIdx={activeIdx}\n runtimeErrors={[mockErrors[0]]}\n onActiveIndexChange={setActiveIdx}\n />\n )\n },\n}\n\nexport const MultipleErrors: Story = {\n render: function ErrorOverlayPaginationStory() {\n const [activeIdx, setActiveIdx] = useState(1)\n return (\n <ErrorOverlayPagination\n activeIdx={activeIdx}\n runtimeErrors={mockErrors}\n onActiveIndexChange={setActiveIdx}\n />\n )\n },\n}\n\nexport const LastError: Story = {\n render: function ErrorOverlayPaginationStory() {\n const [activeIdx, setActiveIdx] = useState(2)\n return (\n <ErrorOverlayPagination\n activeIdx={activeIdx}\n runtimeErrors={mockErrors}\n onActiveIndexChange={setActiveIdx}\n />\n )\n },\n}\n\nexport const VeryManyErrors: Story = {\n render: function ErrorOverlayPaginationStory() {\n const [activeIdx, setActiveIdx] = useState(1233)\n return (\n <ErrorOverlayPagination\n activeIdx={activeIdx}\n runtimeErrors={Array(780).fill(mockErrors).flat()}\n onActiveIndexChange={setActiveIdx}\n />\n )\n },\n}\n"],"names":["LastError","MultipleErrors","SingleError","VeryManyErrors","meta","component","ErrorOverlayPagination","parameters","layout","decorators","withShadowPortal","mockErrors","id","runtime","error","Error","frames","Promise","resolve","render","ErrorOverlayPaginationStory","activeIdx","setActiveIdx","useState","runtimeErrors","onActiveIndexChange","Array","fill","flat"],"mappings":";;;;;;;;;;;;;;;;;;IAgEaA,SAAS;eAATA;;IAbAC,cAAc;eAAdA;;IAbAC,WAAW;eAAXA;;IAuCAC,cAAc;eAAdA;;IAhEb,OAAmB;eAAnB;;;;wCAZuC;kCACN;uBACR;AAEzB,MAAMC,OAA4C;IAChDC,WAAWC,8CAAsB;IACjCC,YAAY;QACVC,QAAQ;IACV;IACAC,YAAY;QAACC,kCAAgB;KAAC;AAChC;MAEA,WAAeN;AAGf,0BAA0B;AAC1B,MAAMO,aAAa;IACjB;QACEC,IAAI;QACJC,SAAS;QACTC,OAAO,IAAIC,MAAM;QACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;IAClC;IACA;QACEN,IAAI;QACJC,SAAS;QACTC,OAAO,IAAIC,MAAM;QACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;IAClC;IACA;QACEN,IAAI;QACJC,SAAS;QACTC,OAAO,IAAIC,MAAM;QACjBC,QAAQ,IAAMC,QAAQC,OAAO,CAAC,EAAE;IAClC;CACD;AAEM,MAAMhB,cAAqB;IAChCiB,QAAQ,SAASC;QACf,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,eAAQ,EAAC;QAC3C,qBACE,qBAACjB,8CAAsB;YACrBe,WAAWA;YACXG,eAAe;gBAACb,UAAU,CAAC,EAAE;aAAC;YAC9Bc,qBAAqBH;;IAG3B;AACF;AAEO,MAAMrB,iBAAwB;IACnCkB,QAAQ,SAASC;QACf,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,eAAQ,EAAC;QAC3C,qBACE,qBAACjB,8CAAsB;YACrBe,WAAWA;YACXG,eAAeb;YACfc,qBAAqBH;;IAG3B;AACF;AAEO,MAAMtB,YAAmB;IAC9BmB,QAAQ,SAASC;QACf,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,eAAQ,EAAC;QAC3C,qBACE,qBAACjB,8CAAsB;YACrBe,WAAWA;YACXG,eAAeb;YACfc,qBAAqBH;;IAG3B;AACF;AAEO,MAAMnB,iBAAwB;IACnCgB,QAAQ,SAASC;QACf,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,eAAQ,EAAC;QAC3C,qBACE,qBAACjB,8CAAsB;YACrBe,WAAWA;YACXG,eAAeE,MAAM,KAAKC,IAAI,CAAChB,YAAYiB,IAAI;YAC/CH,qBAAqBH;;IAG3B;AACF"}
@@ -120,18 +120,23 @@ const Terminal = function Terminal(param) {
120
120
  children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
121
121
  className: "code-frame-link",
122
122
  children: [
123
- /*#__PURE__*/ (0, _jsxruntime.jsxs)("span", {
123
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
124
124
  className: "code-frame-icon",
125
- children: [
126
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_file.FileIcon, {
127
- lang: fileExtension
128
- }),
129
- (0, _stackframe.getFrameSource)(stackFrame)
130
- ]
125
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_file.FileIcon, {
126
+ lang: fileExtension
127
+ })
128
+ }),
129
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
130
+ "data-text": true,
131
+ children: (0, _stackframe.getFrameSource)(stackFrame)
131
132
  }),
132
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_external.ExternalIcon, {
133
- width: 16,
134
- height: 16
133
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
134
+ className: "code-frame-icon",
135
+ "data-icon": "right",
136
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_external.ExternalIcon, {
137
+ width: 16,
138
+ height: 16
139
+ })
135
140
  })
136
141
  ]
137
142
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/terminal/terminal.tsx"],"sourcesContent":["import Anser from 'next/dist/compiled/anser'\nimport * as React from 'react'\nimport { HotlinkedText } from '../hot-linked-text'\nimport { EditorLink } from './editor-link'\nimport { ExternalIcon } from '../../icons/external'\nimport { noop as css } from '../../helpers/noop-template'\nimport { getFrameSource } from '../../../../internal/helpers/stack-frame'\nimport { useOpenInEditor } from '../../helpers/use-open-in-editor'\nimport { FileIcon } from '../../icons/file'\n\nexport type TerminalProps = { content: string }\n\nfunction getFile(lines: string[]) {\n const contentFileName = lines.shift()\n if (!contentFileName) return null\n const [fileName, line, column] = contentFileName.split(':', 3)\n\n const parsedLine = Number(line)\n const parsedColumn = Number(column)\n const hasLocation = !Number.isNaN(parsedLine) && !Number.isNaN(parsedColumn)\n\n return {\n fileName: hasLocation ? fileName : contentFileName,\n location: hasLocation\n ? {\n line: parsedLine,\n column: parsedColumn,\n }\n : undefined,\n }\n}\n\nfunction getImportTraceFiles(lines: string[]) {\n if (\n lines.some((line) => /ReactServerComponentsError:/.test(line)) ||\n lines.some((line) => /Import trace for requested module:/.test(line))\n ) {\n // Grab the lines at the end containing the files\n const files = []\n while (\n /.+\\..+/.test(lines[lines.length - 1]) &&\n !lines[lines.length - 1].includes(':')\n ) {\n const file = lines.pop()!.trim()\n files.unshift(file)\n }\n\n return files\n }\n\n return []\n}\n\nfunction getEditorLinks(content: string) {\n const lines = content.split('\\n')\n const file = getFile(lines)\n const importTraceFiles = getImportTraceFiles(lines)\n\n return { file, source: lines.join('\\n'), importTraceFiles }\n}\n\nexport const Terminal: React.FC<TerminalProps> = function Terminal({\n content,\n}) {\n const { file, source, importTraceFiles } = React.useMemo(\n () => getEditorLinks(content),\n [content]\n )\n\n const decoded = React.useMemo(() => {\n return Anser.ansiToJson(source, {\n json: true,\n use_classes: true,\n remove_empty: true,\n })\n }, [source])\n\n const open = useOpenInEditor({\n file: file?.fileName,\n lineNumber: file?.location?.line ?? 1,\n column: file?.location?.column ?? 0,\n })\n\n const stackFrame = {\n file: file?.fileName ?? null,\n methodName: '',\n arguments: [],\n lineNumber: file?.location?.line ?? null,\n column: file?.location?.column ?? null,\n }\n\n const fileExtension = stackFrame?.file?.split('.').pop()\n\n return (\n <div data-nextjs-codeframe>\n <button\n aria-label=\"Open in editor\"\n className=\"code-frame-header\"\n data-with-open-in-editor-link-source-file\n onClick={open}\n >\n <div className=\"code-frame-link\">\n <span className=\"code-frame-icon\">\n <FileIcon lang={fileExtension} />\n {getFrameSource(stackFrame)}\n {/* TODO: Unlike the CodeFrame component, the `methodName` is unavailable. */}\n </span>\n <ExternalIcon width={16} height={16} />\n </div>\n </button>\n <pre className=\"code-frame-pre\">\n {decoded.map((entry, index) => (\n <span\n key={`terminal-entry-${index}`}\n style={{\n color: entry.fg ? `var(--color-${entry.fg})` : undefined,\n ...(entry.decoration === 'bold'\n ? // TODO(jiwon): This used to be 800, but the symbols like `─┬─` are\n // having longer width than expected on Geist Mono font-weight\n // above 600, hence a temporary fix is to use 500 for bold.\n { fontWeight: 500 }\n : entry.decoration === 'italic'\n ? { fontStyle: 'italic' }\n : undefined),\n }}\n >\n <HotlinkedText text={entry.content} />\n </span>\n ))}\n {importTraceFiles.map((importTraceFile) => (\n <EditorLink\n isSourceFile={false}\n key={importTraceFile}\n file={importTraceFile}\n />\n ))}\n </pre>\n </div>\n )\n}\n\nexport const TERMINAL_STYLES = css`\n [data-nextjs-terminal]::selection,\n [data-nextjs-terminal] *::selection {\n background-color: var(--color-ansi-selection);\n }\n\n [data-nextjs-terminal] * {\n color: inherit;\n background-color: transparent;\n font-family: var(--font-stack-monospace);\n }\n\n [data-nextjs-terminal] > div > p {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n margin: 0;\n }\n [data-nextjs-terminal] > div > p:hover {\n text-decoration: underline dotted;\n }\n [data-nextjs-terminal] div > pre {\n overflow: hidden;\n display: inline-block;\n }\n`\n"],"names":["TERMINAL_STYLES","Terminal","getFile","lines","contentFileName","shift","fileName","line","column","split","parsedLine","Number","parsedColumn","hasLocation","isNaN","location","undefined","getImportTraceFiles","some","test","files","length","includes","file","pop","trim","unshift","getEditorLinks","content","importTraceFiles","source","join","stackFrame","React","useMemo","decoded","Anser","ansiToJson","json","use_classes","remove_empty","open","useOpenInEditor","lineNumber","methodName","arguments","fileExtension","div","data-nextjs-codeframe","button","aria-label","className","data-with-open-in-editor-link-source-file","onClick","span","FileIcon","lang","getFrameSource","ExternalIcon","width","height","pre","map","entry","index","style","color","fg","decoration","fontWeight","fontStyle","HotlinkedText","text","importTraceFile","EditorLink","isSourceFile","css"],"mappings":";;;;;;;;;;;;;;;IA6IaA,eAAe;eAAfA;;IAhFAC,QAAQ;eAARA;;;;;;;gEA7DK;iEACK;+BACO;4BACH;0BACE;8BACD;4BACG;iCACC;sBACP;;;;;;;;;;AAIzB,SAASC,QAAQC,KAAe;IAC9B,MAAMC,kBAAkBD,MAAME,KAAK;IACnC,IAAI,CAACD,iBAAiB,OAAO;IAC7B,MAAM,CAACE,UAAUC,MAAMC,OAAO,GAAGJ,gBAAgBK,KAAK,CAAC,KAAK;IAE5D,MAAMC,aAAaC,OAAOJ;IAC1B,MAAMK,eAAeD,OAAOH;IAC5B,MAAMK,cAAc,CAACF,OAAOG,KAAK,CAACJ,eAAe,CAACC,OAAOG,KAAK,CAACF;IAE/D,OAAO;QACLN,UAAUO,cAAcP,WAAWF;QACnCW,UAAUF,cACN;YACEN,MAAMG;YACNF,QAAQI;QACV,IACAI;IACN;AACF;AAEA,SAASC,oBAAoBd,KAAe;IAC1C,IACEA,MAAMe,IAAI,CAAC,CAACX,OAAS,8BAA8BY,IAAI,CAACZ,UACxDJ,MAAMe,IAAI,CAAC,CAACX,OAAS,qCAAqCY,IAAI,CAACZ,QAC/D;QACA,iDAAiD;QACjD,MAAMa,QAAQ,EAAE;QAChB,MACE,SAASD,IAAI,CAAChB,KAAK,CAACA,MAAMkB,MAAM,GAAG,EAAE,KACrC,CAAClB,KAAK,CAACA,MAAMkB,MAAM,GAAG,EAAE,CAACC,QAAQ,CAAC,KAClC;YACA,MAAMC,OAAOpB,MAAMqB,GAAG,GAAIC,IAAI;YAC9BL,MAAMM,OAAO,CAACH;QAChB;QAEA,OAAOH;IACT;IAEA,OAAO,EAAE;AACX;AAEA,SAASO,eAAeC,OAAe;IACrC,MAAMzB,QAAQyB,QAAQnB,KAAK,CAAC;IAC5B,MAAMc,OAAOrB,QAAQC;IACrB,MAAM0B,mBAAmBZ,oBAAoBd;IAE7C,OAAO;QAAEoB;QAAMO,QAAQ3B,MAAM4B,IAAI,CAAC;QAAOF;IAAiB;AAC5D;AAEO,MAAM5B,WAAoC,SAASA,SAAS,KAElE;IAFkE,IAAA,EACjE2B,OAAO,EACR,GAFkE;QAkBnDL,gBACJA,iBAOIA,iBACJA,iBAGYS;IA3BtB,MAAM,EAAET,IAAI,EAAEO,MAAM,EAAED,gBAAgB,EAAE,GAAGI,OAAMC,OAAO,CACtD,IAAMP,eAAeC,UACrB;QAACA;KAAQ;IAGX,MAAMO,UAAUF,OAAMC,OAAO,CAAC;QAC5B,OAAOE,cAAK,CAACC,UAAU,CAACP,QAAQ;YAC9BQ,MAAM;YACNC,aAAa;YACbC,cAAc;QAChB;IACF,GAAG;QAACV;KAAO;QAIGP,qBACJA;IAHV,MAAMkB,OAAOC,IAAAA,gCAAe,EAAC;QAC3BnB,IAAI,EAAEA,wBAAAA,KAAMjB,QAAQ;QACpBqC,YAAYpB,CAAAA,sBAAAA,yBAAAA,iBAAAA,KAAMR,QAAQ,qBAAdQ,eAAgBhB,IAAI,YAApBgB,sBAAwB;QACpCf,QAAQe,CAAAA,wBAAAA,yBAAAA,kBAAAA,KAAMR,QAAQ,qBAAdQ,gBAAgBf,MAAM,YAAtBe,wBAA0B;IACpC;QAGQA,gBAGMA,sBACJA;IALV,MAAMS,aAAa;QACjBT,MAAMA,CAAAA,iBAAAA,wBAAAA,KAAMjB,QAAQ,YAAdiB,iBAAkB;QACxBqB,YAAY;QACZC,WAAW,EAAE;QACbF,YAAYpB,CAAAA,uBAAAA,yBAAAA,kBAAAA,KAAMR,QAAQ,qBAAdQ,gBAAgBhB,IAAI,YAApBgB,uBAAwB;QACpCf,QAAQe,CAAAA,yBAAAA,yBAAAA,kBAAAA,KAAMR,QAAQ,qBAAdQ,gBAAgBf,MAAM,YAAtBe,yBAA0B;IACpC;IAEA,MAAMuB,gBAAgBd,+BAAAA,mBAAAA,WAAYT,IAAI,qBAAhBS,iBAAkBvB,KAAK,CAAC,KAAKe,GAAG;IAEtD,qBACE,sBAACuB;QAAIC,uBAAqB;;0BACxB,qBAACC;gBACCC,cAAW;gBACXC,WAAU;gBACVC,2CAAyC;gBACzCC,SAASZ;0BAET,cAAA,sBAACM;oBAAII,WAAU;;sCACb,sBAACG;4BAAKH,WAAU;;8CACd,qBAACI,cAAQ;oCAACC,MAAMV;;gCACfW,IAAAA,0BAAc,EAACzB;;;sCAGlB,qBAAC0B,sBAAY;4BAACC,OAAO;4BAAIC,QAAQ;;;;;0BAGrC,sBAACC;gBAAIV,WAAU;;oBACZhB,QAAQ2B,GAAG,CAAC,CAACC,OAAOC,sBACnB,qBAACV;4BAECW,OAAO;gCACLC,OAAOH,MAAMI,EAAE,GAAG,AAAC,iBAAcJ,MAAMI,EAAE,GAAC,MAAKnD;gCAC/C,GAAI+C,MAAMK,UAAU,KAAK,SAErB,8DAA8D;gCAC9D,2DAA2D;gCAC3D;oCAAEC,YAAY;gCAAI,IAClBN,MAAMK,UAAU,KAAK,WACnB;oCAAEE,WAAW;gCAAS,IACtBtD,SAAS;4BACjB;sCAEA,cAAA,qBAACuD,4BAAa;gCAACC,MAAMT,MAAMnC,OAAO;;2BAb7B,AAAC,oBAAiBoC;oBAgB1BnC,iBAAiBiC,GAAG,CAAC,CAACW,gCACrB,qBAACC,sBAAU;4BACTC,cAAc;4BAEdpD,MAAMkD;2BADDA;;;;;AAOjB;AAEO,MAAMzE,sBAAkB4E,kBAAG"}
1
+ {"version":3,"sources":["../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/terminal/terminal.tsx"],"sourcesContent":["import Anser from 'next/dist/compiled/anser'\nimport * as React from 'react'\nimport { HotlinkedText } from '../hot-linked-text'\nimport { EditorLink } from './editor-link'\nimport { ExternalIcon } from '../../icons/external'\nimport { noop as css } from '../../helpers/noop-template'\nimport { getFrameSource } from '../../../../internal/helpers/stack-frame'\nimport { useOpenInEditor } from '../../helpers/use-open-in-editor'\nimport { FileIcon } from '../../icons/file'\n\nexport type TerminalProps = { content: string }\n\nfunction getFile(lines: string[]) {\n const contentFileName = lines.shift()\n if (!contentFileName) return null\n const [fileName, line, column] = contentFileName.split(':', 3)\n\n const parsedLine = Number(line)\n const parsedColumn = Number(column)\n const hasLocation = !Number.isNaN(parsedLine) && !Number.isNaN(parsedColumn)\n\n return {\n fileName: hasLocation ? fileName : contentFileName,\n location: hasLocation\n ? {\n line: parsedLine,\n column: parsedColumn,\n }\n : undefined,\n }\n}\n\nfunction getImportTraceFiles(lines: string[]) {\n if (\n lines.some((line) => /ReactServerComponentsError:/.test(line)) ||\n lines.some((line) => /Import trace for requested module:/.test(line))\n ) {\n // Grab the lines at the end containing the files\n const files = []\n while (\n /.+\\..+/.test(lines[lines.length - 1]) &&\n !lines[lines.length - 1].includes(':')\n ) {\n const file = lines.pop()!.trim()\n files.unshift(file)\n }\n\n return files\n }\n\n return []\n}\n\nfunction getEditorLinks(content: string) {\n const lines = content.split('\\n')\n const file = getFile(lines)\n const importTraceFiles = getImportTraceFiles(lines)\n\n return { file, source: lines.join('\\n'), importTraceFiles }\n}\n\nexport const Terminal: React.FC<TerminalProps> = function Terminal({\n content,\n}) {\n const { file, source, importTraceFiles } = React.useMemo(\n () => getEditorLinks(content),\n [content]\n )\n\n const decoded = React.useMemo(() => {\n return Anser.ansiToJson(source, {\n json: true,\n use_classes: true,\n remove_empty: true,\n })\n }, [source])\n\n const open = useOpenInEditor({\n file: file?.fileName,\n lineNumber: file?.location?.line ?? 1,\n column: file?.location?.column ?? 0,\n })\n\n const stackFrame = {\n file: file?.fileName ?? null,\n methodName: '',\n arguments: [],\n lineNumber: file?.location?.line ?? null,\n column: file?.location?.column ?? null,\n }\n\n const fileExtension = stackFrame?.file?.split('.').pop()\n\n return (\n <div data-nextjs-codeframe>\n <button\n aria-label=\"Open in editor\"\n className=\"code-frame-header\"\n data-with-open-in-editor-link-source-file\n onClick={open}\n >\n <div className=\"code-frame-link\">\n <span className=\"code-frame-icon\">\n <FileIcon lang={fileExtension} />\n </span>\n <span data-text>\n {/* TODO: Unlike the CodeFrame component, the `methodName` is unavailable. */}\n {getFrameSource(stackFrame)}\n </span>\n <span className=\"code-frame-icon\" data-icon=\"right\">\n <ExternalIcon width={16} height={16} />\n </span>\n </div>\n </button>\n <pre className=\"code-frame-pre\">\n {decoded.map((entry, index) => (\n <span\n key={`terminal-entry-${index}`}\n style={{\n color: entry.fg ? `var(--color-${entry.fg})` : undefined,\n ...(entry.decoration === 'bold'\n ? // TODO(jiwon): This used to be 800, but the symbols like `─┬─` are\n // having longer width than expected on Geist Mono font-weight\n // above 600, hence a temporary fix is to use 500 for bold.\n { fontWeight: 500 }\n : entry.decoration === 'italic'\n ? { fontStyle: 'italic' }\n : undefined),\n }}\n >\n <HotlinkedText text={entry.content} />\n </span>\n ))}\n {importTraceFiles.map((importTraceFile) => (\n <EditorLink\n isSourceFile={false}\n key={importTraceFile}\n file={importTraceFile}\n />\n ))}\n </pre>\n </div>\n )\n}\n\nexport const TERMINAL_STYLES = css`\n [data-nextjs-terminal]::selection,\n [data-nextjs-terminal] *::selection {\n background-color: var(--color-ansi-selection);\n }\n\n [data-nextjs-terminal] * {\n color: inherit;\n background-color: transparent;\n font-family: var(--font-stack-monospace);\n }\n\n [data-nextjs-terminal] > div > p {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n margin: 0;\n }\n [data-nextjs-terminal] > div > p:hover {\n text-decoration: underline dotted;\n }\n [data-nextjs-terminal] div > pre {\n overflow: hidden;\n display: inline-block;\n }\n`\n"],"names":["TERMINAL_STYLES","Terminal","getFile","lines","contentFileName","shift","fileName","line","column","split","parsedLine","Number","parsedColumn","hasLocation","isNaN","location","undefined","getImportTraceFiles","some","test","files","length","includes","file","pop","trim","unshift","getEditorLinks","content","importTraceFiles","source","join","stackFrame","React","useMemo","decoded","Anser","ansiToJson","json","use_classes","remove_empty","open","useOpenInEditor","lineNumber","methodName","arguments","fileExtension","div","data-nextjs-codeframe","button","aria-label","className","data-with-open-in-editor-link-source-file","onClick","span","FileIcon","lang","data-text","getFrameSource","data-icon","ExternalIcon","width","height","pre","map","entry","index","style","color","fg","decoration","fontWeight","fontStyle","HotlinkedText","text","importTraceFile","EditorLink","isSourceFile","css"],"mappings":"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"}
@@ -17,7 +17,9 @@ const Toast = function Toast(param) {
17
17
  return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
18
18
  ...props,
19
19
  onClick: (e)=>{
20
- e.preventDefault();
20
+ if (!e.target.closest('a')) {
21
+ e.preventDefault();
22
+ }
21
23
  return onClick == null ? void 0 : onClick();
22
24
  },
23
25
  className: (0, _cx.cx)('nextjs-toast', className),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/toast/toast.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cx } from '../../helpers/cx'\nexport type ToastProps = React.HTMLProps<HTMLDivElement> & {\n children?: React.ReactNode\n onClick?: () => void\n className?: string\n}\n\nexport const Toast: React.FC<ToastProps> = function Toast({\n onClick,\n children,\n className,\n ...props\n}) {\n return (\n <div\n {...props}\n onClick={(e) => {\n e.preventDefault()\n return onClick?.()\n }}\n className={cx('nextjs-toast', className)}\n >\n <div data-nextjs-toast-wrapper>{children}</div>\n </div>\n )\n}\n"],"names":["Toast","onClick","children","className","props","div","e","preventDefault","cx","data-nextjs-toast-wrapper"],"mappings":";;;;+BAQaA;;;eAAAA;;;;;iEARU;oBACJ;AAOZ,MAAMA,QAA8B,SAASA,MAAM,KAKzD;IALyD,IAAA,EACxDC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACT,GAAGC,OACJ,GALyD;IAMxD,qBACE,qBAACC;QACE,GAAGD,KAAK;QACTH,SAAS,CAACK;YACRA,EAAEC,cAAc;YAChB,OAAON,2BAAAA;QACT;QACAE,WAAWK,IAAAA,MAAE,EAAC,gBAAgBL;kBAE9B,cAAA,qBAACE;YAAII,2BAAyB;sBAAEP;;;AAGtC"}
1
+ {"version":3,"sources":["../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/components/toast/toast.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cx } from '../../helpers/cx'\nexport type ToastProps = React.HTMLProps<HTMLDivElement> & {\n children?: React.ReactNode\n onClick?: () => void\n className?: string\n}\n\nexport const Toast: React.FC<ToastProps> = function Toast({\n onClick,\n children,\n className,\n ...props\n}) {\n return (\n <div\n {...props}\n onClick={(e) => {\n if (!(e.target as HTMLElement).closest('a')) {\n e.preventDefault()\n }\n return onClick?.()\n }}\n className={cx('nextjs-toast', className)}\n >\n <div data-nextjs-toast-wrapper>{children}</div>\n </div>\n )\n}\n"],"names":["Toast","onClick","children","className","props","div","e","target","closest","preventDefault","cx","data-nextjs-toast-wrapper"],"mappings":";;;;+BAQaA;;;eAAAA;;;;;iEARU;oBACJ;AAOZ,MAAMA,QAA8B,SAASA,MAAM,KAKzD;IALyD,IAAA,EACxDC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACT,GAAGC,OACJ,GALyD;IAMxD,qBACE,qBAACC;QACE,GAAGD,KAAK;QACTH,SAAS,CAACK;YACR,IAAI,CAAC,AAACA,EAAEC,MAAM,CAAiBC,OAAO,CAAC,MAAM;gBAC3CF,EAAEG,cAAc;YAClB;YACA,OAAOR,2BAAAA;QACT;QACAE,WAAWO,IAAAA,MAAE,EAAC,gBAAgBP;kBAE9B,cAAA,qBAACE;YAAIM,2BAAyB;sBAAET;;;AAGtC"}
@@ -2,9 +2,9 @@ import type { DebugInfo } from '../../../types';
2
2
  import type { ReadyRuntimeError } from '../../../internal/helpers/get-error-by-type';
3
3
  import type { ErrorBaseProps } from '../components/errors/error-overlay/error-overlay';
4
4
  export interface ErrorsProps extends ErrorBaseProps {
5
- readyErrors: ReadyRuntimeError[];
5
+ runtimeErrors: ReadyRuntimeError[];
6
6
  debugInfo: DebugInfo;
7
7
  onClose: () => void;
8
8
  }
9
- export declare function Errors({ readyErrors, debugInfo, onClose, ...props }: ErrorsProps): import("react/jsx-runtime").JSX.Element | null;
9
+ export declare function Errors({ runtimeErrors, debugInfo, onClose, ...props }: ErrorsProps): import("react/jsx-runtime").JSX.Element | null;
10
10
  export declare const styles: string;
@@ -74,7 +74,7 @@ function ErrorDescription(param) {
74
74
  });
75
75
  }
76
76
  function Errors(param) {
77
- let { readyErrors, debugInfo, onClose, ...props } = param;
77
+ let { runtimeErrors, debugInfo, onClose, ...props } = param;
78
78
  var _activeError_componentStackFrames;
79
79
  const dialogResizerRef = (0, _react.useRef)(null);
80
80
  (0, _react.useEffect)(()=>{
@@ -90,17 +90,17 @@ function Errors(param) {
90
90
  onClose
91
91
  ]);
92
92
  const isLoading = (0, _react.useMemo)(()=>{
93
- return readyErrors.length < 1;
93
+ return runtimeErrors.length < 1;
94
94
  }, [
95
- readyErrors.length
95
+ runtimeErrors.length
96
96
  ]);
97
97
  const [activeIdx, setActiveIndex] = (0, _react.useState)(0);
98
98
  const activeError = (0, _react.useMemo)(()=>{
99
- var _readyErrors_activeIdx;
100
- return (_readyErrors_activeIdx = readyErrors[activeIdx]) != null ? _readyErrors_activeIdx : null;
99
+ var _runtimeErrors_activeIdx;
100
+ return (_runtimeErrors_activeIdx = runtimeErrors[activeIdx]) != null ? _runtimeErrors_activeIdx : null;
101
101
  }, [
102
102
  activeIdx,
103
- readyErrors
103
+ runtimeErrors
104
104
  ]);
105
105
  if (isLoading) {
106
106
  // TODO: better loading state
@@ -138,7 +138,7 @@ function Errors(param) {
138
138
  onClose: isServerError ? undefined : onClose,
139
139
  debugInfo: debugInfo,
140
140
  error: error,
141
- readyErrors: readyErrors,
141
+ runtimeErrors: runtimeErrors,
142
142
  activeIdx: activeIdx,
143
143
  setActiveIndex: setActiveIndex,
144
144
  footerMessage: footerMessage,