@cogenta/starters 0.2.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/dist/blueprints/assets/photos/association/coat-bank.jpg +0 -0
  2. package/dist/blueprints/assets/photos/association/food-bank.jpg +0 -0
  3. package/dist/blueprints/assets/photos/association/garden-corner.jpg +0 -0
  4. package/dist/blueprints/assets/photos/association/garden-planting.jpg +0 -0
  5. package/dist/blueprints/assets/photos/association/hall.jpg +0 -0
  6. package/dist/blueprints/assets/photos/association/hero.jpg +0 -0
  7. package/dist/blueprints/assets/photos/association/homework-club.jpg +0 -0
  8. package/dist/blueprints/assets/photos/association/orientation.jpg +0 -0
  9. package/dist/blueprints/assets/photos/association/partner-fr-college.png +0 -0
  10. package/dist/blueprints/assets/photos/association/partner-fr-delcourt.png +0 -0
  11. package/dist/blueprints/assets/photos/association/partner-fr-fondation.png +0 -0
  12. package/dist/blueprints/assets/photos/association/partner-fr-habitat.png +0 -0
  13. package/dist/blueprints/assets/photos/association/partner-fr-mairie.png +0 -0
  14. package/dist/blueprints/assets/photos/association/partner-fr-pharmacie.png +0 -0
  15. package/dist/blueprints/assets/photos/association/supper.jpg +0 -0
  16. package/dist/blueprints/assets/photos/blog/desk-setup.jpg +0 -0
  17. package/dist/blueprints/assets/photos/blog/library.jpg +0 -0
  18. package/dist/blueprints/assets/photos/blog/notebook-and-coffee.jpg +0 -0
  19. package/dist/blueprints/assets/photos/blog/notebooks.jpg +0 -0
  20. package/dist/blueprints/assets/photos/blog/platform.jpg +0 -0
  21. package/dist/blueprints/assets/photos/blog/pour-over.jpg +0 -0
  22. package/dist/blueprints/assets/photos/blog/typing.jpg +0 -0
  23. package/dist/blueprints/assets/photos/documentation/delivery-flow-en.png +0 -0
  24. package/dist/blueprints/assets/photos/documentation/delivery-flow-fr.png +0 -0
  25. package/dist/blueprints/assets/photos/magazine/allotments.jpg +0 -0
  26. package/dist/blueprints/assets/photos/magazine/archive-stacks.jpg +0 -0
  27. package/dist/blueprints/assets/photos/magazine/baguettes.jpg +0 -0
  28. package/dist/blueprints/assets/photos/magazine/dining-room.jpg +0 -0
  29. package/dist/blueprints/assets/photos/magazine/empty-tram-stop.jpg +0 -0
  30. package/dist/blueprints/assets/photos/magazine/gallery.jpg +0 -0
  31. package/dist/blueprints/assets/photos/magazine/office-block-dusk.jpg +0 -0
  32. package/dist/blueprints/assets/photos/magazine/reading-room.jpg +0 -0
  33. package/dist/blueprints/assets/photos/magazine/reception-hall.jpg +0 -0
  34. package/dist/blueprints/assets/photos/magazine/theatre.jpg +0 -0
  35. package/dist/blueprints/assets/photos/magazine/town-hall.jpg +0 -0
  36. package/dist/blueprints/assets/photos/magazine/tram-stop.jpg +0 -0
  37. package/dist/blueprints/assets/photos/portfolio/coast-boats.jpg +0 -0
  38. package/dist/blueprints/assets/photos/portfolio/coast-cover.jpg +0 -0
  39. package/dist/blueprints/assets/photos/portfolio/coast-ridge.jpg +0 -0
  40. package/dist/blueprints/assets/photos/portfolio/coast-water.jpg +0 -0
  41. package/dist/blueprints/assets/photos/portfolio/forest-beech.jpg +0 -0
  42. package/dist/blueprints/assets/photos/portfolio/forest-birch.jpg +0 -0
  43. package/dist/blueprints/assets/photos/portfolio/forest-branches.jpg +0 -0
  44. package/dist/blueprints/assets/photos/portfolio/forest-cover.jpg +0 -0
  45. package/dist/blueprints/assets/photos/portfolio/glacier-cave.jpg +0 -0
  46. package/dist/blueprints/assets/photos/portfolio/glacier-cover.jpg +0 -0
  47. package/dist/blueprints/assets/photos/portfolio/glacier-melt.jpg +0 -0
  48. package/dist/blueprints/assets/photos/portfolio/glacier-tongue.jpg +0 -0
  49. package/dist/blueprints/assets/photos/portfolio/lagoon-cover.jpg +0 -0
  50. package/dist/blueprints/assets/photos/portfolio/lagoon-egret.jpg +0 -0
  51. package/dist/blueprints/assets/photos/portfolio/lagoon-shore.jpg +0 -0
  52. package/dist/blueprints/assets/photos/portfolio/lagoon-storm.jpg +0 -0
  53. package/dist/blueprints/assets/photos/portfolio/port-cover.jpg +0 -0
  54. package/dist/blueprints/assets/photos/portfolio/port-dusk.jpg +0 -0
  55. package/dist/blueprints/assets/photos/portfolio/port-marina.jpg +0 -0
  56. package/dist/blueprints/assets/photos/portfolio/port-quay.jpg +0 -0
  57. package/dist/blueprints/assets/photos/portfolio/towers-cover.jpg +0 -0
  58. package/dist/blueprints/assets/photos/portfolio/towers-green.jpg +0 -0
  59. package/dist/blueprints/assets/photos/portfolio/towers-single.jpg +0 -0
  60. package/dist/blueprints/assets/photos/portfolio/towers-valley.jpg +0 -0
  61. package/dist/blueprints/assets/photos/portfolio/vines-cover.jpg +0 -0
  62. package/dist/blueprints/assets/photos/portfolio/vines-grapes.jpg +0 -0
  63. package/dist/blueprints/assets/photos/portfolio/vines-shed.jpg +0 -0
  64. package/dist/blueprints/assets/photos/portfolio/vines-tree.jpg +0 -0
  65. package/dist/blueprints/assets/photos/restaurant/beetroot-carpaccio.jpg +0 -0
  66. package/dist/blueprints/assets/photos/restaurant/chocolate-tart.jpg +0 -0
  67. package/dist/blueprints/assets/photos/restaurant/cod-vin-jaune.jpg +0 -0
  68. package/dist/blueprints/assets/photos/restaurant/duck-confit.jpg +0 -0
  69. package/dist/blueprints/assets/photos/restaurant/grilled-octopus.jpg +0 -0
  70. package/dist/blueprints/assets/photos/restaurant/hero.jpg +0 -0
  71. package/dist/blueprints/assets/photos/restaurant/market-stall.jpg +0 -0
  72. package/dist/blueprints/assets/photos/restaurant/mushroom-risotto.jpg +0 -0
  73. package/dist/blueprints/assets/photos/restaurant/pike-quenelle.jpg +0 -0
  74. package/dist/blueprints/assets/photos/restaurant/poached-pear.jpg +0 -0
  75. package/dist/blueprints/assets/photos/restaurant/praline-cake.jpg +0 -0
  76. package/dist/blueprints/assets/photos/restaurant/pumpkin-soup.jpg +0 -0
  77. package/dist/blueprints/assets/photos/restaurant/street-burdeau.jpg +0 -0
  78. package/dist/blueprints/assets/photos/saas/api-webhooks-en.png +0 -0
  79. package/dist/blueprints/assets/photos/saas/api-webhooks-fr.png +0 -0
  80. package/dist/blueprints/assets/photos/saas/approvals-queue-en.png +0 -0
  81. package/dist/blueprints/assets/photos/saas/approvals-queue-fr.png +0 -0
  82. package/dist/blueprints/assets/photos/saas/audit-log-en.png +0 -0
  83. package/dist/blueprints/assets/photos/saas/audit-log-fr.png +0 -0
  84. package/dist/blueprints/assets/photos/saas/erp-sync-en.png +0 -0
  85. package/dist/blueprints/assets/photos/saas/erp-sync-fr.png +0 -0
  86. package/dist/blueprints/assets/photos/saas/logo-castellan-alimentaire.png +0 -0
  87. package/dist/blueprints/assets/photos/saas/logo-cliniques-du-vivier.png +0 -0
  88. package/dist/blueprints/assets/photos/saas/logo-marenne-logistique.png +0 -0
  89. package/dist/blueprints/assets/photos/saas/logo-nordgate-habitat.png +0 -0
  90. package/dist/blueprints/assets/photos/saas/logo-tessaly-energies.png +0 -0
  91. package/dist/blueprints/assets/photos/saas/office-london.jpg +0 -0
  92. package/dist/blueprints/assets/photos/saas/office-montreal.jpg +0 -0
  93. package/dist/blueprints/assets/photos/saas/office-paris.jpg +0 -0
  94. package/dist/blueprints/assets/photos/saas/office-toronto.jpg +0 -0
  95. package/dist/blueprints/assets/photos/saas/policy-editor-en.png +0 -0
  96. package/dist/blueprints/assets/photos/saas/policy-editor-fr.png +0 -0
  97. package/dist/blueprints/assets/photos/saas/security-racks.jpg +0 -0
  98. package/dist/blueprints/assets/photos/saas/spend-reporting-en.png +0 -0
  99. package/dist/blueprints/assets/photos/saas/spend-reporting-fr.png +0 -0
  100. package/dist/blueprints/assets/photos/saas/sso-scim-en.png +0 -0
  101. package/dist/blueprints/assets/photos/saas/sso-scim-fr.png +0 -0
  102. package/dist/blueprints/assets/photos/store/aleppo-soap.jpg +0 -0
  103. package/dist/blueprints/assets/photos/store/copper-pan.jpg +0 -0
  104. package/dist/blueprints/assets/photos/store/crochet-throw.jpg +0 -0
  105. package/dist/blueprints/assets/photos/store/enamel-mug.jpg +0 -0
  106. package/dist/blueprints/assets/photos/store/hero.jpg +0 -0
  107. package/dist/blueprints/assets/photos/store/knit-sweater.jpg +0 -0
  108. package/dist/blueprints/assets/photos/store/leather-boots.jpg +0 -0
  109. package/dist/blueprints/assets/photos/store/leather-duffel.jpg +0 -0
  110. package/dist/blueprints/assets/photos/store/leather-wallet.jpg +0 -0
  111. package/dist/blueprints/assets/photos/store/moka-pot.jpg +0 -0
  112. package/dist/blueprints/assets/photos/store/skillet.jpg +0 -0
  113. package/dist/blueprints/assets/photos/store/stoneware-bottles.jpg +0 -0
  114. package/dist/blueprints/assets/photos/store/story.jpg +0 -0
  115. package/dist/blueprints/assets/photos/store/turned-bowl.jpg +0 -0
  116. package/dist/blueprints/association-copy-en.d.ts +3 -0
  117. package/dist/blueprints/association-copy-en.d.ts.map +1 -0
  118. package/dist/blueprints/association-copy-en.js +834 -0
  119. package/dist/blueprints/association-copy-en.js.map +1 -0
  120. package/dist/blueprints/association-copy-fr.d.ts +3 -0
  121. package/dist/blueprints/association-copy-fr.d.ts.map +1 -0
  122. package/dist/blueprints/association-copy-fr.js +841 -0
  123. package/dist/blueprints/association-copy-fr.js.map +1 -0
  124. package/dist/blueprints/association-copy.d.ts +301 -0
  125. package/dist/blueprints/association-copy.d.ts.map +1 -0
  126. package/dist/blueprints/association-copy.js +17 -0
  127. package/dist/blueprints/association-copy.js.map +1 -0
  128. package/dist/blueprints/association-credits.d.ts +16 -0
  129. package/dist/blueprints/association-credits.d.ts.map +1 -0
  130. package/dist/blueprints/association-credits.js +80 -0
  131. package/dist/blueprints/association-credits.js.map +1 -0
  132. package/dist/blueprints/association-typography.d.ts +23 -0
  133. package/dist/blueprints/association-typography.d.ts.map +1 -0
  134. package/dist/blueprints/association-typography.js +55 -0
  135. package/dist/blueprints/association-typography.js.map +1 -0
  136. package/dist/blueprints/association.d.ts +86 -287
  137. package/dist/blueprints/association.d.ts.map +1 -1
  138. package/dist/blueprints/association.js +510 -1082
  139. package/dist/blueprints/association.js.map +1 -1
  140. package/dist/blueprints/blog-copy-en.d.ts +4 -0
  141. package/dist/blueprints/blog-copy-en.d.ts.map +1 -0
  142. package/dist/blueprints/blog-copy-en.js +701 -0
  143. package/dist/blueprints/blog-copy-en.js.map +1 -0
  144. package/dist/blueprints/blog-copy-fr.d.ts +12 -0
  145. package/dist/blueprints/blog-copy-fr.d.ts.map +1 -0
  146. package/dist/blueprints/blog-copy-fr.js +722 -0
  147. package/dist/blueprints/blog-copy-fr.js.map +1 -0
  148. package/dist/blueprints/blog-copy.d.ts +157 -0
  149. package/dist/blueprints/blog-copy.d.ts.map +1 -0
  150. package/dist/blueprints/blog-copy.js +2 -0
  151. package/dist/blueprints/blog-copy.js.map +1 -0
  152. package/dist/blueprints/blog-credits.d.ts +28 -0
  153. package/dist/blueprints/blog-credits.d.ts.map +1 -0
  154. package/dist/blueprints/blog-credits.js +73 -0
  155. package/dist/blueprints/blog-credits.js.map +1 -0
  156. package/dist/blueprints/blog-rich.d.ts +19 -0
  157. package/dist/blueprints/blog-rich.d.ts.map +1 -0
  158. package/dist/blueprints/blog-rich.js +51 -0
  159. package/dist/blueprints/blog-rich.js.map +1 -0
  160. package/dist/blueprints/blog.d.ts +51 -176
  161. package/dist/blueprints/blog.d.ts.map +1 -1
  162. package/dist/blueprints/blog.js +358 -947
  163. package/dist/blueprints/blog.js.map +1 -1
  164. package/dist/blueprints/content-pack.d.ts.map +1 -1
  165. package/dist/blueprints/content-pack.js +11 -16
  166. package/dist/blueprints/content-pack.js.map +1 -1
  167. package/dist/blueprints/content-packs.d.ts +2 -4
  168. package/dist/blueprints/content-packs.d.ts.map +1 -1
  169. package/dist/blueprints/content-packs.js +27 -15
  170. package/dist/blueprints/content-packs.js.map +1 -1
  171. package/dist/blueprints/documentation-copy-en.d.ts +3 -0
  172. package/dist/blueprints/documentation-copy-en.d.ts.map +1 -0
  173. package/dist/blueprints/documentation-copy-en.js +883 -0
  174. package/dist/blueprints/documentation-copy-en.js.map +1 -0
  175. package/dist/blueprints/documentation-copy-fr.d.ts +3 -0
  176. package/dist/blueprints/documentation-copy-fr.d.ts.map +1 -0
  177. package/dist/blueprints/documentation-copy-fr.js +939 -0
  178. package/dist/blueprints/documentation-copy-fr.js.map +1 -0
  179. package/dist/blueprints/documentation-copy.d.ts +52 -0
  180. package/dist/blueprints/documentation-copy.d.ts.map +1 -0
  181. package/dist/blueprints/documentation-copy.js +2 -0
  182. package/dist/blueprints/documentation-copy.js.map +1 -0
  183. package/dist/blueprints/documentation-writer.d.ts +67 -0
  184. package/dist/blueprints/documentation-writer.d.ts.map +1 -0
  185. package/dist/blueprints/documentation-writer.js +190 -0
  186. package/dist/blueprints/documentation-writer.js.map +1 -0
  187. package/dist/blueprints/documentation.d.ts +26 -29
  188. package/dist/blueprints/documentation.d.ts.map +1 -1
  189. package/dist/blueprints/documentation.js +106 -1064
  190. package/dist/blueprints/documentation.js.map +1 -1
  191. package/dist/blueprints/magazine-copy-en.d.ts +13 -0
  192. package/dist/blueprints/magazine-copy-en.d.ts.map +1 -0
  193. package/dist/blueprints/magazine-copy-en.js +553 -0
  194. package/dist/blueprints/magazine-copy-en.js.map +1 -0
  195. package/dist/blueprints/magazine-copy-fr.d.ts +14 -0
  196. package/dist/blueprints/magazine-copy-fr.d.ts.map +1 -0
  197. package/dist/blueprints/magazine-copy-fr.js +568 -0
  198. package/dist/blueprints/magazine-copy-fr.js.map +1 -0
  199. package/dist/blueprints/magazine-copy.d.ts +166 -0
  200. package/dist/blueprints/magazine-copy.d.ts.map +1 -0
  201. package/dist/blueprints/magazine-copy.js +58 -0
  202. package/dist/blueprints/magazine-copy.js.map +1 -0
  203. package/dist/blueprints/magazine-credits.d.ts +19 -0
  204. package/dist/blueprints/magazine-credits.d.ts.map +1 -0
  205. package/dist/blueprints/magazine-credits.js +109 -0
  206. package/dist/blueprints/magazine-credits.js.map +1 -0
  207. package/dist/blueprints/magazine.d.ts +30 -78
  208. package/dist/blueprints/magazine.d.ts.map +1 -1
  209. package/dist/blueprints/magazine.js +269 -690
  210. package/dist/blueprints/magazine.js.map +1 -1
  211. package/dist/blueprints/portfolio-copy-en.d.ts +4 -0
  212. package/dist/blueprints/portfolio-copy-en.d.ts.map +1 -0
  213. package/dist/blueprints/portfolio-copy-en.js +745 -0
  214. package/dist/blueprints/portfolio-copy-en.js.map +1 -0
  215. package/dist/blueprints/portfolio-copy-fr.d.ts +9 -0
  216. package/dist/blueprints/portfolio-copy-fr.d.ts.map +1 -0
  217. package/dist/blueprints/portfolio-copy-fr.js +737 -0
  218. package/dist/blueprints/portfolio-copy-fr.js.map +1 -0
  219. package/dist/blueprints/portfolio-copy.d.ts +204 -0
  220. package/dist/blueprints/portfolio-copy.d.ts.map +1 -0
  221. package/dist/blueprints/portfolio-copy.js +15 -0
  222. package/dist/blueprints/portfolio-copy.js.map +1 -0
  223. package/dist/blueprints/portfolio-credits.d.ts +18 -0
  224. package/dist/blueprints/portfolio-credits.d.ts.map +1 -0
  225. package/dist/blueprints/portfolio-credits.js +239 -0
  226. package/dist/blueprints/portfolio-credits.js.map +1 -0
  227. package/dist/blueprints/portfolio-typography.d.ts +19 -0
  228. package/dist/blueprints/portfolio-typography.d.ts.map +1 -0
  229. package/dist/blueprints/portfolio-typography.js +41 -0
  230. package/dist/blueprints/portfolio-typography.js.map +1 -0
  231. package/dist/blueprints/portfolio.d.ts +68 -157
  232. package/dist/blueprints/portfolio.d.ts.map +1 -1
  233. package/dist/blueprints/portfolio.js +475 -727
  234. package/dist/blueprints/portfolio.js.map +1 -1
  235. package/dist/blueprints/restaurant-copy-en.d.ts +3 -0
  236. package/dist/blueprints/restaurant-copy-en.d.ts.map +1 -0
  237. package/dist/blueprints/restaurant-copy-en.js +641 -0
  238. package/dist/blueprints/restaurant-copy-en.js.map +1 -0
  239. package/dist/blueprints/restaurant-copy-fr.d.ts +3 -0
  240. package/dist/blueprints/restaurant-copy-fr.d.ts.map +1 -0
  241. package/dist/blueprints/restaurant-copy-fr.js +665 -0
  242. package/dist/blueprints/restaurant-copy-fr.js.map +1 -0
  243. package/dist/blueprints/restaurant-copy.d.ts +234 -0
  244. package/dist/blueprints/restaurant-copy.d.ts.map +1 -0
  245. package/dist/blueprints/restaurant-copy.js +15 -0
  246. package/dist/blueprints/restaurant-copy.js.map +1 -0
  247. package/dist/blueprints/restaurant-credits.d.ts +18 -0
  248. package/dist/blueprints/restaurant-credits.d.ts.map +1 -0
  249. package/dist/blueprints/restaurant-credits.js +121 -0
  250. package/dist/blueprints/restaurant-credits.js.map +1 -0
  251. package/dist/blueprints/restaurant.d.ts +55 -128
  252. package/dist/blueprints/restaurant.d.ts.map +1 -1
  253. package/dist/blueprints/restaurant.js +425 -770
  254. package/dist/blueprints/restaurant.js.map +1 -1
  255. package/dist/blueprints/saas-copy-en.d.ts +3 -0
  256. package/dist/blueprints/saas-copy-en.d.ts.map +1 -0
  257. package/dist/blueprints/saas-copy-en.js +901 -0
  258. package/dist/blueprints/saas-copy-en.js.map +1 -0
  259. package/dist/blueprints/saas-copy-fr.d.ts +3 -0
  260. package/dist/blueprints/saas-copy-fr.d.ts.map +1 -0
  261. package/dist/blueprints/saas-copy-fr.js +912 -0
  262. package/dist/blueprints/saas-copy-fr.js.map +1 -0
  263. package/dist/blueprints/saas-copy.d.ts +266 -0
  264. package/dist/blueprints/saas-copy.d.ts.map +1 -0
  265. package/dist/blueprints/saas-copy.js +18 -0
  266. package/dist/blueprints/saas-copy.js.map +1 -0
  267. package/dist/blueprints/saas-credits.d.ts +22 -0
  268. package/dist/blueprints/saas-credits.d.ts.map +1 -0
  269. package/dist/blueprints/saas-credits.js +44 -0
  270. package/dist/blueprints/saas-credits.js.map +1 -0
  271. package/dist/blueprints/saas.d.ts +59 -203
  272. package/dist/blueprints/saas.d.ts.map +1 -1
  273. package/dist/blueprints/saas.js +505 -1108
  274. package/dist/blueprints/saas.js.map +1 -1
  275. package/dist/blueprints/store-copy-en.d.ts +4 -0
  276. package/dist/blueprints/store-copy-en.d.ts.map +1 -0
  277. package/dist/blueprints/store-copy-en.js +521 -0
  278. package/dist/blueprints/store-copy-en.js.map +1 -0
  279. package/dist/blueprints/store-copy-fr.d.ts +4 -0
  280. package/dist/blueprints/store-copy-fr.d.ts.map +1 -0
  281. package/dist/blueprints/store-copy-fr.js +521 -0
  282. package/dist/blueprints/store-copy-fr.js.map +1 -0
  283. package/dist/blueprints/store-copy.d.ts +219 -0
  284. package/dist/blueprints/store-copy.d.ts.map +1 -0
  285. package/dist/blueprints/store-copy.js +16 -0
  286. package/dist/blueprints/store-copy.js.map +1 -0
  287. package/dist/blueprints/store-credits.d.ts +3 -0
  288. package/dist/blueprints/store-credits.d.ts.map +1 -0
  289. package/dist/blueprints/store-credits.js +117 -0
  290. package/dist/blueprints/store-credits.js.map +1 -0
  291. package/dist/blueprints/store.d.ts +43 -231
  292. package/dist/blueprints/store.d.ts.map +1 -1
  293. package/dist/blueprints/store.js +466 -789
  294. package/dist/blueprints/store.js.map +1 -1
  295. package/dist/blueprints/vitrine-copy-en.d.ts.map +1 -1
  296. package/dist/blueprints/vitrine-copy-en.js +1 -0
  297. package/dist/blueprints/vitrine-copy-en.js.map +1 -1
  298. package/dist/blueprints/vitrine-copy-fr.d.ts.map +1 -1
  299. package/dist/blueprints/vitrine-copy-fr.js +1 -0
  300. package/dist/blueprints/vitrine-copy-fr.js.map +1 -1
  301. package/dist/blueprints/vitrine-copy.d.ts +1 -0
  302. package/dist/blueprints/vitrine-copy.d.ts.map +1 -1
  303. package/dist/blueprints/vitrine.d.ts +1 -0
  304. package/dist/blueprints/vitrine.d.ts.map +1 -1
  305. package/dist/blueprints/vitrine.js +24 -3
  306. package/dist/blueprints/vitrine.js.map +1 -1
  307. package/package.json +10 -10
  308. package/dist/blueprints/assets/photos/association/fundraising-dinner.jpg +0 -0
  309. package/dist/blueprints/assets/photos/association/volunteer-orientation.jpg +0 -0
  310. package/dist/blueprints/assets/photos/association/volunteer-portrait.jpg +0 -0
  311. package/dist/blueprints/assets/photos/association/winter-coat-collection.jpg +0 -0
  312. package/dist/blueprints/assets/photos/documentation/delivery-flow.png +0 -0
  313. package/dist/blueprints/assets/photos/magazine/archive-room.jpg +0 -0
  314. package/dist/blueprints/assets/photos/magazine/banquet-hall.jpg +0 -0
  315. package/dist/blueprints/assets/photos/magazine/city-hall.jpg +0 -0
  316. package/dist/blueprints/assets/photos/magazine/downtown-towers.jpg +0 -0
  317. package/dist/blueprints/assets/photos/magazine/gallery-opening.jpg +0 -0
  318. package/dist/blueprints/assets/photos/magazine/garden-volunteers.jpg +0 -0
  319. package/dist/blueprints/assets/photos/magazine/station-platform.jpg +0 -0
  320. package/dist/blueprints/assets/photos/magazine/theater-stage.jpg +0 -0
  321. package/dist/blueprints/assets/photos/portfolio/fenmore-branch.jpg +0 -0
  322. package/dist/blueprints/assets/photos/portfolio/fenmore-cover.jpg +0 -0
  323. package/dist/blueprints/assets/photos/portfolio/fenmore-stationery.jpg +0 -0
  324. package/dist/blueprints/assets/photos/portfolio/gannet-cover.jpg +0 -0
  325. package/dist/blueprints/assets/photos/portfolio/gannet-sardines.jpg +0 -0
  326. package/dist/blueprints/assets/photos/portfolio/gannet-shelf.jpg +0 -0
  327. package/dist/blueprints/assets/photos/portfolio/hollis-crane-cover.jpg +0 -0
  328. package/dist/blueprints/assets/photos/portfolio/hollis-crane-grid.jpg +0 -0
  329. package/dist/blueprints/assets/photos/portfolio/hollis-crane-salt-year.jpg +0 -0
  330. package/dist/blueprints/assets/photos/portfolio/hollis-crane-spines.jpg +0 -0
  331. package/dist/blueprints/assets/photos/portfolio/rookery-hall-brochure.jpg +0 -0
  332. package/dist/blueprints/assets/photos/portfolio/rookery-hall-cover.jpg +0 -0
  333. package/dist/blueprints/assets/photos/portfolio/rookery-hall-poster-carnival.jpg +0 -0
  334. package/dist/blueprints/assets/photos/portfolio/rookery-hall-poster-sibelius.jpg +0 -0
  335. package/dist/blueprints/assets/photos/portfolio/rookery-hall-series.jpg +0 -0
  336. package/dist/blueprints/assets/photos/portfolio/saltmarsh-quay-cover.jpg +0 -0
  337. package/dist/blueprints/assets/photos/portfolio/saltmarsh-quay-gate.jpg +0 -0
  338. package/dist/blueprints/assets/photos/portfolio/saltmarsh-quay-pictograms.jpg +0 -0
  339. package/dist/blueprints/assets/photos/portfolio/saltmarsh-quay-totem.jpg +0 -0
  340. package/dist/blueprints/assets/photos/portfolio/tidewater-cover.jpg +0 -0
  341. package/dist/blueprints/assets/photos/portfolio/tidewater-data.jpg +0 -0
  342. package/dist/blueprints/assets/photos/portfolio/tidewater-report-cover.jpg +0 -0
  343. package/dist/blueprints/assets/photos/portfolio/warp-and-weft-cover.jpg +0 -0
  344. package/dist/blueprints/assets/photos/portfolio/warp-and-weft-room.jpg +0 -0
  345. package/dist/blueprints/assets/photos/portfolio/westmoor-rail-components.jpg +0 -0
  346. package/dist/blueprints/assets/photos/portfolio/westmoor-rail-cover.jpg +0 -0
  347. package/dist/blueprints/assets/photos/portfolio/westmoor-rail-departures.jpg +0 -0
  348. package/dist/blueprints/assets/photos/restaurant/beetroot-goats-curd.jpg +0 -0
  349. package/dist/blueprints/assets/photos/restaurant/ceps-risotto.jpg +0 -0
  350. package/dist/blueprints/assets/photos/restaurant/duck-leg-red-cabbage.jpg +0 -0
  351. package/dist/blueprints/assets/photos/restaurant/hake-green-peppercorns.jpg +0 -0
  352. package/dist/blueprints/assets/photos/restaurant/vegetable-broth.jpg +0 -0
  353. package/dist/blueprints/assets/photos/saas/adrian-tan.jpg +0 -0
  354. package/dist/blueprints/assets/photos/saas/api-webhooks.png +0 -0
  355. package/dist/blueprints/assets/photos/saas/approvals-queue.png +0 -0
  356. package/dist/blueprints/assets/photos/saas/audit-log.png +0 -0
  357. package/dist/blueprints/assets/photos/saas/erp-sync.png +0 -0
  358. package/dist/blueprints/assets/photos/saas/policy-editor.png +0 -0
  359. package/dist/blueprints/assets/photos/saas/spend-reporting.png +0 -0
  360. package/dist/blueprints/assets/photos/saas/sso-scim.png +0 -0
  361. package/dist/blueprints/assets/photos/store/brushed-cotton-overshirt.jpg +0 -0
  362. package/dist/blueprints/assets/photos/store/cable-knit-beanie.jpg +0 -0
  363. package/dist/blueprints/assets/photos/store/canvas-shoulder-bag.jpg +0 -0
  364. package/dist/blueprints/assets/photos/store/canvas-tote.jpg +0 -0
  365. package/dist/blueprints/assets/photos/store/cast-iron-skillet.jpg +0 -0
  366. package/dist/blueprints/assets/photos/store/field-jacket.jpg +0 -0
  367. package/dist/blueprints/assets/photos/store/heavyweight-t-shirt.jpg +0 -0
  368. package/dist/blueprints/assets/photos/store/leather-card-holder.jpg +0 -0
  369. package/dist/blueprints/assets/photos/store/linen-table-runner.jpg +0 -0
  370. package/dist/blueprints/assets/photos/store/porcelain-pour-over-set.jpg +0 -0
  371. package/dist/blueprints/assets/photos/store/striped-wool-blanket.jpg +0 -0
@@ -0,0 +1,912 @@
1
+ /** Le site `saas` en français. Voir `saas-copy.ts` pour la forme. */
2
+ const FEATURES = [
3
+ {
4
+ name: 'Circuits de validation',
5
+ slug: 'circuits-de-validation',
6
+ short: 'Montant, centre de coûts, fournisseur : chaque demande part vers les bons validateurs.',
7
+ description: 'Écrivez votre matrice de délégation une fois, sous forme de règles sur le montant, le centre de coûts, le fournisseur et la catégorie. Chaque demande trouve ses validateurs sans que personne ait à la transférer.',
8
+ icon: 'layers',
9
+ screenshot: 'policy-editor',
10
+ body: (name) => [
11
+ { h2: 'Votre matrice de délégation, en règles' },
12
+ {
13
+ p: `La plupart des équipes financières ont déjà une matrice de délégation : un tableur qui dit qui signe quoi, à partir de quel montant, pour quel centre de coûts. Dans ${name}, ce tableur devient une politique. Chaque ligne est une étape avec ses conditions, ses validateurs et un délai, et chaque demande est confrontée à la politique dès qu’elle est déposée.`,
14
+ },
15
+ {
16
+ p: 'Les validateurs peuvent être des personnes nommées, des rôles comme le responsable budgétaire d’un centre de coûts, ou des groupes synchronisés depuis votre annuaire. Les étapes se suivent par défaut. Une étape peut aussi se dérouler en parallèle d’une autre : les achats examinent un nouveau fournisseur pendant que le responsable budgétaire examine la dépense.',
17
+ },
18
+ { h2: 'Modifier sans risque' },
19
+ {
20
+ p: 'Les politiques sont versionnées. Une modification est enregistrée en brouillon, et avant de la publier vous pouvez la rejouer sur les demandes des 90 derniers jours pour voir lesquelles auraient été acheminées autrement. Chaque version publiée reste dans le journal d’audit, avec le nom de la personne qui l’a publiée.',
21
+ },
22
+ {
23
+ ul: [
24
+ 'Conditions sur le montant, la devise, le centre de coûts, le fournisseur, la catégorie et tout champ personnalisé',
25
+ 'Délais en jours ouvrés, avec un rappel la veille',
26
+ 'Délégués pour les validateurs absents, et repli sur leur responsable',
27
+ 'Politiques distinctes pour les demandes d’achat, les factures fournisseurs et les avenants',
28
+ ],
29
+ },
30
+ ],
31
+ details: [
32
+ [
33
+ 'Que se passe-t-il quand aucune règle ne correspond à une demande ?',
34
+ 'Elle part vers l’étape par défaut que vous choisissez pour la politique, en général le contrôle de gestion, et elle est signalée pour que le trou dans la matrice soit comblé.',
35
+ ],
36
+ [
37
+ 'Une même personne peut-elle valider deux étapes ?',
38
+ 'Seulement si vous l’autorisez. Par défaut, la personne qui a validé une étape est ignorée à la suivante, et l’étape passe au validateur éligible suivant.',
39
+ ],
40
+ [
41
+ 'Combien de politiques peut-on créer ?',
42
+ 'Dix avec la formule Équipe, autant que nécessaire avec Business et Entreprise.',
43
+ ],
44
+ ],
45
+ },
46
+ {
47
+ name: 'Journal d’audit',
48
+ slug: 'journal-d-audit',
49
+ short: 'Chaque décision est écrite une fois et jamais réécrite. Les auditeurs le lisent seuls.',
50
+ description: 'Chaque demande, modification, commentaire et décision est inscrit dans un journal qu’on ne peut pas réécrire, et vos auditeurs peuvent le filtrer et l’exporter eux-mêmes.',
51
+ icon: 'shield',
52
+ screenshot: 'audit-log',
53
+ body: (name) => [
54
+ { h2: 'Une trace pour chaque décision' },
55
+ {
56
+ p: `Quand une demande est créée, modifiée, commentée ou tranchée, ${name} écrit un événement : qui, quoi, quand, et d’où. Les événements s’ajoutent et ne se modifient jamais. Chacun porte l’empreinte du précédent, de sorte qu’un trou ou une altération n’importe où dans la chaîne est détecté à la prochaine vérification.`,
57
+ },
58
+ {
59
+ p: 'Le journal garde ce que les personnes font dans le navigateur et ce que les intégrations font en leur nom. Une facture comptabilisée dans Sage X3, une ligne budgétaire lue depuis votre ERP et une décision prise depuis un message Slack apparaissent dans la même liste, dans l’ordre.',
60
+ },
61
+ { h2: 'Des preuves que vos auditeurs vont chercher eux-mêmes' },
62
+ {
63
+ p: 'Donnez à un commissaire aux comptes un rôle en lecture seule, limité à une période. Il filtre par demande, personne, événement ou montant, et exporte exactement l’échantillon dont il a besoin, sans capture d’écran de votre équipe et sans voir autre chose dans l’espace de travail.',
64
+ },
65
+ {
66
+ ul: [
67
+ 'Exports en CSV et en PDF, signés pour qu’un fichier puisse être vérifié contre le journal',
68
+ 'Conservation d’un an avec Équipe, de sept ans avec Business et de dix ans avec Entreprise',
69
+ 'Vérification de la chaîne à la demande et chaque nuit',
70
+ ],
71
+ },
72
+ ],
73
+ details: [
74
+ [
75
+ 'Un administrateur peut-il supprimer un événement ?',
76
+ 'Non. Un administrateur peut masquer les données personnelles d’un événement après une demande d’effacement valable, et ce masquage est lui-même inscrit comme un événement.',
77
+ ],
78
+ [
79
+ 'Quel fuseau horaire le journal utilise-t-il ?',
80
+ 'Les événements sont stockés en UTC et affichés dans le fuseau de la personne qui lit. Les exports sont en UTC.',
81
+ ],
82
+ ],
83
+ },
84
+ {
85
+ name: 'Synchronisation comptable',
86
+ slug: 'synchronisation-comptable',
87
+ short: 'Factures et commandes validées passent dans Sage X3, Cegid, NetSuite ou Business Central.',
88
+ description: 'Les factures fournisseurs et les bons de commande validés arrivent dans votre ERP en moins d’une minute, et les lignes budgétaires remontent toutes les quinze minutes pour que les validateurs voient ce qu’il reste.',
89
+ icon: 'cloud',
90
+ screenshot: 'erp-sync',
91
+ body: (name) => [
92
+ { h2: 'Une validation qui se termine dans la comptabilité' },
93
+ {
94
+ p: `Une validation n’est terminée que lorsque l’ERP la connaît. ${name} se connecte à Sage X3, Cegid, NetSuite et Microsoft Dynamics 365 Business Central. À la dernière validation, la facture fournisseur ou le bon de commande est créé ou mis à jour dans l’ERP, avec les validateurs, les dates et un lien vers la demande.`,
95
+ },
96
+ {
97
+ p: 'La connexion fonctionne dans les deux sens. Fournisseurs, centres de coûts, filiales et lignes budgétaires sont lus depuis l’ERP : une demande est donc imputée comme vos écritures, et le validateur voit le budget restant avant de décider.',
98
+ },
99
+ { h2: 'Des échecs qu’on voit' },
100
+ {
101
+ p: 'Chaque synchronisation est listée avec son résultat. Quand l’ERP refuse un enregistrement ou limite le débit des appels, la synchronisation est relancée après un délai, et l’équipe finance est prévenue si elle échoue encore au bout d’une heure. Rien n’est perdu en silence.',
102
+ },
103
+ {
104
+ ul: [
105
+ 'Correspondance des filiales, des devises et des codes de TVA',
106
+ 'Comptabilisation en brouillon ou validée, selon le type de pièce',
107
+ 'Un import CSV nocturne pour les ERP sans API',
108
+ ],
109
+ },
110
+ ],
111
+ details: [
112
+ [
113
+ 'Combien de temps faut-il pour paramétrer une connexion ?',
114
+ 'En général une heure avec l’administrateur de votre ERP. Nous lui envoyons au préalable la liste des droits dont l’utilisateur d’intégration a besoin.',
115
+ ],
116
+ [
117
+ 'La synchronisation écrit-elle quelque chose que nous n’avons pas validé ?',
118
+ 'Non. Elle écrit les pièces validées et le détail des validations, et lit les données de référence citées plus haut.',
119
+ ],
120
+ ],
121
+ },
122
+ {
123
+ name: 'SSO et SCIM',
124
+ slug: 'sso-et-scim',
125
+ short: 'Connexion par Okta, Entra ID ou Google. Les accès suivent votre annuaire.',
126
+ description: 'Les membres se connectent par votre fournisseur d’identité, et SCIM garde les personnes, les groupes et les rôles alignés sur votre annuaire.',
127
+ icon: 'lock',
128
+ screenshot: 'sso-scim',
129
+ body: () => [
130
+ { h2: 'Connexion par votre fournisseur d’identité' },
131
+ {
132
+ p: 'L’authentification unique SAML fonctionne avec Okta, Microsoft Entra ID, Google Workspace et tout fournisseur qui respecte la norme. Une fois activée, vous pouvez désactiver la connexion par mot de passe pour tout l’espace de travail, et la durée des sessions suit la politique que vous fixez.',
133
+ },
134
+ { h2: 'Provisionnement depuis votre annuaire' },
135
+ {
136
+ p: 'Avec SCIM, une personne ajoutée à un groupe de votre annuaire apparaît dans l’espace de travail avec le bon rôle, et une personne retirée de l’annuaire perd aussitôt son accès. Les groupes correspondent à des rôles : le groupe des contrôleurs de gestion dans Okta devient les validateurs finance dans le produit, sans que personne ne mette une liste à jour à la main.',
137
+ },
138
+ { h2: 'Des accès qui s’arrêtent à temps' },
139
+ {
140
+ p: 'Les auditeurs et les prestataires peuvent recevoir une date de fin dès leur invitation. À cette date, leur accès s’arrête, les étapes qui les attendaient passent à la personne qui les a invités, et le changement est inscrit dans le journal d’audit.',
141
+ },
142
+ {
143
+ ul: [
144
+ 'Rôles de demandeur, de validateur, de comptabilité fournisseurs, d’administrateur et d’auditeur',
145
+ 'Accès d’auditeur limité dans le temps, clos automatiquement à la date fixée',
146
+ 'Connexions inscrites dans le journal d’audit',
147
+ ],
148
+ },
149
+ ],
150
+ details: [
151
+ [
152
+ 'Quelles formules incluent le SSO ?',
153
+ 'La connexion Google est incluse dans toutes les formules. SAML et SCIM sont inclus dans Business et Entreprise.',
154
+ ],
155
+ [
156
+ 'Que deviennent les validations en cours quand quelqu’un part ?',
157
+ 'Ses étapes en attente passent à son délégué, ou à son responsable s’il n’en avait pas, et la réaffectation est enregistrée.',
158
+ ],
159
+ ],
160
+ },
161
+ {
162
+ name: 'Suivi des dépenses',
163
+ slug: 'suivi-des-depenses',
164
+ short: 'Où les demandes attendent, qui est lent, quels budgets dérapent.',
165
+ description: 'Des rapports sur le délai de validation, les dépenses par rapport au budget et les demandes qui attendent trop longtemps, construits sur les mêmes données que le journal d’audit.',
166
+ icon: 'chart',
167
+ screenshot: 'spend-reporting',
168
+ body: () => [
169
+ { h2: 'Où les validations attendent' },
170
+ {
171
+ p: 'Le rapport sur le délai de validation montre le temps médian entre la demande et la décision finale, par semaine, par mois ou par trimestre, et le détaille par étape et par validateur. Quand une étape est lente, vous voyez laquelle, et si elle l’est pour tous les montants ou seulement pour les gros.',
172
+ },
173
+ { h2: 'La dépense face au budget' },
174
+ {
175
+ p: 'Les lignes budgétaires étant lues depuis l’ERP, chaque demande validée est comptée dans son centre de coûts dès sa validation, des semaines avant l’arrivée de la facture. Les responsables budgétaires voient l’engagé, et la finance voit quels centres de coûts dépasseront avant la clôture du mois.',
176
+ },
177
+ { h2: 'Des chiffres qu’on peut retracer' },
178
+ {
179
+ p: 'Chaque chiffre d’un rapport ouvre les demandes à partir desquelles il a été calculé, avec leur circuit de validation et leur historique dans le journal d’audit. Une médiane citée dans un dossier de conseil d’administration se retrace jusqu’aux demandes une à une en deux clics.',
180
+ },
181
+ {
182
+ ul: [
183
+ 'Vues enregistrées, partageables par un lien',
184
+ 'Un e-mail hebdomadaire aux responsables budgétaires avec leur engagé',
185
+ 'Export CSV de chaque rapport, et une API en lecture seule pour votre entrepôt de données',
186
+ ],
187
+ },
188
+ ],
189
+ details: [
190
+ [
191
+ 'Les rapports incluent-ils les demandes refusées ?',
192
+ 'Oui, dans une série à part, pour que le temps passé sur les demandes refusées soit visible aussi.',
193
+ ],
194
+ ],
195
+ },
196
+ {
197
+ name: 'API et webhooks',
198
+ slug: 'api-et-webhooks',
199
+ short: 'Une API REST versionnée et des webhooks signés, avec les droits de l’application.',
200
+ description: 'Tout ce que le produit fait dans le navigateur peut se faire par une API REST versionnée, et des webhooks signés préviennent vos systèmes quand une décision est prise.',
201
+ icon: 'code',
202
+ screenshot: 'api-webhooks',
203
+ body: () => [
204
+ { h2: 'Le même produit, par une API' },
205
+ {
206
+ p: 'L’API REST est versionnée par date et couvre les demandes, les validations, les politiques, les fournisseurs, le journal d’audit et les rapports. Les clés d’API sont limitées en lecture ou en écriture et aux parties de l’espace de travail dont elles ont besoin, et chaque appel qu’elles font est inscrit dans le journal d’audit comme n’importe quelle action.',
207
+ },
208
+ { h2: 'Un webhook pour chaque décision' },
209
+ {
210
+ p: 'Les webhooks partent quand une demande est créée, validée, refusée ou modifiée. Chaque envoi est signé en HMAC-SHA256 et rejoué pendant 24 heures au plus quand votre point de terminaison ne répond pas, et les derniers envois de chaque point de terminaison sont listés avec leur code de réponse.',
211
+ },
212
+ { h2: 'Des changements annoncés à l’avance' },
213
+ {
214
+ p: 'Une nouvelle version de l’API est publiée avec une date, et la précédente continue de fonctionner au moins 12 mois après elle. Chaque changement est listé dans les nouveautés, et les titulaires des clés qui appellent encore une version en fin de vie sont prévenus par e-mail trois mois avant son arrêt.',
215
+ },
216
+ {
217
+ ul: [
218
+ 'Clés d’idempotence sur chaque écriture',
219
+ 'Un espace de test avec des données fictives pour chaque client',
220
+ 'Une limite de 600 requêtes par minute et par clé',
221
+ ],
222
+ },
223
+ ],
224
+ details: [
225
+ [
226
+ 'Existe-t-il une bibliothèque cliente ?',
227
+ 'Nous publions des clients pour TypeScript et Python. Tout langage capable d’émettre une requête HTTPS peut utiliser l’API directement.',
228
+ ],
229
+ ],
230
+ },
231
+ ];
232
+ /** Du plus ancien au plus récent : semé dans cet ordre, listé du plus récent au plus ancien par identifiant. */
233
+ const UPDATES = [
234
+ {
235
+ title: 'Rattachement des groupes SCIM aux rôles',
236
+ slug: 'groupes-scim',
237
+ summary: 'Les groupes de votre fournisseur d’identité correspondent désormais à des rôles : un changement dans l’annuaire règle aussi les droits.',
238
+ publishedAt: '2026-05-14T09:00:00.000Z',
239
+ screenshot: 'sso-scim',
240
+ caption: 'Les paramètres de connexion et de provisionnement, avec cinq groupes Okta rattachés à des rôles.',
241
+ body: () => [
242
+ {
243
+ p: 'Jusqu’ici, SCIM créait et supprimait des membres, et les rôles se réglaient à la main. Dès aujourd’hui, vous pouvez rattacher un groupe d’Okta, de Microsoft Entra ID ou de Google Workspace à un rôle, et l’appartenance à ce groupe fixe le rôle.',
244
+ },
245
+ {
246
+ ul: [
247
+ 'Un groupe peut correspondre à demandeur, validateur, comptabilité fournisseurs, administrateur ou auditeur',
248
+ 'Un rôle de validateur peut être limité aux centres de coûts que le groupe possède',
249
+ 'Les changements s’appliquent dans la minute qui suit leur envoi par l’annuaire',
250
+ ],
251
+ },
252
+ {
253
+ p: 'Les rôles existants restent tels quels tant que vous n’enregistrez pas de rattachement. Paramètres, puis Connexion et provisionnement, liste tous les groupes envoyés par votre annuaire.',
254
+ },
255
+ ],
256
+ },
257
+ {
258
+ title: 'Échéances et rappels à chaque étape',
259
+ slug: 'echeances-et-rappels',
260
+ summary: 'Chaque étape d’une politique peut porter une échéance en jours ouvrés, avec un rappel la veille.',
261
+ publishedAt: '2026-06-04T09:00:00.000Z',
262
+ body: () => [
263
+ {
264
+ p: 'Une demande qui attend une seule personne retient tous ceux qui viennent après elle. Les étapes portent désormais une échéance, comptée en jours ouvrés à partir de l’ouverture de l’étape et qui suit les jours fériés du pays du validateur.',
265
+ },
266
+ {
267
+ p: 'Le validateur reçoit un rappel le jour ouvré précédant l’échéance, par e-mail et dans Slack ou Microsoft Teams s’ils sont connectés. Quand une échéance est dépassée, la demande est marquée en retard dans la file et l’étape peut passer automatiquement à un délégué.',
268
+ },
269
+ ],
270
+ },
271
+ {
272
+ title: 'Délégation pendant vos absences',
273
+ slug: 'delegation-pendant-les-absences',
274
+ summary: 'Un validateur peut nommer un délégué pour une période, et ses étapes lui sont confiées pendant son absence.',
275
+ publishedAt: '2026-06-25T09:00:00.000Z',
276
+ body: () => [
277
+ {
278
+ p: 'Fixez une période et un délégué depuis votre profil, ou laissez votre agenda le faire : quand Google Agenda ou Outlook vous indique absent, le délégué que vous avez choisi reçoit vos étapes pour ces jours-là.',
279
+ },
280
+ {
281
+ ul: [
282
+ 'Un délégué ne peut pas valider une demande qu’il a lui-même déposée',
283
+ 'Les décisions déléguées montrent les deux noms dans la demande et dans le journal d’audit',
284
+ 'Les administrateurs peuvent désigner un délégué pour une personne absente sans préavis',
285
+ ],
286
+ },
287
+ ],
288
+ },
289
+ {
290
+ title: 'Connecteur Sage X3',
291
+ slug: 'connecteur-sage-x3',
292
+ summary: 'Sage X3 rejoint Cegid et NetSuite parmi les ERP connectés dans les deux sens.',
293
+ publishedAt: '2026-07-16T09:00:00.000Z',
294
+ screenshot: 'erp-sync',
295
+ caption: 'L’activité récente d’une connexion à l’ERP, avec une synchronisation relancée après une limite de débit.',
296
+ body: () => [
297
+ {
298
+ p: 'Le connecteur Sage X3 lit les fournisseurs, les sections analytiques et les écritures budgétaires, et écrit les factures d’achat et les bons de commande validés. Les sections analytiques correspondent aux centres de coûts : une politique rédigée pour un service fonctionne donc sur la section que votre comptabilité utilise déjà.',
299
+ },
300
+ {
301
+ p: 'Les connexions sont disponibles avec Business et Entreprise. Pour en monter une, il faut un utilisateur Sage X3 disposant des droits listés dans l’écran de paramétrage, et environ une heure.',
302
+ },
303
+ ],
304
+ },
305
+ {
306
+ title: 'Exports d’audit signés',
307
+ slug: 'exports-d-audit-signes',
308
+ summary: 'Les exports CSV et PDF du journal d’audit sont désormais signés : un fichier peut être vérifié contre le journal.',
309
+ publishedAt: '2026-08-06T09:00:00.000Z',
310
+ screenshot: 'audit-log',
311
+ caption: 'Le journal d’audit filtré sur une demande d’achat, prêt à être exporté.',
312
+ body: () => [
313
+ {
314
+ p: 'Chaque export du journal d’audit est maintenant accompagné d’une signature portant sur son contenu et sur l’empreinte du dernier événement qu’il inclut. Toute personne qui détient le fichier peut le vérifier avec la clé publique de l’espace de travail, et un auditeur peut confirmer qu’aucune ligne n’a été ajoutée, retirée ou modifiée après l’export.',
315
+ },
316
+ {
317
+ p: 'La signature est active pour tous les exports des espaces Business et Entreprise, sans rien à paramétrer. Les étapes de vérification sont décrites dans Paramètres, puis Journal d’audit.',
318
+ },
319
+ ],
320
+ },
321
+ {
322
+ title: 'Étapes de validation en parallèle',
323
+ slug: 'validations-en-parallele',
324
+ summary: 'Deux étapes peuvent désormais se dérouler en même temps : les achats et un responsable budgétaire examinent une demande ensemble.',
325
+ publishedAt: '2026-08-27T09:00:00.000Z',
326
+ screenshot: 'policy-editor',
327
+ caption: 'Une politique de demandes d’achat où les achats examinent les nouveaux fournisseurs en parallèle de l’étape 1.',
328
+ body: () => [
329
+ {
330
+ p: 'Les étapes se suivaient strictement l’une après l’autre. Une politique peut maintenant en ouvrir deux à la fois : les achats examinent un nouveau fournisseur pendant que le responsable budgétaire examine la dépense, et la demande avance quand les deux ont validé.',
331
+ },
332
+ {
333
+ ul: [
334
+ 'Marquez une étape comme parallèle à la précédente dans l’éditeur de politique',
335
+ 'Un refus à l’une ou l’autre étape clôt la demande, avec le motif affiché au demandeur',
336
+ 'Les rapports comptent la durée d’une étape parallèle à partir de son ouverture',
337
+ ],
338
+ },
339
+ {
340
+ p: 'Dans les espaces qui l’ont essayé en août, les demandes de nouveaux fournisseurs ont abouti à une décision un jour et demi plus tôt.',
341
+ },
342
+ ],
343
+ },
344
+ ];
345
+ export const SAAS_COPY_FR = {
346
+ locale: 'fr',
347
+ defaultProductName: 'Ledgerline',
348
+ schema: {
349
+ routes: { feature: '/fonctionnalites/:slug', changelog: '/nouveautes/:slug' },
350
+ labels: {
351
+ feature: { singular: 'Fonctionnalité', plural: 'Fonctionnalités' },
352
+ changelog: { singular: 'Nouveauté', plural: 'Nouveautés' },
353
+ },
354
+ },
355
+ slugs: {
356
+ home: 'home',
357
+ product: 'produit',
358
+ pricing: 'tarifs',
359
+ security: 'securite',
360
+ changelog: 'nouveautes',
361
+ about: 'entreprise',
362
+ demo: 'demo',
363
+ legal: 'mentions-legales',
364
+ privacy: 'confidentialite',
365
+ credits: 'credits-photos',
366
+ },
367
+ // Un numéro parisien de la plage que l’ARCEP réserve à la fiction : il ne sonne chez personne.
368
+ phone: { display: '+33 1 99 00 67 21', href: 'tel:+33199006721' },
369
+ customers: [
370
+ { key: 'logo-marenne-logistique', name: 'Marenne Logistique' },
371
+ { key: 'logo-cliniques-du-vivier', name: 'Cliniques du Vivier' },
372
+ { key: 'logo-castellan-alimentaire', name: 'Castellan Alimentaire' },
373
+ { key: 'logo-tessaly-energies', name: 'Tessaly Énergies' },
374
+ { key: 'logo-orrin-and-vale', name: 'Orrin & Vale' },
375
+ { key: 'logo-nordgate-habitat', name: 'Nordgate Habitat' },
376
+ ],
377
+ features: FEATURES,
378
+ updates: UPDATES,
379
+ media: [
380
+ {
381
+ name: 'app',
382
+ file: 'approvals-queue-fr.png',
383
+ alt: 'La file de validations d’une entreprise de transport, avec une demande de révision de freins ouverte à côté de la liste et son circuit de validation',
384
+ },
385
+ {
386
+ name: 'policy-editor',
387
+ file: 'policy-editor-fr.png',
388
+ alt: 'L’éditeur de politique des demandes d’achat, avec quatre étapes de validation et leurs conditions sur le montant, le fournisseur et la catégorie',
389
+ },
390
+ {
391
+ name: 'audit-log',
392
+ file: 'audit-log-fr.png',
393
+ alt: 'Le journal d’audit filtré sur une demande d’achat, avec six événements, leur heure, leur auteur et leur empreinte de chaîne',
394
+ },
395
+ {
396
+ name: 'erp-sync',
397
+ file: 'erp-sync-fr.png',
398
+ alt: 'Les paramètres de la connexion à Sage X3 et son activité récente, avec quatre enregistrements synchronisés',
399
+ },
400
+ {
401
+ name: 'sso-scim',
402
+ file: 'sso-scim-fr.png',
403
+ alt: 'Les paramètres de connexion et de provisionnement, avec l’authentification unique SAML par Okta et cinq groupes rattachés à des rôles',
404
+ },
405
+ {
406
+ name: 'spend-reporting',
407
+ file: 'spend-reporting-fr.png',
408
+ alt: 'Le rapport sur le délai de validation, un histogramme du délai médian qui passe de 6,8 à 3,6 heures en treize semaines',
409
+ },
410
+ {
411
+ name: 'api-webhooks',
412
+ file: 'api-webhooks-fr.png',
413
+ alt: 'Les paramètres de l’API et des webhooks, avec une requête HTTP qui crée une demande d’achat et deux points de terminaison de webhook',
414
+ },
415
+ {
416
+ name: 'office-1',
417
+ file: 'office-paris.jpg',
418
+ alt: 'Les toits de Paris au crépuscule, avec la coupole du Panthéon à l’horizon et des immeubles du 20e siècle au premier plan',
419
+ },
420
+ {
421
+ name: 'office-2',
422
+ file: 'office-montreal.jpg',
423
+ alt: 'Les tours du centre-ville de Montréal vues du mont Royal en hiver, avec le fleuve et un pont au fond',
424
+ },
425
+ {
426
+ name: 'security-racks',
427
+ file: 'security-racks.jpg',
428
+ alt: 'Une rangée de baies noires avec des panneaux de brassage et des câbles réseau bleus, dans une salle de centre de données à plancher technique',
429
+ },
430
+ ],
431
+ tiers: [
432
+ {
433
+ key: 'tier-team',
434
+ name: 'Équipe',
435
+ price: '11 €',
436
+ interval: 'par validateur et par mois, facturé à l’année',
437
+ features: [
438
+ 'Validateurs : jusqu’à 25',
439
+ 'Demandeurs : illimités, gratuits',
440
+ 'Politiques de validation : 10',
441
+ 'Connexions à l’ERP : 1',
442
+ 'Historique du journal d’audit : 1 an',
443
+ 'Authentification unique : Google',
444
+ 'Assistance : e-mail, jour ouvré suivant',
445
+ ],
446
+ actionLabel: 'Démarrer un essai',
447
+ },
448
+ {
449
+ key: 'tier-business',
450
+ name: 'Business',
451
+ price: '22 €',
452
+ interval: 'par validateur et par mois, facturé à l’année',
453
+ features: [
454
+ 'Validateurs : jusqu’à 250',
455
+ 'Demandeurs : illimités, gratuits',
456
+ 'Politiques de validation : illimitées',
457
+ 'Connexions à l’ERP : 3',
458
+ 'Historique du journal d’audit : 7 ans',
459
+ 'Authentification unique : SAML et SCIM',
460
+ 'Assistance : e-mail et messagerie, le jour ouvré même',
461
+ 'Étapes de validation en parallèle',
462
+ 'Exports d’audit signés',
463
+ ],
464
+ actionLabel: 'Démarrer un essai',
465
+ primary: true,
466
+ highlighted: true,
467
+ },
468
+ {
469
+ key: 'tier-enterprise',
470
+ name: 'Entreprise',
471
+ price: 'Sur devis',
472
+ interval: 'contrat annuel, à partir de 100 validateurs',
473
+ features: [
474
+ 'Validateurs : illimités',
475
+ 'Demandeurs : illimités, gratuits',
476
+ 'Politiques de validation : illimitées',
477
+ 'Connexions à l’ERP : illimitées',
478
+ 'Historique du journal d’audit : 10 ans',
479
+ 'Authentification unique : SAML et SCIM',
480
+ 'Assistance : ingénieur dédié, réponse en 1 heure',
481
+ 'Étapes de validation en parallèle',
482
+ 'Exports d’audit signés',
483
+ 'Hébergement des données en France ou en Allemagne',
484
+ 'Facturation à 30 jours',
485
+ ],
486
+ actionLabel: 'Parler à un conseiller',
487
+ },
488
+ ],
489
+ homeQuestions: (name) => [
490
+ [
491
+ 'Combien de temps faut-il pour démarrer ?',
492
+ 'La plupart des équipes valident leur première vraie demande en deux semaines. Un ingénieur solutions transforme avec vous votre matrice de délégation actuelle en politique, et la connexion à l’ERP prend environ une heure avec votre administrateur.',
493
+ ],
494
+ [
495
+ 'Les demandeurs ont-ils besoin d’une licence payante ?',
496
+ `Non. Toute personne de l’entreprise peut déposer une demande ou une facture dans ${name} sans frais. Vous payez les validateurs, et seulement les mois où ils valident quelque chose.`,
497
+ ],
498
+ [
499
+ 'À quels ERP vous connectez-vous ?',
500
+ 'Sage X3, Cegid, NetSuite et Microsoft Dynamics 365 Business Central, dans les deux sens. Tout autre système passe par l’API ou par un import CSV nocturne.',
501
+ ],
502
+ [
503
+ 'Nos auditeurs peuvent-ils avoir un accès ?',
504
+ 'Oui. Le rôle d’auditeur est en lecture seule, limité à la période que vous fixez. Les auditeurs filtrent et exportent le journal eux-mêmes, et leur accès s’arrête tout seul.',
505
+ ],
506
+ [
507
+ 'Où nos données sont-elles stockées ?',
508
+ 'À Paris ou à Francfort, au choix lors de la création de l’espace de travail. Les sauvegardes restent dans la même région, et les clients Entreprise peuvent les conserver dans une seconde région de leur choix.',
509
+ ],
510
+ [
511
+ 'Que deviennent nos données si nous partons ?',
512
+ 'Vous pouvez exporter à tout moment chaque demande, chaque décision et chaque pièce jointe. Nous supprimons l’espace de travail 30 jours après la fin du contrat et nous vous envoyons un certificat de suppression.',
513
+ ],
514
+ ],
515
+ detailsTitle: 'Détails',
516
+ otherFeaturesTitle: 'Autres fonctionnalités',
517
+ moreUpdatesTitle: 'Autres nouveautés',
518
+ pages: (name, mail) => ({
519
+ titles: {
520
+ home: 'Accueil',
521
+ product: 'Produit',
522
+ pricing: 'Tarifs',
523
+ security: 'Sécurité',
524
+ changelog: 'Nouveautés',
525
+ about: 'Entreprise',
526
+ demo: 'Réserver une démo',
527
+ legal: 'Mentions légales',
528
+ privacy: 'Politique de confidentialité',
529
+ credits: 'Crédits photos',
530
+ },
531
+ demoAction: 'Réserver une démo',
532
+ home: {
533
+ heroEyebrow: 'Pour les équipes finance et opérations',
534
+ heroTitle: 'La validation des dépenses, avec la piste d’audit intégrée',
535
+ heroSubtitle: `${name} achemine les demandes d’achat, les factures fournisseurs et les avenants vers les bons validateurs selon le montant, le centre de coûts et le fournisseur, puis inscrit chaque décision dans un journal que vos auditeurs peuvent lire eux-mêmes.`,
536
+ heroSecondary: 'Voir les tarifs',
537
+ customersCaption: `Les équipes finance de 1 100 entreprises valident leurs dépenses dans ${name}`,
538
+ featuresTitle: 'Un seul système pour chaque décision de dépense',
539
+ stepsTitle: `Le trajet d’une demande dans ${name}`,
540
+ steps: [
541
+ {
542
+ title: 'Une demande arrive',
543
+ text: 'Depuis un formulaire, un e-mail envoyé à votre adresse de validation ou un brouillon de facture synchronisé depuis l’ERP, devis joint.',
544
+ },
545
+ {
546
+ title: 'Votre politique l’achemine',
547
+ text: 'Le montant, le centre de coûts, le fournisseur et la catégorie décident qui valide, dans quel ordre et sous quel délai.',
548
+ },
549
+ {
550
+ title: 'La décision est enregistrée',
551
+ text: 'Les validateurs tranchent depuis le web, Slack ou l’e-mail. L’ERP est mis à jour et le journal d’audit garde qui, quoi et quand.',
552
+ },
553
+ ],
554
+ tourTitle: 'Le produit de plus près',
555
+ figuresTitle: 'Dans tous les espaces de travail, le trimestre dernier',
556
+ figures: [
557
+ {
558
+ value: '3,6',
559
+ unit: 'h',
560
+ label: 'de délai médian entre la demande et la validation finale',
561
+ },
562
+ { value: '2,1', unit: 'M', label: 'de demandes et de factures validées' },
563
+ { value: '99,99', unit: '%', label: 'de disponibilité sur les douze derniers mois' },
564
+ { value: '7', unit: 'ans', label: 'd’historique d’audit conservés avec Business' },
565
+ ],
566
+ quote: [
567
+ 'Nous clôturions le mois avec un classeur d’e-mails transférés pour seule preuve. Désormais, les commissaires aux comptes filtrent eux-mêmes le journal et ne nous demandent plus de captures d’écran.',
568
+ 'Le délai de validation des factures est passé de neuf jours à moins de deux dès le premier trimestre, et personne dans mon équipe n’a relancé une signature depuis mars.',
569
+ ],
570
+ quoteName: 'Camille Aubry',
571
+ quoteRole: 'Contrôleuse financière, Marenne Logistique',
572
+ pricingTitle: 'Un tarif par validateur',
573
+ questionsTitle: 'Les questions que nous posent les équipes finance',
574
+ ctaTitle: 'Voyez-le avec votre propre politique de validation',
575
+ ctaText: 'Envoyez-nous votre matrice de délégation. Un ingénieur solutions la construit dans un espace d’essai avant un appel de 30 minutes.',
576
+ ctaSecurity: 'Lire la présentation de la sécurité',
577
+ },
578
+ product: {
579
+ heroEyebrow: 'Produit',
580
+ heroTitle: 'De la demande à l’écriture comptable, dans un seul système',
581
+ heroSubtitle: `${name} remplace la chaîne d’e-mails de validation, le tableur de la matrice et le classeur de preuves par un seul dossier par demande, du moment où elle est déposée au moment où elle est comptabilisée.`,
582
+ stepsTitle: 'Ce qui change dans le premier mois',
583
+ steps: [
584
+ {
585
+ title: 'Semaine 1',
586
+ text: 'Votre matrice de délégation devient une politique, testée sur les demandes du trimestre passé avant que quiconque l’utilise.',
587
+ },
588
+ {
589
+ title: 'Semaine 2',
590
+ text: 'L’ERP est connecté, et les demandeurs déposent leurs demandes par un formulaire plutôt que par e-mail.',
591
+ },
592
+ {
593
+ title: 'Semaine 4',
594
+ text: 'Le premier mois se clôt avec chaque validation dans le journal et les preuves exportées en un seul fichier.',
595
+ },
596
+ ],
597
+ ctaTitle: 'Voyez votre propre politique à l’œuvre',
598
+ ctaText: 'Nous la construisons dans un espace d’essai avant l’appel : la démonstration utilise vos centres de coûts et vos montants.',
599
+ ctaCompare: 'Comparer les formules',
600
+ },
601
+ pricing: {
602
+ heroEyebrow: 'Tarifs',
603
+ heroTitle: 'Payez pour ceux qui valident',
604
+ heroSubtitle: `Toute personne de l’entreprise peut déposer des demandes et des factures dans ${name} sans frais. Les formules sont facturées à l’année par validateur, et un validateur qui ne décide rien pendant un mois n’est pas compté ce mois-là.`,
605
+ trialAction: 'Démarrer un essai',
606
+ plansTitle: 'Comparer les formules',
607
+ billingTitle: 'Facturation',
608
+ billing: [
609
+ [
610
+ 'Comment fonctionne l’essai ?',
611
+ 'Un ingénieur solutions prépare un espace de travail avec votre politique de validation et une copie des demandes du mois dernier. Vous l’utilisez pendant 14 jours. Il ne se transforme pas tout seul en abonnement, et aucune carte bancaire n’est demandée.',
612
+ ],
613
+ [
614
+ 'Qui compte comme validateur ?',
615
+ 'Toute personne qui a validé ou refusé au moins une étape dans le mois. Les personnes qui déposent seulement des demandes, des factures ou consultent des rapports ne paient rien.',
616
+ ],
617
+ [
618
+ 'Peut-on payer sur facture ?',
619
+ 'Oui. Business et Entreprise sont facturés à l’année, à 30 jours, avec votre numéro de bon de commande sur la facture. La formule Équipe se règle par carte.',
620
+ ],
621
+ [
622
+ 'Et si nous grandissons en cours d’année ?',
623
+ 'Les validateurs supplémentaires sont facturés à la fin de chaque trimestre pour les mois où ils ont été actifs, au tarif de votre formule. Rien n’est facturé d’avance.',
624
+ ],
625
+ [
626
+ 'Proposez-vous des remises ?',
627
+ 'Les associations et les établissements scolaires bénéficient de 40 % de remise sur Équipe et Business. Écrivez-nous depuis l’adresse de votre organisation.',
628
+ ],
629
+ [
630
+ 'Peut-on changer de formule plus tard ?',
631
+ 'Oui. Une montée en gamme s’applique tout de suite, au prorata des jours. Une baisse s’applique au renouvellement suivant.',
632
+ ],
633
+ ],
634
+ ctaTitle: 'Un avis pour choisir une formule',
635
+ ctaText: 'Dites-nous combien de personnes valident des dépenses et quel ERP vous utilisez, et nous vous recommandons une formule en un seul e-mail.',
636
+ ctaEmail: 'Écrire aux ventes',
637
+ },
638
+ security: {
639
+ heroEyebrow: 'Sécurité',
640
+ heroTitle: 'Comment nous protégeons vos données financières',
641
+ heroSubtitle: `${name} contient vos fournisseurs, vos budgets et la trace de qui a validé quoi. Voici comment ces données sont hébergées, chiffrées, consultées et conservées.`,
642
+ packAction: 'Demander le dossier de sécurité',
643
+ controlsTitle: 'Les mesures en place',
644
+ controls: [
645
+ {
646
+ icon: 'lock',
647
+ title: 'Chiffrement',
648
+ text: 'TLS 1.3 en transit et AES-256 au repos, avec des clés renouvelées tous les 90 jours.',
649
+ },
650
+ {
651
+ icon: 'globe',
652
+ title: 'Localisation des données',
653
+ text: 'Les espaces de travail sont hébergés à Paris ou à Francfort, et les données restent dans la région.',
654
+ },
655
+ {
656
+ icon: 'users',
657
+ title: 'Accès',
658
+ text: 'Authentification unique, SCIM et droits par rôle, avec chaque connexion enregistrée.',
659
+ },
660
+ {
661
+ icon: 'shield',
662
+ title: 'Journal infalsifiable',
663
+ text: 'Chaque événement porte l’empreinte du précédent, et la chaîne est vérifiée toutes les nuits.',
664
+ },
665
+ {
666
+ icon: 'refresh',
667
+ title: 'Sauvegardes',
668
+ text: 'Des sauvegardes chiffrées toutes les heures, conservées 35 jours et restaurées lors d’un test chaque mois.',
669
+ },
670
+ {
671
+ icon: 'check',
672
+ title: 'Audits indépendants',
673
+ text: 'Un rapport SOC 2 Type II chaque année et un test d’intrusion externe tous les six mois.',
674
+ },
675
+ ],
676
+ detail: [
677
+ { h2: 'Hébergement' },
678
+ {
679
+ p: 'Les espaces de travail tournent sur Amazon Web Services, à Paris (eu-west-3) ou à Francfort (eu-central-1). La région est choisie à la création de l’espace et nos équipes ne peuvent pas la changer. La production s’étend sur trois zones de disponibilité, et la base de données est répliquée entre elles.',
680
+ },
681
+ { h2: 'Accès de nos équipes' },
682
+ {
683
+ p: 'Personne dans l’entreprise ne peut lire votre espace de travail par défaut. Un ingénieur du support peut recevoir l’accès à un espace pendant 24 heures, seulement après accord d’un administrateur de cet espace, et chaque action menée pendant ce temps est inscrite dans votre journal d’audit.',
684
+ },
685
+ { h2: 'Conserver la trace' },
686
+ {
687
+ p: 'Le journal d’audit s’écrit sans jamais revenir en arrière. Les événements sont chaînés par leur empreinte, la chaîne est vérifiée chaque nuit et à la demande, et les exports sont signés pour qu’un fichier puisse être vérifié contre l’espace de travail. Les demandes supprimées restent dans le journal sous forme de suppressions.',
688
+ },
689
+ { h2: 'Signaler une vulnérabilité' },
690
+ {
691
+ p: `Écrivez à ${mail('securite')}. Nous accusons réception sous un jour ouvré, nous vous tenons informé pendant la correction, et nous vous citons une fois le problème résolu si vous le souhaitez.`,
692
+ },
693
+ ],
694
+ logCaption: 'Le journal d’audit d’une demande d’achat, chaîne vérifiée.',
695
+ racksCaption: 'Des baies réseau dans une salle de centre de données. Notre hébergeur exploite les bâtiments ; nous exploitons le logiciel qui tourne dessus.',
696
+ subprocessorsTitle: 'Sous-traitants',
697
+ subprocessors: [
698
+ [
699
+ 'Amazon Web Services',
700
+ 'Hébergement, stockage et sauvegardes, dans la région de l’espace de travail. Accord de sous-traitance signé.',
701
+ ],
702
+ [
703
+ 'Cloudflare',
704
+ 'Protection du réseau et diffusion de l’application web. Métadonnées des requêtes uniquement, jamais le contenu d’un espace de travail.',
705
+ ],
706
+ [
707
+ 'Brevo',
708
+ 'E-mails transactionnels : demandes de validation, rappels et accusés de réception. L’objet et le résumé d’une demande, jamais ses pièces jointes.',
709
+ ],
710
+ [
711
+ 'Slack et Microsoft Teams',
712
+ 'Seulement quand un client les connecte. Messages de validation envoyés aux canaux que le client choisit.',
713
+ ],
714
+ ],
715
+ ctaTitle: 'Questionnaires de sécurité',
716
+ ctaText: 'Notre dossier de sécurité comprend le rapport SOC 2, le résumé du dernier test d’intrusion et les réponses aux questionnaires habituels.',
717
+ },
718
+ changelog: {
719
+ heroEyebrow: 'Nouveautés',
720
+ heroTitle: `Ce qui change dans ${name}`,
721
+ heroSubtitle: 'Nous livrons chaque semaine. Voici les changements qui modifient votre façon de travailler, du plus récent au plus ancien.',
722
+ },
723
+ about: {
724
+ heroEyebrow: 'Entreprise',
725
+ heroTitle: 'Créé par des gens qui ont déjà bouclé les comptes',
726
+ heroSubtitle: `${name} est né à Paris en 2019, fondé par deux anciens responsables financiers qui avaient passé trop de clôtures à courir après des validations par e-mail.`,
727
+ story: [
728
+ {
729
+ p: `Claire Delmas et Mathieu Roussel se sont rencontrés dans un groupe de logistique où valider un achat voulait dire un e-mail, un tableur et une signature sur un bon papier. Chaque fin de mois, l’équipe finance passait deux jours à reconstituer qui avait validé quoi. Ils ont écrit la première version de ${name} pour cette équipe, et elle y a tourné un an avant que quelqu’un d’autre ne l’utilise.`,
730
+ },
731
+ {
732
+ p: 'Aujourd’hui, 58 personnes travaillent sur le produit, à Paris et à Montréal. La moitié écrit du logiciel. La plupart des autres ont travaillé en finance, aux achats ou en audit, et chaque ingénieur solutions a déjà conduit une clôture mensuelle.',
733
+ },
734
+ { h2: 'Notre façon de travailler' },
735
+ {
736
+ ul: [
737
+ 'Un seul produit, vendu aux équipes finance et opérations, et rien d’autre',
738
+ 'Des tarifs publiés sur le site, les mêmes pour tous les clients de même taille',
739
+ 'Un support assuré par les personnes qui construisent le produit',
740
+ 'Des nouveautés qui listent chaque changement modifiant votre façon de travailler',
741
+ ],
742
+ },
743
+ { h2: 'Financement' },
744
+ {
745
+ p: 'Nous avons levé des fonds d’amorçage en 2020 puis une série A en 2023, et nous sommes rentables depuis le dernier trimestre 2025.',
746
+ },
747
+ ],
748
+ numbersTitle: 'L’entreprise aujourd’hui',
749
+ numbers: [
750
+ { value: '1 100', label: 'clients' },
751
+ { value: '19', label: 'pays' },
752
+ { value: '58', label: 'personnes' },
753
+ { value: '2', label: 'bureaux' },
754
+ ],
755
+ places: [
756
+ { h2: 'Où nous travaillons' },
757
+ {
758
+ p: 'Paris. L’équipe produit et le support travaillent côte à côte, à quelques stations de métro de la Bourse.',
759
+ },
760
+ {
761
+ p: 'Montréal. Notre second bureau, ouvert en 2023, couvre les horaires d’Amérique du Nord.',
762
+ },
763
+ ],
764
+ customersTitle: 'Quelques-uns de nos clients',
765
+ ctaTitle: 'Travailler avec nous',
766
+ ctaText: 'Nous recrutons des ingénieurs, des ingénieurs solutions et des spécialistes du support à Paris et à Montréal.',
767
+ ctaAction: 'Nous écrire',
768
+ },
769
+ demo: {
770
+ heroEyebrow: 'Réserver une démo',
771
+ heroTitle: 'Parlez à quelqu’un qui a déjà conduit une clôture mensuelle',
772
+ heroSubtitle: 'Un appel de 30 minutes avec un ingénieur solutions, puis un espace d’essai paramétré avec votre propre politique de validation.',
773
+ emailAction: `Écrire à ${mail('demo')}`,
774
+ emailSubject: 'Demande de démonstration',
775
+ contactTitle: 'Nous joindre',
776
+ emailText: `${mail('demo')}, réponse sous un jour ouvré.`,
777
+ phoneText: 'Du lundi au vendredi, de 9 h à 18 h, heure de Paris.',
778
+ securityTitle: 'Revue de sécurité',
779
+ securityText: 'Commencez votre revue de sécurité avant l’appel.',
780
+ how: [
781
+ { h2: 'Avant l’appel' },
782
+ {
783
+ p: 'Écrivez-nous avec le nombre de personnes qui valident des dépenses, l’ERP que vous utilisez, et votre matrice de délégation actuelle si vous pouvez la partager. Un tableur suffit. Nous répondons sous un jour ouvré pour convenir d’un horaire.',
784
+ },
785
+ { h2: 'Pendant l’appel' },
786
+ {
787
+ p: 'Un ingénieur solutions présente le produit avec votre politique déjà construite, répond aux questions de la finance, des achats et de la DSI, et passe en revue ce que demanderait un déploiement pour votre équipe.',
788
+ },
789
+ { h2: 'L’essai' },
790
+ {
791
+ p: 'Après l’appel, vous recevez un espace de travail pendant 14 jours, avec votre politique et une copie des demandes du mois dernier à partir d’un export CSV. Votre équipe peut y déposer et y valider des demandes. L’essai ne se transforme pas tout seul en abonnement, et nous ne demandons pas de carte bancaire.',
792
+ },
793
+ ],
794
+ },
795
+ legal: [
796
+ { h2: 'Éditeur du site' },
797
+ {
798
+ p: `${name} est exploité par ${name} SAS, société par actions simplifiée au capital de 120 000 €, dont le siège social est situé 27 rue de la Chaussée-d’Antin, 75009 Paris. Immatriculée au registre du commerce et des sociétés de Paris sous le numéro 000 000 000. Numéro de TVA intracommunautaire : FR00 000000000.`,
799
+ },
800
+ { p: 'Directrice de la publication : Claire Delmas, présidente.' },
801
+ { h2: 'Hébergement' },
802
+ {
803
+ p: 'Le site est hébergé par Amazon Web Services EMEA SARL, 38 avenue John F. Kennedy, L-1855 Luxembourg.',
804
+ },
805
+ { h2: 'Conditions d’utilisation' },
806
+ {
807
+ p: 'L’usage du produit est régi par le contrat d’abonnement signé avec chaque client, ou, pour la formule Équipe, par les conditions acceptées à la création de l’espace de travail. En cas de différence entre les deux, le contrat signé prévaut.',
808
+ },
809
+ { h2: 'Traitement des données' },
810
+ {
811
+ p: 'Nous traitons les données personnelles des espaces de travail de nos clients en tant que sous-traitant, dans le cadre d’un accord de sous-traitance conforme à l’article 28 du RGPD. La liste des sous-traitants ultérieurs figure sur la page Sécurité, et les clients sont prévenus 30 jours avant l’ajout d’un nouveau.',
812
+ },
813
+ { h2: 'Contact' },
814
+ { p: `Pour toute question juridique, écrivez à ${mail('juridique')}.` },
815
+ ],
816
+ privacy: [
817
+ {
818
+ p: 'Cette politique couvre les données personnelles que nous collectons par ce site et lorsque vous nous contactez. Les données contenues dans l’espace de travail d’un client relèvent du contrat que ce client a signé avec nous.',
819
+ },
820
+ { h2: 'Ce que nous collectons' },
821
+ {
822
+ ul: [
823
+ 'Le nom, l’adresse e-mail professionnelle et l’entreprise que vous nous indiquez quand vous demandez une démonstration ou nous écrivez',
824
+ 'La trace de nos e-mails et de nos appels avec vous',
825
+ 'Des pages vues anonymes, comptées sans cookie et sans vous suivre d’un site à l’autre',
826
+ ],
827
+ },
828
+ { h2: 'Combien de temps nous les conservons' },
829
+ {
830
+ p: 'Les demandes qui n’aboutissent pas à un contrat sont supprimées au bout de trois ans sans contact de votre part. Les contacts des clients sont conservés pendant la durée du contrat puis cinq ans après, comme le prévoit le droit commercial.',
831
+ },
832
+ { h2: 'Vos droits' },
833
+ {
834
+ p: `Vous pouvez demander l’accès aux données que nous détenons sur vous, leur rectification, leur effacement ou vous opposer à leur traitement en écrivant à ${mail('confidentialite')}. Vous pouvez aussi introduire une réclamation auprès de la CNIL.`,
835
+ },
836
+ ],
837
+ credits: {
838
+ intro: [
839
+ {
840
+ p: 'Les photographies de ce site viennent de Wikimedia Commons et sont utilisées selon les licences ci-dessous. Les captures de l’interface et les logotypes des clients ont été dessinés pour ce site, et les personnes et entreprises qu’ils montrent sont fictives.',
841
+ },
842
+ ],
843
+ sourceWord: 'source',
844
+ },
845
+ }),
846
+ menus: {
847
+ header: [
848
+ { label: 'Produit', page: 'product' },
849
+ { label: 'Sécurité', page: 'security' },
850
+ { label: 'Tarifs', page: 'pricing' },
851
+ { label: 'Nouveautés', page: 'changelog' },
852
+ { label: 'Entreprise', page: 'about' },
853
+ ],
854
+ action: 'Réserver une démo',
855
+ },
856
+ footer: [
857
+ {
858
+ heading: 'Produit',
859
+ links: [
860
+ { label: 'Vue d’ensemble', page: 'product' },
861
+ { label: 'Circuits de validation', feature: 'circuits-de-validation' },
862
+ { label: 'Journal d’audit', feature: 'journal-d-audit' },
863
+ { label: 'Tarifs', page: 'pricing' },
864
+ ],
865
+ },
866
+ {
867
+ heading: 'Entreprise',
868
+ links: [
869
+ { label: 'À propos', page: 'about' },
870
+ { label: 'Sécurité', page: 'security' },
871
+ { label: 'Réserver une démo', page: 'demo' },
872
+ ],
873
+ },
874
+ {
875
+ heading: 'Ressources',
876
+ links: [
877
+ { label: 'Nouveautés', page: 'changelog' },
878
+ { label: 'API et webhooks', feature: 'api-et-webhooks' },
879
+ { label: 'Synchronisation comptable', feature: 'synchronisation-comptable' },
880
+ ],
881
+ },
882
+ {
883
+ heading: 'Mentions',
884
+ links: [
885
+ { label: 'Mentions légales', page: 'legal' },
886
+ { label: 'Confidentialité', page: 'privacy' },
887
+ { label: 'Crédits photos', page: 'credits' },
888
+ ],
889
+ },
890
+ ],
891
+ settings: {
892
+ tagline: 'Validation des dépenses et piste d’audit pour les équipes finance et opérations.',
893
+ footerNote: '27 rue de la Chaussée-d’Antin\n75009 Paris\nFrance\n\nSupport les jours ouvrés, de 9 h à 18 h (heure de Paris).',
894
+ },
895
+ widgets: {
896
+ searchPlaceholder: 'Audit, ERP',
897
+ archivesTitle: 'Nouveautés par mois',
898
+ recentTitle: 'Livré récemment',
899
+ resourcesTitle: 'Ressources',
900
+ resources: [
901
+ { label: 'Présentation du produit', page: 'product' },
902
+ { label: 'API et webhooks', feature: 'api-et-webhooks' },
903
+ { label: 'Synchronisation comptable', feature: 'synchronisation-comptable' },
904
+ { label: 'Sécurité et conformité', page: 'security' },
905
+ { label: 'Tarifs', page: 'pricing' },
906
+ ],
907
+ ctaHeading: 'Voyez-le avec votre propre politique de validation',
908
+ ctaBody: 'Un appel de 30 minutes avec un ingénieur solutions, puis un espace d’essai paramétré avec votre politique.',
909
+ ctaLabel: 'Réserver une démo',
910
+ },
911
+ };
912
+ //# sourceMappingURL=saas-copy-fr.js.map