@lystech/sections 0.4.3 → 0.4.4

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 (2) hide show
  1. package/dist/editeur.js +121 -117
  2. package/package.json +1 -1
package/dist/editeur.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx as e, jsxs as f, Fragment as ne } from "react/jsx-runtime";
2
2
  import { createRoot as oe } from "react-dom/client";
3
- import { useState as M, useRef as V, useEffect as X, useCallback as Y, useMemo as $ } from "react";
3
+ import { useState as M, useRef as V, useEffect as j, useCallback as Y, useMemo as $ } from "react";
4
4
  function me({
5
5
  jeton: n,
6
6
  site: t,
@@ -20,7 +20,7 @@ function me({
20
20
  });
21
21
  return d(h, i), await h.json();
22
22
  }
23
- async function g(o, i, h) {
23
+ async function b(o, i, h) {
24
24
  const v = await fetch(s + o, {
25
25
  method: i,
26
26
  headers: a,
@@ -33,14 +33,14 @@ function me({
33
33
  schemas: () => l("/site-sections/public/" + encodeURIComponent(t) + "/schemas", !1),
34
34
  /** Ce qui existe sur une page, brouillons compris. */
35
35
  pourPage: (o) => l("/site-sections?page=" + encodeURIComponent(o)),
36
- creer: (o, i, h) => g("/site-sections", "POST", { page: o, blockType: i, draft: h }),
37
- enregistrerBrouillon: (o, i) => g("/site-sections/" + o + "/draft", "PUT", { draft: i }),
38
- publier: (o) => g("/site-sections/" + o + "/publish", "POST"),
36
+ creer: (o, i, h) => b("/site-sections", "POST", { page: o, blockType: i, draft: h }),
37
+ enregistrerBrouillon: (o, i) => b("/site-sections/" + o + "/draft", "PUT", { draft: i }),
38
+ publier: (o) => b("/site-sections/" + o + "/publish", "POST"),
39
39
  /** Ramène le brouillon à ce qui est en ligne. */
40
- annuler: (o) => g("/site-sections/" + o + "/revert", "POST")
40
+ annuler: (o) => b("/site-sections/" + o + "/revert", "POST")
41
41
  };
42
42
  }
43
- const fe = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAW+UlEQVR42u17aZBc13Xed859r7tnATAASYALqBQlxZZBmaTNRREtagw5VEWyxZJcNVOKHNslRaJlu0I5UbSXaziRUq54VWJbjlwpxrQtx5ph2TJN2YQpGRizxEUiBYjCwg0kABLrEBxgML29d+/58uPe190ARRAbE9vCLXTNYKan+/b3vvOd75xzH3B+nV/n1/l1fp1f59fJFikA5J/i1v/fb3piwuHQOgE2AatXE7OzBoDfz/yRd//sL1/wsY99bJmTl7kiU1OK8fEMU1P6/cOgqSnF9LS9duo33jg/vzDnDh/tqmEevtxDw87c2fYRxy2XdLnjwbvvOMbBPY2PO8xtCoD8f2dW9iq+tgKwVq4/2H3d5atcIciOFZeggauMhsIMzbKLF5R7x2750LczH+5bXSu/tuMrf7LD5uY8IDEc160jpqftHxdApGB2VjE5Gc72DbyTa91QndnaVaV78kCm3ZImRiNhos7UXdbJG5dJje/aXbb9sls+9HCDxZeXN1p/8dTs7N6ebr36QMn30sKXhNgUqf9FxAgAnHHAhEHOgOqkqAiX/7f/8Y3u6MiNWhZBDyy6fOdBSAgwGAyE0EiIBRUGIIM4AAYt2gt18ssXBP/Fp//mzi2sgDqXok7KBKCzACASXi4M+mCRsvjcc/V/tXvz/7rpua1vg0wGiBCknrb+iPBHPvvrr7Msuw5moFMNFy9HedkYAggDQRIGEYo4JbIaydzKoCGEkDVWtuqjH97nat9a+VP//k/X3fIz6zA7GwAQExPurBLpzIwDZxxEOCsSRCT8xpYtI8mOvCxAxOys/s5rXtM+VrTueSqzr6177rHPcevWGkQMpDtN/cHB2vBP2/LlNah4VRXNHcKly+EvGgGMff6SgBlAiJDOAa5GMvdFYJZn7frIz+zByLdWv+MDv/ZLE780itnZkECS02SMgtTZyckAmQwf3bJl9Vue2TxxxYFn//wudj9DCE4kw0vfYGbGyeRkWPPMg3/ZueJ1775w94Fv/lCz/YG/vvJN27BxY4b16/2pUHdmclI//Ka3frs9NnaVlqUpTEEg+AI42oQ+uR+62AZUYeRAFAtAQER6m/NkMIEDM9S7SzsuhH3k6b/9o/vik6cEeAVtIgWYVchkUAD/Zsc3b9zr3K2Lkr9z4ZILLpL98wcub+Lqx66+ej5uoS8p+lIfNwGSclkHXxjaPx+ODNVueGx06P63fufBd2D9eo+NG0+e+WYidT9z/U3rw8joVRJKExEVEUAFLs+AkTrC5atgtQzGQSYBoIESAESpIQ0Z6TIzCju+Xav90AG4v7v05n/3a5xK4Jwk5CbSfiCT4Se+ed/1b9j28N1PZvVvHFm+4ueL3F3kXjzcWXu09ZOPXXPNIczO6ol6+xKAZhFl4acOdu7Pl47tGyqL0AVX7lxW/+trNn99AuvX+/GTgbRtGwXAYpb9x3J4CApQnACqEFWoyyD1Gjg2gnDJCphU6YMVQvEfDaT1fiakZJQst2A+E1sYGv3kRQ/s3PC2d713zUDIveRizU5Ohl+8/0sr1235h88/OTz6wNHRkXcVRYf1Fw93XZ5h5MXmnd+97sZvY+PG7HtlbXnZWBWxH9j28D3tC1f+pDu2VHYFmRmx+sji5HevX3/X+MaN2dyJ4RazTLj2t7/4o0+PNL7lnSA3qonFtCMCIaA0dJtNsNmB7jwId3gJdEmLTtxc+pFE3CAkTAAv9KDLhrvFU6+p891b7v7f2zE+nmFuzseQul0g03bzpr951+7G8OePrVzxWjaXkBOhJqLmHJZUW2sLf+XmH71xDwCBiJ1MpPtr0yYFACV2GAmzIPXSEzQcWjb8Zzc89LX1c+vXe8zMuBMAggDYp/ZxPzKiTmBM7FFVQARUAZ0ia9SBegZethJWd9CQOERGoAigSio0MNkCS6hlROZQ+la99i93Ffr1K9/z/qsxN+evvfXWHACcTNubN/zV556uD999FPJaOXTIZ60upPAulCE067noUvvuzdf+2O4UWvZKab63xtPXPIR9UnqEEGCk1gpPL8j3NGqzN89tuAKTk6Gn+lNTislJu/6//8G6zvDIT8N3qSJOBFBVUAVwAlEBBdB6DajnCMsb4MXLYSSUgFAgMZv0Qw4EQWgVdumhkCyjD93cXbyvKxvWTXzwmkf/8A/LR37hF7Jr77nrjudGRz9zbOlYkKVFQ+EzFh6+LNEtC2G3i9HQ+SuQgosukpOm45dbNR9aKD0sGBAMhGi9W4buUOOCrbn78szMTA2zswJScOWVAoB7Xf6f/PKRPAODqIo4BVTSgxBHwAmYCbLGEEQVXDOGsHIYCBaTWA+cCAhTiAkJMCSGMQo86JQ+dNWt2dss733rrZ/44Q/e8vb/uW9o6P3tF+ZL1246droaul2UZQeh6LIM3uHwkfYVXHwQIsSmTXZmtRitw2BgCDBGNRXA1Zst371w7PpPtYvP4ife+YlrH3kkf3Rysrzp9++4fGsj+7cWSmbqHBJrCUCgSY2Jyi1njRyhXYMZIZddAN/sICsMJtYPs4EEJ5VniqINiACiEMCJBPNwa7YeaT40tNAd7nQ6Bgt5qQJIgKiLSSIX0g2Ldsud963f9rwAOFkJc1IGWSnBQgCCCSyyCD5ADS5bPBaOjA7956s23POmR6+7rgSAZxvu/WFsbNgRAU6kYo44gSihoqA6UAFRgWQOOtKIOIyNQC5aDgZLTIlOmwPCbQA0hZ+ZgWaABQgNBNWJsnO0PXxs7jvMW121bonQ6cKKDlh0gbIAiy5phlooH1eZtpfo6OkwiIbAYDAzGCTuMAqpOBAhz/VFp1+c2rjxuu3z8/mmtn0Q5uFUNDJGUlEBqBgoAmVK6SIgBPlQHaFeg5Ul9JKVsBea0GY7gkhCJOmRAELri3YFoghUom4ZKVmWMeyal+7yEcgb18DMA1kGOIO4DDRHFh6uVe4kgJPpzysCZEozC6AZKkvCdC0F4lyn5cs1Y1f/7eHFnyub+W6uHr5cmkeDOHFCgkqQAqGAmj6n9N0FQWieIRupozjiYcsakLVjsMeXoJR+mEkU754pUYUwgJVmiUKooBBkEM0ExY7nUBvLgTXDgPdgVoPPDEoHKwuEsvN8Stln0Q8KCZxgUYMsxj5BUAhHOh5rcj7Y57or3AshdOlURHoim8oFAZhKh15zuk9IuKEGdKkNswB38Ri47wXoQhPBSb9WS4yLdkWhSjB40BhLRVFQFQGAgwN8ieLxvXAjl8NyB5qA9CAzYbcAzMdWyvyVPAuAADGDhagFMqAJESgTKQscg1ziG7hEOwUkFVGp8IMKYq2FlOLJxKJYbwGEq+XQWg5rBdhQDW7thQgLzWQO48VAMogKjUwWxswYoh5J5cglXkDnHMoXmtC9R8G1KxBCB8ocFqCqHTjYgVOuuk9cc1WR6AvHQMBCTPOJTQwBFiLFSULaHbpuYaoSP7TG1B49j0BVIZqyoKbfi0btEAUyRT7UgIiL73PJGMLYEOhDT3NAwhmTaQwx+kQjgCSYpEBoAAOMhsyA8PwCZKkN63Zh3YJWepFmK6xs8YWqNDptgKrVQhgxAPBGWIAEixsJPn01WOlhZiIiCiBmLIlaw57/6ddiohor9QrM5K51KIdmDqDAhmrQtRcCZhCrslo/9YsxhrsgiZrBmPZmIQl4AByBxTZsoQWUHmx3QO+Bwh++UI8eAgDcfvuZA+QCO/ABNJOKOT1d8gYEj1CWsSTQ+EEtAcMKpd736eeDD4kOmwCknkFqGQQODAQvXQlbPhQvRkrrZpVxrEykQCFQMwgicyT0SxUTAD6Ah5tAUcJ8QQTCOuWh+2795OKJrY3TACgqexZCx8oyOmlvERwfQO/BUCL4uPmqzpJk3KDoMUeqR89RDzhrJz1WIcuQNbL4ayM4XAMuHYuZij17ERttZL+uVYGAkBBiaCHALIAMAH18n8UO0CphpSd9AItyrwp4KmOm7/2EStlL67AIQDJlFkKK974WAcezAooIkiQflFhUAdgLiyq8pM8+GaqDqlAkE37pSqCWQYKlDGqA+ViH9XxQBkJi2IW4NzH2wFQS0gmQZgEpS4ovkXXL3TyFCHplJ23hKMoCDCawBJQPkU1mYABUHawnvNIPrwHtofR/P/iQJN5Rkxy0kUNzF0PPorvmqlGgDDFDWSXIKauBoGi/K0lCLdX9jM02iMVOQasbgS4DGMITp9U7/h7jYQJAXfIjUpSgmVaizJS9gvfRI2dZCh/EWkf6YdXPZgmcgezWy2oJKKhAahk0zyoPAGY5uPaCCEiwfm1P6wEC84DLYtMwtUWqTBafB1AMaJVACUW3QM2H7QCA7dt5ZnOx228HADRarQWpSxuZG6IPTFOaGOtm0HoWw0pSWPWaWwIKe8b3OC9PAU/8eaWTmYPUHLQpCKJRb1aPgaM1oN0FVeEoyRuhV7aIVM48lTUmADT5p5hDpCCtNAXaPvfuGQDAunU8Mwal1PezKw4dUgsHBQqaJ0Loe6LAmLqdRppLxZqU0sUlzTkhrJz2JArpwSr1O4XWXBJeiXoy2gBXLQN8gKvChklzYNAqzFLNFg1sulasyiKCZkQgXFnuv3lp2R7EKv4MARIhpqb0V975ka4E7qIKxBtpHjCfsoSBTqP+uD44MhBGMaQ0GcXUVQQgor3HYFajCqSWp7IkFraWKbBmZWSFsWrlx1SfSpqepWDVN6qeY71uZPyvQnzY+sd3TndSBuOZi/SPQwnAFXzKhDCSFqK1h8UrKS4DnPYEt3LIoujri/RNIlPWYnoupe+oe0Dmtd6uYhEqkFWjsNz1UjySEWS/aQYTGYQu9YxC/39KigGZ5wOMTkbPyeGFegibm8Hgk9UnCalcbMWUuJ0ICE9ovvP4LnyUm/g3cvxcF6YA8wQ0LbVeDVg2Cow0IItLUJfFUgNZvxiuXrLaFwgYYC6yMLUhHMsuci3+HgCwejvPPItFhGOx3Wo9hMUmEeh6Ljp5DamyTRVWIgPhJcf1oUVjTQanoBNozzcN+CQkpmnfK5GADOfAaAMIlfD3B2n94lnSuIi9EVIkcpohZSpZUe5a9y/47TjfmrWzAygJ2A0HD25DGZ6xPJdkMWKWCtZzsoPag94MrErlsUnPE9x1X5sGZ2YVQNKr9gkBMgVG6qD5E6YdOJ6pqWvQY3DVpxUxZBky4qtz03d2MD6eneoBiJPFITE1lc1OTxd1HzaIy2FmhhCpTE9YaT0/UzFIUDHCQRD7wJIpRN1xBSu1n9l0ADRq6hup9MKW6sCheuorDWYo9MSZKXvBiMpIDPBM1QzDTv5PDK/VPDujWK0rY8kx3O78mS4VIFSriacEwjpF/EBV+aCxaXVcyk8tjQrIyJrUt3f91of0CluNOiUpbKusV8si66oCPr0nU0NNQkgAEhSXgktASrC8IY7c/JZy8SEAkk6JnAOAJicDpqZ09223PeDanYdZa0iABTPG7kOrSBmiqsXSxjU56wRCv/TQxID0y5Tmj/dPVecwSnCV+UTdcaJcfRdZG3tWAgXg+tnAxeLZQaTh8PnZ2dmA8XF3usfk8AosEgG4ovC/rh6CIBEcAKHZgZUhmcXY4RvUlV79pX0h75vLfrnBwX4RLWYeqUqRaFfoHEQ0pvMBi64iQPCxNkwNuYrRAjG6TLVsP7NuxGYACObmwrkFKLFo15FDX8mPLD7MWsOZMQgAdEqEYy1Ilg14nuMf4jS558pF68AoKAE60DhjaRDr/z2TyMNsgDkyoNMKeB9FSRSkwEQhcDAK4TKpK35z7s47O4k9PLcAVSyanrYhHz4qHYNBARoZDOX84sCH6WtRr7wYMIi9xvFxFX0qMdJXK4qXHmIQhbQ6UPZrlJ4MMcC8j9qFinWMTsjlWiu7j78Pq+8ApvR02XPqAE1OBszMuP0fv+0b9WOt39N81JEMTgV+/ijY7MYqPLGg38qI7BhkSa/8SM9hAtY0FqFo+Z4IS5XRPaGHj0UApWr2J/EPAeJD/7016hBV6URklcMnfvfe3+1iYrucydlGPY0T8oaZGfdjnRc+kS0c2UHXyAAGtAPKvS9Ca1nyOOh3EVUG+j3Sa4foAMt6NZlTsDRYu4iMjBkIcAptdsDFNpi5viMXgOLAstublfVKGkVAVnN5KDbs3vDnd1fHcs70LPMpHpIVYts23jM93VrVab9PWkXbw0muYp09h2GtElLLj2uUVQay731wnNOudEtUwNwB7QLS9aCT1HU2SC7QgwvQdgFmrndmSNRBzMcGnkqciGgGqiMkQ6307TV57SME5FTaGmcPUDXkn5rKdk9/fMtI69gHBKrmxLDYYeep/ZFFEkuJ4xtlkVVOFHR6XIkhKjAX/VO5sBS7hpW9cwYXBPLMIQASOwc9XVPQdwFL4EjKcqpes5pbBvvUExu+9AQmJvRszlef/nHauTnD1FTWmv7Vx8ZueEunHFn+diVDsXBM8ktXiFs2HGumgbGO9j4YoNLXI1GJO8gcWASUz84DZjC1OLWsZ8j2HQU374TkaQaGNAAwA7s+vq5zEXinXl0jHy27dx/aNPsrPIvQOnOABkDqfPZX71923Y31ctnycTZLb+2Oa7x+DZz1e9PVpIMD2av6vgLOag62/wjC/gWELJ7pDko4ZJB/+C7kWBuWazR/lc/pFnHs7ATx4LDzInk2VHS/c/1Q/Zannv5ueSot1XMbYseHW+DUVLbwXz/16dqLB3/LjY7knd0Lvv3kAdpoPTZABhtovdSeNMlpYo9AfEC57wgohImHMcA16pDv7AL2LwCNWqrLFAoBCx/HzZkALgNEPZBnjbLz+BvG8nfee++XFjE1hXNxIv+sTqxjbo6YmXHFbb+4Yfmb3jxsI2M3dfe8aENrLxCsGhKU1stWCun1r0UUKumoR57BP7+A7vPzsDyF1lAdbuc88OCOOLNPfWcm18wQAHUQ50jVAMmzkbK75fUjeMdDX71rLyYmHL7whXNyX4c761eYnQVmZlznP3z471bdNO5LDP3rzoEFGfqBi4PkTsUstVb75qZqtiFToFuiuXVvnKC6ADZy6J4FYNP22AOrZgEiQDAE8xFglwWKExXnhqz4yg+vDO954KtfOYRzoDvnFqAIEjEz45q//KG5C3/85me6R8q3t7tlvfb6i31sdg6YZ/TDzWWKpcf3ofvCUWiNsEYG2f0icP92ZGWA5RpTfYQqtlwBg8vMsrrLfFmuEH768Ma7btv1xBOxz3yOmPPq3FA3NZVhetqvm/qda3a3yjvsrVf+yOibrwiuU4j66A9j98/gcofW3gUsbt0DbRgkeHDHfuDRXdDgQadp/g4AgSQNZgLNVY2o+c7Gla71yWf//qvfTFrKV+PWTndOXy1lt/npT+379Btv/JNHd+1dVUj9BnndWnFWBKNoPFWm8EfaWNyxF5ITcrQJPvgkZOveeJYgU4A0Qg0Ag1AJpwAkD+Wjo0Xx0YX77/rYwrNPRb3Zvt3+ad2SmXRAAbzm5z46eeQ9b/ttvOUNl2mnGZwEaOGx9NhzwkNHgGcOgNt2U1ttWj2PfXfSQRWM8zhot93Mg79vSO2Pfu8ivWcyaoxgakpe7bsR5VV97ZkZxeRkuPG9H7j0qZ9/92+VV732vcHl8N94Arb5WWDXAbj5o0CuYCagpeM1ZQFYuTszPlKD3bs8t6/t2fDlXTzhAgD/HG4Ln5lxmIy3IV394NdvmW+G95V/+cjl3DO/3DJ1zFEilAsawvNSFE8GX+wU7W5//bLw+EOzs+0BgVNMbJd/nreRk1LdsiCoqgsFSXXxwPDLh+r4eAb847td/NVjE2dcf24z4OgnJhzGp7KB++cF3+dLzoNwfp1f59f5dX6dX6/m+r8Cl0QchG1LcQAAAABJRU5ErkJggg==", ge = {
43
+ const fe = "data:image/png;base64,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", be = {
44
44
  apiKey: "AIzaSyCpAeHlt1wZvM5KtYg7X7MDVnWVJT86gvc",
45
45
  authDomain: "lystech.firebaseapp.com",
46
46
  projectId: "lystech",
@@ -48,7 +48,7 @@ const fe = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAA
48
48
  messagingSenderId: "237347321732",
49
49
  appId: "1:237347321732:web:7f9586d48e488d73ddcfd1"
50
50
  };
51
- function be() {
51
+ function ge() {
52
52
  return /* @__PURE__ */ f("span", { className: "marque", children: [
53
53
  /* @__PURE__ */ e("img", { src: fe, alt: "", width: 22, height: 22 }),
54
54
  /* @__PURE__ */ e("span", { className: "marque__mot", children: "Lystech" })
@@ -78,7 +78,7 @@ function ve({
78
78
  surJeton: r,
79
79
  surFermer: a
80
80
  }) {
81
- const [d, l] = M({ nom: "repos" }), g = (v) => {
81
+ const [d, l] = M({ nom: "repos" }), b = (v) => {
82
82
  switch (v) {
83
83
  case "auth/popup-blocked":
84
84
  return "Votre navigateur a bloqué la fenêtre de connexion. Autorisez les fenêtres pour ce site, puis réessayez.";
@@ -94,7 +94,7 @@ function ve({
94
94
  default:
95
95
  return "La connexion a échoué. Réessayez dans un instant.";
96
96
  }
97
- }, o = async (v, C = !1) => {
97
+ }, o = async (v, N = !1) => {
98
98
  const D = await fetch(t + "/site-sections/edit-login/third-party", {
99
99
  method: "POST",
100
100
  headers: { "Content-Type": "application/json" },
@@ -102,7 +102,7 @@ function ve({
102
102
  site: n,
103
103
  token: v,
104
104
  tokenType: "firebase",
105
- demanderAcces: C
105
+ demanderAcces: N
106
106
  })
107
107
  });
108
108
  if (D.status === 429) {
@@ -148,13 +148,13 @@ function ve({
148
148
  }, i = async (v) => {
149
149
  l({ nom: "envoi", quoi: v });
150
150
  try {
151
- const [{ initializeApp: C, getApps: D }, A] = await Promise.all([
151
+ const [{ initializeApp: N, getApps: D }, A] = await Promise.all([
152
152
  import("./morceaux/index.esm-B4AB50RA.js"),
153
153
  import("./morceaux/index.esm-B4hL1FOE.js")
154
- ]), q = D().find((P) => P.name === "lystech-edition") ?? C(ge, "lystech-edition"), U = v === "google" ? new A.GoogleAuthProvider() : new A.FacebookAuthProvider(), k = await (await A.signInWithPopup(A.getAuth(q), U)).user.getIdToken();
155
- await o(k);
156
- } catch (C) {
157
- l({ nom: "erreur", texte: g(String(C?.code ?? "")) });
154
+ ]), q = D().find((T) => T.name === "lystech-edition") ?? N(be, "lystech-edition"), U = v === "google" ? new A.GoogleAuthProvider() : new A.FacebookAuthProvider(), w = await (await A.signInWithPopup(A.getAuth(q), U)).user.getIdToken();
155
+ await o(w);
156
+ } catch (N) {
157
+ l({ nom: "erreur", texte: b(String(N?.code ?? "")) });
158
158
  }
159
159
  }, h = d.nom === "envoi";
160
160
  return /* @__PURE__ */ e("div", { className: "voile", role: "dialog", "aria-modal": "true", "aria-label": "Modifier ce site", children: /* @__PURE__ */ f("div", { className: "fenetre", children: [
@@ -169,7 +169,7 @@ function ve({
169
169
  }
170
170
  ),
171
171
  /* @__PURE__ */ f("div", { className: "fenetre__tete", children: [
172
- /* @__PURE__ */ e(be, {}),
172
+ /* @__PURE__ */ e(ge, {}),
173
173
  /* @__PURE__ */ e("h2", { className: "fenetre__titre", children: "Modifier ce site" }),
174
174
  /* @__PURE__ */ e("p", { className: "fenetre__sous", children: "Vous vous connectez à Lystech. Cet accès ne sert qu'à modifier le contenu de ce site." })
175
175
  ] }),
@@ -335,14 +335,14 @@ function ee({ champ: n, valeur: t, changer: s }) {
335
335
  }
336
336
  function re({ champ: n, valeur: t, changer: s, langue: r }) {
337
337
  if (n.type === "list") {
338
- const a = Array.isArray(t) ? t : [], d = n.of ?? [], l = (g, o, i) => {
339
- const h = a.map((v, C) => C === g ? { ...v, [o]: i } : v);
338
+ const a = Array.isArray(t) ? t : [], d = n.of ?? [], l = (b, o, i) => {
339
+ const h = a.map((v, N) => N === b ? { ...v, [o]: i } : v);
340
340
  s(h);
341
341
  };
342
342
  return /* @__PURE__ */ f("div", { className: "champ", children: [
343
343
  /* @__PURE__ */ e("span", { className: "champ__etiquette", children: n.label }),
344
344
  n.help && /* @__PURE__ */ e("p", { className: "champ__aide", children: n.help }),
345
- a.map((g, o) => /* @__PURE__ */ f("div", { className: "liste__item", children: [
345
+ a.map((b, o) => /* @__PURE__ */ f("div", { className: "liste__item", children: [
346
346
  /* @__PURE__ */ f("div", { className: "liste__tete", children: [
347
347
  /* @__PURE__ */ e("span", { className: "liste__rang", children: o + 1 }),
348
348
  /* @__PURE__ */ f("span", { style: { display: "flex", gap: 4 }, children: [
@@ -391,7 +391,7 @@ function re({ champ: n, valeur: t, changer: s, langue: r }) {
391
391
  {
392
392
  champ: i,
393
393
  langue: r,
394
- valeur: g?.[i.key],
394
+ valeur: b?.[i.key],
395
395
  changer: (h) => l(o, i.key, h)
396
396
  },
397
397
  i.key
@@ -404,7 +404,7 @@ function re({ champ: n, valeur: t, changer: s, langue: r }) {
404
404
  className: "bouton",
405
405
  onClick: () => s([
406
406
  ...a,
407
- Object.fromEntries(d.map((g) => [g.key, ye(g)]))
407
+ Object.fromEntries(d.map((b) => [b.key, ye(b)]))
408
408
  ]),
409
409
  children: "+ Ajouter"
410
410
  }
@@ -423,7 +423,7 @@ function re({ champ: n, valeur: t, changer: s, langue: r }) {
423
423
  {
424
424
  champ: n,
425
425
  valeur: d[l],
426
- changer: (g) => s({ ...d, [l]: g })
426
+ changer: (b) => s({ ...d, [l]: b })
427
427
  }
428
428
  )
429
429
  ] }, l))
@@ -442,8 +442,8 @@ function we(n) {
442
442
  for (const [a, d] of Object.entries(r)) {
443
443
  const l = String(d ?? "").trim();
444
444
  if (l.length < 2 || l.includes("{{")) continue;
445
- const g = t.get(l);
446
- g ? g.push({ ns: s, chemin: a }) : t.set(l, [{ ns: s, chemin: a }]);
445
+ const b = t.get(l);
446
+ b ? b.push({ ns: s, chemin: a }) : t.set(l, [{ ns: s, chemin: a }]);
447
447
  }
448
448
  return t;
449
449
  }
@@ -463,18 +463,18 @@ function Ne({
463
463
  actif: t,
464
464
  surModification: s
465
465
  }) {
466
- const r = V(/* @__PURE__ */ new Map()), a = V(null), [d, l] = M(null), g = V(n);
467
- g.current = n;
466
+ const r = V(/* @__PURE__ */ new Map()), a = V(null), [d, l] = M(null), b = V(n);
467
+ b.current = n;
468
468
  const o = V(s);
469
- return o.current = s, X(() => {
469
+ return o.current = s, j(() => {
470
470
  if (!t) return;
471
- const i = g.current.langueCourante(), h = we(g.current.dictionnaire(i)), v = () => {
471
+ const i = b.current.langueCourante(), h = we(b.current.dictionnaire(i)), v = () => {
472
472
  r.current = Ce(h);
473
473
  };
474
474
  v();
475
- let C;
475
+ let N;
476
476
  const D = new MutationObserver(() => {
477
- a.current || (clearTimeout(C), C = setTimeout(v, 250));
477
+ a.current || (clearTimeout(N), N = setTimeout(v, 250));
478
478
  });
479
479
  D.observe(document.body, { childList: !0, subtree: !0 });
480
480
  const A = "outline:2px dashed rgba(59,165,141,.85);outline-offset:3px;border-radius:3px;cursor:text;", q = (p) => {
@@ -502,7 +502,7 @@ function Ne({
502
502
  ), p.focus();
503
503
  const _ = window.getSelection(), Q = document.createRange();
504
504
  Q.selectNodeContents(p), _?.removeAllRanges(), _?.addRange(Q);
505
- }, k = async (p) => {
505
+ }, w = async (p) => {
506
506
  const c = a.current;
507
507
  if (!c) return;
508
508
  a.current = null;
@@ -513,14 +513,14 @@ function Ne({
513
513
  p && (c.el.textContent = c.avant);
514
514
  return;
515
515
  }
516
- const Q = g.current.langueCourante();
517
- g.current.poser(Q, c.ns, c.chemin, x), await o.current(c.ns, c.chemin, Q, x);
518
- }, P = (p) => {
516
+ const Q = b.current.langueCourante();
517
+ b.current.poser(Q, c.ns, c.chemin, x), await o.current(c.ns, c.chemin, Q, x);
518
+ }, T = (p) => {
519
519
  const c = p.target;
520
520
  if (!(c instanceof HTMLElement)) return;
521
521
  if (a.current) {
522
522
  if (a.current.el === c) return;
523
- k(!1);
523
+ w(!1);
524
524
  }
525
525
  const x = r.current.get(c);
526
526
  if (x) {
@@ -535,21 +535,21 @@ function Ne({
535
535
  y: p.clientY
536
536
  });
537
537
  }
538
- }, N = (p) => {
539
- a.current && (p.key === "Escape" ? (p.preventDefault(), k(!0)) : p.key === "Enter" && !p.shiftKey && (p.preventDefault(), k(!1)));
538
+ }, E = (p) => {
539
+ a.current && (p.key === "Escape" ? (p.preventDefault(), w(!0)) : p.key === "Enter" && !p.shiftKey && (p.preventDefault(), w(!1)));
540
540
  }, O = () => {
541
- a.current && k(!1);
541
+ a.current && w(!1);
542
542
  };
543
- document.addEventListener("mouseover", q, !0), document.addEventListener("mouseout", U, !0), document.addEventListener("click", P, !0);
543
+ document.addEventListener("mouseover", q, !0), document.addEventListener("mouseout", U, !0), document.addEventListener("click", T, !0);
544
544
  const R = (p) => {
545
545
  if (!a.current) return;
546
546
  const c = p.inputType;
547
- (c === "insertParagraph" || c === "insertLineBreak") && (p.preventDefault(), k(!1));
547
+ (c === "insertParagraph" || c === "insertLineBreak") && (p.preventDefault(), w(!1));
548
548
  };
549
- return document.addEventListener("beforeinput", R, !0), document.addEventListener("keydown", N, !0), document.addEventListener("focusout", O, !0), window.__lysChoisir = (p, c) => {
549
+ return document.addEventListener("beforeinput", R, !0), document.addEventListener("keydown", E, !0), document.addEventListener("focusout", O, !0), window.__lysChoisir = (p, c) => {
550
550
  l(null), I(c, p);
551
551
  }, () => {
552
- clearTimeout(C), D.disconnect(), document.removeEventListener("mouseover", q, !0), document.removeEventListener("mouseout", U, !0), document.removeEventListener("click", P, !0), document.removeEventListener("beforeinput", R, !0), document.removeEventListener("keydown", N, !0), document.removeEventListener("focusout", O, !0), a.current && k(!0), delete window.__lysChoisir;
552
+ clearTimeout(N), D.disconnect(), document.removeEventListener("mouseover", q, !0), document.removeEventListener("mouseout", U, !0), document.removeEventListener("click", T, !0), document.removeEventListener("beforeinput", R, !0), document.removeEventListener("keydown", E, !0), document.removeEventListener("focusout", O, !0), a.current && w(!0), delete window.__lysChoisir;
553
553
  };
554
554
  }, [t]), d ? /* @__PURE__ */ f(
555
555
  "div",
@@ -588,12 +588,12 @@ function Ne({
588
588
  }
589
589
  ) : null;
590
590
  }
591
- const Z = /^i18n:([^:]+):(.*)$/, G = "commun", H = "lystech-edit-mode";
591
+ const X = /^i18n:([^:]+):(.*)$/, G = "commun", H = "lystech-edit-mode";
592
592
  function te(n, t) {
593
593
  return JSON.stringify(n ?? {}) === JSON.stringify(t ?? {});
594
594
  }
595
595
  function Ee({ api: n, pont: t }) {
596
- const [s, r] = M([]), [a, d] = M([]), [l, g] = M(t.page), [o, i] = M(null), [h, v] = M({}), [C, D] = M(!1), [A, q] = M(() => {
596
+ const [s, r] = M([]), [a, d] = M([]), [l, b] = M(t.page), [o, i] = M(null), [h, v] = M({}), [N, D] = M(!1), [A, q] = M(() => {
597
597
  try {
598
598
  return window.localStorage.getItem(H) === "circuler" ? "circuler" : "modifier";
599
599
  } catch {
@@ -606,11 +606,11 @@ function Ee({ api: n, pont: t }) {
606
606
  } catch {
607
607
  }
608
608
  return m;
609
- }), [I, k] = M(!1), [P, N] = M(
609
+ }), [I, w] = M(!1), [T, E] = M(
610
610
  null
611
611
  );
612
- X(() => (t.surChangementDePage = (u) => {
613
- g(u), i(null), D(!1);
612
+ j(() => (t.surChangementDePage = (u) => {
613
+ b(u), i(null), D(!1);
614
614
  }, () => {
615
615
  t.surChangementDePage = void 0;
616
616
  }), [t]);
@@ -619,32 +619,32 @@ function Ee({ api: n, pont: t }) {
619
619
  const [u, m] = await Promise.all([
620
620
  n.pourPage(l),
621
621
  l === G ? Promise.resolve([]) : n.pourPage(G)
622
- ]), b = [...u, ...m];
623
- return d(b), b;
622
+ ]), g = [...u, ...m];
623
+ return d(g), g;
624
624
  } catch {
625
- return N({
625
+ return E({
626
626
  ton: "erreur",
627
627
  texte: "Impossible de lire le contenu du site."
628
628
  }), [];
629
629
  }
630
630
  }, [n, l]);
631
- X(() => {
631
+ j(() => {
632
632
  n.schemas().then(r).catch(() => r([]));
633
- }, [n]), X(() => {
633
+ }, [n]), j(() => {
634
634
  O();
635
635
  }, [O]);
636
636
  const R = Y(
637
637
  (u, m) => {
638
- let b = null, E = -1;
638
+ let g = null, y = -1;
639
639
  for (const z of s) {
640
- const y = Z.exec(z.blockType);
641
- if (!y || y[1] !== u) continue;
642
- const w = y[2];
643
- (w === "" || m === w || m.startsWith(w + ".")) && w.length > E && (b = z, E = w.length);
640
+ const k = X.exec(z.blockType);
641
+ if (!k || k[1] !== u) continue;
642
+ const C = k[2];
643
+ (C === "" || m === C || m.startsWith(C + ".")) && C.length > y && (g = z, y = C.length);
644
644
  }
645
- if (!b) return null;
646
- const S = Z.exec(b.blockType)?.[2] ?? "", T = S ? m.slice(S.length + 1) : m;
647
- return { bloc: b, champ: T };
645
+ if (!g) return null;
646
+ const S = X.exec(g.blockType)?.[2] ?? "", P = S ? m.slice(S.length + 1) : m;
647
+ return { bloc: g, champ: P };
648
648
  },
649
649
  [s]
650
650
  ), p = Y(
@@ -660,26 +660,26 @@ function Ee({ api: n, pont: t }) {
660
660
  () => a.filter((u) => u.draft && !te(u.draft, u.data)),
661
661
  [a]
662
662
  ), _ = Y(
663
- async (u, m, b, E) => {
663
+ async (u, m, g, y) => {
664
664
  const S = R(u, m);
665
665
  if (!S) {
666
- N({
666
+ E({
667
667
  ton: "erreur",
668
668
  texte: `Ce texte (${u}:${m}) n'appartient à aucun bloc déclaré.`
669
669
  });
670
670
  return;
671
671
  }
672
- const T = a.find((L) => L.blockType === S.bloc.blockType), z = T?.draft ?? T?.data ?? {}, y = z[S.champ], w = y && typeof y == "object" && !Array.isArray(y) ? { ...y, [b]: E } : { [b]: E }, B = { ...z, [S.champ]: w };
672
+ const P = a.find((L) => L.blockType === S.bloc.blockType), z = P?.draft ?? P?.data ?? {}, k = z[S.champ], C = k && typeof k == "object" && !Array.isArray(k) ? { ...k, [g]: y } : { [g]: y }, B = { ...z, [S.champ]: C };
673
673
  try {
674
- if (T?.UID)
675
- await n.enregistrerBrouillon(T.UID, B);
674
+ if (P?.UID)
675
+ await n.enregistrerBrouillon(P.UID, B);
676
676
  else {
677
677
  const L = S.bloc.pages?.[0] ?? l;
678
678
  await n.creer(L, S.bloc.blockType, B);
679
679
  }
680
- await O(), N(null);
680
+ await O(), E(null);
681
681
  } catch {
682
- N({
682
+ E({
683
683
  ton: "erreur",
684
684
  texte: "Enregistrement impossible. Votre texte est toujours à l'écran."
685
685
  });
@@ -688,87 +688,91 @@ function Ee({ api: n, pont: t }) {
688
688
  [n, R, l, O, a]
689
689
  ), Q = async () => {
690
690
  if (!x.length) return;
691
- k(!0), N(null);
691
+ w(!0), E(null);
692
692
  const u = x.length;
693
693
  try {
694
694
  for (const m of x) await n.publier(m.UID);
695
- await O(), t.recharger(), N({
695
+ await O();
696
+ for (const m of x) t.poserApercu(m.blockType, null);
697
+ t.recharger(), E({
696
698
  ton: "ok",
697
699
  texte: u === 1 ? "Publié. Vos visiteurs le voient maintenant." : `${u} modifications publiées.`
698
700
  });
699
701
  } catch {
700
- N({
702
+ E({
701
703
  ton: "erreur",
702
704
  texte: "La publication a échoué. Rien n'a été mis en ligne."
703
705
  });
704
706
  } finally {
705
- k(!1);
707
+ w(!1);
706
708
  }
707
709
  }, ie = async () => {
708
- k(!0);
710
+ w(!0);
709
711
  try {
710
- for (const m of x) await n.annuler(m.UID);
711
- const u = await O();
712
+ const u = x.map((g) => g.blockType);
713
+ for (const g of x) await n.annuler(g.UID);
714
+ const m = await O();
715
+ for (const g of u) t.poserApercu(g, null);
712
716
  if (t.sourceTexte) {
713
- const { appliquerAuxTextes: m } = await import("./morceaux/sourceTexte-BMPMpNg9.js");
714
- m(
715
- u.map((b) => ({ blockType: b.blockType, data: b.data })),
717
+ const { appliquerAuxTextes: g } = await import("./morceaux/sourceTexte-BMPMpNg9.js");
718
+ g(
719
+ m.map((y) => ({ blockType: y.blockType, data: y.data })),
716
720
  t.sourceTexte
717
721
  );
718
722
  }
719
- N({
723
+ E({
720
724
  ton: "info",
721
725
  texte: "Modifications abandonnées. On est revenu à ce qui est en ligne."
722
726
  });
723
727
  } finally {
724
- k(!1);
728
+ w(!1);
725
729
  }
726
730
  }, ce = (u) => {
727
- const m = a.find((z) => z.blockType === u), b = m?.draft ?? m?.data ?? {}, E = p(u), S = Z.exec(u), T = {};
728
- if (S && E && t.sourceTexte) {
729
- const z = S[1], y = S[2], w = t.sourceTexte.langues(), B = {};
730
- for (const L of w)
731
+ const m = a.find((z) => z.blockType === u), g = m?.draft ?? m?.data ?? {}, y = p(u), S = X.exec(u), P = {};
732
+ if (S && y && t.sourceTexte) {
733
+ const z = S[1], k = S[2], C = t.sourceTexte.langues(), B = {};
734
+ for (const L of C)
731
735
  B[L] = t.sourceTexte.dictionnaire(L)[z] ?? {};
732
- for (const L of E.fields) {
733
- const pe = y ? y + "." + L.key : L.key, W = {};
734
- for (const J of w) {
736
+ for (const L of y.fields) {
737
+ const pe = k ? k + "." + L.key : L.key, Z = {};
738
+ for (const J of C) {
735
739
  const K = B[J]?.[pe];
736
- typeof K == "string" && (W[J] = K);
740
+ typeof K == "string" && (Z[J] = K);
737
741
  }
738
- Object.keys(W).length && (T[L.key] = W);
742
+ Object.keys(Z).length && (P[L.key] = Z);
739
743
  }
740
744
  }
741
- for (const [z, y] of Object.entries(b)) {
742
- const w = T[z], B = y && typeof y == "object" && !Array.isArray(y) && w && typeof w == "object" && !Array.isArray(w);
743
- T[z] = B ? { ...w, ...y } : y;
745
+ for (const [z, k] of Object.entries(g)) {
746
+ const C = P[z], B = k && typeof k == "object" && !Array.isArray(k) && C && typeof C == "object" && !Array.isArray(C);
747
+ P[z] = B ? { ...C, ...k } : k;
744
748
  }
745
- v(T), i(u), D(!1), N(null);
746
- }, le = (u, m) => v((b) => ({ ...b, [u]: m })), ue = async () => {
749
+ v(P), i(u), D(!1), E(null);
750
+ }, le = (u, m) => v((g) => ({ ...g, [u]: m })), ue = async () => {
747
751
  if (o) {
748
- k(!0);
752
+ w(!0);
749
753
  try {
750
- const u = a.find((b) => b.blockType === o);
754
+ const u = a.find((g) => g.blockType === o);
751
755
  if (u?.UID) await n.enregistrerBrouillon(u.UID, h);
752
756
  else {
753
- const b = p(o)?.pages?.[0] ?? l;
754
- await n.creer(b, o, h);
757
+ const g = p(o)?.pages?.[0] ?? l;
758
+ await n.creer(g, o, h);
755
759
  }
756
760
  const m = await O();
757
761
  if (t.sourceTexte) {
758
- const { appliquerAuxTextes: b } = await import("./morceaux/sourceTexte-BMPMpNg9.js");
759
- b(
760
- m.map((E) => ({ blockType: E.blockType, data: E.draft ?? E.data })),
762
+ const { appliquerAuxTextes: g } = await import("./morceaux/sourceTexte-BMPMpNg9.js");
763
+ g(
764
+ m.map((y) => ({ blockType: y.blockType, data: y.draft ?? y.data })),
761
765
  t.sourceTexte
762
766
  );
763
767
  }
764
- N({
768
+ X.test(o) || t.poserApercu(o, h), E({
765
769
  ton: "ok",
766
770
  texte: "Enregistré. Rien n'a encore changé pour vos visiteurs."
767
771
  });
768
772
  } catch {
769
- N({ ton: "erreur", texte: "L'enregistrement a échoué." });
773
+ E({ ton: "erreur", texte: "L'enregistrement a échoué." });
770
774
  } finally {
771
- k(!1);
775
+ w(!1);
772
776
  }
773
777
  }
774
778
  }, de = () => {
@@ -781,7 +785,7 @@ function Ee({ api: n, pont: t }) {
781
785
  } catch {
782
786
  }
783
787
  window.location.reload();
784
- }, F = o ? p(o) : void 0, j = !o && !C;
788
+ }, F = o ? p(o) : void 0, W = !o && !N;
785
789
  return /* @__PURE__ */ f("div", { className: "calque", children: [
786
790
  /* @__PURE__ */ e(
787
791
  "div",
@@ -794,11 +798,11 @@ function Ee({ api: n, pont: t }) {
794
798
  Ne,
795
799
  {
796
800
  source: t.sourceTexte,
797
- actif: j && !I && A === "modifier",
801
+ actif: W && !I && A === "modifier",
798
802
  surModification: _
799
803
  }
800
804
  ),
801
- j && /* @__PURE__ */ f("div", { className: "barre", children: [
805
+ W && /* @__PURE__ */ f("div", { className: "barre", children: [
802
806
  /* @__PURE__ */ e("span", { className: "barre__point" }),
803
807
  /* @__PURE__ */ e("span", { className: "barre__texte", children: A === "modifier" ? "Cliquez un texte pour le corriger" : "Navigation libre — les clics ouvrent les liens" }),
804
808
  /* @__PURE__ */ e(
@@ -857,8 +861,8 @@ function Ee({ api: n, pont: t }) {
857
861
  }
858
862
  )
859
863
  ] }),
860
- P && j && /* @__PURE__ */ e("div", { className: "flottant", children: /* @__PURE__ */ e("p", { className: "message message--" + P.ton, children: P.texte }) }),
861
- C && /* @__PURE__ */ f("div", { className: "panneau", role: "dialog", "aria-label": "Tous les contenus", children: [
864
+ T && W && /* @__PURE__ */ e("div", { className: "flottant", children: /* @__PURE__ */ e("p", { className: "message message--" + T.ton, children: T.texte }) }),
865
+ N && /* @__PURE__ */ f("div", { className: "panneau", role: "dialog", "aria-label": "Tous les contenus", children: [
862
866
  /* @__PURE__ */ f("div", { className: "panneau__tete", children: [
863
867
  /* @__PURE__ */ f("div", { style: { flex: 1 }, children: [
864
868
  /* @__PURE__ */ e("h2", { className: "panneau__titre", children: "Tous les contenus" }),
@@ -878,7 +882,7 @@ function Ee({ api: n, pont: t }) {
878
882
  /* @__PURE__ */ f("div", { className: "panneau__corps", children: [
879
883
  c.length === 0 && /* @__PURE__ */ e("p", { className: "message message--info", children: "Aucun contenu déclaré pour cette page." }),
880
884
  c.map((u) => {
881
- const m = a.find((E) => E.blockType === u.blockType), b = m?.draft && !te(m.draft, m.data);
885
+ const m = a.find((y) => y.blockType === u.blockType), g = m?.draft && !te(m.draft, m.data);
882
886
  return /* @__PURE__ */ f(
883
887
  "button",
884
888
  {
@@ -887,7 +891,7 @@ function Ee({ api: n, pont: t }) {
887
891
  onClick: () => ce(u.blockType),
888
892
  children: [
889
893
  /* @__PURE__ */ e("span", { className: "rangee__nom", children: u.label }),
890
- /* @__PURE__ */ e("span", { className: "rangee__info", children: b ? "non publié" : `${u.fields.length} textes` })
894
+ /* @__PURE__ */ e("span", { className: "rangee__info", children: g ? "non publié" : `${u.fields.length} textes` })
891
895
  ]
892
896
  },
893
897
  u.blockType
@@ -919,7 +923,7 @@ function Ee({ api: n, pont: t }) {
919
923
  )
920
924
  ] }),
921
925
  /* @__PURE__ */ f("div", { className: "panneau__corps", children: [
922
- P && /* @__PURE__ */ e("p", { className: "message message--" + P.ton, children: P.texte }),
926
+ T && /* @__PURE__ */ e("p", { className: "message message--" + T.ton, children: T.texte }),
923
927
  F.fields.map((u) => /* @__PURE__ */ e(
924
928
  re,
925
929
  {
@@ -1339,7 +1343,7 @@ input:focus, select:focus, textarea:focus {
1339
1343
  discrete le reste du temps — c'est le geste qu'on fait une fois. */
1340
1344
  .bouton--sortie { color: var(--texte-doux); background: transparent; border-color: transparent; }
1341
1345
  .bouton--sortie:hover { background: rgba(217, 119, 106, 0.16); color: var(--danger); }
1342
- `, Pe = "lystech-editeur-hote", Te = "lystech-connexion-hote";
1346
+ `, Te = "lystech-editeur-hote", Pe = "lystech-connexion-hote";
1343
1347
  function ae(n) {
1344
1348
  document.getElementById(n)?.remove();
1345
1349
  const t = document.createElement("div");
@@ -1364,7 +1368,7 @@ function Ie({
1364
1368
  methodes: s,
1365
1369
  surJeton: r
1366
1370
  }) {
1367
- const { hote: a, point: d } = ae(Te), l = oe(d), g = () => o();
1371
+ const { hote: a, point: d } = ae(Pe), l = oe(d), b = () => o();
1368
1372
  l.render(
1369
1373
  /* @__PURE__ */ e(
1370
1374
  ve,
@@ -1375,7 +1379,7 @@ function Ie({
1375
1379
  surJeton: (i) => {
1376
1380
  o(), r(i);
1377
1381
  },
1378
- surFermer: g
1382
+ surFermer: b
1379
1383
  }
1380
1384
  )
1381
1385
  );
@@ -1388,7 +1392,7 @@ function Be({
1388
1392
  apiBaseUrl: s,
1389
1393
  pont: r
1390
1394
  }) {
1391
- const { hote: a, point: d } = ae(Pe), l = oe(d), g = () => {
1395
+ const { hote: a, point: d } = ae(Te), l = oe(d), b = () => {
1392
1396
  try {
1393
1397
  window.localStorage.setItem("lystech-edit-sortie", "1"), window.localStorage.removeItem("lystech-edit");
1394
1398
  } catch {
@@ -1403,7 +1407,7 @@ function Be({
1403
1407
  /* @__PURE__ */ e(
1404
1408
  Ee,
1405
1409
  {
1406
- api: me({ jeton: n, site: t, apiBaseUrl: s, surJetonRefuse: g }),
1410
+ api: me({ jeton: n, site: t, apiBaseUrl: s, surJetonRefuse: b }),
1407
1411
  pont: r
1408
1412
  }
1409
1413
  )
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lystech/sections",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "description": "Contenu de site editable par le client — lecture legere, edition chargee a la demande.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",