From 5dd8664c340f396b2621f6ef81c6376f2dcbe3bd Mon Sep 17 00:00:00 2001
From: Colin Kallemein <cakallemein@gmail.com>
Date: Thu, 4 Jul 2024 23:19:22 +0200
Subject: [PATCH] Remove modal- classes and re implemented styling

---
 src/assets/scss/main.scss                     |  9 ------
 src/components/utilities/GmPanel.vue          | 29 +++++--------------
 src/components/utilities/GmTools.vue          |  6 ++--
 src/components/utilities/Notifications.vue    |  2 +-
 .../assetManager/partials/ObjectDetails.vue   | 14 ++++-----
 .../assetManager/partials/TileDetails.vue     |  8 ++---
 src/components/utilities/zoneEditor/Tiles.vue |  4 +--
 .../utilities/zoneEditor/ZoneSettings.vue     | 14 ++++-----
 src/screens/Characters.vue                    | 24 +++++----------
 9 files changed, 38 insertions(+), 72 deletions(-)

diff --git a/src/assets/scss/main.scss b/src/assets/scss/main.scss
index e870179..da634b9 100644
--- a/src/assets/scss/main.scss
+++ b/src/assets/scss/main.scss
@@ -81,15 +81,6 @@ input {
   }
 }
 
-.modal-form {
-  .form-fields {
-    --gap: 10px;
-    display: flex;
-    gap: var(--gap);
-    flex-wrap: wrap;
-  }
-}
-
 .input-cyan {
   padding: 8px 10px;
   font-family: $titles;
diff --git a/src/components/utilities/GmPanel.vue b/src/components/utilities/GmPanel.vue
index 841692a..7e7745c 100644
--- a/src/components/utilities/GmPanel.vue
+++ b/src/components/utilities/GmPanel.vue
@@ -1,16 +1,16 @@
 <template>
   <Modal :isModalOpen="gmPanelStore.isOpen" @modal:close="() => gmPanelStore.toggle()" :modal-width="1000" :modal-height="650">
     <template #modalHeader>
-      <h3 class="modal-title">GM Panel</h3>
-      <div class="gm-selector">
-        <button class="btn-cyan">General</button>
-        <button class="btn-cyan">Users</button>
-        <button class="btn-cyan">Chats</button>
-        <button class="btn-cyan active">Asset manager</button>
+      <h3 class="m-0 font-medium shrink-0">GM Panel</h3>
+      <div class="flex gap-1.5 flex-wrap">
+        <button class="btn-cyan py-1.5 px-[15px] min-w-[100px]">General</button>
+        <button class="btn-cyan py-1.5 px-[15px] min-w-[100px]">Users</button>
+        <button class="btn-cyan py-1.5 px-[15px] min-w-[100px]">Chats</button>
+        <button class="btn-cyan active py-1.5 px-[15px] min-w-[100px]">Asset manager</button>
       </div>
     </template>
     <template #modalBody>
-      <div class="container gm-panel h-full margin-0">
+      <div class="h-full margin-0">
         <AssetManager v-if="toggle == 'asset-manager'" />
       </div>
     </template>
@@ -27,18 +27,3 @@ const gmPanelStore = useGmPanelStore()
 
 let toggle = ref('asset-manager')
 </script>
-
-<style lang="scss" scoped>
-@import '@/assets/scss/main';
-
-.gm-selector {
-  display: flex;
-  gap: 5px;
-  flex-wrap: wrap;
-
-  button {
-    padding: 6px 15px;
-    min-width: 100px;
-  }
-}
-</style>
diff --git a/src/components/utilities/GmTools.vue b/src/components/utilities/GmTools.vue
index 6100957..32c084a 100644
--- a/src/components/utilities/GmTools.vue
+++ b/src/components/utilities/GmTools.vue
@@ -1,12 +1,12 @@
 <template>
   <Modal :isModalOpen="true" :closable="false" :is-resizable="false" :modal-width="200" :modal-height="160">
     <template #modalHeader>
-      <h3 class="modal-title">GM tools</h3>
+      <h3 class="m-0 font-medium shrink-0">GM tools</h3>
     </template>
     <template #modalBody>
       <div class="content">
-        <button class="btn-cyan w-full" type="button" @click="gmPanelStore.toggle()">Toggle GM panel</button>
-        <button class="btn-cyan w-full" type="button" @click="() => zoneEditorStore.toggleActive()">Zone manager</button>
+        <button class="btn-cyan py-1.5 px-[15px] w-full" type="button" @click="gmPanelStore.toggle()">Toggle GM panel</button>
+        <button class="btn-cyan py-1.5 px-[15px] w-full" type="button" @click="() => zoneEditorStore.toggleActive()">Zone manager</button>
       </div>
     </template>
   </Modal>
diff --git a/src/components/utilities/Notifications.vue b/src/components/utilities/Notifications.vue
index 1ca6bd9..e42f684 100644
--- a/src/components/utilities/Notifications.vue
+++ b/src/components/utilities/Notifications.vue
@@ -2,7 +2,7 @@
   <div class="notifications">
     <Modal v-for="notification in notifications.getNotifications" :key="notification.id" :isModalOpen="true" @modal:close="closeNotification(notification.id)">
       <template #modalHeader v-if="notification.title">
-        <h3 class="modal-title">{{ notification.title }}</h3>
+        <h3 class="m-0 font-medium shrink-0">{{ notification.title }}</h3>
       </template>
       <template #modalBody v-if="notification.message">
         <p class="modal-notif">{{ notification.message }}</p>
diff --git a/src/components/utilities/assetManager/partials/ObjectDetails.vue b/src/components/utilities/assetManager/partials/ObjectDetails.vue
index 770282c..2065211 100644
--- a/src/components/utilities/assetManager/partials/ObjectDetails.vue
+++ b/src/components/utilities/assetManager/partials/ObjectDetails.vue
@@ -5,23 +5,21 @@
       <div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
     </div>
     <div class="modal-form asset-manager m-2.5 p-2.5 block">
-      <form class="form-fields flex g-2.5 flex-wrap" @submit.prevent>
-        <div class="form-field w-full flex flex-col mb-[20px]">
+      <form class="flex gap-2.5 flex-wrap" @submit.prevent>
+        <div class="w-full flex flex-col mb-5">
           <label class="mb-1.5 font-titles" for="name">Name</label>
           <input class="input-cyan" type="text" name="name" placeholder="Wall #1" />
         </div>
-        <div class="form-field w-[48%] flex flex-col mb-[20px]"> <!-- @TODO: find Tailwind alternative to use 50% and accomodate gap -->
+        <div class="w-[48%] flex flex-col mb-5"> <!-- @TODO: find Tailwind alternative to use 50% and accomodate gap -->
           <label class="mb-1.5 font-titles" for="origin-x">Origin X</label>
           <input class="input-cyan" type="number" name="origin-x" placeholder="Origin X" />
         </div>
-        <div class="form-field w-[48%] flex flex-col mb-[20px]"> <!-- @TODO: find Tailwind alternative to use 50% and accomodate gap -->
+        <div class="w-[48%] flex flex-col mb-5"> <!-- @TODO: find Tailwind alternative to use 50% and accomodate gap -->
           <label class="mb-1.5 font-titles" for="origin-y">Origin Y</label>
           <input class="input-cyan" type="number" name="origin-y" placeholder="Origin Y" />
         </div>
-        <div class="submit">
-          <button class="btn-cyan px-[15px] py-1.5" type="button" @click="removeObject">Save</button>
-          <button class="btn-bordeaux ml-2.5 px-[15px] py-1.5" type="button" @click="removeObject">Remove</button>
-        </div>
+        <button class="btn-cyan px-[15px] py-1.5 min-w-[100px]" type="button" @click="removeObject">Save</button>
+        <button class="btn-bordeaux px-[15px] py-1.5 min-w-[100px]" type="button" @click="removeObject">Remove</button>
       </form>
     </div>
   </div>
diff --git a/src/components/utilities/assetManager/partials/TileDetails.vue b/src/components/utilities/assetManager/partials/TileDetails.vue
index 9572fe4..4d4f106 100644
--- a/src/components/utilities/assetManager/partials/TileDetails.vue
+++ b/src/components/utilities/assetManager/partials/TileDetails.vue
@@ -5,13 +5,13 @@
       <div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
     </div>
     <div class="modal-form asset-manager m-2.5 p-2.5 block">
-      <form class="form-fields flex g-2.5 flex-wrap" @submit.prevent>
-        <div class="form-field tags flex flex-col mb-[20px]">
+      <form class="flex g-2.5 flex-wrap" @submit.prevent>
+        <div class="flex flex-col mb-5">
           <label class="mb-1.5 font-titles" for="tags">Tags</label>
           <ChipsInput v-model="tags" @update:modelValue="handleTagsUpdate" />
         </div>
-        <div class="submit w-full">
-          <button class="btn-bordeaux px-[15px] py-1.5" type="button" @click="removeTile">Remove</button>
+        <div class="w-full">
+          <button class="btn-bordeaux px-[15px] py-1.5 min-w-[100px]" type="button" @click="removeTile">Remove</button>
         </div>
       </form>
     </div>
diff --git a/src/components/utilities/zoneEditor/Tiles.vue b/src/components/utilities/zoneEditor/Tiles.vue
index 92f484c..82c1bc0 100644
--- a/src/components/utilities/zoneEditor/Tiles.vue
+++ b/src/components/utilities/zoneEditor/Tiles.vue
@@ -2,10 +2,10 @@
   <Teleport to="body">
     <Modal v-if="isModalOpen" @modal:close="() => zoneEditorStore.setTool('move')" :isModalOpen="true"  :modal-width="645" :modal-height="260">
       <template #modalHeader>
-        <h3 class="modal-title">Tiles</h3>
+        <h3 class="m-0 font-medium shrink-0">Tiles</h3>
       </template>
       <template #modalBody>
-        <div class="container tiles">
+        <div class="m-[15px] tiles">
           <div class="tiles">
             <img src="/assets/zone/blank_tile.png" alt="Blank tile" @click="zoneEditorStore.setSelectedTile('blank_tile')" :class="{ selected: zoneEditorStore.selectedTile && zoneEditorStore.selectedTile === 'blank_tile' }" />
             <img v-for="(tile, index) in tiles" :key="index" :src="`${config.server_endpoint}/assets/tiles/${tile}.png`" alt="Tile" @click="zoneEditorStore.setSelectedTile(tile)" :class="{ selected: zoneEditorStore.selectedTile && zoneEditorStore.selectedTile === tile }" />
diff --git a/src/components/utilities/zoneEditor/ZoneSettings.vue b/src/components/utilities/zoneEditor/ZoneSettings.vue
index fe00a9b..75bf75d 100644
--- a/src/components/utilities/zoneEditor/ZoneSettings.vue
+++ b/src/components/utilities/zoneEditor/ZoneSettings.vue
@@ -1,26 +1,26 @@
 <template>
   <Modal :isModalOpen="true" @modal:close="() => zoneEditorStore.toggleSettingsModal()" :modal-width="300" :modal-height="370" :is-resizable="false">
     <template #modalHeader>
-      <h3 class="modal-title">Zone settings</h3>
+      <h3 class="m-0 font-medium shrink-0">Zone settings</h3>
     </template>
 
     <template #modalBody>
       <div class="settings m-[15px]">
-        <form method="post" @submit.prevent="" class="modal-form inline">
-          <div class="form-fields gap-2.5 flex flex-wrap">
-            <div class="form-field w-full flex flex-col mb-5">
+        <form method="post" @submit.prevent="" class="inline">
+          <div class="gap-2.5 flex flex-wrap">
+            <div class="w-full flex flex-col mb-5">
               <label class="mb-1.5 font-titles" for="name">Name</label>
               <input class="input-cyan max-w-[250px]" v-model="name" name="name" id="name" />
             </div>
-            <div class="form-field w-[48%] flex flex-col mb-5">
+            <div class="w-[48%] flex flex-col mb-5">
               <label class="mb-1.5 font-titles" for="name">Width</label>
               <input class="input-cyan max-w-[250px]" v-model="width" name="name" id="name" type="number" />
             </div>
-            <div class="form-field w-[48%] flex flex-col mb-5">
+            <div class="w-[48%] flex flex-col mb-5">
               <label class="mb-1.5 font-titles" for="name">Height</label>
               <input class="input-cyan max-w-[250px]" v-model="height" name="name" id="name" type="number" />
             </div>
-            <div class="form-field w-full flex flex-col mb-5">
+            <div class="w-full flex flex-col mb-5">
               <label class="mb-1.5 font-titles" for="name">PVP enabled</label>
               <input class="input-cyan max-w-[250px]" name="name" id="name" />
             </div>
diff --git a/src/screens/Characters.vue b/src/screens/Characters.vue
index fd410e0..a22e8db 100644
--- a/src/screens/Characters.vue
+++ b/src/screens/Characters.vue
@@ -40,23 +40,19 @@
 
   <Modal :isModalOpen="isModalOpen" @modal:close="isModalOpen = false">
     <template #modalHeader>
-      <h3 class="modal-title">Create your character</h3>
+      <h3 class="m-0 font-medium shrink-0">Create your character</h3>
     </template>
 
     <template #modalBody>
-      <div class="container character-form">
-        <form method="post" @submit.prevent="create" class="modal-form">
-          <div class="form-fields">
-            <div class="form-field">
-              <label for="name">Name</label>
-              <input class="input-cyan" v-model="name" name="name" id="name" />
-            </div>
-          </div>
-          <div class="submit">
-            <button class="btn-cyan" type="submit">CREATE</button>
+      <div class="m-[15px] character-form">
+        <form method="post" @submit.prevent="create" class="inline">
+          <div class="flex flex-col mb-5">
+            <label class="mb-1.5 font-titles" for="name">Name</label>
+            <input class="input-cyan max-w-[250px]" v-model="name" name="name" id="name" />
           </div>
+          <button class="btn-cyan py-1.5 px-[15px] mr-[20px] min-w-[100px] inline-block" type="submit">CREATE</button>
         </form>
-        <button class="btn-cyan" @click="isModalOpen = false">CANCEL</button>
+        <button class="btn-cyan py-1.5 px-[15px] min-w-[100px] inline-block" @click="isModalOpen = false">CANCEL</button>
       </div>
     </template>
   </Modal>
@@ -322,9 +318,5 @@ onBeforeUnmount(() => {
       }
     }
   }
-
-  .modal-title {
-    margin: 0;
-  }
 }
 </style>