From b9c34a354ac297ed302d9c7f47d046b8030d0398 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Bitard?= <bitard.michael@gmail.com>
Date: Tue, 30 Apr 2024 11:18:20 +0200
Subject: [PATCH] refactor(ui): supprime vuex (#1126)

---
 package-lock.json                             |  15 +-
 packages/common/src/typescript-tools.ts       |  28 ---
 packages/ui/README.md                         |   1 -
 packages/ui/package.json                      |   3 +-
 packages/ui/src/app.tsx                       |   9 -
 .../src/components/_common/storybook.spec.ts  |   2 -
 .../_ui/functional-popup.stories.tsx          |  26 ++-
 ...nctional-popup.stories_snapshots_Main.html |  12 +-
 ...onal-popup.stories_snapshots_NotValid.html |  12 +-
 ...nal-popup.stories_snapshots_SaveError.html |  33 ++++
 .../src/components/_ui/functional-popup.tsx   |  71 ++++---
 packages/ui/src/components/_ui/messages.tsx   |   8 +-
 .../ui/src/components/_ui/storybook.spec.ts   |   2 -
 ...stories_snapshots_DocumentObligatoire.html |  12 +-
 ...p.stories_snapshots_DocumentOptionnel.html |  12 +-
 ...epose-popup.stories_snapshots_Default.html |  12 +-
 ...etape-popup.stories_snapshots_Default.html |  12 +-
 ...etape-popup.stories_snapshots_Default.html |  12 +-
 packages/ui/src/components/entreprise.tsx     |  36 +---
 ...ument-popup.stories_snapshots_Default.html |  12 +-
 ...ies_snapshots_TypeDeDocumentVerouille.html |  12 +-
 .../add-popup.stories_snapshots_Super.html    |  12 +-
 .../edit-popup.stories_snapshots_Ok.html      |  12 +-
 .../edit-popup.stories_snapshots_Super.html   |  12 +-
 ...ument-popup.stories_snapshots_Default.html |  12 +-
 packages/ui/src/components/entreprises.tsx    |  16 +-
 ...apshots_DocumentInitialDejaSauvegarde.html |  12 +-
 ...s_snapshots_DocumentInitialTemporaire.html |  12 +-
 ...stories_snapshots_SansDocumentInitial.html |  12 +-
 ...apshots_DocumentInitialDejaSauvegarde.html |  12 +-
 ...s_snapshots_DocumentInitialTemporaire.html |  12 +-
 ...stories_snapshots_SansDocumentInitial.html |  12 +-
 ...ument-popup.stories_snapshots_Default.html |  12 +-
 ...pup.stories_snapshots_DocumentInitial.html |  12 +-
 ...nt-popup.stories_snapshots_Entreprise.html |  12 +-
 ...ries_snapshots_UnSeulDocumentPossible.html |  12 +-
 ...mport-popup.stories_snapshots_Default.html |  12 +-
 ...mport-popup.stories_snapshots_Default.html |  12 +-
 ...mport-popup.stories_snapshots_Default.html |  12 +-
 packages/ui/src/components/meta-activite.tsx  |  12 --
 packages/ui/src/components/meta-demarche.tsx  |  40 ----
 packages/ui/src/components/meta-etape.tsx     |  57 ------
 packages/ui/src/components/meta-titre.tsx     |  45 -----
 packages/ui/src/components/meta.tsx           |  42 +++--
 .../metas.stories_snapshots_Super.html        |  12 --
 packages/ui/src/components/metas.tsx          |   4 +-
 .../src/components/metas/definition-edit.tsx  | 178 ------------------
 .../components/metas/meta-page-template.tsx   |  29 ---
 packages/ui/src/components/titre.stories.tsx  |   2 +-
 packages/ui/src/components/titre.tsx          |  24 +--
 ...e-edit-popup.stories_snapshots_Create.html |  12 +-
 ...che-edit-popup.stories_snapshots_Edit.html |  12 +-
 ...e-remove-popup.stories_snapshots_Main.html |  12 +-
 ....stories_snapshots_DefaultNoReference.html |  12 +-
 ...-popup.stories_snapshots_OneReference.html |  12 +-
 ...emove-popup.stories_snapshots_Default.html |  12 +-
 .../ui/src/components/utilisateur.stories.tsx |   4 +-
 packages/ui/src/components/utilisateur.tsx    |  39 +---
 ...emove-popup.stories_snapshots_Default.html |  12 +-
 packages/ui/src/index.ts                      |   2 -
 .../ui/src/{store => }/metas-definitions.ts   |  20 --
 packages/ui/src/router/index.ts               |  56 ------
 packages/ui/src/store/index.js                |  43 -----
 packages/ui/src/store/index.test.js           |  90 ---------
 packages/ui/src/store/meta.js                 |  71 -------
 packages/ui/src/storybook.spec.ts             |   2 -
 packages/ui/src/typings/global.d.ts           |  11 ++
 packages/ui/src/typings/vuex.d.ts             |  26 ---
 68 files changed, 429 insertions(+), 1026 deletions(-)
 create mode 100644 packages/ui/src/components/_ui/functional-popup.stories_snapshots_SaveError.html
 delete mode 100644 packages/ui/src/components/meta-activite.tsx
 delete mode 100644 packages/ui/src/components/meta-demarche.tsx
 delete mode 100644 packages/ui/src/components/meta-etape.tsx
 delete mode 100644 packages/ui/src/components/meta-titre.tsx
 delete mode 100644 packages/ui/src/components/metas/definition-edit.tsx
 delete mode 100644 packages/ui/src/components/metas/meta-page-template.tsx
 rename packages/ui/src/{store => }/metas-definitions.ts (97%)
 delete mode 100644 packages/ui/src/store/index.js
 delete mode 100644 packages/ui/src/store/index.test.js
 delete mode 100644 packages/ui/src/store/meta.js
 create mode 100644 packages/ui/src/typings/global.d.ts
 delete mode 100644 packages/ui/src/typings/vuex.d.ts

diff --git a/package-lock.json b/package-lock.json
index 2b475013f..e9de75bc3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -26544,18 +26544,6 @@
         "he": "^1.2.0"
       }
     },
-    "node_modules/vuex": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz",
-      "integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==",
-      "dev": true,
-      "dependencies": {
-        "@vue/devtools-api": "^6.0.0-beta.11"
-      },
-      "peerDependencies": {
-        "vue": "^3.2.0"
-      }
-    },
     "node_modules/w3c-xmlserializer": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
@@ -27414,8 +27402,7 @@
         "vite": "^5.2.10",
         "vitest": "^1.5.2",
         "vue": "^3.4.26",
-        "vue-router": "^4.3.2",
-        "vuex": "^4.1.0"
+        "vue-router": "^4.3.2"
       }
     },
     "stub/types__react": {
diff --git a/packages/common/src/typescript-tools.ts b/packages/common/src/typescript-tools.ts
index bb8bbbb69..4e715dca8 100644
--- a/packages/common/src/typescript-tools.ts
+++ b/packages/common/src/typescript-tools.ts
@@ -104,34 +104,6 @@ export type DeepReadonly<T> = T extends Builtin
                       }
                     : Readonly<T>
 
-type Mutable<T> = {
-  -readonly [P in keyof T]: T[P]
-}
-
-export type DeepMutable<T> = T extends Builtin
-  ? T
-  : T extends Map<infer K, infer V>
-    ? Map<DeepMutable<K>, DeepMutable<V>>
-    : T extends ReadonlyMap<infer K, infer V>
-      ? Map<DeepMutable<K>, DeepMutable<V>>
-      : T extends WeakMap<infer K, infer V>
-        ? WeakMap<DeepMutable<K>, DeepMutable<V>>
-        : T extends Set<infer U>
-          ? Set<DeepMutable<U>>
-          : T extends ReadonlySet<infer U>
-            ? Set<DeepMutable<U>>
-            : T extends WeakSet<infer U>
-              ? WeakSet<DeepMutable<U>>
-              : T extends Promise<infer U>
-                ? Promise<DeepMutable<U>>
-                : T extends Ref<infer U>
-                  ? Mutable<Ref<DeepMutable<U>>>
-                  : T extends {}
-                    ? {
-                        -readonly [K in keyof T]: DeepMutable<T[K]>
-                      }
-                    : Mutable<T>
-
 export const exhaustiveCheck = (param: never): never => {
   throw new Error(`Unreachable case: ${JSON.stringify(param)}`)
 }
diff --git a/packages/ui/README.md b/packages/ui/README.md
index 53f1e37bb..b35c8cd92 100644
--- a/packages/ui/README.md
+++ b/packages/ui/README.md
@@ -9,7 +9,6 @@
 ## Technologies
 
 - [Vue.js](https://v3.vuejs.org/)
-- [Vuex](https://vuex.vuejs.org/)
 - [Leaflet.js](https://leafletjs.com/)
 - [graphql-react](https://github.com/jaydenseric/graphql-react)
 - [vite](https://vitejs.dev/)
diff --git a/packages/ui/package.json b/packages/ui/package.json
index adc0e839f..f05a848a5 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -88,8 +88,7 @@
     "vite": "^5.2.10",
     "vitest": "^1.5.2",
     "vue": "^3.4.26",
-    "vue-router": "^4.3.2",
-    "vuex": "^4.1.0"
+    "vue-router": "^4.3.2"
   },
   "eslintConfig": {
     "root": true,
diff --git a/packages/ui/src/app.tsx b/packages/ui/src/app.tsx
index cfb3f492d..edd96dd18 100644
--- a/packages/ui/src/app.tsx
+++ b/packages/ui/src/app.tsx
@@ -3,24 +3,19 @@ import '@gouvfr/dsfr/dist/component/navigation/navigation.module'
 import '@gouvfr/dsfr/dist/component/tab/tab.module'
 
 import { defineComponent, computed, ref, onMounted, inject } from 'vue'
-import { Messages } from './components/_ui/messages'
 import { Header } from './components/page/header'
 import { Footer } from './components/page/footer'
 import { MapPattern } from './components/_map/pattern'
 import { IconSprite } from './components/_ui/iconSprite'
 
-import { useStore } from 'vuex'
 import { RouterView, useRoute } from 'vue-router'
 import { isNullOrUndefined } from 'camino-common/src/typescript-tools'
 import { userKey } from './moi'
 export const App = defineComponent(() => {
-  const store = useStore()
   const route = useRoute()
 
   const loaded = ref<boolean>(false)
 
-  const messages = computed<{ type: 'error' | 'success'; value: string }[]>(() => store.state.messages)
-
   const currentMenuSection = computed(() => route.meta?.menuSection)
 
   const user = inject(userKey)
@@ -51,10 +46,6 @@ export const App = defineComponent(() => {
       </main>
 
       <Footer displayNewsletter={displayNewsletter.value} version={version.value} />
-
-      <div class="messages">
-        <Messages messages={messages.value} />
-      </div>
     </div>
   )
 })
diff --git a/packages/ui/src/components/_common/storybook.spec.ts b/packages/ui/src/components/_common/storybook.spec.ts
index e8b125a86..d3df08b80 100644
--- a/packages/ui/src/components/_common/storybook.spec.ts
+++ b/packages/ui/src/components/_common/storybook.spec.ts
@@ -24,8 +24,6 @@ vi.mock('vue-router', () => ({
   })),
 }))
 
-vi.mock('vuex', () => ({ useStore: vi.fn() }))
-
 const compose = (entry: StoryFile): ReturnType<typeof composeStories<StoryFile>> => {
   try {
     return composeStories(entry)
diff --git a/packages/ui/src/components/_ui/functional-popup.stories.tsx b/packages/ui/src/components/_ui/functional-popup.stories.tsx
index 65174a640..029c234d4 100644
--- a/packages/ui/src/components/_ui/functional-popup.stories.tsx
+++ b/packages/ui/src/components/_ui/functional-popup.stories.tsx
@@ -4,6 +4,7 @@ import { action } from '@storybook/addon-actions'
 
 const meta: Meta = {
   title: 'Components/UI/Popup',
+  // @ts-ignore
   component: FunctionalPopup,
 }
 export default meta
@@ -21,7 +22,30 @@ export const Main: StoryFn = () => (
       action: () => {
         doStuff()
 
-        return Promise.resolve()
+        return new Promise<void>(resolve => setTimeout(() => resolve(), 5000))
+      },
+    }}
+    content={() => (
+      <div>
+        <div class="bg-warning color-bg p-s mb-l">
+          <span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.
+        </div>
+      </div>
+    )}
+  />
+)
+
+export const SaveError: StoryFn = () => (
+  <FunctionalPopup
+    id="mainId"
+    close={close}
+    title="Titre de la popup"
+    canValidate={true}
+    validate={{
+      action: () => {
+        doStuff()
+
+        return Promise.reject(new Error('erreur'))
       },
     }}
     content={() => (
diff --git a/packages/ui/src/components/_ui/functional-popup.stories_snapshots_Main.html b/packages/ui/src/components/_ui/functional-popup.stories_snapshots_Main.html
index 5aeaf85d0..b23e68309 100644
--- a/packages/ui/src/components/_ui/functional-popup.stories_snapshots_Main.html
+++ b/packages/ui/src/components/_ui/functional-popup.stories_snapshots_Main.html
@@ -12,13 +12,17 @@
                 <div>
                   <div class="bg-warning color-bg p-s mb-l"><span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.</div>
                 </div>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="mainId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="mainId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/_ui/functional-popup.stories_snapshots_NotValid.html b/packages/ui/src/components/_ui/functional-popup.stories_snapshots_NotValid.html
index 46b58a463..82768c916 100644
--- a/packages/ui/src/components/_ui/functional-popup.stories_snapshots_NotValid.html
+++ b/packages/ui/src/components/_ui/functional-popup.stories_snapshots_NotValid.html
@@ -12,13 +12,17 @@
                 <div>
                   <div class="bg-warning color-bg p-s mb-l"><span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.</div>
                 </div>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="mainId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="mainId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/_ui/functional-popup.stories_snapshots_SaveError.html b/packages/ui/src/components/_ui/functional-popup.stories_snapshots_SaveError.html
new file mode 100644
index 000000000..b23e68309
--- /dev/null
+++ b/packages/ui/src/components/_ui/functional-popup.stories_snapshots_SaveError.html
@@ -0,0 +1,33 @@
+<!--teleport start-->
+<div class="dsfr">
+  <dialog id="mainId" class="fr-modal fr-modal--opened" open="" aria-modal="true" role="dialog" aria-labelledby="mainId-title" style="z-index: 1000001;">
+    <div class="fr-container fr-container--fluid fr-container-md">
+      <div class="fr-grid-row fr-grid-row--center">
+        <div class="fr-col-12 fr-col-md-8 fr-col-lg-6">
+          <div class="fr-modal__body">
+            <div class="fr-modal__header"><button class="fr-btn--close fr-btn" aria-controls="mainId" title="Fermer">Fermer</button></div>
+            <div class="fr-modal__content">
+              <h1 id="mainId-title" class="fr-modal__title"><span class="fr-icon-arrow-right-line fr-icon--lg" aria-hidden="true"></span>Titre de la popup</h1>
+              <div class="fr-container">
+                <div>
+                  <div class="bg-warning color-bg p-s mb-l"><span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.</div>
+                </div>
+                <!---->
+              </div>
+            </div>
+            <div class="fr-modal__footer">
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="mainId">Annuler</button></li>
+                </ul>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </dialog>
+</div>
+<!--teleport end-->
\ No newline at end of file
diff --git a/packages/ui/src/components/_ui/functional-popup.tsx b/packages/ui/src/components/_ui/functional-popup.tsx
index 38c1db596..632e4e472 100644
--- a/packages/ui/src/components/_ui/functional-popup.tsx
+++ b/packages/ui/src/components/_ui/functional-popup.tsx
@@ -1,8 +1,9 @@
 import { AsyncData } from '@/api/client-rest'
-import { caminoDefineComponent } from '@/utils/vue-tsx-utils'
-import { Teleport, computed, onBeforeUnmount, onMounted, ref } from 'vue'
+import { Teleport, computed, defineComponent, onBeforeUnmount, onMounted, ref } from 'vue'
 import { LoadingElement } from './functional-loader'
 import type { JSX } from 'vue/jsx-runtime'
+import { Alert } from './alert'
+
 interface Props {
   id?: string
   title: string
@@ -15,7 +16,7 @@ interface Props {
   canValidate: boolean
 }
 
-export const FunctionalPopup = caminoDefineComponent<Props>(['id', 'title', 'content', 'close', 'validate', 'canValidate'], (props: Props) => {
+export const FunctionalPopup = defineComponent<Props>((props: Props) => {
   const canValidate = computed<boolean>(() => {
     return props.canValidate
   })
@@ -87,35 +88,42 @@ export const FunctionalPopup = caminoDefineComponent<Props>(['id', 'title', 'con
                       <span class="fr-icon-arrow-right-line fr-icon--lg" aria-hidden="true"></span>
                       {props.title}
                     </h1>
-                    <div class="fr-container">{props.content()}</div>
+                    <div class="fr-container">
+                      {props.content()}
+                      {validateProcess.value.status === 'ERROR' ? <Alert small={true} type="error" title={validateProcess.value.message} /> : null}
+                    </div>
                   </div>
-                  <LoadingElement
-                    data={validateProcess.value}
-                    renderItem={() => (
-                      <div class="fr-modal__footer">
-                        <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                          <li>
-                            <button
-                              class={['fr-btn', 'fr-icon-check-line', 'fr-btn--icon-left', !canValidate.value ? 'disabled' : '']}
-                              disabled={!canValidate.value}
-                              onClick={e => {
-                                e.stopPropagation()
 
-                                return validate()
-                              }}
-                            >
-                              {text}
-                            </button>
-                          </li>
-                          <li>
-                            <button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls={id} onClick={props.close}>
-                              Annuler
-                            </button>
-                          </li>
-                        </ul>
-                      </div>
-                    )}
-                  />
+                  <div class="fr-modal__footer">
+                    <div style={{ display: 'flex', width: '100%', justifyContent: 'end', alignItems: 'center', gap: '1rem' }}>
+                      {validateProcess.value.status !== 'ERROR' ? <LoadingElement data={validateProcess.value} renderItem={() => null} /> : null}
+                      <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style={{ width: 'auto' }}>
+                        <li>
+                          <button
+                            class={['fr-btn', 'fr-icon-check-line', 'fr-btn--icon-left', !canValidate.value ? 'disabled' : '']}
+                            disabled={!canValidate.value || validateProcess.value.status === 'LOADING'}
+                            onClick={e => {
+                              e.stopPropagation()
+
+                              return validate()
+                            }}
+                          >
+                            {text}
+                          </button>
+                        </li>
+                        <li>
+                          <button
+                            class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary"
+                            disabled={validateProcess.value.status === 'LOADING'}
+                            aria-controls={id}
+                            onClick={props.close}
+                          >
+                            Annuler
+                          </button>
+                        </li>
+                      </ul>
+                    </div>
+                  </div>
                 </div>
               </div>
             </div>
@@ -125,3 +133,6 @@ export const FunctionalPopup = caminoDefineComponent<Props>(['id', 'title', 'con
     </Teleport>
   )
 })
+
+// @ts-ignore waiting for https://github.com/vuejs/core/issues/7833
+FunctionalPopup.props = ['id', 'title', 'content', 'close', 'validate', 'canValidate']
diff --git a/packages/ui/src/components/_ui/messages.tsx b/packages/ui/src/components/_ui/messages.tsx
index d834d6f8b..7d77fde97 100644
--- a/packages/ui/src/components/_ui/messages.tsx
+++ b/packages/ui/src/components/_ui/messages.tsx
@@ -1,10 +1,9 @@
-import { caminoDefineComponent } from '@/utils/vue-tsx-utils'
-import { TransitionGroup } from 'vue'
+import { TransitionGroup, defineComponent } from 'vue'
 
 interface Props {
   messages: { type: 'error' | 'success'; value: string | Error }[]
 }
-export const Messages = caminoDefineComponent<Props>(['messages'], props => {
+export const Messages = defineComponent<Props>(props => {
   return () => (
     <TransitionGroup name="slide-bottom" tag="div">
       {props.messages.map((message, index) => (
@@ -15,3 +14,6 @@ export const Messages = caminoDefineComponent<Props>(['messages'], props => {
     </TransitionGroup>
   )
 })
+
+// @ts-ignore waiting for https://github.com/vuejs/core/issues/7833
+Messages.props = ['messages']
diff --git a/packages/ui/src/components/_ui/storybook.spec.ts b/packages/ui/src/components/_ui/storybook.spec.ts
index 9ea05b2f6..01d7716cd 100644
--- a/packages/ui/src/components/_ui/storybook.spec.ts
+++ b/packages/ui/src/components/_ui/storybook.spec.ts
@@ -24,8 +24,6 @@ vi.mock('vue-router', () => ({
   })),
 }))
 
-vi.mock('vuex', () => ({ useStore: vi.fn() }))
-
 const compose = (entry: StoryFile): ReturnType<typeof composeStories<StoryFile>> => {
   try {
     return composeStories(entry)
diff --git a/packages/ui/src/components/activite/add-activite-document-popup.stories_snapshots_DocumentObligatoire.html b/packages/ui/src/components/activite/add-activite-document-popup.stories_snapshots_DocumentObligatoire.html
index 54f66f8c7..01cd58f1f 100644
--- a/packages/ui/src/components/activite/add-activite-document-popup.stories_snapshots_DocumentObligatoire.html
+++ b/packages/ui/src/components/activite/add-activite-document-popup.stories_snapshots_DocumentObligatoire.html
@@ -25,13 +25,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/activite/add-activite-document-popup.stories_snapshots_DocumentOptionnel.html b/packages/ui/src/components/activite/add-activite-document-popup.stories_snapshots_DocumentOptionnel.html
index ea0be91df..d901fcf9e 100644
--- a/packages/ui/src/components/activite/add-activite-document-popup.stories_snapshots_DocumentOptionnel.html
+++ b/packages/ui/src/components/activite/add-activite-document-popup.stories_snapshots_DocumentOptionnel.html
@@ -25,13 +25,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/activite/depose-popup.stories_snapshots_Default.html b/packages/ui/src/components/activite/depose-popup.stories_snapshots_Default.html
index e70f5656a..48de9eefc 100644
--- a/packages/ui/src/components/activite/depose-popup.stories_snapshots_Default.html
+++ b/packages/ui/src/components/activite/depose-popup.stories_snapshots_Default.html
@@ -12,13 +12,17 @@
                 <div class="fr-alert fr-alert--warning">
                   <h3 class="fr-alert__title">Attention : cette opération est définitive et ne peut pas être annulée.</h3> Souhaitez-vous déposer ce <span class="fr-text--bold"> rapport d'exploitation (permis et concessions M)</span> du titre<span class="fr-text--bold"> Titre 1</span> ?
                 </div>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Déposer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Déposer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/demarche/depose-etape-popup.stories_snapshots_Default.html b/packages/ui/src/components/demarche/depose-etape-popup.stories_snapshots_Default.html
index 425b2d280..8202add2b 100644
--- a/packages/ui/src/components/demarche/depose-etape-popup.stories_snapshots_Default.html
+++ b/packages/ui/src/components/demarche/depose-etape-popup.stories_snapshots_Default.html
@@ -12,13 +12,17 @@
                 <div class="fr-alert fr-alert--warning">
                   <h3 class="fr-alert__title">Attention : cette opération est définitive et ne peut pas être annulée.</h3>Souhaitez vous effectuer le dépôt ?
                 </div>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Déposer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Déposer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/demarche/remove-etape-popup.stories_snapshots_Default.html b/packages/ui/src/components/demarche/remove-etape-popup.stories_snapshots_Default.html
index 415a0f382..5be4af7c9 100644
--- a/packages/ui/src/components/demarche/remove-etape-popup.stories_snapshots_Default.html
+++ b/packages/ui/src/components/demarche/remove-etape-popup.stories_snapshots_Default.html
@@ -12,13 +12,17 @@
                 <div class="fr-alert fr-alert--warning">
                   <h3 class="fr-alert__title">Attention : cette opération est définitive et ne peut pas être annulée.</h3>Souhaitez vous supprimer l'étape <span class="fr-text--bold">demande</span> de la démarche <span class="fr-text--bold">octroi</span> du titre <span class="fr-text--bold">Nouvelle espérance (autorisation de recherches)</span> ?
                 </div>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Supprimer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Supprimer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/entreprise.tsx b/packages/ui/src/components/entreprise.tsx
index 5f291b646..d4944300b 100644
--- a/packages/ui/src/components/entreprise.tsx
+++ b/packages/ui/src/components/entreprise.tsx
@@ -9,7 +9,6 @@ import { utilisateursColonnes, utilisateursLignesBuild } from './utilisateurs/ta
 import { fiscaliteVisible as fiscaliteVisibleFunc } from 'camino-common/src/fiscalite'
 import { User } from 'camino-common/src/roles'
 import { computed, onMounted, watch, defineComponent, ref, inject } from 'vue'
-import { useStore } from 'vuex'
 import { useRoute } from 'vue-router'
 import { canEditEntreprise, canSeeEntrepriseDocuments } from 'camino-common/src/permissions/entreprises'
 import { caminoDefineComponent } from '@/utils/vue-tsx-utils'
@@ -25,7 +24,6 @@ import { userKey } from '@/moi'
 
 export const Entreprise = defineComponent({
   setup() {
-    const store = useStore()
     const vueRoute = useRoute()
     const entrepriseId = ref<EntrepriseId | undefined>(newEntrepriseId(vueRoute.params.id.toString()))
     const user = inject(userKey)
@@ -43,42 +41,10 @@ export const Entreprise = defineComponent({
     )
     const anneeCourante = getCurrentAnnee()
 
-    const apiClientRef = ref<
-      Pick<
-        ApiClient,
-        'getEntreprise' | 'deleteEntrepriseDocument' | 'getEntrepriseDocuments' | 'getFiscaliteEntreprise' | 'modifierEntreprise' | 'creerEntreprise' | 'creerEntrepriseDocument' | 'uploadTempDocument'
-      >
-    >({
-      ...apiClient,
-      modifierEntreprise: async entreprise => {
-        try {
-          await apiClient.modifierEntreprise(entreprise)
-          store.dispatch(
-            'messageAdd',
-            {
-              value: `l'entreprise a été modifiée`,
-              type: 'success',
-            },
-            { root: true }
-          )
-        } catch (e) {
-          console.error(e)
-          store.dispatch(
-            'messageAdd',
-            {
-              value: `Erreur lors de la modification de l'entreprise`,
-              type: 'error',
-            },
-            { root: true }
-          )
-        }
-      },
-    })
-
     return () => (
       <>
         {entrepriseId.value ? (
-          <PureEntreprise currentYear={anneeCourante} entrepriseId={entrepriseId.value} apiClient={apiClientRef.value} user={user} />
+          <PureEntreprise currentYear={anneeCourante} entrepriseId={entrepriseId.value} apiClient={apiClient} user={user} />
         ) : (
           <CaminoError couleur="error" message="Impossible d’afficher une entreprise sans identifiant" />
         )}
diff --git a/packages/ui/src/components/entreprise/add-entreprise-document-popup.stories_snapshots_Default.html b/packages/ui/src/components/entreprise/add-entreprise-document-popup.stories_snapshots_Default.html
index 4a811c6bd..2aa99df59 100644
--- a/packages/ui/src/components/entreprise/add-entreprise-document-popup.stories_snapshots_Default.html
+++ b/packages/ui/src/components/entreprise/add-entreprise-document-popup.stories_snapshots_Default.html
@@ -52,13 +52,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/entreprise/add-entreprise-document-popup.stories_snapshots_TypeDeDocumentVerouille.html b/packages/ui/src/components/entreprise/add-entreprise-document-popup.stories_snapshots_TypeDeDocumentVerouille.html
index 455d24c91..7af2cd039 100644
--- a/packages/ui/src/components/entreprise/add-entreprise-document-popup.stories_snapshots_TypeDeDocumentVerouille.html
+++ b/packages/ui/src/components/entreprise/add-entreprise-document-popup.stories_snapshots_TypeDeDocumentVerouille.html
@@ -33,13 +33,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/entreprise/add-popup.stories_snapshots_Super.html b/packages/ui/src/components/entreprise/add-popup.stories_snapshots_Super.html
index 5992b4b42..ad54946d4 100644
--- a/packages/ui/src/components/entreprise/add-popup.stories_snapshots_Super.html
+++ b/packages/ui/src/components/entreprise/add-popup.stories_snapshots_Super.html
@@ -23,13 +23,17 @@
                     <!---->
                   </div>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/entreprise/edit-popup.stories_snapshots_Ok.html b/packages/ui/src/components/entreprise/edit-popup.stories_snapshots_Ok.html
index c4476f13b..c2ce47cd8 100644
--- a/packages/ui/src/components/entreprise/edit-popup.stories_snapshots_Ok.html
+++ b/packages/ui/src/components/entreprise/edit-popup.stories_snapshots_Ok.html
@@ -30,13 +30,17 @@
                   </div>
                   <!---->
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/entreprise/edit-popup.stories_snapshots_Super.html b/packages/ui/src/components/entreprise/edit-popup.stories_snapshots_Super.html
index c5c8b9a8f..667bff31b 100644
--- a/packages/ui/src/components/entreprise/edit-popup.stories_snapshots_Super.html
+++ b/packages/ui/src/components/entreprise/edit-popup.stories_snapshots_Super.html
@@ -32,13 +32,17 @@
                       <!---->
                     </label></div>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/entreprise/remove-entreprise-document-popup.stories_snapshots_Default.html b/packages/ui/src/components/entreprise/remove-entreprise-document-popup.stories_snapshots_Default.html
index fe9347d5b..dc606f4c1 100644
--- a/packages/ui/src/components/entreprise/remove-entreprise-document-popup.stories_snapshots_Default.html
+++ b/packages/ui/src/components/entreprise/remove-entreprise-document-popup.stories_snapshots_Default.html
@@ -12,13 +12,17 @@
                 <div class="fr-alert fr-alert--warning">
                   <h3 class="fr-alert__title">Attention : cette opération est définitive et ne peut pas être annulée.</h3>Souhaitez vous supprimer le document <span class="fr-text--bold">Nom du document</span> ?
                 </div>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Supprimer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Supprimer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/entreprises.tsx b/packages/ui/src/components/entreprises.tsx
index 38a7d5389..5c0156fda 100644
--- a/packages/ui/src/components/entreprises.tsx
+++ b/packages/ui/src/components/entreprises.tsx
@@ -3,7 +3,6 @@ import { Liste, Params } from './_common/liste'
 import { RouteLocationNormalizedLoaded, Router, useRouter } from 'vue-router'
 import { canCreateEntreprise } from 'camino-common/src/permissions/utilisateurs'
 import { User } from 'camino-common/src/roles'
-import { useStore } from 'vuex'
 import { EntrepriseAddPopup } from './entreprise/add-popup'
 import { entrepriseApiClient } from './entreprise/entreprise-api-client'
 import { Entreprise, Siren } from 'camino-common/src/entreprise'
@@ -109,7 +108,6 @@ PureEntreprises.props = ['currentRoute', 'updateUrlQuery', 'apiClient', 'user',
 
 export const Entreprises = defineComponent(() => {
   const router = useRouter()
-  const store = useStore()
   const user = inject(userKey)
   const entreprises = inject(entreprisesKey, ref([]))
 
@@ -117,16 +115,10 @@ export const Entreprises = defineComponent(() => {
     return {
       ...apiClient,
       creerEntreprise: async (siren: Siren) => {
-        try {
-          await entrepriseApiClient.creerEntreprise(siren)
-          const newEntreprises = await getWithJson('/rest/entreprises', {})
-          entreprises.value = newEntreprises
-
-          store.dispatch('messageAdd', { value: `l'entreprise a été créée`, type: 'success' }, { root: true })
-          router.push({ name: 'entreprise', params: { id: `fr-${siren}` } })
-        } catch (e) {
-          store.dispatch('messageAdd', { value: `erreur lors de la création de l'entreprise`, type: 'error' }, { root: true })
-        }
+        await entrepriseApiClient.creerEntreprise(siren)
+        const newEntreprises = await getWithJson('/rest/entreprises', {})
+        entreprises.value = newEntreprises
+        router.push({ name: 'entreprise', params: { id: `fr-${siren}` } })
       },
     }
   }
diff --git a/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_DocumentInitialDejaSauvegarde.html b/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_DocumentInitialDejaSauvegarde.html
index fc5b10cf6..0ed4ec1c0 100644
--- a/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_DocumentInitialDejaSauvegarde.html
+++ b/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_DocumentInitialDejaSauvegarde.html
@@ -42,13 +42,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_DocumentInitialTemporaire.html b/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_DocumentInitialTemporaire.html
index fc5b10cf6..0ed4ec1c0 100644
--- a/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_DocumentInitialTemporaire.html
+++ b/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_DocumentInitialTemporaire.html
@@ -42,13 +42,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_SansDocumentInitial.html b/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_SansDocumentInitial.html
index 4e17e617f..3f6a1f25a 100644
--- a/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_SansDocumentInitial.html
+++ b/packages/ui/src/components/etape/add-etape-asl-document-popup.stories_snapshots_SansDocumentInitial.html
@@ -42,13 +42,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_DocumentInitialDejaSauvegarde.html b/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_DocumentInitialDejaSauvegarde.html
index 696816d3c..af7a3c959 100644
--- a/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_DocumentInitialDejaSauvegarde.html
+++ b/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_DocumentInitialDejaSauvegarde.html
@@ -49,13 +49,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_DocumentInitialTemporaire.html b/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_DocumentInitialTemporaire.html
index 696816d3c..af7a3c959 100644
--- a/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_DocumentInitialTemporaire.html
+++ b/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_DocumentInitialTemporaire.html
@@ -49,13 +49,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_SansDocumentInitial.html b/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_SansDocumentInitial.html
index 6c2febfa4..4c8fb80d7 100644
--- a/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_SansDocumentInitial.html
+++ b/packages/ui/src/components/etape/add-etape-dae-document-popup.stories_snapshots_SansDocumentInitial.html
@@ -49,13 +49,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_Default.html b/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_Default.html
index 02b2c6ccc..eebeb7ad0 100644
--- a/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_Default.html
+++ b/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_Default.html
@@ -56,13 +56,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_DocumentInitial.html b/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_DocumentInitial.html
index d46abac68..0cccaba1a 100644
--- a/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_DocumentInitial.html
+++ b/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_DocumentInitial.html
@@ -47,13 +47,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_Entreprise.html b/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_Entreprise.html
index 0b81c6c1e..37292a41c 100644
--- a/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_Entreprise.html
+++ b/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_Entreprise.html
@@ -51,13 +51,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_UnSeulDocumentPossible.html b/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_UnSeulDocumentPossible.html
index 2cc57e938..fd3fb0803 100644
--- a/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_UnSeulDocumentPossible.html
+++ b/packages/ui/src/components/etape/add-etape-document-popup.stories_snapshots_UnSeulDocumentPossible.html
@@ -42,13 +42,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/forages-import-popup.stories_snapshots_Default.html b/packages/ui/src/components/etape/forages-import-popup.stories_snapshots_Default.html
index 313a2c1f0..f7d31b60f 100644
--- a/packages/ui/src/components/etape/forages-import-popup.stories_snapshots_Default.html
+++ b/packages/ui/src/components/etape/forages-import-popup.stories_snapshots_Default.html
@@ -42,13 +42,17 @@
                   </fieldset>
                   <!---->
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Importer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Importer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/perimetre-import-popup.stories_snapshots_Default.html b/packages/ui/src/components/etape/perimetre-import-popup.stories_snapshots_Default.html
index 41fa16e6c..b4ab24336 100644
--- a/packages/ui/src/components/etape/perimetre-import-popup.stories_snapshots_Default.html
+++ b/packages/ui/src/components/etape/perimetre-import-popup.stories_snapshots_Default.html
@@ -44,13 +44,17 @@
                   <!---->
                   <!---->
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Importer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Importer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/etape/points-import-popup.stories_snapshots_Default.html b/packages/ui/src/components/etape/points-import-popup.stories_snapshots_Default.html
index a472fca7f..e48c1c6b6 100644
--- a/packages/ui/src/components/etape/points-import-popup.stories_snapshots_Default.html
+++ b/packages/ui/src/components/etape/points-import-popup.stories_snapshots_Default.html
@@ -29,13 +29,17 @@
                     </div>
                   </fieldset>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Importer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Importer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/meta-activite.tsx b/packages/ui/src/components/meta-activite.tsx
deleted file mode 100644
index 054327d1e..000000000
--- a/packages/ui/src/components/meta-activite.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import { FunctionalComponent } from 'vue'
-import { MetaPageTemplate } from './metas/meta-page-template'
-import { DefinitionTree } from './metas/definition-edit'
-
-const definitionsTree = {
-  id: 'activites-types',
-  foreignKey: 'activiteTypeId',
-} as const satisfies DefinitionTree
-export const MetaActivite: FunctionalComponent = () => <MetaPageTemplate title="Activité" definitionsTree={definitionsTree} />
-
-// Demandé par le router car utilisé dans un import asynchrone /shrug
-MetaActivite.displayName = 'MetaActivite'
diff --git a/packages/ui/src/components/meta-demarche.tsx b/packages/ui/src/components/meta-demarche.tsx
deleted file mode 100644
index d51009789..000000000
--- a/packages/ui/src/components/meta-demarche.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import { FunctionalComponent } from 'vue'
-import { MetaPageTemplate } from './metas/meta-page-template'
-import { DefinitionTree } from './metas/definition-edit'
-
-const definitionsTree = {
-  id: 'demarches-types',
-  foreignKey: 'demarcheTypeId',
-  definitions: [
-    {
-      id: 'titres-types',
-      foreignKey: 'titreTypeId',
-      joinTable: 'titres-types--demarches-types',
-      definitions: [
-        {
-          id: 'etapes-types',
-          foreignKey: 'etapeTypeId',
-          joinTable: 'titres-types--demarches-types--etapes-types',
-          definitions: [
-            {
-              id: 'documents-types',
-              foreignKey: 'documentTypeId',
-              joinTable: 'titres-types--demarches-types--etapes-types--documents-types',
-              definitions: [],
-            },
-            {
-              id: 'documents-types',
-              foreignKey: 'documentTypeId',
-              joinTable: 'titres-types--demarches-types--etapes-types--justificatifs-types',
-              definitions: [],
-            },
-          ],
-        },
-      ],
-    },
-  ],
-} as const satisfies DefinitionTree
-export const MetaDemarche: FunctionalComponent = () => <MetaPageTemplate title="Démarche" definitionsTree={definitionsTree} />
-
-// Demandé par le router car utilisé dans un import asynchrone /shrug
-MetaDemarche.displayName = 'MetaDemarche'
diff --git a/packages/ui/src/components/meta-etape.tsx b/packages/ui/src/components/meta-etape.tsx
deleted file mode 100644
index 6c973cadc..000000000
--- a/packages/ui/src/components/meta-etape.tsx
+++ /dev/null
@@ -1,57 +0,0 @@
-import { FunctionalComponent } from 'vue'
-import { MetaPageTemplate } from './metas/meta-page-template'
-import { DefinitionTree } from './metas/definition-edit'
-
-const definitionsTree = {
-  id: 'etapes-types',
-  foreignKey: 'etapeTypeId',
-  definitions: [
-    {
-      id: 'etapes-statuts',
-      foreignKey: 'etapeStatutId',
-      joinTable: 'etapes-types--etapes-statuts',
-      definitions: [],
-    },
-    {
-      id: 'documents-types',
-      foreignKey: 'documentTypeId',
-      joinTable: 'etapes-types--documents-types',
-      definitions: [],
-    },
-    {
-      id: 'documents-types',
-      foreignKey: 'documentTypeId',
-      joinTable: 'etapes-types--justificatifs-types',
-      definitions: [],
-    },
-    {
-      id: 'titres-types',
-      foreignKey: 'titreTypeId',
-      definitions: [
-        {
-          id: 'demarches-types',
-          foreignKey: 'demarcheTypeId',
-          joinTable: 'titres-types--demarches-types--etapes-types',
-          definitions: [
-            {
-              id: 'documents-types',
-              foreignKey: 'documentTypeId',
-              joinTable: 'titres-types--demarches-types--etapes-types--documents-types',
-              definitions: [],
-            },
-            {
-              id: 'documents-types',
-              foreignKey: 'documentTypeId',
-              joinTable: 'titres-types--demarches-types--etapes-types--justificatifs-types',
-              definitions: [],
-            },
-          ],
-        },
-      ],
-    },
-  ],
-} as const satisfies DefinitionTree
-export const MetaEtape: FunctionalComponent = () => <MetaPageTemplate title="Étape" definitionsTree={definitionsTree} />
-
-// Demandé par le router car utilisé dans un import asynchrone /shrug
-MetaEtape.displayName = 'MetaEtape'
diff --git a/packages/ui/src/components/meta-titre.tsx b/packages/ui/src/components/meta-titre.tsx
deleted file mode 100644
index 112c42a6f..000000000
--- a/packages/ui/src/components/meta-titre.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import { FunctionalComponent } from 'vue'
-import { MetaPageTemplate } from './metas/meta-page-template'
-import { DefinitionTree } from './metas/definition-edit'
-
-const definitionsTree = {
-  id: 'titres-types',
-  foreignKey: 'titreTypeId',
-  definitions: [
-    {
-      id: 'titres-statuts',
-      foreignKey: 'titreStatutId',
-      joinTable: 'titre-types--titres-statuts',
-    },
-    {
-      id: 'demarches-types',
-      foreignKey: 'demarcheTypeId',
-      joinTable: 'titres-types--demarches-types',
-      definitions: [
-        {
-          id: 'etapes-types',
-          foreignKey: 'etapeTypeId',
-          joinTable: 'titres-types--demarches-types--etapes-types',
-          definitions: [
-            {
-              id: 'documents-types',
-              foreignKey: 'documentTypeId',
-              joinTable: 'titres-types--demarches-types--etapes-types--documents-types',
-              definitions: [],
-            },
-            {
-              id: 'documents-types',
-              foreignKey: 'documentTypeId',
-              joinTable: 'titres-types--demarches-types--etapes-types--justificatifs-types',
-              definitions: [],
-            },
-          ],
-        },
-      ],
-    },
-  ],
-} as const satisfies DefinitionTree
-export const MetaTitre: FunctionalComponent = () => <MetaPageTemplate title="Titre" definitionsTree={definitionsTree} />
-
-// Demandé par le router car utilisé dans un import asynchrone /shrug
-MetaTitre.displayName = 'MetaTitre'
diff --git a/packages/ui/src/components/meta.tsx b/packages/ui/src/components/meta.tsx
index cbd131a36..3ed5d31b7 100644
--- a/packages/ui/src/components/meta.tsx
+++ b/packages/ui/src/components/meta.tsx
@@ -1,16 +1,16 @@
-import { computed, defineComponent, inject, onBeforeUnmount, onMounted, watch } from 'vue'
-import { MetaIndexTable, metasIndex } from '../store/metas-definitions'
+import { computed, defineComponent, inject, onMounted, ref, watch } from 'vue'
+import { MetaIndexTable, metasIndex } from '../metas-definitions'
 import { canReadMetas } from 'camino-common/src/permissions/metas'
-import { useStore } from 'vuex'
 import { useRoute } from 'vue-router'
 import { capitalize } from 'camino-common/src/strings'
 import { userKey } from '@/moi'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
+import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
 export const Meta = defineComponent(() => {
-  const store = useStore()
   const route = useRoute()
   const user = inject(userKey)
 
+  const values = ref<{ [key in MetaIndexTable]?: unknown[] }>({})
+
   const id = computed<MetaIndexTable>(() => {
     return route.params.id as unknown as MetaIndexTable
   })
@@ -22,15 +22,35 @@ export const Meta = defineComponent(() => {
   onMounted(async () => {
     await get()
   })
-  onBeforeUnmount(() => {
-    store.commit('meta/reset')
-  })
+
   const definition = computed(() => {
     return metasIndex[id.value]
   })
 
+  const getDef = async (id: MetaIndexTable) => {
+    try {
+      if (isNotNullNorUndefined(metasIndex[id])) {
+        const definition = metasIndex[id]
+        if ('get' in definition) {
+          const elements = await definition.get()
+          values.value = { ...values.value, [id]: elements }
+        }
+        if ('colonnes' in definition) {
+          for (const colonne of definition.colonnes) {
+            if ('type' in colonne && colonne.type === 'entities' && isNotNullNorUndefined(colonne.entities) && isNullOrUndefined(values.value[colonne.entities])) {
+              const entities = await metasIndex[colonne.entities].get()
+
+              values.value = { ...values.value, [colonne.entities]: entities }
+            }
+          }
+        }
+      }
+    } catch (e) {
+      console.error(e)
+    }
+  }
   const elements = computed(() => {
-    return store.getters['meta/elements'](id.value)
+    return values.value[id.value]
   })
 
   const get = async () => {
@@ -38,7 +58,7 @@ export const Meta = defineComponent(() => {
       // TODO 2024-04-16 afficher une jolie alerte dans la page
       console.error('impossible d’accéder à cette page')
     } else {
-      await store.dispatch('meta/get', id.value)
+      await getDef(id.value)
     }
   }
 
@@ -86,7 +106,7 @@ export const Meta = defineComponent(() => {
                     ) : null}
                   </tr>
 
-                  {elements.value.map((element: any) => (
+                  {elements.value?.map((element: any) => (
                     <tr key={elementKeyFind(element)}>
                       {'colonnes' in definition.value ? (
                         <>
diff --git a/packages/ui/src/components/metas.stories_snapshots_Super.html b/packages/ui/src/components/metas.stories_snapshots_Super.html
index 9e8ec27ed..6304d008f 100644
--- a/packages/ui/src/components/metas.stories_snapshots_Super.html
+++ b/packages/ui/src/components/metas.stories_snapshots_Super.html
@@ -75,18 +75,6 @@
             <tr>
               <td><a class="fr-link" to="{name:meta,params:{id:activites-statuts}}" type="primary"><span class="">Statuts des activités</span></a></td>
             </tr>
-            <tr>
-              <td><a class="fr-link" to="{name:meta-titre}" type="primary"><span class="">Titre</span></a></td>
-            </tr>
-            <tr>
-              <td><a class="fr-link" to="{name:meta-demarche}" type="primary"><span class="">Démarche</span></a></td>
-            </tr>
-            <tr>
-              <td><a class="fr-link" to="{name:meta-etape}" type="primary"><span class="">Étape</span></a></td>
-            </tr>
-            <tr>
-              <td><a class="fr-link" to="{name:meta-activite}" type="primary"><span class="">Activité</span></a></td>
-            </tr>
           </tbody>
         </table>
       </div>
diff --git a/packages/ui/src/components/metas.tsx b/packages/ui/src/components/metas.tsx
index 326ea3724..d4acbe0ad 100644
--- a/packages/ui/src/components/metas.tsx
+++ b/packages/ui/src/components/metas.tsx
@@ -5,7 +5,7 @@ import { canReadMetas } from 'camino-common/src/permissions/metas'
 import { CaminoAccessError } from './error'
 import { User } from 'camino-common/src/roles'
 import { Column, TableRow } from './_ui/table'
-import { metasIndex } from '@/store/metas-definitions'
+import { metasIndex } from '@/metas-definitions'
 import { userKey } from '@/moi'
 const metasColonnes = [
   {
@@ -21,7 +21,7 @@ const metasLignesBuild = (): Promise<{ values: TableRow[]; total: number }> => {
       nom: { value: element.nom },
     }
 
-    const link = 'linkName' in element ? { name: element.linkName } : { name: 'meta', params: { id } }
+    const link = { name: 'meta', params: { id } }
 
     return {
       id,
diff --git a/packages/ui/src/components/metas/definition-edit.tsx b/packages/ui/src/components/metas/definition-edit.tsx
deleted file mode 100644
index b67937e96..000000000
--- a/packages/ui/src/components/metas/definition-edit.tsx
+++ /dev/null
@@ -1,178 +0,0 @@
-/* eslint-disable @typescript-eslint/strict-boolean-expressions */
-
-import { computed, defineComponent, onMounted, onUnmounted, ref } from 'vue'
-import { MetaIndexTable, metasIndex } from '@/store/metas-definitions'
-import { useStore } from 'vuex'
-import { AsyncData } from '@/api/client-rest'
-import { LoadingElement } from '../_ui/functional-loader'
-
-export type DefinitionTree = {
-  joinTable?: MetaIndexTable
-  id: MetaIndexTable
-  // TOOD 2023-09-19 better type foreignKey
-  foreignKey?: string
-  definitions?: readonly DefinitionTree[]
-}
-
-interface Props {
-  definitionsTree: DefinitionTree
-  foreignKeys?: Record<string, string>
-  rootComponent?: boolean
-}
-export const DefinitionEdit = defineComponent<Props>(props => {
-  const store = useStore()
-
-  const data = ref<AsyncData<true>>({ status: 'LOADING' })
-  onMounted(async () => {
-    const promises = []
-    promises.push(store.dispatch('meta/get', props.definitionsTree.id))
-    if (props.definitionsTree.joinTable) {
-      promises.push(store.dispatch('meta/get', props.definitionsTree.joinTable))
-    }
-    await Promise.all(promises)
-    data.value = { status: 'LOADED', value: true }
-  })
-
-  onUnmounted(async () => {
-    await elementSelect(null)
-  })
-
-  const rootComponent = computed<boolean>(() => {
-    return props.rootComponent ?? true
-  })
-
-  const title = computed(() => {
-    if ('colonnes' in definition.value) {
-      const colonnes = [...definition.value.colonnes]
-
-      return colonnes.find(colonne => colonne.id === props.definitionsTree.foreignKey)?.nom
-    } else {
-      return definition.value.nom
-    }
-  })
-  const elementSelected = computed(() => {
-    return store.getters['meta/elementSelected'](props.definitionsTree.joinTable || props.definitionsTree.id)
-  })
-  const definition = computed(() => {
-    return metasIndex[props.definitionsTree.joinTable ? props.definitionsTree.joinTable : props.definitionsTree.id]
-  })
-  const elements = computed<{ id: string; nom: string }[]>(() => {
-    if (!props.definitionsTree.joinTable) {
-      // si pas de table de jointure on peut directement charger les éléments
-      return store.getters['meta/elements'](props.definitionsTree.id) ?? []
-    }
-    // via une table de jointure
-    const elementIdsFiltered = store.getters['meta/elements'](props.definitionsTree.joinTable)
-      // on garde les lignes en fonction des éléments déjà sélectionnés
-      .filter((joinRow: any) => Object.keys(props.foreignKeys ?? {}).every(foreignKey => joinRow[foreignKey] === (props.foreignKeys ?? {})[foreignKey]))
-      .map((joinRow: any) => joinRow[props.definitionsTree.foreignKey as string])
-
-    return store.getters['meta/elements']?.(props.definitionsTree.id)?.filter(({ id }: any) => elementIdsFiltered.includes(id)) || []
-  })
-
-  const colonnesToEdit = computed(() => {
-    if ('colonnes' in definition.value) {
-      const colonnes = [...definition.value.colonnes]
-
-      return colonnes.filter((colonne: any) => colonne.id !== 'id').filter(colonne => !('type' in colonne) || colonne.type !== 'entities')
-    }
-
-    return []
-  })
-
-  const elementToEdit = computed(() => {
-    if (!props.definitionsTree.joinTable) {
-      return elementSelected.value
-    }
-
-    return store.getters['meta/elements'](props.definitionsTree.joinTable).find((joinRow: any) =>
-      Object.keys(foreignKeysNew.value).every(foreignKey => joinRow[foreignKey] === foreignKeysNew.value[foreignKey])
-    )
-  })
-
-  const foreignKeysNew = computed<Record<string, string>>(() => {
-    if (props.definitionsTree.foreignKey) {
-      return {
-        ...props.foreignKeys,
-        [props.definitionsTree.foreignKey]: elementSelected.value?.id,
-      }
-    }
-
-    return { ...props.foreignKeys }
-  })
-
-  const selectChange = async (event: any) => {
-    const elementId = event.target.value
-    const element = elements.value.find(({ id }: { id: string }) => id === elementId)
-    await elementSelect(element)
-  }
-  const labelGet = (element: { id: string; nom: string } | undefined): string => {
-    const meta = metasIndex[props.definitionsTree.id]
-    if ('labelGet' in meta) {
-      return meta.labelGet(element)
-    }
-
-    return ''
-  }
-  const elementSelect = async (element: any) => {
-    await store.dispatch('meta/elementSelect', {
-      id: props.definitionsTree.joinTable || props.definitionsTree.id,
-      element,
-    })
-  }
-
-  return () => (
-    <LoadingElement
-      data={data.value}
-      renderItem={_ => (
-        <div>
-          <div class="tablet-blobs">
-            <div class="tablet-blob-1-3 tablet-pt-s pb-s">
-              <h4>{title.value}</h4>
-            </div>
-            <div class="mb tablet-blob-2-3">
-              <select value={elementSelected.value?.id} class="p-s" onChange={selectChange}>
-                {elements.value.map(element => {
-                  return (
-                    <option key={element.id} value={element.id}>
-                      {labelGet(element) ?? element.nom}
-                    </option>
-                  )
-                })}
-              </select>
-            </div>
-          </div>
-          {elementSelected.value ? (
-            <div class="mb-xl">
-              {rootComponent.value || props.definitionsTree.joinTable ? (
-                <div class="rnd-s border p-m">
-                  <div class="tablet-blobs">
-                    {colonnesToEdit.value.map(colonne => (
-                      <div key={colonne.id} class="tablet-blob-1-2">
-                        <div class="tablet-blobs mb-s">
-                          <div class="tablet-blob-1-3 tablet-pt-s pb-s">
-                            <h5>{colonne.nom}</h5>
-                          </div>
-                          <div class="tablet-blob-2-3">{elementToEdit.value[colonne.id] || ''}</div>
-                        </div>
-                      </div>
-                    ))}
-                  </div>
-                </div>
-              ) : null}
-
-              {props.definitionsTree.definitions?.map(definitionChild => (
-                <div key={definitionChild.joinTable} class="pl-l">
-                  <span class="separator" />
-                  <DefinitionEdit definitionsTree={definitionChild} foreignKeys={foreignKeysNew.value} rootComponent={false} />
-                </div>
-              ))}
-            </div>
-          ) : null}
-        </div>
-      )}
-    />
-  )
-})
-// @ts-ignore waiting for https://github.com/vuejs/core/issues/7833
-DefinitionEdit.props = ['definitionsTree', 'foreignKeys', 'rootComponent']
diff --git a/packages/ui/src/components/metas/meta-page-template.tsx b/packages/ui/src/components/metas/meta-page-template.tsx
deleted file mode 100644
index 4dafb2ee7..000000000
--- a/packages/ui/src/components/metas/meta-page-template.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import { FunctionalComponent } from 'vue'
-import { DefinitionEdit, DefinitionTree } from '@/components/metas/definition-edit'
-
-interface Props {
-  title: string
-  definitionsTree: DefinitionTree
-}
-export const MetaPageTemplate: FunctionalComponent<Props> = props => {
-  return (
-    <div>
-      <div class="desktop-blobs">
-        <div class="desktop-blob-2-3">
-          <router-link to={{ name: 'metas' }}>
-            <h5>Métas</h5>
-          </router-link>
-          <h1>
-            <span class="cap-first">{props.title}</span>
-          </h1>
-        </div>
-      </div>
-
-      <div class="line-neutral width-full mb-m" />
-
-      <div class="mb-xxl">
-        <DefinitionEdit definitionsTree={props.definitionsTree} />
-      </div>
-    </div>
-  )
-}
diff --git a/packages/ui/src/components/titre.stories.tsx b/packages/ui/src/components/titre.stories.tsx
index ee960407f..b8ca9324a 100644
--- a/packages/ui/src/components/titre.stories.tsx
+++ b/packages/ui/src/components/titre.stories.tsx
@@ -312,7 +312,7 @@ const apiClient: PropsApiClient = {
   deleteEtape: etapeId => {
     deleteEtapeAction(etapeId)
 
-    return Promise.resolve()
+    return Promise.reject(new Error('Nope'))
   },
 
   deposeEtape: etapeId => {
diff --git a/packages/ui/src/components/titre.tsx b/packages/ui/src/components/titre.tsx
index 71d84379a..9a1f17c45 100644
--- a/packages/ui/src/components/titre.tsx
+++ b/packages/ui/src/components/titre.tsx
@@ -3,7 +3,6 @@ import { Router, useRouter } from 'vue-router'
 import { LoadingElement } from './_ui/functional-loader'
 import { DemarcheEtapeFondamentale, DemarcheSlug, demarcheSlugValidator } from 'camino-common/src/demarche'
 import { AsyncData } from '@/api/client-rest'
-import { useStore } from 'vuex'
 import { User, isAdministration, isEntrepriseOrBureauDEtude, isSuper } from 'camino-common/src/roles'
 import { capitalize } from 'camino-common/src/strings'
 import { TitresTypes } from 'camino-common/src/static/titresTypes'
@@ -39,7 +38,6 @@ import { getGestionnairesByTitreTypeId } from 'camino-common/src/static/administ
 import { DemarcheEditPopup } from './titre/demarche-edit-popup'
 import { PhaseWithAlterations, phaseWithAlterations } from './titre/phase'
 import { SecteursMaritimes } from 'camino-common/src/static/facades'
-import { EtapeId } from 'camino-common/src/etape'
 import { userKey } from '@/moi'
 
 const activitesSort: TableSortEvent = {
@@ -49,7 +47,6 @@ const activitesSort: TableSortEvent = {
 
 export const Titre = defineComponent(() => {
   const router = useRouter()
-  const store = useStore()
 
   const user = inject(userKey)
 
@@ -70,26 +67,7 @@ export const Titre = defineComponent(() => {
     return demarcheSlugValidator.optional().parse(Array.isArray(demarcheId) ? demarcheId[0] : demarcheId) ?? null
   })
 
-  const overriddenApiClient: ApiClient = {
-    ...apiClient,
-    deleteEtape: async (titreEtapeId: EtapeId) => {
-      try {
-        await apiClient.deleteEtape(titreEtapeId)
-      } catch (e) {
-        store.dispatch(
-          'messageAdd',
-          {
-            value: `Impossible de supprimer cette étape`,
-            type: 'error',
-          },
-          { root: true }
-        )
-        throw e
-      }
-    },
-  }
-
-  return () => <PureTitre user={user} titreIdOrSlug={titreIdOrSlug.value} currentDemarcheSlug={currentDemarcheSlug.value} apiClient={overriddenApiClient} router={router} currentDate={getCurrent()} />
+  return () => <PureTitre user={user} titreIdOrSlug={titreIdOrSlug.value} currentDemarcheSlug={currentDemarcheSlug.value} apiClient={apiClient} router={router} currentDate={getCurrent()} />
 })
 
 interface Props {
diff --git a/packages/ui/src/components/titre/demarche-edit-popup.stories_snapshots_Create.html b/packages/ui/src/components/titre/demarche-edit-popup.stories_snapshots_Create.html
index 9ed7ca749..4c856d2cb 100644
--- a/packages/ui/src/components/titre/demarche-edit-popup.stories_snapshots_Create.html
+++ b/packages/ui/src/components/titre/demarche-edit-popup.stories_snapshots_Create.html
@@ -23,13 +23,17 @@
                     <!---->
                   </div>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/titre/demarche-edit-popup.stories_snapshots_Edit.html b/packages/ui/src/components/titre/demarche-edit-popup.stories_snapshots_Edit.html
index 7f5b453c7..e64957764 100644
--- a/packages/ui/src/components/titre/demarche-edit-popup.stories_snapshots_Edit.html
+++ b/packages/ui/src/components/titre/demarche-edit-popup.stories_snapshots_Edit.html
@@ -23,13 +23,17 @@
                     <!---->
                   </div>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/titre/demarche-remove-popup.stories_snapshots_Main.html b/packages/ui/src/components/titre/demarche-remove-popup.stories_snapshots_Main.html
index 3ac0b659d..bfa4d94c6 100644
--- a/packages/ui/src/components/titre/demarche-remove-popup.stories_snapshots_Main.html
+++ b/packages/ui/src/components/titre/demarche-remove-popup.stories_snapshots_Main.html
@@ -12,13 +12,17 @@
                 <div class="fr-alert fr-alert--warning">
                   <h3 class="fr-alert__title">Attention : cette opération est définitive et ne peut pas être annulée.</h3>Souhaitez-vous supprimer la démarche <span class="fr-text--bold"> octroi</span> du titre<span class="fr-text--bold"> Nom du titre (autorisation de prospections préalables)</span> ?
                 </div>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Supprimer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Supprimer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/titre/edit-popup.stories_snapshots_DefaultNoReference.html b/packages/ui/src/components/titre/edit-popup.stories_snapshots_DefaultNoReference.html
index 5441abbd7..b58abaf9f 100644
--- a/packages/ui/src/components/titre/edit-popup.stories_snapshots_DefaultNoReference.html
+++ b/packages/ui/src/components/titre/edit-popup.stories_snapshots_DefaultNoReference.html
@@ -17,13 +17,17 @@
                   </div>
                   <div class="fr-input-group fr-mb-0 fr-mt-3w"><label class="fr-label fr-mb-1w" for="references">Références</label><button class="fr-btn fr-btn--icon-right fr-icon-add-line fr-btn--tertiary fr-btn--md" title="Ajouter une référence" aria-label="Ajouter une référence" type="button">Ajouter une référence</button></div>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/titre/edit-popup.stories_snapshots_OneReference.html b/packages/ui/src/components/titre/edit-popup.stories_snapshots_OneReference.html
index 1ed94e480..edc4f3ba6 100644
--- a/packages/ui/src/components/titre/edit-popup.stories_snapshots_OneReference.html
+++ b/packages/ui/src/components/titre/edit-popup.stories_snapshots_OneReference.html
@@ -41,13 +41,17 @@
                     </div><button class="fr-btn fr-btn--icon-right fr-icon-add-line fr-btn--tertiary fr-btn--md" title="Ajouter une référence" aria-label="Ajouter une référence" type="button">Ajouter une référence</button>
                   </div>
                 </form>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Enregistrer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/titre/remove-popup.stories_snapshots_Default.html b/packages/ui/src/components/titre/remove-popup.stories_snapshots_Default.html
index 2669c42bf..6a8da410f 100644
--- a/packages/ui/src/components/titre/remove-popup.stories_snapshots_Default.html
+++ b/packages/ui/src/components/titre/remove-popup.stories_snapshots_Default.html
@@ -12,13 +12,17 @@
                 <div class="fr-alert fr-alert--warning">
                   <h3 class="fr-alert__title">Attention : cette opération est définitive et ne peut pas être annulée.</h3>Souhaitez-vous supprimer le titre <span class="fr-text--bold">Nom du titre autorisation de recherches</span>) ?
                 </div>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Supprimer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Supprimer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/components/utilisateur.stories.tsx b/packages/ui/src/components/utilisateur.stories.tsx
index 4770dba4e..feaeeef02 100644
--- a/packages/ui/src/components/utilisateur.stories.tsx
+++ b/packages/ui/src/components/utilisateur.stories.tsx
@@ -5,10 +5,10 @@ import { testBlankUser } from 'camino-common/src/tests-utils'
 import { PureUtilisateur, Props } from './utilisateur'
 import { toUtilisateurId } from 'camino-common/src/roles'
 
-const meta: Meta = {
+const meta: Meta<typeof PureUtilisateur> = {
   title: 'Components/Utilisateur',
+  // @ts-ignore
   component: PureUtilisateur,
-  argTypes: {},
 }
 export default meta
 
diff --git a/packages/ui/src/components/utilisateur.tsx b/packages/ui/src/components/utilisateur.tsx
index e086c9354..f36f2d397 100644
--- a/packages/ui/src/components/utilisateur.tsx
+++ b/packages/ui/src/components/utilisateur.tsx
@@ -3,13 +3,12 @@ import { Card } from './_ui/card'
 import { User } from 'camino-common/src/roles'
 import { QGisToken } from './utilisateur/qgis-token'
 import { AsyncData } from '@/api/client-rest'
-import { useStore } from 'vuex'
 import { useRoute, useRouter } from 'vue-router'
 import { UtilisateurApiClient, utilisateurApiClient } from './utilisateur/utilisateur-api-client'
 import { LoadingElement } from './_ui/functional-loader'
 import { RemovePopup } from './utilisateur/remove-popup'
 import { canDeleteUtilisateur } from 'camino-common/src/permissions/utilisateurs'
-import { caminoDefineComponent, isEventWithTarget } from '../utils/vue-tsx-utils'
+import { isEventWithTarget } from '../utils/vue-tsx-utils'
 import { PermissionDisplay } from './utilisateur/permission-edit'
 import { UtilisateurToEdit } from 'camino-common/src/utilisateur'
 import { Utilisateur as ApiUser, Entreprise } from 'camino-common/src/entreprise'
@@ -20,7 +19,6 @@ import { entreprisesKey, userKey } from '@/moi'
 
 export const Utilisateur = defineComponent({
   setup() {
-    const store = useStore()
     const route = useRoute()
     const router = useRouter()
 
@@ -34,39 +32,11 @@ export const Utilisateur = defineComponent({
         window.location.replace(`/apiUrl/rest/utilisateurs/${userId}/delete`)
       } else {
         await utilisateurApiClient.removeUtilisateur(userId)
-        store.dispatch(
-          'messageAdd',
-          {
-            value: `l'utilisateur a été supprimé`,
-            type: 'success',
-          },
-          { root: true }
-        )
         router.push({ name: 'utilisateurs' })
       }
     }
     const updateUtilisateur = async (utilisateur: UtilisateurToEdit) => {
-      try {
-        await utilisateurApiClient.updateUtilisateur(utilisateur)
-
-        store.dispatch(
-          'messageAdd',
-          {
-            value: `le rôle a bien été modifié`,
-            type: 'success',
-          },
-          { root: true }
-        )
-      } catch (e) {
-        store.dispatch(
-          'messageAdd',
-          {
-            value: `Erreur lors de la modification du rôle de l'utilisateur`,
-            type: 'error',
-          },
-          { root: true }
-        )
-      }
+      await utilisateurApiClient.updateUtilisateur(utilisateur)
     }
     const passwordUpdate = () => {
       window.location.replace('/apiUrl/changerMotDePasse')
@@ -98,7 +68,7 @@ export interface Props {
   passwordUpdate: () => void
 }
 
-export const PureUtilisateur = caminoDefineComponent<Props>(['user', 'utilisateurId', 'apiClient', 'passwordUpdate', 'entreprises'], props => {
+export const PureUtilisateur = defineComponent<Props>(props => {
   watch(
     () => props.utilisateurId,
     _newId => {
@@ -290,3 +260,6 @@ export const PureUtilisateur = caminoDefineComponent<Props>(['user', 'utilisateu
     </div>
   )
 })
+
+// @ts-ignore waiting for https://github.com/vuejs/core/issues/7833
+PureUtilisateur.props = ['user', 'utilisateurId', 'apiClient', 'passwordUpdate', 'entreprises']
diff --git a/packages/ui/src/components/utilisateur/remove-popup.stories_snapshots_Default.html b/packages/ui/src/components/utilisateur/remove-popup.stories_snapshots_Default.html
index 0f67bbd38..96394c266 100644
--- a/packages/ui/src/components/utilisateur/remove-popup.stories_snapshots_Default.html
+++ b/packages/ui/src/components/utilisateur/remove-popup.stories_snapshots_Default.html
@@ -12,13 +12,17 @@
                 <div class="fr-alert fr-alert--warning">
                   <h3 class="fr-alert__title">Attention : cette opération est définitive et ne peut pas être annulée.</h3>Souhaitez vous supprimer le compte de <span class="fr-text--bold">Prénom Nom</span> ?
                 </div>
+                <!---->
               </div>
             </div>
             <div class="fr-modal__footer">
-              <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left">
-                <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Supprimer</button></li>
-                <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
-              </ul>
+              <div style="display: flex; width: 100%; justify-content: end; align-items: center; gap: 1rem;">
+                <!---->
+                <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left" style="width: auto;">
+                  <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left">Supprimer</button></li>
+                  <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li>
+                </ul>
+              </div>
             </div>
           </div>
         </div>
diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts
index 502814c6c..52344d80d 100644
--- a/packages/ui/src/index.ts
+++ b/packages/ui/src/index.ts
@@ -6,7 +6,6 @@ import { BrowserTracing } from '@sentry/browser'
 import { App } from './app'
 
 import router from './router'
-import store from './store'
 import { CaminoConfig } from 'camino-common/src/static/config'
 import { getWithJson } from './api/client-rest'
 import { initMatomo } from './stats/matomo'
@@ -97,6 +96,5 @@ Promise.resolve().then(async (): Promise<void> => {
     }
   }
   app.use(router)
-  app.use(store)
   app.mount('app-root')
 })
diff --git a/packages/ui/src/store/metas-definitions.ts b/packages/ui/src/metas-definitions.ts
similarity index 97%
rename from packages/ui/src/store/metas-definitions.ts
rename to packages/ui/src/metas-definitions.ts
index 95530e7cf..84bf0016a 100644
--- a/packages/ui/src/store/metas-definitions.ts
+++ b/packages/ui/src/metas-definitions.ts
@@ -392,26 +392,6 @@ export const metasIndex = {
       },
     ],
   },
-
-  titre: {
-    nom: 'Titre',
-    linkName: 'meta-titre',
-  },
-
-  demarche: {
-    nom: 'Démarche',
-    linkName: 'meta-demarche',
-  },
-
-  etape: {
-    nom: 'Étape',
-    linkName: 'meta-etape',
-  },
-
-  activite: {
-    nom: 'Activité',
-    linkName: 'meta-activite',
-  },
 } as const
 
 export type MetaIndexTable = keyof typeof metasIndex
diff --git a/packages/ui/src/router/index.ts b/packages/ui/src/router/index.ts
index e7347694d..6e16f7388 100644
--- a/packages/ui/src/router/index.ts
+++ b/packages/ui/src/router/index.ts
@@ -85,26 +85,6 @@ const Meta = async () => {
   return Meta
 }
 
-const MetaTitre = async () => {
-  const { MetaTitre } = await import('../components/meta-titre')
-
-  return MetaTitre
-}
-const MetaDemarche = async () => {
-  const { MetaDemarche } = await import('../components/meta-demarche')
-
-  return MetaDemarche
-}
-const MetaEtape = async () => {
-  const { MetaEtape } = await import('../components/meta-etape')
-
-  return MetaEtape
-}
-const MetaActivite = async () => {
-  const { MetaActivite } = await import('../components/meta-activite')
-
-  return MetaActivite
-}
 const Metas = async () => {
   const { Metas } = await import('../components/metas')
 
@@ -318,42 +298,6 @@ const routes = [
       menuSection: 'metas',
     },
   },
-  {
-    path: '/metas/titre',
-    name: 'meta-titre',
-    component: MetaTitre,
-    meta: {
-      title: 'Métas des titres',
-      menuSection: 'metas',
-    },
-  },
-  {
-    path: '/metas/demarche',
-    name: 'meta-demarche',
-    component: MetaDemarche,
-    meta: {
-      title: 'Métas des démarches',
-      menuSection: 'metas',
-    },
-  },
-  {
-    path: '/metas/etape',
-    name: 'meta-etape',
-    component: MetaEtape,
-    meta: {
-      title: 'Métas des étapes',
-      menuSection: 'metas',
-    },
-  },
-  {
-    path: '/metas/activite',
-    name: 'meta-activite',
-    component: MetaActivite,
-    meta: {
-      title: 'Métas des activités',
-      menuSection: 'metas',
-    },
-  },
   {
     path: '/metas/:id',
     name: 'meta',
diff --git a/packages/ui/src/store/index.js b/packages/ui/src/store/index.js
deleted file mode 100644
index 70b13e378..000000000
--- a/packages/ui/src/store/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import { createStore } from 'vuex'
-import meta from './meta'
-
-const modules = {
-  meta,
-}
-
-const state = {
-  messages: [],
-}
-
-const actions = {
-  messageAdd({ commit }, message) {
-    const id = Date.now()
-    message.id = id
-
-    commit('messageAdd', message)
-
-    setTimeout(() => {
-      commit('messageRemove', id)
-    }, 4500)
-  },
-}
-
-const mutations = {
-  messageAdd(state, message) {
-    state.messages.push(message)
-  },
-
-  messageRemove(state, id) {
-    const index = state.messages.findIndex(m => m.id === id)
-    state.messages.splice(index, 1)
-  },
-}
-
-export { actions, mutations }
-
-export default createStore({
-  state,
-  actions,
-  mutations,
-  modules,
-})
diff --git a/packages/ui/src/store/index.test.js b/packages/ui/src/store/index.test.js
deleted file mode 100644
index 127118ed7..000000000
--- a/packages/ui/src/store/index.test.js
+++ /dev/null
@@ -1,90 +0,0 @@
-import { actions, mutations } from './index'
-import { createApp } from 'vue'
-import { createStore } from 'vuex'
-import { vi, describe, expect, beforeEach, test } from 'vitest'
-
-vi.mock('./meta', () => ({ default: { meta: vi.fn() } }))
-
-console.info = vi.fn()
-console.error = vi.fn()
-
-describe("état général de l'application", () => {
-  let state
-  let store
-  let modules
-
-  beforeEach(() => {
-    vi.resetAllMocks()
-    modules = {
-      titre: {
-        namespaced: true,
-        state: { element: null },
-        actions: {
-          get: vi.fn(),
-        },
-      },
-    }
-
-    state = {
-      messages: [],
-    }
-
-    store = createStore({
-      modules,
-      state,
-      actions,
-      mutations,
-    })
-
-    const app = createApp({})
-    app.use(store)
-
-    localStorage.clear()
-  })
-
-  test('ajoute un message', () => {
-    const message = { id: 42, message: 'message très important' }
-    store.commit('messageAdd', message)
-
-    expect(state.messages).toEqual([message])
-  })
-
-  test('supprime un message', () => {
-    const message = { id: 42, message: 'message très important' }
-    store.commit('messageAdd', message)
-    store.commit('messageRemove', 42)
-
-    expect(state.messages).toEqual([])
-  })
-})
-
-describe("état général de l'application", () => {
-  let state
-  let store
-
-  beforeEach(() => {
-    state = {
-      messages: [],
-    }
-
-    localStorage.clear()
-  })
-
-  test('supprime un message', async () => {
-    vi.useFakeTimers()
-    vi.setSystemTime('2022-01-01')
-    const messageRemoveMock = vi.fn()
-    mutations.messageRemove = messageRemoveMock
-    store = createStore({ actions, state, mutations })
-    const message = { id: 14, message: 'message important' }
-    await store.dispatch('messageAdd', message)
-
-    const res = state.messages.pop()
-    expect(res.message).toEqual('message important')
-    expect(res.id).toBeLessThanOrEqual(Date.now())
-    vi.advanceTimersByTime(4500)
-    // expect(setTimeout).toHaveBeenCalled()
-    // expect(setTimeout).toHaveBeenCalledWith(expect.any(Function), 4500)
-    expect(messageRemoveMock).toHaveBeenCalled()
-  })
-})
diff --git a/packages/ui/src/store/meta.js b/packages/ui/src/store/meta.js
deleted file mode 100644
index 758387738..000000000
--- a/packages/ui/src/store/meta.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/* eslint-disable @typescript-eslint/strict-boolean-expressions */
-
-import { metasIndex } from './metas-definitions'
-import { nextTick } from 'vue'
-
-const state = {
-  elementsIndex: {},
-  elementsSelectedIndex: {},
-}
-
-const getters = {
-  elements: state => id => state.elementsIndex[id],
-  elementSelected: state => id => state.elementsSelectedIndex[id],
-}
-
-const actions = {
-  async get({ _dispatch, commit, state }, id) {
-    try {
-      if (metasIndex[id]) {
-        const definition = metasIndex[id]
-        const elements = await definition.get()
-        commit('set', { id, elements })
-
-        for (const colonne of definition.colonnes) {
-          if (colonne.type === 'entities' && colonne.entities && !state.elementsIndex[colonne.entities]) {
-            const entities = await metasIndex[colonne.entities].get()
-
-            commit('set', { id: colonne.entities, elements: entities })
-          }
-        }
-      }
-    } catch (e) {
-      console.error(e)
-    }
-  },
-
-  elementSelect({ commit }, { id, element }) {
-    commit('elementSelectedSet', { id, element: null })
-    if (element) {
-      nextTick(() => {
-        commit('elementSelectedSet', { id, element })
-      })
-    }
-  },
-}
-
-const mutations = {
-  reset(state) {
-    state.elementsIndex = {}
-    state.elementsSelectedIndex = {}
-  },
-
-  set(state, { id, elements }) {
-    state.elementsIndex = { ...state.elementsIndex, [id]: elements }
-  },
-
-  elementSelectedSet(state, { id, element }) {
-    state.elementsSelectedIndex = {
-      ...state.elementsSelectedIndex,
-      [id]: element,
-    }
-  },
-}
-
-export default {
-  namespaced: true,
-  state,
-  actions,
-  mutations,
-  getters,
-}
diff --git a/packages/ui/src/storybook.spec.ts b/packages/ui/src/storybook.spec.ts
index d619e0038..1f188b6fe 100644
--- a/packages/ui/src/storybook.spec.ts
+++ b/packages/ui/src/storybook.spec.ts
@@ -24,8 +24,6 @@ vi.mock('vue-router', () => ({
   })),
 }))
 
-vi.mock('vuex', () => ({ useStore: vi.fn() }))
-
 const compose = (entry: StoryFile): ReturnType<typeof composeStories<StoryFile>> => {
   try {
     return composeStories(entry)
diff --git a/packages/ui/src/typings/global.d.ts b/packages/ui/src/typings/global.d.ts
new file mode 100644
index 000000000..3d09ce57e
--- /dev/null
+++ b/packages/ui/src/typings/global.d.ts
@@ -0,0 +1,11 @@
+/* eslint-disable no-unused-vars */
+
+declare global {
+  interface ReadonlyArray<T> {
+    includes<U>(_x: U & (T & U extends never ? never : unknown)): boolean
+  }
+
+  interface Array<T> {
+    includes<U>(_x: U & (T & U extends never ? never : unknown)): boolean
+  }
+}
diff --git a/packages/ui/src/typings/vuex.d.ts b/packages/ui/src/typings/vuex.d.ts
deleted file mode 100644
index 6ab7fb3fa..000000000
--- a/packages/ui/src/typings/vuex.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { DeepMutable } from 'camino-common/src/typescript-tools'
-import { Store } from 'vuex'
-
-/* eslint-disable no-unused-vars */
-
-declare module '@vue/runtime-core' {
-  interface State {
-    count: number
-  }
-
-  interface ComponentCustomProperties {
-    $store: Store<any>
-  }
-}
-
-declare global {
-  interface ReadonlyArray<T> {
-    includes<U>(_x: U & (T & U extends never ? never : unknown)): boolean
-  }
-
-  interface Array<T> {
-    includes<U>(_x: U & (T & U extends never ? never : unknown)): boolean
-  }
-
-  declare function structuredClone<T>(value: T, transfer?: { transfer: ReadonlyArray<import('worker_threads').TransferListItem> }): DeepMutable<T>
-}
-- 
GitLab