ocearo-ui 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/404.html +1 -1
  2. package/README.fr.md +27 -3
  3. package/README.md +27 -3
  4. package/__next.__PAGE__.txt +3 -3
  5. package/__next._full.txt +4 -4
  6. package/__next._tree.txt +2 -2
  7. package/_next/static/chunks/0m7wbuocx-b4_.js +9 -0
  8. package/_next/static/chunks/0voiofm58khqd.js +1 -0
  9. package/_next/static/chunks/{3xjnsskh0tayo.js → 15imr2-f_8n-x.js} +1 -1
  10. package/_next/static/chunks/{32j_j396qs7be.js → 18_i6mf6hb_c7.js} +1 -1
  11. package/_next/static/chunks/{1fzzb4jtgv5gg.js → 1gt2hhqk1821k.js} +2 -2
  12. package/_next/static/chunks/{3ktj0iemsr1m-.js → 1pa1cfmfts0i9.js} +1 -1
  13. package/_next/static/chunks/1zm03hw2ylxw8.js +1 -0
  14. package/_next/static/chunks/2dvwb-mfasp68.js +1 -0
  15. package/_next/static/chunks/2kwn4iymxaom3.js +1 -0
  16. package/_next/static/chunks/2ryo_bbmt6t74.css +3 -0
  17. package/_next/static/chunks/{0oaqe70syw_b5.js → 2s6w3x5jnc2tg.js} +1 -1
  18. package/_next/static/chunks/{34_oyzp8_pi_m.js → 2w44atvyp9o_w.js} +1 -1
  19. package/_next/static/chunks/{0yiqocv54ogoq.js → 3p9ziqn6r35qf.js} +1 -1
  20. package/_next/static/chunks/{31lugryguappr.js → 3q8o52_juxmdp.js} +1 -1
  21. package/_next/static/chunks/3wwn1rti8oc_r.js +1 -0
  22. package/_not-found/__next._full.txt +3 -3
  23. package/_not-found/__next._not-found.__PAGE__.txt +2 -2
  24. package/_not-found/__next._tree.txt +2 -2
  25. package/_not-found.html +1 -1
  26. package/_not-found.txt +3 -3
  27. package/apple-touch-icon.png +0 -0
  28. package/favicon-96x96.png +0 -0
  29. package/favicon.ico +0 -0
  30. package/favicon.svg +1 -3
  31. package/icons/favicon-16x16.png +0 -0
  32. package/icons/favicon-32x32.png +0 -0
  33. package/icons/favicon-48x48.png +0 -0
  34. package/icons/icon-192x192.png +0 -0
  35. package/icons/icon-512x512.png +0 -0
  36. package/icons/ocearo.webp +0 -0
  37. package/index.html +1 -1
  38. package/index.txt +4 -4
  39. package/manifest.json +2 -3
  40. package/package.json +2 -1
  41. package/settings/__next._full.txt +3 -3
  42. package/settings/__next._tree.txt +2 -2
  43. package/settings/__next.settings.__PAGE__.txt +2 -2
  44. package/settings.html +1 -1
  45. package/settings.txt +3 -3
  46. package/_next/static/chunks/01atsfq_4opab.js +0 -1
  47. package/_next/static/chunks/0cx639tthxlz4.js +0 -1
  48. package/_next/static/chunks/0zlk2mlkvbtj1.js +0 -1
  49. package/_next/static/chunks/1gaiqhzy_0d7s.js +0 -1
  50. package/_next/static/chunks/2r_h93rt76vka.js +0 -1
  51. package/_next/static/chunks/2y3d8zopa8r5r.css +0 -3
  52. package/_next/static/chunks/3k5itcabq5oqs.js +0 -9
  53. /package/_next/static/{baa0rBM5TIECz8JV_tLT6 → 01VWnAYjs9QwBnnMyWbQF}/_buildManifest.js +0 -0
  54. /package/_next/static/{baa0rBM5TIECz8JV_tLT6 → 01VWnAYjs9QwBnnMyWbQF}/_clientMiddlewareManifest.js +0 -0
  55. /package/_next/static/{baa0rBM5TIECz8JV_tLT6 → 01VWnAYjs9QwBnnMyWbQF}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,47141,e=>{"use strict";var t=e.i(43476),r=e.i(61949),a=e.i(71645),n=e.i(8560),o=e.i(90072);e.s(["ACESFilmicToneMapping",()=>o.ACESFilmicToneMapping,"AddEquation",()=>o.AddEquation,"AddOperation",()=>o.AddOperation,"AdditiveAnimationBlendMode",()=>o.AdditiveAnimationBlendMode,"AdditiveBlending",()=>o.AdditiveBlending,"AgXToneMapping",()=>o.AgXToneMapping,"AlphaFormat",()=>o.AlphaFormat,"AlwaysCompare",()=>o.AlwaysCompare,"AlwaysDepth",()=>o.AlwaysDepth,"AlwaysStencilFunc",()=>o.AlwaysStencilFunc,"AmbientLight",()=>o.AmbientLight,"AnimationAction",()=>o.AnimationAction,"AnimationClip",()=>o.AnimationClip,"AnimationLoader",()=>o.AnimationLoader,"AnimationMixer",()=>o.AnimationMixer,"AnimationObjectGroup",()=>o.AnimationObjectGroup,"AnimationUtils",()=>o.AnimationUtils,"ArcCurve",()=>o.ArcCurve,"ArrayCamera",()=>o.ArrayCamera,"ArrowHelper",()=>o.ArrowHelper,"AttachedBindMode",()=>o.AttachedBindMode,"Audio",()=>o.Audio,"AudioAnalyser",()=>o.AudioAnalyser,"AudioContext",()=>o.AudioContext,"AudioListener",()=>o.AudioListener,"AudioLoader",()=>o.AudioLoader,"AxesHelper",()=>o.AxesHelper,"BackSide",()=>o.BackSide,"BasicDepthPacking",()=>o.BasicDepthPacking,"BasicShadowMap",()=>o.BasicShadowMap,"BatchedMesh",()=>o.BatchedMesh,"BezierInterpolant",()=>o.BezierInterpolant,"Bone",()=>o.Bone,"BooleanKeyframeTrack",()=>o.BooleanKeyframeTrack,"Box2",()=>o.Box2,"Box3",()=>o.Box3,"Box3Helper",()=>o.Box3Helper,"BoxGeometry",()=>o.BoxGeometry,"BoxHelper",()=>o.BoxHelper,"BufferAttribute",()=>o.BufferAttribute,"BufferGeometry",()=>o.BufferGeometry,"BufferGeometryLoader",()=>o.BufferGeometryLoader,"ByteType",()=>o.ByteType,"Cache",()=>o.Cache,"Camera",()=>o.Camera,"CameraHelper",()=>o.CameraHelper,"CanvasTexture",()=>o.CanvasTexture,"CapsuleGeometry",()=>o.CapsuleGeometry,"CatmullRomCurve3",()=>o.CatmullRomCurve3,"CineonToneMapping",()=>o.CineonToneMapping,"CircleGeometry",()=>o.CircleGeometry,"ClampToEdgeWrapping",()=>o.ClampToEdgeWrapping,"Clock",()=>o.Clock,"Color",()=>o.Color,"ColorKeyframeTrack",()=>o.ColorKeyframeTrack,"ColorManagement",()=>o.ColorManagement,"Compatibility",()=>o.Compatibility,"CompressedArrayTexture",()=>o.CompressedArrayTexture,"CompressedCubeTexture",()=>o.CompressedCubeTexture,"CompressedTexture",()=>o.CompressedTexture,"CompressedTextureLoader",()=>o.CompressedTextureLoader,"ConeGeometry",()=>o.ConeGeometry,"ConstantAlphaFactor",()=>o.ConstantAlphaFactor,"ConstantColorFactor",()=>o.ConstantColorFactor,"Controls",()=>o.Controls,"CubeCamera",()=>o.CubeCamera,"CubeDepthTexture",()=>o.CubeDepthTexture,"CubeReflectionMapping",()=>o.CubeReflectionMapping,"CubeRefractionMapping",()=>o.CubeRefractionMapping,"CubeTexture",()=>o.CubeTexture,"CubeTextureLoader",()=>o.CubeTextureLoader,"CubeUVReflectionMapping",()=>o.CubeUVReflectionMapping,"CubicBezierCurve",()=>o.CubicBezierCurve,"CubicBezierCurve3",()=>o.CubicBezierCurve3,"CubicInterpolant",()=>o.CubicInterpolant,"CullFaceBack",()=>o.CullFaceBack,"CullFaceFront",()=>o.CullFaceFront,"CullFaceFrontBack",()=>o.CullFaceFrontBack,"CullFaceNone",()=>o.CullFaceNone,"Curve",()=>o.Curve,"CurvePath",()=>o.CurvePath,"CustomBlending",()=>o.CustomBlending,"CustomToneMapping",()=>o.CustomToneMapping,"CylinderGeometry",()=>o.CylinderGeometry,"Cylindrical",()=>o.Cylindrical,"Data3DTexture",()=>o.Data3DTexture,"DataArrayTexture",()=>o.DataArrayTexture,"DataTexture",()=>o.DataTexture,"DataTextureLoader",()=>o.DataTextureLoader,"DataUtils",()=>o.DataUtils,"DecrementStencilOp",()=>o.DecrementStencilOp,"DecrementWrapStencilOp",()=>o.DecrementWrapStencilOp,"DefaultLoadingManager",()=>o.DefaultLoadingManager,"DepthFormat",()=>o.DepthFormat,"DepthStencilFormat",()=>o.DepthStencilFormat,"DepthTexture",()=>o.DepthTexture,"DetachedBindMode",()=>o.DetachedBindMode,"DirectionalLight",()=>o.DirectionalLight,"DirectionalLightHelper",()=>o.DirectionalLightHelper,"DiscreteInterpolant",()=>o.DiscreteInterpolant,"DodecahedronGeometry",()=>o.DodecahedronGeometry,"DoubleSide",()=>o.DoubleSide,"DstAlphaFactor",()=>o.DstAlphaFactor,"DstColorFactor",()=>o.DstColorFactor,"DynamicCopyUsage",()=>o.DynamicCopyUsage,"DynamicDrawUsage",()=>o.DynamicDrawUsage,"DynamicReadUsage",()=>o.DynamicReadUsage,"EdgesGeometry",()=>o.EdgesGeometry,"EllipseCurve",()=>o.EllipseCurve,"EqualCompare",()=>o.EqualCompare,"EqualDepth",()=>o.EqualDepth,"EqualStencilFunc",()=>o.EqualStencilFunc,"EquirectangularReflectionMapping",()=>o.EquirectangularReflectionMapping,"EquirectangularRefractionMapping",()=>o.EquirectangularRefractionMapping,"Euler",()=>o.Euler,"EventDispatcher",()=>o.EventDispatcher,"ExternalTexture",()=>o.ExternalTexture,"ExtrudeGeometry",()=>o.ExtrudeGeometry,"FileLoader",()=>o.FileLoader,"Float16BufferAttribute",()=>o.Float16BufferAttribute,"Float32BufferAttribute",()=>o.Float32BufferAttribute,"FloatType",()=>o.FloatType,"Fog",()=>o.Fog,"FogExp2",()=>o.FogExp2,"FramebufferTexture",()=>o.FramebufferTexture,"FrontSide",()=>o.FrontSide,"Frustum",()=>o.Frustum,"FrustumArray",()=>o.FrustumArray,"GLBufferAttribute",()=>o.GLBufferAttribute,"GLSL1",()=>o.GLSL1,"GLSL3",()=>o.GLSL3,"GreaterCompare",()=>o.GreaterCompare,"GreaterDepth",()=>o.GreaterDepth,"GreaterEqualCompare",()=>o.GreaterEqualCompare,"GreaterEqualDepth",()=>o.GreaterEqualDepth,"GreaterEqualStencilFunc",()=>o.GreaterEqualStencilFunc,"GreaterStencilFunc",()=>o.GreaterStencilFunc,"GridHelper",()=>o.GridHelper,"Group",()=>o.Group,"HTMLTexture",()=>o.HTMLTexture,"HalfFloatType",()=>o.HalfFloatType,"HemisphereLight",()=>o.HemisphereLight,"HemisphereLightHelper",()=>o.HemisphereLightHelper,"IcosahedronGeometry",()=>o.IcosahedronGeometry,"ImageBitmapLoader",()=>o.ImageBitmapLoader,"ImageLoader",()=>o.ImageLoader,"ImageUtils",()=>o.ImageUtils,"IncrementStencilOp",()=>o.IncrementStencilOp,"IncrementWrapStencilOp",()=>o.IncrementWrapStencilOp,"InstancedBufferAttribute",()=>o.InstancedBufferAttribute,"InstancedBufferGeometry",()=>o.InstancedBufferGeometry,"InstancedInterleavedBuffer",()=>o.InstancedInterleavedBuffer,"InstancedMesh",()=>o.InstancedMesh,"Int16BufferAttribute",()=>o.Int16BufferAttribute,"Int32BufferAttribute",()=>o.Int32BufferAttribute,"Int8BufferAttribute",()=>o.Int8BufferAttribute,"IntType",()=>o.IntType,"InterleavedBuffer",()=>o.InterleavedBuffer,"InterleavedBufferAttribute",()=>o.InterleavedBufferAttribute,"Interpolant",()=>o.Interpolant,"InterpolateBezier",()=>o.InterpolateBezier,"InterpolateDiscrete",()=>o.InterpolateDiscrete,"InterpolateLinear",()=>o.InterpolateLinear,"InterpolateSmooth",()=>o.InterpolateSmooth,"InterpolationSamplingMode",()=>o.InterpolationSamplingMode,"InterpolationSamplingType",()=>o.InterpolationSamplingType,"InvertStencilOp",()=>o.InvertStencilOp,"KeepStencilOp",()=>o.KeepStencilOp,"KeyframeTrack",()=>o.KeyframeTrack,"LOD",()=>o.LOD,"LatheGeometry",()=>o.LatheGeometry,"Layers",()=>o.Layers,"LessCompare",()=>o.LessCompare,"LessDepth",()=>o.LessDepth,"LessEqualCompare",()=>o.LessEqualCompare,"LessEqualDepth",()=>o.LessEqualDepth,"LessEqualStencilFunc",()=>o.LessEqualStencilFunc,"LessStencilFunc",()=>o.LessStencilFunc,"Light",()=>o.Light,"LightProbe",()=>o.LightProbe,"LightShadow",()=>o.LightShadow,"Line",()=>o.Line,"Line3",()=>o.Line3,"LineBasicMaterial",()=>o.LineBasicMaterial,"LineCurve",()=>o.LineCurve,"LineCurve3",()=>o.LineCurve3,"LineDashedMaterial",()=>o.LineDashedMaterial,"LineLoop",()=>o.LineLoop,"LineSegments",()=>o.LineSegments,"LinearFilter",()=>o.LinearFilter,"LinearInterpolant",()=>o.LinearInterpolant,"LinearMipMapLinearFilter",()=>o.LinearMipMapLinearFilter,"LinearMipMapNearestFilter",()=>o.LinearMipMapNearestFilter,"LinearMipmapLinearFilter",()=>o.LinearMipmapLinearFilter,"LinearMipmapNearestFilter",()=>o.LinearMipmapNearestFilter,"LinearSRGBColorSpace",()=>o.LinearSRGBColorSpace,"LinearToneMapping",()=>o.LinearToneMapping,"LinearTransfer",()=>o.LinearTransfer,"Loader",()=>o.Loader,"LoaderUtils",()=>o.LoaderUtils,"LoadingManager",()=>o.LoadingManager,"LoopOnce",()=>o.LoopOnce,"LoopPingPong",()=>o.LoopPingPong,"LoopRepeat",()=>o.LoopRepeat,"MOUSE",()=>o.MOUSE,"Material",()=>o.Material,"MaterialBlending",()=>o.MaterialBlending,"MaterialLoader",()=>o.MaterialLoader,"MathUtils",()=>o.MathUtils,"Matrix2",()=>o.Matrix2,"Matrix3",()=>o.Matrix3,"Matrix4",()=>o.Matrix4,"MaxEquation",()=>o.MaxEquation,"Mesh",()=>o.Mesh,"MeshBasicMaterial",()=>o.MeshBasicMaterial,"MeshDepthMaterial",()=>o.MeshDepthMaterial,"MeshDistanceMaterial",()=>o.MeshDistanceMaterial,"MeshLambertMaterial",()=>o.MeshLambertMaterial,"MeshMatcapMaterial",()=>o.MeshMatcapMaterial,"MeshNormalMaterial",()=>o.MeshNormalMaterial,"MeshPhongMaterial",()=>o.MeshPhongMaterial,"MeshPhysicalMaterial",()=>o.MeshPhysicalMaterial,"MeshStandardMaterial",()=>o.MeshStandardMaterial,"MeshToonMaterial",()=>o.MeshToonMaterial,"MinEquation",()=>o.MinEquation,"MirroredRepeatWrapping",()=>o.MirroredRepeatWrapping,"MixOperation",()=>o.MixOperation,"MultiplyBlending",()=>o.MultiplyBlending,"MultiplyOperation",()=>o.MultiplyOperation,"NearestFilter",()=>o.NearestFilter,"NearestMipMapLinearFilter",()=>o.NearestMipMapLinearFilter,"NearestMipMapNearestFilter",()=>o.NearestMipMapNearestFilter,"NearestMipmapLinearFilter",()=>o.NearestMipmapLinearFilter,"NearestMipmapNearestFilter",()=>o.NearestMipmapNearestFilter,"NeutralToneMapping",()=>o.NeutralToneMapping,"NeverCompare",()=>o.NeverCompare,"NeverDepth",()=>o.NeverDepth,"NeverStencilFunc",()=>o.NeverStencilFunc,"NoBlending",()=>o.NoBlending,"NoColorSpace",()=>o.NoColorSpace,"NoNormalPacking",()=>o.NoNormalPacking,"NoToneMapping",()=>o.NoToneMapping,"NormalAnimationBlendMode",()=>o.NormalAnimationBlendMode,"NormalBlending",()=>o.NormalBlending,"NormalGAPacking",()=>o.NormalGAPacking,"NormalRGPacking",()=>o.NormalRGPacking,"NotEqualCompare",()=>o.NotEqualCompare,"NotEqualDepth",()=>o.NotEqualDepth,"NotEqualStencilFunc",()=>o.NotEqualStencilFunc,"NumberKeyframeTrack",()=>o.NumberKeyframeTrack,"Object3D",()=>o.Object3D,"ObjectLoader",()=>o.ObjectLoader,"ObjectSpaceNormalMap",()=>o.ObjectSpaceNormalMap,"OctahedronGeometry",()=>o.OctahedronGeometry,"OneFactor",()=>o.OneFactor,"OneMinusConstantAlphaFactor",()=>o.OneMinusConstantAlphaFactor,"OneMinusConstantColorFactor",()=>o.OneMinusConstantColorFactor,"OneMinusDstAlphaFactor",()=>o.OneMinusDstAlphaFactor,"OneMinusDstColorFactor",()=>o.OneMinusDstColorFactor,"OneMinusSrcAlphaFactor",()=>o.OneMinusSrcAlphaFactor,"OneMinusSrcColorFactor",()=>o.OneMinusSrcColorFactor,"OrthographicCamera",()=>o.OrthographicCamera,"PCFShadowMap",()=>o.PCFShadowMap,"PCFSoftShadowMap",()=>o.PCFSoftShadowMap,"PMREMGenerator",()=>n.PMREMGenerator,"Path",()=>o.Path,"PerspectiveCamera",()=>o.PerspectiveCamera,"Plane",()=>o.Plane,"PlaneGeometry",()=>o.PlaneGeometry,"PlaneHelper",()=>o.PlaneHelper,"PointLight",()=>o.PointLight,"PointLightHelper",()=>o.PointLightHelper,"Points",()=>o.Points,"PointsMaterial",()=>o.PointsMaterial,"PolarGridHelper",()=>o.PolarGridHelper,"PolyhedronGeometry",()=>o.PolyhedronGeometry,"PositionalAudio",()=>o.PositionalAudio,"PropertyBinding",()=>o.PropertyBinding,"PropertyMixer",()=>o.PropertyMixer,"QuadraticBezierCurve",()=>o.QuadraticBezierCurve,"QuadraticBezierCurve3",()=>o.QuadraticBezierCurve3,"Quaternion",()=>o.Quaternion,"QuaternionKeyframeTrack",()=>o.QuaternionKeyframeTrack,"QuaternionLinearInterpolant",()=>o.QuaternionLinearInterpolant,"R11_EAC_Format",()=>o.R11_EAC_Format,"RED_GREEN_RGTC2_Format",()=>o.RED_GREEN_RGTC2_Format,"RED_RGTC1_Format",()=>o.RED_RGTC1_Format,"REVISION",()=>o.REVISION,"RG11_EAC_Format",()=>o.RG11_EAC_Format,"RGBADepthPacking",()=>o.RGBADepthPacking,"RGBAFormat",()=>o.RGBAFormat,"RGBAIntegerFormat",()=>o.RGBAIntegerFormat,"RGBA_ASTC_10x10_Format",()=>o.RGBA_ASTC_10x10_Format,"RGBA_ASTC_10x5_Format",()=>o.RGBA_ASTC_10x5_Format,"RGBA_ASTC_10x6_Format",()=>o.RGBA_ASTC_10x6_Format,"RGBA_ASTC_10x8_Format",()=>o.RGBA_ASTC_10x8_Format,"RGBA_ASTC_12x10_Format",()=>o.RGBA_ASTC_12x10_Format,"RGBA_ASTC_12x12_Format",()=>o.RGBA_ASTC_12x12_Format,"RGBA_ASTC_4x4_Format",()=>o.RGBA_ASTC_4x4_Format,"RGBA_ASTC_5x4_Format",()=>o.RGBA_ASTC_5x4_Format,"RGBA_ASTC_5x5_Format",()=>o.RGBA_ASTC_5x5_Format,"RGBA_ASTC_6x5_Format",()=>o.RGBA_ASTC_6x5_Format,"RGBA_ASTC_6x6_Format",()=>o.RGBA_ASTC_6x6_Format,"RGBA_ASTC_8x5_Format",()=>o.RGBA_ASTC_8x5_Format,"RGBA_ASTC_8x6_Format",()=>o.RGBA_ASTC_8x6_Format,"RGBA_ASTC_8x8_Format",()=>o.RGBA_ASTC_8x8_Format,"RGBA_BPTC_Format",()=>o.RGBA_BPTC_Format,"RGBA_ETC2_EAC_Format",()=>o.RGBA_ETC2_EAC_Format,"RGBA_PVRTC_2BPPV1_Format",()=>o.RGBA_PVRTC_2BPPV1_Format,"RGBA_PVRTC_4BPPV1_Format",()=>o.RGBA_PVRTC_4BPPV1_Format,"RGBA_S3TC_DXT1_Format",()=>o.RGBA_S3TC_DXT1_Format,"RGBA_S3TC_DXT3_Format",()=>o.RGBA_S3TC_DXT3_Format,"RGBA_S3TC_DXT5_Format",()=>o.RGBA_S3TC_DXT5_Format,"RGBDepthPacking",()=>o.RGBDepthPacking,"RGBFormat",()=>o.RGBFormat,"RGBIntegerFormat",()=>o.RGBIntegerFormat,"RGB_BPTC_SIGNED_Format",()=>o.RGB_BPTC_SIGNED_Format,"RGB_BPTC_UNSIGNED_Format",()=>o.RGB_BPTC_UNSIGNED_Format,"RGB_ETC1_Format",()=>o.RGB_ETC1_Format,"RGB_ETC2_Format",()=>o.RGB_ETC2_Format,"RGB_PVRTC_2BPPV1_Format",()=>o.RGB_PVRTC_2BPPV1_Format,"RGB_PVRTC_4BPPV1_Format",()=>o.RGB_PVRTC_4BPPV1_Format,"RGB_S3TC_DXT1_Format",()=>o.RGB_S3TC_DXT1_Format,"RGDepthPacking",()=>o.RGDepthPacking,"RGFormat",()=>o.RGFormat,"RGIntegerFormat",()=>o.RGIntegerFormat,"RawShaderMaterial",()=>o.RawShaderMaterial,"Ray",()=>o.Ray,"Raycaster",()=>o.Raycaster,"RectAreaLight",()=>o.RectAreaLight,"RedFormat",()=>o.RedFormat,"RedIntegerFormat",()=>o.RedIntegerFormat,"ReinhardToneMapping",()=>o.ReinhardToneMapping,"RenderObjectRefreshType",()=>o.RenderObjectRefreshType,"RenderTarget",()=>o.RenderTarget,"RenderTarget3D",()=>o.RenderTarget3D,"RepeatWrapping",()=>o.RepeatWrapping,"ReplaceStencilOp",()=>o.ReplaceStencilOp,"ReverseSubtractEquation",()=>o.ReverseSubtractEquation,"RingGeometry",()=>o.RingGeometry,"SIGNED_R11_EAC_Format",()=>o.SIGNED_R11_EAC_Format,"SIGNED_RED_GREEN_RGTC2_Format",()=>o.SIGNED_RED_GREEN_RGTC2_Format,"SIGNED_RED_RGTC1_Format",()=>o.SIGNED_RED_RGTC1_Format,"SIGNED_RG11_EAC_Format",()=>o.SIGNED_RG11_EAC_Format,"SRGBColorSpace",()=>o.SRGBColorSpace,"SRGBTransfer",()=>o.SRGBTransfer,"Scene",()=>o.Scene,"ShaderChunk",()=>n.ShaderChunk,"ShaderLib",()=>n.ShaderLib,"ShaderMaterial",()=>o.ShaderMaterial,"ShadowMaterial",()=>o.ShadowMaterial,"Shape",()=>o.Shape,"ShapeGeometry",()=>o.ShapeGeometry,"ShapePath",()=>o.ShapePath,"ShapeUtils",()=>o.ShapeUtils,"ShortType",()=>o.ShortType,"Skeleton",()=>o.Skeleton,"SkeletonHelper",()=>o.SkeletonHelper,"SkinnedMesh",()=>o.SkinnedMesh,"Source",()=>o.Source,"Sphere",()=>o.Sphere,"SphereGeometry",()=>o.SphereGeometry,"Spherical",()=>o.Spherical,"SphericalHarmonics3",()=>o.SphericalHarmonics3,"SplineCurve",()=>o.SplineCurve,"SpotLight",()=>o.SpotLight,"SpotLightHelper",()=>o.SpotLightHelper,"Sprite",()=>o.Sprite,"SpriteMaterial",()=>o.SpriteMaterial,"SrcAlphaFactor",()=>o.SrcAlphaFactor,"SrcAlphaSaturateFactor",()=>o.SrcAlphaSaturateFactor,"SrcColorFactor",()=>o.SrcColorFactor,"StaticCopyUsage",()=>o.StaticCopyUsage,"StaticDrawUsage",()=>o.StaticDrawUsage,"StaticReadUsage",()=>o.StaticReadUsage,"StereoCamera",()=>o.StereoCamera,"StreamCopyUsage",()=>o.StreamCopyUsage,"StreamDrawUsage",()=>o.StreamDrawUsage,"StreamReadUsage",()=>o.StreamReadUsage,"StringKeyframeTrack",()=>o.StringKeyframeTrack,"SubtractEquation",()=>o.SubtractEquation,"SubtractiveBlending",()=>o.SubtractiveBlending,"TOUCH",()=>o.TOUCH,"TangentSpaceNormalMap",()=>o.TangentSpaceNormalMap,"TetrahedronGeometry",()=>o.TetrahedronGeometry,"Texture",()=>o.Texture,"TextureLoader",()=>o.TextureLoader,"TextureSource",()=>o.TextureSource,"TextureUtils",()=>o.TextureUtils,"Timer",()=>o.Timer,"TimestampQuery",()=>o.TimestampQuery,"TorusGeometry",()=>o.TorusGeometry,"TorusKnotGeometry",()=>o.TorusKnotGeometry,"Triangle",()=>o.Triangle,"TriangleFanDrawMode",()=>o.TriangleFanDrawMode,"TriangleStripDrawMode",()=>o.TriangleStripDrawMode,"TrianglesDrawMode",()=>o.TrianglesDrawMode,"TubeGeometry",()=>o.TubeGeometry,"UVMapping",()=>o.UVMapping,"Uint16BufferAttribute",()=>o.Uint16BufferAttribute,"Uint32BufferAttribute",()=>o.Uint32BufferAttribute,"Uint8BufferAttribute",()=>o.Uint8BufferAttribute,"Uint8ClampedBufferAttribute",()=>o.Uint8ClampedBufferAttribute,"Uniform",()=>o.Uniform,"UniformsGroup",()=>o.UniformsGroup,"UniformsLib",()=>n.UniformsLib,"UniformsUtils",()=>o.UniformsUtils,"UnsignedByteType",()=>o.UnsignedByteType,"UnsignedInt101111Type",()=>o.UnsignedInt101111Type,"UnsignedInt248Type",()=>o.UnsignedInt248Type,"UnsignedInt5999Type",()=>o.UnsignedInt5999Type,"UnsignedIntType",()=>o.UnsignedIntType,"UnsignedShort4444Type",()=>o.UnsignedShort4444Type,"UnsignedShort5551Type",()=>o.UnsignedShort5551Type,"UnsignedShortType",()=>o.UnsignedShortType,"VSMShadowMap",()=>o.VSMShadowMap,"Vector2",()=>o.Vector2,"Vector3",()=>o.Vector3,"Vector4",()=>o.Vector4,"VectorKeyframeTrack",()=>o.VectorKeyframeTrack,"VideoFrameTexture",()=>o.VideoFrameTexture,"VideoTexture",()=>o.VideoTexture,"WebGL3DRenderTarget",()=>o.WebGL3DRenderTarget,"WebGLArrayRenderTarget",()=>o.WebGLArrayRenderTarget,"WebGLCoordinateSystem",()=>o.WebGLCoordinateSystem,"WebGLCubeRenderTarget",()=>n.WebGLCubeRenderTarget,"WebGLRenderTarget",()=>o.WebGLRenderTarget,"WebGLRenderer",()=>n.WebGLRenderer,"WebGLUtils",()=>n.WebGLUtils,"WebGPUCoordinateSystem",()=>o.WebGPUCoordinateSystem,"WebXRController",()=>o.WebXRController,"WireframeGeometry",()=>o.WireframeGeometry,"WrapAroundEnding",()=>o.WrapAroundEnding,"ZeroCurvatureEnding",()=>o.ZeroCurvatureEnding,"ZeroFactor",()=>o.ZeroFactor,"ZeroSlopeEnding",()=>o.ZeroSlopeEnding,"ZeroStencilOp",()=>o.ZeroStencilOp,"createCanvasElement",()=>o.createCanvasElement,"error",()=>o.error,"getConsoleFunction",()=>o.getConsoleFunction,"log",()=>o.log,"setConsoleFunction",()=>o.setConsoleFunction,"warn",()=>o.warn,"warnOnce",()=>o.warnOnce],32009);var i=e.i(32009);function l(e,t){let r;return(...a)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...a),t)}}let s=["x","y","top","bottom","left","right","width","height"];var c=e.i(46791);function u({ref:e,children:n,fallback:o,resize:c,style:d,gl:p,events:m=r.f,eventSource:h,eventPrefix:C,shadows:f,linear:g,flat:b,legacy:x,orthographic:S,frameloop:A,dpr:T,performance:M,raycaster:G,camera:_,scene:R,onPointerMissed:F,onCreated:B,...y}){a.useMemo(()=>(0,r.e)(i),[]);let v=(0,r.u)(),[L,E]=function({debounce:e,scroll:t,polyfill:r,offsetSize:n}={debounce:0,scroll:!1,offsetSize:!1}){var o,i,c;let u=r||("u"<typeof window?class{}:window.ResizeObserver);if(!u)throw Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");let[d,p]=(0,a.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),m=(0,a.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:d,orientationHandler:null}),h=e?"number"==typeof e?e:e.scroll:null,C=e?"number"==typeof e?e:e.resize:null,f=(0,a.useRef)(!1);(0,a.useEffect)(()=>(f.current=!0,()=>void(f.current=!1)));let[g,b,x]=(0,a.useMemo)(()=>{let e=()=>{let e,t;if(!m.current.element)return;let{left:r,top:a,width:o,height:i,bottom:l,right:c,x:u,y:d}=m.current.element.getBoundingClientRect(),h={left:r,top:a,width:o,height:i,bottom:l,right:c,x:u,y:d};m.current.element instanceof HTMLElement&&n&&(h.height=m.current.element.offsetHeight,h.width=m.current.element.offsetWidth),Object.freeze(h),f.current&&(e=m.current.lastBounds,t=h,!s.every(r=>e[r]===t[r]))&&p(m.current.lastBounds=h)};return[e,C?l(e,C):e,h?l(e,h):e]},[p,n,h,C]);function S(){m.current.scrollContainers&&(m.current.scrollContainers.forEach(e=>e.removeEventListener("scroll",x,!0)),m.current.scrollContainers=null),m.current.resizeObserver&&(m.current.resizeObserver.disconnect(),m.current.resizeObserver=null),m.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",m.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",m.current.orientationHandler))}function A(){m.current.element&&(m.current.resizeObserver=new u(x),m.current.resizeObserver.observe(m.current.element),t&&m.current.scrollContainers&&m.current.scrollContainers.forEach(e=>e.addEventListener("scroll",x,{capture:!0,passive:!0})),m.current.orientationHandler=()=>{x()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",m.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",m.current.orientationHandler))}return o=x,i=!!t,(0,a.useEffect)(()=>{if(i)return window.addEventListener("scroll",o,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",o,!0)},[o,i]),c=b,(0,a.useEffect)(()=>(window.addEventListener("resize",c),()=>void window.removeEventListener("resize",c)),[c]),(0,a.useEffect)(()=>{S(),A()},[t,x,b]),(0,a.useEffect)(()=>S,[]),[e=>{e&&e!==m.current.element&&(S(),m.current.element=e,m.current.scrollContainers=function e(t){let r=[];if(!t||t===document.body)return r;let{overflow:a,overflowX:n,overflowY:o}=window.getComputedStyle(t);return[a,n,o].some(e=>"auto"===e||"scroll"===e)&&r.push(t),[...r,...e(t.parentElement)]}(e),A())},d,g]}({scroll:!0,debounce:{scroll:50,resize:0},...c}),D=a.useRef(null),w=a.useRef(null);a.useImperativeHandle(e,()=>D.current);let N=(0,r.a)(F),I=a.useCallback(e=>null==N.current?void 0:N.current(e),[N]),[P,k]=a.useState(!1),[O,j]=a.useState(!1);if(P)throw P;if(O)throw O;let U=a.useRef(null),[W,H]=(0,r.b)(),z=a.useRef(null),q=()=>h?(0,r.i)(h)?h.current:h:w.current;a.useInsertionEffect(()=>()=>{let e=U.current;U.current=null,null==e||e.unmount()},[]),(0,r.c)(()=>{let e=D.current;E.width>0&&E.height>0&&e&&(U.current||(U.current=(0,r.d)(e)),U.current.configure({gl:p,scene:R,events:m,shadows:f,linear:g,flat:b,legacy:x,orthographic:S,frameloop:A,dpr:T,performance:M,raycaster:G,camera:_,size:E,onPointerMissed:I,onCreated:e=>{var t;z.current=e,null==e.events.connect||e.events.connect(null!=(t=q())?t:w.current),C&&e.setEvents({compute:(e,t)=>{let r=e[C+"X"],a=e[C+"Y"];t.pointer.set(r/t.size.width*2-1,-(2*(a/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),null==B||B(e)}}).catch(j),"fulfilled"===U.current.ready.status?U.current.render((0,t.jsx)(v,{children:(0,t.jsx)(r.E,{set:j,children:(0,t.jsx)(a.Suspense,{fallback:(0,t.jsx)(r.B,{set:k}),children:null!=n?n:null})})})):"pending"===U.current.ready.status&&H(U.current.ready))}),a.useEffect(()=>{var e;let t=null==(e=z.current)?void 0:e.get(),r=q();t&&r&&t.events.connected!==r&&(null==t.events.connect||t.events.connect(r))}),a.useEffect(()=>{let e=D.current;return()=>{var t;e.isConnected||null==(t=U.current)||t.unmount()}},[]);let V=h?"none":"auto";return(0,t.jsxs)("div",{ref:w,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:V,...d},...y,children:[(0,t.jsx)("div",{ref:L,style:{width:"100%",height:"100%"},children:(0,t.jsx)("canvas",{ref:D,style:{display:"block"},children:o})}),W]})}function d(e){return(0,t.jsx)(c.FiberProvider,{children:(0,t.jsx)(u,{...e})})}e.i(89499);var p=e.i(90874),m=e.i(58567),h=e.i(70703),C=e.i(67561),f=e.i(83402),g=e.i(49721),b=e.i(68757),x=e.i(18638);e.i(85269);var S=e.i(22831);let A=({onClick:e,icon:r,isActive:a,activeClass:n,label:o})=>(0,t.jsxs)("button",{onClick:e,className:`p-2 rounded-xl tesla-hover transition-all duration-300 group relative ${a?"bg-hud-elevated shadow-soft":""}`,title:o,children:[(0,t.jsx)(g.FontAwesomeIcon,{icon:r,className:`text-xl transition-all duration-300 ${a?n+" scale-110":"text-hud-muted group-hover:text-hud-main"}`}),a&&(0,t.jsx)("span",{className:`absolute -bottom-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full ${n.replace("text-","bg-")} animate-soft-pulse`})]}),T=()=>{let{t:e}=(0,S.useTranslation)(),{theme:r,themeMode:a,setTheme:n,states:o,toggleState:i,toggleExclusiveMode:l,cycleOceanMode:s}=(0,C.useOcearoContext)(),c={black:{icon:b.faWater,color:"text-hud-muted",label:e("toolbar.oceanBlack")},water:{icon:b.faWater,color:"text-oBlue",label:e("toolbar.oceanWater")},chart:{icon:b.faMap,color:"text-oGreen",label:e("toolbar.oceanChart")},depth:{icon:b.faLayerGroup,color:"text-oBlue",label:e("toolbar.oceanDepth")},meteo:{icon:b.faCloudSunRain,color:"text-oYellow",label:e("toolbar.oceanMeteo")}},u={auto:{icon:b.faCircleHalfStroke,label:e("toolbar.themeAuto",{theme:e(`toolbar.theme_${r}`)})},day:{icon:b.faSun,label:e("toolbar.theme_day")},dark:{icon:b.faMoon,label:e("toolbar.theme_dark")},night:{icon:b.faEye,label:e("toolbar.theme_night")}},d=u[a]||u.dark,p=o.oceanMode||"black",m=c[p];return(0,t.jsxs)("div",{className:"flex items-center space-x-1 p-1.5 rounded-2xl",children:[(0,t.jsx)(A,{onClick:()=>l("autopilot"),icon:b.faShip,isActive:o.autopilot,activeClass:"text-oBlue",label:e("toolbar.autopilot")}),(0,t.jsx)(A,{onClick:()=>l("anchorWatch"),icon:b.faAnchor,isActive:o.anchorWatch,activeClass:"text-oYellow",label:e("toolbar.anchorWatch")}),(0,t.jsx)(A,{onClick:()=>l("parkingMode"),icon:b.faParking,isActive:o.parkingMode,activeClass:"text-oGreen",label:e("toolbar.parkingMode")}),(0,t.jsx)("div",{className:"h-6 w-[1px] bg-hud-border mx-0.5"}),(0,t.jsx)(A,{onClick:()=>{n(x.THEME_MODES[(x.THEME_MODES.indexOf(a)+1)%x.THEME_MODES.length])},icon:d.icon,isActive:"dark"!==a,activeClass:"text-hud-main",label:d.label}),(0,t.jsx)(A,{onClick:s,icon:m.icon,isActive:"black"!==p,activeClass:m.color,label:m.label}),o.autopilot&&"black"===p&&(0,t.jsx)(A,{onClick:()=>i("showPolar"),icon:b.faCompass,isActive:o.showPolar,activeClass:"text-oBlue",label:e("toolbar.polarView")}),o.autopilot&&(0,t.jsx)(A,{onClick:()=>i("showLaylines3D"),icon:b.faRulerCombined,isActive:o.showLaylines3D,activeClass:"text-oGreen",label:e("toolbar.laylines3D")}),(0,t.jsx)(A,{onClick:()=>i("ais"),icon:b.faSatellite,isActive:o.ais,activeClass:"text-oGreen",label:e("toolbar.aisRadar")})]})};var M=e.i(72466),G=e.i(85709);let _="batteries",R={FRESH_WATER:{id:"freshWater",labelKey:"tanks.freshWater",path:"tanks.freshWater.0.currentLevel",icon:b.faDroplet,color:"bg-oBlue"},FUEL:{id:"fuel",labelKey:"tanks.fuel",path:"tanks.fuel.0.currentLevel",icon:b.faGasPump,color:"bg-oYellow"},BLACK_WATER:{id:"blackWater",labelKey:"tanks.blackWater",path:"tanks.blackWater.0.currentLevel",icon:b.faToilet,color:"bg-hud-muted"}},F=({level:e,type:r})=>{let{t:a}=(0,S.useTranslation)(),n=Math.max(0,Math.min(100,e)),{labelKey:o,icon:i,color:l}=R[r],s=n<=20,c=l.replace("bg-","text-");return(0,t.jsxs)("div",{className:"flex items-center space-x-2",title:a(o),children:[(0,t.jsx)(g.FontAwesomeIcon,{icon:i,className:`text-xs ${c} opacity-60`}),(0,t.jsx)("div",{className:"relative w-14 h-[8px] rounded-full bg-hud-elevated/60 overflow-hidden",children:(0,t.jsx)("div",{className:`absolute left-0 top-0 h-full rounded-full ${s?"bg-oRed":l} transition-all duration-1000 ease-out`,style:{width:`${n}%`}})}),(0,t.jsxs)("span",{className:`text-caption font-semibold tabular-nums min-w-[28px] text-right ${s?"text-oRed animate-soft-pulse":"text-hud-main"}`,children:[n,"%"]})]})},B=({batteryLevel:e,batteryNumber:r,voltage:a})=>{let{t:n}=(0,S.useTranslation)(),o=Math.max(0,Math.min(100,e)),i=(0,M.isBatteryCharging)(a),l=o<=M.BATTERY_CONFIG.DANGER_THRESHOLD;return(0,t.jsxs)("div",{className:"flex items-center space-x-2",title:`${o}% — ${a?.toFixed(1)}V${i?" "+n("common.charging"):""}`,children:[(0,t.jsx)(g.FontAwesomeIcon,{icon:b.faBolt,className:`text-xs ${i?"text-oYellow animate-pulse":"text-oGreen opacity-60"}`}),(0,t.jsx)("div",{className:"relative w-14 h-[8px] rounded-full bg-hud-elevated/60 overflow-hidden",children:(0,t.jsx)("div",{className:`absolute left-0 top-0 h-full rounded-full ${l?"bg-oRed":i?"bg-oGreen":"bg-oBlue"} transition-all duration-1000 ease-out ${i?"shadow-[0_0_6px_var(--color-oGreen)]":""}`,style:{width:`${o}%`}})})]})},y=()=>{let[e,r]=(0,a.useState)(_),n=(0,a.useMemo)(()=>["electrical.batteries.1.capacity.stateOfCharge","electrical.batteries.1.voltage"],[]),o=(0,a.useMemo)(()=>["tanks.freshWater.0.currentLevel","tanks.fuel.0.currentLevel","tanks.blackWater.0.currentLevel"],[]),i=(0,G.useSignalKPaths)([...n,...o]),l=(0,a.useMemo)(()=>{let e=i["electrical.batteries.1.capacity.stateOfCharge"],t=i["electrical.batteries.1.voltage"];return[{level:null==e?(0,M.estimateStateOfCharge)(t):e,number:1,voltage:t}].filter(e=>null!=e.level&&!Number.isNaN(e.level))},[i]),s=(0,a.useMemo)(()=>{let e=i["tanks.freshWater.0.currentLevel"],t=i["tanks.fuel.0.currentLevel"],r=i["tanks.blackWater.0.currentLevel"];return{FRESH_WATER:null!=e?100*e:0,FUEL:null!=t?100*t:0,BLACK_WATER:null!=r?100*r:0}},[i]),c=()=>{r(e=>e===_?"tanks":_)},u=e===_;return(0,t.jsx)("div",{className:"p-1.5 rounded-2xl transition-all duration-300 cursor-pointer select-none",onClick:c,role:"button",tabIndex:0,"aria-label":`Toggle between ${u?"tanks":"batteries"} display`,onKeyDown:e=>"Enter"===e.key&&c(),children:(0,t.jsx)("div",{className:"flex flex-col space-y-1",children:u?(0,t.jsx)(t.Fragment,{children:l.map(e=>(0,t.jsx)(B,{batteryLevel:e.level,batteryNumber:e.number,voltage:e.voltage},e.number))}):(0,t.jsx)(t.Fragment,{children:Object.keys(R).map(e=>(0,t.jsx)(F,{type:e,level:s[e]},e))})})})};var v=e.i(39271);let L=(0,h.default)(()=>e.A(36258),{loadableGenerated:{modules:[59465]},ssr:!1}),E=(0,h.default)(()=>e.A(11220),{loadableGenerated:{modules:[27404]},ssr:!1}),D=(0,h.default)(()=>e.A(97820),{loadableGenerated:{modules:[69675]},ssr:!1}),w=(0,h.default)(()=>e.A(29882),{loadableGenerated:{modules:[56665]}}),N=(0,h.default)(()=>e.A(93170),{loadableGenerated:{modules:[50226]}}),I=(0,h.default)(()=>e.A(93889),{loadableGenerated:{modules:[58166]}}),P=(0,h.default)(()=>e.A(64390),{loadableGenerated:{modules:[39554]}}),k=(0,h.default)(()=>e.A(48217),{loadableGenerated:{modules:[14774]}}),O=(0,h.default)(()=>e.A(30150),{loadableGenerated:{modules:[84237]}}),j=(0,h.default)(()=>e.A(34882),{loadableGenerated:{modules:[77021]}}),U=(0,h.default)(()=>e.A(59499),{loadableGenerated:{modules:[85003]}}),W=(0,h.default)(()=>e.A(43322),{loadableGenerated:{modules:[56101]}}),H=(0,h.default)(()=>e.A(32673),{loadableGenerated:{modules:[36540]}}),z=(0,h.default)(()=>e.A(66984),{loadableGenerated:{modules:[79261]}}),q=(0,h.default)(()=>e.A(32598),{loadableGenerated:{modules:[79224]}}),V=(0,h.default)(()=>e.A(73321),{loadableGenerated:{modules:[78938]}}),K=(0,h.default)(()=>e.A(82041),{loadableGenerated:{modules:[41994]}}),$=(0,h.default)(()=>e.A(71762),{loadableGenerated:{modules:[91999]}}),X=(0,h.default)(()=>e.A(93540),{loadableGenerated:{modules:[84809]}}),Q=(0,h.default)(()=>e.A(11657),{loadableGenerated:{modules:[75058]}}),Z=()=>{let{gl:e,scene:t}=(0,p.useThree)();return(0,a.useEffect)(()=>{if(window&&e){window.__OCEARO_RENDERER=e;let t=setInterval(()=>{e&&e.info&&(window.__OCEARO_RENDER_INFO=e.info)},1e3);return()=>{delete window.__OCEARO_RENDERER,delete window.__OCEARO_RENDER_INFO,clearInterval(t)}}},[e,t]),null},Y=({fps:e})=>{let t=(0,p.useThree)(e=>e.invalidate);return(0,a.useEffect)(()=>{let r=setInterval(()=>t(),1e3/e);return()=>clearInterval(r)},[e,t]),null};e.s(["default",0,({active:e=!0,fullscreen:r=!1})=>{let[n]=(0,a.useState)(m.getRenderProfile),i=n.fps<60,{states:l,theme:s}=(0,C.useOcearoContext)(),c=(0,v.useReplay)().active,[u,p]=(0,a.useState)(null),[h,g]=(0,a.useState)(!0),[b]=(0,a.useState)(()=>f.default.get("hudStyle")||"minimal"),x="classic"===b,S=r&&!x;(0,a.useEffect)(()=>{g(!1!==f.default.getAll().showAttitudeIndicator)},[]);let A="day"===s&&("chart"===l.oceanMode||"depth"===l.oceanMode||"meteo"===l.oceanMode);return(0,t.jsxs)("div",{className:"w-full h-full relative overflow-hidden","data-scene":A?"light":void 0,children:[(0,t.jsxs)("div",{className:"absolute top-2 left-2 right-2 z-20 flex items-center justify-between",children:[(0,t.jsx)(T,{}),(0,t.jsxs)("div",{className:"flex items-center space-x-4 min-w-0 shrink-0",children:[(0,t.jsx)(X,{compact:!r}),(0,t.jsx)(y,{})]})]}),(0,t.jsxs)("div",{className:"absolute top-14 left-2 z-30",children:[!l.anchorWatch&&(0,t.jsx)(w,{}),l.anchorWatch&&(0,t.jsx)(P,{}),!x&&(0,t.jsx)(U,{omitDepth:!0,maxItems:S?4:3}),!l.parkingMode&&(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(Q,{})})]}),x&&h&&(0,t.jsx)("div",{className:"absolute top-14 right-2 z-20",children:(0,t.jsx)(O,{})}),u&&(0,t.jsx)("div",{className:"absolute top-28 left-2 z-30",children:(0,t.jsx)(j,{content:u,onClose:()=>p(null)})}),S&&(0,t.jsx)("div",{className:"absolute left-3 bottom-3 z-20",children:(0,t.jsx)(K,{})}),S&&(0,t.jsx)("div",{className:"absolute right-3 bottom-3 z-20",children:(0,t.jsx)($,{})}),!c&&(0,t.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 top-14 z-30 max-w-[calc(100%-12rem)]",children:(0,t.jsx)(V,{})}),"meteo"===l.oceanMode&&(0,t.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 top-14 z-30 max-w-[calc(100%-12rem)]",children:(0,t.jsx)(q,{})}),(0,t.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 bottom-3 z-30 max-w-[calc(100%-1rem)]",children:(0,t.jsx)(z,{})}),l.parkingMode&&(0,t.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 bottom-3 z-20 max-w-[calc(100%-9rem)]",children:(0,t.jsx)(H,{})}),!l.anchorWatch&&!l.parkingMode&&!c&&(0,t.jsx)("div",{className:`absolute left-1/2 -translate-x-1/2 z-20 max-w-[calc(100%-9rem)] ${x?"bottom-24":"bottom-3"}`,children:(0,t.jsx)(W,{})}),!S&&(0,t.jsx)("div",{className:"absolute left-2 bottom-2 z-20 flex flex-col items-center",children:(0,t.jsx)(k,{})}),!S&&(0,t.jsx)("div",{className:"absolute right-2 bottom-2 z-20 flex flex-col items-center",children:(0,t.jsx)(I,{})}),x&&!l.anchorWatch&&(0,t.jsx)("div",{className:"absolute bottom-2 left-1/2 transform -translate-x-1/2 z-10",children:(0,t.jsx)(N,{})}),(0,t.jsx)("div",{className:"absolute left-1/2 transform -translate-x-1/2 w-full h-full",children:(0,t.jsxs)(d,{style:{width:"100%",height:"100%"},shadows:!1,frameloop:e?i?"demand":"always":"never",dpr:n.dpr,performance:{min:.5},gl:{antialias:n.antialias,powerPreference:"low-power",physicallyCorrectLights:!1,toneMapping:o.NoToneMapping,toneMappingExposure:1,shadowMap:{enabled:!1},precision:"lowp"},children:[(0,t.jsx)(Z,{}),e&&i&&(0,t.jsx)(Y,{fps:n.fps}),l.parkingMode?(0,t.jsx)(E,{onUpdateInfoPanel:p}):l.anchorWatch?(0,t.jsx)(D,{onUpdateInfoPanel:p}):(0,t.jsx)(L,{onUpdateInfoPanel:p})]})})]})}],47141)},23595,function(e){e.n(e.i(47141))}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,47141,e=>{"use strict";var t=e.i(43476),r=e.i(61949),a=e.i(71645),n=e.i(8560),o=e.i(90072);e.s(["ACESFilmicToneMapping",()=>o.ACESFilmicToneMapping,"AddEquation",()=>o.AddEquation,"AddOperation",()=>o.AddOperation,"AdditiveAnimationBlendMode",()=>o.AdditiveAnimationBlendMode,"AdditiveBlending",()=>o.AdditiveBlending,"AgXToneMapping",()=>o.AgXToneMapping,"AlphaFormat",()=>o.AlphaFormat,"AlwaysCompare",()=>o.AlwaysCompare,"AlwaysDepth",()=>o.AlwaysDepth,"AlwaysStencilFunc",()=>o.AlwaysStencilFunc,"AmbientLight",()=>o.AmbientLight,"AnimationAction",()=>o.AnimationAction,"AnimationClip",()=>o.AnimationClip,"AnimationLoader",()=>o.AnimationLoader,"AnimationMixer",()=>o.AnimationMixer,"AnimationObjectGroup",()=>o.AnimationObjectGroup,"AnimationUtils",()=>o.AnimationUtils,"ArcCurve",()=>o.ArcCurve,"ArrayCamera",()=>o.ArrayCamera,"ArrowHelper",()=>o.ArrowHelper,"AttachedBindMode",()=>o.AttachedBindMode,"Audio",()=>o.Audio,"AudioAnalyser",()=>o.AudioAnalyser,"AudioContext",()=>o.AudioContext,"AudioListener",()=>o.AudioListener,"AudioLoader",()=>o.AudioLoader,"AxesHelper",()=>o.AxesHelper,"BackSide",()=>o.BackSide,"BasicDepthPacking",()=>o.BasicDepthPacking,"BasicShadowMap",()=>o.BasicShadowMap,"BatchedMesh",()=>o.BatchedMesh,"BezierInterpolant",()=>o.BezierInterpolant,"Bone",()=>o.Bone,"BooleanKeyframeTrack",()=>o.BooleanKeyframeTrack,"Box2",()=>o.Box2,"Box3",()=>o.Box3,"Box3Helper",()=>o.Box3Helper,"BoxGeometry",()=>o.BoxGeometry,"BoxHelper",()=>o.BoxHelper,"BufferAttribute",()=>o.BufferAttribute,"BufferGeometry",()=>o.BufferGeometry,"BufferGeometryLoader",()=>o.BufferGeometryLoader,"ByteType",()=>o.ByteType,"Cache",()=>o.Cache,"Camera",()=>o.Camera,"CameraHelper",()=>o.CameraHelper,"CanvasTexture",()=>o.CanvasTexture,"CapsuleGeometry",()=>o.CapsuleGeometry,"CatmullRomCurve3",()=>o.CatmullRomCurve3,"CineonToneMapping",()=>o.CineonToneMapping,"CircleGeometry",()=>o.CircleGeometry,"ClampToEdgeWrapping",()=>o.ClampToEdgeWrapping,"Clock",()=>o.Clock,"Color",()=>o.Color,"ColorKeyframeTrack",()=>o.ColorKeyframeTrack,"ColorManagement",()=>o.ColorManagement,"Compatibility",()=>o.Compatibility,"CompressedArrayTexture",()=>o.CompressedArrayTexture,"CompressedCubeTexture",()=>o.CompressedCubeTexture,"CompressedTexture",()=>o.CompressedTexture,"CompressedTextureLoader",()=>o.CompressedTextureLoader,"ConeGeometry",()=>o.ConeGeometry,"ConstantAlphaFactor",()=>o.ConstantAlphaFactor,"ConstantColorFactor",()=>o.ConstantColorFactor,"Controls",()=>o.Controls,"CubeCamera",()=>o.CubeCamera,"CubeDepthTexture",()=>o.CubeDepthTexture,"CubeReflectionMapping",()=>o.CubeReflectionMapping,"CubeRefractionMapping",()=>o.CubeRefractionMapping,"CubeTexture",()=>o.CubeTexture,"CubeTextureLoader",()=>o.CubeTextureLoader,"CubeUVReflectionMapping",()=>o.CubeUVReflectionMapping,"CubicBezierCurve",()=>o.CubicBezierCurve,"CubicBezierCurve3",()=>o.CubicBezierCurve3,"CubicInterpolant",()=>o.CubicInterpolant,"CullFaceBack",()=>o.CullFaceBack,"CullFaceFront",()=>o.CullFaceFront,"CullFaceFrontBack",()=>o.CullFaceFrontBack,"CullFaceNone",()=>o.CullFaceNone,"Curve",()=>o.Curve,"CurvePath",()=>o.CurvePath,"CustomBlending",()=>o.CustomBlending,"CustomToneMapping",()=>o.CustomToneMapping,"CylinderGeometry",()=>o.CylinderGeometry,"Cylindrical",()=>o.Cylindrical,"Data3DTexture",()=>o.Data3DTexture,"DataArrayTexture",()=>o.DataArrayTexture,"DataTexture",()=>o.DataTexture,"DataTextureLoader",()=>o.DataTextureLoader,"DataUtils",()=>o.DataUtils,"DecrementStencilOp",()=>o.DecrementStencilOp,"DecrementWrapStencilOp",()=>o.DecrementWrapStencilOp,"DefaultLoadingManager",()=>o.DefaultLoadingManager,"DepthFormat",()=>o.DepthFormat,"DepthStencilFormat",()=>o.DepthStencilFormat,"DepthTexture",()=>o.DepthTexture,"DetachedBindMode",()=>o.DetachedBindMode,"DirectionalLight",()=>o.DirectionalLight,"DirectionalLightHelper",()=>o.DirectionalLightHelper,"DiscreteInterpolant",()=>o.DiscreteInterpolant,"DodecahedronGeometry",()=>o.DodecahedronGeometry,"DoubleSide",()=>o.DoubleSide,"DstAlphaFactor",()=>o.DstAlphaFactor,"DstColorFactor",()=>o.DstColorFactor,"DynamicCopyUsage",()=>o.DynamicCopyUsage,"DynamicDrawUsage",()=>o.DynamicDrawUsage,"DynamicReadUsage",()=>o.DynamicReadUsage,"EdgesGeometry",()=>o.EdgesGeometry,"EllipseCurve",()=>o.EllipseCurve,"EqualCompare",()=>o.EqualCompare,"EqualDepth",()=>o.EqualDepth,"EqualStencilFunc",()=>o.EqualStencilFunc,"EquirectangularReflectionMapping",()=>o.EquirectangularReflectionMapping,"EquirectangularRefractionMapping",()=>o.EquirectangularRefractionMapping,"Euler",()=>o.Euler,"EventDispatcher",()=>o.EventDispatcher,"ExternalTexture",()=>o.ExternalTexture,"ExtrudeGeometry",()=>o.ExtrudeGeometry,"FileLoader",()=>o.FileLoader,"Float16BufferAttribute",()=>o.Float16BufferAttribute,"Float32BufferAttribute",()=>o.Float32BufferAttribute,"FloatType",()=>o.FloatType,"Fog",()=>o.Fog,"FogExp2",()=>o.FogExp2,"FramebufferTexture",()=>o.FramebufferTexture,"FrontSide",()=>o.FrontSide,"Frustum",()=>o.Frustum,"FrustumArray",()=>o.FrustumArray,"GLBufferAttribute",()=>o.GLBufferAttribute,"GLSL1",()=>o.GLSL1,"GLSL3",()=>o.GLSL3,"GreaterCompare",()=>o.GreaterCompare,"GreaterDepth",()=>o.GreaterDepth,"GreaterEqualCompare",()=>o.GreaterEqualCompare,"GreaterEqualDepth",()=>o.GreaterEqualDepth,"GreaterEqualStencilFunc",()=>o.GreaterEqualStencilFunc,"GreaterStencilFunc",()=>o.GreaterStencilFunc,"GridHelper",()=>o.GridHelper,"Group",()=>o.Group,"HTMLTexture",()=>o.HTMLTexture,"HalfFloatType",()=>o.HalfFloatType,"HemisphereLight",()=>o.HemisphereLight,"HemisphereLightHelper",()=>o.HemisphereLightHelper,"IcosahedronGeometry",()=>o.IcosahedronGeometry,"ImageBitmapLoader",()=>o.ImageBitmapLoader,"ImageLoader",()=>o.ImageLoader,"ImageUtils",()=>o.ImageUtils,"IncrementStencilOp",()=>o.IncrementStencilOp,"IncrementWrapStencilOp",()=>o.IncrementWrapStencilOp,"InstancedBufferAttribute",()=>o.InstancedBufferAttribute,"InstancedBufferGeometry",()=>o.InstancedBufferGeometry,"InstancedInterleavedBuffer",()=>o.InstancedInterleavedBuffer,"InstancedMesh",()=>o.InstancedMesh,"Int16BufferAttribute",()=>o.Int16BufferAttribute,"Int32BufferAttribute",()=>o.Int32BufferAttribute,"Int8BufferAttribute",()=>o.Int8BufferAttribute,"IntType",()=>o.IntType,"InterleavedBuffer",()=>o.InterleavedBuffer,"InterleavedBufferAttribute",()=>o.InterleavedBufferAttribute,"Interpolant",()=>o.Interpolant,"InterpolateBezier",()=>o.InterpolateBezier,"InterpolateDiscrete",()=>o.InterpolateDiscrete,"InterpolateLinear",()=>o.InterpolateLinear,"InterpolateSmooth",()=>o.InterpolateSmooth,"InterpolationSamplingMode",()=>o.InterpolationSamplingMode,"InterpolationSamplingType",()=>o.InterpolationSamplingType,"InvertStencilOp",()=>o.InvertStencilOp,"KeepStencilOp",()=>o.KeepStencilOp,"KeyframeTrack",()=>o.KeyframeTrack,"LOD",()=>o.LOD,"LatheGeometry",()=>o.LatheGeometry,"Layers",()=>o.Layers,"LessCompare",()=>o.LessCompare,"LessDepth",()=>o.LessDepth,"LessEqualCompare",()=>o.LessEqualCompare,"LessEqualDepth",()=>o.LessEqualDepth,"LessEqualStencilFunc",()=>o.LessEqualStencilFunc,"LessStencilFunc",()=>o.LessStencilFunc,"Light",()=>o.Light,"LightProbe",()=>o.LightProbe,"LightShadow",()=>o.LightShadow,"Line",()=>o.Line,"Line3",()=>o.Line3,"LineBasicMaterial",()=>o.LineBasicMaterial,"LineCurve",()=>o.LineCurve,"LineCurve3",()=>o.LineCurve3,"LineDashedMaterial",()=>o.LineDashedMaterial,"LineLoop",()=>o.LineLoop,"LineSegments",()=>o.LineSegments,"LinearFilter",()=>o.LinearFilter,"LinearInterpolant",()=>o.LinearInterpolant,"LinearMipMapLinearFilter",()=>o.LinearMipMapLinearFilter,"LinearMipMapNearestFilter",()=>o.LinearMipMapNearestFilter,"LinearMipmapLinearFilter",()=>o.LinearMipmapLinearFilter,"LinearMipmapNearestFilter",()=>o.LinearMipmapNearestFilter,"LinearSRGBColorSpace",()=>o.LinearSRGBColorSpace,"LinearToneMapping",()=>o.LinearToneMapping,"LinearTransfer",()=>o.LinearTransfer,"Loader",()=>o.Loader,"LoaderUtils",()=>o.LoaderUtils,"LoadingManager",()=>o.LoadingManager,"LoopOnce",()=>o.LoopOnce,"LoopPingPong",()=>o.LoopPingPong,"LoopRepeat",()=>o.LoopRepeat,"MOUSE",()=>o.MOUSE,"Material",()=>o.Material,"MaterialBlending",()=>o.MaterialBlending,"MaterialLoader",()=>o.MaterialLoader,"MathUtils",()=>o.MathUtils,"Matrix2",()=>o.Matrix2,"Matrix3",()=>o.Matrix3,"Matrix4",()=>o.Matrix4,"MaxEquation",()=>o.MaxEquation,"Mesh",()=>o.Mesh,"MeshBasicMaterial",()=>o.MeshBasicMaterial,"MeshDepthMaterial",()=>o.MeshDepthMaterial,"MeshDistanceMaterial",()=>o.MeshDistanceMaterial,"MeshLambertMaterial",()=>o.MeshLambertMaterial,"MeshMatcapMaterial",()=>o.MeshMatcapMaterial,"MeshNormalMaterial",()=>o.MeshNormalMaterial,"MeshPhongMaterial",()=>o.MeshPhongMaterial,"MeshPhysicalMaterial",()=>o.MeshPhysicalMaterial,"MeshStandardMaterial",()=>o.MeshStandardMaterial,"MeshToonMaterial",()=>o.MeshToonMaterial,"MinEquation",()=>o.MinEquation,"MirroredRepeatWrapping",()=>o.MirroredRepeatWrapping,"MixOperation",()=>o.MixOperation,"MultiplyBlending",()=>o.MultiplyBlending,"MultiplyOperation",()=>o.MultiplyOperation,"NearestFilter",()=>o.NearestFilter,"NearestMipMapLinearFilter",()=>o.NearestMipMapLinearFilter,"NearestMipMapNearestFilter",()=>o.NearestMipMapNearestFilter,"NearestMipmapLinearFilter",()=>o.NearestMipmapLinearFilter,"NearestMipmapNearestFilter",()=>o.NearestMipmapNearestFilter,"NeutralToneMapping",()=>o.NeutralToneMapping,"NeverCompare",()=>o.NeverCompare,"NeverDepth",()=>o.NeverDepth,"NeverStencilFunc",()=>o.NeverStencilFunc,"NoBlending",()=>o.NoBlending,"NoColorSpace",()=>o.NoColorSpace,"NoNormalPacking",()=>o.NoNormalPacking,"NoToneMapping",()=>o.NoToneMapping,"NormalAnimationBlendMode",()=>o.NormalAnimationBlendMode,"NormalBlending",()=>o.NormalBlending,"NormalGAPacking",()=>o.NormalGAPacking,"NormalRGPacking",()=>o.NormalRGPacking,"NotEqualCompare",()=>o.NotEqualCompare,"NotEqualDepth",()=>o.NotEqualDepth,"NotEqualStencilFunc",()=>o.NotEqualStencilFunc,"NumberKeyframeTrack",()=>o.NumberKeyframeTrack,"Object3D",()=>o.Object3D,"ObjectLoader",()=>o.ObjectLoader,"ObjectSpaceNormalMap",()=>o.ObjectSpaceNormalMap,"OctahedronGeometry",()=>o.OctahedronGeometry,"OneFactor",()=>o.OneFactor,"OneMinusConstantAlphaFactor",()=>o.OneMinusConstantAlphaFactor,"OneMinusConstantColorFactor",()=>o.OneMinusConstantColorFactor,"OneMinusDstAlphaFactor",()=>o.OneMinusDstAlphaFactor,"OneMinusDstColorFactor",()=>o.OneMinusDstColorFactor,"OneMinusSrcAlphaFactor",()=>o.OneMinusSrcAlphaFactor,"OneMinusSrcColorFactor",()=>o.OneMinusSrcColorFactor,"OrthographicCamera",()=>o.OrthographicCamera,"PCFShadowMap",()=>o.PCFShadowMap,"PCFSoftShadowMap",()=>o.PCFSoftShadowMap,"PMREMGenerator",()=>n.PMREMGenerator,"Path",()=>o.Path,"PerspectiveCamera",()=>o.PerspectiveCamera,"Plane",()=>o.Plane,"PlaneGeometry",()=>o.PlaneGeometry,"PlaneHelper",()=>o.PlaneHelper,"PointLight",()=>o.PointLight,"PointLightHelper",()=>o.PointLightHelper,"Points",()=>o.Points,"PointsMaterial",()=>o.PointsMaterial,"PolarGridHelper",()=>o.PolarGridHelper,"PolyhedronGeometry",()=>o.PolyhedronGeometry,"PositionalAudio",()=>o.PositionalAudio,"PropertyBinding",()=>o.PropertyBinding,"PropertyMixer",()=>o.PropertyMixer,"QuadraticBezierCurve",()=>o.QuadraticBezierCurve,"QuadraticBezierCurve3",()=>o.QuadraticBezierCurve3,"Quaternion",()=>o.Quaternion,"QuaternionKeyframeTrack",()=>o.QuaternionKeyframeTrack,"QuaternionLinearInterpolant",()=>o.QuaternionLinearInterpolant,"R11_EAC_Format",()=>o.R11_EAC_Format,"RED_GREEN_RGTC2_Format",()=>o.RED_GREEN_RGTC2_Format,"RED_RGTC1_Format",()=>o.RED_RGTC1_Format,"REVISION",()=>o.REVISION,"RG11_EAC_Format",()=>o.RG11_EAC_Format,"RGBADepthPacking",()=>o.RGBADepthPacking,"RGBAFormat",()=>o.RGBAFormat,"RGBAIntegerFormat",()=>o.RGBAIntegerFormat,"RGBA_ASTC_10x10_Format",()=>o.RGBA_ASTC_10x10_Format,"RGBA_ASTC_10x5_Format",()=>o.RGBA_ASTC_10x5_Format,"RGBA_ASTC_10x6_Format",()=>o.RGBA_ASTC_10x6_Format,"RGBA_ASTC_10x8_Format",()=>o.RGBA_ASTC_10x8_Format,"RGBA_ASTC_12x10_Format",()=>o.RGBA_ASTC_12x10_Format,"RGBA_ASTC_12x12_Format",()=>o.RGBA_ASTC_12x12_Format,"RGBA_ASTC_4x4_Format",()=>o.RGBA_ASTC_4x4_Format,"RGBA_ASTC_5x4_Format",()=>o.RGBA_ASTC_5x4_Format,"RGBA_ASTC_5x5_Format",()=>o.RGBA_ASTC_5x5_Format,"RGBA_ASTC_6x5_Format",()=>o.RGBA_ASTC_6x5_Format,"RGBA_ASTC_6x6_Format",()=>o.RGBA_ASTC_6x6_Format,"RGBA_ASTC_8x5_Format",()=>o.RGBA_ASTC_8x5_Format,"RGBA_ASTC_8x6_Format",()=>o.RGBA_ASTC_8x6_Format,"RGBA_ASTC_8x8_Format",()=>o.RGBA_ASTC_8x8_Format,"RGBA_BPTC_Format",()=>o.RGBA_BPTC_Format,"RGBA_ETC2_EAC_Format",()=>o.RGBA_ETC2_EAC_Format,"RGBA_PVRTC_2BPPV1_Format",()=>o.RGBA_PVRTC_2BPPV1_Format,"RGBA_PVRTC_4BPPV1_Format",()=>o.RGBA_PVRTC_4BPPV1_Format,"RGBA_S3TC_DXT1_Format",()=>o.RGBA_S3TC_DXT1_Format,"RGBA_S3TC_DXT3_Format",()=>o.RGBA_S3TC_DXT3_Format,"RGBA_S3TC_DXT5_Format",()=>o.RGBA_S3TC_DXT5_Format,"RGBDepthPacking",()=>o.RGBDepthPacking,"RGBFormat",()=>o.RGBFormat,"RGBIntegerFormat",()=>o.RGBIntegerFormat,"RGB_BPTC_SIGNED_Format",()=>o.RGB_BPTC_SIGNED_Format,"RGB_BPTC_UNSIGNED_Format",()=>o.RGB_BPTC_UNSIGNED_Format,"RGB_ETC1_Format",()=>o.RGB_ETC1_Format,"RGB_ETC2_Format",()=>o.RGB_ETC2_Format,"RGB_PVRTC_2BPPV1_Format",()=>o.RGB_PVRTC_2BPPV1_Format,"RGB_PVRTC_4BPPV1_Format",()=>o.RGB_PVRTC_4BPPV1_Format,"RGB_S3TC_DXT1_Format",()=>o.RGB_S3TC_DXT1_Format,"RGDepthPacking",()=>o.RGDepthPacking,"RGFormat",()=>o.RGFormat,"RGIntegerFormat",()=>o.RGIntegerFormat,"RawShaderMaterial",()=>o.RawShaderMaterial,"Ray",()=>o.Ray,"Raycaster",()=>o.Raycaster,"RectAreaLight",()=>o.RectAreaLight,"RedFormat",()=>o.RedFormat,"RedIntegerFormat",()=>o.RedIntegerFormat,"ReinhardToneMapping",()=>o.ReinhardToneMapping,"RenderObjectRefreshType",()=>o.RenderObjectRefreshType,"RenderTarget",()=>o.RenderTarget,"RenderTarget3D",()=>o.RenderTarget3D,"RepeatWrapping",()=>o.RepeatWrapping,"ReplaceStencilOp",()=>o.ReplaceStencilOp,"ReverseSubtractEquation",()=>o.ReverseSubtractEquation,"RingGeometry",()=>o.RingGeometry,"SIGNED_R11_EAC_Format",()=>o.SIGNED_R11_EAC_Format,"SIGNED_RED_GREEN_RGTC2_Format",()=>o.SIGNED_RED_GREEN_RGTC2_Format,"SIGNED_RED_RGTC1_Format",()=>o.SIGNED_RED_RGTC1_Format,"SIGNED_RG11_EAC_Format",()=>o.SIGNED_RG11_EAC_Format,"SRGBColorSpace",()=>o.SRGBColorSpace,"SRGBTransfer",()=>o.SRGBTransfer,"Scene",()=>o.Scene,"ShaderChunk",()=>n.ShaderChunk,"ShaderLib",()=>n.ShaderLib,"ShaderMaterial",()=>o.ShaderMaterial,"ShadowMaterial",()=>o.ShadowMaterial,"Shape",()=>o.Shape,"ShapeGeometry",()=>o.ShapeGeometry,"ShapePath",()=>o.ShapePath,"ShapeUtils",()=>o.ShapeUtils,"ShortType",()=>o.ShortType,"Skeleton",()=>o.Skeleton,"SkeletonHelper",()=>o.SkeletonHelper,"SkinnedMesh",()=>o.SkinnedMesh,"Source",()=>o.Source,"Sphere",()=>o.Sphere,"SphereGeometry",()=>o.SphereGeometry,"Spherical",()=>o.Spherical,"SphericalHarmonics3",()=>o.SphericalHarmonics3,"SplineCurve",()=>o.SplineCurve,"SpotLight",()=>o.SpotLight,"SpotLightHelper",()=>o.SpotLightHelper,"Sprite",()=>o.Sprite,"SpriteMaterial",()=>o.SpriteMaterial,"SrcAlphaFactor",()=>o.SrcAlphaFactor,"SrcAlphaSaturateFactor",()=>o.SrcAlphaSaturateFactor,"SrcColorFactor",()=>o.SrcColorFactor,"StaticCopyUsage",()=>o.StaticCopyUsage,"StaticDrawUsage",()=>o.StaticDrawUsage,"StaticReadUsage",()=>o.StaticReadUsage,"StereoCamera",()=>o.StereoCamera,"StreamCopyUsage",()=>o.StreamCopyUsage,"StreamDrawUsage",()=>o.StreamDrawUsage,"StreamReadUsage",()=>o.StreamReadUsage,"StringKeyframeTrack",()=>o.StringKeyframeTrack,"SubtractEquation",()=>o.SubtractEquation,"SubtractiveBlending",()=>o.SubtractiveBlending,"TOUCH",()=>o.TOUCH,"TangentSpaceNormalMap",()=>o.TangentSpaceNormalMap,"TetrahedronGeometry",()=>o.TetrahedronGeometry,"Texture",()=>o.Texture,"TextureLoader",()=>o.TextureLoader,"TextureSource",()=>o.TextureSource,"TextureUtils",()=>o.TextureUtils,"Timer",()=>o.Timer,"TimestampQuery",()=>o.TimestampQuery,"TorusGeometry",()=>o.TorusGeometry,"TorusKnotGeometry",()=>o.TorusKnotGeometry,"Triangle",()=>o.Triangle,"TriangleFanDrawMode",()=>o.TriangleFanDrawMode,"TriangleStripDrawMode",()=>o.TriangleStripDrawMode,"TrianglesDrawMode",()=>o.TrianglesDrawMode,"TubeGeometry",()=>o.TubeGeometry,"UVMapping",()=>o.UVMapping,"Uint16BufferAttribute",()=>o.Uint16BufferAttribute,"Uint32BufferAttribute",()=>o.Uint32BufferAttribute,"Uint8BufferAttribute",()=>o.Uint8BufferAttribute,"Uint8ClampedBufferAttribute",()=>o.Uint8ClampedBufferAttribute,"Uniform",()=>o.Uniform,"UniformsGroup",()=>o.UniformsGroup,"UniformsLib",()=>n.UniformsLib,"UniformsUtils",()=>o.UniformsUtils,"UnsignedByteType",()=>o.UnsignedByteType,"UnsignedInt101111Type",()=>o.UnsignedInt101111Type,"UnsignedInt248Type",()=>o.UnsignedInt248Type,"UnsignedInt5999Type",()=>o.UnsignedInt5999Type,"UnsignedIntType",()=>o.UnsignedIntType,"UnsignedShort4444Type",()=>o.UnsignedShort4444Type,"UnsignedShort5551Type",()=>o.UnsignedShort5551Type,"UnsignedShortType",()=>o.UnsignedShortType,"VSMShadowMap",()=>o.VSMShadowMap,"Vector2",()=>o.Vector2,"Vector3",()=>o.Vector3,"Vector4",()=>o.Vector4,"VectorKeyframeTrack",()=>o.VectorKeyframeTrack,"VideoFrameTexture",()=>o.VideoFrameTexture,"VideoTexture",()=>o.VideoTexture,"WebGL3DRenderTarget",()=>o.WebGL3DRenderTarget,"WebGLArrayRenderTarget",()=>o.WebGLArrayRenderTarget,"WebGLCoordinateSystem",()=>o.WebGLCoordinateSystem,"WebGLCubeRenderTarget",()=>n.WebGLCubeRenderTarget,"WebGLRenderTarget",()=>o.WebGLRenderTarget,"WebGLRenderer",()=>n.WebGLRenderer,"WebGLUtils",()=>n.WebGLUtils,"WebGPUCoordinateSystem",()=>o.WebGPUCoordinateSystem,"WebXRController",()=>o.WebXRController,"WireframeGeometry",()=>o.WireframeGeometry,"WrapAroundEnding",()=>o.WrapAroundEnding,"ZeroCurvatureEnding",()=>o.ZeroCurvatureEnding,"ZeroFactor",()=>o.ZeroFactor,"ZeroSlopeEnding",()=>o.ZeroSlopeEnding,"ZeroStencilOp",()=>o.ZeroStencilOp,"createCanvasElement",()=>o.createCanvasElement,"error",()=>o.error,"getConsoleFunction",()=>o.getConsoleFunction,"log",()=>o.log,"setConsoleFunction",()=>o.setConsoleFunction,"warn",()=>o.warn,"warnOnce",()=>o.warnOnce],32009);var i=e.i(32009);function l(e,t){let r;return(...a)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...a),t)}}let s=["x","y","top","bottom","left","right","width","height"];var c=e.i(46791);function u({ref:e,children:n,fallback:o,resize:c,style:d,gl:p,events:m=r.f,eventSource:h,eventPrefix:C,shadows:f,linear:g,flat:b,legacy:x,orthographic:S,frameloop:A,dpr:T,performance:M,raycaster:G,camera:_,scene:R,onPointerMissed:F,onCreated:B,...y}){a.useMemo(()=>(0,r.e)(i),[]);let v=(0,r.u)(),[L,E]=function({debounce:e,scroll:t,polyfill:r,offsetSize:n}={debounce:0,scroll:!1,offsetSize:!1}){var o,i,c;let u=r||("u"<typeof window?class{}:window.ResizeObserver);if(!u)throw Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");let[d,p]=(0,a.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),m=(0,a.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:d,orientationHandler:null}),h=e?"number"==typeof e?e:e.scroll:null,C=e?"number"==typeof e?e:e.resize:null,f=(0,a.useRef)(!1);(0,a.useEffect)(()=>(f.current=!0,()=>void(f.current=!1)));let[g,b,x]=(0,a.useMemo)(()=>{let e=()=>{let e,t;if(!m.current.element)return;let{left:r,top:a,width:o,height:i,bottom:l,right:c,x:u,y:d}=m.current.element.getBoundingClientRect(),h={left:r,top:a,width:o,height:i,bottom:l,right:c,x:u,y:d};m.current.element instanceof HTMLElement&&n&&(h.height=m.current.element.offsetHeight,h.width=m.current.element.offsetWidth),Object.freeze(h),f.current&&(e=m.current.lastBounds,t=h,!s.every(r=>e[r]===t[r]))&&p(m.current.lastBounds=h)};return[e,C?l(e,C):e,h?l(e,h):e]},[p,n,h,C]);function S(){m.current.scrollContainers&&(m.current.scrollContainers.forEach(e=>e.removeEventListener("scroll",x,!0)),m.current.scrollContainers=null),m.current.resizeObserver&&(m.current.resizeObserver.disconnect(),m.current.resizeObserver=null),m.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",m.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",m.current.orientationHandler))}function A(){m.current.element&&(m.current.resizeObserver=new u(x),m.current.resizeObserver.observe(m.current.element),t&&m.current.scrollContainers&&m.current.scrollContainers.forEach(e=>e.addEventListener("scroll",x,{capture:!0,passive:!0})),m.current.orientationHandler=()=>{x()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",m.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",m.current.orientationHandler))}return o=x,i=!!t,(0,a.useEffect)(()=>{if(i)return window.addEventListener("scroll",o,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",o,!0)},[o,i]),c=b,(0,a.useEffect)(()=>(window.addEventListener("resize",c),()=>void window.removeEventListener("resize",c)),[c]),(0,a.useEffect)(()=>{S(),A()},[t,x,b]),(0,a.useEffect)(()=>S,[]),[e=>{e&&e!==m.current.element&&(S(),m.current.element=e,m.current.scrollContainers=function e(t){let r=[];if(!t||t===document.body)return r;let{overflow:a,overflowX:n,overflowY:o}=window.getComputedStyle(t);return[a,n,o].some(e=>"auto"===e||"scroll"===e)&&r.push(t),[...r,...e(t.parentElement)]}(e),A())},d,g]}({scroll:!0,debounce:{scroll:50,resize:0},...c}),D=a.useRef(null),w=a.useRef(null);a.useImperativeHandle(e,()=>D.current);let N=(0,r.a)(F),I=a.useCallback(e=>null==N.current?void 0:N.current(e),[N]),[P,k]=a.useState(!1),[O,j]=a.useState(!1);if(P)throw P;if(O)throw O;let U=a.useRef(null),[W,H]=(0,r.b)(),z=a.useRef(null),q=()=>h?(0,r.i)(h)?h.current:h:w.current;a.useInsertionEffect(()=>()=>{let e=U.current;U.current=null,null==e||e.unmount()},[]),(0,r.c)(()=>{let e=D.current;E.width>0&&E.height>0&&e&&(U.current||(U.current=(0,r.d)(e)),U.current.configure({gl:p,scene:R,events:m,shadows:f,linear:g,flat:b,legacy:x,orthographic:S,frameloop:A,dpr:T,performance:M,raycaster:G,camera:_,size:E,onPointerMissed:I,onCreated:e=>{var t;z.current=e,null==e.events.connect||e.events.connect(null!=(t=q())?t:w.current),C&&e.setEvents({compute:(e,t)=>{let r=e[C+"X"],a=e[C+"Y"];t.pointer.set(r/t.size.width*2-1,-(2*(a/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),null==B||B(e)}}).catch(j),"fulfilled"===U.current.ready.status?U.current.render((0,t.jsx)(v,{children:(0,t.jsx)(r.E,{set:j,children:(0,t.jsx)(a.Suspense,{fallback:(0,t.jsx)(r.B,{set:k}),children:null!=n?n:null})})})):"pending"===U.current.ready.status&&H(U.current.ready))}),a.useEffect(()=>{var e;let t=null==(e=z.current)?void 0:e.get(),r=q();t&&r&&t.events.connected!==r&&(null==t.events.connect||t.events.connect(r))}),a.useEffect(()=>{let e=D.current;return()=>{var t;e.isConnected||null==(t=U.current)||t.unmount()}},[]);let V=h?"none":"auto";return(0,t.jsxs)("div",{ref:w,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:V,...d},...y,children:[(0,t.jsx)("div",{ref:L,style:{width:"100%",height:"100%"},children:(0,t.jsx)("canvas",{ref:D,style:{display:"block"},children:o})}),W]})}function d(e){return(0,t.jsx)(c.FiberProvider,{children:(0,t.jsx)(u,{...e})})}e.i(89499);var p=e.i(90874),m=e.i(58567),h=e.i(70703),C=e.i(67561),f=e.i(83402),g=e.i(49721),b=e.i(68757),x=e.i(18638);e.i(85269);var S=e.i(22831);let A=({onClick:e,icon:r,isActive:a,activeClass:n,label:o})=>(0,t.jsxs)("button",{onClick:e,className:`p-2 rounded-xl tesla-hover transition-all duration-300 group relative ${a?"bg-hud-elevated shadow-soft":""}`,title:o,children:[(0,t.jsx)(g.FontAwesomeIcon,{icon:r,className:`text-xl transition-all duration-300 ${a?n+" scale-110":"text-hud-muted group-hover:text-hud-main"}`}),a&&(0,t.jsx)("span",{className:`absolute -bottom-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full ${n.replace("text-","bg-")} animate-soft-pulse`})]}),T=()=>{let{t:e}=(0,S.useTranslation)(),{theme:r,themeMode:a,setTheme:n,states:o,toggleState:i,toggleExclusiveMode:l,cycleOceanMode:s}=(0,C.useOcearoContext)(),c={black:{icon:b.faWater,color:"text-hud-muted",label:e("toolbar.oceanBlack")},water:{icon:b.faWater,color:"text-oBlue",label:e("toolbar.oceanWater")},chart:{icon:b.faMap,color:"text-oGreen",label:e("toolbar.oceanChart")},depth:{icon:b.faLayerGroup,color:"text-oBlue",label:e("toolbar.oceanDepth")},meteo:{icon:b.faCloudSunRain,color:"text-oYellow",label:e("toolbar.oceanMeteo")}},u={auto:{icon:b.faCircleHalfStroke,label:e("toolbar.themeAuto",{theme:e(`toolbar.theme_${r}`)})},day:{icon:b.faSun,label:e("toolbar.theme_day")},dark:{icon:b.faMoon,label:e("toolbar.theme_dark")},night:{icon:b.faEye,label:e("toolbar.theme_night")}},d=u[a]||u.dark,p=o.oceanMode||"black",m=c[p];return(0,t.jsxs)("div",{className:"flex items-center space-x-1 p-1.5 rounded-2xl",children:[(0,t.jsx)(A,{onClick:()=>l("autopilot"),icon:b.faShip,isActive:o.autopilot,activeClass:"text-oBlue",label:e("toolbar.autopilot")}),(0,t.jsx)(A,{onClick:()=>l("anchorWatch"),icon:b.faAnchor,isActive:o.anchorWatch,activeClass:"text-oYellow",label:e("toolbar.anchorWatch")}),(0,t.jsx)(A,{onClick:()=>l("parkingMode"),icon:b.faParking,isActive:o.parkingMode,activeClass:"text-oGreen",label:e("toolbar.parkingMode")}),(0,t.jsx)("div",{className:"h-6 w-[1px] bg-hud-border mx-0.5"}),(0,t.jsx)(A,{onClick:()=>{n(x.THEME_MODES[(x.THEME_MODES.indexOf(a)+1)%x.THEME_MODES.length])},icon:d.icon,isActive:"dark"!==a,activeClass:"text-hud-main",label:d.label}),(0,t.jsx)(A,{onClick:s,icon:m.icon,isActive:"black"!==p,activeClass:m.color,label:m.label}),o.autopilot&&"black"===p&&(0,t.jsx)(A,{onClick:()=>i("showPolar"),icon:b.faCompass,isActive:o.showPolar,activeClass:"text-oBlue",label:e("toolbar.polarView")}),o.autopilot&&(0,t.jsx)(A,{onClick:()=>i("showLaylines3D"),icon:b.faRulerCombined,isActive:o.showLaylines3D,activeClass:"text-oGreen",label:e("toolbar.laylines3D")}),(0,t.jsx)(A,{onClick:()=>i("ais"),icon:b.faSatellite,isActive:o.ais,activeClass:"text-oGreen",label:e("toolbar.aisRadar")})]})};var M=e.i(72466),G=e.i(85709);let _="batteries",R={FRESH_WATER:{id:"freshWater",labelKey:"tanks.freshWater",path:"tanks.freshWater.0.currentLevel",icon:b.faDroplet,color:"bg-oBlue"},FUEL:{id:"fuel",labelKey:"tanks.fuel",path:"tanks.fuel.0.currentLevel",icon:b.faGasPump,color:"bg-oYellow"},BLACK_WATER:{id:"blackWater",labelKey:"tanks.blackWater",path:"tanks.blackWater.0.currentLevel",icon:b.faToilet,color:"bg-hud-muted"}},F=({level:e,type:r})=>{let{t:a}=(0,S.useTranslation)(),n=Math.max(0,Math.min(100,e)),{labelKey:o,icon:i,color:l}=R[r],s=n<=20,c=l.replace("bg-","text-");return(0,t.jsxs)("div",{className:"flex items-center space-x-2",title:a(o),children:[(0,t.jsx)(g.FontAwesomeIcon,{icon:i,className:`text-xs ${c} opacity-60`}),(0,t.jsx)("div",{className:"relative w-14 h-[8px] rounded-full bg-hud-elevated/60 overflow-hidden",children:(0,t.jsx)("div",{className:`absolute left-0 top-0 h-full rounded-full ${s?"bg-oRed":l} transition-all duration-1000 ease-out`,style:{width:`${n}%`}})}),(0,t.jsxs)("span",{className:`text-caption font-semibold tabular-nums min-w-[28px] text-right ${s?"text-oRed animate-soft-pulse":"text-hud-main"}`,children:[n,"%"]})]})},B=({batteryLevel:e,batteryNumber:r,voltage:a})=>{let{t:n}=(0,S.useTranslation)(),o=Math.max(0,Math.min(100,e)),i=(0,M.isBatteryCharging)(a),l=o<=M.BATTERY_CONFIG.DANGER_THRESHOLD;return(0,t.jsxs)("div",{className:"flex items-center space-x-2",title:`${o}% — ${a?.toFixed(1)}V${i?" "+n("common.charging"):""}`,children:[(0,t.jsx)(g.FontAwesomeIcon,{icon:b.faBolt,className:`text-xs ${i?"text-oYellow animate-pulse":"text-oGreen opacity-60"}`}),(0,t.jsx)("div",{className:"relative w-14 h-[8px] rounded-full bg-hud-elevated/60 overflow-hidden",children:(0,t.jsx)("div",{className:`absolute left-0 top-0 h-full rounded-full ${l?"bg-oRed":i?"bg-oGreen":"bg-oBlue"} transition-all duration-1000 ease-out ${i?"shadow-[0_0_6px_var(--color-oGreen)]":""}`,style:{width:`${o}%`}})})]})},y=()=>{let[e,r]=(0,a.useState)(_),n=(0,a.useMemo)(()=>["electrical.batteries.1.capacity.stateOfCharge","electrical.batteries.1.voltage"],[]),o=(0,a.useMemo)(()=>["tanks.freshWater.0.currentLevel","tanks.fuel.0.currentLevel","tanks.blackWater.0.currentLevel"],[]),i=(0,G.useSignalKPaths)([...n,...o]),l=(0,a.useMemo)(()=>{let e=i["electrical.batteries.1.capacity.stateOfCharge"],t=i["electrical.batteries.1.voltage"];return[{level:null==e?(0,M.estimateStateOfCharge)(t):e,number:1,voltage:t}].filter(e=>null!=e.level&&!Number.isNaN(e.level))},[i]),s=(0,a.useMemo)(()=>{let e=i["tanks.freshWater.0.currentLevel"],t=i["tanks.fuel.0.currentLevel"],r=i["tanks.blackWater.0.currentLevel"];return{FRESH_WATER:null!=e?100*e:0,FUEL:null!=t?100*t:0,BLACK_WATER:null!=r?100*r:0}},[i]),c=()=>{r(e=>e===_?"tanks":_)},u=e===_;return(0,t.jsx)("div",{className:"p-1.5 rounded-2xl transition-all duration-300 cursor-pointer select-none",onClick:c,role:"button",tabIndex:0,"aria-label":`Toggle between ${u?"tanks":"batteries"} display`,onKeyDown:e=>"Enter"===e.key&&c(),children:(0,t.jsx)("div",{className:"flex flex-col space-y-1",children:u?(0,t.jsx)(t.Fragment,{children:l.map(e=>(0,t.jsx)(B,{batteryLevel:e.level,batteryNumber:e.number,voltage:e.voltage},e.number))}):(0,t.jsx)(t.Fragment,{children:Object.keys(R).map(e=>(0,t.jsx)(F,{type:e,level:s[e]},e))})})})};var v=e.i(39271);let L=(0,h.default)(()=>e.A(36258),{loadableGenerated:{modules:[59465]},ssr:!1}),E=(0,h.default)(()=>e.A(11220),{loadableGenerated:{modules:[27404]},ssr:!1}),D=(0,h.default)(()=>e.A(97820),{loadableGenerated:{modules:[69675]},ssr:!1}),w=(0,h.default)(()=>e.A(29882),{loadableGenerated:{modules:[56665]}}),N=(0,h.default)(()=>e.A(93170),{loadableGenerated:{modules:[50226]}}),I=(0,h.default)(()=>e.A(93889),{loadableGenerated:{modules:[58166]}}),P=(0,h.default)(()=>e.A(64390),{loadableGenerated:{modules:[39554]}}),k=(0,h.default)(()=>e.A(48217),{loadableGenerated:{modules:[14774]}}),O=(0,h.default)(()=>e.A(30150),{loadableGenerated:{modules:[84237]}}),j=(0,h.default)(()=>e.A(34882),{loadableGenerated:{modules:[77021]}}),U=(0,h.default)(()=>e.A(59499),{loadableGenerated:{modules:[85003]}}),W=(0,h.default)(()=>e.A(43322),{loadableGenerated:{modules:[56101]}}),H=(0,h.default)(()=>e.A(32673),{loadableGenerated:{modules:[36540]}}),z=(0,h.default)(()=>e.A(66984),{loadableGenerated:{modules:[79261]}}),q=(0,h.default)(()=>e.A(32598),{loadableGenerated:{modules:[79224]}}),V=(0,h.default)(()=>e.A(73321),{loadableGenerated:{modules:[78938]}}),K=(0,h.default)(()=>e.A(82041),{loadableGenerated:{modules:[41994]}}),$=(0,h.default)(()=>e.A(71762),{loadableGenerated:{modules:[91999]}}),X=(0,h.default)(()=>e.A(93540),{loadableGenerated:{modules:[84809]}}),Q=(0,h.default)(()=>e.A(11657),{loadableGenerated:{modules:[75058]}}),Z=()=>{let{gl:e,scene:t}=(0,p.useThree)();return(0,a.useEffect)(()=>{if(window&&e){window.__OCEARO_RENDERER=e;let t=setInterval(()=>{e&&e.info&&(window.__OCEARO_RENDER_INFO=e.info)},1e3);return()=>{delete window.__OCEARO_RENDERER,delete window.__OCEARO_RENDER_INFO,clearInterval(t)}}},[e,t]),null},Y=({fps:e})=>{let t=(0,p.useThree)(e=>e.invalidate);return(0,a.useEffect)(()=>{let r=setInterval(()=>t(),1e3/e);return()=>clearInterval(r)},[e,t]),null};e.s(["default",0,({active:e=!0,fullscreen:r=!1})=>{let[n]=(0,a.useState)(m.getRenderProfile),i=n.fps<60,{states:l,theme:s}=(0,C.useOcearoContext)(),c=(0,v.useReplay)().active,[u,p]=(0,a.useState)(null),[h,g]=(0,a.useState)(!0),[b]=(0,a.useState)(()=>f.default.get("hudStyle")||"minimal"),x="classic"===b,S=r&&!x;(0,a.useEffect)(()=>{g(!1!==f.default.getAll().showAttitudeIndicator)},[]);let A="day"===s&&("chart"===l.oceanMode||"depth"===l.oceanMode||"meteo"===l.oceanMode);return(0,t.jsxs)("div",{className:"w-full h-full relative overflow-hidden","data-scene":A?"light":void 0,children:[(0,t.jsxs)("div",{className:"absolute top-2 left-2 right-2 z-20 flex items-center justify-between",children:[(0,t.jsx)(T,{}),(0,t.jsxs)("div",{className:"hidden sm:flex items-center space-x-4 min-w-0 shrink-0",children:[(0,t.jsx)(X,{compact:!r}),(0,t.jsx)(y,{})]})]}),(0,t.jsxs)("div",{className:"absolute top-14 left-2 z-30",children:[!l.anchorWatch&&(0,t.jsx)(w,{}),l.anchorWatch&&(0,t.jsx)(P,{}),!x&&(0,t.jsx)(U,{omitDepth:!0,maxItems:S?4:3}),!l.parkingMode&&(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(Q,{})})]}),x&&h&&(0,t.jsx)("div",{className:"absolute top-14 right-2 z-20",children:(0,t.jsx)(O,{})}),u&&(0,t.jsx)("div",{className:"absolute top-28 left-2 z-30",children:(0,t.jsx)(j,{content:u,onClose:()=>p(null)})}),S&&(0,t.jsx)("div",{className:"absolute left-3 bottom-44 sm:bottom-3 z-20",children:(0,t.jsx)(K,{})}),S&&(0,t.jsx)("div",{className:"absolute right-3 bottom-3 z-20",children:(0,t.jsx)($,{})}),!c&&(0,t.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 top-14 z-30 max-w-[calc(100%-12rem)]",children:(0,t.jsx)(V,{})}),"meteo"===l.oceanMode&&(0,t.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 top-14 z-30 max-w-[calc(100%-12rem)]",children:(0,t.jsx)(q,{})}),(0,t.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 bottom-3 z-30 max-w-[calc(100%-1rem)]",children:(0,t.jsx)(z,{})}),l.parkingMode&&(0,t.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 bottom-3 z-20 max-w-[calc(100%-9rem)]",children:(0,t.jsx)(H,{})}),!l.anchorWatch&&!l.parkingMode&&!c&&(0,t.jsx)("div",{className:`absolute left-1/2 -translate-x-1/2 z-20 max-w-[calc(100%-9rem)] ${x?"bottom-24":"bottom-3"}`,children:(0,t.jsx)(W,{})}),!S&&(0,t.jsx)("div",{className:"absolute left-2 bottom-2 z-20 flex flex-col items-center",children:(0,t.jsx)(k,{})}),!S&&(0,t.jsx)("div",{className:"absolute right-2 bottom-2 z-20 flex flex-col items-center",children:(0,t.jsx)(I,{})}),x&&!l.anchorWatch&&(0,t.jsx)("div",{className:"absolute bottom-2 left-1/2 transform -translate-x-1/2 z-10",children:(0,t.jsx)(N,{})}),(0,t.jsx)("div",{className:"absolute left-1/2 transform -translate-x-1/2 w-full h-full",children:(0,t.jsxs)(d,{style:{width:"100%",height:"100%"},shadows:!1,frameloop:e?i?"demand":"always":"never",dpr:n.dpr,performance:{min:.5},gl:{antialias:n.antialias,powerPreference:"low-power",physicallyCorrectLights:!1,toneMapping:o.NoToneMapping,toneMappingExposure:1,shadowMap:{enabled:!1},precision:"lowp"},children:[(0,t.jsx)(Z,{}),e&&i&&(0,t.jsx)(Y,{fps:n.fps}),l.parkingMode?(0,t.jsx)(E,{onUpdateInfoPanel:p}):l.anchorWatch?(0,t.jsx)(D,{onUpdateInfoPanel:p}):(0,t.jsx)(L,{onUpdateInfoPanel:p})]})})]})}],47141)},23595,function(e){e.n(e.i(47141))}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50124,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(49721),r=e.i(68757),l=e.i(46991),i=e.i(85709);e.i(85269);var o=e.i(22831);let s={waterTemp:{key:"waterTemp",path:"environment.water.temperature",icon:r.faWater,labelKey:"temperature.waterTemperature",format:e=>`${e}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit},airTemp:{key:"airTemp",path:"environment.outside.temperature",icon:r.faThermometerHalf,labelKey:"temperature.airTemperature",format:e=>`${e}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit},engineRoomTemp:{key:"engineRoomTemp",path:"environment.inside.engineRoom.temperature",icon:r.faFire,labelKey:"temperature.engineRoomTemperature",format:e=>`${e}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit},lazaretteTemp:{key:"lazaretteTemp",path:"environment.inside.lazarette.temperature",icon:r.faThermometerHalf,labelKey:"temperature.lazaretteTemperature",format:e=>`${e}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit},fridgeTemp:{key:"fridgeTemp",path:"environment.inside.fridge.temperature",icon:r.faSnowflake,labelKey:"temperature.fridgeTemperature",format:e=>`${e}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit}},c=({mode:e,value:a,icon:r})=>{let{t:l}=(0,o.useTranslation)();if(!a&&0!==a)return null;let i=l(s[e].labelKey);return(0,t.jsxs)("div",{className:"flex items-center flex-shrink-0 space-x-2 sm:space-x-3 px-2 sm:px-3 py-1.5 transition-all duration-300 text-hud-main",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:r,className:"text-base sm:text-lg opacity-80"}),(0,t.jsxs)("div",{className:"flex flex-col flex-shrink-0",children:[(0,t.jsx)("span",{className:"ocearo-large-label text-caption font-semibold uppercase tracking-widest text-hud-muted leading-none mb-1",children:i.split(" ")[0]}),(0,t.jsx)("span",{className:"text-label sm:text-value font-bold tracking-tight leading-none whitespace-nowrap",children:s[e].format(a)})]})]})},u=()=>{let{t:e}=(0,o.useTranslation)(),[n,r]=(0,a.useState)([]),[l,u]=(0,a.useState)(null),m=(0,a.useMemo)(()=>Object.values(s).map(e=>e.path),[]),d=(0,i.useSignalKPaths)(m),p=(0,a.useMemo)(()=>Object.entries(s).reduce((e,[t,a])=>{let n=d[a.path];return e[t]=null!==n?a.transform(n):null,e},{}),[d]);(0,a.useEffect)(()=>{let e=Object.entries(p).filter(([e,t])=>null!==t).map(([e])=>e);r(e),e.length>0&&!e.includes(l)&&u(e[0])},[p,l]);let f=(0,a.useCallback)(()=>{if(n.length<=1)return;let e=(n.indexOf(l)+1)%n.length;u(n[e])},[n,l]);return 0===n.length?(0,t.jsx)("div",{className:"px-3 py-1.5 text-hud-muted",children:(0,t.jsx)("span",{className:"text-label font-semibold uppercase tracking-widest",children:"N/A"})}):(0,t.jsx)("div",{className:"cursor-pointer flex items-center group",onClick:f,title:`Toggle Temperature Display (${n.length} sensors available)`,role:"button",tabIndex:0,onKeyPress:e=>"Enter"===e.key&&f(),"aria-label":e(l?s[l].labelKey:"common.na"),children:l&&(0,t.jsx)(c,{mode:l,value:p[l],icon:s[l].icon})})};e.i(67561);let m={pressure:{key:"pressure",path:"environment.outside.pressure",icon:r.faCloud,labelKey:"environmental.pressure",format:e=>`${e} hPa`,transform:l.convertPressure},humidity:{key:"humidity",path:"environment.inside.relativeHumidity",icon:r.faDroplet,labelKey:"environmental.humidity",format:e=>`${e.toFixed(1)}%`,transform:e=>100*e},voc:{key:"voc",path:"environment.inside.voc",icon:r.faWind,labelKey:"environmental.voc",format:e=>`${Math.round(e)} kΩ`,transform:e=>e/1e3},co2:{key:"co2",path:"environment.inside.co2",icon:r.faLungs,labelKey:"environmental.co2",format:e=>`${Math.round(e)} ppm`,transform:e=>e},pm25:{key:"pm25",path:"environment.inside.pm25",icon:r.faSmog,labelKey:"environmental.pm25",format:e=>`${Math.round(e)} \xb5g/m\xb3`,transform:e=>e},dewPoint:{key:"dewPoint",path:"environment.inside.dewPoint",icon:r.faTemperatureLow,labelKey:"environmental.dewPoint",format:e=>`${e.toFixed(1)}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit},outsideHumidity:{key:"outsideHumidity",path:"environment.outside.relativeHumidity",icon:r.faDroplet,labelKey:"environmental.outsideHumidity",format:e=>`${Math.round(e)}%`,transform:e=>100*e},uvIndex:{key:"uvIndex",path:"environment.outside.uvIndex",icon:r.faSun,labelKey:"environmental.uvIndex",format:e=>e.toFixed(1),transform:e=>e},visibility:{key:"visibility",path:"environment.outside.visibility",icon:r.faEye,labelKey:"environmental.visibility",format:e=>`${e>=10?Math.round(e):e.toFixed(1)} NM`,transform:e=>e/1852}},d=({mode:e,value:a,icon:r})=>{let{t:l}=(0,o.useTranslation)();return a||0===a?(0,t.jsxs)("div",{className:"flex items-center flex-shrink-0 space-x-2 sm:space-x-3 px-2 sm:px-3 py-1.5 transition-all duration-300 text-hud-main",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:r,className:"text-base sm:text-lg opacity-80"}),(0,t.jsxs)("div",{className:"flex flex-col flex-shrink-0",children:[(0,t.jsx)("span",{className:"ocearo-large-label text-caption font-semibold uppercase tracking-widest text-hud-muted leading-none mb-1",children:l(m[e].labelKey)}),(0,t.jsx)("span",{className:"text-label sm:text-value font-bold tracking-tight leading-none whitespace-nowrap",children:m[e].format(a)})]})]}):null},p=()=>{let[e,n]=(0,a.useState)([]),[r,l]=(0,a.useState)(null),o=(0,a.useMemo)(()=>Object.values(m).map(e=>e.path),[]),s=(0,i.useSignalKPaths)(o),c=(0,a.useMemo)(()=>Object.entries(m).reduce((e,[t,a])=>{let n=s[a.path];return e[t]=null!=n?a.transform(n):null,e},{}),[s]);(0,a.useEffect)(()=>{let e=Object.entries(c).filter(([e,t])=>null!==t).map(([e])=>e);n(e),e.length>0&&!e.includes(r)&&l(e[0])},[c,r]);let u=(0,a.useCallback)(()=>{if(e.length<=1)return;let t=(e.indexOf(r)+1)%e.length;l(e[t])},[e,r]);return 0===e.length?(0,t.jsx)("div",{className:"px-3 py-1.5 text-hud-muted",children:(0,t.jsx)("span",{className:"text-label font-semibold uppercase tracking-widest",children:"N/A"})}):(0,t.jsx)("div",{className:"cursor-pointer flex items-center group",onClick:u,title:`Toggle Environmental Display (${e.length} modes available)`,role:"button",tabIndex:0,onKeyPress:e=>"Enter"===e.key&&u(),children:r&&(0,t.jsx)(d,{mode:r,value:c[r],icon:m[r].icon})})};var f=e.i(74080),h=e.i(66799),x=e.i(71029);let b=()=>{let{t:e}=(0,o.useTranslation)(),l=(0,x.useMobSupport)(),i=(0,x.useActiveMobs)(),[s,c]=(0,a.useState)(!1),[u,m]=(0,a.useState)(!1),[d,p]=(0,a.useState)(null),b=(0,a.useRef)(null),g=(0,a.useRef)(null);if((0,a.useEffect)(()=>()=>{clearTimeout(b.current),clearTimeout(g.current)},[]),!l.raise)return null;let v=(e,t=!1)=>{clearTimeout(g.current),p({text:e,isError:t}),g.current=setTimeout(()=>p(null),4e3)},y=async()=>{m(!0);try{await h.default.raiseMob(),p(null)}catch(t){v(e("mob.raiseFailed",{error:t?.message||t}),!0)}finally{m(!1)}},k=()=>{u||b.current||(c(!0),b.current=setTimeout(()=>{b.current=null,c(!1),y()},1e3))},j=()=>{b.current&&(clearTimeout(b.current),b.current=null,c(!1),v(e("mob.holdHint")))},T=i.length>0;return(0,t.jsxs)("div",{className:"flex-shrink-0",children:[(0,t.jsxs)("button",{type:"button",onPointerDown:k,onPointerUp:j,onPointerLeave:j,onPointerCancel:j,onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||e.repeat||(e.preventDefault(),k())},onKeyUp:e=>{("Enter"===e.key||" "===e.key)&&j()},onContextMenu:e=>e.preventDefault(),disabled:u,className:"text-oRed flex flex-col items-center justify-center p-1 sm:p-2 rounded-xl tesla-hover transition-all duration-300 group select-none touch-none disabled:opacity-60","aria-label":e("mob.buttonLabel"),title:e("mob.holdHint"),children:[(0,t.jsxs)("div",{className:`relative w-7 h-7 sm:w-10 sm:h-10 flex items-center justify-center rounded-full overflow-hidden border-2 border-oRed ${T?"animate-pulse bg-oRed/30":""}`,children:[(0,t.jsx)("span",{className:`absolute inset-0 rounded-full bg-oRed origin-center ${s?"scale-100 duration-1000 ease-linear":"scale-0 duration-150"} transition-transform`,"aria-hidden":"true"}),(0,t.jsx)(n.FontAwesomeIcon,{icon:r.faLifeRing,className:`relative text-base sm:text-xl ${s?"text-white":""}`})]}),(0,t.jsx)("span",{className:"ocearo-large-label text-caption font-semibold uppercase tracking-[0.2em] mt-1",children:e("mob.short")})]}),d&&(0,f.createPortal)((0,t.jsx)("div",{role:"status",className:`fixed bottom-20 left-4 max-w-[20rem] px-3 py-2 rounded-lg border text-label z-50 shadow-lg ${d.isError?"bg-oRed text-white border-oRed":"bg-hud-elevated text-hud-main border-hud"}`,children:d.text}),document.body)]})};var g=e.i(83402),v=e.i(48390);let y=["off","safety","all"],k={off:{icon:r.faVolumeHigh,badgeColor:null},safety:{icon:r.faShieldHalved,badgeColor:"bg-oYellow"},all:{icon:r.faVolumeXmark,badgeColor:"bg-oRed"}},j=({icon:e,onClick:a,label:r,textColor:l,badgeColor:i})=>(0,t.jsxs)("button",{onClick:a,className:`${l} flex-shrink-0 flex flex-col items-center justify-center p-1 sm:p-2 rounded-xl tesla-hover transition-all duration-300 group relative`,"aria-label":r,children:[(0,t.jsxs)("div",{className:"w-7 h-7 sm:w-10 sm:h-10 flex items-center justify-center rounded-lg group-hover:bg-hud-elevated transition-colors relative",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:e,className:"text-base sm:text-xl group-hover:scale-110 transition-transform"}),i&&(0,t.jsx)("span",{className:`absolute top-0 right-0 w-2.5 h-2.5 rounded-full border-2 border-leftPaneBg ${i} animate-pulse`})]}),(0,t.jsx)("span",{className:"ocearo-large-label text-caption font-semibold uppercase tracking-[0.2em] mt-1 opacity-60 group-hover:opacity-100 transition-opacity",children:r})]});e.s(["default",0,({setRightView:e,toggleSettings:n,toggleAppMenu:l})=>{let{t:i}=(0,o.useTranslation)(),[s,c]=(0,a.useState)("off");(0,a.useEffect)(()=>{if(!(0,v.isOcearoCoreEnabled)())return;let e=!1,t=async()=>{try{let t=await (0,v.getOcearoCoreDnd)();!e&&t?.mode&&c(t.mode)}catch(e){}};t();let a=setInterval(t,3e4);return()=>{e=!0,clearInterval(a)}},[]);let m=async()=>{let e=y[(y.indexOf(s)+1)%y.length];c(e);try{await (0,v.setOcearoCoreDnd)(e)}catch(e){console.warn("Failed to set DND mode:",e),c(s)}},d=g.default.getAll(),f=d.debugMode?"bg-oYellow":d.signalKUrlSet?null:"bg-oBlue",h=[{section:"left",items:[{icon:r.faShip,onClick:()=>n(),label:i("nav.system"),badgeColor:f},...(0,v.isOcearoCoreEnabled)()?[{icon:k[s].icon,onClick:m,label:i(`nav.dnd.${s}`),badgeColor:k[s].badgeColor}]:[]]},{section:"center",items:[{icon:r.faMapMarkedAlt,onClick:()=>e("navigation"),label:i("nav.nav")},{icon:r.faCloudSun,onClick:()=>e("weather"),label:i("nav.weather")},{icon:r.faTh,onClick:l,label:i("nav.apps")},{icon:r.faTachometerAlt,onClick:()=>e("dashboard"),label:i("nav.dashboard")},{icon:r.faHandsHelping,onClick:()=>e("manual"),label:i("nav.help")}]}],x=e=>{let a=h.find(t=>t.section===e);return a?a.items.map((a,n)=>(0,t.jsx)(j,{icon:a.icon,onClick:a.onClick,label:a.label,textColor:"text-hud-main",badgeColor:a.badgeColor},`${e}-${n}`)):null};return(0,t.jsxs)("div",{className:"flex items-center justify-between w-full h-full bg-leftPaneBg px-1 sm:px-6 overflow-x-auto overflow-y-hidden scrollbar-hide",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-0.5 sm:space-x-6 flex-shrink-0 sm:flex-1 min-w-0",children:[x("left"),(0,t.jsx)(b,{}),(0,t.jsx)("div",{className:"hidden sm:block h-8 w-[1px] bg-hud-muted opacity-20 mx-1 sm:mx-2"}),(0,t.jsx)(u,{})]}),(0,t.jsx)("div",{className:"flex flex-shrink-0 items-center justify-center space-x-0.5 sm:space-x-8 px-1 sm:px-0",children:x("center")}),(0,t.jsx)("div",{className:"flex items-center justify-end space-x-0.5 sm:space-x-6 flex-shrink-0 sm:flex-1 min-w-0",children:(0,t.jsx)(p,{})})]})}],50124)},61891,function(e){e.n(e.i(50124))},71029,e=>{"use strict";var t=e.i(71645),a=e.i(85709),n=e.i(66799),r=e.i(46991);let l="notifications.mob",i=e=>e*Math.PI/180;e.s(["distanceAndBearing",0,(e,t)=>{if(!Number.isFinite(e?.latitude)||!Number.isFinite(e?.longitude)||!Number.isFinite(t?.latitude)||!Number.isFinite(t?.longitude))return null;let a=i(e.latitude),n=i(t.latitude),l=i(t.longitude-e.longitude),o=Math.sin((n-a)/2)**2+Math.cos(a)*Math.cos(n)*Math.sin(l/2)**2;return{distance:2*r.EARTH_RADIUS_METERS*Math.asin(Math.min(1,Math.sqrt(o))),bearing:(180*Math.atan2(Math.sin(l)*Math.cos(n),Math.cos(a)*Math.sin(n)-Math.sin(a)*Math.cos(n)*Math.cos(l))/Math.PI+360)%360}},"useActiveMobs",0,()=>{let e=(0,a.useSignalKPrefix)(l);return(0,t.useMemo)(()=>Object.entries(e).filter(([e,t])=>(e===l||e.startsWith(`${l}.`))&&t?.state&&"normal"!==t.state).map(([e,t])=>({...t,path:e})).sort((e,t)=>String(e.createdAt??"").localeCompare(String(t.createdAt??""))),[e])},"useMobSupport",0,()=>{let e=(()=>{let[e,a]=(0,t.useState)(null);return(0,t.useEffect)(()=>{let e=!1,t=null,r=async()=>{let l=await n.default.getFeatures();e||(l?a(l):t=setTimeout(r,3e4))};return r(),()=>{e=!0,clearTimeout(t)}},[]),e})();return(0,t.useMemo)(()=>({raise:!!e?.apis.includes("notifications"),navigate:!!e?.apis.includes("course")}),[e])}],71029)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50124,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(49721),r=e.i(68757),l=e.i(46991),i=e.i(85709);e.i(85269);var s=e.i(22831);let o={waterTemp:{key:"waterTemp",path:"environment.water.temperature",icon:r.faWater,labelKey:"temperature.waterTemperature",format:e=>`${e}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit},airTemp:{key:"airTemp",path:"environment.outside.temperature",icon:r.faThermometerHalf,labelKey:"temperature.airTemperature",format:e=>`${e}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit},engineRoomTemp:{key:"engineRoomTemp",path:"environment.inside.engineRoom.temperature",icon:r.faFire,labelKey:"temperature.engineRoomTemperature",format:e=>`${e}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit},lazaretteTemp:{key:"lazaretteTemp",path:"environment.inside.lazarette.temperature",icon:r.faThermometerHalf,labelKey:"temperature.lazaretteTemperature",format:e=>`${e}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit},fridgeTemp:{key:"fridgeTemp",path:"environment.inside.fridge.temperature",icon:r.faSnowflake,labelKey:"temperature.fridgeTemperature",format:e=>`${e}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit}},c=({mode:e,value:a,icon:r})=>{let{t:l}=(0,s.useTranslation)();if(!a&&0!==a)return null;let i=l(o[e].labelKey);return(0,t.jsxs)("div",{className:"flex items-center flex-shrink-0 space-x-2 sm:space-x-3 px-2 sm:px-3 py-1.5 transition-all duration-300 text-hud-main",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:r,className:"text-base sm:text-lg opacity-80"}),(0,t.jsxs)("div",{className:"flex flex-col flex-shrink-0",children:[(0,t.jsx)("span",{className:"ocearo-large-label text-caption font-semibold uppercase tracking-widest text-hud-muted leading-none mb-1",children:i.split(" ")[0]}),(0,t.jsx)("span",{className:"text-label sm:text-value font-bold tracking-tight leading-none whitespace-nowrap",children:o[e].format(a)})]})]})},u=()=>{let{t:e}=(0,s.useTranslation)(),[n,r]=(0,a.useState)([]),[l,u]=(0,a.useState)(null),m=(0,a.useMemo)(()=>Object.values(o).map(e=>e.path),[]),d=(0,i.useSignalKPaths)(m),p=(0,a.useMemo)(()=>Object.entries(o).reduce((e,[t,a])=>{let n=d[a.path];return e[t]=null!==n?a.transform(n):null,e},{}),[d]);(0,a.useEffect)(()=>{let e=Object.entries(p).filter(([e,t])=>null!==t).map(([e])=>e);r(e),e.length>0&&!e.includes(l)&&u(e[0])},[p,l]);let f=(0,a.useCallback)(()=>{if(n.length<=1)return;let e=(n.indexOf(l)+1)%n.length;u(n[e])},[n,l]);return 0===n.length?(0,t.jsx)("div",{className:"px-3 py-1.5 text-hud-muted",children:(0,t.jsx)("span",{className:"text-label font-semibold uppercase tracking-widest",children:"N/A"})}):(0,t.jsx)("div",{className:"cursor-pointer flex items-center group",onClick:f,title:`Toggle Temperature Display (${n.length} sensors available)`,role:"button",tabIndex:0,onKeyPress:e=>"Enter"===e.key&&f(),"aria-label":e(l?o[l].labelKey:"common.na"),children:l&&(0,t.jsx)(c,{mode:l,value:p[l],icon:o[l].icon})})};e.i(67561);let m={pressure:{key:"pressure",path:"environment.outside.pressure",icon:r.faCloud,labelKey:"environmental.pressure",format:e=>`${e} hPa`,transform:l.convertPressure},humidity:{key:"humidity",path:"environment.inside.relativeHumidity",icon:r.faDroplet,labelKey:"environmental.humidity",format:e=>`${e.toFixed(1)}%`,transform:e=>100*e},voc:{key:"voc",path:"environment.inside.voc",icon:r.faWind,labelKey:"environmental.voc",format:e=>`${Math.round(e)} kΩ`,transform:e=>e/1e3},co2:{key:"co2",path:"environment.inside.co2",icon:r.faLungs,labelKey:"environmental.co2",format:e=>`${Math.round(e)} ppm`,transform:e=>e},pm25:{key:"pm25",path:"environment.inside.pm25",icon:r.faSmog,labelKey:"environmental.pm25",format:e=>`${Math.round(e)} \xb5g/m\xb3`,transform:e=>e},dewPoint:{key:"dewPoint",path:"environment.inside.dewPoint",icon:r.faTemperatureLow,labelKey:"environmental.dewPoint",format:e=>`${e.toFixed(1)}${(0,l.getTemperatureUnitLabel)()}`,transform:l.convertTemperatureUnit},outsideHumidity:{key:"outsideHumidity",path:"environment.outside.relativeHumidity",icon:r.faDroplet,labelKey:"environmental.outsideHumidity",format:e=>`${Math.round(e)}%`,transform:e=>100*e},uvIndex:{key:"uvIndex",path:"environment.outside.uvIndex",icon:r.faSun,labelKey:"environmental.uvIndex",format:e=>e.toFixed(1),transform:e=>e},visibility:{key:"visibility",path:"environment.outside.visibility",icon:r.faEye,labelKey:"environmental.visibility",format:e=>`${e>=10?Math.round(e):e.toFixed(1)} NM`,transform:e=>e/1852}},d=({mode:e,value:a,icon:r})=>{let{t:l}=(0,s.useTranslation)();return a||0===a?(0,t.jsxs)("div",{className:"flex items-center flex-shrink-0 space-x-2 sm:space-x-3 px-2 sm:px-3 py-1.5 transition-all duration-300 text-hud-main",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:r,className:"text-base sm:text-lg opacity-80"}),(0,t.jsxs)("div",{className:"flex flex-col flex-shrink-0",children:[(0,t.jsx)("span",{className:"ocearo-large-label text-caption font-semibold uppercase tracking-widest text-hud-muted leading-none mb-1",children:l(m[e].labelKey)}),(0,t.jsx)("span",{className:"text-label sm:text-value font-bold tracking-tight leading-none whitespace-nowrap",children:m[e].format(a)})]})]}):null},p=()=>{let[e,n]=(0,a.useState)([]),[r,l]=(0,a.useState)(null),s=(0,a.useMemo)(()=>Object.values(m).map(e=>e.path),[]),o=(0,i.useSignalKPaths)(s),c=(0,a.useMemo)(()=>Object.entries(m).reduce((e,[t,a])=>{let n=o[a.path];return e[t]=null!=n?a.transform(n):null,e},{}),[o]);(0,a.useEffect)(()=>{let e=Object.entries(c).filter(([e,t])=>null!==t).map(([e])=>e);n(e),e.length>0&&!e.includes(r)&&l(e[0])},[c,r]);let u=(0,a.useCallback)(()=>{if(e.length<=1)return;let t=(e.indexOf(r)+1)%e.length;l(e[t])},[e,r]);return 0===e.length?(0,t.jsx)("div",{className:"px-3 py-1.5 text-hud-muted",children:(0,t.jsx)("span",{className:"text-label font-semibold uppercase tracking-widest",children:"N/A"})}):(0,t.jsx)("div",{className:"cursor-pointer flex items-center group",onClick:u,title:`Toggle Environmental Display (${e.length} modes available)`,role:"button",tabIndex:0,onKeyPress:e=>"Enter"===e.key&&u(),children:r&&(0,t.jsx)(d,{mode:r,value:c[r],icon:m[r].icon})})};var f=e.i(74080),h=e.i(66799),x=e.i(71029);let b=()=>{let{t:e}=(0,s.useTranslation)(),l=(0,x.useMobSupport)(),i=(0,x.useActiveMobs)(),[o,c]=(0,a.useState)(!1),[u,m]=(0,a.useState)(!1),[d,p]=(0,a.useState)(null),b=(0,a.useRef)(null),g=(0,a.useRef)(null);if((0,a.useEffect)(()=>()=>{clearTimeout(b.current),clearTimeout(g.current)},[]),!l.raise)return null;let v=(e,t=!1)=>{clearTimeout(g.current),p({text:e,isError:t}),g.current=setTimeout(()=>p(null),4e3)},y=async()=>{m(!0);try{await h.default.raiseMob(),p(null)}catch(t){v(e("mob.raiseFailed",{error:t?.message||t}),!0)}finally{m(!1)}},k=()=>{u||b.current||(c(!0),b.current=setTimeout(()=>{b.current=null,c(!1),y()},1e3))},j=()=>{b.current&&(clearTimeout(b.current),b.current=null,c(!1),v(e("mob.holdHint")))},T=i.length>0;return(0,t.jsxs)("div",{className:"flex-shrink-0",children:[(0,t.jsxs)("button",{type:"button",onPointerDown:k,onPointerUp:j,onPointerLeave:j,onPointerCancel:j,onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||e.repeat||(e.preventDefault(),k())},onKeyUp:e=>{("Enter"===e.key||" "===e.key)&&j()},onContextMenu:e=>e.preventDefault(),disabled:u,className:"text-oRed flex flex-col items-center justify-center p-1 sm:p-2 rounded-xl tesla-hover transition-all duration-300 group select-none touch-none disabled:opacity-60","aria-label":e("mob.buttonLabel"),title:e("mob.holdHint"),children:[(0,t.jsxs)("div",{className:`relative w-7 h-7 sm:w-10 sm:h-10 flex items-center justify-center rounded-full overflow-hidden border-2 border-oRed ${T?"animate-pulse bg-oRed/30":""}`,children:[(0,t.jsx)("span",{className:`absolute inset-0 rounded-full bg-oRed origin-center ${o?"scale-100 duration-1000 ease-linear":"scale-0 duration-150"} transition-transform`,"aria-hidden":"true"}),(0,t.jsx)(n.FontAwesomeIcon,{icon:r.faLifeRing,className:`relative text-base sm:text-xl ${o?"text-white":""}`})]}),(0,t.jsx)("span",{className:"ocearo-large-label text-caption font-semibold uppercase tracking-[0.2em] mt-1",children:e("mob.short")})]}),d&&(0,f.createPortal)((0,t.jsx)("div",{role:"status",className:`fixed bottom-20 left-4 max-w-[20rem] px-3 py-2 rounded-lg border text-label z-50 shadow-lg ${d.isError?"bg-oRed text-white border-oRed":"bg-hud-elevated text-hud-main border-hud"}`,children:d.text}),document.body)]})};var g=e.i(83402),v=e.i(48390);let y=["off","safety","all"],k={off:{icon:r.faVolumeHigh,badgeColor:null},safety:{icon:r.faShieldHalved,badgeColor:"bg-oYellow"},all:{icon:r.faVolumeXmark,badgeColor:"bg-oRed"}},j=({icon:e,onClick:a,label:r,textColor:l,badgeColor:i})=>(0,t.jsxs)("button",{onClick:a,className:`${l} flex-shrink-0 flex flex-col items-center justify-center p-1 sm:p-2 rounded-xl tesla-hover transition-all duration-300 group relative`,"aria-label":r,children:[(0,t.jsxs)("div",{className:"w-7 h-7 sm:w-10 sm:h-10 flex items-center justify-center rounded-lg group-hover:bg-hud-elevated transition-colors relative",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:e,className:"text-base sm:text-xl group-hover:scale-110 transition-transform"}),i&&(0,t.jsx)("span",{className:`absolute top-0 right-0 w-2.5 h-2.5 rounded-full border-2 border-leftPaneBg ${i} animate-pulse`})]}),(0,t.jsx)("span",{className:"ocearo-large-label text-caption font-semibold uppercase tracking-[0.2em] mt-1 opacity-60 group-hover:opacity-100 transition-opacity",children:r})]});e.s(["default",0,({setRightView:e,toggleSettings:n,toggleAppMenu:l})=>{let{t:i}=(0,s.useTranslation)(),[o,c]=(0,a.useState)("off");(0,a.useEffect)(()=>{if(!(0,v.isOcearoCoreEnabled)())return;let e=!1,t=async()=>{try{let t=await (0,v.getOcearoCoreDnd)();!e&&t?.mode&&c(t.mode)}catch(e){}};t();let a=setInterval(t,3e4);return()=>{e=!0,clearInterval(a)}},[]);let m=async()=>{let e=y[(y.indexOf(o)+1)%y.length];c(e);try{await (0,v.setOcearoCoreDnd)(e)}catch(e){console.warn("Failed to set DND mode:",e),c(o)}},d=g.default.getAll(),f=d.debugMode?"bg-oYellow":d.signalKUrlSet?null:"bg-oBlue",h=[{section:"left",items:[{icon:r.faShip,onClick:()=>n(),label:i("nav.system"),badgeColor:f},...(0,v.isOcearoCoreEnabled)()?[{icon:k[o].icon,onClick:m,label:i(`nav.dnd.${o}`),badgeColor:k[o].badgeColor}]:[]]},{section:"center",items:[{icon:r.faMapMarkedAlt,onClick:()=>e("navigation"),label:i("nav.nav")},{icon:r.faCloudSun,onClick:()=>e("weather"),label:i("nav.weather")},{icon:r.faTh,onClick:l,label:i("nav.apps")},{icon:r.faTachometerAlt,onClick:()=>e("dashboard"),label:i("nav.dashboard")},{icon:r.faHandsHelping,onClick:()=>e("manual"),label:i("nav.help")}]}],x=e=>{let a=h.find(t=>t.section===e);return a?a.items.map((a,n)=>(0,t.jsx)(j,{icon:a.icon,onClick:a.onClick,label:a.label,textColor:"text-hud-main",badgeColor:a.badgeColor},`${e}-${n}`)):null};return(0,t.jsxs)("div",{className:"flex items-center justify-between w-full h-full bg-leftPaneBg px-1 sm:px-6 overflow-x-auto overflow-y-hidden scrollbar-hide",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-0.5 sm:space-x-6 flex-shrink-0 sm:flex-1 min-w-0",children:[x("left"),(0,t.jsx)(b,{}),(0,t.jsx)("div",{className:"hidden sm:block h-8 w-[1px] bg-hud-muted opacity-20 mx-1 sm:mx-2"}),(0,t.jsx)("div",{className:"hidden sm:flex",children:(0,t.jsx)(u,{})})]}),(0,t.jsx)("div",{className:"flex flex-shrink-0 items-center justify-center space-x-0.5 sm:space-x-8 px-1 sm:px-0",children:x("center")}),(0,t.jsx)("div",{className:"hidden sm:flex items-center justify-end space-x-0.5 sm:space-x-6 flex-shrink-0 sm:flex-1 min-w-0",children:(0,t.jsx)(p,{})})]})}],50124)},61891,function(e){e.n(e.i(50124))},71029,e=>{"use strict";var t=e.i(71645),a=e.i(85709),n=e.i(66799),r=e.i(46991);let l="notifications.mob",i=e=>e*Math.PI/180;e.s(["distanceAndBearing",0,(e,t)=>{if(!Number.isFinite(e?.latitude)||!Number.isFinite(e?.longitude)||!Number.isFinite(t?.latitude)||!Number.isFinite(t?.longitude))return null;let a=i(e.latitude),n=i(t.latitude),l=i(t.longitude-e.longitude),s=Math.sin((n-a)/2)**2+Math.cos(a)*Math.cos(n)*Math.sin(l/2)**2;return{distance:2*r.EARTH_RADIUS_METERS*Math.asin(Math.min(1,Math.sqrt(s))),bearing:(180*Math.atan2(Math.sin(l)*Math.cos(n),Math.cos(a)*Math.sin(n)-Math.sin(a)*Math.cos(n)*Math.cos(l))/Math.PI+360)%360}},"useActiveMobs",0,()=>{let e=(0,a.useSignalKPrefix)(l);return(0,t.useMemo)(()=>Object.entries(e).filter(([e,t])=>(e===l||e.startsWith(`${l}.`))&&t?.state&&"normal"!==t.state).map(([e,t])=>({...t,path:e})).sort((e,t)=>String(e.createdAt??"").localeCompare(String(t.createdAt??""))),[e])},"useMobSupport",0,()=>{let e=(()=>{let[e,a]=(0,t.useState)(null);return(0,t.useEffect)(()=>{let e=!1,t=null,r=async()=>{let l=await n.default.getFeatures();e||(l?a(l):t=setTimeout(r,3e4))};return r(),()=>{e=!0,clearTimeout(t)}},[]),e})();return(0,t.useMemo)(()=>({raise:!!e?.apis.includes("notifications"),navigate:!!e?.apis.includes("course")}),[e])}],71029)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,13181,e=>{e.v(t=>Promise.all(["static/chunks/1epya-yh2wvj2.js","static/chunks/34_oyzp8_pi_m.js","static/chunks/0ohleay4roayh.js","static/chunks/0jfox92up1jvy.js"].map(t=>e.l(t))).then(()=>t(23595)))},62588,90669,e=>{"use strict";var t=e.i(43476),n=e.i(71645),i=e.i(83402),r=e.i(66799),a=e.i(67561),l=e.i(85709);let s=()=>({cpaMeters:1852*(Number(i.default.get("cpaAlarmNM"))||.5),tcpaSeconds:60*(Number(i.default.get("tcpaAlarmMinutes"))||20)}),o=(e,t)=>({x:e*Math.sin(t),y:e*Math.cos(t)}),u=({rx:e,ry:t,ownSog:n,ownCog:i,targetSog:r,targetCog:a})=>{if(![e,t,n,i,r,a].every(Number.isFinite))return null;let l=o(n,i),s=o(r,a),u=s.x-l.x,c=s.y-l.y,d=u*u+c*c,g=d<1e-9?0:-(e*u+t*c)/d,f=Math.max(0,g);return{cpa:Math.hypot(e+u*f,t+c*f),tcpa:g,own:{x:l.x*f,y:l.y*f},target:{x:e+s.x*f,y:t+s.y*f}}},c=(e,t,n=s())=>{let i=!e||e.tcpa>0;return e&&e.tcpa>0&&e.tcpa<=n.tcpaSeconds&&e.cpa<n.cpaMeters||Number.isFinite(t)&&t<100&&i?"danger":Number.isFinite(t)&&t<Math.max(200,.3*n.cpaMeters)?"close":"none"};e.s(["closestApproach",0,u,"collisionRisk",0,c,"getCollisionThresholds",0,s],90669);let d=(0,n.createContext)(null),g=[],f=[...["navigation.position","navigation.speedOverGround","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.headingTrue","navigation.headingMagnetic"].map(e=>({path:e,policy:"instant"})),...["name","design.aisShipType","design.length","design.beam","communication.callsignVhf","navigation.state"].map(e=>({path:e}))],h=(e,t)=>t.split(".").reduce((e,t)=>e?.[t],e),p=e=>(e||"").replace(/^vessels\./,""),m=e=>({mmsi:e,name:"unknown",latitude:null,longitude:null,sog:null,cog:null,cogMagnetic:null,heading:null,headingMagnetic:null,length:null,beam:null,shipType:null,callsign:null,navState:null,distanceMeters:null,sceneX:null,sceneZ:null,cpaMeters:null,tcpaSeconds:null,risk:"none",cpaScene:null,rotationAngleY:0,visible:!1,lastUpdate:0,positionAt:0}),v=(e,t,n)=>{switch(t){case"name":return e.name=n,!1;case"navigation.position":if(!n)return!1;return e.latitude=n.latitude,e.longitude=n.longitude,e.positionAt=Date.now(),!0;case"navigation.speedOverGround":return e.sog=n,!0;case"navigation.courseOverGroundTrue":return e.cog=n,!0;case"navigation.courseOverGroundMagnetic":return e.cogMagnetic=n,!0;case"navigation.headingTrue":return e.heading=n,!0;case"navigation.headingMagnetic":return e.headingMagnetic=n,!0;case"design.aisShipType":return e.shipType=n?.id??n,!1;case"design.length":return e.length=n?.overall??n,!1;case"design.beam":return e.beam=n,!1;case"communication.callsignVhf":return e.callsign=n,!1;case"navigation.state":return e.navState=n,!1;default:return!1}};e.s(["AISProvider",0,({children:e})=>{let{convertLatLonToXY:o}=(0,a.useOcearoContext)(),b=(0,l.useSignalKPath)("navigation.position"),y=(0,l.useSignalKPath)("navigation.speedOverGround"),w=(0,l.useSignalKPath)("navigation.courseOverGroundTrue"),S=(0,l.useSignalKPath)("navigation.headingTrue"),M=(0,n.useRef)({sog:null,cog:null}),j=(0,n.useRef)({vx:0,vy:0,fixAt:0,scale:.7}),[x]=(0,n.useState)(s),P=(0,n.useRef)({}),C=(0,n.useRef)(null),T=(0,n.useRef)(b),O=(0,n.useRef)(!1),k=(0,n.useRef)(""),[A,R]=(0,n.useState)(0),[F,N]=(0,n.useState)({aisData:{},vesselIds:g,targets:g}),_=(0,n.useCallback)(()=>(R(e=>e+1),()=>R(e=>e-1)),[]),D=(0,n.useCallback)(e=>{let t=T.current;if(!Number.isFinite(e.latitude)||!Number.isFinite(e.longitude)||!Number.isFinite(t?.latitude)||!Number.isFinite(t?.longitude)){e.visible=!1,e.distanceMeters=null;return}let n=i.default.get("aisLengthScalingFactor")||.7,{x:r,y:a}=o({lat:e.latitude,lon:e.longitude},{lat:t.latitude,lon:t.longitude});e.sceneX=r*n,e.sceneZ=-a*n,e.rotationAngleY=e.heading??e.headingMagnetic??e.cog??e.cogMagnetic??0,e.distanceMeters=Math.hypot(r,a),e.visible=e.distanceMeters>10&&e.distanceMeters<=5e3;let l=M.current,s=u({rx:r,ry:a,ownSog:l.sog,ownCog:l.cog,targetSog:e.sog,targetCog:e.cog??e.cogMagnetic});e.cpaMeters=s?s.cpa:null,e.tcpaSeconds=s?s.tcpa:null,e.risk=c(s,e.distanceMeters,x),e.cpaScene=s&&s.tcpa>0?{targetX:s.target.x*n,targetZ:-s.target.y*n,ownX:s.own.x*n,ownZ:-s.own.y*n}:null},[o,x]);(0,n.useEffect)(()=>{T.current=b,M.current={sog:y,cog:w??S};let e=w??S;j.current={vx:Number.isFinite(y)&&Number.isFinite(e)?y*Math.sin(e):0,vy:Number.isFinite(y)&&Number.isFinite(e)?y*Math.cos(e):0,fixAt:Date.now(),scale:i.default.get("aisLengthScalingFactor")||.7},Object.values(P.current).forEach(D),O.current=!0},[b,y,w,S,D]),(0,n.useEffect)(()=>{if(0===A)return;let e=()=>{let e=Date.now(),t=P.current;for(let[n,i]of Object.entries(t))e-i.lastUpdate>6e5&&(delete t[n],O.current=!0);if(!O.current)return;O.current=!1;let n=Object.values(t).filter(e=>null!==e.distanceMeters).sort((e,t)=>e.distanceMeters-t.distanceMeters),i=n.filter(e=>e.visible),r=i.map(e=>`${e.mmsi}|${e.shipType}|${e.length}|${e.beam}`).join(","),a=r!==k.current;k.current=r,N(e=>({aisData:{...t},targets:n,vesselIds:a?i:e.vesselIds}))};e();let t=setInterval(e,250);return()=>clearInterval(t)},[A]),(0,n.useEffect)(()=>{if(0===A)return;let e=!1,t=null,n=e=>"self"===e||C.current&&e===C.current,i=e=>{let t=p(e?.context);if(!t||n(t)||!e.updates)return;let i=P.current,r=i[t]||(i[t]=m(t));r.lastUpdate=Date.now();let a=!1;for(let t of e.updates)if(t.values)for(let{path:e,value:n}of t.values)v(r,e,n)&&(a=!0);a&&D(r),O.current=!0},a=async()=>{let i=await t.API().then(e=>e.vessels());if(e||!i)return;let r=P.current,a=Date.now();for(let[e,t]of Object.entries(i)){if(n(e))continue;let i=r[e]||(r[e]=m(e)),l=(e,n)=>{let r=h(t,n);void 0!==r&&(i[e]=r)};l("name","name"),l("latitude","navigation.position.value.latitude"),l("longitude","navigation.position.value.longitude"),l("sog","navigation.speedOverGround.value"),l("cog","navigation.courseOverGroundTrue.value"),l("cogMagnetic","navigation.courseOverGroundMagnetic.value"),l("heading","navigation.headingTrue.value"),l("headingMagnetic","navigation.headingMagnetic.value"),l("length","design.length.value.overall"),l("beam","design.beam.value"),l("callsign","communication.callsignVhf"),l("navState","navigation.state.value"),l("shipType","design.aisShipType.value.id"),i.lastUpdate=a,D(i)}O.current=!0};return(async()=>{try{if((t=r.default.createClient({deltaStreamBehaviour:"none",sendMeta:null,subscriptions:[{context:"vessels.*",subscribe:f}]})).on("self",e=>{C.current=p(e)}),t.on("delta",i),await t.connect(),e)return;C.current=p(t.self)||C.current,await a()}catch(t){e||console.warn("AIS: SignalK connection failed:",t?.message||t)}})(),()=>{e=!0,t?.removeAllListeners?.("delta"),t?.disconnect()}},[A>0,D]);let I=(0,n.useMemo)(()=>({...F,targetsRef:P,motionRef:j,register:_}),[F,_]);return(0,t.jsx)(d.Provider,{value:I,children:e})},"predictScenePosition",0,(e,t,n)=>{let i=e.cog??e.cogMagnetic??e.heading,r=Number.isFinite(e.sog)?e.sog:0,a=Math.min(180,Math.max(0,(n-(e.positionAt||n))/1e3)),l=Math.min(180,Math.max(0,(n-t.fixAt)/1e3)),s=-(t.vx*l),o=-(t.vy*l);return Number.isFinite(i)&&r>.05&&(s+=r*Math.sin(i)*a,o+=r*Math.cos(i)*a),{x:e.sceneX+s*t.scale,z:e.sceneZ-o*t.scale}},"useAIS",0,({passive:e=!1}={})=>{let t=(0,n.useContext)(d),i=e?null:t?.register;return(0,n.useEffect)(()=>i?.(),[i]),t||{aisData:{},vesselIds:g,targets:g,targetsRef:{current:{}},motionRef:{current:{vx:0,vy:0,fixAt:0,scale:.7}}}}],62588)},49063,e=>{e.v(t=>Promise.all(["static/chunks/3k5itcabq5oqs.js","static/chunks/0jfox92up1jvy.js","static/chunks/11awvgcou7v4r.js"].map(t=>e.l(t))).then(()=>t(85626)))},10520,e=>{e.v(t=>Promise.all(["static/chunks/0yiqocv54ogoq.js","static/chunks/0jfox92up1jvy.js"].map(t=>e.l(t))).then(()=>t(61891)))},45344,e=>{e.v(t=>Promise.all(["static/chunks/1fzzb4jtgv5gg.js","static/chunks/11awvgcou7v4r.js"].map(t=>e.l(t))).then(()=>t(42602)))},83934,e=>{"use strict";var t=e.i(43476),n=e.i(71645),i=e.i(66799),r=e.i(85709),a=e.i(46991);let l=(0,n.createContext)();e.s(["WeatherContextProvider",0,({children:e})=>{let s=(0,r.useSignalKPath)("navigation.position"),o=(0,n.useMemo)(()=>["environment.outside.temperature","environment.outside.relativeHumidity","environment.outside.pressure","environment.wind.speedTrue","environment.wind.directionTrue","environment.wind.gust"],[]),u=(0,r.useSignalKPaths)(o),[c,d]=(0,n.useState)(u),g=(0,n.useRef)(u);g.current=u;let f=(0,n.useRef)(null);(0,n.useEffect)(()=>{f.current||(f.current=setTimeout(()=>{f.current=null,d(g.current)},2e3))},[u]),(0,n.useEffect)(()=>()=>clearTimeout(f.current),[]);let[h,p]=(0,n.useState)([]),[m,v]=(0,n.useState)(!1),[b,y]=(0,n.useState)(null),[w,S]=(0,n.useState)(null),[M,j]=(0,n.useState)(null),x=(0,n.useRef)(null),P=(0,n.useRef)(null),C=(0,n.useRef)(s);C.current=s;let T=(0,n.useRef)(!1),O=Number.isFinite(s?.latitude)&&Number.isFinite(s?.longitude),k=(0,n.useCallback)(async()=>{let e=C.current;if(Number.isFinite(e?.latitude)&&Number.isFinite(e?.longitude)){T.current=!0,v(!0),y(null);try{let t=i.default.isWeatherApiAvailable();if(null===t&&(t=await i.default.checkWeatherApiAvailability()),S(t),!t)return void y("Weather API not available on SignalK server");let n=await i.default.getWeatherForecast(e.latitude,e.longitude),r=i.default.parseWeatherForecast(n);p(r),j(new Date)}catch(e){e.message&&e.message.includes("400")?(console.warn("WeatherContext: Weather forecast not supported by this server"),S(!1)):console.warn("WeatherContext: Failed to fetch forecast:",e.message),y(e.message)}finally{v(!1)}}},[]),A=(0,n.useCallback)(e=>{if(!h||0===h.length)return null;let t=Math.min(Math.floor(e),h.length-1);return h[t]||null},[h]),R=(0,n.useCallback)(()=>{let e=h.length>0?h[0]:null,t=c["environment.outside.temperature"]??(e?.temperature!=null?e.temperature+273.15:null),n=c["environment.outside.relativeHumidity"]??e?.humidity??null,i=c["environment.outside.pressure"]??e?.pressure??null,r=(0,a.finite)(c["environment.wind.speedTrue"])??(0,a.finite)((0,a.knotsToMs)(e?.wind?.speed)),l=(0,a.finite)(c["environment.wind.directionTrue"])??(0,a.finite)((0,a.degToRad)(e?.wind?.direction)),s=Object.values(c).some(e=>null!==(0,a.finite)(e)),o=e?.clouds;return{source:null!==t||null!==n||null!==i||null!==r?s?"sensors":"forecast":null,temperature:t,humidity:n,pressure:i,windSpeed:r,windDirection:l,cloudCover:null!=o?o>1?o/100:o:null,rain:e?.rain??null,description:e?.description||null}},[c,h]),F=(0,n.useCallback)(()=>{let e=h.length>0?h[0]:null,t=(0,a.finite)(c["environment.wind.speedTrue"])??(0,a.finite)((0,a.knotsToMs)(e?.wind?.speed)),n=(0,a.finite)(c["environment.wind.directionTrue"])??(0,a.finite)((0,a.degToRad)(e?.wind?.direction)),i=(0,a.finite)(c["environment.wind.gust"])??(0,a.finite)((0,a.knotsToMs)(e?.wind?.gust)),r=null!==(0,a.finite)(c["environment.wind.speedTrue"])||null!==(0,a.finite)(c["environment.wind.directionTrue"]);return{source:null!==t||null!==n?r?"sensors":"forecast":null,speed:t,direction:n,gust:i}},[c,h]);(0,n.useEffect)(()=>(x.current=setTimeout(()=>{k()},5e3),P.current=setInterval(()=>{k()},18e5),()=>{x.current&&clearTimeout(x.current),P.current&&clearInterval(P.current)}),[k]),(0,n.useEffect)(()=>{O&&!T.current&&k()},[O,k]);let N=(0,n.useMemo)(()=>({forecasts:h,isLoading:m,error:b,weatherApiAvailable:w,lastFetchTime:M,fetchWeatherForecast:k,getForecastForTime:A,getCurrentWeather:R,getWindData:F}),[h,m,b,w,M,k,A,R,F]);return(0,t.jsx)(l.Provider,{value:N,children:e})},"useWeather",0,()=>{let e=(0,n.useContext)(l);if(!e)throw Error("useWeather must be used within a WeatherContextProvider");return e}])},23e3,e=>{e.v(t=>Promise.all(["static/chunks/3xjnsskh0tayo.js","static/chunks/0jfox92up1jvy.js"].map(t=>e.l(t))).then(()=>t(50637)))},30206,e=>{"use strict";let t=new Set,n={active:!1,playing:!1,speed:30,time:0,start:0,end:0,voyage:null},i=[],r=null,a=0,l=null,s=()=>t.forEach(e=>e(n)),o=e=>{n={...n,...e},s()},u=(e,t,n)=>e+(t-e)*n,c=(e,t,n)=>{let i=Math.atan2(Math.sin(t-e),Math.cos(t-e));return e+i*n},d=new Set(["hdg","cog","twa","twd","awa","rud","roll"]),g=e=>{if(!i.length)return null;let t=0,n=i.length-1;if(e<=i[0].t)return i[0];if(e>=i[n].t)return i[n];for(;n-t>1;){let r=t+n>>1;i[r].t<=e?t=r:n=r}let r=i[t],a=i[n],l=(e-r.t)/Math.max(1,a.t-r.t),s={t:e};for(let e of Object.keys(r)){if("t"===e)continue;let t=r[e],n=a[e];if(!Number.isFinite(t)||!Number.isFinite(n)){s[e]=t??n;continue}s[e]=d.has(e)?c(t,n,l):u(t,n,l)}return s},f=e=>{let t={},n=(e,n)=>{null!=n&&("number"!=typeof n||Number.isFinite(n))&&(t[e]=n)};return Number.isFinite(e.lat)&&Number.isFinite(e.lon)&&(t["navigation.position"]={latitude:e.lat,longitude:e.lon}),n("navigation.headingTrue",e.hdg),n("navigation.courseOverGroundTrue",e.cog??e.hdg),n("navigation.speedOverGround",e.sog),n("navigation.speedThroughWater",e.stw??e.sog),n("environment.wind.speedTrue",e.tws),n("environment.wind.angleTrueWater",e.twa),n("environment.wind.directionTrue",e.twd),n("environment.wind.speedApparent",e.aws),n("environment.wind.angleApparent",e.awa),n("steering.rudderAngle",e.rud),n("environment.depth.belowKeel",e.depth),Number.isFinite(e.roll)&&(t["navigation.attitude"]={roll:e.roll,pitch:0,yaw:e.hdg??0}),t},h=()=>{let e=Date.now(),t=e-a;if(a=e,!n.playing)return;let i=n.time+t*n.speed;i>=n.end&&(i=n.end,o({playing:!1})),n={...n,time:i};let r=g(i);r&&l&&l(f(r)),s()},p=()=>{r&&clearInterval(r),r=null,i=[],o({active:!1,playing:!1,voyage:null})};e.s(["getReplayState",0,()=>n,"isReplaying",0,()=>n.active,"seekReplay",0,e=>{if(!n.active)return;let t=Math.max(n.start,Math.min(n.end,e));o({time:t});let i=g(t);i&&l&&l(f(i))},"setReplaySink",0,e=>{l=e},"setReplaySpeed",0,e=>o({speed:e}),"startReplay",0,(e,t)=>{p(),i=t,o({active:!0,playing:!0,time:e.start,start:e.start,end:e.end,voyage:e});let n=g(e.start);n&&l&&l(f(n)),a=Date.now(),r=setInterval(h,100)},"stopReplay",0,p,"subscribeReplay",0,e=>(t.add(e),()=>t.delete(e)),"togglePlay",0,()=>{n.active&&(a=Date.now(),o({playing:!n.playing,time:n.time>=n.end?n.start:n.time}))}])},44485,e=>{"use strict";let t="samples",n=null,i=async(e,i)=>{let r=await ("u"<typeof indexedDB?Promise.reject(Error("IndexedDB unavailable")):(!n&&(n=new Promise((e,i)=>{let r=indexedDB.open("ocearo-voyages",1);r.onupgradeneeded=()=>{let e=r.result;e.objectStoreNames.contains(t)||e.createObjectStore(t,{keyPath:"t"})},r.onsuccess=()=>e(r.result),r.onerror=()=>{n=null,i(r.error)}})),n));return new Promise((n,a)=>{let l,s=r.transaction(t,e);Promise.resolve(i(s.objectStore(t))).then(e=>{l=e}),s.oncomplete=()=>n(l),s.onerror=()=>a(s.error),s.onabort=()=>a(s.error)})},r=e=>new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)}),a=e=>e*Math.PI/180,l=(e,t)=>6371e3*Math.hypot(a(t.lat-e.lat),a(t.lon-e.lon)*Math.cos(a((e.lat+t.lat)/2))),s=async()=>{let e=await i("readonly",e=>r(e.getAll())),t=[],n=null;for(let i of e)!n||i.t-n.end>18e5?(n={id:i.t,start:i.t,end:i.t,distanceM:0,maxSog:0,samples:0,last:i},t.push(n)):n.distanceM+=l(n.last,i),n.end=i.t,n.samples+=1,n.maxSog=Math.max(n.maxSog,i.sog||0),n.last=i;return t.filter(e=>e.end-e.start>=3e5&&e.distanceM>100).map(({last:e,...t})=>t).reverse()};e.s(["addSample",0,e=>i("readwrite",t=>{t.put(e)}),"getSamples",0,(e,t)=>i("readonly",n=>r(n.getAll(IDBKeyRange.bound(e,t)))),"listVoyages",0,s,"trimSamples",0,()=>i("readwrite",async e=>{let t=await r(e.count());t<=4e5||(await r(e.getAllKeys(null,t-4e5))).forEach(t=>e.delete(t))})])},90317,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i={bindSnapshot:function(){return u},createAsyncLocalStorage:function(){return o},createSnapshot:function(){return c}};for(var r in i)Object.defineProperty(n,r,{enumerable:!0,get:i[r]});let a=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class l{disable(){throw a}getStore(){}run(){throw a}exit(){throw a}enterWith(){throw a}static bind(e){return e}}let s="u">typeof globalThis&&globalThis.AsyncLocalStorage;function o(){return s?new s:new l}function u(e){return s?s.bind(e):l.bind(e)}function c(){return s?s.snapshot():function(e,...t){return e(...t)}}},42344,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"workAsyncStorageInstance",{enumerable:!0,get:function(){return i}});let i=(0,e.r(90317).createAsyncLocalStorage)()},63599,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"workAsyncStorage",{enumerable:!0,get:function(){return i.workAsyncStorageInstance}});let i=e.r(42344)},9885,(e,t,n)=>{"use strict";function i(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"encodeURIPath",{enumerable:!0,get:function(){return i}})},67585,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"BailoutToCSR",{enumerable:!0,get:function(){return r}});let i=e.r(32061);function r({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new i.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},52157,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"PreloadChunks",{enumerable:!0,get:function(){return o}});let i=e.r(43476),r=e.r(74080),a=e.r(63599),l=e.r(9885),s=e.r(43369);function o({moduleIds:e}){if("u">typeof window)return null;let t=a.workAsyncStorage.getStore();if(void 0===t)return null;let n=[];if(t.reactLoadableManifest&&e){let i=t.reactLoadableManifest;for(let t of e){if(!i[t])continue;let e=i[t].files;n.push(...e)}}if(0===n.length)return null;let u=(0,s.getAssetTokenQuery)();return(0,i.jsx)(i.Fragment,{children:n.map(e=>{let n=`${t.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${u}`;return e.endsWith(".css")?(0,i.jsx)("link",{precedence:"dynamic",href:n,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,r.preload)(n,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return u}});let i=e.r(43476),r=e.r(71645),a=e.r(67585),l=e.r(52157);function s(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(s(()=>null)),loading:null,ssr:!0},u=function(e){let t={...o,...e},n=(0,r.lazy)(()=>t.loader().then(s)),u=t.loading;function c(e){let s=u?(0,i.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?r.Suspense:r.Fragment,d=t.ssr?(0,i.jsxs)(i.Fragment,{children:["u"<typeof window?(0,i.jsx)(l.PreloadChunks,{moduleIds:t.modules}):null,(0,i.jsx)(n,{...e})]}):(0,i.jsx)(a.BailoutToCSR,{reason:"next/dynamic",children:(0,i.jsx)(n,{...e})});return(0,i.jsx)(c,{...o?{fallback:s}:{},children:d})}return c.displayName="LoadableComponent",c}},70703,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return r}});let i=e.r(55682)._(e.r(69093));function r(e,t){let n={};"function"==typeof e&&(n.loader=e);let r={...n,...t};return(0,i.default)({...r,modules:r.loadableGenerated?.modules})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},79866,(e,t,n)=>{t.exports={boats:[{name:"Default",modelPath:"default",capabilities:["navigation","rudder","sail","color"]},{name:"Racer 10.8",modelPath:"racer",capabilities:["navigation","sail","color"]},{name:"Catamaran 14",modelPath:"catamaran",capabilities:["navigation","sail","color"]},{name:"Optimist",modelPath:"optimist",capabilities:["navigation","ais"]},{name:"Sailboat",modelPath:"sailboat",capabilities:["navigation","ais"]},{name:"Ship",modelPath:"ship",capabilities:["navigation","ais"]},{name:"Windsurf",modelPath:"windsurf",capabilities:["navigation","ais"]}]}},83402,e=>{"use strict";var t=e.i(79866);let n=new class{constructor(){this.defaultConfig={signalkUrl:"http://localhost:3000",username:"",password:"",useAuthentication:!1,signalKUrlSet:!1,debugMode:!1,selectedBoat:"Racer 10.8",primaryColor:null,metallicEffect:!1,aisLengthScalingFactor:.7,compassNorthUp:!1,hide3DCompass:!1,hideTrueWind:!1,showCustomUrls:!1,customExternalUrls:{},currentView:"default",theme:"dark",language:"en",distanceUnits:"nm",depthUnits:"m",speedUnits:"kn",temperatureUnits:"C",positionFormat:"DD",preferTrueValues:!0,preferredWindSpeedPath:"speedTrue",preferredWindDirectionPath:"directionTrue",preferredHeadingPath:"courseOverGroundTrue",debugWindOverride:!1,debugWindSpeed:10,debugWindDirection:0,debugShowAxes:!1,showSailTrimSliders:!0,showRigging:!0},this.configKey="ocearoConfig",this.inMemoryConfig={...this.defaultConfig},this.config=this.loadConfig()}isLocalStorageAvailable(){try{return"u">typeof localStorage}catch{return!1}}loadConfig(){if(this.isLocalStorageAvailable()){let e=localStorage.getItem(this.configKey);if(!e)return this.saveConfig(this.defaultConfig),{...this.defaultConfig};try{let t={...this.defaultConfig,...JSON.parse(e)};return(t.boatChosen||"Default"!==t.selectedBoat)&&"RM1080"!==t.selectedBoat||(t.selectedBoat="Racer 10.8"),t}catch(e){return console.error("Failed to parse stored configuration:",e),{...this.defaultConfig}}}return{...this.inMemoryConfig}}saveConfig(e){this.config={...this.config,...e},this.isLocalStorageAvailable()?localStorage.setItem(this.configKey,JSON.stringify(this.config)):this.inMemoryConfig={...this.config}}get(e){return this.config[e]}set(e,t){this.config[e]=t,this.saveConfig(this.config)}resetConfig(){this.config={...this.defaultConfig},this.isLocalStorageAvailable()?localStorage.setItem(this.configKey,JSON.stringify(this.config)):this.inMemoryConfig={...this.defaultConfig}}getAll(){return{...this.config}}getDefaultConfig(){return{...this.defaultConfig}}getSelectedBoat(){let e=this.config.selectedBoat;return e?this.getBoatsData().find(t=>t.name===e):null}getBoatsData(){return t.default.boats}getSignalKUrl(){return this.config.signalKUrlSet&&this.config.signalkUrl?this.config.signalkUrl:this.getComputedSignalKUrl()}getComputedSignalKUrl(){return this.config.debugMode?"https://demo.signalk.org:443":`${window.location.protocol}//${window.location.hostname}${window.location.port?":"+window.location.port:""}`}getCurrentView(){return this.config.currentView||this.defaultConfig.currentView}setCurrentView(e){this.set("currentView",e)}};e.s(["default",0,n])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,13181,e=>{e.v(t=>Promise.all(["static/chunks/1epya-yh2wvj2.js","static/chunks/2w44atvyp9o_w.js","static/chunks/0ohleay4roayh.js","static/chunks/0jfox92up1jvy.js"].map(t=>e.l(t))).then(()=>t(23595)))},62588,90669,e=>{"use strict";var t=e.i(43476),n=e.i(71645),i=e.i(83402),r=e.i(66799),a=e.i(67561),l=e.i(85709);let s=()=>({cpaMeters:1852*(Number(i.default.get("cpaAlarmNM"))||.5),tcpaSeconds:60*(Number(i.default.get("tcpaAlarmMinutes"))||20)}),o=(e,t)=>({x:e*Math.sin(t),y:e*Math.cos(t)}),u=({rx:e,ry:t,ownSog:n,ownCog:i,targetSog:r,targetCog:a})=>{if(![e,t,n,i,r,a].every(Number.isFinite))return null;let l=o(n,i),s=o(r,a),u=s.x-l.x,c=s.y-l.y,d=u*u+c*c,g=d<1e-9?0:-(e*u+t*c)/d,f=Math.max(0,g);return{cpa:Math.hypot(e+u*f,t+c*f),tcpa:g,own:{x:l.x*f,y:l.y*f},target:{x:e+s.x*f,y:t+s.y*f}}},c=(e,t,n=s())=>{let i=!e||e.tcpa>0;return e&&e.tcpa>0&&e.tcpa<=n.tcpaSeconds&&e.cpa<n.cpaMeters||Number.isFinite(t)&&t<100&&i?"danger":Number.isFinite(t)&&t<Math.max(200,.3*n.cpaMeters)?"close":"none"};e.s(["closestApproach",0,u,"collisionRisk",0,c,"getCollisionThresholds",0,s],90669);let d=(0,n.createContext)(null),g=[],f=[...["navigation.position","navigation.speedOverGround","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.headingTrue","navigation.headingMagnetic"].map(e=>({path:e,policy:"instant"})),...["name","design.aisShipType","design.length","design.beam","communication.callsignVhf","navigation.state"].map(e=>({path:e}))],h=(e,t)=>t.split(".").reduce((e,t)=>e?.[t],e),p=e=>(e||"").replace(/^vessels\./,""),m=e=>({mmsi:e,name:"unknown",latitude:null,longitude:null,sog:null,cog:null,cogMagnetic:null,heading:null,headingMagnetic:null,length:null,beam:null,shipType:null,callsign:null,navState:null,distanceMeters:null,sceneX:null,sceneZ:null,cpaMeters:null,tcpaSeconds:null,risk:"none",cpaScene:null,rotationAngleY:0,visible:!1,lastUpdate:0,positionAt:0}),v=(e,t,n)=>{switch(t){case"name":return e.name=n,!1;case"navigation.position":if(!n)return!1;return e.latitude=n.latitude,e.longitude=n.longitude,e.positionAt=Date.now(),!0;case"navigation.speedOverGround":return e.sog=n,!0;case"navigation.courseOverGroundTrue":return e.cog=n,!0;case"navigation.courseOverGroundMagnetic":return e.cogMagnetic=n,!0;case"navigation.headingTrue":return e.heading=n,!0;case"navigation.headingMagnetic":return e.headingMagnetic=n,!0;case"design.aisShipType":return e.shipType=n?.id??n,!1;case"design.length":return e.length=n?.overall??n,!1;case"design.beam":return e.beam=n,!1;case"communication.callsignVhf":return e.callsign=n,!1;case"navigation.state":return e.navState=n,!1;default:return!1}};e.s(["AISProvider",0,({children:e})=>{let{convertLatLonToXY:o}=(0,a.useOcearoContext)(),b=(0,l.useSignalKPath)("navigation.position"),y=(0,l.useSignalKPath)("navigation.speedOverGround"),w=(0,l.useSignalKPath)("navigation.courseOverGroundTrue"),S=(0,l.useSignalKPath)("navigation.headingTrue"),M=(0,n.useRef)({sog:null,cog:null}),x=(0,n.useRef)({vx:0,vy:0,fixAt:0,scale:.7}),[j]=(0,n.useState)(s),P=(0,n.useRef)({}),C=(0,n.useRef)(null),T=(0,n.useRef)(b),O=(0,n.useRef)(!1),k=(0,n.useRef)(""),[A,R]=(0,n.useState)(0),[F,N]=(0,n.useState)({aisData:{},vesselIds:g,targets:g}),_=(0,n.useCallback)(()=>(R(e=>e+1),()=>R(e=>e-1)),[]),D=(0,n.useCallback)(e=>{let t=T.current;if(!Number.isFinite(e.latitude)||!Number.isFinite(e.longitude)||!Number.isFinite(t?.latitude)||!Number.isFinite(t?.longitude)){e.visible=!1,e.distanceMeters=null;return}let n=i.default.get("aisLengthScalingFactor")||.7,{x:r,y:a}=o({lat:e.latitude,lon:e.longitude},{lat:t.latitude,lon:t.longitude});e.sceneX=r*n,e.sceneZ=-a*n,e.rotationAngleY=e.heading??e.headingMagnetic??e.cog??e.cogMagnetic??0,e.distanceMeters=Math.hypot(r,a),e.visible=e.distanceMeters>10&&e.distanceMeters<=5e3;let l=M.current,s=u({rx:r,ry:a,ownSog:l.sog,ownCog:l.cog,targetSog:e.sog,targetCog:e.cog??e.cogMagnetic});e.cpaMeters=s?s.cpa:null,e.tcpaSeconds=s?s.tcpa:null,e.risk=c(s,e.distanceMeters,j),e.cpaScene=s&&s.tcpa>0?{targetX:s.target.x*n,targetZ:-s.target.y*n,ownX:s.own.x*n,ownZ:-s.own.y*n}:null},[o,j]);(0,n.useEffect)(()=>{T.current=b,M.current={sog:y,cog:w??S};let e=w??S;x.current={vx:Number.isFinite(y)&&Number.isFinite(e)?y*Math.sin(e):0,vy:Number.isFinite(y)&&Number.isFinite(e)?y*Math.cos(e):0,fixAt:Date.now(),scale:i.default.get("aisLengthScalingFactor")||.7},Object.values(P.current).forEach(D),O.current=!0},[b,y,w,S,D]),(0,n.useEffect)(()=>{if(0===A)return;let e=()=>{let e=Date.now(),t=P.current;for(let[n,i]of Object.entries(t))e-i.lastUpdate>6e5&&(delete t[n],O.current=!0);if(!O.current)return;O.current=!1;let n=Object.values(t).filter(e=>null!==e.distanceMeters).sort((e,t)=>e.distanceMeters-t.distanceMeters),i=n.filter(e=>e.visible),r=i.map(e=>`${e.mmsi}|${e.shipType}|${e.length}|${e.beam}`).join(","),a=r!==k.current;k.current=r,N(e=>({aisData:{...t},targets:n,vesselIds:a?i:e.vesselIds}))};e();let t=setInterval(e,250);return()=>clearInterval(t)},[A]),(0,n.useEffect)(()=>{if(0===A)return;let e=!1,t=null,n=e=>"self"===e||C.current&&e===C.current,i=e=>{let t=p(e?.context);if(!t||n(t)||!e.updates)return;let i=P.current,r=i[t]||(i[t]=m(t));r.lastUpdate=Date.now();let a=!1;for(let t of e.updates)if(t.values)for(let{path:e,value:n}of t.values)v(r,e,n)&&(a=!0);a&&D(r),O.current=!0},a=async()=>{let i=await t.API().then(e=>e.vessels());if(e||!i)return;let r=P.current,a=Date.now();for(let[e,t]of Object.entries(i)){if(n(e))continue;let i=r[e]||(r[e]=m(e)),l=(e,n)=>{let r=h(t,n);void 0!==r&&(i[e]=r)};l("name","name"),l("latitude","navigation.position.value.latitude"),l("longitude","navigation.position.value.longitude"),l("sog","navigation.speedOverGround.value"),l("cog","navigation.courseOverGroundTrue.value"),l("cogMagnetic","navigation.courseOverGroundMagnetic.value"),l("heading","navigation.headingTrue.value"),l("headingMagnetic","navigation.headingMagnetic.value"),l("length","design.length.value.overall"),l("beam","design.beam.value"),l("callsign","communication.callsignVhf"),l("navState","navigation.state.value"),l("shipType","design.aisShipType.value.id"),i.lastUpdate=a,D(i)}O.current=!0};return(async()=>{try{if((t=r.default.createClient({deltaStreamBehaviour:"none",sendMeta:null,subscriptions:[{context:"vessels.*",subscribe:f}]})).on("self",e=>{C.current=p(e)}),t.on("delta",i),await t.connect(),e)return;C.current=p(t.self)||C.current,await a()}catch(t){e||console.warn("AIS: SignalK connection failed:",t?.message||t)}})(),()=>{e=!0,t?.removeAllListeners?.("delta"),t?.disconnect()}},[A>0,D]);let I=(0,n.useMemo)(()=>({...F,targetsRef:P,motionRef:x,register:_}),[F,_]);return(0,t.jsx)(d.Provider,{value:I,children:e})},"predictScenePosition",0,(e,t,n)=>{let i=e.cog??e.cogMagnetic??e.heading,r=Number.isFinite(e.sog)?e.sog:0,a=Math.min(180,Math.max(0,(n-(e.positionAt||n))/1e3)),l=Math.min(180,Math.max(0,(n-t.fixAt)/1e3)),s=-(t.vx*l),o=-(t.vy*l);return Number.isFinite(i)&&r>.05&&(s+=r*Math.sin(i)*a,o+=r*Math.cos(i)*a),{x:e.sceneX+s*t.scale,z:e.sceneZ-o*t.scale}},"useAIS",0,({passive:e=!1}={})=>{let t=(0,n.useContext)(d),i=e?null:t?.register;return(0,n.useEffect)(()=>i?.(),[i]),t||{aisData:{},vesselIds:g,targets:g,targetsRef:{current:{}},motionRef:{current:{vx:0,vy:0,fixAt:0,scale:.7}}}}],62588)},49063,e=>{e.v(t=>Promise.all(["static/chunks/0m7wbuocx-b4_.js","static/chunks/0jfox92up1jvy.js","static/chunks/11awvgcou7v4r.js"].map(t=>e.l(t))).then(()=>t(85626)))},10520,e=>{e.v(t=>Promise.all(["static/chunks/3p9ziqn6r35qf.js","static/chunks/0jfox92up1jvy.js"].map(t=>e.l(t))).then(()=>t(61891)))},45344,e=>{e.v(t=>Promise.all(["static/chunks/1gt2hhqk1821k.js","static/chunks/11awvgcou7v4r.js"].map(t=>e.l(t))).then(()=>t(42602)))},83934,e=>{"use strict";var t=e.i(43476),n=e.i(71645),i=e.i(66799),r=e.i(85709),a=e.i(46991);let l=(0,n.createContext)();e.s(["WeatherContextProvider",0,({children:e})=>{let s=(0,r.useSignalKPath)("navigation.position"),o=(0,n.useMemo)(()=>["environment.outside.temperature","environment.outside.relativeHumidity","environment.outside.pressure","environment.wind.speedTrue","environment.wind.directionTrue","environment.wind.gust"],[]),u=(0,r.useSignalKPaths)(o),[c,d]=(0,n.useState)(u),g=(0,n.useRef)(u);g.current=u;let f=(0,n.useRef)(null);(0,n.useEffect)(()=>{f.current||(f.current=setTimeout(()=>{f.current=null,d(g.current)},2e3))},[u]),(0,n.useEffect)(()=>()=>clearTimeout(f.current),[]);let[h,p]=(0,n.useState)([]),[m,v]=(0,n.useState)(!1),[b,y]=(0,n.useState)(null),[w,S]=(0,n.useState)(null),[M,x]=(0,n.useState)(null),j=(0,n.useRef)(null),P=(0,n.useRef)(null),C=(0,n.useRef)(s);C.current=s;let T=(0,n.useRef)(!1),O=Number.isFinite(s?.latitude)&&Number.isFinite(s?.longitude),k=(0,n.useCallback)(async()=>{let e=C.current;if(Number.isFinite(e?.latitude)&&Number.isFinite(e?.longitude)){T.current=!0,v(!0),y(null);try{let t=i.default.isWeatherApiAvailable();if(null===t&&(t=await i.default.checkWeatherApiAvailability()),S(t),!t)return void y("Weather API not available on SignalK server");let n=await i.default.getWeatherForecast(e.latitude,e.longitude),r=i.default.parseWeatherForecast(n);p(r),x(new Date)}catch(e){e.message&&e.message.includes("400")?(console.warn("WeatherContext: Weather forecast not supported by this server"),S(!1)):console.warn("WeatherContext: Failed to fetch forecast:",e.message),y(e.message)}finally{v(!1)}}},[]),A=(0,n.useCallback)(e=>{if(!h||0===h.length)return null;let t=Math.min(Math.floor(e),h.length-1);return h[t]||null},[h]),R=(0,n.useCallback)(()=>{let e=h.length>0?h[0]:null,t=c["environment.outside.temperature"]??(e?.temperature!=null?e.temperature+273.15:null),n=c["environment.outside.relativeHumidity"]??e?.humidity??null,i=c["environment.outside.pressure"]??e?.pressure??null,r=(0,a.finite)(c["environment.wind.speedTrue"])??(0,a.finite)((0,a.knotsToMs)(e?.wind?.speed)),l=(0,a.finite)(c["environment.wind.directionTrue"])??(0,a.finite)((0,a.degToRad)(e?.wind?.direction)),s=Object.values(c).some(e=>null!==(0,a.finite)(e)),o=e?.clouds;return{source:null!==t||null!==n||null!==i||null!==r?s?"sensors":"forecast":null,temperature:t,humidity:n,pressure:i,windSpeed:r,windDirection:l,cloudCover:null!=o?o>1?o/100:o:null,rain:e?.rain??null,description:e?.description||null}},[c,h]),F=(0,n.useCallback)(()=>{let e=h.length>0?h[0]:null,t=(0,a.finite)(c["environment.wind.speedTrue"])??(0,a.finite)((0,a.knotsToMs)(e?.wind?.speed)),n=(0,a.finite)(c["environment.wind.directionTrue"])??(0,a.finite)((0,a.degToRad)(e?.wind?.direction)),i=(0,a.finite)(c["environment.wind.gust"])??(0,a.finite)((0,a.knotsToMs)(e?.wind?.gust)),r=null!==(0,a.finite)(c["environment.wind.speedTrue"])||null!==(0,a.finite)(c["environment.wind.directionTrue"]);return{source:null!==t||null!==n?r?"sensors":"forecast":null,speed:t,direction:n,gust:i}},[c,h]);(0,n.useEffect)(()=>(j.current=setTimeout(()=>{k()},5e3),P.current=setInterval(()=>{k()},18e5),()=>{j.current&&clearTimeout(j.current),P.current&&clearInterval(P.current)}),[k]),(0,n.useEffect)(()=>{O&&!T.current&&k()},[O,k]);let N=(0,n.useMemo)(()=>({forecasts:h,isLoading:m,error:b,weatherApiAvailable:w,lastFetchTime:M,fetchWeatherForecast:k,getForecastForTime:A,getCurrentWeather:R,getWindData:F}),[h,m,b,w,M,k,A,R,F]);return(0,t.jsx)(l.Provider,{value:N,children:e})},"useWeather",0,()=>{let e=(0,n.useContext)(l);if(!e)throw Error("useWeather must be used within a WeatherContextProvider");return e}])},23e3,e=>{e.v(t=>Promise.all(["static/chunks/15imr2-f_8n-x.js","static/chunks/0jfox92up1jvy.js"].map(t=>e.l(t))).then(()=>t(50637)))},30206,e=>{"use strict";let t=new Set,n={active:!1,playing:!1,speed:30,time:0,start:0,end:0,voyage:null},i=[],r=null,a=0,l=null,s=()=>t.forEach(e=>e(n)),o=e=>{n={...n,...e},s()},u=(e,t,n)=>e+(t-e)*n,c=(e,t,n)=>{let i=Math.atan2(Math.sin(t-e),Math.cos(t-e));return e+i*n},d=new Set(["hdg","cog","twa","twd","awa","rud","roll"]),g=e=>{if(!i.length)return null;let t=0,n=i.length-1;if(e<=i[0].t)return i[0];if(e>=i[n].t)return i[n];for(;n-t>1;){let r=t+n>>1;i[r].t<=e?t=r:n=r}let r=i[t],a=i[n],l=(e-r.t)/Math.max(1,a.t-r.t),s={t:e};for(let e of Object.keys(r)){if("t"===e)continue;let t=r[e],n=a[e];if(!Number.isFinite(t)||!Number.isFinite(n)){s[e]=t??n;continue}s[e]=d.has(e)?c(t,n,l):u(t,n,l)}return s},f=e=>{let t={},n=(e,n)=>{null!=n&&("number"!=typeof n||Number.isFinite(n))&&(t[e]=n)};return Number.isFinite(e.lat)&&Number.isFinite(e.lon)&&(t["navigation.position"]={latitude:e.lat,longitude:e.lon}),n("navigation.headingTrue",e.hdg),n("navigation.courseOverGroundTrue",e.cog??e.hdg),n("navigation.speedOverGround",e.sog),n("navigation.speedThroughWater",e.stw??e.sog),n("environment.wind.speedTrue",e.tws),n("environment.wind.angleTrueWater",e.twa),n("environment.wind.directionTrue",e.twd),n("environment.wind.speedApparent",e.aws),n("environment.wind.angleApparent",e.awa),n("steering.rudderAngle",e.rud),n("environment.depth.belowKeel",e.depth),Number.isFinite(e.roll)&&(t["navigation.attitude"]={roll:e.roll,pitch:0,yaw:e.hdg??0}),t},h=()=>{let e=Date.now(),t=e-a;if(a=e,!n.playing)return;let i=n.time+t*n.speed;i>=n.end&&(i=n.end,o({playing:!1})),n={...n,time:i};let r=g(i);r&&l&&l(f(r)),s()},p=()=>{r&&clearInterval(r),r=null,i=[],o({active:!1,playing:!1,voyage:null})};e.s(["getReplayState",0,()=>n,"isReplaying",0,()=>n.active,"seekReplay",0,e=>{if(!n.active)return;let t=Math.max(n.start,Math.min(n.end,e));o({time:t});let i=g(t);i&&l&&l(f(i))},"setReplaySink",0,e=>{l=e},"setReplaySpeed",0,e=>o({speed:e}),"startReplay",0,(e,t)=>{p(),i=t,o({active:!0,playing:!0,time:e.start,start:e.start,end:e.end,voyage:e});let n=g(e.start);n&&l&&l(f(n)),a=Date.now(),r=setInterval(h,100)},"stopReplay",0,p,"subscribeReplay",0,e=>(t.add(e),()=>t.delete(e)),"togglePlay",0,()=>{n.active&&(a=Date.now(),o({playing:!n.playing,time:n.time>=n.end?n.start:n.time}))}])},44485,e=>{"use strict";let t="samples",n=null,i=async(e,i)=>{let r=await ("u"<typeof indexedDB?Promise.reject(Error("IndexedDB unavailable")):(!n&&(n=new Promise((e,i)=>{let r=indexedDB.open("ocearo-voyages",1);r.onupgradeneeded=()=>{let e=r.result;e.objectStoreNames.contains(t)||e.createObjectStore(t,{keyPath:"t"})},r.onsuccess=()=>e(r.result),r.onerror=()=>{n=null,i(r.error)}})),n));return new Promise((n,a)=>{let l,s=r.transaction(t,e);Promise.resolve(i(s.objectStore(t))).then(e=>{l=e}),s.oncomplete=()=>n(l),s.onerror=()=>a(s.error),s.onabort=()=>a(s.error)})},r=e=>new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)}),a=e=>e*Math.PI/180,l=(e,t)=>6371e3*Math.hypot(a(t.lat-e.lat),a(t.lon-e.lon)*Math.cos(a((e.lat+t.lat)/2))),s=async()=>{let e=await i("readonly",e=>r(e.getAll())),t=[],n=null;for(let i of e)!n||i.t-n.end>18e5?(n={id:i.t,start:i.t,end:i.t,distanceM:0,maxSog:0,samples:0,last:i},t.push(n)):n.distanceM+=l(n.last,i),n.end=i.t,n.samples+=1,n.maxSog=Math.max(n.maxSog,i.sog||0),n.last=i;return t.filter(e=>e.end-e.start>=3e5&&e.distanceM>100).map(({last:e,...t})=>t).reverse()};e.s(["addSample",0,e=>i("readwrite",t=>{t.put(e)}),"getSamples",0,(e,t)=>i("readonly",n=>r(n.getAll(IDBKeyRange.bound(e,t)))),"listVoyages",0,s,"trimSamples",0,()=>i("readwrite",async e=>{let t=await r(e.count());t<=4e5||(await r(e.getAllKeys(null,t-4e5))).forEach(t=>e.delete(t))})])},90317,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i={bindSnapshot:function(){return u},createAsyncLocalStorage:function(){return o},createSnapshot:function(){return c}};for(var r in i)Object.defineProperty(n,r,{enumerable:!0,get:i[r]});let a=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class l{disable(){throw a}getStore(){}run(){throw a}exit(){throw a}enterWith(){throw a}static bind(e){return e}}let s="u">typeof globalThis&&globalThis.AsyncLocalStorage;function o(){return s?new s:new l}function u(e){return s?s.bind(e):l.bind(e)}function c(){return s?s.snapshot():function(e,...t){return e(...t)}}},42344,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"workAsyncStorageInstance",{enumerable:!0,get:function(){return i}});let i=(0,e.r(90317).createAsyncLocalStorage)()},63599,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"workAsyncStorage",{enumerable:!0,get:function(){return i.workAsyncStorageInstance}});let i=e.r(42344)},9885,(e,t,n)=>{"use strict";function i(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"encodeURIPath",{enumerable:!0,get:function(){return i}})},67585,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"BailoutToCSR",{enumerable:!0,get:function(){return r}});let i=e.r(32061);function r({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new i.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},52157,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"PreloadChunks",{enumerable:!0,get:function(){return o}});let i=e.r(43476),r=e.r(74080),a=e.r(63599),l=e.r(9885),s=e.r(43369);function o({moduleIds:e}){if("u">typeof window)return null;let t=a.workAsyncStorage.getStore();if(void 0===t)return null;let n=[];if(t.reactLoadableManifest&&e){let i=t.reactLoadableManifest;for(let t of e){if(!i[t])continue;let e=i[t].files;n.push(...e)}}if(0===n.length)return null;let u=(0,s.getAssetTokenQuery)();return(0,i.jsx)(i.Fragment,{children:n.map(e=>{let n=`${t.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${u}`;return e.endsWith(".css")?(0,i.jsx)("link",{precedence:"dynamic",href:n,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,r.preload)(n,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return u}});let i=e.r(43476),r=e.r(71645),a=e.r(67585),l=e.r(52157);function s(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(s(()=>null)),loading:null,ssr:!0},u=function(e){let t={...o,...e},n=(0,r.lazy)(()=>t.loader().then(s)),u=t.loading;function c(e){let s=u?(0,i.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?r.Suspense:r.Fragment,d=t.ssr?(0,i.jsxs)(i.Fragment,{children:["u"<typeof window?(0,i.jsx)(l.PreloadChunks,{moduleIds:t.modules}):null,(0,i.jsx)(n,{...e})]}):(0,i.jsx)(a.BailoutToCSR,{reason:"next/dynamic",children:(0,i.jsx)(n,{...e})});return(0,i.jsx)(c,{...o?{fallback:s}:{},children:d})}return c.displayName="LoadableComponent",c}},70703,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return r}});let i=e.r(55682)._(e.r(69093));function r(e,t){let n={};"function"==typeof e&&(n.loader=e);let r={...n,...t};return(0,i.default)({...r,modules:r.loadableGenerated?.modules})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},79866,(e,t,n)=>{t.exports={boats:[{name:"Default",modelPath:"default",capabilities:["navigation","rudder","sail","color"]},{name:"Racer 10.8",modelPath:"racer",capabilities:["navigation","sail","color"]},{name:"Catamaran 14",modelPath:"catamaran",capabilities:["navigation","sail","color"]},{name:"Optimist",modelPath:"optimist",capabilities:["navigation","ais"]},{name:"Sailboat",modelPath:"sailboat",capabilities:["navigation","ais"]},{name:"Ship",modelPath:"ship",capabilities:["navigation","ais"]},{name:"Windsurf",modelPath:"windsurf",capabilities:["navigation","ais"]}]}},83402,e=>{"use strict";var t=e.i(79866);let n=new class{constructor(){this.defaultConfig={signalkUrl:"http://localhost:3000",username:"",password:"",useAuthentication:!1,signalKUrlSet:!1,debugMode:!1,selectedBoat:"Racer 10.8",primaryColor:null,metallicEffect:!1,aisLengthScalingFactor:.7,compassNorthUp:!1,hide3DCompass:!1,hideTrueWind:!1,showCustomUrls:!1,customExternalUrls:{},currentView:"default",theme:"dark",language:"en",distanceUnits:"nm",depthUnits:"m",speedUnits:"kn",temperatureUnits:"C",positionFormat:"DD",preferTrueValues:!0,preferredWindSpeedPath:"speedTrue",preferredWindDirectionPath:"directionTrue",preferredHeadingPath:"courseOverGroundTrue",debugWindOverride:!1,debugWindSpeed:10,debugWindDirection:0,debugShowAxes:!1,showSailTrimSliders:!0,showRigging:!0},this.configKey="ocearoConfig",this.inMemoryConfig={...this.defaultConfig},this.config=this.loadConfig()}isLocalStorageAvailable(){try{return"u">typeof localStorage}catch{return!1}}loadConfig(){if(this.isLocalStorageAvailable()){let e=localStorage.getItem(this.configKey);if(!e)return this.saveConfig(this.defaultConfig),{...this.defaultConfig};try{let t={...this.defaultConfig,...JSON.parse(e)};return(t.boatChosen||"Default"!==t.selectedBoat)&&"RM1080"!==t.selectedBoat||(t.selectedBoat="Racer 10.8"),t}catch(e){return console.error("Failed to parse stored configuration:",e),{...this.defaultConfig}}}return{...this.inMemoryConfig}}saveConfig(e){this.config={...this.config,...e},this.isLocalStorageAvailable()?localStorage.setItem(this.configKey,JSON.stringify(this.config)):this.inMemoryConfig={...this.config}}get(e){return this.config[e]}set(e,t){this.config[e]=t,this.saveConfig(this.config)}resetConfig(){this.config={...this.defaultConfig},this.isLocalStorageAvailable()?localStorage.setItem(this.configKey,JSON.stringify(this.config)):this.inMemoryConfig={...this.defaultConfig}}getAll(){return{...this.config}}getDefaultConfig(){return{...this.defaultConfig}}getSelectedBoat(){let e=this.config.selectedBoat;return e?this.getBoatsData().find(t=>t.name===e):null}getBoatsData(){return t.default.boats}getSignalKUrl(){return this.config.signalKUrlSet&&this.config.signalkUrl?this.config.signalkUrl:this.getComputedSignalKUrl()}getComputedSignalKUrl(){return this.config.debugMode?"https://demo.signalk.org:443":`${window.location.protocol}//${window.location.hostname}${window.location.port?":"+window.location.port:""}`}getCurrentView(){return this.config.currentView||this.defaultConfig.currentView}setCurrentView(e){this.set("currentView",e)}};e.s(["default",0,n])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,76103,e=>{"use strict";var t=e.i(43476),o=e.i(71645),a=e.i(67561),s=e.i(85709),n=e.i(49721),l=e.i(68757),i=e.i(83402),r=e.i(46991),d=e.i(48390),c=e.i(46932),u=e.i(88653);e.i(85269);var m=e.i(22831),x=e.i(44485),b=e.i(30206);let h=()=>{let{t:e,i18n:a}=(0,m.useTranslation)(),[s,i]=(0,o.useState)(null),[r,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(null);(0,o.useEffect)(()=>{let e=!1;return(0,x.listVoyages)().then(t=>{e||i(t)}).catch(t=>{e||(d(t.message),i([]))}),()=>{e=!0}},[]);let h=(0,o.useCallback)(async e=>{u(e.id);try{let t=await (0,x.getSamples)(e.start,e.end);(0,b.startReplay)(e,t)}finally{u(null)}},[]),p=new Intl.DateTimeFormat(a.language,{weekday:"short",day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"});return(0,t.jsxs)("div",{className:"p-4 flex flex-col gap-4",children:[(0,t.jsxs)("h3",{className:"text-caption font-semibold text-hud-main uppercase tracking-widest flex items-center",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faRoute,className:"mr-2 text-oBlue text-xs"}),e("replay.voyages")]}),(0,t.jsx)("p",{className:"text-caption text-hud-muted max-w-prose",children:e("replay.explain")}),r&&(0,t.jsx)("div",{className:"text-caption text-oRed",children:r}),s&&0===s.length&&(0,t.jsx)("div",{className:"tesla-card p-4 text-label text-hud-secondary",children:e("replay.none")}),(0,t.jsx)("ul",{className:"flex flex-col gap-2",children:s?.map(o=>{let a;return(0,t.jsxs)("li",{className:"tesla-card px-4 py-3 flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"text-label font-semibold text-hud-main",children:p.format(new Date(o.start))}),(0,t.jsxs)("div",{className:"text-caption text-hud-muted tabular-nums",children:[(a=Math.round((o.end-o.start)/6e4))<60?`${a} min`:`${Math.floor(a/60)} h ${String(a%60).padStart(2,"0")}`," · ",(o.distanceM/1852).toFixed(1)," NM · ",e("replay.max")," ",(1.943844*o.maxSog).toFixed(1)," kn"]})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>h(o),disabled:c===o.id,className:"bg-oBlue hover:bg-oBlue/80 text-white px-3 py-1.5 rounded text-caption font-semibold uppercase flex items-center gap-2 disabled:opacity-50",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faPlay}),e("replay.replay")]})]},o.id)})})]})};e.s(["default",0,()=>{let e,x,b,p,g,f,y,v,N,j,{t:w}=(0,m.useTranslation)(),{states:k,toggleState:S}=(0,a.useOcearoContext)(),C=k?.racing??!1,[F,A]=(0,o.useState)("logbook"),T=(0,o.useMemo)(()=>["navigation.position","navigation.courseOverGroundTrue","navigation.headingTrue","navigation.speedOverGround","environment.wind.speedTrue","environment.wind.angleTrueWater","environment.wind.speedApparent","environment.wind.angleApparent","environment.outside.pressure","environment.outside.temperature","environment.depth.belowKeel","environment.depth.belowTransducer","navigation.log","propulsion.main.runTime"],[]),B=(0,s.useSignalKPaths)(T),[R,G]=(0,o.useState)([]),[O,$]=(0,o.useState)(!1),[I,E]=(0,o.useState)(null),[L,D]=(0,o.useState)("UTC"),[P,Y]=(0,o.useState)(null),[M,K]=(0,o.useState)(!1),[W,z]=(0,o.useState)({text:"",author:"manual"}),[J,U]=(0,o.useState)(!1),[V,Z]=(0,o.useState)(null),[_,H]=(0,o.useState)(null),[q,Q]=(0,o.useState)(!1);i.default.getAll();let X=(0,d.isOcearoCoreEnabled)(),ee=(0,o.useCallback)(async()=>{$(!0),E(null);try{let e=(await (0,d.fetchLogbookEntries)()).map(e=>{let t=e.point||("number"==typeof e.position?.latitude?e.position:null);return{...e,date:new Date(e.datetime||e.date),point:t?{...t,toString:()=>"number"==typeof t.latitude&&"number"==typeof t.longitude?`${t.latitude.toFixed(6)}, ${t.longitude.toFixed(6)}`:"Invalid coordinates"}:null}});G(e)}catch(e){"NetworkError"!==e.name&&"TimeoutError"!==e.name&&console.warn("Error fetching logbook entries:",e),E((0,d.handleOcearoCoreError)(e,"Logbook fetch")),i.default.get("debugMode")?G(et()):G([])}finally{$(!1)}},[]),et=()=>[{datetime:new Date().toISOString(),date:new Date,course:45,speed:{sog:6.5},wind:{speed:12,direction:180},observations:{seaState:2,cloudCoverage:3,visibility:7},barometer:1013.2,point:{latitude:46.1591,longitude:-1.1522,toString:()=>"46.159100, -1.152200"},position:{source:"GPS",latitude:46.1591,longitude:-1.1522},log:125.5,engine:{hours:245.2},author:"Captain",text:"Departing La Rochelle, good conditions"},{datetime:new Date(Date.now()-36e5).toISOString(),date:new Date(Date.now()-36e5),heading:42,speed:{sog:7.2},wind:{speed:15,direction:200},observations:{seaState:3,cloudCoverage:2,visibility:8},barometer:1012.8,point:{latitude:46.2591,longitude:-1.2522,toString:()=>"46.259100, -1.252200"},position:{source:"GPS",latitude:46.2591,longitude:-1.2522},log:132.1,engine:{hours:245.8},author:"auto",text:"Wind picking up, adjusting course"}],eo=(0,o.useCallback)(()=>{Y(null),z({text:"",author:"manual"}),K(!0)},[]),ea=(0,o.useCallback)(async()=>{try{let e;if(P)e={...P,author:W.author||P.author||"manual",text:W.text||P.text||"Manual entry"},delete e.date,delete e.point;else{let t=B["navigation.position"]||{},o=B["navigation.headingTrue"],a=B["environment.wind.speedTrue"],s=B["environment.wind.speedApparent"],n=null==a,l=n?B["environment.wind.angleApparent"]:B["environment.wind.angleTrueWater"],i={},d=(0,r.msToKnots)(n?s:a);if(null!==d&&(i.speed=d),null!=o&&null!=l){let e=(0,r.toDegrees)(o+l);null!==e&&(i.direction=e)}n&&Object.keys(i).length&&(i.apparent=!0);let c=B["environment.depth.belowKeel"]??B["environment.depth.belowTransducer"],u=B["navigation.log"],m=B["propulsion.main.runTime"];e={datetime:new Date().toISOString(),position:{latitude:t.latitude||46.1591,longitude:t.longitude||-1.1522,source:"GPS"},course:(0,r.toDegrees)(B["navigation.courseOverGroundTrue"]??o),speed:{sog:(0,r.msToKnots)(B["navigation.speedOverGround"])},wind:i,barometer:(0,r.convertPressure)(B["environment.outside.pressure"]),log:Number.isFinite(u)?parseFloat((u/1852).toFixed(1)):null,depth:Number.isFinite(c)?parseFloat(c.toFixed(1)):null,engine:{hours:Number.isFinite(m)?parseFloat((m/3600).toFixed(1)):null},author:W.author||"manual",text:W.text||"Manual entry"}}await (0,d.addLogbookEntry)(e),K(!1),Y(null),ee()}catch(e){console.warn("Error saving entry:",e),E((0,d.handleOcearoCoreError)(e,"Save logbook entry"))}},[B,ee,W,P]),es=(0,o.useCallback)(async()=>{if(!X)return void E(w("logbook.ocearoCoreNotEnabled"));try{Q(!0),E(null);let e={position:B["navigation.position"],course:B["navigation.courseOverGroundTrue"]||B["navigation.headingTrue"],speed:B["navigation.speedOverGround"],wind:{speed:B["environment.wind.speedTrue"],direction:B["environment.wind.angleTrueWater"]},weather:{pressure:B["environment.outside.pressure"],temperature:B["environment.outside.temperature"]},engine:{hours:B["propulsion.main.runTime"]},log:B["navigation.log"]},t=await (0,d.generateOcearoCoreLogbookEntry)(e);await ee(),t&&t.analysis&&(Z(t.analysis),H("auto-entry"),A("analysis"))}catch(e){E((0,d.handleOcearoCoreError)(e,"OcearoCore entry generation"))}finally{Q(!1)}},[X,B,ee,w]),en=(0,o.useCallback)(async e=>{if(!X)return void E(w("logbook.ocearoCoreNotEnabled"));try{U(!0),Z(null),H(e),E(null),A("analysis");let t=await (0,d.requestAnalysis)(e);Z(t),console.log("OcearoCore Analysis:",t)}catch(e){E((0,d.handleOcearoCoreError)(e,"OcearoCore analysis"))}finally{U(!1)}},[X,w]),el=(0,o.useCallback)(async()=>{if(!X)return void E(w("logbook.ocearoCoreNotEnabled"));try{U(!0),Z(null),H("logbook"),E(null),A("analysis");let e=await (0,d.analyzeLogbookWithOcearoCore)();Z(e),console.log("Logbook Analysis:",e)}catch(e){E((0,d.handleOcearoCoreError)(e,"Logbook analysis"))}finally{U(!1)}},[X,w]),ei=(0,o.useCallback)(e=>{Y(e),z({text:e.text||"",author:e.author||"manual"}),K(!0)},[]),er=(e,t="")=>Number.isFinite(e)?`${e}${t}`:"",ed=e=>Number.isFinite(e.course)?`${e.course}\xb0`:Number.isFinite(e.heading)?`HDT ${e.heading}\xb0`:"";(0,o.useEffect)(()=>{ee()},[ee]);let ec={safety:{color:"text-oRed",border:"border-oRed/40",bg:"bg-oRed/10"},alert:{color:"text-oRed",border:"border-oRed/40",bg:"bg-oRed/10"},weather:{color:"text-oYellow",border:"border-oYellow/40",bg:"bg-oYellow/10"},startup_analysis:{color:"text-oGreen",border:"border-oGreen/40",bg:"bg-oGreen/10"},briefing:{color:"text-oGreen",border:"border-oGreen/40",bg:"bg-oGreen/10"},racing:{color:"text-oYellow",border:"border-oYellow/40",bg:"bg-oYellow/10"},maintenance:{color:"text-oYellow",border:"border-oYellow/40",bg:"bg-oYellow/10"},hourly_entry:{color:"text-oBlue",border:"border-oBlue/40",bg:"bg-oBlue/10"},navigation:{color:"text-oBlue",border:"border-oBlue/40",bg:"bg-oBlue/10"},default:{color:"text-hud-secondary",border:"border-hud",bg:"bg-hud-elevated"}};return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-rightPaneBg overflow-hidden",children:[X&&(0,t.jsxs)("div",{className:`flex items-center justify-between px-4 py-2 border-b transition-all duration-500 ${C?"bg-oYellow/10 border-oYellow/30":"bg-hud-bg border-hud"}`,children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faTrophy,className:`text-xs transition-colors duration-300 ${C?"text-oYellow animate-soft-pulse":"text-hud-muted"}`}),(0,t.jsx)("span",{className:"text-caption font-semibold uppercase tracking-widest text-hud-main",children:C?w("logbook.racingModeActive"):w("logbook.racingMode")}),C&&(0,t.jsxs)("span",{className:"text-caption font-semibold uppercase tracking-widest text-oYellow opacity-70",children:["— ",w("logbook.racingModeAISInfo")]})]}),(0,t.jsx)("button",{onClick:()=>S("racing"),className:`relative inline-flex h-5 w-10 items-center rounded-full transition-colors duration-300 focus:outline-none ${C?"bg-oYellow":"bg-hud-elevated border border-hud"}`,"aria-label":w("logbook.racingMode"),children:(0,t.jsx)("span",{className:`inline-block h-3.5 w-3.5 transform rounded-full bg-hud-main shadow transition-transform duration-300 ${C?"translate-x-5":"translate-x-1"}`})})]}),(0,t.jsx)("div",{className:"flex border-b border-hud bg-hud-bg overflow-x-auto scrollbar-hide",children:[{id:"timeline",label:w("logbook.missionTimeline"),icon:l.faTimeline},{id:"logbook",label:w("logbook.tacticalLog"),icon:l.faBook},{id:"analysis",label:w("logbook.fleetIntelligence"),icon:l.faChartLine},{id:"voyages",label:w("replay.voyages"),icon:l.faRoute}].map(e=>(0,t.jsxs)("button",{onClick:()=>A(e.id),className:`flex-1 py-3 px-3 whitespace-nowrap text-caption font-semibold uppercase flex items-center justify-center transition-all duration-500 ${F===e.id?"text-oGreen border-b-2 border-oGreen bg-hud-bg":"text-hud-secondary hover:text-hud-main tesla-hover"}`,children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:e.icon,className:"mr-2"}),e.label]},e.id))}),(0,t.jsx)("div",{className:"flex-1 flex flex-col min-h-0",children:(0,t.jsx)(u.AnimatePresence,{mode:"wait",children:(0,t.jsxs)(c.motion.div,{initial:{opacity:0,x:10},animate:{opacity:1,x:0},exit:{opacity:0,x:-10},transition:{duration:.4,ease:"easeOut"},className:"h-full overflow-auto scrollbar-hide",children:["logbook"===F&&(0,t.jsxs)("div",{className:"p-4 flex flex-col h-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,t.jsxs)("h3",{className:"text-caption font-semibold text-hud-main uppercase tracking-widest flex items-center",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faBook,className:"mr-2 text-oBlue text-xs"}),w("logbook.logbookEntries")]}),(0,t.jsxs)("div",{className:"flex space-x-3",children:[X&&(0,t.jsxs)("button",{className:"bg-oGreen/10 text-oGreen hover:bg-oGreen/20 px-3 py-1.5 rounded text-caption font-semibold uppercase transition-all duration-300 flex items-center shadow-soft border border-oGreen/20 disabled:opacity-50",onClick:es,disabled:q||O,children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faRobot,className:`mr-2 ${q?"animate-spin":""}`}),q?w("logbook.aiEntryGenerating"):w("logbook.aiEntry")]}),(0,t.jsxs)("button",{className:"bg-oBlue hover:bg-oBlue/80 text-hud-main px-3 py-1.5 rounded text-caption font-semibold uppercase transition-all duration-300 flex items-center shadow-soft",onClick:eo,disabled:O,children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faPlus,className:"mr-2"}),w("logbook.add")]})]})]}),I&&(0,t.jsx)("div",{className:"bg-oRed/10 text-oRed p-3 rounded text-caption font-semibold uppercase mb-4 animate-soft-pulse border border-oRed/20",children:I}),(0,t.jsx)("div",{className:"tesla-card flex-1 overflow-auto ",children:(0,t.jsxs)("table",{className:"w-full text-caption font-semibold uppercase tracking-tight",children:[(0,t.jsx)("thead",{className:"sticky top-0 bg-hud-bg backdrop-blur-md z-10",children:(0,t.jsxs)("tr",{className:"text-hud-secondary border-b border-hud",children:[(0,t.jsx)("th",{className:"p-3 text-left",children:w("logbook.time")}),(0,t.jsx)("th",{className:"p-3 text-left",children:w("logbook.courseCol")}),(0,t.jsx)("th",{className:"p-3 text-left",children:w("logbook.sog")}),(0,t.jsx)("th",{className:"p-3 text-left",children:w("logbook.weatherCol")}),(0,t.jsx)("th",{className:"p-3 text-left",children:w("logbook.baro")}),(0,t.jsx)("th",{className:"p-3 text-left",children:w("logbook.depth")}),(0,t.jsx)("th",{className:"p-3 text-left",children:w("logbook.position")}),(0,t.jsx)("th",{className:"p-3 text-left",children:w("logbook.log")}),(0,t.jsx)("th",{className:"p-3 text-left",children:w("logbook.eng")}),(0,t.jsx)("th",{className:"p-3 text-left",children:w("logbook.by")}),(0,t.jsx)("th",{className:"p-3 text-left",children:w("logbook.noteCol")})]})}),(0,t.jsx)("tbody",{className:"divide-y divide-hud",children:R.map((e,o)=>(0,t.jsxs)("tr",{onClick:()=>ei(e),className:"tesla-hover cursor-pointer text-hud-main",children:[(0,t.jsx)("td",{className:"p-3 whitespace-nowrap opacity-60",children:e.date.toLocaleString("en-GB",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit",timeZone:L})}),(0,t.jsx)("td",{className:"p-3 gliding-value",children:ed(e)}),(0,t.jsx)("td",{className:"p-3 gliding-value",children:er(e.speed?.sog,"kt")}),(0,t.jsx)("td",{className:"p-3 text-hud-secondary font-bold normal-case whitespace-nowrap",children:(e=>{let t=[];if(e.wind){let o=[];Number.isFinite(e.wind.speed)&&o.push(`${e.wind.speed}kt`),Number.isFinite(e.wind.direction)&&o.push(`${e.wind.direction}\xb0`),o.length&&t.push(`${e.wind.apparent?w("logbook.windApparentShort"):""}${o.join(" ")}`.trim())}return e.observations&&(Number.isFinite(e.observations.seaState)&&t.push(w("logbook.seaStateShort",{value:e.observations.seaState})),Number.isFinite(e.observations.cloudCoverage)&&t.push(`☁ ${e.observations.cloudCoverage}/8`),Number.isFinite(e.observations.visibility)&&t.push(w("logbook.visibilityShort",{value:e.observations.visibility+1}))),t.join(" · ")})(e)}),(0,t.jsx)("td",{className:"p-3 gliding-value opacity-60",children:er(e.barometer)}),(0,t.jsx)("td",{className:"p-3 gliding-value",children:er(e.depth,"m")}),(0,t.jsx)("td",{className:"p-3 text-caption text-hud-muted font-mono tracking-tighter",children:e.point?e.point.toString():"n/a"}),(0,t.jsx)("td",{className:"p-3 gliding-value",children:er(e.log,"NM")}),(0,t.jsx)("td",{className:"p-3 gliding-value",children:er(e.engine?.hours,"h")}),(0,t.jsx)("td",{className:"p-3 text-oBlue opacity-80",children:e.author||"auto"}),(0,t.jsx)("td",{className:"p-3 normal-case font-bold text-hud-secondary truncate max-w-xs",children:e.text})]},e.datetime||o))})]})})]}),"voyages"===F&&(0,t.jsx)(h,{}),"timeline"===F&&(()=>{let e=[...R].reverse(),o=[];for(let t of e){let e=t.date.toLocaleDateString("fr-FR",{weekday:"long",day:"numeric",month:"long",year:"numeric",timeZone:L}),a=o[o.length-1];a&&a.day===e?a.items.push(t):o.push({day:e,items:[t]})}return o.reverse(),(0,t.jsxs)("div",{className:"p-4 space-y-6",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,t.jsxs)("h3",{className:"text-caption font-semibold text-hud-main uppercase tracking-widest flex items-center",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faTimeline,className:"mr-2 text-oGreen text-xs"}),w("logbook.cruiseTimeline")]}),(0,t.jsxs)("div",{className:"flex space-x-3",children:[X&&(0,t.jsxs)("button",{className:"bg-oGreen/10 text-oGreen hover:bg-oGreen/20 px-3 py-1.5 rounded text-caption font-semibold uppercase transition-all duration-300 flex items-center shadow-soft border border-oGreen/20 disabled:opacity-50",onClick:es,disabled:q||O,children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faRobot,className:`mr-2 ${q?"animate-spin":""}`}),q?w("logbook.aiEntryGenerating"):w("logbook.aiAuto")]}),(0,t.jsxs)("button",{className:"bg-oBlue hover:bg-oBlue/80 text-hud-main px-3 py-1.5 rounded text-caption font-semibold uppercase transition-all duration-300 flex items-center shadow-soft",onClick:eo,disabled:O,children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faPlus,className:"mr-2"}),w("logbook.add")]})]})]}),I&&(0,t.jsx)("div",{className:"bg-oRed/10 text-oRed p-3 rounded text-caption font-semibold uppercase mb-4 animate-soft-pulse border border-oRed/20",children:I}),(0,t.jsx)("div",{className:"space-y-6",children:o.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center mb-3",children:[(0,t.jsx)("div",{className:"w-2 h-2 rounded-full bg-oBlue mr-3"}),(0,t.jsx)("span",{className:"text-caption font-semibold text-hud-main uppercase tracking-widest",children:e.day}),(0,t.jsx)("div",{className:"flex-1 h-px bg-hud-border ml-4 opacity-40"}),(0,t.jsx)("span",{className:"text-caption font-semibold text-hud-muted ml-3",children:e.items.length})]}),(0,t.jsx)("div",{className:"space-y-2 ml-1 pl-4 border-l border-hud",children:e.items.map((e,o)=>{let a=e.entryType||e.analysis?.type||"default",s=ec[a]||ec.default,n=(e=>{let t=[],o=ed(e);if(o&&t.push({label:w("logbook.courseCol"),value:o}),Number.isFinite(e.speed?.sog)&&t.push({label:w("logbook.speed"),value:`${e.speed.sog}kt`}),Number.isFinite(e.wind?.speed)){let o=Number.isFinite(e.wind.direction)?` ${e.wind.direction}\xb0`:"";t.push({label:w("logbook.weatherCol"),value:`${e.wind.speed}kt${o}`})}return Number.isFinite(e.barometer)&&t.push({label:w("logbook.baro"),value:`${e.barometer}`}),Number.isFinite(e.depth)&&t.push({label:w("logbook.depth"),value:`${e.depth}m`}),Number.isFinite(e.log)&&t.push({label:w("logbook.log"),value:`${e.log}NM`}),Number.isFinite(e.engine?.hours)&&t.push({label:w("logbook.eng"),value:`${e.engine.hours}h`}),e.point&&"number"==typeof e.point.latitude&&t.push({label:w("logbook.coord"),value:e.point.toString(),mono:!0}),t})(e);return(0,t.jsxs)("div",{onClick:()=>ei(e),className:"tesla-card tesla-hover cursor-pointer group",children:[(0,t.jsxs)("div",{className:"px-4 py-2 flex justify-between items-center border-b border-hud",children:[(0,t.jsxs)("div",{className:"flex items-center min-w-0 gap-3",children:[(0,t.jsx)("span",{className:"text-label font-semibold text-hud-main tracking-tight",children:e.date.toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit",timeZone:L})}),(0,t.jsx)("span",{className:`px-2 py-0.5 rounded-sm text-caption font-semibold uppercase tracking-widest border ${s.color} ${s.border} ${s.bg}`,children:w(`logbook.types.${a}`,{defaultValue:a.replace(/_/g," ")})})]}),(0,t.jsx)("div",{className:"text-caption font-semibold text-hud-muted uppercase tracking-tighter truncate ml-3",children:e.author||"system"})]}),(0,t.jsxs)("div",{className:"p-4",children:[e.text&&(0,t.jsx)("div",{className:"text-caption font-bold text-hud-secondary normal-case leading-relaxed mb-3",children:e.text}),n.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-x-6 gap-y-2 text-caption font-semibold uppercase tracking-tight text-hud-secondary",children:n.map(e=>(0,t.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,t.jsx)("span",{className:"text-hud-dim",children:e.label}),(0,t.jsx)("span",{className:`text-hud-main ${e.mono?"font-mono text-caption":"gliding-value"}`,children:e.value})]},e.label))})]})]},e.datetime||o)})})]},e.day))})]})})(),"analysis"===F&&(0,t.jsxs)("div",{className:"p-4 space-y-6",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)("h3",{className:"text-caption font-semibold text-hud-main uppercase tracking-widest flex items-center mb-2",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faChartLine,className:"mr-2 text-oBlue text-xs"}),w("logbook.fleetIntelligence")]}),(0,t.jsx)("p",{className:"text-hud-secondary text-caption font-semibold uppercase tracking-tighter",children:w("logbook.aiPoweredAnalysis")})]}),X&&(0,t.jsxs)("div",{className:"tesla-card mb-6 ",children:[(0,t.jsx)("h4",{className:"text-caption font-semibold text-hud-secondary mb-4 uppercase tracking-widest",children:w("logbook.selectOperation")}),(0,t.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-3",children:[{id:"logbook",label:"LOGBOOK",icon:l.faBook,color:"bg-oBlue",action:el},{id:"weather",label:"WEATHER",icon:l.faCloudSun,color:"bg-oBlue",action:()=>en("weather")},{id:"sail",label:"SAIL",icon:l.faCompass,color:"bg-oGreen",action:()=>en("sail")},{id:"alerts",label:"ALERTS",icon:l.faRobot,color:"bg-oRed",action:()=>en("alerts")},{id:"status",label:"STATUS",icon:l.faTachometerAlt,color:"bg-hud-muted",action:()=>en("status")},{id:"racing",label:w("logbook.racingAdvice"),icon:l.faTrophy,color:C?"bg-oYellow":"bg-oYellow/40",action:()=>en("racing")}].map(e=>(0,t.jsxs)("button",{className:"tesla-card tesla-hover flex flex-col items-center justify-center space-y-3 group ",onClick:e.action,disabled:J,children:[(0,t.jsx)("div",{className:`${e.color} w-10 h-10 rounded-full flex items-center justify-center shadow-lg group-hover:scale-110 transition-transform duration-500`,children:(0,t.jsx)(n.FontAwesomeIcon,{icon:e.icon,className:"text-hud-main text-sm"})}),(0,t.jsx)("span",{className:"text-caption font-semibold text-hud-main tracking-widest",children:e.label})]},e.id))})]}),I&&(0,t.jsx)("div",{className:"bg-oRed/10 text-oRed p-3 rounded text-caption font-semibold uppercase mb-4 animate-soft-pulse border border-oRed/20",children:I}),J&&(0,t.jsxs)("div",{className:"tesla-card text-center ",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faRobot,className:"text-4xl text-oGreen mb-6 animate-soft-pulse"}),(0,t.jsx)("h4",{className:"text-caption font-semibold text-hud-main uppercase tracking-widest mb-4",children:w("logbook.neuralProcessing")}),(0,t.jsx)("div",{className:"w-48 mx-auto bg-hud-elevated h-1 rounded-full overflow-hidden",children:(0,t.jsx)("div",{className:"bg-oGreen h-full animate-progress-indefinite rounded-full",style:{width:"40%"}})}),(0,t.jsxs)("p",{className:"text-hud-muted text-caption font-semibold uppercase mt-4 tracking-tighter italic",children:[w("logbook.processNode")," ",_]})]}),V&&!J&&(e=V.analysis&&"object"==typeof V.analysis?V.analysis:null,x="string"==typeof V.analysis?V.analysis:null,b=void 0!==V.settings&&!V.analysis,p=x||e?.text||e?.summary||V.aiAnalysis||("string"==typeof V.summary?V.summary:null)||b&&(V.settings?.analysis?.speech||V.course?.analysis?.speech)||null,g=V.speechText||("string"==typeof V.speech?V.speech:null)||e?.speech||(b?V.settings?.analysis?.speech||V.course?.analysis?.speech:null),y=Array.isArray(f=V.recommendations||e?.recommendations||(b&&V.settings?.adjustments?.length>0?V.settings.adjustments.map(e=>e.action||e.message||JSON.stringify(e)):null))?f:null,N=Array.isArray(v=V.insights||e?.expertAdvice)?v:null,j=V.data||V.weatherData||V.assessment||(b?{course:V.course,settings:V.settings}:null),(0,t.jsxs)("div",{className:"tesla-card animate-fade-in",children:[(0,t.jsxs)("div",{className:"flex items-center mb-6 border-b border-hud pb-4",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faChartLine,className:"text-oGreen mr-3 text-sm"}),(0,t.jsxs)("h4",{className:"text-caption font-semibold text-hud-main uppercase tracking-widest",children:[w("logbook.operationReport")," ",_]})]}),(0,t.jsxs)("div",{className:"space-y-6",children:[p&&(0,t.jsxs)("div",{className:"tesla-card border-l-2 border-oBlue/30 ",children:[(0,t.jsx)("h5",{className:"text-caption font-semibold text-oBlue mb-3 uppercase tracking-widest",children:w("logbook.executiveSummary")}),(0,t.jsx)("p",{className:"text-hud-secondary text-caption font-bold leading-relaxed italic normal-case",children:p})]}),(N||y)&&(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[N&&(0,t.jsxs)("div",{className:"tesla-card ",children:[(0,t.jsxs)("h5",{className:"text-caption font-semibold text-oBlue mb-3 uppercase tracking-widest flex items-center",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faRobot,className:"mr-2 text-xs"}),w("logbook.strategicInsights")]}),(0,t.jsx)("ul",{className:"space-y-2",children:N.map((e,o)=>{let a="string"==typeof e?e:e&&"object"==typeof e?e.text||e.message||e.insight||JSON.stringify(e):String(e);return(0,t.jsxs)("li",{className:"text-caption font-bold text-hud-secondary normal-case flex items-start",children:[(0,t.jsx)("span",{className:"text-oBlue mr-2 opacity-50",children:"›"}),a]},o)})})]}),y&&(0,t.jsxs)("div",{className:"tesla-card ",children:[(0,t.jsxs)("h5",{className:"text-caption font-semibold text-oGreen mb-3 uppercase tracking-widest flex items-center",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faChartLine,className:"mr-2 text-xs"}),w("logbook.operationalAdvice")]}),(0,t.jsx)("ul",{className:"space-y-2",children:y.map((e,o)=>{let a;return a="string"==typeof e?e:e&&"object"==typeof e?"string"==typeof e.message?e.message:e.message&&"object"==typeof e.message?e.message.message||e.text||e.action||JSON.stringify(e.message):e.text||e.action||JSON.stringify(e):String(e),(0,t.jsxs)("li",{className:"text-caption font-bold text-hud-secondary normal-case flex items-start",children:[(0,t.jsx)("span",{className:"text-oGreen mr-2 opacity-50",children:"✓"}),a]},o)})})]})]}),g&&(0,t.jsxs)("div",{className:"bg-oBlue/5 p-4 rounded-sm border border-oBlue/10 shadow-soft",children:[(0,t.jsxs)("h5",{className:"text-caption font-semibold text-oBlue mb-2 uppercase tracking-widest flex items-center",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faRobot,className:"mr-2 animate-soft-pulse"}),w("logbook.voiceTelemetry")]}),(0,t.jsx)("p",{className:"text-hud-secondary text-caption font-bold leading-relaxed italic normal-case",children:g})]}),j&&(0,t.jsxs)("div",{className:"tesla-card ",children:[(0,t.jsx)("h5",{className:"text-caption font-semibold text-hud-secondary mb-3 uppercase tracking-widest",children:w("logbook.rawTelemetryData")}),(0,t.jsx)("pre",{className:"text-oGreen/70 text-caption font-mono overflow-auto max-h-40 font-bold scrollbar-thin",children:JSON.stringify(j,null,2)})]}),V.timestamp&&(0,t.jsxs)("div",{className:"text-hud-dim text-caption font-semibold text-right uppercase tracking-tighter",children:[w("logbook.generated")," ",new Date(V.timestamp).toLocaleString()," ","// OCEAROCORE V2.4"]})]})]})),!V&&!J&&(0,t.jsx)("div",{className:"tesla-card text-center ",children:(0,t.jsxs)("div",{className:"text-hud-muted",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faRobot,size:"3x",className:"mb-6 opacity-20"}),(0,t.jsx)("h4",{className:"text-caption font-semibold text-hud-main uppercase tracking-widest mb-3",children:w("logbook.diagnosticReady")}),(0,t.jsx)("p",{className:"text-caption font-semibold uppercase tracking-tight max-w-xs mx-auto leading-relaxed",children:w("logbook.diagnosticReadyDesc")})]})})]})]},F)})}),M&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50",onClick:()=>K(!1),children:(0,t.jsxs)("div",{className:"bg-hud-bg backdrop-blur-xl rounded-3xl p-6 sm:p-8 max-w-md w-full mx-4 shadow-2xl border border-hud max-h-[90vh] overflow-y-auto",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-8",children:[(0,t.jsxs)("h3",{className:"text-value font-semibold text-hud-main flex items-center tracking-tight",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faBook,className:"mr-3 text-oBlue"}),P?w("logbook.editEntry"):w("logbook.manualEntry")]}),(0,t.jsx)("button",{onClick:()=>K(!1),className:"w-10 h-10 rounded-full flex items-center justify-center text-hud-secondary hover:text-hud-main hover:bg-hud-elevated transition-all duration-300",children:(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faTimes,size:"lg"})})]}),(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-caption font-semibold uppercase tracking-widest text-hud-secondary mb-2 flex items-center",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faUser,className:"mr-2 text-oBlue"}),w("logbook.author")]}),(0,t.jsx)("input",{type:"text",value:W.author,onChange:e=>z({...W,author:e.target.value}),className:"w-full bg-hud-elevated text-hud-main px-4 py-3 rounded-xl border border-hud focus:border-oBlue focus:outline-none transition-all duration-300 font-bold",placeholder:w("logbook.authorPlaceholder")})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-caption font-semibold uppercase tracking-widest text-hud-secondary mb-2 flex items-center",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faStickyNote,className:"mr-2 text-oYellow"}),w("logbook.note")]}),(0,t.jsx)("textarea",{value:W.text,onChange:e=>z({...W,text:e.target.value}),className:"w-full bg-hud-elevated text-hud-main px-4 py-3 rounded-xl border border-hud focus:border-oBlue focus:outline-none transition-all duration-300 font-bold min-h-[120px]",placeholder:w("logbook.notePlaceholder")})]}),(0,t.jsxs)("div",{className:"flex justify-end space-x-4 pt-6 border-t border-hud",children:[(0,t.jsx)("button",{onClick:()=>K(!1),className:"px-6 py-3 bg-hud-elevated hover:bg-hud-bg text-hud-main font-bold rounded-xl transition-all duration-300",children:w("logbook.cancel")}),(0,t.jsxs)("button",{onClick:ea,className:"px-8 py-3 bg-oBlue hover:bg-oBlue/80 text-hud-main font-bold rounded-xl transition-all duration-300 flex items-center shadow-lg shadow-oBlue/20",children:[(0,t.jsx)(n.FontAwesomeIcon,{icon:l.faPlus,className:"mr-2"}),w("logbook.saveEntry")]})]})]})]})})]})}],76103)},70127,function(e){e.n(e.i(76103))}]);
@@ -6,11 +6,11 @@
6
6
  8:I[97367,["/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js"],"ViewportBoundary"]
7
7
  a:I[97367,["/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js"],"MetadataBoundary"]
8
8
  c:I[68027,["/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js"],"default",1]
9
- :HL["/ocearo-ui/_next/static/chunks/2y3d8zopa8r5r.css","style"]
9
+ :HL["/ocearo-ui/_next/static/chunks/2ryo_bbmt6t74.css","style"]
10
10
  7:X
11
- 0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/ocearo-ui/_next/static/chunks/2y3d8zopa8r5r.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":[["$","head",null,{"children":["$","meta",null,{"name":"description","content":"Sailing made smarter with Ocearo: touchscreen-first sailing dashboard with navigation, weather, and instrumentation."}]}],["$","body",null,{"className":"geistsans_fce11f57-module__b_bU6G__variable geistmono_ed61a5f9-module__6fgesq__variable antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",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":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style","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":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[["$","link","0",{"rel":"stylesheet","href":"/ocearo-ui/_next/static/chunks/2y3d8zopa8r5r.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"baa0rBM5TIECz8JV_tLT6"}
11
+ 0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/ocearo-ui/_next/static/chunks/2ryo_bbmt6t74.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":[["$","head",null,{"children":[["$","meta",null,{"name":"apple-mobile-web-app-capable","content":"yes"}],["$","meta",null,{"name":"description","content":"Sailing made smarter with Ocearo: touchscreen-first sailing dashboard with navigation, weather, and instrumentation."}]]}],["$","body",null,{"className":"geistsans_fce11f57-module__b_bU6G__variable geistmono_ed61a5f9-module__6fgesq__variable antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",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":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style","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":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[["$","link","0",{"rel":"stylesheet","href":"/ocearo-ui/_next/static/chunks/2ryo_bbmt6t74.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"01VWnAYjs9QwBnnMyWbQF"}
12
12
  7:C
13
- 9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}],["$","meta","2",{"name":"theme-color","content":"#4bbcd8","media":"(prefers-color-scheme: light)"}],["$","meta","3",{"name":"theme-color","content":"#0a2e3d","media":"(prefers-color-scheme: dark)"}]]
13
+ 9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover"}],["$","meta","2",{"name":"theme-color","content":"#f7f8f9","media":"(prefers-color-scheme: light)"}],["$","meta","3",{"name":"theme-color","content":"#101216","media":"(prefers-color-scheme: dark)"}]]
14
14
  d:I[27201,["/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js"],"IconMark"]
15
15
  6:null
16
16
  b:[["$","title","0",{"children":"Ocearo"}],["$","meta","1",{"name":"description","content":"Sailing made smarter"}],["$","link","2",{"rel":"manifest","href":"./manifest.json","crossOrigin":"$undefined"}],["$","meta","3",{"name":"format-detection","content":"telephone=no"}],["$","meta","4",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","5",{"name":"apple-mobile-web-app-title","content":"Ocearo"}],["$","meta","6",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link","7",{"rel":"shortcut icon","href":"./favicon.ico"}],["$","link","8",{"rel":"icon","href":"./favicon.ico","type":"image/x-icon"}],["$","link","9",{"rel":"icon","href":"./favicon.svg","type":"image/svg+xml","sizes":"any"}],["$","link","10",{"rel":"icon","href":"./favicon-96x96.png","type":"image/png","sizes":"96x96"}],["$","link","11",{"rel":"apple-touch-icon","href":"./apple-touch-icon.png"}],["$","$Ld","12",{}]]