ocearo-ui 0.1.21 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/404.html +1 -1
- package/README.fr.md +123 -133
- package/README.md +120 -134
- package/__next.__PAGE__.txt +19 -5
- package/__next._full.txt +11 -11
- package/__next._tree.txt +2 -2
- package/_next/static/chunks/0-c2-u5p6bxzo.js +1 -0
- package/_next/static/chunks/01atsfq_4opab.js +1 -0
- package/_next/static/chunks/0cx639tthxlz4.js +1 -0
- package/_next/static/chunks/0h2qsuyze9ds1.js +1 -0
- package/_next/static/chunks/0iqdztntvxh3c.js +119 -0
- package/_next/static/chunks/0iztd835j5p1n.js +700 -0
- package/_next/static/chunks/{2nxsyowmuwpjy.js → 0jfox92up1jvy.js} +1 -1
- package/_next/static/chunks/0jpa5m78l0ib0.js +1 -0
- package/_next/static/chunks/0kpstejrka-7k.js +1 -0
- package/_next/static/chunks/0n95joti2n2py.js +3 -0
- package/_next/static/chunks/0oaqe70syw_b5.js +1 -0
- package/_next/static/chunks/0ohleay4roayh.js +353 -0
- package/_next/static/chunks/0on1skx9l54-9.js +1 -0
- package/_next/static/chunks/0w_skktmh3e48.js +1 -0
- package/_next/static/chunks/0y-dctk-kmqss.js +1 -0
- package/_next/static/chunks/0yiqocv54ogoq.js +1 -0
- package/_next/static/chunks/0zlk2mlkvbtj1.js +1 -0
- package/_next/static/chunks/0zwc9m4qgtwle.js +1 -0
- package/_next/static/chunks/11awvgcou7v4r.js +1 -0
- package/_next/static/chunks/144mjqdrx42lq.js +1 -0
- package/_next/static/chunks/1d81m3g9jqkob.js +1 -0
- package/_next/static/chunks/1ed7ayfg19cjb.js +1 -0
- package/_next/static/chunks/1epya-yh2wvj2.js +1 -0
- package/_next/static/chunks/1exvcc71cgr4t.js +446 -0
- package/_next/static/chunks/1fzzb4jtgv5gg.js +9 -0
- package/_next/static/chunks/1g8fbzv0hu0i2.js +1 -0
- package/_next/static/chunks/1gaiqhzy_0d7s.js +1 -0
- package/_next/static/chunks/1gq4t2dyr7rq3.js +1 -0
- package/_next/static/chunks/1l-jew0-1-3eq.js +30 -0
- package/_next/static/chunks/1ptj3mv8b_tzs.js +1 -0
- package/_next/static/chunks/1w1xks0hp_tlr.js +346 -0
- package/_next/static/chunks/1xekc18cyi4sx.js +1 -0
- package/_next/static/chunks/1y35unwvy8p98.js +1 -0
- package/_next/static/chunks/2aq8orcir5h03.js +1 -0
- package/_next/static/chunks/2fdpvhx4oo81h.js +1 -0
- package/_next/static/chunks/2g-xpe7xnropn.js +409 -0
- package/_next/static/chunks/2kmptoy43h0mx.js +1 -0
- package/_next/static/chunks/2n86yq1wz1yx7.js +1 -0
- package/_next/static/chunks/2r_h93rt76vka.js +1 -0
- package/_next/static/chunks/2rebcvig176xk.js +564 -0
- package/_next/static/chunks/2w71oj1brox5z.js +1 -0
- package/_next/static/chunks/2wayx8t5r5fi9.js +1 -0
- package/_next/static/chunks/2y3d8zopa8r5r.css +3 -0
- package/_next/static/chunks/3--qzv1u6c7_7.js +1 -0
- package/_next/static/chunks/31lugryguappr.js +1 -0
- package/_next/static/chunks/32j_j396qs7be.js +1 -0
- package/_next/static/chunks/32yn_fc-es66m.js +22 -0
- package/_next/static/chunks/34_oyzp8_pi_m.js +1 -0
- package/_next/static/chunks/34wvn5zw0a69w.js +1 -0
- package/_next/static/chunks/37t6vg8fb1-z8.js +1 -0
- package/_next/static/chunks/3k5itcabq5oqs.js +9 -0
- package/_next/static/chunks/3ktj0iemsr1m-.js +1 -0
- package/_next/static/chunks/3nm7o0eq5abhg.js +1 -0
- package/_next/static/chunks/3s6nzrbk-8mnv.js +31 -0
- package/_next/static/chunks/3td9mnhvcj9cq.js +1 -0
- package/_next/static/chunks/3xjnsskh0tayo.js +1 -0
- package/_next/static/chunks/3zqx8h9yg5-ch.js +1 -0
- package/_next/static/chunks/turbopack-1h111qg8l92rw.js +1 -0
- package/_not-found/__next._full.txt +12 -12
- package/_not-found/__next._not-found.__PAGE__.txt +19 -2
- package/_not-found/__next._tree.txt +2 -2
- package/_not-found.html +1 -1
- package/_not-found.txt +12 -12
- package/boats/boats.json +40 -5
- package/index.html +1 -1
- package/index.txt +11 -11
- package/package.json +14 -14
- package/settings/__next._full.txt +14 -14
- package/settings/__next._tree.txt +2 -2
- package/settings/__next.settings.__PAGE__.txt +22 -5
- package/settings.html +1 -1
- package/settings.txt +14 -14
- package/__next._head.txt +0 -6
- package/__next._index.txt +0 -5
- package/_next/static/chunks/009rlietvsaq2.js +0 -1
- package/_next/static/chunks/070stlm97b9a2.js +0 -1
- package/_next/static/chunks/08gn5_gd6amkq.js +0 -1
- package/_next/static/chunks/0abo2oxxw3hpi.js +0 -1
- package/_next/static/chunks/0jzbiie0nzar2.js +0 -1
- package/_next/static/chunks/0l9s4rhr00adq.js +0 -1
- package/_next/static/chunks/0ri_um14-5x7u.js +0 -1
- package/_next/static/chunks/0utifqhyv2cuc.js +0 -1
- package/_next/static/chunks/0uvr7xkt_5uno.js +0 -1
- package/_next/static/chunks/0wzr1__so6xme.js +0 -1
- package/_next/static/chunks/0zjxnzbxh76mt.js +0 -1
- package/_next/static/chunks/11ln9lzzbo35q.js +0 -1
- package/_next/static/chunks/1bz0tcmhjmjgh.js +0 -1
- package/_next/static/chunks/1d4h-sglyo8ft.js +0 -1
- package/_next/static/chunks/1gizigk3w6q7j.js +0 -31
- package/_next/static/chunks/1porlo35ga4zu.js +0 -1
- package/_next/static/chunks/1ptwltjb3h6jf.js +0 -4
- package/_next/static/chunks/1sq_733weprvs.js +0 -1
- package/_next/static/chunks/1w1ua0-p5lk1e.js +0 -38
- package/_next/static/chunks/1wv5e5qomv-7g.css +0 -3
- package/_next/static/chunks/27hn45pv56pv7.js +0 -393
- package/_next/static/chunks/28y-j215vt42m.js +0 -1
- package/_next/static/chunks/29-ag86gvlc40.js +0 -9
- package/_next/static/chunks/2a0yjir_3mk1m.js +0 -1
- package/_next/static/chunks/2atijj_pkc4uc.js +0 -2
- package/_next/static/chunks/2baz6j1q913qw.js +0 -1
- package/_next/static/chunks/2ccpehidlaq88.js +0 -1
- package/_next/static/chunks/2lez3uww9j4t0.js +0 -135
- package/_next/static/chunks/2lvvt2f1l5sfu.js +0 -1
- package/_next/static/chunks/2nd5amcst4lhp.js +0 -1
- package/_next/static/chunks/2pwmb4pkqygy_.js +0 -1
- package/_next/static/chunks/2rsdqsatgq9ta.js +0 -1
- package/_next/static/chunks/2uao1hfsz-oy8.js +0 -1
- package/_next/static/chunks/2urimbxg5bqv3.js +0 -1
- package/_next/static/chunks/2yghvponatk1x.js +0 -135
- package/_next/static/chunks/31i14-jemhnic.js +0 -863
- package/_next/static/chunks/32cbrrsp-x35l.js +0 -1
- package/_next/static/chunks/36ra6xjie0dsv.js +0 -9
- package/_next/static/chunks/3dt63tw_9r0jt.js +0 -38
- package/_next/static/chunks/3iuz3f0429awx.js +0 -1
- package/_next/static/chunks/3jh1u-s3k0bkk.js +0 -1
- package/_next/static/chunks/3jupxlga7r_do.js +0 -1
- package/_next/static/chunks/3m57lnggu30tr.js +0 -243
- package/_next/static/chunks/3rhgquok36e79.js +0 -1
- package/_next/static/chunks/3sgrkzk20mxs6.js +0 -54
- package/_next/static/chunks/42dfiu6iby3fq.js +0 -1
- package/_next/static/chunks/43ps2cu5ahf8n.js +0 -3
- package/_next/static/chunks/turbopack-0pirmko-w-775.js +0 -1
- package/_not-found/__next._head.txt +0 -6
- package/_not-found/__next._index.txt +0 -5
- package/_not-found/__next._not-found.txt +0 -5
- package/boats/ais/ais-30.glb +0 -0
- package/boats/ais/ais-31.glb +0 -0
- package/boats/ais/ais-35.glb +0 -0
- package/boats/ais/ais-36.glb +0 -0
- package/boats/ais/ais-37.glb +0 -0
- package/boats/ais/ais-40.glb +0 -0
- package/boats/ais/ais-50.glb +0 -0
- package/boats/ais/ais-60.glb +0 -0
- package/boats/ais/ais-70.glb +0 -0
- package/boats/ais/ais-80.glb +0 -0
- package/settings/__next._head.txt +0 -6
- package/settings/__next._index.txt +0 -5
- package/settings/__next.settings.txt +0 -5
- /package/_next/static/{hlKDicTyNGfd7dmHqo5m5 → baa0rBM5TIECz8JV_tLT6}/_buildManifest.js +0 -0
- /package/_next/static/{hlKDicTyNGfd7dmHqo5m5 → baa0rBM5TIECz8JV_tLT6}/_clientMiddlewareManifest.js +0 -0
- /package/_next/static/{hlKDicTyNGfd7dmHqo5m5 → baa0rBM5TIECz8JV_tLT6}/_ssgManifest.js +0 -0
package/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/ocearo-ui/_next/static/chunks/1wv5e5qomv-7g.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/ocearo-ui/_next/static/chunks/1gizigk3w6q7j.js"/><script src="/ocearo-ui/_next/static/chunks/2lvvt2f1l5sfu.js" async=""></script><script src="/ocearo-ui/_next/static/chunks/3jh1u-s3k0bkk.js" async=""></script><script src="/ocearo-ui/_next/static/chunks/2atijj_pkc4uc.js" async=""></script><script src="/ocearo-ui/_next/static/chunks/1ptwltjb3h6jf.js" async=""></script><script src="/ocearo-ui/_next/static/chunks/turbopack-0pirmko-w-775.js" async=""></script><script src="/ocearo-ui/_next/static/chunks/1d4h-sglyo8ft.js" async=""></script><script src="/ocearo-ui/_next/static/chunks/3jupxlga7r_do.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><meta name="description" content="Sailing made smarter with Ocearo: touchscreen-first sailing dashboard with navigation, weather, and instrumentation."/><title>404: This page could not be found.</title><meta name="theme-color" content="#4bbcd8" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#0a2e3d" media="(prefers-color-scheme: dark)"/><title>Ocearo</title><meta name="description" content="Sailing made smarter"/><link rel="manifest" href="./manifest.json"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Ocearo"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="shortcut icon" href="./favicon.ico"/><link rel="icon" href="./favicon.ico" type="image/x-icon"/><link rel="icon" href="./favicon.svg" type="image/svg+xml" sizes="any"/><link rel="icon" href="./favicon-96x96.png" type="image/png" sizes="96x96"/><link rel="apple-touch-icon" href="./apple-touch-icon.png"/><script src="/ocearo-ui/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body class="geistsans_fce11f57-module__b_bU6G__variable geistmono_ed61a5f9-module__6fgesq__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/ocearo-ui/_next/static/chunks/1gizigk3w6q7j.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/ocearo-ui/_next/static/chunks/1d4h-sglyo8ft.js\",\"/ocearo-ui/_next/static/chunks/3jupxlga7r_do.js\"],\"default\"]\n3:I[37457,[\"/ocearo-ui/_next/static/chunks/1d4h-sglyo8ft.js\",\"/ocearo-ui/_next/static/chunks/3jupxlga7r_do.js\"],\"default\"]\n4:I[97367,[\"/ocearo-ui/_next/static/chunks/1d4h-sglyo8ft.js\",\"/ocearo-ui/_next/static/chunks/3jupxlga7r_do.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/ocearo-ui/_next/static/chunks/1d4h-sglyo8ft.js\",\"/ocearo-ui/_next/static/chunks/3jupxlga7r_do.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/ocearo-ui/_next/static/chunks/1d4h-sglyo8ft.js\",\"/ocearo-ui/_next/static/chunks/3jupxlga7r_do.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/ocearo-ui/_next/static/chunks/1d4h-sglyo8ft.js\",\"/ocearo-ui/_next/static/chunks/3jupxlga7r_do.js\"],\"default\",1]\n:HL[\"/ocearo-ui/_next/static/chunks/1wv5e5qomv-7g.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/ocearo-ui/_next/static/chunks/1wv5e5qomv-7g.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/ocearo-ui/_next/static/chunks/1d4h-sglyo8ft.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/ocearo-ui/_next/static/chunks/3jupxlga7r_do.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/1wv5e5qomv-7g.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"hlKDicTyNGfd7dmHqo5m5\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"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)\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[27201,[\"/ocearo-ui/_next/static/chunks/1d4h-sglyo8ft.js\",\"/ocearo-ui/_next/static/chunks/3jupxlga7r_do.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"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\"}],[\"$\",\"$Le\",\"12\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/ocearo-ui/_next/static/chunks/2y3d8zopa8r5r.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/ocearo-ui/_next/static/chunks/3s6nzrbk-8mnv.js"/><script src="/ocearo-ui/_next/static/chunks/0on1skx9l54-9.js" async=""></script><script src="/ocearo-ui/_next/static/chunks/32yn_fc-es66m.js" async=""></script><script src="/ocearo-ui/_next/static/chunks/34wvn5zw0a69w.js" async=""></script><script src="/ocearo-ui/_next/static/chunks/0y-dctk-kmqss.js" async=""></script><script src="/ocearo-ui/_next/static/chunks/turbopack-1h111qg8l92rw.js" async=""></script><script src="/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js" async=""></script><meta name="robots" content="noindex"/><meta name="theme-color" content="#4bbcd8" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#0a2e3d" media="(prefers-color-scheme: dark)"/><title>Ocearo</title><meta name="description" content="Sailing made smarter"/><link rel="manifest" href="./manifest.json"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Ocearo"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="shortcut icon" href="./favicon.ico"/><link rel="icon" href="./favicon.ico" type="image/x-icon"/><link rel="icon" href="./favicon.svg" type="image/svg+xml" sizes="any"/><link rel="icon" href="./favicon-96x96.png" type="image/png" sizes="96x96"/><link rel="apple-touch-icon" href="./apple-touch-icon.png"/><meta name="next-size-adjust" content=""/><meta name="description" content="Sailing made smarter with Ocearo: touchscreen-first sailing dashboard with navigation, weather, and instrumentation."/><title>404: This page could not be found.</title><script src="/ocearo-ui/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body class="geistsans_fce11f57-module__b_bU6G__variable geistmono_ed61a5f9-module__6fgesq__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/ocearo-ui/_next/static/chunks/3s6nzrbk-8mnv.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js\"],\"default\"]\n3:I[37457,[\"/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js\"],\"default\"]\n4:I[97367,[\"/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js\"],\"default\",1]\n:HL[\"/ocearo-ui/_next/static/chunks/2y3d8zopa8r5r.css\",\"style\"]\n7:X\n0:{\"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\"}\n7:C\n9:[[\"$\",\"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)\"}]]\nd:I[27201,[\"/ocearo-ui/_next/static/chunks/0h2qsuyze9ds1.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"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\",{}]]\n"])</script></body></html>
|
package/README.fr.md
CHANGED
|
@@ -1,198 +1,188 @@
|
|
|
1
|
+
[](LICENSE)
|
|
2
|
+
[](https://www.npmjs.com/package/ocearo-ui)
|
|
3
|
+
[](https://signalk.org)
|
|
1
4
|
[](https://github.com/laborima/ocearo-ui/issues)
|
|
2
|
-
[](CONTRIBUTING.md)
|
|
3
|
-
[](https://opensource.org/licenses/Apache-2.0)
|
|
4
5
|
|
|
5
|
-
[English
|
|
6
|
+
[English 🇬🇧](README.md)
|
|
6
7
|
|
|
7
8
|
# Ocearo UI
|
|
8
9
|
|
|
9
|
-
**
|
|
10
|
+
**L’affichage de navigation open source pour Signal K.** Une image 3D claire et en temps réel du bateau, de la mer et du trafic autour — réglage des voiles, règles de barre, homme à la mer, veille au mouillage, bathymétrie et météo — dans une interface sobre inspirée de la visualisation de conduite Tesla. Il tourne comme webapp Signal K sur le serveur du bord (un Raspberry Pi suffit) et dans n’importe quel navigateur à bord : écran de table à cartes, tablette de cockpit ou téléphone.
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+

|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
> Toutes les images de cette page sont des captures de l’application, alimentée par des données réelles de La Rochelle du 4 octobre 2026 : vent Open-Meteo, marée, bathymétrie SHOM 20 m et trafic AIS scénarisé.
|
|
14
15
|
|
|
15
16
|
---
|
|
16
17
|
|
|
17
|
-
##
|
|
18
|
+
## Sommaire
|
|
18
19
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
20
|
+
- [Points forts](#points-forts)
|
|
21
|
+
- [La vue 3D](#la-vue-3d)
|
|
22
|
+
- [Trafic et règles de barre](#trafic-et-règles-de-barre)
|
|
23
|
+
- [Sécurité : homme à la mer et mouillage](#sécurité--homme-à-la-mer-et-mouillage)
|
|
24
|
+
- [Instruments et systèmes du bord](#instruments-et-systèmes-du-bord)
|
|
25
|
+
- [Hors-ligne en mer](#hors-ligne-en-mer)
|
|
26
|
+
- [Installation](#installation)
|
|
27
|
+
- [Configuration](#configuration)
|
|
28
|
+
- [Développement](#développement)
|
|
29
|
+
- [Sources de données et crédits](#sources-de-données-et-crédits)
|
|
30
|
+
- [Contribuer](#contribuer) · [Licence](#licence) · [Avertissement](#avertissement-de-navigation)
|
|
28
31
|
|
|
29
32
|
---
|
|
30
33
|
|
|
31
|
-
##
|
|
34
|
+
## Points forts
|
|
32
35
|
|
|
33
|
-
|
|
34
|
-
- **
|
|
35
|
-
- **
|
|
36
|
-
- **
|
|
37
|
-
- **
|
|
36
|
+
- **Un bateau qu’on règle depuis l’écran.** Grand-voile, voiles d’avant et spi asymétrique dessinés d’après le vent (creux, vrillage, ris, changements de voile), avec bandes de creux, penons, chariot de grand-voile et chariots de foc à leur place.
|
|
37
|
+
- **La mer autour de vous, de cinq façons.** Une mer réaliste construite à partir du vent réel, la carte en direct avec le balisage, le fond en 3D, la prévision de vent, ou un sol épuré façon FSD pour la régate.
|
|
38
|
+
- **Un trafic lisible d’un coup d’œil.** Les cibles AIS dessinées selon leur type et leur taille réels, qui glissent entre deux messages, colorées selon qui doit manœuvrer d’après le RIPAM — avec la manœuvre à faire.
|
|
39
|
+
- **La tactique.** Laylines vers le waypoint, isochrones tirées de vos polaires (où vous serez dans 5, 10 et 15 minutes), conseil VMG et bateau fantôme à la vitesse polaire.
|
|
40
|
+
- **La sécurité d’abord.** Repère homme à la mer avec dérive estimée, veille au mouillage avec la vraie trace d’évitage, alerte de petits fonds selon votre tirant d’eau.
|
|
41
|
+
- **Tout le reste du bord.** Tableau de bord, moteur et entretien, énergie, réservoirs, journal de bord avec rejeu des sorties, pilote automatique, médias et documents — en 12 langues, unités métriques, impériales ou nautiques, thèmes jour, sombre et nuit rouge.
|
|
42
|
+
- **Pensé pour le bateau.** Fonctionne hors-ligne une fois la zone téléchargée, s’adapte au Raspberry Pi, ne lit que des chemins Signal K standard.
|
|
38
43
|
|
|
39
|
-
|
|
40
|
-
- **Radar AIS** : Visualisation 3D des navires à proximité avec des panneaux d'informations détaillés.
|
|
41
|
-
- **Routes et Navigation** : Widget dédié pour les routes Signal K, les waypoints et les calculs de navigation en temps réel.
|
|
42
|
-
- **Contexte Environnemental** : Niveaux de marée, prévisions météo (API Signal K) et surveillance de la profondeur avec assiette du navire.
|
|
43
|
-
- **Laylines** : Visualisation haute précision des laylines en 3D pour l'aide à la navigation tactique.
|
|
44
|
+
---
|
|
44
45
|
|
|
45
|
-
|
|
46
|
-
- **Contrôle Autopilote** : Interface autopilote entièrement intégrée pour une gestion fluide du navire.
|
|
47
|
-
- **Surveillance Moteur** : Jauges complètes pour les températures, pressions et consommation de carburant avec suivi des pleins.
|
|
48
|
-
- **Indicateurs Style Tesla** : Barres modernes haute visibilité pour l'état des batteries et les niveaux de réservoirs.
|
|
49
|
-
- **Interface Personnalisable** : Support de 12 langues et unités configurables (métrique, impérial, nautique).
|
|
46
|
+
## La vue 3D
|
|
50
47
|
|
|
51
|
-
|
|
48
|
+
Le cœur d’Ocearo est une scène 3D en direct centrée sur votre bateau. Un bouton fait défiler cinq représentations du monde autour.
|
|
49
|
+
|
|
50
|
+
| | |
|
|
51
|
+
|---|---|
|
|
52
|
+
|  |  |
|
|
53
|
+
| **Carte.** OpenStreetMap avec le balisage et les feux OpenSeaMap, à l’échelle de votre bateau et des cibles AIS. Utilise un fournisseur de cartes Signal K (MBTiles) s’il est installé. | **Bathymétrie.** Le fond en grille de relevé : relief exagéré, isobathes, sondes à la marée du moment, ligne de sondeur depuis la quille, et l’eau trop peu profonde pour votre tirant d’eau hachurée en orange. Relevés SHOM de 5 à 20 m sur les côtes françaises, relief mondial ailleurs. |
|
|
54
|
+
|  |  |
|
|
55
|
+
| **Météo.** La prévision de vent à 48 h autour du bateau (Open-Meteo) aux couleurs de Windy, avec un curseur de temps. | **Polaires et laylines.** Où les polaires vous mettent dans 5, 10 et 15 minutes à chaque cap, les laylines vers le waypoint et la VMG à suivre. |
|
|
56
|
+
|
|
57
|
+
La **mer** elle-même est générée à partir du vent réel : hauteur, longueur et direction d’une mer de vent côtière plus une houle, moutons à partir d’environ 7 nœuds, reflet du ciel et soleil à sa vraie place, et votre propre sillage qui suit la route réellement parcourue. Les voiles sont dessinées d’après le vent apparent avec leur réglage : bandes de creux avec la profondeur et la position du creux maximum, penons au guindant et à la chute, et chariots d’écoute sur leurs rails.
|
|
52
58
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
### **Vue Croisière**
|
|
56
|
-
- **Visualisation 3D** : Fournit une vue 3D dynamique du navire, affichant des éléments critiques tels que :
|
|
57
|
-
- Direction du vent avec **laylines actives**
|
|
58
|
-
- Compas 3D de haute précision
|
|
59
|
-
- Niveau de profondeur et assiette du navire
|
|
60
|
-
- Navires à proximité représentés en 3D via les données AIS
|
|
61
|
-
- **HUD de réglage des voiles** : Indicateurs en arc en temps réel pour le chariot de GV et les chariots de foc au niveau du compas.
|
|
62
|
-
- Forme de voile basée sur la physique (cambrure et vrillage) reflétant les conditions de vent actuelles.
|
|
63
|
-
|
|
64
|
-

|
|
65
|
-
|
|
66
|
-
### **Vue au Mouillage**
|
|
67
|
-
- Représentation 3D simplifiée du navire avec les données clés au mouillage :
|
|
68
|
-
- Position GPS
|
|
69
|
-
- Heure
|
|
70
|
-
- Niveaux de marée
|
|
71
|
-
- Profondeur
|
|
72
|
-
- État de la batterie
|
|
73
|
-
|
|
74
|
-

|
|
75
|
-
|
|
76
|
-
### **Vue Aide au Stationnement**
|
|
77
|
-
- Utilise les données des caméras et capteurs pour simplifier l'accostage :
|
|
78
|
-
- Affichage des prédictions de trajectoire selon le vent et l'angle de barre
|
|
79
|
-
- Indications de vitesse et flux vidéo en direct de la caméra avant
|
|
80
|
-
- Mise en évidence des places de port disponibles
|
|
81
|
-
|
|
82
|
-
*En cours de développement.*
|
|
83
|
-
|
|
84
|
-

|
|
85
|
-
|
|
86
|
-
### **Autres Vues**
|
|
87
|
-
Visuels additionnels améliorant les fonctionnalités du système :
|
|
88
|
-
|
|
89
|
-

|
|
90
|
-

|
|
91
|
-

|
|
92
|
-

|
|
93
|
-

|
|
94
|
-

|
|
95
|
-

|
|
96
|
-

|
|
97
|
-

|
|
98
|
-

|
|
99
|
-

|
|
100
|
-

|
|
59
|
+
Bateaux : un racer de 10,8 m (par défaut), un catamaran de 14 m et des modèles plus simples, au choix dans les réglages.
|
|
101
60
|
|
|
102
61
|
---
|
|
103
62
|
|
|
104
|
-
##
|
|
105
|
-
La feuille de route d'Ocean Robot inclut des fonctionnalités avancées visant à améliorer la sécurité et l'efficacité :
|
|
63
|
+
## Trafic et règles de barre
|
|
106
64
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
65
|
+
| | |
|
|
66
|
+
|---|---|
|
|
67
|
+
|  |  |
|
|
68
|
+
| **À nous de manœuvrer.** Un navire en pêche croise devant : d’après la règle 18, le voilier s’en écarte. Le bateau et le bandeau passent en rouge orangé, le conseil nomme la règle et le changement de cap (« Éviter : 15° sur bâbord »). | **À lui de manœuvrer.** Un voilier bâbord amures qui arrive par tribord doit s’écarter (règle 12) : il passe en violet avec la manœuvre attendue de lui. S’il n’agit pas, le conseil de la règle 17 b) apparaît. |
|
|
69
|
+
|
|
70
|
+
Les couleurs ont partout le même sens : **rouge** — risque de collision et c’est à nous de manœuvrer ; **violet** — risque de collision et c’est à lui ; **orange** — proche mais sans route de collision ; gris — rien à signaler. CPA et TCPA viennent du cap et de la vitesse des deux navires ; les seuils se règlent dans les réglages. Les cibles AIS sont dessinées par type et longueur (voiliers, catamarans, ferries, cargos, remorqueurs, chalutiers, vedettes SNSM…) et estimées entre deux messages, si bien qu’elles glissent au lieu de sauter.
|
|
113
71
|
|
|
114
72
|
---
|
|
115
73
|
|
|
116
|
-
|
|
74
|
+
## Sécurité : homme à la mer et mouillage
|
|
75
|
+
|
|
76
|
+
| | |
|
|
77
|
+
|---|---|
|
|
78
|
+
|  |  |
|
|
79
|
+
| **Homme à la mer.** Un bouton (ou toute notification MOB Signal K) déclenche l’alarme : point de chute, position estimée de la personne maintenant d’après courant et dérive, ligne de dérive, relèvement et distance à suivre. | **Veille au mouillage.** Rayon d’alarme et anneau de veille à 80 % centrés sur l’ancre, la ligne de mouillage, et la trace réellement décrite par le bateau : une renverse ou une ancre qui chasse se voient à sa forme bien avant l’alarme. Gardée par [ocearo-core](https://github.com/laborima/ocearo-core), elle survit à un rechargement. |
|
|
117
80
|
|
|
118
|
-
|
|
81
|
+

|
|
82
|
+
|
|
83
|
+
**Aide au port.** Choisissez la place (cul à quai, pointe avant, à couple, coffre) et suivez la trajectoire prévue avec le vent et le courant.
|
|
119
84
|
|
|
120
85
|
---
|
|
121
86
|
|
|
122
|
-
##
|
|
87
|
+
## Instruments et systèmes du bord
|
|
123
88
|
|
|
124
|
-
|
|
89
|
+
| | |
|
|
90
|
+
|---|---|
|
|
91
|
+
|  |  |
|
|
92
|
+
| **Tableau de bord.** Radar AIS, météo, route vers le waypoint, réservoirs… à côté de la vue 3D, en thème jour… | …et en thème sombre, dans l’esprit de l’affichage FSD de Tesla : anthracite, formes claires, accents lumineux. |
|
|
93
|
+
|  |  |
|
|
94
|
+
| **Moteur.** Régime, heures, températures, pressions, inverseur et alarmes (les 24 notifications moteur NMEA 2000), plus un calendrier d’entretien. | **Énergie.** Batteries, charge et consommation, solaire, et l’état du Raspberry Pi qui fait tourner l’ensemble. |
|
|
95
|
+
|  |  |
|
|
96
|
+
| **Journal de bord.** Entrées automatiques et manuelles, chronologie, et sorties enregistrées à rejouer dans la vue 3D. | **Réglages.** Bateau, unités, langue, thèmes, qualité 3D (dont un profil Raspberry Pi), seuils d’alarme et données hors-ligne. |
|
|
125
97
|
|
|
126
|
-
|
|
127
|
-
- Suggérer des fonctionnalités : Partagez vos idées pour de nouvelles fonctionnalités.
|
|
128
|
-
- Contribuer au code : Soumettez des "pull requests" pour ajouter des fonctionnalités ou corriger des bugs.
|
|
129
|
-
- Soutenir le projet : Aidez à financer l'achat de webcams et de capteurs en m'offrant un café.
|
|
98
|
+

|
|
130
99
|
|
|
131
|
-
|
|
100
|
+
**Thème nuit.** Uniquement du rouge et du rouge orangé, pour préserver la vision de nuit, avec des valeurs plus lumineuses que les libellés pour rester facile à lire. Le thème peut changer tout seul avec le soleil.
|
|
132
101
|
|
|
133
102
|
---
|
|
134
103
|
|
|
135
|
-
##
|
|
104
|
+
## Hors-ligne en mer
|
|
136
105
|
|
|
137
|
-
|
|
106
|
+
En mer, internet est rare. Dès qu’il y en a (Wi-Fi du port, 4G), Ocearo garde ce dont il aura besoin :
|
|
138
107
|
|
|
139
|
-
|
|
108
|
+
- Les **tuiles de carte** déjà affichées, les **prévisions de vent** et la **bathymétrie** sont gardées dans le navigateur de l’écran ; *Réglages → Données hors-ligne* télécharge d’un coup la bathymétrie et la prévision sur 5, 10 ou 20 NM autour du bateau.
|
|
109
|
+
- Avec **[ocearo-core](https://github.com/laborima/ocearo-core)** sur le serveur, les **relevés SHOM** (modèles numériques de terrain de 5 à 20 m des côtes françaises, données ouvertes) sont téléchargés par le serveur lui-même et partagés avec tous les écrans du bord.
|
|
110
|
+
- Les serveurs de tuiles OpenStreetMap interdisent le téléchargement en masse : pour une carte complète hors-ligne, ajoutez des cartes MBTiles au serveur Signal K, qu’Ocearo utilise alors automatiquement.
|
|
140
111
|
|
|
141
|
-
|
|
142
|
-
git clone https://github.com/laborima/ocearo-ui.git
|
|
143
|
-
cd ocearo-ui
|
|
144
|
-
```
|
|
112
|
+
---
|
|
145
113
|
|
|
146
|
-
|
|
114
|
+
## Installation
|
|
147
115
|
|
|
148
|
-
|
|
149
|
-
npm install
|
|
150
|
-
```
|
|
116
|
+
Ocearo UI est une **webapp** Signal K.
|
|
151
117
|
|
|
152
|
-
|
|
118
|
+
1. Sur votre serveur Signal K (≥ 2.x), ouvrez **Appstore → Available**, cherchez **ocearo-ui** et installez-le (ou `npm install ocearo-ui` dans `~/.signalk`).
|
|
119
|
+
2. Redémarrez le serveur et ouvrez `http://<serveur-signalk>:3000/ocearo-ui/` sur n’importe quel écran du bord.
|
|
120
|
+
3. Recommandé : installez **[ocearo-core](https://www.npmjs.com/package/ocearo-core)** pour le journal de bord, la veille au mouillage, la bathymétrie SHOM, les métriques système et le copilote IA.
|
|
153
121
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
122
|
+
Une démo en ligne avec des données simulées : <https://laborima.github.io/ocearo-ui/>
|
|
123
|
+
|
|
124
|
+
### Prérequis Signal K
|
|
125
|
+
|
|
126
|
+
Ocearo lit des chemins Signal K standard ; quand un chemin manque, son affichage est vide plutôt que faux. Sur un bateau NMEA 2000 typique, ces plugins publient ce qu’il lui faut :
|
|
157
127
|
|
|
158
|
-
|
|
128
|
+
| Plugin | Fournit | Utilisé par |
|
|
129
|
+
|--------|---------|-------------|
|
|
130
|
+
| [`signalk-derived-data`](https://www.npmjs.com/package/signalk-derived-data) | Vent réel et cap vrai (activer `heading`, `angleTrueWater`, `directionTrue`) | Vent, réglage des voiles, polaires, compas |
|
|
131
|
+
| [`@meri-imperiumi/signalk-autostate`](https://www.npmjs.com/package/@meri-imperiumi/signalk-autostate) | `navigation.state` | Affichage des voiles, priorité des alertes |
|
|
132
|
+
| [`@signalk/set-system-time`](https://www.npmjs.com/package/@signalk/set-system-time) | Horloge système depuis le GPS | Marées, jour/nuit, journal |
|
|
133
|
+
| [`@signalk/signalk-autopilot`](https://www.npmjs.com/package/@signalk/signalk-autopilot) | API pilote Signal K v2 | Vue pilote |
|
|
134
|
+
| [`ocearo-core`](https://www.npmjs.com/package/ocearo-core) | Journal, mouillage, bathymétrie, métriques système, copilote IA | Journal, veille au mouillage, bathymétrie, onglet Raspberry Pi |
|
|
159
135
|
|
|
160
|
-
|
|
161
|
-
Tous les modèles 3D ont une longueur de flottaison de 10 mètres et sont positionnés à 0 sur l'axe Y. Utilisez Blender pour les ajustements.
|
|
136
|
+
Matériel : un Raspberry Pi 4 ou 5 fait tourner sans peine le serveur et un écran ; choisissez la qualité 3D *Raspberry Pi* sur l’écran du Pi. Tout navigateur récent sert d’écran déporté.
|
|
162
137
|
|
|
163
138
|
---
|
|
164
139
|
|
|
165
|
-
|
|
166
|
-
Créez des fichiers JSON sous le chemin suivant :
|
|
167
|
-
`public/tides/${harbor}/${MM}_${yyyy}.json`
|
|
140
|
+
## Configuration
|
|
168
141
|
|
|
169
|
-
|
|
142
|
+
Tout se règle dans l’application (**Réglages**) : adresse et authentification du serveur Signal K, modèle de bateau, tirant d’eau et polaires, unités, langue, thème (manuel ou selon le soleil), qualité 3D, échelle AIS et seuils de collision (CPA, TCPA), et données hors-ligne. Les réglages sont propres à chaque écran.
|
|
170
143
|
|
|
171
|
-
|
|
144
|
+
Pour installer l’application en plein écran sur une tablette ou un téléphone (PWA), servez Signal K en HTTPS sur le réseau du bord : voir [docs/ssl.md](docs/ssl.md) (en anglais).
|
|
172
145
|
|
|
173
|
-
|
|
146
|
+
---
|
|
174
147
|
|
|
175
|
-
|
|
176
|
-
Pour déployer votre propre compilation :
|
|
148
|
+
## Développement
|
|
177
149
|
|
|
178
150
|
```bash
|
|
179
151
|
git clone https://github.com/laborima/ocearo-ui.git
|
|
180
152
|
cd ocearo-ui
|
|
181
153
|
npm install
|
|
182
|
-
|
|
183
|
-
|
|
154
|
+
npm run dev # http://localhost:3000 — indiquez votre serveur Signal K dans les réglages
|
|
155
|
+
npm run lint
|
|
156
|
+
npm run build # export statique dans out/
|
|
184
157
|
```
|
|
185
158
|
|
|
159
|
+
Pour essayer un build sur un serveur Signal K, liez-le comme webapp : `npm run link` (lien symbolique de `out/` vers `~/.signalk/node_modules/ocearo-ui`), puis redémarrez le serveur.
|
|
160
|
+
|
|
161
|
+
Technologies : Next.js 16 (export statique), React 19, Three.js avec React Three Fiber, Tailwind CSS 4, i18next. Les bateaux, les voiles et la flotte AIS sont procéduraux (aucun modèle à télécharger) ; les conventions du projet sont dans [AGENTS.md](AGENTS.md).
|
|
162
|
+
|
|
163
|
+
Les tables de marée pour le hors-ligne sont dans `public/tides/<port>/<MM>_<aaaa>.json`.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Sources de données et crédits
|
|
168
|
+
|
|
169
|
+
- Cartes © contributeurs [OpenStreetMap](https://www.openstreetmap.org/copyright) (ODbL) ; balisage © [OpenSeaMap](https://openseamap.org) (CC BY-SA).
|
|
170
|
+
- Bathymétrie : modèles numériques de terrain du [SHOM](https://data.shom.fr) (Licence Ouverte Etalab 2.0), servis par ocearo-core ; relief mondial issu des [tuiles Terrarium](https://registry.opendata.aws/terrain-tiles/) d’AWS Open Data (GEBCO, ETOPO, SRTM et autres).
|
|
171
|
+
- Prévision de vent : [Open-Meteo](https://open-meteo.com) (CC BY 4.0).
|
|
172
|
+
- Position du soleil : équations du calculateur solaire de la NOAA.
|
|
173
|
+
|
|
186
174
|
---
|
|
187
175
|
|
|
188
|
-
|
|
176
|
+
## Contribuer
|
|
177
|
+
|
|
178
|
+
Rapports de bugs, idées et pull requests sont bienvenus — voir les [issues](https://github.com/laborima/ocearo-ui/issues). Les changements sont listés dans le [CHANGELOG](CHANGELOG.md).
|
|
179
|
+
|
|
180
|
+
[](https://www.buymeacoffee.com/laborima)
|
|
189
181
|
|
|
190
|
-
|
|
182
|
+
## Licence
|
|
191
183
|
|
|
192
|
-
|
|
184
|
+
[Apache 2.0](LICENSE).
|
|
193
185
|
|
|
194
|
-
|
|
195
|
-
- Gardez une conscience situationnelle et suivez les règles de sécurité maritime.
|
|
196
|
-
- Les développeurs d'Ocearo UI ne sont pas responsables des incidents ou erreurs de navigation liés à l'utilisation de ce logiciel.
|
|
186
|
+
## Avertissement de navigation
|
|
197
187
|
|
|
198
|
-
|
|
188
|
+
Ocearo UI améliore la conscience de la situation ; ce **n’est pas un système de navigation ou de sécurité certifié** et il ne doit pas être la seule source d’information de navigation. Recoupez toujours avec les cartes et instruments officiels, veillez et appliquez les règles de barre. Les auteurs déclinent toute responsabilité en cas d’incident lié à son utilisation.
|