@ahmedrowaihi/pdf-forge-preview 1.0.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +7 -0
  3. package/.next/build/chunks/[root-of-the-server]__12fb5caf._.js +233 -0
  4. package/.next/build/chunks/[root-of-the-server]__12fb5caf._.js.map +8 -0
  5. package/.next/build/chunks/[root-of-the-server]__242deb00._.js +500 -0
  6. package/.next/build/chunks/[root-of-the-server]__242deb00._.js.map +11 -0
  7. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_ad9a1eec._.js +13 -0
  8. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_ad9a1eec._.js.map +5 -0
  9. package/.next/build/chunks/[turbopack]_runtime.js +795 -0
  10. package/.next/build/chunks/[turbopack]_runtime.js.map +10 -0
  11. package/.next/build/chunks/node_modules__pnpm_806d01c0._.js +6758 -0
  12. package/.next/build/chunks/node_modules__pnpm_806d01c0._.js.map +47 -0
  13. package/.next/build/package.json +1 -0
  14. package/.next/build/postcss.js +6 -0
  15. package/.next/build/postcss.js.map +5 -0
  16. package/.next/build-manifest.json +20 -0
  17. package/.next/diagnostics/build-diagnostics.json +6 -0
  18. package/.next/diagnostics/framework.json +1 -0
  19. package/.next/export-marker.json +6 -0
  20. package/.next/fallback-build-manifest.json +12 -0
  21. package/.next/images-manifest.json +66 -0
  22. package/.next/next-minimal-server.js.nft.json +1 -0
  23. package/.next/next-server.js.nft.json +1 -0
  24. package/.next/package.json +1 -0
  25. package/.next/prerender-manifest.json +65 -0
  26. package/.next/required-server-files.js +163 -0
  27. package/.next/required-server-files.json +163 -0
  28. package/.next/routes-manifest.json +77 -0
  29. package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  30. package/.next/server/app/_global-error/page/build-manifest.json +17 -0
  31. package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  32. package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  33. package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  34. package/.next/server/app/_global-error/page.js +11 -0
  35. package/.next/server/app/_global-error/page.js.map +5 -0
  36. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  37. package/.next/server/app/_global-error/page_client-reference-manifest.js +2 -0
  38. package/.next/server/app/_global-error.html +2 -0
  39. package/.next/server/app/_global-error.meta +15 -0
  40. package/.next/server/app/_global-error.rsc +13 -0
  41. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  42. package/.next/server/app/_global-error.segments/_full.segment.rsc +13 -0
  43. package/.next/server/app/_global-error.segments/_head.segment.rsc +6 -0
  44. package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -0
  45. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  46. package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  47. package/.next/server/app/_not-found/page/build-manifest.json +17 -0
  48. package/.next/server/app/_not-found/page/next-font-manifest.json +16 -0
  49. package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  50. package/.next/server/app/_not-found/page/server-reference-manifest.json +20 -0
  51. package/.next/server/app/_not-found/page.js +14 -0
  52. package/.next/server/app/_not-found/page.js.map +5 -0
  53. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  54. package/.next/server/app/_not-found/page_client-reference-manifest.js +2 -0
  55. package/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
  56. package/.next/server/app/favicon.ico/route/build-manifest.json +11 -0
  57. package/.next/server/app/favicon.ico/route.js +6 -0
  58. package/.next/server/app/favicon.ico/route.js.map +5 -0
  59. package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
  60. package/.next/server/app/favicon.ico.body +0 -0
  61. package/.next/server/app/favicon.ico.meta +1 -0
  62. package/.next/server/app/page/app-paths-manifest.json +3 -0
  63. package/.next/server/app/page/build-manifest.json +17 -0
  64. package/.next/server/app/page/next-font-manifest.json +16 -0
  65. package/.next/server/app/page/react-loadable-manifest.json +1 -0
  66. package/.next/server/app/page/server-reference-manifest.json +20 -0
  67. package/.next/server/app/page.js +17 -0
  68. package/.next/server/app/page.js.map +5 -0
  69. package/.next/server/app/page.js.nft.json +1 -0
  70. package/.next/server/app/page_client-reference-manifest.js +2 -0
  71. package/.next/server/app/preview/[...slug]/page/app-paths-manifest.json +3 -0
  72. package/.next/server/app/preview/[...slug]/page/build-manifest.json +17 -0
  73. package/.next/server/app/preview/[...slug]/page/next-font-manifest.json +16 -0
  74. package/.next/server/app/preview/[...slug]/page/react-loadable-manifest.json +1 -0
  75. package/.next/server/app/preview/[...slug]/page/server-reference-manifest.json +65 -0
  76. package/.next/server/app/preview/[...slug]/page.js +19 -0
  77. package/.next/server/app/preview/[...slug]/page.js.map +5 -0
  78. package/.next/server/app/preview/[...slug]/page.js.nft.json +1 -0
  79. package/.next/server/app/preview/[...slug]/page_client-reference-manifest.js +2 -0
  80. package/.next/server/app-paths-manifest.json +7 -0
  81. package/.next/server/chunks/730ea_preview-server__next-internal_server_app_favicon_ico_route_actions_a71a8ae7.js +3 -0
  82. package/.next/server/chunks/730ea_preview-server__next-internal_server_app_favicon_ico_route_actions_a71a8ae7.js.map +1 -0
  83. package/.next/server/chunks/[externals]_next_dist_a6d89067._.js +3 -0
  84. package/.next/server/chunks/[externals]_next_dist_a6d89067._.js.map +1 -0
  85. package/.next/server/chunks/[root-of-the-server]__a62cd78d._.js +21 -0
  86. package/.next/server/chunks/[root-of-the-server]__a62cd78d._.js.map +1 -0
  87. package/.next/server/chunks/[turbopack]_runtime.js +795 -0
  88. package/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
  89. package/.next/server/chunks/ssr/730ea_preview-server__next-internal_server_app__global-error_page_actions_986e2de5.js +3 -0
  90. package/.next/server/chunks/ssr/730ea_preview-server__next-internal_server_app__global-error_page_actions_986e2de5.js.map +1 -0
  91. package/.next/server/chunks/ssr/[root-of-the-server]__025eaae9._.js +3 -0
  92. package/.next/server/chunks/ssr/[root-of-the-server]__025eaae9._.js.map +1 -0
  93. package/.next/server/chunks/ssr/[root-of-the-server]__1536282c._.js +4 -0
  94. package/.next/server/chunks/ssr/[root-of-the-server]__1536282c._.js.map +1 -0
  95. package/.next/server/chunks/ssr/[root-of-the-server]__15cf9d36._.js +3 -0
  96. package/.next/server/chunks/ssr/[root-of-the-server]__15cf9d36._.js.map +1 -0
  97. package/.next/server/chunks/ssr/[root-of-the-server]__450f653e._.js +3 -0
  98. package/.next/server/chunks/ssr/[root-of-the-server]__450f653e._.js.map +1 -0
  99. package/.next/server/chunks/ssr/[root-of-the-server]__4874d0d7._.js +3 -0
  100. package/.next/server/chunks/ssr/[root-of-the-server]__4874d0d7._.js.map +1 -0
  101. package/.next/server/chunks/ssr/[root-of-the-server]__49771cdc._.js +3 -0
  102. package/.next/server/chunks/ssr/[root-of-the-server]__49771cdc._.js.map +1 -0
  103. package/.next/server/chunks/ssr/[root-of-the-server]__9ff74047._.js +3 -0
  104. package/.next/server/chunks/ssr/[root-of-the-server]__9ff74047._.js.map +1 -0
  105. package/.next/server/chunks/ssr/[root-of-the-server]__a9be37b1._.js +3 -0
  106. package/.next/server/chunks/ssr/[root-of-the-server]__a9be37b1._.js.map +1 -0
  107. package/.next/server/chunks/ssr/[root-of-the-server]__aeefe74e._.js +3 -0
  108. package/.next/server/chunks/ssr/[root-of-the-server]__aeefe74e._.js.map +1 -0
  109. package/.next/server/chunks/ssr/[root-of-the-server]__b13738d2._.js +3 -0
  110. package/.next/server/chunks/ssr/[root-of-the-server]__b13738d2._.js.map +1 -0
  111. package/.next/server/chunks/ssr/[root-of-the-server]__bb428c83._.js +4 -0
  112. package/.next/server/chunks/ssr/[root-of-the-server]__bb428c83._.js.map +1 -0
  113. package/.next/server/chunks/ssr/[root-of-the-server]__c61333e3._.js +10 -0
  114. package/.next/server/chunks/ssr/[root-of-the-server]__c61333e3._.js.map +1 -0
  115. package/.next/server/chunks/ssr/[root-of-the-server]__cb0c7b1a._.js +4 -0
  116. package/.next/server/chunks/ssr/[root-of-the-server]__cb0c7b1a._.js.map +1 -0
  117. package/.next/server/chunks/ssr/[root-of-the-server]__dafcae4c._.js +3 -0
  118. package/.next/server/chunks/ssr/[root-of-the-server]__dafcae4c._.js.map +1 -0
  119. package/.next/server/chunks/ssr/[root-of-the-server]__e47d0c07._.js +3 -0
  120. package/.next/server/chunks/ssr/[root-of-the-server]__e47d0c07._.js.map +1 -0
  121. package/.next/server/chunks/ssr/[root-of-the-server]__ecac8617._.js +31 -0
  122. package/.next/server/chunks/ssr/[root-of-the-server]__ecac8617._.js.map +1 -0
  123. package/.next/server/chunks/ssr/[root-of-the-server]__fd4bda25._.js +3 -0
  124. package/.next/server/chunks/ssr/[root-of-the-server]__fd4bda25._.js.map +1 -0
  125. package/.next/server/chunks/ssr/[turbopack]_runtime.js +795 -0
  126. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
  127. package/.next/server/chunks/ssr/_19494208._.js +19 -0
  128. package/.next/server/chunks/ssr/_19494208._.js.map +1 -0
  129. package/.next/server/chunks/ssr/_810f54e9._.js +4 -0
  130. package/.next/server/chunks/ssr/_810f54e9._.js.map +1 -0
  131. package/.next/server/chunks/ssr/_aa01e67e._.js +4 -0
  132. package/.next/server/chunks/ssr/_aa01e67e._.js.map +1 -0
  133. package/.next/server/chunks/ssr/_bf10718b._.js +4 -0
  134. package/.next/server/chunks/ssr/_bf10718b._.js.map +1 -0
  135. package/.next/server/chunks/ssr/_c57c12df._.js +4 -0
  136. package/.next/server/chunks/ssr/_c57c12df._.js.map +1 -0
  137. package/.next/server/chunks/ssr/_d9b57cb8._.js +5 -0
  138. package/.next/server/chunks/ssr/_d9b57cb8._.js.map +1 -0
  139. package/.next/server/chunks/ssr/_e2a766a8._.js +3 -0
  140. package/.next/server/chunks/ssr/_e2a766a8._.js.map +1 -0
  141. package/.next/server/chunks/ssr/_e2b86512._.js +8 -0
  142. package/.next/server/chunks/ssr/_e2b86512._.js.map +1 -0
  143. package/.next/server/chunks/ssr/_ee8ea3aa._.js +19 -0
  144. package/.next/server/chunks/ssr/_ee8ea3aa._.js.map +1 -0
  145. package/.next/server/chunks/ssr/e8449_next_dist_5870db32._.js +3 -0
  146. package/.next/server/chunks/ssr/e8449_next_dist_5870db32._.js.map +1 -0
  147. package/.next/server/chunks/ssr/e8449_next_dist_client_components_builtin_forbidden_5542069c.js +3 -0
  148. package/.next/server/chunks/ssr/e8449_next_dist_client_components_builtin_forbidden_5542069c.js.map +1 -0
  149. package/.next/server/chunks/ssr/e8449_next_dist_client_components_builtin_global-error_d0870f3a.js +3 -0
  150. package/.next/server/chunks/ssr/e8449_next_dist_client_components_builtin_global-error_d0870f3a.js.map +1 -0
  151. package/.next/server/chunks/ssr/e8449_next_dist_client_components_builtin_unauthorized_4c01c8d5.js +3 -0
  152. package/.next/server/chunks/ssr/e8449_next_dist_client_components_builtin_unauthorized_4c01c8d5.js.map +1 -0
  153. package/.next/server/chunks/ssr/e8449_next_dist_client_components_d90ace34._.js +3 -0
  154. package/.next/server/chunks/ssr/e8449_next_dist_client_components_d90ace34._.js.map +1 -0
  155. package/.next/server/chunks/ssr/e8449_next_dist_esm_af7aafb8._.js +6 -0
  156. package/.next/server/chunks/ssr/e8449_next_dist_esm_af7aafb8._.js.map +1 -0
  157. package/.next/server/chunks/ssr/e8449_next_dist_esm_build_templates_app-page_f16f0848.js +4 -0
  158. package/.next/server/chunks/ssr/e8449_next_dist_esm_build_templates_app-page_f16f0848.js.map +1 -0
  159. package/.next/server/chunks/ssr/e8449_next_dist_f0d8a2cc._.js +4 -0
  160. package/.next/server/chunks/ssr/e8449_next_dist_f0d8a2cc._.js.map +1 -0
  161. package/.next/server/chunks/ssr/node_modules__pnpm_37510d96._.js +5 -0
  162. package/.next/server/chunks/ssr/node_modules__pnpm_37510d96._.js.map +1 -0
  163. package/.next/server/chunks/ssr/packages_preview-server_src_app_897ecf1c._.js +3 -0
  164. package/.next/server/chunks/ssr/packages_preview-server_src_app_897ecf1c._.js.map +1 -0
  165. package/.next/server/chunks/ssr/packages_preview-server_src_e17a2a9b._.js +3 -0
  166. package/.next/server/chunks/ssr/packages_preview-server_src_e17a2a9b._.js.map +1 -0
  167. package/.next/server/functions-config-manifest.json +4 -0
  168. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  169. package/.next/server/middleware-build-manifest.js +21 -0
  170. package/.next/server/middleware-manifest.json +6 -0
  171. package/.next/server/next-font-manifest.js +1 -0
  172. package/.next/server/next-font-manifest.json +34 -0
  173. package/.next/server/pages/500.html +2 -0
  174. package/.next/server/pages-manifest.json +3 -0
  175. package/.next/server/server-reference-manifest.js +1 -0
  176. package/.next/server/server-reference-manifest.json +80 -0
  177. package/.next/static/cdYIhKFtJ0GB-yJK5ywz_/_buildManifest.js +11 -0
  178. package/.next/static/cdYIhKFtJ0GB-yJK5ywz_/_clientMiddlewareManifest.json +1 -0
  179. package/.next/static/cdYIhKFtJ0GB-yJK5ywz_/_ssgManifest.js +1 -0
  180. package/.next/static/chunks/0464c7ff175ee6ff.js +1 -0
  181. package/.next/static/chunks/10468413db24762a.js +14 -0
  182. package/.next/static/chunks/2de338262e51ef94.js +3 -0
  183. package/.next/static/chunks/37adc260f85da877.js +1 -0
  184. package/.next/static/chunks/521eee9903bc4d1f.js +5 -0
  185. package/.next/static/chunks/6051bd38272cb442.js +14 -0
  186. package/.next/static/chunks/8d433d4b9d701456.js +1 -0
  187. package/.next/static/chunks/92ba72595aad9df6.js +1 -0
  188. package/.next/static/chunks/959ed978a6e89a66.js +1 -0
  189. package/.next/static/chunks/a6dad97d9634a72d.js +1 -0
  190. package/.next/static/chunks/a6dad97d9634a72d.js.map +1 -0
  191. package/.next/static/chunks/a6db6456c5b75734.js +1 -0
  192. package/.next/static/chunks/c3ece0a7e3e07076.js +1 -0
  193. package/.next/static/chunks/d1b29a74f6814a03.css +3 -0
  194. package/.next/static/chunks/f7ec22614fe1c1fe.js +1 -0
  195. package/.next/static/chunks/turbopack-e062a8e6d6034eb0.js +4 -0
  196. package/.next/static/media/1bffadaabf893a1e-s.7cd81963.woff2 +0 -0
  197. package/.next/static/media/2bbe8d2671613f1f-s.76dcb0b2.woff2 +0 -0
  198. package/.next/static/media/2c55a0e60120577a-s.2a48534a.woff2 +0 -0
  199. package/.next/static/media/5476f68d60460930-s.c995e352.woff2 +0 -0
  200. package/.next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2 +0 -0
  201. package/.next/static/media/9c72aa0f40e4eef8-s.18a48cbc.woff2 +0 -0
  202. package/.next/static/media/SFMonoBold-s.p.b90ec775.otf +0 -0
  203. package/.next/static/media/SFMonoHeavy-s.p.545fe93b.otf +0 -0
  204. package/.next/static/media/SFMonoLight-s.p.7c5363a6.otf +0 -0
  205. package/.next/static/media/SFMonoMedium-s.p.a4fc9904.otf +0 -0
  206. package/.next/static/media/SFMonoRegular-s.p.04ea7bf3.otf +0 -0
  207. package/.next/static/media/SFMonoSemibold-s.p.2d2ddb43.otf +0 -0
  208. package/.next/static/media/ad66f9afd8947f86-s.7a40eb73.woff2 +0 -0
  209. package/.next/static/media/favicon.678eb597.ico +0 -0
  210. package/.next/static/media/logo.22a370b0.png +0 -0
  211. package/.next/trace +1 -0
  212. package/.next/trace-build +1 -0
  213. package/.next/turbopack +0 -0
  214. package/.next/types/routes.d.ts +58 -0
  215. package/.next/types/validator.ts +70 -0
  216. package/CHANGELOG.md +12 -0
  217. package/LICENSE.md +8 -0
  218. package/index.mjs +17 -0
  219. package/jsx-runtime/jsx-dev-runtime.js +26 -0
  220. package/module-punycode.d.ts +3 -0
  221. package/next-env.d.ts +6 -0
  222. package/next.config.mjs +15 -0
  223. package/package.json +78 -0
  224. package/postcss.config.js +5 -0
  225. package/readme.md +33 -0
  226. package/scripts/build-preview-server.mts +25 -0
  227. package/scripts/dev.mts +57 -0
  228. package/scripts/seed.mts +36 -0
  229. package/src/actions/export-single-template.ts +74 -0
  230. package/src/actions/get-template-path-from-slug.ts +32 -0
  231. package/src/actions/get-templates-directory-metadata-action.ts +19 -0
  232. package/src/actions/render-template-by-path.tsx +313 -0
  233. package/src/actions/safe-action.ts +15 -0
  234. package/src/animated-icons-data/help.json +1082 -0
  235. package/src/animated-icons-data/link.json +1309 -0
  236. package/src/animated-icons-data/load.json +443 -0
  237. package/src/animated-icons-data/mail.json +1320 -0
  238. package/src/app/env.ts +14 -0
  239. package/src/app/favicon.ico +0 -0
  240. package/src/app/fonts/SFMono/SFMonoBold.otf +0 -0
  241. package/src/app/fonts/SFMono/SFMonoBoldItalic.otf +0 -0
  242. package/src/app/fonts/SFMono/SFMonoHeavy.otf +0 -0
  243. package/src/app/fonts/SFMono/SFMonoHeavyItalic.otf +0 -0
  244. package/src/app/fonts/SFMono/SFMonoLight.otf +0 -0
  245. package/src/app/fonts/SFMono/SFMonoLightItalic.otf +0 -0
  246. package/src/app/fonts/SFMono/SFMonoMedium.otf +0 -0
  247. package/src/app/fonts/SFMono/SFMonoMediumItalic.otf +0 -0
  248. package/src/app/fonts/SFMono/SFMonoRegular.otf +0 -0
  249. package/src/app/fonts/SFMono/SFMonoRegularItalic.otf +0 -0
  250. package/src/app/fonts/SFMono/SFMonoSemibold.otf +0 -0
  251. package/src/app/fonts/SFMono/SFMonoSemiboldItalic.otf +0 -0
  252. package/src/app/fonts.ts +39 -0
  253. package/src/app/globals.css +136 -0
  254. package/src/app/layout.tsx +46 -0
  255. package/src/app/logo.png +0 -0
  256. package/src/app/page.tsx +52 -0
  257. package/src/app/preview/[...slug]/download-button.tsx +138 -0
  258. package/src/app/preview/[...slug]/error-overlay.tsx +58 -0
  259. package/src/app/preview/[...slug]/page.tsx +90 -0
  260. package/src/app/preview/[...slug]/preview.tsx +249 -0
  261. package/src/app/preview/[...slug]/template-frame.tsx +68 -0
  262. package/src/components/button.tsx +101 -0
  263. package/src/components/code-container.tsx +169 -0
  264. package/src/components/code-snippet.tsx +9 -0
  265. package/src/components/code.tsx +185 -0
  266. package/src/components/heading.tsx +113 -0
  267. package/src/components/icons/icon-arrow-down.tsx +16 -0
  268. package/src/components/icons/icon-base.tsx +26 -0
  269. package/src/components/icons/icon-bug.tsx +19 -0
  270. package/src/components/icons/icon-button.tsx +23 -0
  271. package/src/components/icons/icon-check.tsx +19 -0
  272. package/src/components/icons/icon-clipboard.tsx +40 -0
  273. package/src/components/icons/icon-cloud-alert.tsx +18 -0
  274. package/src/components/icons/icon-cloud-check.tsx +17 -0
  275. package/src/components/icons/icon-download.tsx +19 -0
  276. package/src/components/icons/icon-file.tsx +19 -0
  277. package/src/components/icons/icon-folder-open.tsx +19 -0
  278. package/src/components/icons/icon-folder.tsx +18 -0
  279. package/src/components/icons/icon-hide-sidebar.tsx +23 -0
  280. package/src/components/icons/icon-image.tsx +19 -0
  281. package/src/components/icons/icon-info.tsx +18 -0
  282. package/src/components/icons/icon-link.tsx +14 -0
  283. package/src/components/icons/icon-loader.tsx +16 -0
  284. package/src/components/icons/icon-monitor.tsx +19 -0
  285. package/src/components/icons/icon-moon.tsx +16 -0
  286. package/src/components/icons/icon-phone.tsx +26 -0
  287. package/src/components/icons/icon-reload.tsx +18 -0
  288. package/src/components/icons/icon-source.tsx +19 -0
  289. package/src/components/icons/icon-stamp.tsx +14 -0
  290. package/src/components/icons/icon-sun.tsx +74 -0
  291. package/src/components/icons/icon-warning.tsx +31 -0
  292. package/src/components/index.ts +7 -0
  293. package/src/components/logo.tsx +41 -0
  294. package/src/components/resizable-wrapper.tsx +269 -0
  295. package/src/components/shell.tsx +95 -0
  296. package/src/components/sidebar/file-tree-directory-children.tsx +142 -0
  297. package/src/components/sidebar/file-tree-directory.tsx +92 -0
  298. package/src/components/sidebar/file-tree.tsx +31 -0
  299. package/src/components/sidebar/index.ts +1 -0
  300. package/src/components/sidebar/sidebar.tsx +46 -0
  301. package/src/components/text.tsx +99 -0
  302. package/src/components/toolbar/checking-results.tsx +150 -0
  303. package/src/components/toolbar/code-preview-line-link.tsx +39 -0
  304. package/src/components/toolbar/results-table.tsx +0 -0
  305. package/src/components/toolbar/results.tsx +52 -0
  306. package/src/components/toolbar/toolbar-button.tsx +52 -0
  307. package/src/components/toolbar/use-cached-state.ts +36 -0
  308. package/src/components/toolbar.tsx +182 -0
  309. package/src/components/tooltip-content.tsx +31 -0
  310. package/src/components/tooltip.tsx +19 -0
  311. package/src/components/topbar/active-view-toggle-group.tsx +86 -0
  312. package/src/components/topbar/emulated-dark-mode-toggle.tsx +58 -0
  313. package/src/components/topbar/view-size-controls.tsx +173 -0
  314. package/src/components/topbar.tsx +59 -0
  315. package/src/contexts/preview.tsx +91 -0
  316. package/src/contexts/templates.tsx +57 -0
  317. package/src/contexts/toolbar.tsx +22 -0
  318. package/src/hooks/use-clamped-state.ts +24 -0
  319. package/src/hooks/use-fragment-identifier.ts +14 -0
  320. package/src/hooks/use-hot-reload.ts +31 -0
  321. package/src/hooks/use-rendering-metadata.ts +37 -0
  322. package/src/hooks/use-template-rendering-result.ts +58 -0
  323. package/src/utils/cn.ts +6 -0
  324. package/src/utils/constants.ts +8 -0
  325. package/src/utils/contains-template.ts +52 -0
  326. package/src/utils/convert-stack-with-sourcemap.ts +79 -0
  327. package/src/utils/copy-text-to-clipboard.ts +7 -0
  328. package/src/utils/create-jsx-runtime.ts +47 -0
  329. package/src/utils/esbuild/escape-string-for-regex.ts +3 -0
  330. package/src/utils/esbuild/renderring-utilities-exporter.ts +64 -0
  331. package/src/utils/get-line-and-column-from-offset.ts +11 -0
  332. package/src/utils/get-template-component.ts +158 -0
  333. package/src/utils/get-templates-directory-metadata.ts +195 -0
  334. package/src/utils/index.ts +6 -0
  335. package/src/utils/language-map.ts +7 -0
  336. package/src/utils/load-stream.ts +15 -0
  337. package/src/utils/register-spinner-autostopping.ts +28 -0
  338. package/src/utils/result.ts +49 -0
  339. package/src/utils/run-bundled-code.ts +86 -0
  340. package/src/utils/sanitize.ts +6 -0
  341. package/src/utils/sleep.ts +3 -0
  342. package/src/utils/snake-to-camel.ts +5 -0
  343. package/src/utils/static-node-modules-for-vm.ts +93 -0
  344. package/src/utils/style-text.ts +11 -0
  345. package/src/utils/types/as.ts +26 -0
  346. package/src/utils/types/error-object.ts +11 -0
  347. package/src/utils/types/hot-reload-change.ts +13 -0
  348. package/src/utils/types/template.ts +8 -0
  349. package/src/utils/unreachable.ts +8 -0
  350. package/templates/.gitkeep +0 -0
  351. package/tsconfig.json +47 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/.pnpm/next%4016.1.1_%40babel%2Bcore%407.26.10_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/side-effect.tsx","../../../../../../node_modules/.pnpm/next%4016.1.1_%40babel%2Bcore%407.26.10_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/server/route-modules/app-page/vendored/contexts/head-manager-context.ts","../../../../../../node_modules/.pnpm/next%4016.1.1_%40babel%2Bcore%407.26.10_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/head.tsx","../../../../../../node_modules/.pnpm/next%4016.1.1_%40babel%2Bcore%407.26.10_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/image-blur-svg.ts","../../../../../../node_modules/.pnpm/next%4016.1.1_%40babel%2Bcore%407.26.10_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/image-config.ts","../../../../../../node_modules/.pnpm/next%4016.1.1_%40babel%2Bcore%407.26.10_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/get-img-props.ts","../../../../../../node_modules/.pnpm/next%4016.1.1_%40babel%2Bcore%407.26.10_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/server/route-modules/app-page/vendored/contexts/image-config-context.ts","../../../../../../node_modules/.pnpm/next%4016.1.1_%40babel%2Bcore%407.26.10_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/server/route-modules/app-page/vendored/contexts/router-context.ts","../../../../../../node_modules/.pnpm/next%4016.1.1_%40babel%2Bcore%407.26.10_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/find-closest-quality.ts","../../../../../../node_modules/.pnpm/next%4016.1.1_%40babel%2Bcore%407.26.10_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/image-loader.ts","../../../../../../node_modules/.pnpm/next%4016.1.1_%40babel%2Bcore%407.26.10_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/client/image-component.tsx"],"sourcesContent":["\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: (components: Array<React.ReactElement<any>>) => State\n handleStateChange?: (state: State) => void\n headManager: any\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set<React.ReactNode>).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HeadManagerContext\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { warnOnce } from './utils/warn-once'\n\nexport function defaultHead(): JSX.Element[] {\n const head = [\n <meta charSet=\"utf-8\" key=\"charset\" />,\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />,\n ]\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents(\n headChildrenElements: Array<React.ReactElement<any>>\n) {\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead().reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */\nexport function getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number\n heightInt?: number\n blurWidth?: number\n blurHeight?: number\n blurDataURL: string\n objectFit?: string\n}): string {\n const std = 20\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : ''\n const preserveAspectRatio = viewBox\n ? 'none'\n : objectFit === 'contain'\n ? 'xMidYMid'\n : objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`\n}\n","export const VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom',\n] as const\n\nexport type LoaderValue = (typeof VALID_LOADERS)[number]\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\nexport type ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly<ImageConfig>\n}\n\nexport type LocalPattern = {\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\nexport type RemotePattern = {\n /**\n * Must be `http` or `https`.\n */\n protocol?: 'http' | 'https'\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single subdomain.\n * Double `**` matches any number of subdomains.\n */\n hostname: string\n\n /**\n * Can be literal port such as `8080` or empty string\n * meaning no port.\n */\n port?: string\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\ntype ImageFormat = 'image/avif' | 'image/webp'\n\n/**\n * Image configurations\n *\n * @see [Image configuration options](https://nextjs.org/docs/api-reference/next/image#configuration-options)\n */\nexport type ImageConfigComplete = {\n /** @see [Device sizes documentation](https://nextjs.org/docs/api-reference/next/image#device-sizes) */\n deviceSizes: number[]\n\n /** @see [Image sizing documentation](https://nextjs.org/docs/app/building-your-application/optimizing/images#image-sizing) */\n imageSizes: number[]\n\n /** @see [Image loaders configuration](https://nextjs.org/docs/api-reference/next/legacy/image#loader) */\n loader: LoaderValue\n\n /** @see [Image loader configuration](https://nextjs.org/docs/app/api-reference/components/image#path) */\n path: string\n\n /** @see [Image loader configuration](https://nextjs.org/docs/api-reference/next/image#loader-configuration) */\n loaderFile: string\n\n /**\n * @deprecated Use `remotePatterns` instead.\n */\n domains: string[]\n\n /** @see [Disable static image import configuration](https://nextjs.org/docs/api-reference/next/image#disable-static-imports) */\n disableStaticImages: boolean\n\n /** @see [Cache behavior](https://nextjs.org/docs/api-reference/next/image#caching-behavior) */\n minimumCacheTTL: number\n\n /** @see [Acceptable formats](https://nextjs.org/docs/api-reference/next/image#acceptable-formats) */\n formats: ImageFormat[]\n\n /** @see [Maximum Redirects](https://nextjs.org/docs/api-reference/next/image#maximumredirects) */\n maximumRedirects: number\n\n /** @see [Dangerously Allow Local IP](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-local-ip) */\n dangerouslyAllowLocalIP: boolean\n\n /** @see [Dangerously Allow SVG](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-svg) */\n dangerouslyAllowSVG: boolean\n\n /** @see [Content Security Policy](https://nextjs.org/docs/api-reference/next/image#contentsecuritypolicy) */\n contentSecurityPolicy: string\n\n /** @see [Content Disposition Type](https://nextjs.org/docs/api-reference/next/image#contentdispositiontype) */\n contentDispositionType: 'inline' | 'attachment'\n\n /** @see [Remote Patterns](https://nextjs.org/docs/api-reference/next/image#remotepatterns) */\n remotePatterns: Array<URL | RemotePattern>\n\n /** @see [Local Patterns](https://nextjs.org/docs/api-reference/next/image#localPatterns) */\n localPatterns: LocalPattern[] | undefined\n\n /** @see [Qualities](https://nextjs.org/docs/api-reference/next/image#qualities) */\n qualities: number[] | undefined\n\n /** @see [Unoptimized](https://nextjs.org/docs/api-reference/next/image#unoptimized) */\n unoptimized: boolean\n}\n\nexport type ImageConfig = Partial<ImageConfigComplete>\n\nexport const imageConfigDefault: ImageConfigComplete = {\n deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n imageSizes: [32, 48, 64, 96, 128, 256, 384],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n /**\n * @deprecated Use `remotePatterns` instead to protect your application from malicious users.\n */\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 14400, // 4 hours\n formats: ['image/webp'],\n maximumRedirects: 3,\n dangerouslyAllowLocalIP: false,\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,\n contentDispositionType: 'attachment',\n localPatterns: undefined, // default: allow all local images\n remotePatterns: [], // default: allow no remote images\n qualities: [75],\n unoptimized: false,\n}\n","import { warnOnce } from './utils/warn-once'\nimport { getDeploymentId } from './deployment-id'\nimport { getImageBlurSvg } from './image-blur-svg'\nimport { imageConfigDefault } from './image-config'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderPropsWithConfig,\n} from './image-config'\n\nimport type { CSSProperties, JSX } from 'react'\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n blurWidth?: number\n blurHeight?: number\n}\n\nexport interface StaticRequire {\n default: StaticImageData\n}\n\nexport type StaticImport = StaticRequire | StaticImageData\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'alt' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n alt: string\n width?: number | `${number}`\n height?: number | `${number}`\n fill?: boolean\n loader?: ImageLoader\n quality?: number | `${number}`\n preload?: boolean\n /**\n * @deprecated Use `preload` prop instead.\n * See https://nextjs.org/docs/app/api-reference/components/image#preload\n */\n priority?: boolean\n loading?: LoadingValue\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n overrideSrc?: string\n /**\n * @deprecated Use `onLoad` instead.\n * @see https://nextjs.org/docs/app/api-reference/components/image#onload\n */\n onLoadingComplete?: OnLoadingComplete\n /**\n * @deprecated Use `fill` prop instead of `layout=\"fill\"` or change import to `next/legacy/image`.\n * @see https://nextjs.org/docs/api-reference/next/legacy/image\n */\n layout?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectFit?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectPosition?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyBoundary?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyRoot?: string\n}\n\nexport type ImgProps = Omit<ImageProps, 'src' | 'loader'> & {\n loading: LoadingValue\n width: number | undefined\n height: number | undefined\n style: NonNullable<JSX.IntrinsicElements['img']['style']>\n sizes: string | undefined\n srcSet: string | undefined\n src: string\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\n\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined,\n]\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & {\n allSizes: number[]\n output?: 'standalone' | 'export'\n}\n\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (p: ImageLoaderPropsWithConfig) => string\n\nexport type PlaceholderValue = 'blur' | 'empty' | `data:image/${string}`\nexport type OnLoad = React.ReactEventHandler<HTMLImageElement> | undefined\nexport type OnLoadingComplete = (img: HTMLImageElement) => void\n\nexport type PlaceholderStyle = Partial<\n Pick<\n CSSProperties,\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundRepeat'\n | 'backgroundImage'\n >\n>\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nconst allImgs = new Map<\n string,\n { src: string; loading: LoadingValue; placeholder: PlaceholderValue }\n>()\nlet perfObserver: PerformanceObserver | undefined\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'undefined') {\n return x\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10)\n }\n return NaN\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (typeof width !== 'number') {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n const deploymentId = getDeploymentId()\n if (src.startsWith('/') && !src.startsWith('//') && deploymentId) {\n const sep = src.includes('?') ? '&' : '?'\n src = `${src}${sep}dpl=${deploymentId}`\n }\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\n}\n\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */\nexport function getImgProps(\n {\n src,\n sizes,\n unoptimized = false,\n priority = false,\n preload = false,\n loading,\n className,\n quality,\n width,\n height,\n fill = false,\n style,\n overrideSrc,\n onLoad,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n fetchPriority,\n decoding = 'async',\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n ...rest\n }: ImageProps,\n _state: {\n defaultLoader: ImageLoaderWithConfig\n imgConf: ImageConfigComplete\n showAltText?: boolean\n blurComplete?: boolean\n }\n): {\n props: ImgProps\n meta: {\n unoptimized: boolean\n preload: boolean\n placeholder: NonNullable<ImageProps['placeholder']>\n fill: boolean\n }\n} {\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state\n let config: ImageConfig\n let c = imgConf || imageConfigDefault\n if ('allSizes' in c) {\n config = c as ImageConfig\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n config = { ...c, allSizes, deviceSizes, qualities }\n }\n\n if (typeof defaultLoader === 'undefined') {\n throw new Error(\n 'images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'\n )\n }\n let loader: ImageLoaderWithConfig = rest.loader || defaultLoader\n\n // Remove property so it's not spread on <img> element\n delete rest.loader\n delete (rest as any).srcSet\n\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader\n\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader as ImageLoader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n return customImageLoader(opts)\n }\n }\n\n if (layout) {\n if (layout === 'fill') {\n fill = true\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: '100%', height: 'auto' },\n responsive: { width: '100%', height: 'auto' },\n }\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: '100vw',\n fill: '100vw',\n }\n const layoutStyle = layoutToStyle[layout]\n if (layoutStyle) {\n style = { ...style, ...layoutStyle }\n }\n const layoutSizes = layoutToSizes[layout]\n if (layoutSizes && !sizes) {\n sizes = layoutSizes\n }\n }\n\n let staticSrc = ''\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n let blurWidth: number | undefined\n let blurHeight: number | undefined\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n\n blurWidth = staticImageData.blurWidth\n blurHeight = staticImageData.blurHeight\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width\n heightInt = staticImageData.height\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width\n heightInt = Math.round(staticImageData.height * ratio)\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height\n widthInt = Math.round(staticImageData.width * ratio)\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n let isLazy =\n !priority &&\n !preload &&\n (loading === 'lazy' || typeof loading === 'undefined')\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n if (\n isDefaultLoader &&\n !config.dangerouslyAllowSVG &&\n src.split('?', 1)[0].endsWith('.svg')\n ) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true\n }\n\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true\n } else {\n if (fill) {\n if (width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (style?.position && style.position !== 'absolute') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`\n )\n }\n if (style?.width && style.width !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`\n )\n }\n if (style?.height && style.height !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`\n )\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`\n )\n } else if (isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${width}\".`\n )\n }\n if (typeof heightInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`\n )\n } else if (isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${height}\".`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && priority) {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"priority\" properties. Only \"preload\" should be used.`\n )\n }\n if (\n placeholder !== 'empty' &&\n placeholder !== 'blur' &&\n !placeholder.startsWith('data:image/')\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".`\n )\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`\n )\n }\n }\n if (\n qualityInt &&\n config.qualities &&\n !config.qualities.includes(qualityInt)\n ) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities [${config.qualities.join(', ')}]. Please update your config to [${[...config.qualities, qualityInt].sort().join(', ')}].` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`\n )\n }\n\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`\n )\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n lcpImage.loading === 'lazy' &&\n lcpImage.placeholder === 'empty' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \\`loading=\"eager\"\\` property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/app/api-reference/components/image#loading`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n const imgStyle = Object.assign(\n fill\n ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition,\n }\n : {},\n showAltText ? {} : { color: 'transparent' },\n style\n )\n\n const backgroundImage =\n !blurComplete && placeholder !== 'empty'\n ? placeholder === 'blur'\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '', // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${placeholder}\")` // assume `data:image/`\n : null\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === 'fill'\n ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover'\n\n let placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage,\n }\n : {}\n\n if (process.env.NODE_ENV === 'development') {\n if (\n placeholderStyle.backgroundImage &&\n placeholder === 'blur' &&\n blurDataURL?.startsWith('/')\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = `url(\"${blurDataURL}\")`\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n\n const loadingFinal = isLazy ? 'lazy' : loading\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, loading: loadingFinal, placeholder })\n }\n }\n\n const props: ImgProps = {\n ...rest,\n loading: loadingFinal,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src,\n }\n const meta = { unoptimized, preload: preload || priority, placeholder, fill }\n return { props, meta }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ImageConfigContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].RouterContext\n","import type { NextConfig } from '../../server/config-shared'\n\n/**\n * Find the closest matching `quality` in the list of `config.qualities`\n * @param quality the quality prop passed to the image component\n * @param config the \"images\" configuration from next.config.js\n * @returns the closest matching quality value\n */\nexport function findClosestQuality(\n quality: number | undefined,\n config: NextConfig['images'] | undefined\n): number {\n const q = quality || 75\n if (!config?.qualities?.length) {\n return q\n }\n return config.qualities.reduce(\n (prev, cur) => (Math.abs(cur - q) < Math.abs(prev - q) ? cur : prev),\n 0\n )\n}\n","import type { ImageLoaderPropsWithConfig } from './image-config'\nimport { findClosestQuality } from './find-closest-quality'\nimport { getDeploymentId } from './deployment-id'\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (\n src.startsWith('/') &&\n src.includes('?') &&\n config.localPatterns?.length === 1 &&\n config.localPatterns[0].pathname === '**' &&\n config.localPatterns[0].search === ''\n ) {\n throw new Error(\n `Image with src \"${src}\" is using a query string which is not configured in images.localPatterns.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (src.startsWith('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } =\n require('./match-local-pattern') as typeof import('./match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } =\n require('./match-remote-pattern') as typeof import('./match-remote-pattern')\n if (\n !hasRemoteMatch(config.domains!, config.remotePatterns!, parsedSrc)\n ) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n }\n\n const q = findClosestQuality(quality, config)\n\n let deploymentId = getDeploymentId()\n return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${q}${\n src.startsWith('/') && deploymentId ? `&dpl=${deploymentId}` : ''\n }`\n}\n\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true\n\nexport default defaultLoader\n","'use client'\n\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useState,\n forwardRef,\n use,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport Head from '../shared/lib/head'\nimport { getImgProps } from '../shared/lib/get-img-props'\nimport type {\n ImageProps,\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from '../shared/lib/get-img-props'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n} from '../shared/lib/image-config'\nimport { imageConfigDefault } from '../shared/lib/image-config'\nimport { ImageConfigContext } from '../shared/lib/image-config-context.shared-runtime'\nimport { warnOnce } from '../shared/lib/utils/warn-once'\nimport { RouterContext } from '../shared/lib/router-context.shared-runtime'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\nimport { useMergedRef } from './use-merged-ref'\n\n// This is replaced by webpack define plugin\nconst configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nexport type { ImageLoaderProps }\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src': string | undefined\n}\n\ntype ImageElementProps = ImgProps & {\n unoptimized: boolean\n placeholder: PlaceholderValue\n onLoadRef: React.MutableRefObject<OnLoad | undefined>\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>\n setBlurComplete: (b: boolean) => void\n setShowAltText: (b: boolean) => void\n sizesInput: string | undefined\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n placeholder: PlaceholderValue,\n onLoadRef: React.MutableRefObject<OnLoad | undefined>,\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>,\n setBlurComplete: (b: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined\n) {\n const src = img?.src\n if (!img || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true)\n }\n if (onLoadRef?.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load')\n Object.defineProperty(event, 'target', { writable: false, value: img })\n let prevented = false\n let stopped = false\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: () => prevented,\n isPropagationStopped: () => stopped,\n persist: () => {},\n preventDefault: () => {\n prevented = true\n event.preventDefault()\n },\n stopPropagation: () => {\n stopped = true\n event.stopPropagation()\n },\n })\n }\n if (onLoadingCompleteRef?.current) {\n onLoadingCompleteRef.current(img)\n }\n if (process.env.NODE_ENV !== 'production') {\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n } else {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement)\n const valid = ['absolute', 'fixed', 'relative']\n if (!valid.includes(position)) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and parent element with invalid \"position\". Provided \"${position}\" should be one of ${valid\n .map(String)\n .join(',')}.`\n )\n }\n }\n if (img.height === 0) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.`\n )\n }\n }\n\n const heightModified =\n img.height.toString() !== img.getAttribute('height')\n const widthModified = img.width.toString() !== img.getAttribute('width')\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n warnOnce(\n `Image with src \"${origSrc}\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: \"auto\"' or 'height: \"auto\"' to maintain the aspect ratio.`\n )\n }\n }\n })\n}\n\nfunction getDynamicProps(\n fetchPriority?: string\n): Record<string, string | undefined> {\n if (Boolean(use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return { fetchPriority }\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return { fetchpriority: fetchPriority }\n}\n\nconst ImageElement = forwardRef<HTMLImageElement | null, ImageElementProps>(\n (\n {\n src,\n srcSet,\n sizes,\n height,\n width,\n decoding,\n className,\n style,\n fetchPriority,\n placeholder,\n loading,\n unoptimized,\n fill,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n setShowAltText,\n sizesInput,\n onLoad,\n onError,\n ...rest\n },\n forwardedRef\n ) => {\n const ownRef = useCallback(\n (img: ImgElementWithDataProp | null) => {\n if (!img) {\n return\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n if (img.getAttribute('alt') === null) {\n console.error(\n `Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.`\n )\n }\n }\n if (img.complete) {\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }\n },\n [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n sizesInput,\n ]\n )\n\n const ref = useMergedRef(forwardedRef, ownRef)\n\n return (\n <img\n {...rest}\n {...getDynamicProps(fetchPriority)}\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading={loading}\n width={width}\n height={height}\n decoding={decoding}\n data-nimg={fill ? 'fill' : '1'}\n className={className}\n style={style}\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes={sizes}\n srcSet={srcSet}\n src={src}\n ref={ref}\n onLoad={(event) => {\n const img = event.currentTarget as ImgElementWithDataProp\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }}\n onError={(event) => {\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true)\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n )\n }\n)\n\nfunction ImagePreload({\n isAppRouter,\n imgAttributes,\n}: {\n isAppRouter: boolean\n imgAttributes: ImgProps\n}) {\n const opts: ReactDOM.PreloadOptions = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority),\n }\n\n if (isAppRouter && ReactDOM.preload) {\n ReactDOM.preload(imgAttributes.src, opts)\n return null\n }\n\n return (\n <Head>\n <link\n key={\n '__nimg-' +\n imgAttributes.src +\n imgAttributes.srcSet +\n imgAttributes.sizes\n }\n rel=\"preload\"\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href={imgAttributes.srcSet ? undefined : imgAttributes.src}\n {...opts}\n />\n </Head>\n )\n}\n\n/**\n * The `Image` component is used to optimize images.\n *\n * Read more: [Next.js docs: `Image`](https://nextjs.org/docs/app/api-reference/components/image)\n */\nexport const Image = forwardRef<HTMLImageElement | null, ImageProps>(\n (props, forwardedRef) => {\n const pagesRouter = useContext(RouterContext)\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter\n\n const configContext = useContext(ImageConfigContext)\n const config = useMemo(() => {\n const c = configEnv || configContext || imageConfigDefault\n\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n return {\n ...c,\n allSizes,\n deviceSizes,\n qualities,\n // During the SSR, configEnv (__NEXT_IMAGE_OPTS) does not include\n // security sensitive configs like `localPatterns`, which is needed\n // during the server render to ensure it's validated. Therefore use\n // configContext, which holds the config from the server for validation.\n localPatterns:\n typeof window === 'undefined'\n ? configContext?.localPatterns\n : c.localPatterns,\n }\n }, [configContext])\n\n const { onLoad, onLoadingComplete } = props\n const onLoadRef = useRef(onLoad)\n\n useEffect(() => {\n onLoadRef.current = onLoad\n }, [onLoad])\n\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [showAltText, setShowAltText] = useState(false)\n const { props: imgAttributes, meta: imgMeta } = getImgProps(props, {\n defaultLoader,\n imgConf: config,\n blurComplete,\n showAltText,\n })\n\n return (\n <>\n {\n <ImageElement\n {...imgAttributes}\n unoptimized={imgMeta.unoptimized}\n placeholder={imgMeta.placeholder}\n fill={imgMeta.fill}\n onLoadRef={onLoadRef}\n onLoadingCompleteRef={onLoadingCompleteRef}\n setBlurComplete={setBlurComplete}\n setShowAltText={setShowAltText}\n sizesInput={props.sizes}\n ref={forwardedRef}\n />\n }\n {imgMeta.preload ? (\n <ImagePreload\n isAppRouter={isAppRouter}\n imgAttributes={imgAttributes}\n />\n ) : null}\n </>\n )\n }\n)\n"],"names":["SideEffect","isServer","window","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","props","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","filter","Boolean","updateHead","add","children","delete","_pendingUpdate","module","exports","require","vendored","HeadManagerContext","defaultHead","head","meta","charSet","name","content","onlyReactElement","list","child","type","React","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","Set","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","has","i","len","length","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","map","c","process","env","NODE_ENV","srcMessage","warnOnce","cloneElement","Head","useContext","Effect","getImageBlurSvg","widthInt","heightInt","blurWidth","blurHeight","blurDataURL","objectFit","std","svgWidth","svgHeight","viewBox","preserveAspectRatio","VALID_LOADERS","imageConfigDefault","deviceSizes","imageSizes","path","loader","loaderFile","domains","disableStaticImages","minimumCacheTTL","formats","maximumRedirects","dangerouslyAllowLocalIP","dangerouslyAllowSVG","contentSecurityPolicy","contentDispositionType","localPatterns","undefined","remotePatterns","qualities","unoptimized","getImgProps","VALID_LOADING_VALUES","INVALID_BACKGROUND_SIZE_VALUES","isStaticRequire","src","default","isStaticImageData","isStaticImport","allImgs","Map","perfObserver","getInt","x","Number","isFinite","NaN","test","parseInt","getWidths","allSizes","width","sizes","viewportWidthRe","percentSizes","match","exec","push","smallestRatio","Math","min","widths","s","kind","w","find","p","generateImgAttrs","config","quality","deploymentId","getDeploymentId","startsWith","sep","includes","srcSet","last","join","priority","preload","loading","className","height","fill","style","overrideSrc","onLoad","onLoadingComplete","placeholder","fetchPriority","decoding","layout","objectPosition","lazyBoundary","lazyRoot","rest","_state","imgConf","showAltText","blurComplete","defaultLoader","sort","a","b","Error","isDefaultLoader","customImageLoader","obj","_","opts","layoutToStyle","intrinsic","maxWidth","responsive","layoutToSizes","layoutStyle","layoutSizes","staticSrc","staticImageData","JSON","stringify","ratio","round","isLazy","split","endsWith","qualityInt","output","position","isNaN","String","VALID_BLUR_EXT","urlStr","url","URL","err","pathname","search","legacyKey","legacyValue","Object","entries","PerformanceObserver","entryList","entry","getEntries","imgSrc","element","lcpImage","get","observe","buffered","console","error","imgStyle","assign","left","top","right","bottom","color","backgroundImage","backgroundSize","placeholderStyle","backgroundPosition","backgroundRepeat","imgAttributes","loadingFinal","fullUrl","e","location","href","set","ImageConfigContext","RouterContext","findClosestQuality","q","prev","cur","abs","missingValues","NEXT_RUNTIME","hasLocalMatch","parsedSrc","hasRemoteMatch","hostname","encodeURIComponent","__next_img_default","Image","configEnv","__NEXT_IMAGE_OPTS","globalThis","__NEXT_IMAGE_IMPORTED","handleLoading","img","onLoadRef","onLoadingCompleteRef","setBlurComplete","sizesInput","decode","Promise","resolve","catch","then","parentElement","isConnected","current","event","Event","defineProperty","writable","value","prevented","stopped","nativeEvent","currentTarget","target","isDefaultPrevented","isPropagationStopped","persist","preventDefault","stopPropagation","origSrc","searchParams","getAttribute","widthViewportRatio","getBoundingClientRect","innerWidth","getComputedStyle","valid","heightModified","toString","widthModified","getDynamicProps","use","fetchpriority","ImageElement","forwardRef","setShowAltText","onError","forwardedRef","ownRef","useCallback","complete","ref","useMergedRef","data-nimg","ImagePreload","isAppRouter","as","imageSrcSet","crossOrigin","referrerPolicy","ReactDOM","link","rel","pagesRouter","configContext","useMemo","useRef","useState","imgMeta"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
@@ -0,0 +1,3 @@
1
+ module.exports=[69134,a=>{a.v("/_next/static/media/favicon.678eb597.ico")},71584,a=>{"use strict";let b={src:a.i(69134).default,width:32,height:32};a.s(["default",0,b])}];
2
+
3
+ //# sourceMappingURL=packages_preview-server_src_app_897ecf1c._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/preview-server/src/app/favicon.ico.mjs%20%28structured%20image%20object%29"],"sourcesContent":["import src from \"IMAGE\";\nexport default { src, width: 32, height: 32 }\n"],"names":[],"mappings":"wGACe,CAAE,IADjB,AACiB,EADjB,CAAA,CAAA,OACiB,OAAG,CAAE,MAAO,GAAI,OAAQ,EAAG"}
@@ -0,0 +1,3 @@
1
+ module.exports=[49451,a=>{"use strict";var b=a.i(53213),c=a.i(4383),d=a.i(66808),e=a.i(14358),f=a.i(54049);let g={};var h=a.i(16084);let i=(0,h.createServerReference)("7f1e0a2c5b54b715425f9913d454ad50d17d9d39e9",h.callServer,void 0,h.findSourceMapURL,"getTemplatePathFromSlug"),j=(0,h.createServerReference)("602e543a6b3c3b93bbf906083c568a0be72c505203",h.callServer,void 0,h.findSourceMapURL,"renderTemplateByPath");var k=a.i(69431);let l=(a,b)=>m(a.replace(b.relativePath,"").split("/").filter(Boolean),b),m=(a,b)=>{if(1===a.length){var c;let d,e=(d=(c=a[0]).split(".")).length>1?d.slice(0,-1).join("."):c;return b.templateFilenames.includes(e)}let d=a.join("/");for(let c of b.subDirectories)if(d.startsWith(c.directoryName)){let b=c.directoryName.split("/").filter(Boolean).length;return m(a.slice(b),c)}return!1},n=(0,d.createContext)(void 0);a.s(["PreviewContext",0,n,"PreviewProvider",0,({templateSlug:a,templatePath:h,serverRenderingResult:m,children:o})=>{let p=(0,c.useRouter)(),q=((a,b)=>{let[c,g]=(0,d.useState)(b),{templatesDirectoryMetadata:h}=(0,k.useTemplates)();return e.isBuilding||e.isPreviewDevelopment||(0,f.useHotreload)(async b=>{for await(let c of b){let b=c.filename;if(!l(b,h))continue;let d=await i(b),e=await j(d,!0);d===a&&g(e)}}),c})(h,m),r=((0,d.useEffect)(()=>{"markup"in q?g[h]=q:void 0!==m&&"markup"in m&&void 0===g[h]&&(g[h]=m)},[q,h,m]),"error"in q?g[h]:q);return e.isBuilding||e.isPreviewDevelopment||(0,f.useHotreload)(b=>{let c=b.find(b=>b.filename.includes(a));void 0!==c&&"unlink"===c.event&&p.push("/")}),(0,b.jsx)(n.Provider,{value:{templatePath:h,templateSlug:a,renderedTemplateMetadata:r,renderingResult:q},children:o})},"usePreviewContext",0,()=>{let a=(0,d.useContext)(n);if(void 0===a)throw Error("Cannot call `usePreviewContext` outside of an `PreviewContext` provider.");return a}],49451)},73206,30635,34053,84787,a=>{"use strict";var b=a.i(53213),c=a.i(66808),d=a.i(68334);let e=c.forwardRef(({...a},c)=>(0,b.jsx)(d.IconBase,{ref:c,...a,children:(0,b.jsx)("path",{d:"M16.25 8.75L10.406 15.25L7.75 12.75",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5"})}));e.displayName="IconCheck",a.s(["IconCheck",0,e],73206);var f=a.i(59653),g=a.i(22114),h=a.i(49863),i=a.i(93430),j=new WeakMap;function k(a,b){var c,d;let e,f,g;if("at"in Array.prototype)return Array.prototype.at.call(a,b);let h=(c=a,d=b,e=c.length,(g=(f=l(d))>=0?f:e+f)<0||g>=e?-1:g);return -1===h?void 0:a[h]}function l(a){return a!=a||0===a?0:Math.trunc(a)}(class a extends Map{#a;constructor(a){super(a),this.#a=[...super.keys()],j.set(this,!0)}set(a,b){return j.get(this)&&(this.has(a)?this.#a[this.#a.indexOf(a)]=a:this.#a.push(a)),super.set(a,b),this}insert(a,b,c){let d,e=this.has(b),f=this.#a.length,g=l(a),h=g>=0?g:f+g,i=h<0||h>=f?-1:h;if(i===this.size||e&&i===this.size-1||-1===i)return this.set(b,c),this;let j=this.size+ +!e;g<0&&h++;let k=[...this.#a],m=!1;for(let a=h;a<j;a++)if(h===a){let f=k[a];k[a]===b&&(f=k[a+1]),e&&this.delete(b),d=this.get(f),this.set(b,c)}else{m||k[a-1]!==b||(m=!0);let c=k[m?a:a-1],e=d;d=this.get(c),this.delete(c),this.set(c,e)}return this}with(b,c,d){let e=new a(this);return e.insert(b,c,d),e}before(a){let b=this.#a.indexOf(a)-1;if(!(b<0))return this.entryAt(b)}setBefore(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d,b,c)}after(a){let b=this.#a.indexOf(a);if(-1!==(b=-1===b||b===this.size-1?-1:b+1))return this.entryAt(b)}setAfter(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d+1,b,c)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#a=[],super.clear()}delete(a){let b=super.delete(a);return b&&this.#a.splice(this.#a.indexOf(a),1),b}deleteAt(a){let b=this.keyAt(a);return void 0!==b&&this.delete(b)}at(a){let b=k(this.#a,a);if(void 0!==b)return this.get(b)}entryAt(a){let b=k(this.#a,a);if(void 0!==b)return[b,this.get(b)]}indexOf(a){return this.#a.indexOf(a)}keyAt(a){return k(this.#a,a)}from(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.at(d)}keyFrom(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.keyAt(d)}find(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return d;c++}}findIndex(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return c;c++}return -1}filter(b,c){let d=[],e=0;for(let a of this)Reflect.apply(b,c,[a,e,this])&&d.push(a),e++;return new a(d)}map(b,c){let d=[],e=0;for(let a of this)d.push([a[0],Reflect.apply(b,c,[a,e,this])]),e++;return new a(d)}reduce(...a){let[b,c]=a,d=0,e=c??this.at(0);for(let c of this)e=0===d&&1===a.length?c:Reflect.apply(b,this,[e,c,d,this]),d++;return e}reduceRight(...a){let[b,c]=a,d=c??this.at(-1);for(let c=this.size-1;c>=0;c--){let e=this.at(c);d=c===this.size-1&&1===a.length?e:Reflect.apply(b,this,[d,e,c,this])}return d}toSorted(b){return new a([...this.entries()].sort(b))}toReversed(){let b=new a;for(let a=this.size-1;a>=0;a--){let c=this.keyAt(a),d=this.get(c);b.set(c,d)}return b}toSpliced(...b){let c=[...this.entries()];return c.splice(...b),new a(c)}slice(b,c){let d=new a,e=this.size-1;if(void 0===b)return d;b<0&&(b+=this.size),void 0!==c&&c>0&&(e=c-1);for(let a=b;a<=e;a++){let b=this.keyAt(a),c=this.get(b);d.set(b,c)}return d}every(a,b){let c=0;for(let d of this){if(!Reflect.apply(a,b,[d,c,this]))return!1;c++}return!0}some(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return!0;c++}return!1}});var m=a.i(10054),n=a.i(97733),o=a.i(4647),p=a.i(45015),q=c.createContext(void 0);function r(a){let b=c.useContext(q);return a||b||"ltr"}a.s(["useDirection",()=>r],30635);var s="rovingFocusGroup.onEntryFocus",t={bubbles:!1,cancelable:!0},u="RovingFocusGroup",[v,w,x]=function(a){let d=a+"CollectionProvider",[e,f]=(0,g.createContextScope)(d),[j,k]=e(d,{collectionRef:{current:null},itemMap:new Map}),l=a=>{let{scope:d,children:e}=a,f=c.default.useRef(null),g=c.default.useRef(new Map).current;return(0,b.jsx)(j,{scope:d,itemMap:g,collectionRef:f,children:e})};l.displayName=d;let m=a+"CollectionSlot",n=(0,i.createSlot)(m),o=c.default.forwardRef((a,c)=>{let{scope:d,children:e}=a,f=k(m,d),g=(0,h.useComposedRefs)(c,f.collectionRef);return(0,b.jsx)(n,{ref:g,children:e})});o.displayName=m;let p=a+"CollectionItemSlot",q="data-radix-collection-item",r=(0,i.createSlot)(p),s=c.default.forwardRef((a,d)=>{let{scope:e,children:f,...g}=a,i=c.default.useRef(null),j=(0,h.useComposedRefs)(d,i),l=k(p,e);return c.default.useEffect(()=>(l.itemMap.set(i,{ref:i,...g}),()=>void l.itemMap.delete(i))),(0,b.jsx)(r,{...{[q]:""},ref:j,children:f})});return s.displayName=p,[{Provider:l,Slot:o,ItemSlot:s},function(b){let d=k(a+"CollectionConsumer",b);return c.default.useCallback(()=>{let a=d.collectionRef.current;if(!a)return[];let b=Array.from(a.querySelectorAll(`[${q}]`));return Array.from(d.itemMap.values()).sort((a,c)=>b.indexOf(a.ref.current)-b.indexOf(c.ref.current))},[d.collectionRef,d.itemMap])},f]}(u),[y,z]=(0,g.createContextScope)(u,[x]),[A,B]=y(u),C=c.forwardRef((a,c)=>(0,b.jsx)(v.Provider,{scope:a.__scopeRovingFocusGroup,children:(0,b.jsx)(v.Slot,{scope:a.__scopeRovingFocusGroup,children:(0,b.jsx)(D,{...a,ref:c})})}));C.displayName=u;var D=c.forwardRef((a,d)=>{let{__scopeRovingFocusGroup:e,orientation:g,loop:i=!1,dir:j,currentTabStopId:k,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:m,onEntryFocus:q,preventScrollOnEntryFocus:v=!1,...x}=a,y=c.useRef(null),z=(0,h.useComposedRefs)(d,y),B=r(j),[C,D]=(0,p.useControllableState)({prop:k,defaultProp:l??null,onChange:m,caller:u}),[E,F]=c.useState(!1),G=(0,o.useCallbackRef)(q),I=w(e),J=c.useRef(!1),[K,L]=c.useState(0);return c.useEffect(()=>{let a=y.current;if(a)return a.addEventListener(s,G),()=>a.removeEventListener(s,G)},[G]),(0,b.jsx)(A,{scope:e,orientation:g,dir:B,loop:i,currentTabStopId:C,onItemFocus:c.useCallback(a=>D(a),[D]),onItemShiftTab:c.useCallback(()=>F(!0),[]),onFocusableItemAdd:c.useCallback(()=>L(a=>a+1),[]),onFocusableItemRemove:c.useCallback(()=>L(a=>a-1),[]),children:(0,b.jsx)(n.Primitive.div,{tabIndex:E||0===K?-1:0,"data-orientation":g,...x,ref:z,style:{outline:"none",...a.style},onMouseDown:(0,f.composeEventHandlers)(a.onMouseDown,()=>{J.current=!0}),onFocus:(0,f.composeEventHandlers)(a.onFocus,a=>{let b=!J.current;if(a.target===a.currentTarget&&b&&!E){let b=new CustomEvent(s,t);if(a.currentTarget.dispatchEvent(b),!b.defaultPrevented){let a=I().filter(a=>a.focusable);H([a.find(a=>a.active),a.find(a=>a.id===C),...a].filter(Boolean).map(a=>a.ref.current),v)}}J.current=!1}),onBlur:(0,f.composeEventHandlers)(a.onBlur,()=>F(!1))})})}),E="RovingFocusGroupItem",F=c.forwardRef((a,d)=>{let{__scopeRovingFocusGroup:e,focusable:g=!0,active:h=!1,tabStopId:i,children:j,...k}=a,l=(0,m.useId)(),o=i||l,p=B(E,e),q=p.currentTabStopId===o,r=w(e),{onFocusableItemAdd:s,onFocusableItemRemove:t,currentTabStopId:u}=p;return c.useEffect(()=>{if(g)return s(),()=>t()},[g,s,t]),(0,b.jsx)(v.ItemSlot,{scope:e,id:o,focusable:g,active:h,children:(0,b.jsx)(n.Primitive.span,{tabIndex:q?0:-1,"data-orientation":p.orientation,...k,ref:d,onMouseDown:(0,f.composeEventHandlers)(a.onMouseDown,a=>{g?p.onItemFocus(o):a.preventDefault()}),onFocus:(0,f.composeEventHandlers)(a.onFocus,()=>p.onItemFocus(o)),onKeyDown:(0,f.composeEventHandlers)(a.onKeyDown,a=>{if("Tab"===a.key&&a.shiftKey)return void p.onItemShiftTab();if(a.target!==a.currentTarget)return;let b=function(a,b,c){var d;let e=(d=a.key,"rtl"!==c?d:"ArrowLeft"===d?"ArrowRight":"ArrowRight"===d?"ArrowLeft":d);if(!("vertical"===b&&["ArrowLeft","ArrowRight"].includes(e))&&!("horizontal"===b&&["ArrowUp","ArrowDown"].includes(e)))return G[e]}(a,p.orientation,p.dir);if(void 0!==b){if(a.metaKey||a.ctrlKey||a.altKey||a.shiftKey)return;a.preventDefault();let e=r().filter(a=>a.focusable).map(a=>a.ref.current);if("last"===b)e.reverse();else if("prev"===b||"next"===b){var c,d;"prev"===b&&e.reverse();let f=e.indexOf(a.currentTarget);e=p.loop?(c=e,d=f+1,c.map((a,b)=>c[(d+b)%c.length])):e.slice(f+1)}setTimeout(()=>H(e))}}),children:"function"==typeof j?j({isCurrentTabStop:q,hasTabStop:null!=u}):j})})});F.displayName=E;var G={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function H(a,b=!1){let c=document.activeElement;for(let d of a)if(d===c||(d.focus({preventScroll:b}),document.activeElement!==c))return}a.s(["Item",()=>F,"Root",()=>C,"createRovingFocusGroupScope",()=>z],34053);var I=a.i(44320),J="Tabs",[K,L]=(0,g.createContextScope)(J,[z]),M=z(),[N,O]=K(J),P=c.forwardRef((a,c)=>{let{__scopeTabs:d,value:e,onValueChange:f,defaultValue:g,orientation:h="horizontal",dir:i,activationMode:j="automatic",...k}=a,l=r(i),[o,q]=(0,p.useControllableState)({prop:e,onChange:f,defaultProp:g??"",caller:J});return(0,b.jsx)(N,{scope:d,baseId:(0,m.useId)(),value:o,onValueChange:q,orientation:h,dir:l,activationMode:j,children:(0,b.jsx)(n.Primitive.div,{dir:l,"data-orientation":h,...k,ref:c})})});P.displayName=J;var Q="TabsList",R=c.forwardRef((a,c)=>{let{__scopeTabs:d,loop:e=!0,...f}=a,g=O(Q,d),h=M(d);return(0,b.jsx)(C,{asChild:!0,...h,orientation:g.orientation,dir:g.dir,loop:e,children:(0,b.jsx)(n.Primitive.div,{role:"tablist","aria-orientation":g.orientation,...f,ref:c})})});R.displayName=Q;var S="TabsTrigger",T=c.forwardRef((a,c)=>{let{__scopeTabs:d,value:e,disabled:g=!1,...h}=a,i=O(S,d),j=M(d),k=W(i.baseId,e),l=X(i.baseId,e),m=e===i.value;return(0,b.jsx)(F,{asChild:!0,...j,focusable:!g,active:m,children:(0,b.jsx)(n.Primitive.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":l,"data-state":m?"active":"inactive","data-disabled":g?"":void 0,disabled:g,id:k,...h,ref:c,onMouseDown:(0,f.composeEventHandlers)(a.onMouseDown,a=>{g||0!==a.button||!1!==a.ctrlKey?a.preventDefault():i.onValueChange(e)}),onKeyDown:(0,f.composeEventHandlers)(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&i.onValueChange(e)}),onFocus:(0,f.composeEventHandlers)(a.onFocus,()=>{let a="manual"!==i.activationMode;m||g||!a||i.onValueChange(e)})})})});T.displayName=S;var U="TabsContent",V=c.forwardRef((a,d)=>{let{__scopeTabs:e,value:f,forceMount:g,children:h,...i}=a,j=O(U,e),k=W(j.baseId,f),l=X(j.baseId,f),m=f===j.value,o=c.useRef(m);return c.useEffect(()=>{let a=requestAnimationFrame(()=>o.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,b.jsx)(I.Presence,{present:g||m,children:({present:c})=>(0,b.jsx)(n.Primitive.div,{"data-state":m?"active":"inactive","data-orientation":j.orientation,role:"tabpanel","aria-labelledby":k,hidden:!c,id:l,tabIndex:0,...i,ref:d,style:{...a.style,animationDuration:o.current?"0s":void 0},children:c&&h})})});function W(a,b){return`${a}-trigger-${b}`}function X(a,b){return`${a}-content-${b}`}V.displayName=U;var Y=a.i(4760),Z=a.i(4383),$=a.i(49451);a.i(90971);var _=a.i(32037),aa=a.i(76071);let ab=c.forwardRef(({...a},c)=>(0,b.jsx)(d.IconBase,{ref:c,...a,children:(0,b.jsx)("path",{d:"M12 4C7.58173 4 4 7.58172 4 12C4 16.4182 7.58173 20 12 20C16.4183 20 20 16.4182 20 12C20 7.58172 16.4183 4 12 4ZM5.14754 12C5.14754 8.21549 8.21551 5.14754 12 5.14754C15.7845 5.14754 18.8525 8.21549 18.8525 12C18.8525 15.7844 15.7845 18.8525 12 18.8525C8.21551 18.8525 5.14754 15.7844 5.14754 12ZM12.906 8.37648C12.906 8.87682 12.5004 9.28243 12 9.28243C11.4997 9.28243 11.0941 8.87682 11.0941 8.37648C11.0941 7.87613 11.4997 7.47053 12 7.47053C12.5004 7.47053 12.906 7.87613 12.906 8.37648ZM10.1883 10.1884H10.7922H12.0002C12.3337 10.1884 12.6041 10.4588 12.6041 10.7924V15.0201H13.2081H13.8121V16.2281H13.2081H12.0002H10.7922H10.1883V15.0201H10.7922H11.3962V11.3963H10.7922H10.1883V10.1884Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})}));ab.displayName="IconInfo";var ac=a.i(98978),ad=a.i(97285);let ae=({children:a,className:c,active:d,tooltip:e,delayDuration:f=500,...g})=>(0,b.jsx)(ad.Tooltip.Provider,{children:(0,b.jsxs)(ad.Tooltip,{delayDuration:f,children:[(0,b.jsx)(ad.Tooltip.Trigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",...g,className:(0,_.cn)("h-full w-fit font-regular flex text-sm text-slate-10 items-center align-middle justify-center px-1 gap-2 relative","hover:text-slate-12 transition-colors",d&&"data-[state=active]:text-cyan-11",c),children:[a,d?(0,b.jsx)(ac.motion.span,{className:"-bottom-px absolute rounded-xs left-0 w-full bg-cyan-11 h-px",layoutId:"active-toolbar-button",transition:{type:"spring",bounce:.2,duration:.6}}):null]})}),e?(0,b.jsx)(ad.Tooltip.Content,{children:e}):null]})}),af=()=>{let a=(0,Z.useSearchParams)().get("toolbar-panel")??void 0;return{activeTab:a,toggled:void 0!==a}},ag=()=>{let a=(0,Z.usePathname)(),d=(0,Z.useSearchParams)(),e=(0,Z.useRouter)(),{activeTab:f,toggled:g}=af(),h=b=>{let c=new URLSearchParams(d);void 0===b?c.delete("toolbar-panel"):c.set("toolbar-panel",b),e.push(`${a}?${c.toString()}${location.hash}`)},i=c.useId();return(0,b.jsx)("div",{"data-toggled":g,className:(0,_.cn)("absolute bottom-0 left-0 right-0","border-t border-slate-6 group/toolbar text-xs text-slate-11 h-52 transition-transform","data-[toggled=false]:translate-y-42.5"),children:(0,b.jsx)(P,{value:f??"",onValueChange:a=>{h(a)},asChild:!0,children:(0,b.jsxs)("div",{className:"flex flex-col h-full",children:[(0,b.jsxs)(R,{className:"flex gap-4 px-4 border-b border-solid border-slate-6 h-10 w-full shrink-0",children:[(0,b.jsx)(Y.LayoutGroup,{id:`toolbar-${i}`,children:(0,b.jsx)(T,{asChild:!0,value:"linter",children:(0,b.jsx)(ae,{active:"linter"===f,children:"Linter"})})}),(0,b.jsxs)("div",{className:"flex gap-0.5 ml-auto",children:[(0,b.jsx)(ae,{delayDuration:0,tooltip:"linter"===f?"PDF-specific linting features are coming soon. This will check for page breaks, print CSS issues, font loading problems, and more.":"Info",children:(0,b.jsx)(ab,{size:24})}),(0,b.jsx)(ae,{tooltip:"Toggle toolbar",onClick:()=>{void 0===f?h("linter"):h(void 0)},children:(0,b.jsx)(aa.IconArrowDown,{size:24,className:"transition-transform group-data-[toggled=false]/toolbar:rotate-180"})})]})]}),(0,b.jsx)("div",{className:"grow transition-opacity opacity-100 group-data-[toggled=false]/toolbar:opacity-0 overflow-y-auto pr-3 pl-4 pt-3",children:(0,b.jsx)(V,{value:"linter",children:(0,b.jsxs)(ah,{children:[(0,b.jsx)(ai,{}),(0,b.jsx)(aj,{children:"PDF Linter Coming Soon"}),(0,b.jsx)(ak,{children:"We're working on PDF-specific linting features that will check for page breaks, print CSS issues, font loading problems, and more. Stay tuned!"})]})})})]})})})},ah=({children:a})=>(0,b.jsx)("div",{className:"flex flex-col items-center justify-center pt-8",children:a}),ai=()=>(0,b.jsxs)("div",{className:"relative mb-8 flex items-center justify-center",children:[(0,b.jsx)("div",{className:"h-16 w-16 rounded-full bg-linear-to-br from-green-300/20 opacity-80 to-emerald-500/30 blur-md absolute m-auto left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"}),(0,b.jsx)("div",{className:"h-12 w-12 rounded-full bg-linear-to-br from-green-400/80 opacity-10 to-emerald-600/80 absolute m-auto left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 shadow-lg"}),(0,b.jsx)("div",{className:"h-10 w-10 rounded-full bg-linear-to-br from-green-400 to-emerald-600 flex items-center justify-center absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 shadow-[inset_0_1px_1px_rgba(255,255,255,0.4)]",children:(0,b.jsx)(e,{size:24,className:"text-white drop-shadow-xs"})})]}),aj=({children:a,className:c,...d})=>(0,b.jsx)("h3",{className:(0,_.cn)("text-slate-12 font-medium text-base mb-1",c),...d,children:a}),ak=({children:a,className:c,...d})=>(0,b.jsx)("p",{className:(0,_.cn)("text-slate-11 text-sm text-center max-w-[320px]",c),...d,children:a});function al(){let{renderedTemplateMetadata:a}=(0,$.usePreviewContext)();return void 0===a?null:(0,b.jsx)(ag,{})}a.s(["Toolbar",()=>al,"useToolbarState",0,af],84787)},73897,a=>{"use strict";let b;var c,d,e,f,g,h,i,j=a.i(53213),k=a.i(4383),l=a.i(66808),m=a.i(59348);let n=Array(12).fill(0),o=({visible:a,className:b})=>l.default.createElement("div",{className:["sonner-loading-wrapper",b].filter(Boolean).join(" "),"data-visible":a},l.default.createElement("div",{className:"sonner-spinner"},n.map((a,b)=>l.default.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${b}`})))),p=l.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},l.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),q=l.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},l.default.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),r=l.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},l.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),s=l.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},l.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),t=l.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},l.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),l.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),u=1,v=new class{constructor(){this.subscribe=a=>(this.subscribers.push(a),()=>{let b=this.subscribers.indexOf(a);this.subscribers.splice(b,1)}),this.publish=a=>{this.subscribers.forEach(b=>b(a))},this.addToast=a=>{this.publish(a),this.toasts=[...this.toasts,a]},this.create=a=>{var b;let{message:c,...d}=a,e="number"==typeof(null==a?void 0:a.id)||(null==(b=a.id)?void 0:b.length)>0?a.id:u++,f=this.toasts.find(a=>a.id===e),g=void 0===a.dismissible||a.dismissible;return this.dismissedToasts.has(e)&&this.dismissedToasts.delete(e),f?this.toasts=this.toasts.map(b=>b.id===e?(this.publish({...b,...a,id:e,title:c}),{...b,...a,id:e,dismissible:g,title:c}):b):this.addToast({title:c,...d,dismissible:g,id:e}),e},this.dismiss=a=>(a?(this.dismissedToasts.add(a),requestAnimationFrame(()=>this.subscribers.forEach(b=>b({id:a,dismiss:!0})))):this.toasts.forEach(a=>{this.subscribers.forEach(b=>b({id:a.id,dismiss:!0}))}),a),this.message=(a,b)=>this.create({...b,message:a}),this.error=(a,b)=>this.create({...b,message:a,type:"error"}),this.success=(a,b)=>this.create({...b,type:"success",message:a}),this.info=(a,b)=>this.create({...b,type:"info",message:a}),this.warning=(a,b)=>this.create({...b,type:"warning",message:a}),this.loading=(a,b)=>this.create({...b,type:"loading",message:a}),this.promise=(a,b)=>{let c,d;if(!b)return;void 0!==b.loading&&(d=this.create({...b,promise:a,type:"loading",message:b.loading,description:"function"!=typeof b.description?b.description:void 0}));let e=Promise.resolve(a instanceof Function?a():a),f=void 0!==d,g=e.then(async a=>{if(c=["resolve",a],l.default.isValidElement(a))f=!1,this.create({id:d,type:"default",message:a});else if(w(a)&&!a.ok){f=!1;let c="function"==typeof b.error?await b.error(`HTTP error! status: ${a.status}`):b.error,e="function"==typeof b.description?await b.description(`HTTP error! status: ${a.status}`):b.description,g="object"!=typeof c||l.default.isValidElement(c)?{message:c}:c;this.create({id:d,type:"error",description:e,...g})}else if(a instanceof Error){f=!1;let c="function"==typeof b.error?await b.error(a):b.error,e="function"==typeof b.description?await b.description(a):b.description,g="object"!=typeof c||l.default.isValidElement(c)?{message:c}:c;this.create({id:d,type:"error",description:e,...g})}else if(void 0!==b.success){f=!1;let c="function"==typeof b.success?await b.success(a):b.success,e="function"==typeof b.description?await b.description(a):b.description,g="object"!=typeof c||l.default.isValidElement(c)?{message:c}:c;this.create({id:d,type:"success",description:e,...g})}}).catch(async a=>{if(c=["reject",a],void 0!==b.error){f=!1;let c="function"==typeof b.error?await b.error(a):b.error,e="function"==typeof b.description?await b.description(a):b.description,g="object"!=typeof c||l.default.isValidElement(c)?{message:c}:c;this.create({id:d,type:"error",description:e,...g})}}).finally(()=>{f&&(this.dismiss(d),d=void 0),null==b.finally||b.finally.call(b)}),h=()=>new Promise((a,b)=>g.then(()=>"reject"===c[0]?b(c[1]):a(c[1])).catch(b));return"string"!=typeof d&&"number"!=typeof d?{unwrap:h}:Object.assign(d,{unwrap:h})},this.custom=(a,b)=>{let c=(null==b?void 0:b.id)||u++;return this.create({jsx:a(c),id:c,...b}),c},this.getActiveToasts=()=>this.toasts.filter(a=>!this.dismissedToasts.has(a.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},w=a=>a&&"object"==typeof a&&"ok"in a&&"boolean"==typeof a.ok&&"status"in a&&"number"==typeof a.status,x=Object.assign((a,b)=>{let c=(null==b?void 0:b.id)||u++;return v.addToast({title:a,...b,id:c}),c},{success:v.success,info:v.info,warning:v.warning,error:v.error,custom:v.custom,message:v.message,promise:v.promise,dismiss:v.dismiss,loading:v.loading},{getHistory:()=>v.toasts,getToasts:()=>v.getActiveToasts()});function y(a){return void 0!==a.label}function z(...a){return a.filter(Boolean).join(" ")}!function(a){if(!a||"undefined"==typeof document)return;let b=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css",b.appendChild(c),c.styleSheet?c.styleSheet.cssText=a:c.appendChild(document.createTextNode(a))}("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}[data-sonner-toaster][data-lifted=true]{transform:translateY(-8px)}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");let A=a=>{var b,c,d,e,f,g,h,i,j,k,m,n,u;let{invert:v,toast:w,unstyled:x,interacting:A,setHeights:B,visibleToasts:C,heights:D,index:E,toasts:F,expanded:G,removeToast:H,defaultRichColors:I,closeButton:J,style:K,cancelButtonStyle:L,actionButtonStyle:M,className:N="",descriptionClassName:O="",duration:P,position:Q,gap:R,expandByDefault:S,classNames:T,icons:U,closeButtonAriaLabel:V="Close toast"}=a,[W,X]=l.default.useState(null),[Y,Z]=l.default.useState(null),[$,_]=l.default.useState(!1),[aa,ab]=l.default.useState(!1),[ac,ad]=l.default.useState(!1),[ae,af]=l.default.useState(!1),[ag,ah]=l.default.useState(!1),[ai,aj]=l.default.useState(0),[ak,al]=l.default.useState(0),am=l.default.useRef(w.duration||P||4e3),an=l.default.useRef(null),ao=l.default.useRef(null),ap=0===E,aq=E+1<=C,ar=w.type,as=!1!==w.dismissible,at=w.className||"",au=w.descriptionClassName||"",av=l.default.useMemo(()=>D.findIndex(a=>a.toastId===w.id)||0,[D,w.id]),aw=l.default.useMemo(()=>{var a;return null!=(a=w.closeButton)?a:J},[w.closeButton,J]),ax=l.default.useMemo(()=>w.duration||P||4e3,[w.duration,P]),ay=l.default.useRef(0),az=l.default.useRef(0),aA=l.default.useRef(0),aB=l.default.useRef(null),[aC,aD]=Q.split("-"),aE=l.default.useMemo(()=>D.reduce((a,b,c)=>c>=av?a:a+b.height,0),[D,av]),aF=(()=>{let[a,b]=l.default.useState(document.hidden);return l.default.useEffect(()=>{let a=()=>{b(document.hidden)};return document.addEventListener("visibilitychange",a),()=>window.removeEventListener("visibilitychange",a)},[]),a})(),aG=w.invert||v,aH="loading"===ar;az.current=l.default.useMemo(()=>av*R+aE,[av,aE]),l.default.useEffect(()=>{am.current=ax},[ax]),l.default.useEffect(()=>{_(!0)},[]),l.default.useEffect(()=>{let a=ao.current;if(a){let b=a.getBoundingClientRect().height;return al(b),B(a=>[{toastId:w.id,height:b,position:w.position},...a]),()=>B(a=>a.filter(a=>a.toastId!==w.id))}},[B,w.id]),l.default.useLayoutEffect(()=>{if(!$)return;let a=ao.current,b=a.style.height;a.style.height="auto";let c=a.getBoundingClientRect().height;a.style.height=b,al(c),B(a=>a.find(a=>a.toastId===w.id)?a.map(a=>a.toastId===w.id?{...a,height:c}:a):[{toastId:w.id,height:c,position:w.position},...a])},[$,w.title,w.description,B,w.id]);let aI=l.default.useCallback(()=>{ab(!0),aj(az.current),B(a=>a.filter(a=>a.toastId!==w.id)),setTimeout(()=>{H(w)},200)},[w,H,B,az]);l.default.useEffect(()=>{let a;if((!w.promise||"loading"!==ar)&&w.duration!==1/0&&"loading"!==w.type){if(G||A||aF){if(aA.current<ay.current){let a=new Date().getTime()-ay.current;am.current=am.current-a}aA.current=new Date().getTime()}else am.current!==1/0&&(ay.current=new Date().getTime(),a=setTimeout(()=>{null==w.onAutoClose||w.onAutoClose.call(w,w),aI()},am.current));return()=>clearTimeout(a)}},[G,A,w,ar,aF,aI]),l.default.useEffect(()=>{w.delete&&aI()},[aI,w.delete]);let aJ=w.icon||(null==U?void 0:U[ar])||(a=>{switch(a){case"success":return p;case"info":return r;case"warning":return q;case"error":return s;default:return null}})(ar);return l.default.createElement("li",{tabIndex:0,ref:ao,className:z(N,at,null==T?void 0:T.toast,null==w||null==(b=w.classNames)?void 0:b.toast,null==T?void 0:T.default,null==T?void 0:T[ar],null==w||null==(c=w.classNames)?void 0:c[ar]),"data-sonner-toast":"","data-rich-colors":null!=(k=w.richColors)?k:I,"data-styled":!(w.jsx||w.unstyled||x),"data-mounted":$,"data-promise":!!w.promise,"data-swiped":ag,"data-removed":aa,"data-visible":aq,"data-y-position":aC,"data-x-position":aD,"data-index":E,"data-front":ap,"data-swiping":ac,"data-dismissible":as,"data-type":ar,"data-invert":aG,"data-swipe-out":ae,"data-swipe-direction":Y,"data-expanded":!!(G||S&&$),style:{"--index":E,"--toasts-before":E,"--z-index":F.length-E,"--offset":`${aa?ai:az.current}px`,"--initial-height":S?"auto":`${ak}px`,...K,...w.style},onDragEnd:()=>{ad(!1),X(null),aB.current=null},onPointerDown:a=>{aH||!as||(an.current=new Date,aj(az.current),a.target.setPointerCapture(a.pointerId),"BUTTON"!==a.target.tagName&&(ad(!0),aB.current={x:a.clientX,y:a.clientY}))},onPointerUp:()=>{var a,b,c,d,e;if(ae||!as)return;aB.current=null;let f=Number((null==(a=ao.current)?void 0:a.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),g=Number((null==(b=ao.current)?void 0:b.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),h=new Date().getTime()-(null==(c=an.current)?void 0:c.getTime()),i="x"===W?f:g,j=Math.abs(i)/h;if(Math.abs(i)>=45||j>.11){aj(az.current),null==w.onDismiss||w.onDismiss.call(w,w),"x"===W?Z(f>0?"right":"left"):Z(g>0?"down":"up"),aI(),af(!0);return}null==(d=ao.current)||d.style.setProperty("--swipe-amount-x","0px"),null==(e=ao.current)||e.style.setProperty("--swipe-amount-y","0px"),ah(!1),ad(!1),X(null)},onPointerMove:b=>{var c,d,e,f;if(!aB.current||!as||(null==(c=window.getSelection())?void 0:c.toString().length)>0)return;let g=b.clientY-aB.current.y,h=b.clientX-aB.current.x,i=null!=(f=a.swipeDirections)?f:function(a){let[b,c]=a.split("-"),d=[];return b&&d.push(b),c&&d.push(c),d}(Q);!W&&(Math.abs(h)>1||Math.abs(g)>1)&&X(Math.abs(h)>Math.abs(g)?"x":"y");let j={x:0,y:0},k=a=>1/(1.5+Math.abs(a)/20);if("y"===W){if(i.includes("top")||i.includes("bottom"))if(i.includes("top")&&g<0||i.includes("bottom")&&g>0)j.y=g;else{let a=g*k(g);j.y=Math.abs(a)<Math.abs(g)?a:g}}else if("x"===W&&(i.includes("left")||i.includes("right")))if(i.includes("left")&&h<0||i.includes("right")&&h>0)j.x=h;else{let a=h*k(h);j.x=Math.abs(a)<Math.abs(h)?a:h}(Math.abs(j.x)>0||Math.abs(j.y)>0)&&ah(!0),null==(d=ao.current)||d.style.setProperty("--swipe-amount-x",`${j.x}px`),null==(e=ao.current)||e.style.setProperty("--swipe-amount-y",`${j.y}px`)}},aw&&!w.jsx&&"loading"!==ar?l.default.createElement("button",{"aria-label":V,"data-disabled":aH,"data-close-button":!0,onClick:aH||!as?()=>{}:()=>{aI(),null==w.onDismiss||w.onDismiss.call(w,w)},className:z(null==T?void 0:T.closeButton,null==w||null==(d=w.classNames)?void 0:d.closeButton)},null!=(m=null==U?void 0:U.close)?m:t):null,(ar||w.icon||w.promise)&&null!==w.icon&&((null==U?void 0:U[ar])!==null||w.icon)?l.default.createElement("div",{"data-icon":"",className:z(null==T?void 0:T.icon,null==w||null==(e=w.classNames)?void 0:e.icon)},w.promise||"loading"===w.type&&!w.icon?w.icon||((null==U?void 0:U.loading)?l.default.createElement("div",{className:z(null==T?void 0:T.loader,null==w||null==(u=w.classNames)?void 0:u.loader,"sonner-loader"),"data-visible":"loading"===ar},U.loading):l.default.createElement(o,{className:z(null==T?void 0:T.loader,null==w||null==(n=w.classNames)?void 0:n.loader),visible:"loading"===ar})):null,"loading"!==w.type?aJ:null):null,l.default.createElement("div",{"data-content":"",className:z(null==T?void 0:T.content,null==w||null==(f=w.classNames)?void 0:f.content)},l.default.createElement("div",{"data-title":"",className:z(null==T?void 0:T.title,null==w||null==(g=w.classNames)?void 0:g.title)},w.jsx?w.jsx:"function"==typeof w.title?w.title():w.title),w.description?l.default.createElement("div",{"data-description":"",className:z(O,au,null==T?void 0:T.description,null==w||null==(h=w.classNames)?void 0:h.description)},"function"==typeof w.description?w.description():w.description):null),l.default.isValidElement(w.cancel)?w.cancel:w.cancel&&y(w.cancel)?l.default.createElement("button",{"data-button":!0,"data-cancel":!0,style:w.cancelButtonStyle||L,onClick:a=>{!y(w.cancel)||as&&(null==w.cancel.onClick||w.cancel.onClick.call(w.cancel,a),aI())},className:z(null==T?void 0:T.cancelButton,null==w||null==(i=w.classNames)?void 0:i.cancelButton)},w.cancel.label):null,l.default.isValidElement(w.action)?w.action:w.action&&y(w.action)?l.default.createElement("button",{"data-button":!0,"data-action":!0,style:w.actionButtonStyle||M,onClick:a=>{!y(w.action)||(null==w.action.onClick||w.action.onClick.call(w.action,a),a.defaultPrevented||aI())},className:z(null==T?void 0:T.actionButton,null==w||null==(j=w.classNames)?void 0:j.actionButton)},w.action.label):null)},B=l.default.forwardRef(function(a,b){let{invert:c,position:d="bottom-right",hotkey:e=["altKey","KeyT"],expand:f,closeButton:g,className:h,offset:i,mobileOffset:j,theme:k="light",richColors:n,duration:o,style:p,visibleToasts:q=3,toastOptions:r,dir:s="ltr",gap:t=14,icons:u,containerAriaLabel:w="Notifications"}=a,[x,y]=l.default.useState([]),z=l.default.useMemo(()=>Array.from(new Set([d].concat(x.filter(a=>a.position).map(a=>a.position)))),[x,d]),[B,C]=l.default.useState([]),[D,E]=l.default.useState(!1),[F,G]=l.default.useState(!1),[H,I]=l.default.useState("system"!==k?k:"light"),J=l.default.useRef(null),K=e.join("+").replace(/Key/g,"").replace(/Digit/g,""),L=l.default.useRef(null),M=l.default.useRef(!1),N=l.default.useCallback(a=>{y(b=>{var c;return(null==(c=b.find(b=>b.id===a.id))?void 0:c.delete)||v.dismiss(a.id),b.filter(({id:b})=>b!==a.id)})},[]);return l.default.useEffect(()=>v.subscribe(a=>{a.dismiss?requestAnimationFrame(()=>{y(b=>b.map(b=>b.id===a.id?{...b,delete:!0}:b))}):setTimeout(()=>{m.default.flushSync(()=>{y(b=>{let c=b.findIndex(b=>b.id===a.id);return -1!==c?[...b.slice(0,c),{...b[c],...a},...b.slice(c+1)]:[a,...b]})})})}),[x]),l.default.useEffect(()=>{"system"!==k?I(k):"system"===k&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?I("dark"):I("light"))},[k]),l.default.useEffect(()=>{x.length<=1&&E(!1)},[x]),l.default.useEffect(()=>{let a=a=>{var b,c;e.every(b=>a[b]||a.code===b)&&(E(!0),null==(c=J.current)||c.focus()),"Escape"===a.code&&(document.activeElement===J.current||(null==(b=J.current)?void 0:b.contains(document.activeElement)))&&E(!1)};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[e]),l.default.useEffect(()=>{if(J.current)return()=>{L.current&&(L.current.focus({preventScroll:!0}),L.current=null,M.current=!1)}},[J.current]),l.default.createElement("section",{ref:b,"aria-label":`${w} ${K}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},z.map((b,d)=>{var e;let k,[m,v]=b.split("-");return x.length?l.default.createElement("ol",{key:b,dir:"auto"===s?"ltr":s,tabIndex:-1,ref:J,className:h,"data-sonner-toaster":!0,"data-sonner-theme":H,"data-y-position":m,"data-lifted":D&&x.length>1&&!f,"data-x-position":v,style:{"--front-toast-height":`${(null==(e=B[0])?void 0:e.height)||0}px`,"--width":"356px","--gap":`${t}px`,...p,...(k={},[i,j].forEach((a,b)=>{let c=1===b,d=c?"--mobile-offset":"--offset",e=c?"16px":"24px";function f(a){["top","right","bottom","left"].forEach(b=>{k[`${d}-${b}`]="number"==typeof a?`${a}px`:a})}"number"==typeof a||"string"==typeof a?f(a):"object"==typeof a?["top","right","bottom","left"].forEach(b=>{void 0===a[b]?k[`${d}-${b}`]=e:k[`${d}-${b}`]="number"==typeof a[b]?`${a[b]}px`:a[b]}):f(e)}),k)},onBlur:a=>{M.current&&!a.currentTarget.contains(a.relatedTarget)&&(M.current=!1,L.current&&(L.current.focus({preventScroll:!0}),L.current=null))},onFocus:a=>{!(a.target instanceof HTMLElement&&"false"===a.target.dataset.dismissible)&&(M.current||(M.current=!0,L.current=a.relatedTarget))},onMouseEnter:()=>E(!0),onMouseMove:()=>E(!0),onMouseLeave:()=>{F||E(!1)},onDragEnd:()=>E(!1),onPointerDown:a=>{a.target instanceof HTMLElement&&"false"===a.target.dataset.dismissible||G(!0)},onPointerUp:()=>G(!1)},x.filter(a=>!a.position&&0===d||a.position===b).map((d,e)=>{var h,i;return l.default.createElement(A,{key:d.id,icons:u,index:e,toast:d,defaultRichColors:n,duration:null!=(h=null==r?void 0:r.duration)?h:o,className:null==r?void 0:r.className,descriptionClassName:null==r?void 0:r.descriptionClassName,invert:c,visibleToasts:q,closeButton:null!=(i=null==r?void 0:r.closeButton)?i:g,interacting:F,position:b,style:null==r?void 0:r.style,unstyled:null==r?void 0:r.unstyled,classNames:null==r?void 0:r.classNames,cancelButtonStyle:null==r?void 0:r.cancelButtonStyle,actionButtonStyle:null==r?void 0:r.actionButtonStyle,closeButtonAriaLabel:null==r?void 0:r.closeButtonAriaLabel,removeToast:N,toasts:x.filter(a=>a.position==d.position),heights:B.filter(a=>a.position==d.position),setHeights:C,expandByDefault:f,gap:t,expanded:D,swipeDirections:a.swipeDirections})})):null}))});a.i(69250);var C=a.i(78990);a.i(79144),a.i(54995),a.i(61335);var D=a.i(93430);a.i(90971);var E=a.i(32037),F=a.i(58207);let G=l.forwardRef(({as:a="span",size:b="2",color:c="gray",transform:d,weight:e="normal",className:f,children:g,...h},i)=>(0,j.jsx)(D.Slot,{className:(0,E.cn)(f,d,H(b),I(c),J(e)),ref:i,...h,children:(0,j.jsx)(a,{children:g})})),H=a=>{switch(a){case"1":return"text-xs";case void 0:case"2":return"text-sm";case"3":return"text-base";case"4":return"text-lg";case"5":return["text-17px","md:text-xl tracking-[-0.16px]"];case"6":return"text-2xl tracking-[-0.288px]";case"7":return"text-[28px] leading-[34px] tracking-[-0.416px]";case"8":return"text-[35px] leading-[42px] tracking-[-0.64px]";case"9":return"text-6xl leading-[73px] tracking-[-0.896px]";default:return(0,F.unreachable)(a)}},I=a=>{switch(a){case"white":return"text-slate-12";case void 0:case"gray":return"text-slate-11";default:return(0,F.unreachable)(a)}},J=a=>{switch(a){case void 0:case"normal":return"font-normal";case"medium":return"font-medium";default:return(0,F.unreachable)(a)}};G.displayName="Text";var K=a.i(8404),L=a.i(4760),M=a.i(98978),N=a.i(15839);let O={type:"spring",stiffness:2e3,damping:80,mass:1};var P=a.i(36156);let Q=l.forwardRef(({children:a,className:b,...c},d)=>(0,j.jsx)("button",{type:"button",...c,className:(0,E.cn)("focus:ring-gray-8 rounded-sm text-slate-11 transition duration-200 ease-in-out hover:text-slate-12 focus:text-slate-12 focus:outline-hidden focus:ring-2",b),ref:d,children:a}));Q.displayName="IconButton";var R=a.i(73206),S=a.i(68334);let T=l.forwardRef(({...a},b)=>(0,j.jsxs)(S.IconBase,{ref:b,...a,children:[(0,j.jsx)("path",{d:"M9 6.75H7.75C6.64543 6.75 5.75 7.64543 5.75 8.75V17.25C5.75 18.3546 6.64543 19.25 7.75 19.25H16.25C17.3546 19.25 18.25 18.3546 18.25 17.25V8.75C18.25 7.64543 17.3546 6.75 16.25 6.75H15",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5"}),(0,j.jsx)("path",{d:"M14 8.25H10C9.44772 8.25 9 7.80228 9 7.25V5.75C9 5.19772 9.44772 4.75 10 4.75H14C14.5523 4.75 15 5.19772 15 5.75V7.25C15 7.80228 14.5523 8.25 14 8.25Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5"}),(0,j.jsx)("path",{d:"M9.75 12.25H14.25",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5"}),(0,j.jsx)("path",{d:"M9.75 15.25H14.25",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5"})]}));T.displayName="IconClipboard";let U=l.forwardRef(({...a},b)=>(0,j.jsx)(S.IconBase,{ref:b,...a,children:(0,j.jsx)("path",{d:"M4.75 14.75v1.5a3 3 0 0 0 3 3h8.5a3 3 0 0 0 3-3v-1.5M12 14.25v-9.5M8.75 10.75l3.25 3.5 3.25-3.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5})}));U.displayName="IconDownload";var V=a.i(97285);let W=({markups:a,basename:b,activeLang:c,setActiveLang:d})=>{let e=a.find(({language:a})=>c===a);if(!e)throw Error("No markup found for the active language!",{cause:{activeLang:c,markups:a}});let f=l.useId();return(0,j.jsxs)("div",{className:"relative max-h-[650px] w-full h-full whitespace-pre rounded-md border border-slate-6 text-sm",style:{lineHeight:"130%",background:"linear-gradient(145.37deg, rgba(255, 255, 255, 0.09) -8.75%, rgba(255, 255, 255, 0.027) 83.95%)",boxShadow:"rgb(0 0 0 / 10%) 0px 5px 30px -5px"},children:[(0,j.jsxs)("div",{className:"h-9 border-b border-slate-6",children:[(0,j.jsx)("div",{className:"flex",children:(0,j.jsx)(L.LayoutGroup,{id:f,children:a.map(({language:a})=>{let b=c===a;return(0,j.jsxs)(M.motion.button,{className:`relative px-4 py-[8px] font-sans text-sm font-medium transition duration-200 ease-in-out hover:text-slate-12 ${c!==a?"text-slate-11":"text-slate-12"}`,onClick:()=>{d(a)},children:[b?(0,j.jsx)(M.motion.span,{animate:{opacity:1},className:"absolute bottom-0 left-0 right-0 top-0 bg-slate-4",exit:{opacity:0},initial:{opacity:0},layoutId:"code",transition:O}):null,P.default[a]]},a)})})}),(0,j.jsx)(X,{content:e.content}),(0,j.jsx)(Y,{content:e.content,filename:`${b}.${e.extension||e.language}`})]}),(0,j.jsx)("div",{className:"h-[calc(100%-2.25rem)]",children:(0,j.jsx)(C.Code,{language:c,children:e.content})})]})},X=({content:a})=>{let[b,c]=l.useState(!1),d=l.useRef(void 0);return l.useEffect(()=>{c(!1),clearTimeout(d.current),d.current=void 0},[a]),(0,j.jsxs)(V.Tooltip,{children:[(0,j.jsx)(V.Tooltip.Trigger,{asChild:!0,className:"absolute right-2 top-2 hidden md:block",children:(0,j.jsx)(Q,{onClick:async()=>{c(!0),await (0,N.copyTextToClipboard)(a),d.current=setTimeout(()=>{c(!1)},3e3)},children:b?(0,j.jsx)(R.IconCheck,{}):(0,j.jsx)(T,{})})}),(0,j.jsx)(V.Tooltip.Content,{children:"Copy to Clipboard"})]})},Y=({content:a,filename:b})=>{let c=l.useMemo(()=>{let c=new File([a],b);return URL.createObjectURL(c)},[a,b]),d=l.useSyncExternalStore(()=>()=>{},()=>c,()=>void 0);return(0,j.jsxs)(V.Tooltip,{children:[(0,j.jsx)(V.Tooltip.Trigger,{asChild:!0,className:"text-gray-11 absolute right-8 top-2 hidden md:block",children:(0,j.jsx)("a",{className:"text-slate-11 transition duration-200 ease-in-out hover:text-slate-12",download:b,href:d,children:(0,j.jsx)(U,{})})}),(0,j.jsx)(V.Tooltip.Content,{children:"Download"})]})};var Z=a.i(59653),$=a.i(49863),_=a.i(22114),aa=a.i(96451),ab=0;function ac(){let a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}var ad=a.i(97733),ae=a.i(4647),af="focusScope.autoFocusOnMount",ag="focusScope.autoFocusOnUnmount",ah={bubbles:!1,cancelable:!0},ai=l.forwardRef((a,b)=>{let{loop:c=!1,trapped:d=!1,onMountAutoFocus:e,onUnmountAutoFocus:f,...g}=a,[h,i]=l.useState(null),k=(0,ae.useCallbackRef)(e),m=(0,ae.useCallbackRef)(f),n=l.useRef(null),o=(0,$.useComposedRefs)(b,a=>i(a)),p=l.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;l.useEffect(()=>{if(d){let a=function(a){if(p.paused||!h)return;let b=a.target;h.contains(b)?n.current=b:al(n.current,{select:!0})},b=function(a){if(p.paused||!h)return;let b=a.relatedTarget;null!==b&&(h.contains(b)||al(n.current,{select:!0}))};document.addEventListener("focusin",a),document.addEventListener("focusout",b);let c=new MutationObserver(function(a){if(document.activeElement===document.body)for(let b of a)b.removedNodes.length>0&&al(h)});return h&&c.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b),c.disconnect()}}},[d,h,p.paused]),l.useEffect(()=>{if(h){am.add(p);let a=document.activeElement;if(!h.contains(a)){let b=new CustomEvent(af,ah);h.addEventListener(af,k),h.dispatchEvent(b),b.defaultPrevented||(function(a,{select:b=!1}={}){let c=document.activeElement;for(let d of a)if(al(d,{select:b}),document.activeElement!==c)return}(aj(h).filter(a=>"A"!==a.tagName),{select:!0}),document.activeElement===a&&al(h))}return()=>{h.removeEventListener(af,k),setTimeout(()=>{let b=new CustomEvent(ag,ah);h.addEventListener(ag,m),h.dispatchEvent(b),b.defaultPrevented||al(a??document.body,{select:!0}),h.removeEventListener(ag,m),am.remove(p)},0)}}},[h,k,m,p]);let q=l.useCallback(a=>{if(!c&&!d||p.paused)return;let b="Tab"===a.key&&!a.altKey&&!a.ctrlKey&&!a.metaKey,e=document.activeElement;if(b&&e){var f;let b,d=a.currentTarget,[g,h]=[ak(b=aj(f=d),f),ak(b.reverse(),f)];g&&h?a.shiftKey||e!==h?a.shiftKey&&e===g&&(a.preventDefault(),c&&al(h,{select:!0})):(a.preventDefault(),c&&al(g,{select:!0})):e===d&&a.preventDefault()}},[c,d,p.paused]);return(0,j.jsx)(ad.Primitive.div,{tabIndex:-1,...g,ref:o,onKeyDown:q})});function aj(a){let b=[],c=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{let b="INPUT"===a.tagName&&"hidden"===a.type;return a.disabled||a.hidden||b?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;c.nextNode();)b.push(c.currentNode);return b}function ak(a,b){for(let c of a)if(!function(a,{upTo:b}){if("hidden"===getComputedStyle(a).visibility)return!0;for(;a&&(void 0===b||a!==b);){if("none"===getComputedStyle(a).display)return!0;a=a.parentElement}return!1}(c,{upTo:b}))return c}function al(a,{select:b=!1}={}){if(a&&a.focus){var c;let d=document.activeElement;a.focus({preventScroll:!0}),a!==d&&(c=a)instanceof HTMLInputElement&&"select"in c&&b&&a.select()}}ai.displayName="FocusScope";var am=(b=[],{add(a){let c=b[0];a!==c&&c?.pause(),(b=an(b,a)).unshift(a)},remove(a){b=an(b,a),b[0]?.resume()}});function an(a,b){let c=[...a],d=c.indexOf(b);return -1!==d&&c.splice(d,1),c}var ao=a.i(10054),ap=a.i(32227),aq=a.i(96818),ar=a.i(44320),as=a.i(45015),at=new WeakMap,au=new WeakMap,av={},aw=0,ax=function(a){return a&&(a.host||ax(a.parentNode))},ay=function(a,b,c,d){var e=(Array.isArray(a)?a:[a]).map(function(a){if(b.contains(a))return a;var c=ax(a);return c&&b.contains(c)?c:(console.error("aria-hidden",a,"in not contained inside",b,". Doing nothing"),null)}).filter(function(a){return!!a});av[c]||(av[c]=new WeakMap);var f=av[c],g=[],h=new Set,i=new Set(e),j=function(a){!a||h.has(a)||(h.add(a),j(a.parentNode))};e.forEach(j);var k=function(a){!a||i.has(a)||Array.prototype.forEach.call(a.children,function(a){if(h.has(a))k(a);else try{var b=a.getAttribute(d),e=null!==b&&"false"!==b,i=(at.get(a)||0)+1,j=(f.get(a)||0)+1;at.set(a,i),f.set(a,j),g.push(a),1===i&&e&&au.set(a,!0),1===j&&a.setAttribute(c,"true"),e||a.setAttribute(d,"true")}catch(b){console.error("aria-hidden: cannot operate on ",a,b)}})};return k(b),h.clear(),aw++,function(){g.forEach(function(a){var b=at.get(a)-1,e=f.get(a)-1;at.set(a,b),f.set(a,e),b||(au.has(a)||a.removeAttribute(d),au.delete(a)),e||a.removeAttribute(c)}),--aw||(at=new WeakMap,at=new WeakMap,au=new WeakMap,av={})}},az=function(a,b,c){void 0===c&&(c="data-aria-hidden");var d=Array.from(Array.isArray(a)?a:[a]),e=b||("undefined"==typeof document?null:(Array.isArray(a)?a[0]:a).ownerDocument.body);return e?(d.push.apply(d,Array.from(e.querySelectorAll("[aria-live], script"))),ay(d,e,c,"aria-hidden")):function(){return null}},aA=function(){return(aA=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++)for(var e in b=arguments[c])Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e]);return a}).apply(this,arguments)};function aB(a,b){var c={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"==typeof Object.getOwnPropertySymbols)for(var e=0,d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&Object.prototype.propertyIsEnumerable.call(a,d[e])&&(c[d[e]]=a[d[e]]);return c}var aC=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),aD="width-before-scroll-bar";function aE(a,b){return"function"==typeof a?a(b):a&&(a.current=b),a}var aF=l.useEffect,aG=new WeakMap,aH=(void 0===c&&(c={}),(void 0===d&&(d=function(a){return a}),e=[],f=!1,g={read:function(){if(f)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return e.length?e[e.length-1]:null},useMedium:function(a){var b=d(a,f);return e.push(b),function(){e=e.filter(function(a){return a!==b})}},assignSyncMedium:function(a){for(f=!0;e.length;){var b=e;e=[],b.forEach(a)}e={push:function(b){return a(b)},filter:function(){return e}}},assignMedium:function(a){f=!0;var b=[];if(e.length){var c=e;e=[],c.forEach(a),b=e}var d=function(){var c=b;b=[],c.forEach(a)},g=function(){return Promise.resolve().then(d)};g(),e={push:function(a){b.push(a),g()},filter:function(a){return b=b.filter(a),e}}}}).options=aA({async:!0,ssr:!1},c),g),aI=function(){},aJ=l.forwardRef(function(a,b){var c,d,e,f,g=l.useRef(null),h=l.useState({onScrollCapture:aI,onWheelCapture:aI,onTouchMoveCapture:aI}),i=h[0],j=h[1],k=a.forwardProps,m=a.children,n=a.className,o=a.removeScrollBar,p=a.enabled,q=a.shards,r=a.sideCar,s=a.noRelative,t=a.noIsolation,u=a.inert,v=a.allowPinchZoom,w=a.as,x=a.gapMode,y=aB(a,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),z=(c=[g,b],d=function(a){return c.forEach(function(b){return aE(b,a)})},(e=(0,l.useState)(function(){return{value:null,callback:d,facade:{get current(){return e.value},set current(value){var a=e.value;a!==value&&(e.value=value,e.callback(value,a))}}}})[0]).callback=d,f=e.facade,aF(function(){var a=aG.get(f);if(a){var b=new Set(a),d=new Set(c),e=f.current;b.forEach(function(a){d.has(a)||aE(a,null)}),d.forEach(function(a){b.has(a)||aE(a,e)})}aG.set(f,c)},[c]),f),A=aA(aA({},y),i);return l.createElement(l.Fragment,null,p&&l.createElement(r,{sideCar:aH,removeScrollBar:o,shards:q,noRelative:s,noIsolation:t,inert:u,setCallbacks:j,allowPinchZoom:!!v,lockRef:g,gapMode:x}),k?l.cloneElement(l.Children.only(m),aA(aA({},A),{ref:z})):l.createElement(void 0===w?"div":w,aA({},A,{className:n,ref:z}),m))});aJ.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},aJ.classNames={fullWidth:aD,zeroRight:aC};var aK=function(a){var b=a.sideCar,c=aB(a,["sideCar"]);if(!b)throw Error("Sidecar: please provide `sideCar` property to import the right car");var d=b.read();if(!d)throw Error("Sidecar medium not found");return l.createElement(d,aA({},c))};aK.isSideCarExport=!0;var aL=function(){var a=0,b=null;return{add:function(c){if(0==a&&(b=function(){if(!document)return null;var a=document.createElement("style");a.type="text/css";var b=i||("undefined"!=typeof __webpack_nonce__?__webpack_nonce__:void 0);return b&&a.setAttribute("nonce",b),a}())){var d,e;(d=b).styleSheet?d.styleSheet.cssText=c:d.appendChild(document.createTextNode(c)),e=b,(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}a++},remove:function(){--a||!b||(b.parentNode&&b.parentNode.removeChild(b),b=null)}}},aM=function(){var a=aL();return function(b,c){l.useEffect(function(){return a.add(b),function(){a.remove()}},[b&&c])}},aN=function(){var a=aM();return function(b){return a(b.styles,b.dynamic),null}},aO={left:0,top:0,right:0,gap:0},aP=aN(),aQ="data-scroll-locked",aR=function(a,b,c,d){var e=a.left,f=a.top,g=a.right,h=a.gap;return void 0===c&&(c="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(d,";\n padding-right: ").concat(h,"px ").concat(d,";\n }\n body[").concat(aQ,"] {\n overflow: hidden ").concat(d,";\n overscroll-behavior: contain;\n ").concat([b&&"position: relative ".concat(d,";"),"margin"===c&&"\n padding-left: ".concat(e,"px;\n padding-top: ").concat(f,"px;\n padding-right: ").concat(g,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(h,"px ").concat(d,";\n "),"padding"===c&&"padding-right: ".concat(h,"px ").concat(d,";")].filter(Boolean).join(""),"\n }\n \n .").concat(aC," {\n right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(aD," {\n margin-right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(aC," .").concat(aC," {\n right: 0 ").concat(d,";\n }\n \n .").concat(aD," .").concat(aD," {\n margin-right: 0 ").concat(d,";\n }\n \n body[").concat(aQ,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(h,"px;\n }\n")},aS=function(){var a=parseInt(document.body.getAttribute(aQ)||"0",10);return isFinite(a)?a:0},aT=function(){l.useEffect(function(){return document.body.setAttribute(aQ,(aS()+1).toString()),function(){var a=aS()-1;a<=0?document.body.removeAttribute(aQ):document.body.setAttribute(aQ,a.toString())}},[])},aU=function(a){var b=a.noRelative,c=a.noImportant,d=a.gapMode,e=void 0===d?"margin":d;aT();var f=l.useMemo(function(){return void 0===e,aO},[e]);return l.createElement(aP,{styles:aR(f,!b,e,c?"":"!important")})},aV=function(a,b){if(!(a instanceof Element))return!1;var c=window.getComputedStyle(a);return"hidden"!==c[b]&&(c.overflowY!==c.overflowX||"TEXTAREA"===a.tagName||"visible"!==c[b])},aW=function(a,b){var c=b.ownerDocument,d=b;do{if("undefined"!=typeof ShadowRoot&&d instanceof ShadowRoot&&(d=d.host),aX(a,d)){var e=aY(a,d);if(e[1]>e[2])return!0}d=d.parentNode}while(d&&d!==c.body)return!1},aX=function(a,b){return"v"===a?aV(b,"overflowY"):aV(b,"overflowX")},aY=function(a,b){return"v"===a?[b.scrollTop,b.scrollHeight,b.clientHeight]:[b.scrollLeft,b.scrollWidth,b.clientWidth]},aZ=function(a,b,c,d,e){var f,g=(f=window.getComputedStyle(b).direction,"h"===a&&"rtl"===f?-1:1),h=g*d,i=c.target,j=b.contains(i),k=!1,l=h>0,m=0,n=0;do{if(!i)break;var o=aY(a,i),p=o[0],q=o[1]-o[2]-g*p;(p||q)&&aX(a,i)&&(m+=q,n+=p);var r=i.parentNode;i=r&&r.nodeType===Node.DOCUMENT_FRAGMENT_NODE?r.host:r}while(!j&&i!==document.body||j&&(b.contains(i)||b===i))return l&&(e&&1>Math.abs(m)||!e&&h>m)?k=!0:!l&&(e&&1>Math.abs(n)||!e&&-h>n)&&(k=!0),k},a$=function(a){return"changedTouches"in a?[a.changedTouches[0].clientX,a.changedTouches[0].clientY]:[0,0]},a_=function(a){return[a.deltaX,a.deltaY]},a0=function(a){return a&&"current"in a?a.current:a},a1=0,a2=[];let a3=(h=function(a){var b=l.useRef([]),c=l.useRef([0,0]),d=l.useRef(),e=l.useState(a1++)[0],f=l.useState(aN)[0],g=l.useRef(a);l.useEffect(function(){g.current=a},[a]),l.useEffect(function(){if(a.inert){document.body.classList.add("block-interactivity-".concat(e));var b=(function(a,b,c){if(c||2==arguments.length)for(var d,e=0,f=b.length;e<f;e++)!d&&e in b||(d||(d=Array.prototype.slice.call(b,0,e)),d[e]=b[e]);return a.concat(d||Array.prototype.slice.call(b))})([a.lockRef.current],(a.shards||[]).map(a0),!0).filter(Boolean);return b.forEach(function(a){return a.classList.add("allow-interactivity-".concat(e))}),function(){document.body.classList.remove("block-interactivity-".concat(e)),b.forEach(function(a){return a.classList.remove("allow-interactivity-".concat(e))})}}},[a.inert,a.lockRef.current,a.shards]);var h=l.useCallback(function(a,b){if("touches"in a&&2===a.touches.length||"wheel"===a.type&&a.ctrlKey)return!g.current.allowPinchZoom;var e,f=a$(a),h=c.current,i="deltaX"in a?a.deltaX:h[0]-f[0],j="deltaY"in a?a.deltaY:h[1]-f[1],k=a.target,l=Math.abs(i)>Math.abs(j)?"h":"v";if("touches"in a&&"h"===l&&"range"===k.type)return!1;var m=window.getSelection(),n=m&&m.anchorNode;if(n&&(n===k||n.contains(k)))return!1;var o=aW(l,k);if(!o)return!0;if(o?e=l:(e="v"===l?"h":"v",o=aW(l,k)),!o)return!1;if(!d.current&&"changedTouches"in a&&(i||j)&&(d.current=e),!e)return!0;var p=d.current||e;return aZ(p,b,a,"h"===p?i:j,!0)},[]),i=l.useCallback(function(a){if(a2.length&&a2[a2.length-1]===f){var c="deltaY"in a?a_(a):a$(a),d=b.current.filter(function(b){var d;return b.name===a.type&&(b.target===a.target||a.target===b.shadowParent)&&(d=b.delta,d[0]===c[0]&&d[1]===c[1])})[0];if(d&&d.should){a.cancelable&&a.preventDefault();return}if(!d){var e=(g.current.shards||[]).map(a0).filter(Boolean).filter(function(b){return b.contains(a.target)});(e.length>0?h(a,e[0]):!g.current.noIsolation)&&a.cancelable&&a.preventDefault()}}},[]),j=l.useCallback(function(a,c,d,e){var f={name:a,delta:c,target:d,should:e,shadowParent:function(a){for(var b=null;null!==a;)a instanceof ShadowRoot&&(b=a.host,a=a.host),a=a.parentNode;return b}(d)};b.current.push(f),setTimeout(function(){b.current=b.current.filter(function(a){return a!==f})},1)},[]),k=l.useCallback(function(a){c.current=a$(a),d.current=void 0},[]),m=l.useCallback(function(b){j(b.type,a_(b),b.target,h(b,a.lockRef.current))},[]),n=l.useCallback(function(b){j(b.type,a$(b),b.target,h(b,a.lockRef.current))},[]);l.useEffect(function(){return a2.push(f),a.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:n}),document.addEventListener("wheel",i,!1),document.addEventListener("touchmove",i,!1),document.addEventListener("touchstart",k,!1),function(){a2=a2.filter(function(a){return a!==f}),document.removeEventListener("wheel",i,!1),document.removeEventListener("touchmove",i,!1),document.removeEventListener("touchstart",k,!1)}},[]);var o=a.removeScrollBar,p=a.inert;return l.createElement(l.Fragment,null,p?l.createElement(f,{styles:"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")}):null,o?l.createElement(aU,{noRelative:a.noRelative,gapMode:a.gapMode}):null)},aH.useMedium(h),aK);var a4=l.forwardRef(function(a,b){return l.createElement(aJ,aA({},a,{ref:b,sideCar:a3}))});a4.classNames=aJ.classNames;var a5="Popover",[a6,a7]=(0,_.createContextScope)(a5,[ap.createPopperScope]),a8=(0,ap.createPopperScope)(),[a9,ba]=a6(a5),bb=a=>{let{__scopePopover:b,children:c,open:d,defaultOpen:e,onOpenChange:f,modal:g=!1}=a,h=a8(b),i=l.useRef(null),[k,m]=l.useState(!1),[n,o]=(0,as.useControllableState)({prop:d,defaultProp:e??!1,onChange:f,caller:a5});return(0,j.jsx)(ap.Root,{...h,children:(0,j.jsx)(a9,{scope:b,contentId:(0,ao.useId)(),triggerRef:i,open:n,onOpenChange:o,onOpenToggle:l.useCallback(()=>o(a=>!a),[o]),hasCustomAnchor:k,onCustomAnchorAdd:l.useCallback(()=>m(!0),[]),onCustomAnchorRemove:l.useCallback(()=>m(!1),[]),modal:g,children:c})})};bb.displayName=a5;var bc="PopoverAnchor";l.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,e=ba(bc,c),f=a8(c),{onCustomAnchorAdd:g,onCustomAnchorRemove:h}=e;return l.useEffect(()=>(g(),()=>h()),[g,h]),(0,j.jsx)(ap.Anchor,{...f,...d,ref:b})}).displayName=bc;var bd="PopoverTrigger",be=l.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,e=ba(bd,c),f=a8(c),g=(0,$.useComposedRefs)(b,e.triggerRef),h=(0,j.jsx)(ad.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":e.open,"aria-controls":e.contentId,"data-state":bq(e.open),...d,ref:g,onClick:(0,Z.composeEventHandlers)(a.onClick,e.onOpenToggle)});return e.hasCustomAnchor?h:(0,j.jsx)(ap.Anchor,{asChild:!0,...f,children:h})});be.displayName=bd;var bf="PopoverPortal",[bg,bh]=a6(bf,{forceMount:void 0}),bi=a=>{let{__scopePopover:b,forceMount:c,children:d,container:e}=a,f=ba(bf,b);return(0,j.jsx)(bg,{scope:b,forceMount:c,children:(0,j.jsx)(ar.Presence,{present:c||f.open,children:(0,j.jsx)(aq.Portal,{asChild:!0,container:e,children:d})})})};bi.displayName=bf;var bj="PopoverContent",bk=l.forwardRef((a,b)=>{let c=bh(bj,a.__scopePopover),{forceMount:d=c.forceMount,...e}=a,f=ba(bj,a.__scopePopover);return(0,j.jsx)(ar.Presence,{present:d||f.open,children:f.modal?(0,j.jsx)(bm,{...e,ref:b}):(0,j.jsx)(bn,{...e,ref:b})})});bk.displayName=bj;var bl=(0,D.createSlot)("PopoverContent.RemoveScroll"),bm=l.forwardRef((a,b)=>{let c=ba(bj,a.__scopePopover),d=l.useRef(null),e=(0,$.useComposedRefs)(b,d),f=l.useRef(!1);return l.useEffect(()=>{let a=d.current;if(a)return az(a)},[]),(0,j.jsx)(a4,{as:bl,allowPinchZoom:!0,children:(0,j.jsx)(bo,{...a,ref:e,trapFocus:c.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,Z.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),f.current||c.triggerRef.current?.focus()}),onPointerDownOutside:(0,Z.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;f.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,Z.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),bn=l.forwardRef((a,b)=>{let c=ba(bj,a.__scopePopover),d=l.useRef(!1),e=l.useRef(!1);return(0,j.jsx)(bo,{...a,ref:b,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(d.current||c.triggerRef.current?.focus(),b.preventDefault()),d.current=!1,e.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(d.current=!0,"pointerdown"===b.detail.originalEvent.type&&(e.current=!0));let f=b.target;c.triggerRef.current?.contains(f)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&e.current&&b.preventDefault()}})}),bo=l.forwardRef((a,b)=>{let{__scopePopover:c,trapFocus:d,onOpenAutoFocus:e,onCloseAutoFocus:f,disableOutsidePointerEvents:g,onEscapeKeyDown:h,onPointerDownOutside:i,onFocusOutside:k,onInteractOutside:m,...n}=a,o=ba(bj,c),p=a8(c);return l.useEffect(()=>{let a=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",a[0]??ac()),document.body.insertAdjacentElement("beforeend",a[1]??ac()),ab++,()=>{1===ab&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),ab--}},[]),(0,j.jsx)(ai,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:e,onUnmountAutoFocus:f,children:(0,j.jsx)(aa.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:g,onInteractOutside:m,onEscapeKeyDown:h,onPointerDownOutside:i,onFocusOutside:k,onDismiss:()=>o.onOpenChange(!1),children:(0,j.jsx)(ap.Content,{"data-state":bq(o.open),role:"dialog",id:o.contentId,...p,...n,ref:b,style:{...n.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),bp="PopoverClose";function bq(a){return a?"open":"closed"}l.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,e=ba(bp,c);return(0,j.jsx)(ad.Primitive.button,{type:"button",...d,ref:b,onClick:(0,Z.composeEventHandlers)(a.onClick,()=>e.onOpenChange(!1))})}).displayName=bp,l.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,e=a8(c);return(0,j.jsx)(ap.Arrow,{...e,...d,ref:b})}).displayName="PopoverArrow";var br=a.i(76071);let bs=[{name:"A4",dimensions:{width:794,height:1123},icon:(0,j.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:(0,j.jsx)("path",{d:"M3.5 2C3.22386 2 3 2.22386 3 2.5V12.5C3 12.7761 3.22386 13 3.5 13H11.5C11.7761 13 12 12.7761 12 12.5V2.5C12 2.22386 11.7761 2 11.5 2H3.5ZM2 2.5C2 1.67157 2.67157 1 3.5 1H11.5C12.3284 1 13 1.67157 13 2.5V12.5C13 13.3284 12.3284 14 11.5 14H3.5C2.67157 14 2 13.3284 2 12.5V2.5ZM4 3.5C4 3.22386 4.22386 3 4.5 3H10.5C10.7761 3 11 3.22386 11 3.5C11 3.77614 10.7761 4 10.5 4H4.5C4.22386 4 4 3.77614 4 3.5ZM4.5 5C4.22386 5 4 5.22386 4 5.5C4 5.77614 4.22386 6 4.5 6H10.5C10.7761 6 11 5.77614 11 5.5C11 5.22386 10.7761 5 10.5 5H4.5ZM4 7.5C4 7.22386 4.22386 7 4.5 7H10.5C10.7761 7 11 7.22386 11 7.5C11 7.77614 10.7761 8 10.5 8H4.5C4.22386 8 4 7.77614 4 7.5ZM4.5 9C4.22386 9 4 9.22386 4 9.5C4 9.77614 4.22386 10 4.5 10H10.5C10.7761 10 11 9.77614 11 9.5C11 9.22386 10.7761 9 10.5 9H4.5Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})})},{name:"Desktop",dimensions:{width:1024,height:600},icon:(0,j.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:(0,j.jsx)("path",{d:"M1 3.25C1 3.11193 1.11193 3 1.25 3H13.75C13.8881 3 14 3.11193 14 3.25V10.75C14 10.8881 13.8881 11 13.75 11H1.25C1.11193 11 1 10.8881 1 10.75V3.25ZM1.25 2C0.559643 2 0 2.55964 0 3.25V10.75C0 11.4404 0.559644 12 1.25 12H5.07341L4.82991 13.2986C4.76645 13.6371 5.02612 13.95 5.37049 13.95H9.62951C9.97389 13.95 10.2336 13.6371 10.1701 13.2986L9.92659 12H13.75C14.4404 12 15 11.4404 15 10.75V3.25C15 2.55964 14.4404 2 13.75 2H1.25ZM9.01091 12H5.98909L5.79222 13.05H9.20778L9.01091 12Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})})}],bt=({minWidth:a,minHeight:b,viewWidth:c,viewHeight:d,setViewWidth:e,setViewHeight:f})=>{let[g,h]=l.useState(!1),[i,k]=l.useState(c),[m,n]=l.useState(d);return l.useEffect(()=>{k(c),n(d)},[c,d]),(0,j.jsxs)("div",{className:"relative flex h-9 w-fit overflow-hidden rounded-lg border border-slate-6 text-sm transition-colors duration-300 ease-in-out",children:[bs.map(a=>(0,j.jsxs)(V.Tooltip,{children:[(0,j.jsx)(V.Tooltip.Trigger,{asChild:!0,children:(0,j.jsx)("button",{onClick:()=>{var b;e((b=a.dimensions).width),f(b.height)},className:(0,E.cn)("relative flex items-center justify-center w-9 transition-colors hover:text-slate-12",{"bg-slate-4":c===a.dimensions.width}),type:"button",children:a.icon},a.name)}),(0,j.jsx)(V.Tooltip.Content,{children:a.name})]},a.name)),(0,j.jsxs)(bb,{open:g,onOpenChange:h,children:[(0,j.jsx)(be,{asChild:!0,children:(0,j.jsxs)("button",{type:"button",className:"relative flex items-center justify-center overflow-hidden w-9 text-slate-11 text-sm leading-none outline-hidden transition-colors ease-linear focus-within:text-slate-12 hover:text-slate-12 focus:text-slate-12",children:[(0,j.jsx)("span",{className:"sr-only",children:"View presets"}),(0,j.jsx)(br.IconArrowDown,{className:(0,E.cn)("transform transition-transform duration-200 ease-[cubic-bezier(.36,.66,.6,1)]",{"-rotate-180":g})})]})}),(0,j.jsx)(bi,{children:(0,j.jsxs)(bk,{align:"end",className:"flex min-w-48 flex-col gap-2 rounded-md border border-slate-8 border-solid bg-black px-2 py-2 text-white",sideOffset:5,children:[(0,j.jsxs)("div",{className:"flex w-full items-center justify-between text-sm gap-2",children:[(0,j.jsx)("span",{className:"font-medium text-slate-11 text-xs",children:"Width"}),(0,j.jsx)("input",{type:"number",value:i,onChange:b=>{let c=Number(b.target.value);k(c),c>=a&&e(c)},className:"w-20 appearance-none rounded-lg border border-slate-6 bg-slate-5 px-1 py-1 text-sm text-slate-12 placeholder-slate-10 outline-hidden transition duration-300 ease-in-out focus:ring-1 focus:ring-slate-10"})]}),(0,j.jsxs)("div",{className:"flex w-full items-center justify-between text-sm gap-2",children:[(0,j.jsx)("span",{className:"font-medium text-slate-11 text-xs",children:"Height"}),(0,j.jsx)("input",{type:"number",value:m,onChange:a=>{let c=Number(a.target.value);n(c),c>=b&&f(c)},className:"w-20 appearance-none rounded-lg border border-slate-6 bg-slate-5 px-1 py-1 text-sm text-slate-12 placeholder-slate-10 outline-hidden transition duration-300 ease-in-out focus:ring-1 focus:ring-slate-10"})]})]})})]})]})},bu=({width:a,height:b,onResize:c,onResizeEnd:d,children:e,maxHeight:f,maxWidth:g,minHeight:h,minWidth:i,...k})=>{let m=(0,l.useRef)(null),[n,o]=(0,l.useState)(!1),p=(0,l.useRef)(null),[q,r]=(0,l.useState)(null),s=(0,l.useCallback)(()=>{p.current&&document.removeEventListener("mousemove",p.current),document.removeEventListener("mouseup",s),o(!1),r(null),d?.()},[]),t=a=>{p.current=b=>{if(0===b.button&&m.current){let d="east"===a||"west"===a,e=d?b.clientX:b.clientY,f=m.current.getBoundingClientRect(),g=d?f.x+f.width/2:f.y+f.height/2,h=2*Math.abs(e-g);o(!0),r(a);for(let b=0;b<bs.length;b++){let e=bs[b];if(e){if(d&&h>e.dimensions.width-12&&h<e.dimensions.width+12)return void c(e.dimensions.width,a);if(!d&&h>e.dimensions.height-12&&h<e.dimensions.height+12)return void c(e.dimensions.height,a)}}c(2*Math.abs(e-g),a)}else s()},document.addEventListener("mouseup",s),document.addEventListener("mousemove",p.current)};return(0,l.useEffect)(()=>{if(window.document)return()=>{s()}},[]),(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("div",{className:"overflow-hidden absolute inset-0",children:(0,j.jsx)("div",{className:"absolute mx-auto box-content -translate-x-1/2 -translate-y-1/2 left-1/2 top-1/2",children:bs.map(c=>(0,j.jsxs)("div",{className:"-translate-x-1/2 -translate-y-1/2 absolute pointer-events-none select-none",style:{width:c.dimensions.width,height:c.dimensions.height},children:[a===c.dimensions.width&&n&&("east"===q||"west"===q)&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("div",{className:"absolute right-0 -top-[100vw] -bottom-[100vw] border-r-2 border-cyan-5"}),(0,j.jsx)("div",{className:"absolute left-0 -top-[100vw] -bottom-[100vw] border-l-2 border-cyan-5"})]}),b===c.dimensions.height&&n&&("north"===q||"south"===q)&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("div",{className:"absolute top-0 -left-[100vw] -right-[100vw] border-t-2 border-cyan-5"}),(0,j.jsx)("div",{className:"absolute bottom-0 -left-[100vw] -right-[100vw] border-b-2 border-cyan-5"})]})]},c.name))})}),(0,j.jsxs)("div",{...k,className:(0,E.cn)("relative mx-auto my-auto box-content",k.className),children:[(0,j.jsx)("div",{"aria-label":"resize-west","aria-valuenow":a,"aria-valuemin":i,"aria-valuemax":g,className:"-translate-x-1/2 -translate-y-1/2 absolute top-1/2 -left-2 cursor-w-resize p-2 [user-drag:none]",onDragStart:a=>a.preventDefault(),draggable:"false",onMouseDown:()=>{t("west")},role:"slider",tabIndex:0,children:(0,j.jsx)("div",{className:(0,E.cn)("h-8 w-1 rounded-md bg-black/50 transition-colors",{"bg-black":"west"===q})})}),(0,j.jsx)("div",{"aria-label":"resize-east","aria-valuenow":a,"aria-valuemin":i,"aria-valuemax":g,onDragStart:a=>a.preventDefault(),className:"translate-x-1/2 -translate-y-1/2 absolute top-1/2 -right-2 cursor-e-resize p-2 [user-drag:none]",draggable:"false",onMouseDown:()=>{t("east")},role:"slider",tabIndex:0,children:(0,j.jsx)("div",{className:(0,E.cn)("h-8 w-1 rounded-md bg-black/50 transition-colors",{"bg-black":"east"===q})})}),(0,j.jsx)("div",{"aria-label":"resize-north","aria-valuenow":b,"aria-valuemin":h,"aria-valuemax":f,onDragStart:a=>a.preventDefault(),className:"-translate-x-1/2 -translate-y-1/2 absolute -top-2 left-1/2 cursor-n-resize p-2 [user-drag:none]",draggable:"false",onMouseDown:()=>{t("north")},role:"slider",tabIndex:0,children:(0,j.jsx)("div",{className:(0,E.cn)("h-1 w-8 rounded-md bg-black/50 transition-colors",{"bg-black":"north"===q})})}),(0,j.jsx)("div",{"aria-label":"resize-south","aria-valuenow":b,"aria-valuemin":h,"aria-valuemax":f,onDragStart:a=>a.preventDefault(),className:"-translate-x-1/2 translate-y-1/2 absolute -bottom-2 left-1/2 cursor-s-resize p-2 [user-drag:none]",draggable:"false",onMouseDown:()=>{t("south")},role:"slider",tabIndex:0,children:(0,j.jsx)("div",{className:(0,E.cn)("h-1 w-8 rounded-md bg-black/50 transition-colors",{"bg-black":"south"===q})})}),(0,j.jsx)(D.Slot,{ref:m,className:n?"select-none":"",children:e})]})]})};var bv=a.i(84787),bw=a.i(34053),bx="Toggle",by=l.forwardRef((a,b)=>{let{pressed:c,defaultPressed:d,onPressedChange:e,...f}=a,[g,h]=(0,as.useControllableState)({prop:c,onChange:e,defaultProp:d??!1,caller:bx});return(0,j.jsx)(ad.Primitive.button,{type:"button","aria-pressed":g,"data-state":g?"on":"off","data-disabled":a.disabled?"":void 0,...f,ref:b,onClick:(0,Z.composeEventHandlers)(a.onClick,()=>{a.disabled||h(!g)})})});by.displayName=bx;var bz=a.i(30635),bA="ToggleGroup",[bB,bC]=(0,_.createContextScope)(bA,[bw.createRovingFocusGroupScope]),bD=(0,bw.createRovingFocusGroupScope)(),bE=l.default.forwardRef((a,b)=>{let{type:c,...d}=a;if("single"===c)return(0,j.jsx)(bH,{...d,ref:b});if("multiple"===c)return(0,j.jsx)(bI,{...d,ref:b});throw Error(`Missing prop \`type\` expected on \`${bA}\``)});bE.displayName=bA;var[bF,bG]=bB(bA),bH=l.default.forwardRef((a,b)=>{let{value:c,defaultValue:d,onValueChange:e=()=>{},...f}=a,[g,h]=(0,as.useControllableState)({prop:c,defaultProp:d??"",onChange:e,caller:bA});return(0,j.jsx)(bF,{scope:a.__scopeToggleGroup,type:"single",value:l.default.useMemo(()=>g?[g]:[],[g]),onItemActivate:h,onItemDeactivate:l.default.useCallback(()=>h(""),[h]),children:(0,j.jsx)(bL,{...f,ref:b})})}),bI=l.default.forwardRef((a,b)=>{let{value:c,defaultValue:d,onValueChange:e=()=>{},...f}=a,[g,h]=(0,as.useControllableState)({prop:c,defaultProp:d??[],onChange:e,caller:bA}),i=l.default.useCallback(a=>h((b=[])=>[...b,a]),[h]),k=l.default.useCallback(a=>h((b=[])=>b.filter(b=>b!==a)),[h]);return(0,j.jsx)(bF,{scope:a.__scopeToggleGroup,type:"multiple",value:g,onItemActivate:i,onItemDeactivate:k,children:(0,j.jsx)(bL,{...f,ref:b})})});bE.displayName=bA;var[bJ,bK]=bB(bA),bL=l.default.forwardRef((a,b)=>{let{__scopeToggleGroup:c,disabled:d=!1,rovingFocus:e=!0,orientation:f,dir:g,loop:h=!0,...i}=a,k=bD(c),l=(0,bz.useDirection)(g),m={role:"group",dir:l,...i};return(0,j.jsx)(bJ,{scope:c,rovingFocus:e,disabled:d,children:e?(0,j.jsx)(bw.Root,{asChild:!0,...k,orientation:f,dir:l,loop:h,children:(0,j.jsx)(ad.Primitive.div,{...m,ref:b})}):(0,j.jsx)(ad.Primitive.div,{...m,ref:b})})}),bM="ToggleGroupItem",bN=l.default.forwardRef((a,b)=>{let c=bG(bM,a.__scopeToggleGroup),d=bK(bM,a.__scopeToggleGroup),e=bD(a.__scopeToggleGroup),f=c.value.includes(a.value),g=d.disabled||a.disabled,h={...a,pressed:f,disabled:g},i=l.default.useRef(null);return d.rovingFocus?(0,j.jsx)(bw.Item,{asChild:!0,...e,focusable:!g,active:f,ref:i,children:(0,j.jsx)(bO,{...h,ref:b})}):(0,j.jsx)(bO,{...h,ref:b})});bN.displayName=bM;var bO=l.default.forwardRef((a,b)=>{let{__scopeToggleGroup:c,value:d,...e}=a,f=bG(bM,c),g={role:"radio","aria-checked":a.pressed,"aria-pressed":void 0},h="single"===f.type?g:void 0;return(0,j.jsx)(by,{...h,...e,ref:b,onPressedChange:a=>{a?f.onItemActivate(d):f.onItemDeactivate(d)}})});let bP=l.forwardRef(({...a},b)=>(0,j.jsx)(S.IconBase,{ref:b,...a,children:(0,j.jsx)("path",{d:"M9.75 15.25H17.25C18.3546 15.25 19.25 14.3546 19.25 13.25V6.75C19.25 5.64543 18.3546 4.75 17.25 4.75H6.75C5.64543 4.75 4.75 5.64543 4.75 6.75V13.25C4.75 14.3546 5.64543 15.25 6.75 15.25H9.75ZM9.75 15.25C9.75 15.25 10 18.25 8 19.25H16C14 18.25 14.25 15.25 14.25 15.25",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5"})}));bP.displayName="IconMonitor";let bQ=l.forwardRef(({...a},b)=>(0,j.jsx)(S.IconBase,{ref:b,...a,children:(0,j.jsx)("path",{d:"M17.4 15L21 11.5L17.4 8M6.6 8L3 11.5L6.6 15M14.25 4.5L9.75 18.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5"})}));bQ.displayName="IconSource";let bR=({activeView:a,setActiveView:b})=>(0,j.jsxs)(bE,{"aria-label":"View mode",className:"lg:absolute lg:left-1/2 lg:-translate-x-1/2 inline-block items-center bg-slate-2 border border-slate-6 rounded-md overflow-hidden h-[36px]",onValueChange:a=>{a&&b(a)},type:"single",value:a,children:[(0,j.jsx)(bN,{value:"preview",children:(0,j.jsxs)(V.Tooltip,{children:[(0,j.jsx)(V.Tooltip.Trigger,{asChild:!0,children:(0,j.jsxs)("div",{className:(0,E.cn)("w-9 flex items-center py-2 transition ease-in-out duration-200 relative hover:text-slate-12",{"text-slate-11":"preview"!==a,"text-slate-12":"preview"===a}),children:["preview"===a&&(0,j.jsx)(M.motion.span,{animate:{opacity:1},className:"absolute left-0 right-0 top-0 bottom-0 bg-slate-4",exit:{opacity:0},initial:{opacity:0},layoutId:"topbar-tabs",transition:O}),(0,j.jsx)(bP,{className:"m-auto"})]})}),(0,j.jsx)(V.Tooltip.Content,{children:"Preview"})]})}),(0,j.jsx)(bN,{value:"source",children:(0,j.jsxs)(V.Tooltip,{children:[(0,j.jsx)(V.Tooltip.Trigger,{asChild:!0,children:(0,j.jsxs)("div",{className:(0,E.cn)("w-9 flex py-2 transition ease-in-out duration-200 relative hover:text-slate-12",{"text-slate-11":"source"!==a,"text-slate-12":"source"===a}),children:["source"===a&&(0,j.jsx)(M.motion.span,{animate:{opacity:1},className:"absolute left-0 right-0 top-0 bottom-0 bg-slate-4",exit:{opacity:0},initial:{opacity:0},layoutId:"topbar-tabs",transition:O}),(0,j.jsx)(bQ,{className:"m-auto"})]})}),(0,j.jsx)(V.Tooltip.Content,{children:"Code"})]})})]}),bS=({...a})=>(0,j.jsx)(S.IconBase,{...a,children:(0,j.jsx)("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"})});bS.displayName="IconMoon";let bT=({...a})=>(0,j.jsxs)(S.IconBase,{...a,children:[(0,j.jsx)("circle",{cx:"12",cy:"12",r:"4",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),(0,j.jsx)("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",d:"M12 2v2"}),(0,j.jsx)("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",d:"M12 20v2"}),(0,j.jsx)("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",d:"m4.93 4.93 1.41 1.41"}),(0,j.jsx)("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",d:"m17.66 17.66 1.41 1.41"}),(0,j.jsx)("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",d:"M2 12h2"}),(0,j.jsx)("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",d:"M20 12h2"}),(0,j.jsx)("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",d:"m6.34 17.66-1.41 1.41"}),(0,j.jsx)("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",d:"m19.07 4.93-1.41 1.41"})]});bT.displayName="IconSun";let bU=({enabled:a,onChange:b})=>(0,j.jsxs)(V.Tooltip,{children:[(0,j.jsx)(V.Tooltip.Trigger,{asChild:!0,children:(0,j.jsx)(by,{value:"dark",className:(0,E.cn)("relative w-9 h-9 flex items-center justify-center border border-slate-6 text-sm rounded-lg transition duration-200 ease-in-out","text-slate-11 hover:text-slate-12 aria-pressed:bg-slate-4"),pressed:a,onPressedChange:()=>b(!a),children:(0,j.jsxs)("div",{className:"relative w-5 h-5",children:[(0,j.jsx)("div",{className:(0,E.cn)("absolute inset-0 flex items-center justify-center transition-all duration-300 ease-in-out",a?"opacity-0 scale-50 rotate-90":"opacity-100 scale-100 rotate-0"),children:(0,j.jsx)(bS,{})}),(0,j.jsx)("div",{className:(0,E.cn)("absolute inset-0 flex items-center justify-center transition-all duration-300 ease-in-out",a?"opacity-100 scale-100 rotate-0":"opacity-0 scale-50 -rotate-90"),children:(0,j.jsx)(bT,{})})]})})}),(0,j.jsx)(V.Tooltip.Content,{children:"When enabled, inverts colors in the preview to emulate dark mode rendering."})]});var bV=a.i(49451);let bW=(a,b,c)=>Math.min(Math.max(a,b),c),bX=(a,b,c)=>{let[d,e]=(0,l.useState)(a);return[bW(d,b,c),a=>{"function"==typeof a?e(d=>{let e=bW(d,b,c);return bW(a(e),b,c)}):e(bW(a,b,c))}]};var bY=a.i(16084);let bZ=(0,bY.createServerReference)("7fafdee4acad3133d1696f1d0fbd1a457b9d3a6ebc",bY.callServer,void 0,bY.findSourceMapURL,"exportSingleTemplate");var b$=a.i(65128);let b_=(0,l.forwardRef)((a,b)=>(0,j.jsx)(S.IconBase,{...a,ref:b,children:(0,j.jsxs)("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",children:[(0,j.jsx)("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}),(0,j.jsx)("circle",{cx:"9",cy:"9",r:"2"}),(0,j.jsx)("path",{d:"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21"})]})})),b0=({templateSlug:a,htmlMarkup:b,darkMode:c=!1})=>{let[d,e]=(0,l.useState)(!1),[f,g]=(0,l.useState)(!1),h=a.replace(/\.[^/.]+$/,""),i=async a=>{"pdf"===a?e(!0):g(!0);try{let d=await bZ({name:h,html:b,format:a,darkMode:c});if(d?.serverError)return void x.error(d.serverError);if(!d?.data)return void x.error("Failed to export template");let e=d.data;if("html"===e.format||!("data"in e))return void x.error("Invalid export format");let f=e.format,g=atob(e.data),i=new Uint8Array(g.length);for(let a=0;a<g.length;a++)i[a]=g.charCodeAt(a);let j=new Blob([i],{type:e.mimeType}),k=URL.createObjectURL(j);window.open(k,"_blank"),setTimeout(()=>URL.revokeObjectURL(k),100),x.success(`${"pdf"===f?"PDF":"Screenshot"} opened in new window`)}catch(a){console.error("Export error:",a),x.error(a instanceof Error?a.message:"Failed to export template. Make sure the PDF Forge server is running.")}finally{"pdf"===a?e(!1):g(!1)}},k=d||f;return(0,j.jsxs)("div",{className:"flex gap-2",children:[(0,j.jsxs)(V.Tooltip,{children:[(0,j.jsx)(V.Tooltip.Trigger,{asChild:!0,children:(0,j.jsx)("button",{disabled:k,type:"button",onClick:()=>{i("pdf")},className:(0,E.cn)("relative w-9 h-9 flex items-center justify-center border border-slate-6 text-sm rounded-lg transition duration-200 ease-in-out","text-slate-11 hover:text-slate-12","disabled:opacity-50 disabled:cursor-not-allowed",d&&"bg-slate-4"),children:(0,j.jsx)(b$.IconFile,{size:16})})}),(0,j.jsx)(V.Tooltip.Content,{children:"Open as PDF"})]}),(0,j.jsxs)(V.Tooltip,{children:[(0,j.jsx)(V.Tooltip.Trigger,{asChild:!0,children:(0,j.jsx)("button",{disabled:k,type:"button",onClick:()=>{i("screenshot")},className:(0,E.cn)("relative w-9 h-9 flex items-center justify-center border border-slate-6 text-sm rounded-lg transition duration-200 ease-in-out","text-slate-11 hover:text-slate-12","disabled:opacity-50 disabled:cursor-not-allowed",f&&"bg-slate-4"),children:(0,j.jsx)(b_,{size:16})})}),(0,j.jsx)(V.Tooltip.Content,{children:"Open as Screenshot"})]})]})},b1=({children:a})=>{let b=a.match(/(Unexpected closing tag "[^"]+". It may happen when the tag has already been closed by another tag). (For more info see) (.+)/);if(b){let[a,c,d,e]=b;return(0,j.jsxs)(j.Fragment,{children:[c,".",(0,j.jsxs)("p",{className:"text-lg",children:[d," ",(0,j.jsx)("a",{className:"underline",rel:"noreferrer",target:"_blank",href:e,children:e})]})]})}return a},b2=({error:a})=>(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("div",{className:"absolute inset-0 z-50 bg-black/80"}),(0,j.jsxs)("div",{className:" min-h-[50vh] w-full max-w-lg sm:rounded-lg md:max-w-[568px] lg:max-w-[920px] absolute left-[50%] top-[50%] z-50 translate-x-[-50%] translate-y-[-50%] rounded-t-sm overflow-hidden bg-white text-black shadow-lg duration-200 flex flex-col selection:text-black! ",children:[(0,j.jsx)("div",{className:"bg-red-500 h-3"}),(0,j.jsxs)("div",{className:"flex grow p-6 min-w-0 max-w-full flex-col space-y-1.5",children:[(0,j.jsxs)("div",{className:"shrink pb-2 text-xl tracking-tight",children:[(0,j.jsx)("b",{children:a.name}),": ",(0,j.jsx)(b1,{children:a.message})]}),a.stack?(0,j.jsx)("div",{className:"grow scroll-px-4 overflow-x-auto rounded-lg bg-black p-2 text-gray-100",children:(0,j.jsx)("pre",{className:"w-full min-w-0 font-mono leading-6 selection:text-cyan-12! text-xs",children:a.stack})}):void 0]})]})]}),b3=(a,b)=>{b?(a.documentElement.classList.add("dark"),a.body.classList.add("dark")):(a.documentElement.classList.remove("dark"),a.body.classList.remove("dark"))},b4=(0,l.forwardRef)(function({markup:a,width:b,height:c,darkMode:d=!1,...e},f){let g=(0,l.useRef)(null);return(0,l.useEffect)(()=>{let a=g.current;if(!a)return;let{contentDocument:b}=a;b&&b3(b,d)},[d,a]),(0,j.jsx)("iframe",{ref:a=>{g.current=a,"function"==typeof f?f(a):f&&(f.current=a)},srcDoc:a,width:b,height:c,onLoad:a=>{let{contentDocument:b}=a.currentTarget;b&&b3(b,d)},...e})});a.s(["default",0,({templateTitle:a,className:b,...c})=>{let{renderingResult:d,renderedTemplateMetadata:e}=(0,bV.usePreviewContext)(),f=(0,k.useRouter)(),g=(0,k.usePathname)(),h=(0,k.useSearchParams)(),i=null!==h.get("dark"),n=h.get("view")??"preview",o=h.get("lang")??"tsx",p=void 0!==e,q="error"in d,[r,s]=(0,l.useState)(1/0),[t,u]=(0,l.useState)(1/0),v=h.get("width"),w=h.get("height"),[x,y]=bX(v?Number.parseInt(v,10):794,220,r),[z,A]=bX(w?Number.parseInt(w,10):1123,352,t),C=function(a,b,c){var d=this,e=(0,l.useRef)(null),f=(0,l.useRef)(0),g=(0,l.useRef)(null),h=(0,l.useRef)([]),i=(0,l.useRef)(),j=(0,l.useRef)(),k=(0,l.useRef)(a),m=(0,l.useRef)(!0);k.current=a;var n=!b&&0!==b&&!1;if("function"!=typeof a)throw TypeError("Expected a function");b=+b||0;var o=!!(c=c||{}).leading,p=!("trailing"in c)||!!c.trailing,q="maxWait"in c,r="debounceOnServer"in c&&!!c.debounceOnServer,s=q?Math.max(+c.maxWait||0,b):null;return(0,l.useEffect)(function(){return m.current=!0,function(){m.current=!1}},[]),(0,l.useMemo)(function(){var a=function(a){var b=h.current,c=i.current;return h.current=i.current=null,f.current=a,j.current=k.current.apply(c,b)},c=function(a,b){n&&cancelAnimationFrame(g.current),g.current=setTimeout(a,b)},l=function(a){if(!m.current)return!1;var c=a-e.current;return!e.current||c>=b||c<0||q&&a-f.current>=s},t=function(b){return g.current=null,p&&h.current?a(b):(h.current=i.current=null,j.current)},u=function a(){var d=Date.now();if(l(d))return t(d);if(m.current){var g=b-(d-e.current);c(a,q?Math.min(g,s-(d-f.current)):g)}},v=function(){if(r){var k=Date.now(),n=l(k);if(h.current=[].slice.call(arguments),i.current=d,e.current=k,n){if(!g.current&&m.current)return f.current=e.current,c(u,b),o?a(e.current):j.current;if(q)return c(u,b),a(e.current)}return g.current||c(u,b),j.current}};return v.cancel=function(){g.current&&clearTimeout(g.current),f.current=0,h.current=e.current=i.current=g.current=null},v.isPending=function(){return!!g.current},v.flush=function(){return g.current?t(Date.now()):j.current},v},[o,q,b,s,p,n,!1,r])}(()=>{let a=new URLSearchParams(h);a.set("width",x.toString()),a.set("height",z.toString()),f.push(`${g}?${a.toString()}${location.hash}`)},300),{toggled:D}=(0,bv.useToolbarState)();return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(K.Topbar,{templateTitle:a,children:["preview"===n?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(bU,{enabled:i,onChange:a=>{let b;return b=new URLSearchParams(h),void(a?b.set("dark",""):b.delete("dark"),f.push(`${g}?${b.toString()}${location.hash}`))}}),(0,j.jsx)(bt,{setViewHeight:a=>{A(a),(0,m.flushSync)(()=>{C()})},setViewWidth:a=>{y(a),(0,m.flushSync)(()=>{C()})},viewHeight:z,viewWidth:x,minWidth:220,minHeight:352})]}):null,(0,j.jsx)(bR,{activeView:n,setActiveView:a=>{let b=new URLSearchParams(h);b.set("view",a),f.push(`${g}?${b.toString()}${location.hash}`)}}),p?(0,j.jsx)("div",{className:"flex justify-end",children:(0,j.jsx)(b0,{templateSlug:a,htmlMarkup:e.markup,darkMode:i})}):null]}),(0,j.jsxs)("div",{...c,className:(0,E.cn)("h-[calc(100%-3.5rem-2.375rem)] will-change-[height] flex p-4 transition-[height] duration-300 relative","preview"===n&&"bg-gray-200","preview"===n&&i&&"bg-gray-400",D&&"h-[calc(100%-3.5rem-13rem)]",b),ref:a=>{let b=new ResizeObserver(a=>{let[b]=a;b&&(s(b.contentRect.width),u(b.contentRect.height))});return a&&b.observe(a),()=>{b.disconnect()}},children:[q?(0,j.jsx)(b2,{error:d.error}):null,p?(0,j.jsxs)(j.Fragment,{children:["preview"===n&&(0,j.jsx)(bu,{minHeight:352,minWidth:220,maxHeight:t,maxWidth:r,height:z,onResizeEnd:()=>{C()},onResize:(a,b)=>{"east"===b||"west"===b?y(Math.round(a)):A(Math.round(a))},width:x,children:(0,j.jsx)(b4,{className:"max-h-full rounded-lg bg-white [color-scheme:auto]",darkMode:i,markup:e.markup,width:x,height:z,title:a,ref:a=>{if(a){let b,c;return b=b=>{let c=a.getBoundingClientRect();document.dispatchEvent(new MouseEvent("mousemove",{...b,clientX:b.clientX+c.x,clientY:b.clientY+c.y}))},c=a=>{document.dispatchEvent(new MouseEvent("mouseup",a))},a.contentDocument?.addEventListener("mousemove",b),a.contentDocument?.addEventListener("mouseup",c),()=>{a.contentDocument?.removeEventListener("mousemove",b),a.contentDocument?.removeEventListener("mouseup",c)}}}})}),"source"===n&&(0,j.jsx)("div",{className:"h-full w-full",children:(0,j.jsx)("div",{className:"m-auto h-full flex max-w-3xl p-6",children:(0,j.jsx)(V.Tooltip.Provider,{children:(0,j.jsx)(W,{activeLang:o,basename:e.basename,markups:[{language:"tsx",extension:e.extname,content:e.reactMarkup},{language:"html",content:e.prettyMarkup},{language:"markdown",extension:"md",content:e.plainText}],setActiveLang:a=>{let b=new URLSearchParams(h);b.set("view","source"),b.set("lang",a);let c=h.get("lang")===a;f.push(`${g}?${b.toString()}${c?location.hash:""}`)}})})})})]}):null,(0,j.jsx)(B,{})]})]})}],73897)}];
2
+
3
+ //# sourceMappingURL=packages_preview-server_src_e17a2a9b._.js.map