@minimalcorp/meshi 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/.next/standalone/apps/web/.next/BUILD_ID +1 -1
  2. package/.next/standalone/apps/web/.next/app-build-manifest.json +7 -7
  3. package/.next/standalone/apps/web/.next/app-path-routes-manifest.json +2 -2
  4. package/.next/standalone/apps/web/.next/build-manifest.json +2 -2
  5. package/.next/standalone/apps/web/.next/prerender-manifest.json +12 -12
  6. package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
  8. package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +2 -2
  9. package/.next/standalone/apps/web/.next/server/app/dashboard/page.js +1 -1
  10. package/.next/standalone/apps/web/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/apps/web/.next/server/app/dashboard.html +1 -1
  12. package/.next/standalone/apps/web/.next/server/app/dashboard.rsc +3 -3
  13. package/.next/standalone/apps/web/.next/server/app/foods/page.js +1 -1
  14. package/.next/standalone/apps/web/.next/server/app/foods/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/apps/web/.next/server/app/foods.html +1 -1
  16. package/.next/standalone/apps/web/.next/server/app/foods.rsc +3 -3
  17. package/.next/standalone/apps/web/.next/server/app/goals/page.js +1 -1
  18. package/.next/standalone/apps/web/.next/server/app/goals/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/apps/web/.next/server/app/goals.html +1 -1
  20. package/.next/standalone/apps/web/.next/server/app/goals.rsc +3 -3
  21. package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
  22. package/.next/standalone/apps/web/.next/server/app/index.rsc +3 -3
  23. package/.next/standalone/apps/web/.next/server/app/page.js +1 -1
  24. package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/apps/web/.next/server/app-paths-manifest.json +2 -2
  26. package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
  27. package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
  28. package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
  29. package/.next/standalone/apps/web/.next/static/chunks/app/dashboard/page-9a5eb095602175ec.js +1 -0
  30. package/.next/standalone/apps/web/.next/static/chunks/app/foods/page-180e9721acdbca25.js +1 -0
  31. package/.next/standalone/apps/web/.next/static/chunks/app/goals/page-33762df951ed61c0.js +1 -0
  32. package/.next/standalone/apps/web/.next/static/chunks/app/page-d1b424b60fbe8c18.js +1 -0
  33. package/.next/standalone/apps/web/.next/static/css/ac8e8f35825d92cd.css +1 -0
  34. package/.next/standalone/apps/web/package.json +3 -2
  35. package/dist/cli.js +13 -8
  36. package/dist/server/index.js +19 -3
  37. package/package.json +3 -3
  38. package/.next/standalone/apps/web/.next/static/chunks/app/dashboard/page-91507359fbc6638a.js +0 -1
  39. package/.next/standalone/apps/web/.next/static/chunks/app/foods/page-50858f76b2a6c8b8.js +0 -1
  40. package/.next/standalone/apps/web/.next/static/chunks/app/goals/page-b89f11b766408d3b.js +0 -1
  41. package/.next/standalone/apps/web/.next/static/chunks/app/page-2ddb4f0f2f148278.js +0 -1
  42. package/.next/standalone/apps/web/.next/static/css/1affe5324d8176a9.css +0 -1
  43. /package/.next/standalone/apps/web/.next/static/{KXdgQeTs8Pce55pRT4jbm → T9SmpQfgKTNd318PMZpYn}/_buildManifest.js +0 -0
  44. /package/.next/standalone/apps/web/.next/static/{KXdgQeTs8Pce55pRT4jbm → T9SmpQfgKTNd318PMZpYn}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><!--KXdgQeTs8Pce55pRT4jbm--><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/1affe5324d8176a9.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4e6bf084ac60582b.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-d1ba49e1e5028ea6.js" async=""></script><script src="/_next/static/chunks/main-app-c288eb82b72d6778.js" async=""></script><script src="/_next/static/chunks/app/layout-c3fd07aa6dba82c3.js" async=""></script><script src="/_next/static/chunks/app/goals/page-b89f11b766408d3b.js" async=""></script><title>meshi — カロリー記録</title><meta name="description" content="摂取カロリーを記録し、目標に対する進捗を可視化するツール"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="mx-auto max-w-3xl px-4 pb-16"><header class="flex items-center justify-between py-5"><a class="text-xl font-bold tracking-tight" href="/">🍚 meshi</a><nav class="flex gap-1 text-sm"><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/">ホーム</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/dashboard">ダッシュボード</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/foods">食品マスタ</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/goals">目標</a></nav></header><main><div class="space-y-6"><div class="rounded-xl border border-neutral-200 bg-white p-5 shadow-sm "><h2 class="mb-3 text-base font-semibold text-neutral-800">現在の目標</h2><p class="text-sm text-neutral-500">読み込み中…</p></div><div class="rounded-xl border border-neutral-200 bg-white p-5 shadow-sm "><h2 class="mb-3 text-base font-semibold text-neutral-800">目標を設定 / 変更</h2><form class="grid grid-cols-2 gap-3"><label class="block"><span class="mb-1 block text-xs font-medium text-neutral-500">1日の目標カロリー (kcal)</span><input class="w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500" type="number" min="0" placeholder="1500" required="" value=""/></label><label class="block"><span class="mb-1 block text-xs font-medium text-neutral-500">適用開始日</span><input class="w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500" type="date" value="2026-06-29"/></label><div class="col-span-2"><button class="rounded-md px-3 py-1.5 text-sm font-medium transition disabled:cursor-not-allowed bg-neutral-900 text-white hover:bg-neutral-700 disabled:bg-neutral-400 " type="submit">この目標を保存</button><p class="mt-2 text-xs text-neutral-500">※ 適用開始日ごとに履歴が残り、各日はその日時点の目標で評価されます。</p></div></form></div><div class="rounded-xl border border-neutral-200 bg-white p-5 shadow-sm "><h2 class="mb-3 text-base font-semibold text-neutral-800">目標の履歴</h2><p class="text-sm text-neutral-500">履歴はありません。</p></div></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/webpack-4e6bf084ac60582b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[2619,[\"177\",\"static/chunks/app/layout-c3fd07aa6dba82c3.js\"],\"\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[5913,[\"341\",\"static/chunks/app/goals/page-b89f11b766408d3b.js\"],\"GoalManager\"]\n6:I[4431,[],\"OutletBoundary\"]\n8:I[5278,[],\"AsyncMetadataOutlet\"]\na:I[4431,[],\"ViewportBoundary\"]\nc:I[4431,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[7150,[],\"\"]\n:HL[\"/_next/static/css/1affe5324d8176a9.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"KXdgQeTs8Pce55pRT4jbm\",\"p\":\"\",\"c\":[\"\",\"goals\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"goals\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1affe5324d8176a9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl px-4 pb-16\",\"children\":[[\"$\",\"header\",null,{\"className\":\"flex items-center justify-between py-5\",\"children\":[[\"$\",\"$L2\",null,{\"href\":\"/\",\"className\":\"text-xl font-bold tracking-tight\",\"children\":\"🍚 meshi\"}],[\"$\",\"nav\",null,{\"className\":\"flex gap-1 text-sm\",\"children\":[[\"$\",\"$L2\",\"/\",{\"href\":\"/\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ホーム\"}],[\"$\",\"$L2\",\"/dashboard\",{\"href\":\"/dashboard\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ダッシュボード\"}],[\"$\",\"$L2\",\"/foods\",{\"href\":\"/foods\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"食品マスタ\"}],[\"$\",\"$L2\",\"/goals\",{\"href\":\"/goals\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"目標\"}]]}]]}],[\"$\",\"main\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]]}],{\"children\":[\"goals\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{}],null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"meshi — カロリー記録\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"摂取カロリーを記録し、目標に対する進捗を可視化するツール\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--T9SmpQfgKTNd318PMZpYn--><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/ac8e8f35825d92cd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4e6bf084ac60582b.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-d1ba49e1e5028ea6.js" async=""></script><script src="/_next/static/chunks/main-app-c288eb82b72d6778.js" async=""></script><script src="/_next/static/chunks/app/layout-c3fd07aa6dba82c3.js" async=""></script><script src="/_next/static/chunks/app/goals/page-33762df951ed61c0.js" async=""></script><title>meshi — カロリー記録</title><meta name="description" content="摂取カロリーを記録し、目標に対する進捗を可視化するツール"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="mx-auto max-w-3xl px-4 pb-16"><header class="flex items-center justify-between py-5"><a class="text-xl font-bold tracking-tight" href="/">🍚 meshi</a><nav class="flex gap-1 text-sm"><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/">ホーム</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/dashboard">ダッシュボード</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/foods">食品マスタ</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/goals">目標</a></nav></header><main><div class="space-y-6"><div class="rounded-xl border border-neutral-200 bg-white p-5 shadow-sm "><h2 class="mb-3 text-base font-semibold text-neutral-800">現在の目標</h2><p class="text-sm text-neutral-500">読み込み中…</p></div><div class="rounded-xl border border-neutral-200 bg-white p-5 shadow-sm "><h2 class="mb-3 text-base font-semibold text-neutral-800">目標を設定 / 変更</h2><form class="grid grid-cols-2 gap-3"><label class="block"><span class="mb-1 block text-xs font-medium text-neutral-500">1日の目標カロリー (kcal)</span><input class="w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500" type="number" min="0" placeholder="1500" required="" value=""/></label><label class="block"><span class="mb-1 block text-xs font-medium text-neutral-500">適用開始日</span><input class="w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500" type="date" value="2026-06-30"/></label><div class="col-span-2"><button class="rounded-md px-3 py-1.5 text-sm font-medium transition disabled:cursor-not-allowed bg-neutral-900 text-white hover:bg-neutral-700 disabled:bg-neutral-400 " type="submit">この目標を保存</button><p class="mt-2 text-xs text-neutral-500">※ 適用開始日ごとに履歴が残り、各日はその日時点の目標で評価されます。</p></div></form></div><div class="rounded-xl border border-neutral-200 bg-white p-5 shadow-sm "><h2 class="mb-3 text-base font-semibold text-neutral-800">目標の履歴</h2><p class="text-sm text-neutral-500">履歴はありません。</p></div></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/webpack-4e6bf084ac60582b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[2619,[\"177\",\"static/chunks/app/layout-c3fd07aa6dba82c3.js\"],\"\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[5913,[\"341\",\"static/chunks/app/goals/page-33762df951ed61c0.js\"],\"GoalManager\"]\n6:I[4431,[],\"OutletBoundary\"]\n8:I[5278,[],\"AsyncMetadataOutlet\"]\na:I[4431,[],\"ViewportBoundary\"]\nc:I[4431,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[7150,[],\"\"]\n:HL[\"/_next/static/css/ac8e8f35825d92cd.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"T9SmpQfgKTNd318PMZpYn\",\"p\":\"\",\"c\":[\"\",\"goals\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"goals\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ac8e8f35825d92cd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl px-4 pb-16\",\"children\":[[\"$\",\"header\",null,{\"className\":\"flex items-center justify-between py-5\",\"children\":[[\"$\",\"$L2\",null,{\"href\":\"/\",\"className\":\"text-xl font-bold tracking-tight\",\"children\":\"🍚 meshi\"}],[\"$\",\"nav\",null,{\"className\":\"flex gap-1 text-sm\",\"children\":[[\"$\",\"$L2\",\"/\",{\"href\":\"/\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ホーム\"}],[\"$\",\"$L2\",\"/dashboard\",{\"href\":\"/dashboard\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ダッシュボード\"}],[\"$\",\"$L2\",\"/foods\",{\"href\":\"/foods\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"食品マスタ\"}],[\"$\",\"$L2\",\"/goals\",{\"href\":\"/goals\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"目標\"}]]}]]}],[\"$\",\"main\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]]}],{\"children\":[\"goals\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{}],null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"meshi — カロリー記録\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"摂取カロリーを記録し、目標に対する進捗を可視化するツール\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
@@ -2,15 +2,15 @@
2
2
  2:I[2619,["177","static/chunks/app/layout-c3fd07aa6dba82c3.js"],""]
3
3
  3:I[9766,[],""]
4
4
  4:I[8924,[],""]
5
- 5:I[5913,["341","static/chunks/app/goals/page-b89f11b766408d3b.js"],"GoalManager"]
5
+ 5:I[5913,["341","static/chunks/app/goals/page-33762df951ed61c0.js"],"GoalManager"]
6
6
  6:I[4431,[],"OutletBoundary"]
7
7
  8:I[5278,[],"AsyncMetadataOutlet"]
8
8
  a:I[4431,[],"ViewportBoundary"]
9
9
  c:I[4431,[],"MetadataBoundary"]
10
10
  d:"$Sreact.suspense"
11
11
  f:I[7150,[],""]
12
- :HL["/_next/static/css/1affe5324d8176a9.css","style"]
13
- 0:{"P":null,"b":"KXdgQeTs8Pce55pRT4jbm","p":"","c":["","goals"],"i":false,"f":[[["",{"children":["goals",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1affe5324d8176a9.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"ja","children":["$","body",null,{"children":["$","div",null,{"className":"mx-auto max-w-3xl px-4 pb-16","children":[["$","header",null,{"className":"flex items-center justify-between py-5","children":[["$","$L2",null,{"href":"/","className":"text-xl font-bold tracking-tight","children":"🍚 meshi"}],["$","nav",null,{"className":"flex gap-1 text-sm","children":[["$","$L2","/",{"href":"/","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"ホーム"}],["$","$L2","/dashboard",{"href":"/dashboard","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"ダッシュボード"}],["$","$L2","/foods",{"href":"/foods","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"食品マスタ"}],["$","$L2","/goals",{"href":"/goals","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"目標"}]]}]]}],["$","main",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["goals",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{}],null,["$","$L6",null,{"children":["$L7",["$","$L8",null,{"promise":"$@9"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$La",null,{"children":"$Lb"}],null],["$","$Lc",null,{"children":["$","div",null,{"hidden":true,"children":["$","$d",null,{"fallback":null,"children":"$Le"}]}]}]]}],false]],"m":"$undefined","G":["$f",[]],"s":false,"S":true}
12
+ :HL["/_next/static/css/ac8e8f35825d92cd.css","style"]
13
+ 0:{"P":null,"b":"T9SmpQfgKTNd318PMZpYn","p":"","c":["","goals"],"i":false,"f":[[["",{"children":["goals",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ac8e8f35825d92cd.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"ja","children":["$","body",null,{"children":["$","div",null,{"className":"mx-auto max-w-3xl px-4 pb-16","children":[["$","header",null,{"className":"flex items-center justify-between py-5","children":[["$","$L2",null,{"href":"/","className":"text-xl font-bold tracking-tight","children":"🍚 meshi"}],["$","nav",null,{"className":"flex gap-1 text-sm","children":[["$","$L2","/",{"href":"/","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"ホーム"}],["$","$L2","/dashboard",{"href":"/dashboard","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"ダッシュボード"}],["$","$L2","/foods",{"href":"/foods","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"食品マスタ"}],["$","$L2","/goals",{"href":"/goals","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"目標"}]]}]]}],["$","main",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["goals",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{}],null,["$","$L6",null,{"children":["$L7",["$","$L8",null,{"promise":"$@9"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$La",null,{"children":"$Lb"}],null],["$","$Lc",null,{"children":["$","div",null,{"hidden":true,"children":["$","$d",null,{"fallback":null,"children":"$Le"}]}]}]]}],false]],"m":"$undefined","G":["$f",[]],"s":false,"S":true}
14
14
  b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
15
15
  7:null
16
16
  9:{"metadata":[["$","title","0",{"children":"meshi — カロリー記録"}],["$","meta","1",{"name":"description","content":"摂取カロリーを記録し、目標に対する進捗を可視化するツール"}]],"error":null,"digest":"$undefined"}
@@ -1 +1 @@
1
- <!DOCTYPE html><!--KXdgQeTs8Pce55pRT4jbm--><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/1affe5324d8176a9.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4e6bf084ac60582b.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-d1ba49e1e5028ea6.js" async=""></script><script src="/_next/static/chunks/main-app-c288eb82b72d6778.js" async=""></script><script src="/_next/static/chunks/app/layout-c3fd07aa6dba82c3.js" async=""></script><script src="/_next/static/chunks/app/page-2ddb4f0f2f148278.js" async=""></script><title>meshi — カロリー記録</title><meta name="description" content="摂取カロリーを記録し、目標に対する進捗を可視化するツール"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="mx-auto max-w-3xl px-4 pb-16"><header class="flex items-center justify-between py-5"><a class="text-xl font-bold tracking-tight" href="/">🍚 meshi</a><nav class="flex gap-1 text-sm"><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/">ホーム</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/dashboard">ダッシュボード</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/foods">食品マスタ</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/goals">目標</a></nav></header><main><p class="text-sm text-neutral-500">読み込み中…</p><!--$--><!--/$--></main></div><script src="/_next/static/chunks/webpack-4e6bf084ac60582b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[2619,[\"177\",\"static/chunks/app/layout-c3fd07aa6dba82c3.js\"],\"\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[674,[\"974\",\"static/chunks/app/page-2ddb4f0f2f148278.js\"],\"RecordEntry\"]\n6:I[4431,[],\"OutletBoundary\"]\n8:I[5278,[],\"AsyncMetadataOutlet\"]\na:I[4431,[],\"ViewportBoundary\"]\nc:I[4431,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[7150,[],\"\"]\n:HL[\"/_next/static/css/1affe5324d8176a9.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"KXdgQeTs8Pce55pRT4jbm\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1affe5324d8176a9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl px-4 pb-16\",\"children\":[[\"$\",\"header\",null,{\"className\":\"flex items-center justify-between py-5\",\"children\":[[\"$\",\"$L2\",null,{\"href\":\"/\",\"className\":\"text-xl font-bold tracking-tight\",\"children\":\"🍚 meshi\"}],[\"$\",\"nav\",null,{\"className\":\"flex gap-1 text-sm\",\"children\":[[\"$\",\"$L2\",\"/\",{\"href\":\"/\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ホーム\"}],[\"$\",\"$L2\",\"/dashboard\",{\"href\":\"/dashboard\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ダッシュボード\"}],[\"$\",\"$L2\",\"/foods\",{\"href\":\"/foods\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"食品マスタ\"}],[\"$\",\"$L2\",\"/goals\",{\"href\":\"/goals\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"目標\"}]]}]]}],[\"$\",\"main\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{}],null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"meshi — カロリー記録\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"摂取カロリーを記録し、目標に対する進捗を可視化するツール\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--T9SmpQfgKTNd318PMZpYn--><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/ac8e8f35825d92cd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4e6bf084ac60582b.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-d1ba49e1e5028ea6.js" async=""></script><script src="/_next/static/chunks/main-app-c288eb82b72d6778.js" async=""></script><script src="/_next/static/chunks/app/layout-c3fd07aa6dba82c3.js" async=""></script><script src="/_next/static/chunks/app/page-d1b424b60fbe8c18.js" async=""></script><title>meshi — カロリー記録</title><meta name="description" content="摂取カロリーを記録し、目標に対する進捗を可視化するツール"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="mx-auto max-w-3xl px-4 pb-16"><header class="flex items-center justify-between py-5"><a class="text-xl font-bold tracking-tight" href="/">🍚 meshi</a><nav class="flex gap-1 text-sm"><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/">ホーム</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/dashboard">ダッシュボード</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/foods">食品マスタ</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/goals">目標</a></nav></header><main><p class="text-sm text-neutral-500">読み込み中…</p><!--$--><!--/$--></main></div><script src="/_next/static/chunks/webpack-4e6bf084ac60582b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[2619,[\"177\",\"static/chunks/app/layout-c3fd07aa6dba82c3.js\"],\"\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[6305,[\"974\",\"static/chunks/app/page-d1b424b60fbe8c18.js\"],\"RecordEntry\"]\n6:I[4431,[],\"OutletBoundary\"]\n8:I[5278,[],\"AsyncMetadataOutlet\"]\na:I[4431,[],\"ViewportBoundary\"]\nc:I[4431,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[7150,[],\"\"]\n:HL[\"/_next/static/css/ac8e8f35825d92cd.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"T9SmpQfgKTNd318PMZpYn\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ac8e8f35825d92cd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl px-4 pb-16\",\"children\":[[\"$\",\"header\",null,{\"className\":\"flex items-center justify-between py-5\",\"children\":[[\"$\",\"$L2\",null,{\"href\":\"/\",\"className\":\"text-xl font-bold tracking-tight\",\"children\":\"🍚 meshi\"}],[\"$\",\"nav\",null,{\"className\":\"flex gap-1 text-sm\",\"children\":[[\"$\",\"$L2\",\"/\",{\"href\":\"/\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ホーム\"}],[\"$\",\"$L2\",\"/dashboard\",{\"href\":\"/dashboard\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ダッシュボード\"}],[\"$\",\"$L2\",\"/foods\",{\"href\":\"/foods\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"食品マスタ\"}],[\"$\",\"$L2\",\"/goals\",{\"href\":\"/goals\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"目標\"}]]}]]}],[\"$\",\"main\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{}],null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"meshi — カロリー記録\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"摂取カロリーを記録し、目標に対する進捗を可視化するツール\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
@@ -2,15 +2,15 @@
2
2
  2:I[2619,["177","static/chunks/app/layout-c3fd07aa6dba82c3.js"],""]
3
3
  3:I[9766,[],""]
4
4
  4:I[8924,[],""]
5
- 5:I[674,["974","static/chunks/app/page-2ddb4f0f2f148278.js"],"RecordEntry"]
5
+ 5:I[6305,["974","static/chunks/app/page-d1b424b60fbe8c18.js"],"RecordEntry"]
6
6
  6:I[4431,[],"OutletBoundary"]
7
7
  8:I[5278,[],"AsyncMetadataOutlet"]
8
8
  a:I[4431,[],"ViewportBoundary"]
9
9
  c:I[4431,[],"MetadataBoundary"]
10
10
  d:"$Sreact.suspense"
11
11
  f:I[7150,[],""]
12
- :HL["/_next/static/css/1affe5324d8176a9.css","style"]
13
- 0:{"P":null,"b":"KXdgQeTs8Pce55pRT4jbm","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1affe5324d8176a9.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"ja","children":["$","body",null,{"children":["$","div",null,{"className":"mx-auto max-w-3xl px-4 pb-16","children":[["$","header",null,{"className":"flex items-center justify-between py-5","children":[["$","$L2",null,{"href":"/","className":"text-xl font-bold tracking-tight","children":"🍚 meshi"}],["$","nav",null,{"className":"flex gap-1 text-sm","children":[["$","$L2","/",{"href":"/","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"ホーム"}],["$","$L2","/dashboard",{"href":"/dashboard","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"ダッシュボード"}],["$","$L2","/foods",{"href":"/foods","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"食品マスタ"}],["$","$L2","/goals",{"href":"/goals","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"目標"}]]}]]}],["$","main",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{}],null,["$","$L6",null,{"children":["$L7",["$","$L8",null,{"promise":"$@9"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$La",null,{"children":"$Lb"}],null],["$","$Lc",null,{"children":["$","div",null,{"hidden":true,"children":["$","$d",null,{"fallback":null,"children":"$Le"}]}]}]]}],false]],"m":"$undefined","G":["$f",[]],"s":false,"S":true}
12
+ :HL["/_next/static/css/ac8e8f35825d92cd.css","style"]
13
+ 0:{"P":null,"b":"T9SmpQfgKTNd318PMZpYn","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ac8e8f35825d92cd.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"ja","children":["$","body",null,{"children":["$","div",null,{"className":"mx-auto max-w-3xl px-4 pb-16","children":[["$","header",null,{"className":"flex items-center justify-between py-5","children":[["$","$L2",null,{"href":"/","className":"text-xl font-bold tracking-tight","children":"🍚 meshi"}],["$","nav",null,{"className":"flex gap-1 text-sm","children":[["$","$L2","/",{"href":"/","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"ホーム"}],["$","$L2","/dashboard",{"href":"/dashboard","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"ダッシュボード"}],["$","$L2","/foods",{"href":"/foods","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"食品マスタ"}],["$","$L2","/goals",{"href":"/goals","className":"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900","children":"目標"}]]}]]}],["$","main",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{}],null,["$","$L6",null,{"children":["$L7",["$","$L8",null,{"promise":"$@9"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$La",null,{"children":"$Lb"}],null],["$","$Lc",null,{"children":["$","div",null,{"hidden":true,"children":["$","$d",null,{"fallback":null,"children":"$Le"}]}]}]]}],false]],"m":"$undefined","G":["$f",[]],"s":false,"S":true}
14
14
  b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
15
15
  7:null
16
16
  9:{"metadata":[["$","title","0",{"children":"meshi — カロリー記録"}],["$","meta","1",{"name":"description","content":"摂取カロリーを記録し、目標に対する進捗を可視化するツール"}]],"error":null,"digest":"$undefined"}
@@ -1,2 +1,2 @@
1
- (()=>{var a={};a.id=974,a.ids=[974],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},967:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(5338),e=c(5530);function f(){return(0,d.jsx)(e.RecordEntry,{})}},1025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},1098:(a,b,c)=>{"use strict";c.d(b,{RecordEntry:()=>m});var d=c(1124),e=c(8301),f=c(5478);let g=["breakfast","lunch","dinner","snack"],h={breakfast:"朝食",lunch:"昼食",dinner:"夕食",snack:"間食"};var i=c(5668),j=c(2803);function k({record:a,onChanged:b}){let[c,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(a.name),[n,o]=(0,e.useState)(String(a.calories)),[p,q]=(0,e.useState)(a.mealType),[r,s]=(0,e.useState)((0,i.iI)(new Date(a.consumedAt))),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(null);async function x(){u(!0),w(null);try{await f.Jp.update(a.id,{name:l,calories:Number(n),mealType:p,consumedAt:new Date(r).toISOString()}),k(!1),await b()}catch(a){w(String(a))}finally{u(!1)}}async function y(){u(!0);try{await f.Jp.remove(a.id),await b()}finally{u(!1)}}return c?(0,d.jsxs)("li",{className:"py-2 text-sm",children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,d.jsx)(j.pd,{value:l,onChange:a=>m(a.target.value),placeholder:"食品名"}),(0,d.jsx)(j.pd,{type:"number",min:"0",value:n,onChange:a=>o(a.target.value),placeholder:"kcal"}),(0,d.jsx)(j.l6,{value:p,onChange:a=>q(a.target.value),children:g.map(a=>(0,d.jsx)("option",{value:a,children:h[a]},a))}),(0,d.jsx)(j.pd,{type:"datetime-local",value:r,onChange:a=>s(a.target.value)})]}),v&&(0,d.jsx)("p",{className:"mt-1 text-xs text-red-600",children:v}),(0,d.jsxs)("div",{className:"mt-2 flex gap-2",children:[(0,d.jsx)(j.$n,{onClick:x,disabled:t,children:t?"保存中…":"保存"}),(0,d.jsx)(j.$n,{variant:"ghost",onClick:()=>k(!1),disabled:t,children:"キャンセル"})]})]}):(0,d.jsxs)("li",{className:"flex items-center justify-between py-2 text-sm",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-10 rounded bg-neutral-100 px-1 py-0.5 text-center text-xs text-neutral-600",children:h[a.mealType]}),(0,d.jsx)("span",{className:"text-neutral-400",children:(0,i.fU)(a.consumedAt)}),(0,d.jsx)("span",{className:"font-medium",children:a.name})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"tabular-nums",children:[a.calories," kcal"]}),(0,d.jsx)(j.$n,{variant:"ghost",onClick:function(){m(a.name),o(String(a.calories)),q(a.mealType),s((0,i.iI)(new Date(a.consumedAt))),w(null),k(!0)},disabled:t,children:"編集"}),(0,d.jsx)(j.$n,{variant:"danger",onClick:y,disabled:t,children:"削除"})]})]})}function l(a){return"master"===a.kind?Math.round(a.perServing*a.quantity):a.calories}function m(){let[a,b]=(0,e.useState)([]),[c,m]=(0,e.useState)([]),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!0),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)("master"),[v,w]=(0,e.useState)(""),[x,y]=(0,e.useState)("1"),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)([]),[F,G]=(0,e.useState)("breakfast"),[H,I]=(0,e.useState)((0,i.iI)(new Date)),[J,K]=(0,e.useState)(!1),L=(0,e.useRef)(0),M=()=>String(++L.current);async function N(){let a=new Date,[c,d,e]=await Promise.all([f.Mu.list(),f.Jp.list({from:(0,i.ol)(a).toISOString(),to:(0,i.D0)(a).toISOString()}),f.Pb.current()]);b(c),m(d),o(e),!v&&c.length>0&&w(c[0].id)}let O=(0,e.useMemo)(()=>c.reduce((a,b)=>a+b.calories,0),[c]),P=n?.dailyTarget??null,Q=P?Math.min(100,Math.round(O/P*100)):null,R=a.find(a=>a.id===v),S="master"===t&&R?Math.round(R.caloriesPerServing*(Number(x)||0)):null,T=(0,e.useMemo)(()=>D.reduce((a,b)=>a+l(b),0),[D]);async function U(){if(0===D.length)return void s("食品を追加してください");K(!0),s(null);try{let a=new Date(H).toISOString();await f.Jp.createBatch(D.map(b=>"master"===b.kind?{foodId:b.foodId,quantity:b.quantity,mealType:F,consumedAt:a}:{name:b.name,calories:b.calories,mealType:F,consumedAt:a})),E([]),await N()}catch(a){s(String(a))}finally{K(!1)}}return p?(0,d.jsx)("p",{className:"text-sm text-neutral-500",children:"読み込み中…"}):(0,d.jsxs)("div",{className:"space-y-6",children:[r&&(0,d.jsx)("div",{className:"rounded-md bg-red-50 px-3 py-2 text-sm text-red-700",children:r}),(0,d.jsxs)(j.Zp,{children:[(0,d.jsx)(j._x,{children:"今日の摂取"}),(0,d.jsxs)("div",{className:"flex items-end gap-2",children:[(0,d.jsx)("span",{className:"text-3xl font-bold",children:O.toLocaleString()}),(0,d.jsxs)("span",{className:"text-sm text-neutral-500",children:["kcal",P?` / 目標 ${P.toLocaleString()} kcal`:"(目標未設定)"]})]}),null!==Q&&(0,d.jsx)("div",{className:"mt-3 h-2 w-full overflow-hidden rounded-full bg-neutral-200",children:(0,d.jsx)("div",{className:`h-full ${O>(P??0)?"bg-red-500":"bg-emerald-500"}`,style:{width:`${Q}%`}})})]}),(0,d.jsxs)(j.Zp,{children:[(0,d.jsx)(j._x,{children:"記録する"}),(0,d.jsx)("p",{className:"mb-3 text-xs text-neutral-500",children:"食品を追加してから「まとめて記録」。米とサバ缶のように複数をまとめて1つの食事として登録できます。"}),(0,d.jsxs)("div",{className:"mb-3 flex gap-1 text-sm",children:[(0,d.jsx)("button",{type:"button",onClick:()=>u("master"),className:`rounded-md px-3 py-1 ${"master"===t?"bg-neutral-900 text-white":"bg-neutral-100"}`,children:"マスタから"}),(0,d.jsx)("button",{type:"button",onClick:()=>u("adhoc"),className:`rounded-md px-3 py-1 ${"adhoc"===t?"bg-neutral-900 text-white":"bg-neutral-100"}`,children:"その場で入力"})]}),(0,d.jsxs)("form",{onSubmit:function(b){if(b.preventDefault(),s(null),"master"===t){let b=a.find(a=>a.id===v);if(!b)return void s("食品を選択してください");E(a=>[...a,{key:M(),kind:"master",foodId:b.id,name:b.name,perServing:b.caloriesPerServing,quantity:Number(x)||1}])}else{if(!z.trim()||""===B)return void s("食品名とカロリーを入力してください");E(a=>[...a,{key:M(),kind:"adhoc",name:z.trim(),calories:Number(B)}]),A(""),C("")}},className:"grid grid-cols-2 gap-3",children:["master"===t?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"col-span-2",children:(0,d.jsx)(j.D0,{label:"食品",children:0===a.length?(0,d.jsx)("p",{className:"text-sm text-neutral-500",children:"食品マスタが空です。「食品マスタ」から登録してください。"}):(0,d.jsx)(j.l6,{value:v,onChange:a=>w(a.target.value),children:a.map(a=>(0,d.jsxs)("option",{value:a.id,children:[a.name,"(",a.caloriesPerServing," kcal",a.unitLabel?` / ${a.unitLabel}`:"",")"]},a.id))})})}),(0,d.jsx)(j.D0,{label:"数量",children:(0,d.jsx)(j.pd,{type:"number",step:"0.1",min:"0",value:x,onChange:a=>y(a.target.value)})}),(0,d.jsx)("div",{className:"flex items-end pb-1",children:(0,d.jsx)("p",{className:"text-sm text-neutral-500",children:null!==S?`= ${S} kcal`:""})})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(j.D0,{label:"食品名",children:(0,d.jsx)(j.pd,{value:z,onChange:a=>A(a.target.value)})}),(0,d.jsx)(j.D0,{label:"カロリー (kcal)",children:(0,d.jsx)(j.pd,{type:"number",min:"0",value:B,onChange:a=>C(a.target.value)})})]}),(0,d.jsx)("div",{className:"col-span-2",children:(0,d.jsx)(j.$n,{type:"submit",variant:"ghost",disabled:"master"===t&&0===a.length,children:"+ 食品を追加"})})]}),D.length>0&&(0,d.jsxs)("div",{className:"mt-3 rounded-lg border border-neutral-200 bg-neutral-50 p-3",children:[(0,d.jsx)("ul",{className:"divide-y divide-neutral-200",children:D.map(a=>(0,d.jsxs)("li",{className:"flex items-center justify-between py-1.5 text-sm",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"font-medium",children:a.name}),"master"===a.kind&&1!==a.quantity&&(0,d.jsxs)("span",{className:"ml-1 text-neutral-500",children:["\xd7",a.quantity]})]}),(0,d.jsxs)("span",{className:"flex items-center gap-3",children:[(0,d.jsxs)("span",{className:"tabular-nums text-neutral-600",children:[l(a)," kcal"]}),(0,d.jsx)("button",{type:"button",onClick:()=>{var b;return b=a.key,void E(a=>a.filter(a=>a.key!==b))},className:"rounded px-1.5 text-red-600 hover:bg-red-50","aria-label":"削除",children:"\xd7"})]})]},a.key))}),(0,d.jsxs)("div",{className:"mt-2 flex justify-between border-t border-neutral-200 pt-2 text-sm font-medium",children:[(0,d.jsxs)("span",{children:["合計(",D.length,"件)"]}),(0,d.jsxs)("span",{className:"tabular-nums",children:[T.toLocaleString()," kcal"]})]})]}),(0,d.jsxs)("div",{className:"mt-3 grid grid-cols-2 gap-3",children:[(0,d.jsx)(j.D0,{label:"区分",children:(0,d.jsx)(j.l6,{value:F,onChange:a=>G(a.target.value),children:g.map(a=>(0,d.jsx)("option",{value:a,children:h[a]},a))})}),(0,d.jsx)(j.D0,{label:"摂取日時",children:(0,d.jsx)(j.pd,{type:"datetime-local",value:H,onChange:a=>I(a.target.value)})}),(0,d.jsx)("div",{className:"col-span-2",children:(0,d.jsx)(j.$n,{type:"button",onClick:U,disabled:J||0===D.length,children:J?"記録中…":`まとめて記録${D.length>0?`(${D.length}件・${T.toLocaleString()} kcal)`:""}`})})]})]}),(0,d.jsxs)(j.Zp,{children:[(0,d.jsx)(j._x,{children:"今日の記録"}),0===c.length?(0,d.jsx)("p",{className:"text-sm text-neutral-500",children:"まだ記録がありません。"}):(0,d.jsx)("ul",{className:"divide-y divide-neutral-100",children:c.map(a=>(0,d.jsx)(k,{record:a,onChanged:N},a.id))})]})]})}},1135:()=>{},1472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>g});var d=c(5338),e=c(5169),f=c.n(e);c(1135);let g={title:"meshi — カロリー記録",description:"摂取カロリーを記録し、目標に対する進捗を可視化するツール"},h=[{href:"/",label:"ホーム"},{href:"/dashboard",label:"ダッシュボード"},{href:"/foods",label:"食品マスタ"},{href:"/goals",label:"目標"}];function i({children:a}){return(0,d.jsx)("html",{lang:"ja",children:(0,d.jsx)("body",{children:(0,d.jsxs)("div",{className:"mx-auto max-w-3xl px-4 pb-16",children:[(0,d.jsxs)("header",{className:"flex items-center justify-between py-5",children:[(0,d.jsx)(f(),{href:"/",className:"text-xl font-bold tracking-tight",children:"\uD83C\uDF5A meshi"}),(0,d.jsx)("nav",{className:"flex gap-1 text-sm",children:h.map(a=>(0,d.jsx)(f(),{href:a.href,className:"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900",children:a.label},a.href))})]}),(0,d.jsx)("main",{children:a})]})})})}},1655:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,3991,23))},2803:(a,b,c)=>{"use strict";c.d(b,{$n:()=>g,D0:()=>j,Zp:()=>e,_x:()=>f,l6:()=>i,pd:()=>h});var d=c(1124);function e({children:a,className:b=""}){return(0,d.jsx)("div",{className:`rounded-xl border border-neutral-200 bg-white p-5 shadow-sm ${b}`,children:a})}function f({children:a}){return(0,d.jsx)("h2",{className:"mb-3 text-base font-semibold text-neutral-800",children:a})}function g({children:a,variant:b="primary",className:c="",...e}){return(0,d.jsx)("button",{className:`rounded-md px-3 py-1.5 text-sm font-medium transition disabled:cursor-not-allowed ${{primary:"bg-neutral-900 text-white hover:bg-neutral-700 disabled:bg-neutral-400",ghost:"bg-neutral-100 text-neutral-700 hover:bg-neutral-200",danger:"text-red-600 hover:bg-red-50"}[b]} ${c}`,...e,children:a})}function h(a){return(0,d.jsx)("input",{className:"w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500",...a})}function i(a){return(0,d.jsx)("select",{className:"w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500",...a})}function j({label:a,children:b}){return(0,d.jsxs)("label",{className:"block",children:[(0,d.jsx)("span",{className:"mb-1 block text-xs font-medium text-neutral-500",children:a}),b]})}},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3407:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,5169,23))},5478:(a,b,c)=>{"use strict";async function d(a,b){let c=await fetch(`http://localhost:6251${a}`,{headers:{"content-type":"application/json"},cache:"no-store",...b});if(!c.ok){let b="";try{b=JSON.stringify(await c.json())}catch{}throw Error(`API ${c.status} ${a} ${b}`)}if(204!==c.status)return c.json()}c.d(b,{Jp:()=>f,Mu:()=>e,Pb:()=>g,XR:()=>h});let e={list:(a=!1)=>d(`/api/foods${a?"?includeArchived=true":""}`),create:a=>d("/api/foods",{method:"POST",body:JSON.stringify(a)}),update:(a,b)=>d(`/api/foods/${a}`,{method:"PATCH",body:JSON.stringify(b)})},f={list:a=>{let b=new URLSearchParams;a?.from&&b.set("from",a.from),a?.to&&b.set("to",a.to),a?.mealType&&b.set("mealType",a.mealType);let c=b.toString();return d(`/api/records${c?`?${c}`:""}`)},create:a=>d("/api/records",{method:"POST",body:JSON.stringify(a)}),createBatch:a=>d("/api/records/batch",{method:"POST",body:JSON.stringify({items:a})}),update:(a,b)=>d(`/api/records/${a}`,{method:"PATCH",body:JSON.stringify(b)}),remove:a=>d(`/api/records/${a}`,{method:"DELETE"})},g={list:()=>d("/api/goals"),current:()=>d("/api/goals/current"),create:a=>d("/api/goals",{method:"POST",body:JSON.stringify(a)}),remove:a=>d(`/api/goals/${a}`,{method:"DELETE"})},h={get:(a,b)=>{let c=new URLSearchParams({period:a});return b&&c.set("date",b),d(`/api/summary?${c.toString()}`)}}},5530:(a,b,c)=>{"use strict";c.d(b,{RecordEntry:()=>d});let d=(0,c(7954).registerClientReference)(function(){throw Error("Attempted to call RecordEntry() from the server but RecordEntry is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/meshi/meshi/apps/web/src/components/RecordEntry.tsx","RecordEntry")},5637:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1170,23)),Promise.resolve().then(c.t.bind(c,3597,23)),Promise.resolve().then(c.t.bind(c,6893,23)),Promise.resolve().then(c.t.bind(c,9748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,9576,23)),Promise.resolve().then(c.t.bind(c,3041,23)),Promise.resolve().then(c.t.bind(c,1384,23))},5668:(a,b,c)=>{"use strict";function d(a){let b=a.getFullYear(),c=String(a.getMonth()+1).padStart(2,"0"),d=String(a.getDate()).padStart(2,"0");return`${b}-${c}-${d}`}function e(a){let b=new Date(a);return b.setHours(0,0,0,0),b}function f(a){let b=e(a);return b.setDate(b.getDate()+1),b}function g(a){let b=a.getTimezoneOffset();return new Date(a.getTime()-6e4*b).toISOString().slice(0,16)}function h(a){let b=new Date(a);return`${String(b.getHours()).padStart(2,"0")}:${String(b.getMinutes()).padStart(2,"0")}`}c.d(b,{D0:()=>f,JN:()=>d,fU:()=>h,iI:()=>g,ol:()=>e})},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6703:(a,b,c)=>{Promise.resolve().then(c.bind(c,1098))},6713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},7493:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,4160,23)),Promise.resolve().then(c.t.bind(c,1603,23)),Promise.resolve().then(c.t.bind(c,8495,23)),Promise.resolve().then(c.t.bind(c,5170,23)),Promise.resolve().then(c.t.bind(c,7526,23)),Promise.resolve().then(c.t.bind(c,8922,23)),Promise.resolve().then(c.t.bind(c,9234,23)),Promise.resolve().then(c.t.bind(c,2263,23)),Promise.resolve().then(c.bind(c,2146))},8354:a=>{"use strict";a.exports=require("util")},8820:(a,b,c)=>{Promise.resolve().then(c.bind(c,5530))},9121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9404:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(9754),e=c(9117),f=c(6595),g=c(2324),h=c(9326),i=c(8928),j=c(175),k=c(12),l=c(4290),m=c(2696),n=c(2574),o=c(2802),p=c(7533),q=c(5229),r=c(2822),s=c(261),t=c(6453),u=c(2474),v=c(6713),w=c(1356),x=c(2685),y=c(6225),z=c(3446),A=c(2762),B=c(5742),C=c(6439),D=c(1170),E=c.n(D),F=c(2506),G=c(1203),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I=["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,967)),"/home/runner/work/meshi/meshi/apps/web/src/app/page.tsx"]}]},{layout:[()=>Promise.resolve().then(c.bind(c,1472)),"/home/runner/work/meshi/meshi/apps/web/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,1170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,7028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,2768,23)),"next/dist/client/components/builtin/unauthorized.js"]}],J=["/home/runner/work/meshi/meshi/apps/web/src/app/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(9902).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
1
+ (()=>{var a={};a.id=974,a.ids=[974],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},967:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(5338),e=c(5530);function f(){return(0,d.jsx)(e.RecordEntry,{})}},992:(a,b,c)=>{"use strict";c.d(b,{RecordEntry:()=>x});var d=c(1124),e=c(8301),f=c(5478);let g=["breakfast","lunch","dinner","snack"],h={breakfast:"朝食",lunch:"昼食",dinner:"夕食",snack:"間食"},i={breakfast:"bg-orange-100 text-orange-700",lunch:"bg-amber-100 text-amber-700",dinner:"bg-indigo-100 text-indigo-700",snack:"bg-emerald-100 text-emerald-700"};var j=c(5668),k=c(2803);let l=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),m=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let o=(0,e.createContext)({}),p=(0,e.forwardRef)(({color:a,size:b,strokeWidth:c,absoluteStrokeWidth:d,className:f="",children:g,iconNode:h,...i},j)=>{let{size:k=24,strokeWidth:m=2,absoluteStrokeWidth:p=!1,color:q="currentColor",className:r=""}=(0,e.useContext)(o)??{},s=d??p?24*Number(c??m)/Number(b??k):c??m;return(0,e.createElement)("svg",{ref:j,...n,width:b??k??n.width,height:b??k??n.height,stroke:a??q,strokeWidth:s,className:l("lucide",r,f),...!g&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(i)&&{"aria-hidden":"true"},...i},[...h.map(([a,b])=>(0,e.createElement)(a,b)),...Array.isArray(g)?g:[g]])}),q=(a,b)=>{let c=(0,e.forwardRef)(({className:c,...d},f)=>(0,e.createElement)(p,{ref:f,iconNode:b,className:l(`lucide-${m(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...d}));return c.displayName=m(a),c},r=q("sunrise",[["path",{d:"M12 2v8",key:"1q4o3n"}],["path",{d:"m4.93 10.93 1.41 1.41",key:"2a7f42"}],["path",{d:"M2 18h2",key:"j10viu"}],["path",{d:"M20 18h2",key:"wocana"}],["path",{d:"m19.07 10.93-1.41 1.41",key:"15zs5n"}],["path",{d:"M22 22H2",key:"19qnx5"}],["path",{d:"m8 6 4-4 4 4",key:"ybng9g"}],["path",{d:"M16 18a4 4 0 0 0-8 0",key:"1lzouq"}]]),s=q("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),t={breakfast:r,lunch:s,dinner:q("moon",[["path",{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",key:"kfwtm"}]]),snack:q("soup",[["path",{d:"M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z",key:"4rw317"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M19.5 12 22 6",key:"shfsr5"}],["path",{d:"M16.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.73 1.62",key:"rpc6vp"}],["path",{d:"M11.25 3c.27.1.8.53.74 1.36-.05.83-.93 1.2-.98 2.02-.06.78.33 1.24.72 1.62",key:"1lf63m"}],["path",{d:"M6.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.74 1.62",key:"97tijn"}]])};function u({mealType:a}){let b=t[a];return(0,d.jsxs)("span",{className:`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs font-medium ${i[a]}`,children:[(0,d.jsx)(b,{size:12,"aria-hidden":!0}),h[a]]})}function v({record:a,onChanged:b}){let[c,i]=(0,e.useState)(!1),[l,m]=(0,e.useState)(a.name),[n,o]=(0,e.useState)(String(a.calories)),[p,q]=(0,e.useState)(a.mealType),[r,s]=(0,e.useState)((0,j.iI)(new Date(a.consumedAt))),[t,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)(null);async function y(){v(!0),x(null);try{await f.Jp.update(a.id,{name:l,calories:Number(n),mealType:p,consumedAt:new Date(r).toISOString()}),i(!1),await b()}catch(a){x(String(a))}finally{v(!1)}}async function z(){v(!0);try{await f.Jp.remove(a.id),await b()}finally{v(!1)}}return c?(0,d.jsxs)("li",{className:"py-2 text-sm",children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,d.jsx)(k.pd,{value:l,onChange:a=>m(a.target.value),placeholder:"食品名"}),(0,d.jsx)(k.pd,{type:"number",min:"0",value:n,onChange:a=>o(a.target.value),placeholder:"kcal"}),(0,d.jsx)(k.l6,{value:p,onChange:a=>q(a.target.value),children:g.map(a=>(0,d.jsx)("option",{value:a,children:h[a]},a))}),(0,d.jsx)(k.pd,{type:"datetime-local",value:r,onChange:a=>s(a.target.value)})]}),w&&(0,d.jsx)("p",{className:"mt-1 text-xs text-red-600",children:w}),(0,d.jsxs)("div",{className:"mt-2 flex gap-2",children:[(0,d.jsx)(k.$n,{onClick:y,disabled:t,children:t?"保存中…":"保存"}),(0,d.jsx)(k.$n,{variant:"ghost",onClick:()=>i(!1),disabled:t,children:"キャンセル"})]})]}):(0,d.jsxs)("li",{className:"flex items-center justify-between py-2 text-sm",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(u,{mealType:a.mealType}),(0,d.jsx)("span",{className:"text-neutral-400",children:(0,j.fU)(a.consumedAt)}),(0,d.jsx)("span",{className:"font-medium",children:a.name})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"tabular-nums",children:[a.calories," kcal"]}),(0,d.jsx)(k.$n,{variant:"ghost",onClick:function(){m(a.name),o(String(a.calories)),q(a.mealType),s((0,j.iI)(new Date(a.consumedAt))),x(null),i(!0)},disabled:t,children:"編集"}),(0,d.jsx)(k.$n,{variant:"danger",onClick:z,disabled:t,children:"削除"})]})]})}function w(a){return"master"===a.kind?Math.round(a.perServing*a.quantity):a.calories}function x(){let[a,b]=(0,e.useState)([]),[c,i]=(0,e.useState)([]),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(!0),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)("master"),[t,u]=(0,e.useState)(""),[x,y]=(0,e.useState)("1"),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)([]),[F,G]=(0,e.useState)("breakfast"),[H,I]=(0,e.useState)((0,j.iI)(new Date)),[J,K]=(0,e.useState)(!1),L=(0,e.useRef)(0),M=()=>String(++L.current);async function N(){let a=new Date,[c,d,e]=await Promise.all([f.Mu.list(),f.Jp.list({from:(0,j.ol)(a).toISOString(),to:(0,j.D0)(a).toISOString()}),f.Pb.current()]);b(c),i(d),m(e),!t&&c.length>0&&u(c[0].id)}let O=(0,e.useMemo)(()=>c.reduce((a,b)=>a+b.calories,0),[c]),P=l?.dailyTarget??null,Q=P?Math.min(100,Math.round(O/P*100)):null,R=a.find(a=>a.id===t),S="master"===r&&R?Math.round(R.caloriesPerServing*(Number(x)||0)):null,T=(0,e.useMemo)(()=>D.reduce((a,b)=>a+w(b),0),[D]);async function U(){if(0===D.length)return void q("食品を追加してください");K(!0),q(null);try{let a=new Date(H).toISOString();await f.Jp.createBatch(D.map(b=>"master"===b.kind?{foodId:b.foodId,quantity:b.quantity,mealType:F,consumedAt:a}:{name:b.name,calories:b.calories,mealType:F,consumedAt:a})),E([]),await N()}catch(a){q(String(a))}finally{K(!1)}}return n?(0,d.jsx)("p",{className:"text-sm text-neutral-500",children:"読み込み中…"}):(0,d.jsxs)("div",{className:"space-y-6",children:[p&&(0,d.jsx)("div",{className:"rounded-md bg-red-50 px-3 py-2 text-sm text-red-700",children:p}),(0,d.jsxs)(k.Zp,{children:[(0,d.jsx)(k._x,{children:"今日の摂取"}),(0,d.jsxs)("div",{className:"flex items-end gap-2",children:[(0,d.jsx)("span",{className:"text-3xl font-bold",children:O.toLocaleString()}),(0,d.jsxs)("span",{className:"text-sm text-neutral-500",children:["kcal",P?` / 目標 ${P.toLocaleString()} kcal`:"(目標未設定)"]})]}),null!==Q&&(0,d.jsx)("div",{className:"mt-3 h-2 w-full overflow-hidden rounded-full bg-neutral-200",children:(0,d.jsx)("div",{className:`h-full ${O>(P??0)?"bg-red-500":"bg-emerald-500"}`,style:{width:`${Q}%`}})})]}),(0,d.jsxs)(k.Zp,{children:[(0,d.jsx)(k._x,{children:"記録する"}),(0,d.jsx)("p",{className:"mb-3 text-xs text-neutral-500",children:"食品を追加してから「まとめて記録」。米とサバ缶のように複数をまとめて1つの食事として登録できます。"}),(0,d.jsxs)("div",{className:"mb-3 flex gap-1 text-sm",children:[(0,d.jsx)("button",{type:"button",onClick:()=>s("master"),className:`rounded-md px-3 py-1 ${"master"===r?"bg-neutral-900 text-white":"bg-neutral-100"}`,children:"マスタから"}),(0,d.jsx)("button",{type:"button",onClick:()=>s("adhoc"),className:`rounded-md px-3 py-1 ${"adhoc"===r?"bg-neutral-900 text-white":"bg-neutral-100"}`,children:"その場で入力"})]}),(0,d.jsxs)("form",{onSubmit:function(b){if(b.preventDefault(),q(null),"master"===r){let b=a.find(a=>a.id===t);if(!b)return void q("食品を選択してください");E(a=>[...a,{key:M(),kind:"master",foodId:b.id,name:b.name,perServing:b.caloriesPerServing,quantity:Number(x)||1}])}else{if(!z.trim()||""===B)return void q("食品名とカロリーを入力してください");E(a=>[...a,{key:M(),kind:"adhoc",name:z.trim(),calories:Number(B)}]),A(""),C("")}},className:"grid grid-cols-2 gap-3",children:["master"===r?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"col-span-2",children:(0,d.jsx)(k.D0,{label:"食品",children:0===a.length?(0,d.jsx)("p",{className:"text-sm text-neutral-500",children:"食品マスタが空です。「食品マスタ」から登録してください。"}):(0,d.jsx)(k.l6,{value:t,onChange:a=>u(a.target.value),children:a.map(a=>(0,d.jsxs)("option",{value:a.id,children:[a.name,"(",a.caloriesPerServing," kcal",a.unitLabel?` / ${a.unitLabel}`:"",")"]},a.id))})})}),(0,d.jsx)(k.D0,{label:"数量",children:(0,d.jsx)(k.pd,{type:"number",step:"0.1",min:"0",value:x,onChange:a=>y(a.target.value)})}),(0,d.jsx)("div",{className:"flex items-end pb-1",children:(0,d.jsx)("p",{className:"text-sm text-neutral-500",children:null!==S?`= ${S} kcal`:""})})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(k.D0,{label:"食品名",children:(0,d.jsx)(k.pd,{value:z,onChange:a=>A(a.target.value)})}),(0,d.jsx)(k.D0,{label:"カロリー (kcal)",children:(0,d.jsx)(k.pd,{type:"number",min:"0",value:B,onChange:a=>C(a.target.value)})})]}),(0,d.jsx)("div",{className:"col-span-2",children:(0,d.jsx)(k.$n,{type:"submit",variant:"ghost",disabled:"master"===r&&0===a.length,children:"+ 食品を追加"})})]}),D.length>0&&(0,d.jsxs)("div",{className:"mt-3 rounded-lg border border-neutral-200 bg-neutral-50 p-3",children:[(0,d.jsx)("ul",{className:"divide-y divide-neutral-200",children:D.map(a=>(0,d.jsxs)("li",{className:"flex items-center justify-between py-1.5 text-sm",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"font-medium",children:a.name}),"master"===a.kind&&1!==a.quantity&&(0,d.jsxs)("span",{className:"ml-1 text-neutral-500",children:["\xd7",a.quantity]})]}),(0,d.jsxs)("span",{className:"flex items-center gap-3",children:[(0,d.jsxs)("span",{className:"tabular-nums text-neutral-600",children:[w(a)," kcal"]}),(0,d.jsx)("button",{type:"button",onClick:()=>{var b;return b=a.key,void E(a=>a.filter(a=>a.key!==b))},className:"rounded px-1.5 text-red-600 hover:bg-red-50","aria-label":"削除",children:"\xd7"})]})]},a.key))}),(0,d.jsxs)("div",{className:"mt-2 flex justify-between border-t border-neutral-200 pt-2 text-sm font-medium",children:[(0,d.jsxs)("span",{children:["合計(",D.length,"件)"]}),(0,d.jsxs)("span",{className:"tabular-nums",children:[T.toLocaleString()," kcal"]})]})]}),(0,d.jsxs)("div",{className:"mt-3 grid grid-cols-2 gap-3",children:[(0,d.jsx)(k.D0,{label:"区分",children:(0,d.jsx)(k.l6,{value:F,onChange:a=>G(a.target.value),children:g.map(a=>(0,d.jsx)("option",{value:a,children:h[a]},a))})}),(0,d.jsx)(k.D0,{label:"摂取日時",children:(0,d.jsx)(k.pd,{type:"datetime-local",value:H,onChange:a=>I(a.target.value)})}),(0,d.jsx)("div",{className:"col-span-2",children:(0,d.jsx)(k.$n,{type:"button",onClick:U,disabled:J||0===D.length,children:J?"記録中…":`まとめて記録${D.length>0?`(${D.length}件・${T.toLocaleString()} kcal)`:""}`})})]})]}),(0,d.jsxs)(k.Zp,{children:[(0,d.jsx)(k._x,{children:"今日の記録"}),0===c.length?(0,d.jsx)("p",{className:"text-sm text-neutral-500",children:"まだ記録がありません。"}):(0,d.jsx)("ul",{className:"divide-y divide-neutral-100",children:c.map(a=>(0,d.jsx)(v,{record:a,onChanged:N},a.id))})]})]})}},1025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},1135:()=>{},1472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>g});var d=c(5338),e=c(5169),f=c.n(e);c(1135);let g={title:"meshi — カロリー記録",description:"摂取カロリーを記録し、目標に対する進捗を可視化するツール"},h=[{href:"/",label:"ホーム"},{href:"/dashboard",label:"ダッシュボード"},{href:"/foods",label:"食品マスタ"},{href:"/goals",label:"目標"}];function i({children:a}){return(0,d.jsx)("html",{lang:"ja",children:(0,d.jsx)("body",{children:(0,d.jsxs)("div",{className:"mx-auto max-w-3xl px-4 pb-16",children:[(0,d.jsxs)("header",{className:"flex items-center justify-between py-5",children:[(0,d.jsx)(f(),{href:"/",className:"text-xl font-bold tracking-tight",children:"\uD83C\uDF5A meshi"}),(0,d.jsx)("nav",{className:"flex gap-1 text-sm",children:h.map(a=>(0,d.jsx)(f(),{href:a.href,className:"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900",children:a.label},a.href))})]}),(0,d.jsx)("main",{children:a})]})})})}},1655:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,3991,23))},2803:(a,b,c)=>{"use strict";c.d(b,{$n:()=>g,D0:()=>j,Zp:()=>e,_x:()=>f,l6:()=>i,pd:()=>h});var d=c(1124);function e({children:a,className:b=""}){return(0,d.jsx)("div",{className:`rounded-xl border border-neutral-200 bg-white p-5 shadow-sm ${b}`,children:a})}function f({children:a}){return(0,d.jsx)("h2",{className:"mb-3 text-base font-semibold text-neutral-800",children:a})}function g({children:a,variant:b="primary",className:c="",...e}){return(0,d.jsx)("button",{className:`rounded-md px-3 py-1.5 text-sm font-medium transition disabled:cursor-not-allowed ${{primary:"bg-neutral-900 text-white hover:bg-neutral-700 disabled:bg-neutral-400",ghost:"bg-neutral-100 text-neutral-700 hover:bg-neutral-200",danger:"text-red-600 hover:bg-red-50"}[b]} ${c}`,...e,children:a})}function h(a){return(0,d.jsx)("input",{className:"w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500",...a})}function i(a){return(0,d.jsx)("select",{className:"w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500",...a})}function j({label:a,children:b}){return(0,d.jsxs)("label",{className:"block",children:[(0,d.jsx)("span",{className:"mb-1 block text-xs font-medium text-neutral-500",children:a}),b]})}},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3407:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,5169,23))},5478:(a,b,c)=>{"use strict";async function d(a,b){let c=await fetch(`${a}`,{cache:"no-store",...b,headers:{...b?.body!=null?{"content-type":"application/json"}:{},...b?.headers}});if(!c.ok){let b="";try{b=JSON.stringify(await c.json())}catch{}throw Error(`API ${c.status} ${a} ${b}`)}if(204!==c.status)return c.json()}c.d(b,{Jp:()=>f,Mu:()=>e,Pb:()=>g,XR:()=>h});let e={list:(a=!1)=>d(`/api/foods${a?"?includeArchived=true":""}`),create:a=>d("/api/foods",{method:"POST",body:JSON.stringify(a)}),update:(a,b)=>d(`/api/foods/${a}`,{method:"PATCH",body:JSON.stringify(b)})},f={list:a=>{let b=new URLSearchParams;a?.from&&b.set("from",a.from),a?.to&&b.set("to",a.to),a?.mealType&&b.set("mealType",a.mealType);let c=b.toString();return d(`/api/records${c?`?${c}`:""}`)},create:a=>d("/api/records",{method:"POST",body:JSON.stringify(a)}),createBatch:a=>d("/api/records/batch",{method:"POST",body:JSON.stringify({items:a})}),update:(a,b)=>d(`/api/records/${a}`,{method:"PATCH",body:JSON.stringify(b)}),remove:a=>d(`/api/records/${a}`,{method:"DELETE"})},g={list:()=>d("/api/goals"),current:()=>d("/api/goals/current"),create:a=>d("/api/goals",{method:"POST",body:JSON.stringify(a)}),remove:a=>d(`/api/goals/${a}`,{method:"DELETE"})},h={get:(a,b)=>{let c=new URLSearchParams({period:a});return b&&c.set("date",b),d(`/api/summary?${c.toString()}`)}}},5530:(a,b,c)=>{"use strict";c.d(b,{RecordEntry:()=>d});let d=(0,c(7954).registerClientReference)(function(){throw Error("Attempted to call RecordEntry() from the server but RecordEntry is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/meshi/meshi/apps/web/src/components/RecordEntry.tsx","RecordEntry")},5637:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1170,23)),Promise.resolve().then(c.t.bind(c,3597,23)),Promise.resolve().then(c.t.bind(c,6893,23)),Promise.resolve().then(c.t.bind(c,9748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,9576,23)),Promise.resolve().then(c.t.bind(c,3041,23)),Promise.resolve().then(c.t.bind(c,1384,23))},5668:(a,b,c)=>{"use strict";function d(a){let b=a.getFullYear(),c=String(a.getMonth()+1).padStart(2,"0"),d=String(a.getDate()).padStart(2,"0");return`${b}-${c}-${d}`}function e(a){let b=new Date(a);return b.setHours(0,0,0,0),b}function f(a){let b=e(a);return b.setDate(b.getDate()+1),b}function g(a){let b=a.getTimezoneOffset();return new Date(a.getTime()-6e4*b).toISOString().slice(0,16)}function h(a){let b=new Date(a);return`${String(b.getHours()).padStart(2,"0")}:${String(b.getMinutes()).padStart(2,"0")}`}c.d(b,{D0:()=>f,JN:()=>d,fU:()=>h,iI:()=>g,ol:()=>e})},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6703:(a,b,c)=>{Promise.resolve().then(c.bind(c,992))},6713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},7493:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,4160,23)),Promise.resolve().then(c.t.bind(c,1603,23)),Promise.resolve().then(c.t.bind(c,8495,23)),Promise.resolve().then(c.t.bind(c,5170,23)),Promise.resolve().then(c.t.bind(c,7526,23)),Promise.resolve().then(c.t.bind(c,8922,23)),Promise.resolve().then(c.t.bind(c,9234,23)),Promise.resolve().then(c.t.bind(c,2263,23)),Promise.resolve().then(c.bind(c,2146))},8354:a=>{"use strict";a.exports=require("util")},8820:(a,b,c)=>{Promise.resolve().then(c.bind(c,5530))},9121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9404:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(9754),e=c(9117),f=c(6595),g=c(2324),h=c(9326),i=c(8928),j=c(175),k=c(12),l=c(4290),m=c(2696),n=c(2574),o=c(2802),p=c(7533),q=c(5229),r=c(2822),s=c(261),t=c(6453),u=c(2474),v=c(6713),w=c(1356),x=c(2685),y=c(6225),z=c(3446),A=c(2762),B=c(5742),C=c(6439),D=c(1170),E=c.n(D),F=c(2506),G=c(1203),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I=["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,967)),"/home/runner/work/meshi/meshi/apps/web/src/app/page.tsx"]}]},{layout:[()=>Promise.resolve().then(c.bind(c,1472)),"/home/runner/work/meshi/meshi/apps/web/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,1170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,7028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,2768,23)),"next/dist/client/components/builtin/unauthorized.js"]}],J=["/home/runner/work/meshi/meshi/apps/web/src/app/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(9902).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
2
  see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},9902:a=>{"use strict";a.exports=require("path")}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[102],()=>b(b.s=9404));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"2146","name":"*","chunks":[],"async":false}},"674":{"*":{"id":"1098","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"1603","name":"*","chunks":[],"async":false}},"2619":{"*":{"id":"3991","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"5170","name":"*","chunks":[],"async":false}},"3950":{"*":{"id":"8392","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"2263","name":"*","chunks":[],"async":false}},"4686":{"*":{"id":"6281","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"8922","name":"*","chunks":[],"async":false}},"5913":{"*":{"id":"2627","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"4160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"8495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"9234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"7526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/app-dir/link.js":{"id":2619,"name":"*","chunks":["177","static/chunks/app/layout-c3fd07aa6dba82c3.js"],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/app-dir/link.js":{"id":2619,"name":"*","chunks":["177","static/chunks/app/layout-c3fd07aa6dba82c3.js"],"async":false},"/home/runner/work/meshi/meshi/apps/web/src/app/globals.css":{"id":3673,"name":"*","chunks":["177","static/chunks/app/layout-c3fd07aa6dba82c3.js"],"async":false},"/home/runner/work/meshi/meshi/apps/web/src/components/Dashboard.tsx":{"id":4686,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/src/components/FoodManager.tsx":{"id":3950,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/src/components/GoalManager.tsx":{"id":5913,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/src/components/RecordEntry.tsx":{"id":674,"name":"*","chunks":["974","static/chunks/app/page-2ddb4f0f2f148278.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/meshi/meshi/apps/web/src/":[],"/home/runner/work/meshi/meshi/apps/web/src/app/layout":[{"inlined":false,"path":"static/css/1affe5324d8176a9.css"}],"/home/runner/work/meshi/meshi/apps/web/src/app/page":[]},"rscModuleMapping":{"622":{"*":{"id":"1384","name":"*","chunks":[],"async":false}},"674":{"*":{"id":"5530","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"3597","name":"*","chunks":[],"async":false}},"2619":{"*":{"id":"5169","name":"*","chunks":[],"async":false}},"3673":{"*":{"id":"1135","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"9748","name":"*","chunks":[],"async":false}},"3950":{"*":{"id":"4754","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"3041","name":"*","chunks":[],"async":false}},"4686":{"*":{"id":"4227","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"5913":{"*":{"id":"9193","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"1170","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"6893","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"9576","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"2146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"1603","name":"*","chunks":[],"async":false}},"2619":{"*":{"id":"3991","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"5170","name":"*","chunks":[],"async":false}},"3950":{"*":{"id":"8392","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"2263","name":"*","chunks":[],"async":false}},"4686":{"*":{"id":"6281","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"8922","name":"*","chunks":[],"async":false}},"5913":{"*":{"id":"2627","name":"*","chunks":[],"async":false}},"6305":{"*":{"id":"992","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"4160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"8495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"9234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"7526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/client/app-dir/link.js":{"id":2619,"name":"*","chunks":["177","static/chunks/app/layout-c3fd07aa6dba82c3.js"],"async":false},"/home/runner/work/meshi/meshi/apps/web/node_modules/next/dist/esm/client/app-dir/link.js":{"id":2619,"name":"*","chunks":["177","static/chunks/app/layout-c3fd07aa6dba82c3.js"],"async":false},"/home/runner/work/meshi/meshi/apps/web/src/app/globals.css":{"id":3673,"name":"*","chunks":["177","static/chunks/app/layout-c3fd07aa6dba82c3.js"],"async":false},"/home/runner/work/meshi/meshi/apps/web/src/components/Dashboard.tsx":{"id":4686,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/src/components/FoodManager.tsx":{"id":3950,"name":"*","chunks":[],"async":false},"/home/runner/work/meshi/meshi/apps/web/src/components/RecordEntry.tsx":{"id":6305,"name":"*","chunks":["974","static/chunks/app/page-d1b424b60fbe8c18.js"],"async":false},"/home/runner/work/meshi/meshi/apps/web/src/components/GoalManager.tsx":{"id":5913,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/runner/work/meshi/meshi/apps/web/src/":[],"/home/runner/work/meshi/meshi/apps/web/src/app/layout":[{"inlined":false,"path":"static/css/ac8e8f35825d92cd.css"}],"/home/runner/work/meshi/meshi/apps/web/src/app/page":[]},"rscModuleMapping":{"622":{"*":{"id":"1384","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"3597","name":"*","chunks":[],"async":false}},"2619":{"*":{"id":"5169","name":"*","chunks":[],"async":false}},"3673":{"*":{"id":"1135","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"9748","name":"*","chunks":[],"async":false}},"3950":{"*":{"id":"4754","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"3041","name":"*","chunks":[],"async":false}},"4686":{"*":{"id":"4227","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"5913":{"*":{"id":"9193","name":"*","chunks":[],"async":false}},"6305":{"*":{"id":"5530","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"1170","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"6893","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"9576","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
@@ -2,6 +2,6 @@
2
2
  "/_not-found/page": "app/_not-found/page.js",
3
3
  "/dashboard/page": "app/dashboard/page.js",
4
4
  "/foods/page": "app/foods/page.js",
5
- "/goals/page": "app/goals/page.js",
6
- "/page": "app/page.js"
5
+ "/page": "app/page.js",
6
+ "/goals/page": "app/goals/page.js"
7
7
  }
@@ -1 +1 @@
1
- <!DOCTYPE html><!--KXdgQeTs8Pce55pRT4jbm--><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/1affe5324d8176a9.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4e6bf084ac60582b.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-d1ba49e1e5028ea6.js" async=""></script><script src="/_next/static/chunks/main-app-c288eb82b72d6778.js" async=""></script><script src="/_next/static/chunks/app/layout-c3fd07aa6dba82c3.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>meshi — カロリー記録</title><meta name="description" content="摂取カロリーを記録し、目標に対する進捗を可視化するツール"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="mx-auto max-w-3xl px-4 pb-16"><header class="flex items-center justify-between py-5"><a class="text-xl font-bold tracking-tight" href="/">🍚 meshi</a><nav class="flex gap-1 text-sm"><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/">ホーム</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/dashboard">ダッシュボード</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/foods">食品マスタ</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/goals">目標</a></nav></header><main><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/webpack-4e6bf084ac60582b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[2619,[\"177\",\"static/chunks/app/layout-c3fd07aa6dba82c3.js\"],\"\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[4431,[],\"OutletBoundary\"]\n7:I[5278,[],\"AsyncMetadataOutlet\"]\n9:I[4431,[],\"ViewportBoundary\"]\nb:I[4431,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[7150,[],\"\"]\n:HL[\"/_next/static/css/1affe5324d8176a9.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"KXdgQeTs8Pce55pRT4jbm\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1affe5324d8176a9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl px-4 pb-16\",\"children\":[[\"$\",\"header\",null,{\"className\":\"flex items-center justify-between py-5\",\"children\":[[\"$\",\"$L2\",null,{\"href\":\"/\",\"className\":\"text-xl font-bold tracking-tight\",\"children\":\"🍚 meshi\"}],[\"$\",\"nav\",null,{\"className\":\"flex gap-1 text-sm\",\"children\":[[\"$\",\"$L2\",\"/\",{\"href\":\"/\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ホーム\"}],[\"$\",\"$L2\",\"/dashboard\",{\"href\":\"/dashboard\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ダッシュボード\"}],[\"$\",\"$L2\",\"/foods\",{\"href\":\"/foods\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"食品マスタ\"}],[\"$\",\"$L2\",\"/goals\",{\"href\":\"/goals\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"目標\"}]]}]]}],[\"$\",\"main\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"meshi — カロリー記録\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"摂取カロリーを記録し、目標に対する進捗を可視化するツール\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--T9SmpQfgKTNd318PMZpYn--><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/ac8e8f35825d92cd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4e6bf084ac60582b.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-d1ba49e1e5028ea6.js" async=""></script><script src="/_next/static/chunks/main-app-c288eb82b72d6778.js" async=""></script><script src="/_next/static/chunks/app/layout-c3fd07aa6dba82c3.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>meshi — カロリー記録</title><meta name="description" content="摂取カロリーを記録し、目標に対する進捗を可視化するツール"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="mx-auto max-w-3xl px-4 pb-16"><header class="flex items-center justify-between py-5"><a class="text-xl font-bold tracking-tight" href="/">🍚 meshi</a><nav class="flex gap-1 text-sm"><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/">ホーム</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/dashboard">ダッシュボード</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/foods">食品マスタ</a><a class="rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900" href="/goals">目標</a></nav></header><main><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/webpack-4e6bf084ac60582b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[2619,[\"177\",\"static/chunks/app/layout-c3fd07aa6dba82c3.js\"],\"\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[4431,[],\"OutletBoundary\"]\n7:I[5278,[],\"AsyncMetadataOutlet\"]\n9:I[4431,[],\"ViewportBoundary\"]\nb:I[4431,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[7150,[],\"\"]\n:HL[\"/_next/static/css/ac8e8f35825d92cd.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"T9SmpQfgKTNd318PMZpYn\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ac8e8f35825d92cd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl px-4 pb-16\",\"children\":[[\"$\",\"header\",null,{\"className\":\"flex items-center justify-between py-5\",\"children\":[[\"$\",\"$L2\",null,{\"href\":\"/\",\"className\":\"text-xl font-bold tracking-tight\",\"children\":\"🍚 meshi\"}],[\"$\",\"nav\",null,{\"className\":\"flex gap-1 text-sm\",\"children\":[[\"$\",\"$L2\",\"/\",{\"href\":\"/\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ホーム\"}],[\"$\",\"$L2\",\"/dashboard\",{\"href\":\"/dashboard\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"ダッシュボード\"}],[\"$\",\"$L2\",\"/foods\",{\"href\":\"/foods\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"食品マスタ\"}],[\"$\",\"$L2\",\"/goals\",{\"href\":\"/goals\",\"className\":\"rounded-md px-3 py-1.5 text-neutral-600 transition hover:bg-neutral-200 hover:text-neutral-900\",\"children\":\"目標\"}]]}]]}],[\"$\",\"main\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"meshi — カロリー記録\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"摂取カロリーを記録し、目標に対する進捗を可視化するツール\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-4e6bf084ac60582b.js" defer=""></script><script src="/_next/static/chunks/framework-d02a023354d77eec.js" defer=""></script><script src="/_next/static/chunks/main-4920287c8da2dac9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-7d307437aca18ad4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-cb2a52f75f2162e2.js" defer=""></script><script src="/_next/static/KXdgQeTs8Pce55pRT4jbm/_buildManifest.js" defer=""></script><script src="/_next/static/KXdgQeTs8Pce55pRT4jbm/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"KXdgQeTs8Pce55pRT4jbm","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-4e6bf084ac60582b.js" defer=""></script><script src="/_next/static/chunks/framework-d02a023354d77eec.js" defer=""></script><script src="/_next/static/chunks/main-4920287c8da2dac9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-7d307437aca18ad4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-cb2a52f75f2162e2.js" defer=""></script><script src="/_next/static/T9SmpQfgKTNd318PMZpYn/_buildManifest.js" defer=""></script><script src="/_next/static/T9SmpQfgKTNd318PMZpYn/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"T9SmpQfgKTNd318PMZpYn","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- {"node":{},"edge":{},"encryptionKey":"DFIg3d73NOYaIlwtDBR977qSr2F6YA3TeYsBVypG7S0="}
1
+ {"node":{},"edge":{},"encryptionKey":"Pq+QLMyWs2Wl+iBhAsF6AMJCGN24XlAoWifhwVTqg0Y="}
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[105],{960:(e,t,a)=>{"use strict";a.d(t,{Jp:()=>r,Mu:()=>l,Pb:()=>s,XR:()=>c});async function n(e,t){let a=await fetch("".concat("").concat(e),{cache:"no-store",...t,headers:{...(null==t?void 0:t.body)!=null?{"content-type":"application/json"}:{},...null==t?void 0:t.headers}});if(!a.ok){let t="";try{t=JSON.stringify(await a.json())}catch(e){}throw Error("API ".concat(a.status," ").concat(e," ").concat(t))}if(204!==a.status)return a.json()}let l={list:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return n("/api/foods".concat(e?"?includeArchived=true":""))},create:e=>n("/api/foods",{method:"POST",body:JSON.stringify(e)}),update:(e,t)=>n("/api/foods/".concat(e),{method:"PATCH",body:JSON.stringify(t)})},r={list:e=>{let t=new URLSearchParams;(null==e?void 0:e.from)&&t.set("from",e.from),(null==e?void 0:e.to)&&t.set("to",e.to),(null==e?void 0:e.mealType)&&t.set("mealType",e.mealType);let a=t.toString();return n("/api/records".concat(a?"?".concat(a):""))},create:e=>n("/api/records",{method:"POST",body:JSON.stringify(e)}),createBatch:e=>n("/api/records/batch",{method:"POST",body:JSON.stringify({items:e})}),update:(e,t)=>n("/api/records/".concat(e),{method:"PATCH",body:JSON.stringify(t)}),remove:e=>n("/api/records/".concat(e),{method:"DELETE"})},s={list:()=>n("/api/goals"),current:()=>n("/api/goals/current"),create:e=>n("/api/goals",{method:"POST",body:JSON.stringify(e)}),remove:e=>n("/api/goals/".concat(e),{method:"DELETE"})},c={get:(e,t)=>{let a=new URLSearchParams({period:e});return t&&a.set("date",t),n("/api/summary?".concat(a.toString()))}}},3399:(e,t,a)=>{Promise.resolve().then(a.bind(a,4686))},4686:(e,t,a)=>{"use strict";a.d(t,{Dashboard:()=>y});var n=a(5155),l=a(2115),r=a(960),s=a(4804),c=a(5307),o=a(1594),i=a(4340),d=a(6449),u=a(4400),m=a(7882),h=a(251),x=a(6263);let g={top:12,right:12,bottom:28,left:44};function f(e){let t=new Date("".concat(e,"T00:00:00"));return"".concat(t.getMonth()+1,"/").concat(t.getDate())}function p(e){let{days:t}=e,[a,r]=function(){let e=(0,l.useRef)(null),[t,a]=(0,l.useState)(0);return(0,l.useEffect)(()=>{let t=e.current;if(!t)return;let n=new ResizeObserver(e=>{for(let t of e)a(t.contentRect.width)});return n.observe(t),()=>n.disconnect()},[]),[e,t]}(),{tooltipData:s,tooltipLeft:c,tooltipTop:p,tooltipOpen:b,showTooltip:j,hideTooltip:y}=(0,h.fS)(),v=Math.max(0,r-g.left-g.right),N=240-g.top-g.bottom,w=(0,l.useMemo)(()=>(0,u.WH)({domain:t.map(e=>e.date),range:[0,v],padding:.3}),[t,v]),S=(0,l.useMemo)(()=>100*Math.ceil(Math.max(1,...t.map(e=>{var t;return Math.max(e.total,null!=(t=e.target)?t:0)}))/100),[t]),k=(0,l.useMemo)(()=>(0,u.m4)({domain:[0,S],range:[N,0],nice:!0}),[S,N]),D=e=>{var t;return(null!=(t=w(e.date))?t:0)+w.bandwidth()/2},M=Math.max(1,Math.ceil(t.length/10));return(0,n.jsxs)("div",{ref:a,className:"relative w-full",children:[r>0&&(0,n.jsx)("svg",{width:r,height:240,children:(0,n.jsxs)(d.Y,{left:g.left,top:g.top,children:[(0,n.jsx)(i.YN,{scale:k,width:v,stroke:"#eee",numTicks:4}),(0,n.jsx)(m.Wi,{data:t,x:D,y:e=>k(e.total),stroke:"#10b981",strokeWidth:2}),t.map(e=>{let t=null!==e.target&&e.total>e.target;return(0,n.jsx)("circle",{cx:D(e),cy:k(e.total),r:3.5,fill:t?"#ef4444":"#10b981"},e.date)}),t.map(e=>{var t;let a=null!=(t=w(e.date))?t:0;return(0,n.jsx)(m.yP,{x:a,y:0,width:w.bandwidth(),height:N,fill:"transparent",onMouseMove:t=>{var a,n;let l=(0,x.w)(t);j({tooltipData:e,tooltipLeft:(null!=(a=null==l?void 0:l.x)?a:0)+8,tooltipTop:(null!=(n=null==l?void 0:l.y)?n:0)-8})},onMouseLeave:y},e.date)}),(0,n.jsx)(m.Wi,{data:t.filter(e=>null!==e.target),x:D,y:e=>{var t;return k(null!=(t=e.target)?t:0)},stroke:"#737373",strokeWidth:1.5,strokeDasharray:"4 3"}),(0,n.jsx)(o.DZ,{scale:k,numTicks:4,stroke:"#ccc",tickStroke:"#ccc",tickLabelProps:()=>({fill:"#888",fontSize:10,dx:-2,dy:3})}),(0,n.jsx)(o.XI,{top:N,scale:w,stroke:"#ccc",tickStroke:"#ccc",tickFormat:e=>f(String(e)),tickValues:t.filter((e,t)=>t%M==0).map(e=>e.date),tickLabelProps:()=>({fill:"#888",fontSize:10,textAnchor:"middle"})})]})}),b&&s&&(0,n.jsxs)(h.du,{left:c,top:p,style:{...h.k5,fontSize:12},children:[(0,n.jsx)("div",{className:"font-medium",children:f(s.date)}),(0,n.jsxs)("div",{children:["摂取: ",s.total.toLocaleString()," kcal"]}),(0,n.jsxs)("div",{children:["目標:"," ",null!==s.target?"".concat(s.target.toLocaleString()," kcal"):"—"]})]}),(0,n.jsxs)("div",{className:"mt-2 flex gap-4 text-xs text-neutral-500",children:[(0,n.jsxs)("span",{className:"flex items-center gap-1",children:[(0,n.jsx)("span",{className:"inline-block h-2 w-2 rounded-full bg-emerald-500"})," 目標内"]}),(0,n.jsxs)("span",{className:"flex items-center gap-1",children:[(0,n.jsx)("span",{className:"inline-block h-2 w-2 rounded-full bg-red-500"})," 超過"]}),(0,n.jsxs)("span",{className:"flex items-center gap-1",children:[(0,n.jsx)("span",{className:"inline-block h-0 w-3 border-t border-dashed border-neutral-500"})," ","目標ライン"]})]})]})}let b={day:"日次",week:"週次",month:"月次"};function j(e,t,a){let n=new Date(e);return"day"===t?n.setDate(n.getDate()+a):"week"===t?n.setDate(n.getDate()+7*a):n.setMonth(n.getMonth()+a),n}function y(){var e;let[t,a]=(0,l.useState)("day"),[o,i]=(0,l.useState)(new Date),[d,u]=(0,l.useState)(null),[m,h]=(0,l.useState)(null),x=(0,l.useCallback)(async()=>{try{u(await r.XR.get(t,(0,s.JN)(o)))}catch(e){h(String(e))}},[t,o]);(0,l.useEffect)(()=>{x()},[x]);let g=d&&d.target?Math.round(d.total/d.target*100):null,f=(null==d?void 0:d.diff)!==null&&(null==d?void 0:d.diff)!==void 0&&d.diff>0,y=d&&d.target?f?Math.round(d.target/d.total*100):Math.min(100,null!=g?g:0):0,v=f?100-y:0;return(0,n.jsxs)("div",{className:"space-y-6",children:[m&&(0,n.jsx)("div",{className:"rounded-md bg-red-50 px-3 py-2 text-sm text-red-700",children:m}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("div",{className:"flex gap-1",children:["day","week","month"].map(e=>(0,n.jsx)("button",{onClick:()=>a(e),className:"rounded-md px-3 py-1.5 text-sm ".concat(t===e?"bg-neutral-900 text-white":"bg-neutral-100 text-neutral-700"),children:b[e]},e))}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("button",{onClick:()=>i(e=>j(e,t,-1)),className:"rounded-md bg-neutral-100 px-2 py-1.5 text-sm hover:bg-neutral-200",children:"←"}),(0,n.jsx)("button",{onClick:()=>i(new Date),className:"rounded-md bg-neutral-100 px-3 py-1.5 text-sm hover:bg-neutral-200",children:"今"}),(0,n.jsx)("button",{onClick:()=>i(e=>j(e,t,1)),className:"rounded-md bg-neutral-100 px-2 py-1.5 text-sm hover:bg-neutral-200",children:"→"})]})]}),d?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(c.Zp,{children:[(0,n.jsx)("div",{className:"mb-1 text-sm text-neutral-500",children:function(e){let t=new Date(e.from),a=new Date(e.to);if(a.setDate(a.getDate()-1),"day"===e.period)return t.toLocaleDateString("ja-JP",{dateStyle:"long"});let n=e=>e.toLocaleDateString("ja-JP",{month:"short",day:"numeric"});return"month"===e.period?t.toLocaleDateString("ja-JP",{year:"numeric",month:"long"}):"".concat(n(t)," 〜 ").concat(n(a))}(d)}),(0,n.jsxs)("div",{className:"flex items-end gap-3",children:[(0,n.jsx)("span",{className:"text-4xl font-bold",children:d.total.toLocaleString()}),(0,n.jsxs)("span",{className:"pb-1 text-sm text-neutral-500",children:["kcal"," ",null!==d.target?"/ 目標 ".concat(d.target.toLocaleString()," kcal"):"(目標未設定)"]})]}),null!==g&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"mt-3 flex h-2.5 w-full overflow-hidden rounded-full bg-neutral-200",children:[(0,n.jsx)("div",{className:"h-full bg-emerald-500",style:{width:"".concat(y,"%")}}),v>0&&(0,n.jsx)("div",{className:"h-full bg-red-500",style:{width:"".concat(v,"%")}})]}),(0,n.jsxs)("div",{className:"mt-2 flex justify-between text-sm",children:[(0,n.jsxs)("span",{className:"text-neutral-500",children:["達成率 ",g,"%"]}),(0,n.jsxs)("span",{className:f?"text-red-600":"text-emerald-600",children:[f?"超過":"残り"," ",Math.abs(null!=(e=d.diff)?e:0).toLocaleString()," kcal"]})]})]})]}),"day"!==d.period&&(0,n.jsxs)(c.Zp,{children:[(0,n.jsx)(c._x,{children:"カロリー推移"}),(0,n.jsx)(p,{days:d.days})]}),(0,n.jsxs)(c.Zp,{children:[(0,n.jsx)(c._x,{children:"日別内訳"}),(0,n.jsx)("ul",{className:"divide-y divide-neutral-100 text-sm",children:d.days.map(e=>{let t=null!==e.target&&e.total>e.target;return(0,n.jsxs)("li",{className:"flex items-center justify-between py-1.5",children:[(0,n.jsx)("span",{className:"text-neutral-600",children:new Date("".concat(e.date,"T00:00:00")).toLocaleDateString("ja-JP",{month:"numeric",day:"numeric",weekday:"short"})}),(0,n.jsxs)("span",{className:"flex items-center gap-3 tabular-nums",children:[(0,n.jsxs)("span",{className:t?"font-medium text-red-600":"",children:[e.total.toLocaleString()," kcal"]}),(0,n.jsx)("span",{className:"w-24 text-right text-neutral-400",children:null!==e.target?"目標 ".concat(e.target.toLocaleString()):"—"})]})]},e.date)})})]})]}):(0,n.jsx)("p",{className:"text-sm text-neutral-500",children:"読み込み中…"})]})}},4804:(e,t,a)=>{"use strict";function n(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(a,"-").concat(n)}function l(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function r(e){let t=l(e);return t.setDate(t.getDate()+1),t}function s(e){let t=e.getTimezoneOffset();return new Date(e.getTime()-6e4*t).toISOString().slice(0,16)}function c(e){let t=new Date(e);return"".concat(String(t.getHours()).padStart(2,"0"),":").concat(String(t.getMinutes()).padStart(2,"0"))}a.d(t,{D0:()=>r,JN:()=>n,fU:()=>c,iI:()=>s,ol:()=>l})},5307:(e,t,a)=>{"use strict";a.d(t,{$n:()=>s,D0:()=>i,Zp:()=>l,_x:()=>r,l6:()=>o,pd:()=>c});var n=a(5155);function l(e){let{children:t,className:a=""}=e;return(0,n.jsx)("div",{className:"rounded-xl border border-neutral-200 bg-white p-5 shadow-sm ".concat(a),children:t})}function r(e){let{children:t}=e;return(0,n.jsx)("h2",{className:"mb-3 text-base font-semibold text-neutral-800",children:t})}function s(e){let{children:t,variant:a="primary",className:l="",...r}=e;return(0,n.jsx)("button",{className:"rounded-md px-3 py-1.5 text-sm font-medium transition disabled:cursor-not-allowed ".concat({primary:"bg-neutral-900 text-white hover:bg-neutral-700 disabled:bg-neutral-400",ghost:"bg-neutral-100 text-neutral-700 hover:bg-neutral-200",danger:"text-red-600 hover:bg-red-50"}[a]," ").concat(l),...r,children:t})}function c(e){return(0,n.jsx)("input",{className:"w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500",...e})}function o(e){return(0,n.jsx)("select",{className:"w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500",...e})}function i(e){let{label:t,children:a}=e;return(0,n.jsxs)("label",{className:"block",children:[(0,n.jsx)("span",{className:"mb-1 block text-xs font-medium text-neutral-500",children:t}),a]})}}},e=>{e.O(0,[181,441,255,358],()=>e(e.s=3399)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[196],{960:(e,t,a)=>{"use strict";a.d(t,{Jp:()=>s,Mu:()=>r,Pb:()=>l,XR:()=>i});async function n(e,t){let a=await fetch("".concat("").concat(e),{cache:"no-store",...t,headers:{...(null==t?void 0:t.body)!=null?{"content-type":"application/json"}:{},...null==t?void 0:t.headers}});if(!a.ok){let t="";try{t=JSON.stringify(await a.json())}catch(e){}throw Error("API ".concat(a.status," ").concat(e," ").concat(t))}if(204!==a.status)return a.json()}let r={list:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return n("/api/foods".concat(e?"?includeArchived=true":""))},create:e=>n("/api/foods",{method:"POST",body:JSON.stringify(e)}),update:(e,t)=>n("/api/foods/".concat(e),{method:"PATCH",body:JSON.stringify(t)})},s={list:e=>{let t=new URLSearchParams;(null==e?void 0:e.from)&&t.set("from",e.from),(null==e?void 0:e.to)&&t.set("to",e.to),(null==e?void 0:e.mealType)&&t.set("mealType",e.mealType);let a=t.toString();return n("/api/records".concat(a?"?".concat(a):""))},create:e=>n("/api/records",{method:"POST",body:JSON.stringify(e)}),createBatch:e=>n("/api/records/batch",{method:"POST",body:JSON.stringify({items:e})}),update:(e,t)=>n("/api/records/".concat(e),{method:"PATCH",body:JSON.stringify(t)}),remove:e=>n("/api/records/".concat(e),{method:"DELETE"})},l={list:()=>n("/api/goals"),current:()=>n("/api/goals/current"),create:e=>n("/api/goals",{method:"POST",body:JSON.stringify(e)}),remove:e=>n("/api/goals/".concat(e),{method:"DELETE"})},i={get:(e,t)=>{let a=new URLSearchParams({period:e});return t&&a.set("date",t),n("/api/summary?".concat(a.toString()))}}},3950:(e,t,a)=>{"use strict";a.d(t,{FoodManager:()=>i});var n=a(5155),r=a(2115),s=a(960),l=a(5307);function i(){let[e,t]=(0,r.useState)([]),[a,i]=(0,r.useState)(!0),[c,o]=(0,r.useState)(null),[d,u]=(0,r.useState)(""),[m,h]=(0,r.useState)(""),[x,p]=(0,r.useState)(""),[b,f]=(0,r.useState)(!1);async function g(){t(await s.Mu.list(!0))}async function v(e){e.preventDefault(),f(!0),o(null);try{await s.Mu.create({name:d,caloriesPerServing:Number(m),unitLabel:x.trim()||void 0}),u(""),h(""),p(""),await g()}catch(e){o(String(e))}finally{f(!1)}}async function y(e){await s.Mu.update(e.id,{archived:!e.archived}),await g()}return(0,r.useEffect)(()=>{g().catch(e=>o(String(e))).finally(()=>i(!1))},[]),(0,n.jsxs)("div",{className:"space-y-6",children:[c&&(0,n.jsx)("div",{className:"rounded-md bg-red-50 px-3 py-2 text-sm text-red-700",children:c}),(0,n.jsxs)(l.Zp,{children:[(0,n.jsx)(l._x,{children:"食品を追加"}),(0,n.jsxs)("form",{onSubmit:v,className:"grid grid-cols-2 gap-3",children:[(0,n.jsx)("div",{className:"col-span-2",children:(0,n.jsx)(l.D0,{label:"食品名",children:(0,n.jsx)(l.pd,{value:d,onChange:e=>u(e.target.value),required:!0})})}),(0,n.jsx)(l.D0,{label:"カロリー (kcal)",children:(0,n.jsx)(l.pd,{type:"number",min:"0",value:m,onChange:e=>h(e.target.value),required:!0})}),(0,n.jsx)(l.D0,{label:"単位ラベル(任意・例: 1杯 / 100g)",children:(0,n.jsx)(l.pd,{value:x,onChange:e=>p(e.target.value)})}),(0,n.jsx)("div",{className:"col-span-2",children:(0,n.jsx)(l.$n,{type:"submit",disabled:b,children:b?"追加中…":"追加する"})})]})]}),(0,n.jsxs)(l.Zp,{children:[(0,n.jsx)(l._x,{children:"食品マスタ一覧"}),a?(0,n.jsx)("p",{className:"text-sm text-neutral-500",children:"読み込み中…"}):0===e.length?(0,n.jsx)("p",{className:"text-sm text-neutral-500",children:"まだ食品が登録されていません。"}):(0,n.jsx)("ul",{className:"divide-y divide-neutral-100",children:e.map(e=>(0,n.jsxs)("li",{className:"flex items-center justify-between py-2 text-sm",children:[(0,n.jsxs)("div",{className:e.archived?"text-neutral-400 line-through":"",children:[(0,n.jsx)("span",{className:"font-medium",children:e.name}),(0,n.jsxs)("span",{className:"ml-2 text-neutral-500",children:[e.caloriesPerServing," kcal",e.unitLabel?" / ".concat(e.unitLabel):""]})]}),(0,n.jsx)("div",{className:"flex items-center gap-2",children:(0,n.jsx)(l.$n,{variant:"ghost",onClick:()=>y(e),children:e.archived?"復活":"アーカイブ"})})]},e.id))})]})]})}},5307:(e,t,a)=>{"use strict";a.d(t,{$n:()=>l,D0:()=>o,Zp:()=>r,_x:()=>s,l6:()=>c,pd:()=>i});var n=a(5155);function r(e){let{children:t,className:a=""}=e;return(0,n.jsx)("div",{className:"rounded-xl border border-neutral-200 bg-white p-5 shadow-sm ".concat(a),children:t})}function s(e){let{children:t}=e;return(0,n.jsx)("h2",{className:"mb-3 text-base font-semibold text-neutral-800",children:t})}function l(e){let{children:t,variant:a="primary",className:r="",...s}=e;return(0,n.jsx)("button",{className:"rounded-md px-3 py-1.5 text-sm font-medium transition disabled:cursor-not-allowed ".concat({primary:"bg-neutral-900 text-white hover:bg-neutral-700 disabled:bg-neutral-400",ghost:"bg-neutral-100 text-neutral-700 hover:bg-neutral-200",danger:"text-red-600 hover:bg-red-50"}[a]," ").concat(r),...s,children:t})}function i(e){return(0,n.jsx)("input",{className:"w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500",...e})}function c(e){return(0,n.jsx)("select",{className:"w-full rounded-md border border-neutral-300 bg-white px-3 py-1.5 text-sm outline-none focus:border-neutral-500",...e})}function o(e){let{label:t,children:a}=e;return(0,n.jsxs)("label",{className:"block",children:[(0,n.jsx)("span",{className:"mb-1 block text-xs font-medium text-neutral-500",children:t}),a]})}},9049:(e,t,a)=>{Promise.resolve().then(a.bind(a,3950))}},e=>{e.O(0,[441,255,358],()=>e(e.s=9049)),_N_E=e.O()}]);