diff --git a/json/hadith/json/menu.json b/json/hadith/menu.json
similarity index 100%
rename from json/hadith/json/menu.json
rename to json/hadith/menu.json
diff --git a/json/hadith/json/sidbarMenuMin.json b/json/hadith/sidbarMenuMin.json
similarity index 100%
rename from json/hadith/json/sidbarMenuMin.json
rename to json/hadith/sidbarMenuMin.json
diff --git a/json/hadith/json/sidebar.json b/json/hadith/sidebar.json
similarity index 100%
rename from json/hadith/json/sidebar.json
rename to json/hadith/sidebar.json
diff --git a/layouts/HadithLayout.vue b/layouts/HadithLayout.vue
index f0074ea..56987a1 100644
--- a/layouts/HadithLayout.vue
+++ b/layouts/HadithLayout.vue
@@ -47,7 +47,7 @@ export default {
 <style lang="scss">
 /*@import "../../assets/scss/projects/tahrir/tahrir";*/
 /*@import "../../assets/scss/projects/list/list";*/
-@import "../assets/search/scss/search";
+@import "../assets/hadith/scss/hadith.scss";
 
 .search-system .modal-backdrop.show {
   display: block;
diff --git a/pages/hadith/index.vue b/pages/hadith/index.vue
index 102ad6a..3b96a74 100644
--- a/pages/hadith/index.vue
+++ b/pages/hadith/index.vue
@@ -1,907 +1,41 @@
 <template>
-  <SearchLayout :menu="sidbarMenu">
-    <!-- <Head> -->
-    <!-- <Title>{{ metaTitle }}</Title> -->
-    <!-- <Meta name="description" :content="title" /> -->
-    <!-- <Style type="text/css" children="body { background-color: green; }" ></Style> -->
-    <!-- </Head> -->
-
-    <div class="container-fluid">
-      <!-- #region header -->
-      <div :class="buildName() + '-header-color'" class="row align-items-end">
-        <!-- #region top-header -->
-        <div class="container">
-          <div class="col-12 pt-3">
-            <div class="row align-items-center mb-3">
-              <div class="col col-lg-auto order-1">
-                <div class="d-flex align-items-center">
-                  <button
-                    name="button"
-                    type="button"
-                    ref="buttonForTheSidebar"
-                    class="toggle-mobile-nav dropdown-hamburger d-md-none"
-                    @click.prevent="toggleSidebarMenu()"
-                  >
-                    <span class="sr-only">باز کردن منوی کنار</span>
-                    <svg class="icon icon-Component-356--1">
-                      <use xlink:href="#icon-Component-356--1"></use>
-                    </svg>
-                  </button>
-
-                  <NuxtLink
-                    :to="{
-                      path: '/',
-                    }"
-                    classes="btn me-3"
-                  >
-                    <img
-                      :src="logo"
-                      :alt="appLongTitle()"
-                      class="img-fluid logo"
-                      style="max-width: 3.3em"
-                    />
-                  </NuxtLink>
-                </div>
-              </div>
-              <div class="col-12 col-lg-7 order-3 order-lg-2">
-                <div class="search-container d-flex align-items-center">
-                  <auto-complation
-                    ref="autoComplationRef"
-                    :contentKey="searchActiveTabGetter?.key"
-                    :modeInit="modeInit"
-                    :textSearch="textSearch"
-                    :searchDomain="searchDomain"
-                    :placeholder="
-                      searchActiveTabGetter?.search_placeholder ??
-                      'جستجو در هزاران محتوا'
-                    "
-                    @onSearchStart="searchStart"
-                    @onSetDomainField="setDomainField"
-                    :showAppend="true"
-                  ></auto-complation>
-
-                  <div
-                    class="search-logic position-relative align-self-end d-none d-lg-block col-3 col-xl-2 me-2"
-                  >
-                    <VMenu class="">
-                      <label class="float-label" for="sort-type"
-                        >منطق جستجو</label
-                      >
-
-                      <template #popper>
-                        <div class="my-tooltip-content">منطق جستجو</div>
-                      </template>
-                    </VMenu>
-                    <div class="my-dropdown">
-                      <button
-                        class="btn dropdown-toggle dropdown-toggle-color rounded-0 w-100 ms-2"
-                        type="button"
-                        data-bs-toggle="dropdown"
-                        aria-haspopup="true"
-                        aria-expanded="false"
-                        id="dropdownSearchMenu"
-                      >
-                        <client-only>
-                          <span class="navItemlabel">
-                            {{
-                              searchActiveTabGetter?.searchType.find(
-                                (item) => item.key === searchType
-                              )?.label || "نوع جستجو"
-                            }}
-                          </span>
-                        </client-only>
-                      </button>
-
-                      <div
-                        class="dropdown-menu"
-                        aria-labelledby="dropdownSearchMenu"
-                      >
-                        <button
-                          v-for="(
-                            item, index
-                          ) in searchActiveTabGetter?.searchType"
-                          :key="index"
-                          type="button"
-                          class="dropdown-item"
-                          @click.prevent="
-                            searchType = item.key;
-                            searchTyping($event);
-                          "
-                        >
-                          {{ item.label }}
-                        </button>
-                      </div>
-                    </div>
-                  </div>
-                  <template v-if="searchTypeItem.item">
-                    <button
-                      v-if="searchTypeItem.item.type == 'bottom'"
-                      v-tooltip="searchTypeItem.item.label"
-                      class="btn btn-outline-primary me-2 no-wrap align-self-stretch d-none d-lg-block"
-                      type="button"
-                      @click.prevent="showSynonymModal"
-                    >
-                      <client-only>
-                        <span class="navItemlabel">
-                          {{ searchTypeItem.item?.label }}
-                        </span>
-                      </client-only>
-                    </button>
-                    <select
-                      v-else-if="searchTypeItem.item.type == 'select'"
-                      class="form-control w-auto me-2 align-self-stretch h-auto"
-                    >
-                      <!-- <option selected disabled value="undefined">
-                      بدون انتخاب
-                    </option> -->
-
-                      <option
-                        v-for="(opn, index) in searchTypeItem.item?.options"
-                        :value="opn.value"
-                        :key="index"
-                      >
-                        {{ opn.title }}
-                      </option>
-                    </select>
-                  </template>
-
-                  <!-- دکمه منو همبرگری  -->
-
-                  <button
-                    class="btn d-lg-none"
-                    data-bs-toggle="collapse"
-                    href="#collapseExample"
-                    role="button"
-                    aria-expanded="false"
-                    aria-controls="collapseExample"
-                  >
-                    <svg class="icon icon-filter-list">
-                      <use xlink:href="#icon-filter-list"></use>
-                    </svg>
-                  </button>
-
-                  <!-- <button
-                      class="btn d-lg-none"
-                      type="button"
-                      data-bs-toggle="collapse"
-                      data-bs-target="#hamburgerMenuLeft"
-                      aria-controls="hamburgerMenuLeft"
-                      aria-expanded="false"
-                      aria-label="Toggle navigation"
-                    >
-                      <svg class="icon icon-filter-list">
-                        <use xlink:href="#icon-filter-list"></use>
-                      </svg> -->
-                  <!-- </button> -->
-                </div>
-              </div>
-              <div class="col-auto col-lg order-2 order-lg-3">
-                <div class="d-flex justify-content-end" v-if="!isMajlesBuild()">
-                  <user-avatar-dropdown class="justify-content-end">
-                  </user-avatar-dropdown>
-                </div>
-              </div>
-            </div>
-          </div>
-          <!-- #endregion top-header -->
-
-          <!-- #region menu-header -->
-          <div class="menu-header col-12">
-            <div class="row row-nav">
-              <div class="col d-flex">
-                <ul
-                  class="col-lg-8 col-12 nav nav-tabs justify-content-start align-items-center pe-0"
-                >
-                  <div class="d-lg-none">
-                    <button
-                      class="btn pe-0"
-                      type="button"
-                      data-bs-toggle="offcanvas"
-                      data-bs-target="#offcanvasScrolling"
-                      aria-controls="offcanvasScrolling"
-                      @click="currentPanel = 'filter'"
-                    >
-                      <svg class="icon icon-filter">
-                        <use xlink:href="#icon-filter"></use>
-                      </svg>
-                    </button>
-
-                    <div
-                      :class="{
-                        show:
-                          currentPanel === 'advancedSearch' ||
-                          currentPanel === 'filter',
-                      }"
-                      class="offcanvas offcanvas-end"
-                      data-bs-scroll="true"
-                      data-bs-backdrop="false"
-                      tabindex="-1"
-                      id="offcanvasScrolling"
-                      aria-labelledby="offcanvasScrollingLabel"
-                    >
-                      <div class="offcanvas-header">
-                        <h5
-                          class="offcanvas-title"
-                          id="offcanvasScrollingLabel"
-                        >
-                          محدود کردن
-                        </h5>
-                        <button
-                          type="button"
-                          class="btn-close"
-                          data-bs-dismiss="offcanvas"
-                          aria-label="Close"
-                          @click="currentPanel = null"
-                        ></button>
-                      </div>
-                      <div class="filter-list-mobile">
-                        <div
-                          class=""
-                          v-show="searchActiveTabGetter?.filter?.length"
-                        >
-                          <div v-show="currentPanel === 'filter'">
-                            <!-- <filter-list-search
-                              v-if="showMobileFilterList"
-                              @filterUpdate="filterUpdate"
-                              @changeHideFilter="changeHideFilter($event)"
-                              ref="filterlist"
-                              :lastSearchInListMode="lastSearchInListMode"
-                              :changePageFilter="changePageFilter"
-                              :activeTabGetter="searchActiveTabGetter"
-                              class="filterList"
-                            ></filter-list-search> -->
-                          </div>
-                          <div v-show="currentPanel === 'advancedSearch'">
-                            <!-- <AdvancedSearch
-                              v-if="searchActiveTabGetter?.advance"
-                              v-show="displayAdvanceSearch"
-                              @onSearchStart="searchStart"
-                              @closeAdvancedSearch="closeAdvancedSearch"
-                              @set-query-advanced="setQueryAdvanced($event)"
-                            ></AdvancedSearch> -->
-                          </div>
-                        </div>
-                      </div>
-                    </div>
-                  </div>
-                  <li
-                    class="nav-item desktop"
-                    v-for="(navItem, index) in searchSchemaGetter"
-                    :key="index"
-                  >
-                    <button
-                      :title="navItem.label"
-                      type="button"
-                      @click.prevent="setNavbar(navItem, index)"
-                      class="btn nav-link"
-                      :class="{
-                        active: navbarKey == getNavbarKey(navItem),
-                      }"
-                    >
-                      <client-only>
-                        {{ navItem.label }}
-                      </client-only>
-                    </button>
-                  </li>
-
-                  <li
-                    class="nav-item mobile tabs-more-btn d-lg-none"
-                    v-if="searchSchemaGetter?.length > 5"
-                  >
-                    <div class="dropdown">
-                      <button
-                        class="btn"
-                        type="button"
-                        id="dropdownMenuButton"
-                        data-bs-toggle="dropdown"
-                        aria-haspopup="true"
-                        aria-expanded="false"
-                      >
-                        <svg class="icon icon-Component-81--1">
-                          <use xlink:href="#icon-Component-81--1"></use>
-                        </svg>
-                      </button>
-                      <div
-                        class="dropdown-menu"
-                        aria-labelledby="dropdownMenuButton"
-                      >
-                        <client-only>
-                          <template
-                            v-for="(navItem, index) in searchSchemaGetter"
-                            :key="index"
-                          >
-                            <a
-                              class="dropdown-item"
-                              v-if="canSee(navItem.key + '_view') && index > 3"
-                              @click.prevent="setNavbar(navItem, index)"
-                              :class="{
-                                active: navbarKey == getNavbarKey(navItem),
-                              }"
-                              >{{ navItem.label }}</a
-                            >
-                          </template>
-                        </client-only>
-                      </div>
-                    </div>
-                  </li>
-                </ul>
-                <ul
-                  class="col-4 nav nav-tabs d-flex justify-content-end align-content-center mb-2 d-none d-lg-flex"
-                >
-                  <li
-                    class="nav-item combo-list ms-2 position-relative mt-3 mt-md-0 ms-2 d-none d-lg-block"
-                  >
-                    <VMenu class="">
-                      <label class="float-label" for="sort-type"
-                        >مرتب سازی ؟</label
-                      >
-
-                      <template #popper>
-                        <div
-                          class="my-tooltip-content"
-                          v-html="
-                            getHtmlTooltip2(
-                              'search',
-                              'search_sort',
-                              'SKVFBY8BPd2Jp_Xr9JoV'
-                            )
-                          "
-                        ></div>
-                      </template>
-                    </VMenu>
-
-                    <!-- <label class="float-label" for="sort-type"
-                      >مرتب سازی:</label
-                    > -->
-                    <div class="my-dropdown">
-                      <button
-                        v-tooltip="'انتخاب نوع مرتب‌سازی'"
-                        class="btn dropdown-toggle dropdown-toggle-color rounded-0 w-100 ms-2"
-                        type="button"
-                        data-bs-toggle="dropdown"
-                        aria-haspopup="true"
-                        aria-expanded="false"
-                        id="dropdownSortMenu"
-                      >
-                        <client-only>
-                          <span class="navItemlabel">
-                            {{
-                              sortList.find((item) => item.list_key === sortKey)
-                                ?.title || "نوع مرتب‌سازی"
-                            }}
-                          </span>
-                        </client-only>
-                      </button>
-                      <div
-                        class="dropdown-menu"
-                        aria-labelledby="dropdownSortMenu"
-                      >
-                        <button
-                          v-for="(item, index) in sortList"
-                          :key="index"
-                          type="button"
-                          class="dropdown-item"
-                          @click.prevent="setSortListDropDown(item.list_key)"
-                        >
-                          {{ item.title }}
-                        </button>
-                      </div>
-                    </div>
-                  </li>
-                  <li
-                    class="nav-item combo-list position-relative d-none d-lg-block"
-                  >
-                    <switch-with-icon
-                      v-if="searchActiveTabGetter?.showTableList"
-                      @change-mode="switchViewMode($event)"
-                      classes="btn d-inline-flex px-2 "
-                      texts1="حالت جدولی"
-                      texts2="حالت فهرستی"
-                      :value="viewMode"
-                    ></switch-with-icon>
-
-                    <!-- <div
-                      class="switcher-container"
-                      
-                    >
-                      <button-component
-                        @click="switchViewMode('table')"
-                        :class="{ active: viewMode === 'table' }"
-                        classes="btn d-inline-flex px-2 "
-                        buttonText=""
-                        title="حالت جدولی"
-                        v-tooltip="'حالت جدولی'"
-                      >
-                        <span class="tavasi tavasi-table-view"></span>
-                      </button-component>
-                      <button-component
-                        @click="switchViewMode('list')"
-                        :class="{ active: viewMode === 'list' }"
-                        classes="btn d-inline-flex px-2 "
-                        buttonText=""
-                        title="حالت فهرستی"
-                        v-tooltip="'حالت فهرستی'"
-                      >
-                        <span class="tavasi tavasi-list-view"></span>
-                      </button-component>
-                    </div> -->
-                  </li>
-                </ul>
-              </div>
-            </div>
-          </div>
-          <!-- #endregion menu-header -->
-          <!-- #region hamburger menu -->
-
-          <div class="collapse d-lg-none" id="collapseExample" ref="menu">
-            <div class="container-fluid hamburger-menu">
-              <!-- <div class="row align-items-center border-bottom my-2"> -->
-              <!-- <div class="col-6 text-end p-0"> -->
-              <!-- دکمه بستن سمت راست -->
-              <!-- <button
-                      type="button"
-                      class="btn"
-                      data-bs-toggle="collapse"
-                      data-bs-target="#hamburgerMenuLeft"
-                      aria-expanded="false"
-                      aria-label="Close"
-                    >
-                      <svg class="icon icon-Component-21--1">
-                        <use xlink:href="#icon-Component-21--1"></use>
-                      </svg>
-                    </button>
-                  </div>
-                  <div class="col-6"> -->
-              <!-- متن سمت چپ -->
-              <!-- <p class="mb-0">تنظیمات جستجو</p> -->
-              <!-- </div> -->
-              <!-- </div> -->
-              <div class="row border-bottom mx-1">
-                <div class="d-flex justify-content-between">
-                  <div
-                    class="col-12 search-logic position-relative align-self-end"
-                  >
-                    <VMenu class="">
-                      <label class="float-label" for="sort-type"
-                        >منطق جستجو</label
-                      >
-
-                      <template #popper>
-                        <div class="my-tooltip-content">منطق جستجو</div>
-                      </template>
-                    </VMenu>
-                    <div class="my-dropdown">
-                      <button
-                        v-tooltip="'انتخاب نوع جستجو'"
-                        class="btn dropdown-toggle dropdown-toggle-color rounded-0 w-100 ms-2"
-                        type="button"
-                        aria-haspopup="true"
-                        aria-expanded="false"
-                        id="dropdownSearchMenu"
-                        data-bs-toggle="dropdown"
-                      >
-                        <client-only>
-                          <span class="navItemlabel">
-                            {{
-                              searchActiveTabGetter?.searchType.find(
-                                (item) => item.key === searchType
-                              )?.label || "نوع جستجو"
-                            }}
-                          </span>
-                        </client-only>
-                      </button>
-                      <div
-                        class="dropdown-menu"
-                        aria-labelledby="dropdownSearchMenu"
-                      >
-                        <button
-                          v-for="(
-                            item, index
-                          ) in searchActiveTabGetter?.searchType"
-                          :key="index"
-                          type="button"
-                          class="dropdown-item"
-                          @click.prevent="
-                            searchType = item.key;
-                            searchTyping($event);
-                          "
-                        >
-                          {{ item.label }}
-                        </button>
-                      </div>
-                    </div>
-                  </div>
-
-                  <button
-                    v-if="searchTypeItem.item?.type == 'bottom'"
-                    v-tooltip="searchTypeItem.item?.label"
-                    class="btn btn-outline-primary me-2 no-wrap align-self-stretch my-2"
-                    type="button"
-                    @click.prevent="showSynonymModal"
-                  >
-                    <client-only>
-                      <span class="navItemlabel">
-                        {{ searchTypeItem.item?.label }}
-                      </span>
-                    </client-only>
-                  </button>
-
-                  <div
-                    class="col-6 switch-with-icon d-flex justify-content-end"
-                  >
-                    <switch-with-icon
-                      v-if="searchActiveTabGetter?.showTableList"
-                      @change-mode="switchViewMode($event)"
-                      classes="btn d-inline-flex px-2"
-                      texts1="حالت جدولی"
-                      texts2="حالت فهرستی"
-                      :value="viewMode"
-                    ></switch-with-icon>
-                  </div>
-                </div>
-              </div>
-              <div class="row border-bottom mx-1">
-                <div class="col-12 my-2">
-                  <div class="search-logic position-relative align-self-end">
-                    <VMenu class="">
-                      <label class="float-label" for="sort-type"
-                        >مرتب سازی ؟</label
-                      >
-
-                      <template #popper>
-                        <div
-                          class="my-tooltip-content"
-                          v-html="
-                            getHtmlTooltip2(
-                              'search',
-                              'search_sort',
-                              'SKVFBY8BPd2Jp_Xr9JoV'
-                            )
-                          "
-                        ></div>
-                      </template>
-                    </VMenu>
-                    <span class="my-dropdown">
-                      <button
-                        v-tooltip="'انتخاب نوع مرتب‌سازی'"
-                        class="btn dropdown-toggle dropdown-toggle-color rounded-0 w-100 ms-2"
-                        type="button"
-                        data-bs-toggle="dropdown"
-                        aria-haspopup="true"
-                        aria-expanded="false"
-                        id="dropdownSortMenu"
-                      >
-                        <client-only>
-                          <span class="navItemlabel">
-                            {{
-                              sortList.find((item) => item.list_key === sortKey)
-                                ?.title || "نوع مرتب‌سازی"
-                            }}
-                          </span>
-                        </client-only>
-                      </button>
-                      <div
-                        class="dropdown-menu"
-                        aria-labelledby="dropdownSortMenu"
-                      >
-                        <button
-                          v-for="(item, index) in sortList"
-                          :key="index"
-                          type="button"
-                          class="dropdown-item"
-                          @click.prevent="setSortListDropDown(item.list_key)"
-                        >
-                          {{ item.title }}
-                        </button>
-                      </div>
-                    </span>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-          <!-- #endregion hamburger menu -->
-        </div>
-      </div>
-      <!-- #endregion header -->
-      <!-- #region mian-content -->
-      <div class="row">
-        <div class="container mt-4 d-flex">
-          <div
-            v-if="showButton"
-            class="circle--button"
-            @click.prevent="changeHideFilter(0)"
-            ref="circle"
-          >
-            <svg
-              class="s12 icon-chevron-double-lg-left"
-              data-testid="chevron-double-lg-left-icon"
-            >
-              <use
-                href="assets/common/img/icons.svg#chevron-double-lg-left"
-              ></use>
-            </svg>
-          </div>
-          <div class="row">
-            <div
-              v-if="searchActiveTabGetter?.filter?.length"
-              class="col col-lg-3 d-none d-lg-block filter-list-container position-relative"
-              ref="showFilter"
-            >
-              <!-- <div
-                  class="mobile-mode mb-3"
-                  :class="{ 'justify-content-end': showFilter }"
-                >
-                  <button class="btn" @click.prevent="showFilter = !showFilter">
-                    <svg
-                      v-if="showFilter"
-                      class="icon icon-chevron-double-right ms-1"
-                    >
-                      <use xlink:href="#icon-chevron-double-right"></use>
-                    </svg>
-                    <svg v-else class="icon icon-chevron-double-left">
-                      <use xlink:href="#icon-chevron-double-left"></use>
-                    </svg>
-                    بستن فیلتر
-                  </button>
-                </div> -->
-              <!-- #region filter-list -->
-              <filter-list-search
-                boxShadow="rgba(23, 23, 23, 0.24) 0px 1px 3px"
-                v-if="!showMobileFilterList"
-                @filterUpdate="filterUpdate"
-                @changeHideFilter="changeHideFilter($event)"
-                ref="filterlist"
-                :lastSearchInListMode="lastSearchInListMode"
-                :changePageFilter="changePageFilter"
-                :activeTabGetter="searchActiveTabGetter"
-                class="filterList"
-              ></filter-list-search>
-              <!-- #endregion filter-list
-
-              #region advanced-search -->
-              <!-- <AdvancedSearch
-                v-if="searchActiveTabGetter?.advance"
-                v-show="displayAdvanceSearch"
-                @onSearchStart="searchStart"
-                @closeAdvancedSearch="closeAdvancedSearch"
-                @set-query-advanced="setQueryAdvanced($event)"
-              ></AdvancedSearch> -->
-              <!-- #endregion advanced-search -->
-            </div>
-
-            <!-- #region content -->
-            <div class="col">
-              <suggestion-component
-                v-if="showSuggestion"
-                @on-select-suggestion="onSelectSuggestion"
-                :suggestions="lists?.data?.suggest?.result"
-              ></suggestion-component>
-
-              <template v-if="!showNoAnswer()">
-                <component
-                  :key="reRender"
-                  :activeTabGetter="searchActiveTabGetter"
-                  :is="contentComponentName"
-                  :summeryKeys="['content', 'mindex', 'mintro']"
-                  :courseKeys="['title', 'subtitle', 'mintro']"
-                  :pagination="pagination"
-                  :tq="textSearch"
-                  :viewMode="viewMode"
-                  :key_data="contentKey"
-                  @changeCurrent="changeCurrent"
-                  @changePage="changePaging"
-                  :schemaItems="searchActiveTabGetter?.search_content"
-                  :items="listAnswer"
-                  :tableColumns="domainActiveGetter?.table_columns"
-                  ref="content"
-                ></component>
-                <template v-if="loading">
-                  <the-content-loading
-                    :loadingTitle="'در حال دریافت اطلاعات'"
-                    class="table-loading"
-                  ></the-content-loading>
-                </template>
-                <template v-else>
-                  <MyContent
-                    :key="reRender"
-                    :pagination="pagination"
-                    :viewMode="viewMode"
-                    @changeCurrent="changeCurrent"
-                    @changePage="changePaging"
-                    :schemaItems="searchActiveTabGetter?.search_content"
-                    :items="listAnswer"
-                    :tableColumns="domainActiveGetter?.table_columns"
-                    :tableActions="domainActiveGetter?.table_actions"
-                    ref="content"
-                  >
-                  </MyContent>
-                </template>
-              </template>
-
-              <no-data v-else>
-                <div class="d-flex justify-content-center align-items-center">
-                  <div
-                    class="alert alert-warning d-flex flex-column justify-content-center"
-                  >
-                    <div class="mb-3">پاسخی برای جستجوی شما یافت نشد.</div>
-                    <div class="mb-3" v-if="textSearch">
-                      <label>عبارت جستجو :</label>
-                      <strong> {{ textSearch }}</strong>
-                    </div>
-                    <div class="mb-3" v-if="filterUrl">
-                      <label>فیلتر :</label>
-                      <strong> {{ filterUrl }}</strong>
-                    </div>
-                    <div class="mb-3" v-if="domain_lable">
-                      <label>دامنه :</label>
-                      <strong> {{ domain_lable }}</strong>
-                    </div>
-                    <div class="mb-3">
-                      <label>نوع جستجو :</label>
-                      <strong> {{ searchType_lable }}</strong>
-                    </div>
-                  </div>
-                </div>
-              </no-data>
-            </div>
-          </div>
-          <!-- #region summary -->
-          <div
-            v-if="showSummary"
-            class="col-8 col-lg-3 summary-container"
-            :class="{ expanded: showSummary }"
-          >
-            <SearchSummary
-              ref="summary"
-              :currentItem="currentItem"
-              :page="page"
-              @hideSummary="hideSummary"
-            ></SearchSummary>
-          </div>
-          <!-- #endregion summary -->
-        </div>
-        <!-- #endregion content -->
-      </div>
-      <!-- #endregion mian-content -->
-    </div>
-
-    <base-modal-v2
-      v-if="showBaseModal"
-      modalSize="modal-lg"
-      minHeight="auto"
-      :hasFooter="false"
-      @close="closeModal"
-      modalTitle="جستجوی مترادفات"
-    >
-      <!-- <template v-slot:header>{{ entityContent_title }} </template> -->
-      <template v-slot:default>تنظیم بیشتر کلمات مترادف برای جستجو</template>
-
-      <template v-slot:body>
-        <synonym-search
-          :editCat="editCatItem"
-          @close="closeModal"
-          @search="onSearchSynonym"
-        ></synonym-search>
-      </template>
-
-      <!-- <template v-slot:footer> This is a new modal footer. </template> -->
-    </base-modal-v2>
-  </SearchLayout>
+  <HadithLayout :menu="sidbarMenu"> hadith page </HadithLayout>
 </template>
 <script>
 import { useStorage } from "@vueuse/core";
 import { mapActions, mapState } from "pinia";
 
-import { useSearchStore } from "../../stores/searchStore";
+import { useHadithStore } from "@hadith/stores/hadithStore";
 import { useCommonStore } from "~/stores/commonStore";
-import searchApi from "../../apis/searchApi.js";
-import adminApi from "~/apis/adminApi";
-import sidbarMenuDefault from "../../json/search/json/menu.json";
+import hadithApi from "@hadith/apis/hadithApi.js";
+import navbarMenu from "@hadith/json/hadith/menu.json";
 
 export default {
-  name: "search",
+  name: "hadith",
   setup() {
     useHead({
-      title: import.meta.env.VITE_SEARCH_PAGE_TITLE,
-      meta: [{ name: "description", content: "My page description" }],
+      title: import.meta.env.VITE_HADITH_PAGE_TITLE,
+      meta: [
+        { name: "description", content: "کاوش با هوش مصنوعی در احادیث اسلامی" },
+      ],
       bodyAttrs: {
-        class: import.meta.env.VITE_SEARCH_SYSTEM,
+        class: import.meta.env.VITE_HADITH_SYSTEM,
       },
     });
 
     definePageMeta({
       layout: false,
-      name: "search",
+      name: "hadith",
     });
   },
-  props: ["modeInit"],
-  // mixins: [searchLineMixin],
-  watch: {
-    modeInit(newVal = 1) {
-      this.mode = newVal;
-    },
-    $route: {
-      handler: function (to, from) {
-        this.getSchemas();
-        this.setInputText(to.query.q);
-        this.state = 2;
 
-        setTimeout(() => {
-          this.searchStart(this.textSearch);
-          // if (this.textSearch != undefined && this.textSearch != "") {
-          //   this.searchStart(this.textSearch);
-          // } else {
-          //   this.getDefaultByFilter();
-          // }
-        }, 500);
-      },
-    },
-
-    // تکرار و خطای در جستجو وقتی تبها را عوض می کردیم داشت
-    //کار اضافه انجام می‌داد جاهای مختلف را بررسی کردم
-    // contentComponentName(newVal) {
-    //   this.resetPagination();
-    //   if (this.textSearch !== "" || this.tg !== undefined) {
-    //     this.getQuery(false, true);
-    //   } else {
-    //   }
-    // },
-
-    // topRepeatInListMode(navItem) {
-    //   if (navItem == true) {
-    //     setTimeout(() => {
-    //       this.$refs.dropdownSortlist.classList.remove("opacity");
-    //       // this.$refs.circle.classList.remove("opacity");
-    //       this.againsetlist(this.lists);
-    //     }, 100);
-    //   } else {
-    //     setTimeout(() => {
-    //       this.$refs.dropdownSortlist.classList.add("opacity");
-    //       // this.$refs.circle.classList.add("opacity");
-    //     }, 100);
-    //   }
-    // },
-    searchActiveTabGetter(newVal) {
-      if (newVal?.domain) {
-        this.setSearchDomain(newVal);
-      }
-    },
-    // جستجوی پیشرفته انتخاب شده، بعد از اینکه ورودی خالی میشه، مرتب سازی هم ریست بشه.
-    textSearch(text) {
-      if (text?.length == 0 && this.sortKey == "searchsort")
-        this.setSortList("lasttitle");
-    },
-  },
   created() {
     this.httpService = useNuxtApp()["$http"];
   },
-  beforeMount() {
-    if (buildName() == "monir" || window?.innerWidth < 575) {
-      this.viewMode = "list";
-    } else {
-      this.viewMode = "table";
-    }
-  },
+
   async mounted() {
     this.logo = (await logoPhoto()).default;
 
-    // this.logo = (await logoPhoto()).default;
-    // .then((img) => {
-    //   this.logo = img;
-    // });
-
-    this.mode = this.modeInit;
-
-    if (this.$route.query.q) {
-      let q = this.$route.query.q ?? "";
-      let items = q.split("?");
-      if (items.length) q = items[0];
-      this.initText(q);
-    }
-
-    document.addEventListener("click", this.handleClickOutside);
-    // if (!this.isMajlesBuild) this.getEmplifyData();
     let schemaExist = this.searchActiveTabGetter && this.searchSchemaGetter;
 
     if (!schemaExist) this.getSchemas();
@@ -911,251 +45,32 @@ export default {
       this.$store.commit("TOGGLE_SIDEBAR_MENU");
       this.showMobileFilterList = true;
     }
-    this.modetab = 0;
-    this.state = 2;
-
-    //////////////////////////////////////
-    setTimeout(() => {
-      let activeItem = this.searchSchemaGetter?.[0];
-      if (this.$route.query.key) {
-        let key = this.$route.query.key;
-        activeItem = this.searchSchemaGetter?.find((item) => item.key === key);
-      }
-      this.searchActiveTabSetter(activeItem);
-      //////////////////////////////////////
-
-      if (this.$route.query.q) {
-        this.setInputText(this.$route.query.q);
-      }
-      setTimeout(() => {
-        this.searchStart(this.textSearch);
-        // if (this.textSearch != undefined && this.textSearch != "") {
-        //   this.searchStart(this.textSearch);
-        // } else {
-        //   this.getDefaultByFilter();
-        // }
-      }, 500);
-    }, 300);
   },
 
   data() {
     return {
       httpService: {},
       logo: "",
-      showMobileFilterList: false,
-      searchDomain: [],
-      showItem: 0,
-      mode: 1,
-
-      showSuggestion: false,
-      showBaseModal: false,
-      sysnonymSearchIsActive: false,
-      sysnonymSearchQuery: null,
-
-      setListItems: ["کد و شماره", "تاریخ", "عنوان قانون", "متن قانون"],
-      // activeSortItem: undefined,
-
-      tagLiSelected: null,
-
-      // showFilter: false,
-      ismultiWord: false,
-      showButton: false,
-      // topRepeatInListMode: true,
-      iscode: false,
-      lastSearchInListMode: true,
-      searchingState: false,
-      loading: false,
-      showSummary: false,
-      showTermSummary: false,
-      ismultword: true,
-      displayAdvanceSearch: false,
-
-      state: 2,
-      modetab: 0,
-      total_answer: 0,
-      amplifyIndex: -1,
-      countInPage: 10,
-      reRender: 1,
-      page: 0,
-
-      changePageFilter: "",
-      textSearch: "",
-      domain_key: "",
-      domain_lable: "",
-      filterUrl: "",
-      searchCodeKey: "all",
-      searchType: "normal",
-      searchTypeItem: {},
-      searchTypeItem_subItem: {},
-      searchType_lable: "عادی",
-      synonyms: {},
-
-      viewMode: null,
-      setQuery: "",
-      textAmplify: "",
-      lists: "",
-      listAnswer: [],
-      sortTitle: "",
-      sortKey: "lasttitle",
-
-      listAmplify: [],
-      currentItem: [],
-
-      sidbarMenuDefault: sidbarMenuDefault,
-      // sidbarMenuMin: sidbarMenuMin,
-      pagination: {
-        page: 1,
-        pages: 0,
-        total: 0,
-        offset: 0, // page * per_page
-        limit: 25, //per_page
-      },
-      currentPanel: null,
-      //بلا استفاده ها
-
-      // treeLists: "",
-      // rerenderChart: 1,
-      // addressBarUrl: null,
-      // filterNavigate: [],
-      // searchTab: "searchResult",
-      // windowWidth: window.innerWidth,
-      // meets: [],
-      // number: 0,
-      // showfilterCategory: true,
-      // activeListItem: undefined,
-      // showDropdown: false,
-      // showDropdownNavigateList: false,
-      // navigateListPart2: [],
-      // navigateListItem: "",
-      // listChangeItem: "",
-      // showListPanel: false,
-      // showSearchLine: true,
+      sidbarMenuDefault: navbarMenu,
     };
   },
 
   computed: {
-    ...mapState(useSearchStore, [
-      "domainActiveGetter",
-      "searchActiveTabGetter",
-      "searchSchemaGetter",
-      "searchSynonymTitleGetter",
-    ]),
+    // ...mapState(useHadithStore, [
+    //   "domainActiveGetter",
+    //   "searchActiveTabGetter",
+    //   "searchSchemaGetter",
+    //   "searchSynonymTitleGetter",
+    // ]),
     ...mapState(useCommonStore, [
       "currentUser",
       "organNameGetter",
       "isSidebarCollapsed",
       "userPermisionGetter",
     ]),
-    // metaTitle() {
-    //   return import.meta.env.VITE_SEARCH_PAGE_TITLE;
-    // },
-    // bodyClass() {
-    //   return import.meta.env.VITE_SEARCH_SYSTEM;
-    // },
-    isCategoryRoute() {
-      return this.$route.name == "searchCategory";
-    },
-    contentComponentName() {
-      if (this.searchActiveTabGetter?.searchContent)
-        return this.searchActiveTabGetter?.searchContent;
 
-      //بعد بروز رسانی کل این قسمت برداشته شود
-      // let key = this.contentKey;
-      // if (key == "qanon") return "QanonContent";
-      // else if (key == "mqanon" || key == "nqanon") return "MajlesQanonContent";
-      // else if (key == "qqanon") return "MajlesQavaninContent";
-      // else if (key == "mqsection") return "MajlesSectionContent";
-      // else if (key == "mashruh") return "MajlesMashruhContent";
-      // else if (key == "term") return "TermContent";
-      // else if (key == "emamain") return "EmamainContent";
-      // else if (key == "nesha") return "NeshaContent";
-      // else if (key == "qasection") return "MajlesQaSectionContent";
-
-      return "SearchContent";
-    },
-    summaryComponentName() {
-      let key = this.contentKey;
-      if (key == "term") return "TermSummary";
-      return "SearchSummary";
-    },
     sidbarMenu() {
-      if (isMajlesBuild()) return sidbarMenuMin;
-      else return sidbarMenuDefault;
-    },
-    // sortTitle() {
-    //   if (this.activeSortItem) {
-    //     return this.activeSortItem.title;
-    //   } else {
-    //     if (this.searchActiveTabGetter?.lists?.length)
-    //       return this.searchActiveTabGetter.lists[0].title;
-    //     return "--";
-    //   }
-    // },
-    // sortKey() {
-    //   if (this.activeSortItem) {
-    //     return this.activeSortItem.list_key;
-    //   } else {
-    //     if (this.searchActiveTabGetter?.lists?.length)
-    //       return this.searchActiveTabGetter.lists[0].list_key;
-    //     return undefined;
-    //   }
-    // },
-
-    sortList() {
-      if (this.searchActiveTabGetter?.lists) {
-        if (!this.searchingState)
-          return this.searchActiveTabGetter?.lists.slice(
-            0,
-            this.searchActiveTabGetter?.lists.length - 1
-          );
-        else return this.searchActiveTabGetter?.lists;
-      }
-      return [];
-    },
-    isAdmin() {
-      return this.currentUser.user_level > 1;
-    },
-    hasVectorSearch() {
-      let key = this.contentKey;
-      return key == "mqsection" || key == "qasection";
-    },
-    navbarKey() {
-      if (this.searchActiveTabGetter?.key_navbar)
-        return this.searchActiveTabGetter?.key_navbar;
-      return this.searchActiveTabGetter?.key;
-    },
-    contentKey() {
-      // if (this.domainActiveGetter?.key_search)
-      //   return this.domainActiveGetter?.key_search;
-
-      return this.searchActiveTabGetter?.key;
-    },
-    navigateList() {
-      // if (this.filterNavigate && this.filterNavigate.length > 0) {
-      //   let result = [];
-      //   this.schemasGetter.forEach((e) => {
-      //     if (this.filterNavigate.includes(e.key)) result.push(e);
-      //   });
-      // } else {
-      //   result = this.schemasGetter;
-      // }
-      // if (result.length > 3) {
-
-      //   return result.length > 3 ? result.slice(0, 3)
-      // }
-      // else {
-      //   return result;
-      // }
-
-      // if (this.filterNavigate && this.filterNavigate.length > 0) {
-      //   let result = [];
-      //   this.schemasGetter.forEach((e) => {
-      //     if (this.filterNavigate.includes(e.key)) result.push(e);
-      //   });
-      // } else
-      // {
-      return this.searchSchemaGetter;
-      // }
+      return this.sidbarMenuDefault;
     },
   },
   methods: {
@@ -1164,178 +79,13 @@ export default {
       "sidebarCollapsedSetter",
     ]),
 
-    ...mapActions(useSearchStore, [
-      "searchActiveTabSetter",
-      "searchSchemaSetter",
-      "domainActiveSetter",
-      "searchSynonymTitleSetter",
-    ]),
-    setMode(item) {
-      this.mode = item;
-    },
-    initText(item) {
-      this.textSearch = item;
-    },
+    // ...mapActions(useHadithStore, [
+    //   "searchActiveTabSetter",
+    //   "searchSchemaSetter",
+    //   "domainActiveSetter",
+    //   "searchSynonymTitleSetter",
+    // ]),
 
-    showSettingToggle() {
-      this.liSelected = null;
-      setTimeout(() => {
-        if (this.showItem == 0) this.showItem = 2;
-        else this.showItem = 0;
-      }, 100);
-    },
-    getHighlight(item) {
-      var find = this.textSearch;
-      var text = item.replaceAll(find, "<b>" + find + "</b>");
-      return text;
-    },
-    /**
-     * تنظیم دامنه جستجو.
-     * @param {Object} value - مقدار دامنه جستجوی جدید.
-     * @param {Object[]} value.domain - آرایه‌ای از اشیاء دامنه.
-     * @param {string} value.domain[].label - برچسب دامنه.
-     * @param {string} value.domain[].key - کلید دامنه.
-     */
-    setSearchDomain(value) {
-      this.searchDomain = value.domain.domain;
-
-      let update = false;
-      if (this.searchDomain && this.searchDomain[0].key != "all") {
-        this.searchDomain.unshift({
-          label: "همه",
-          key: "all",
-          table_columns: this.searchDomain[0]?.table_columns,
-        });
-        update = true;
-
-        // this.searchDomain = [...this.searchDomain, ...value.domain.domain];
-      }
-
-      // if (update || !this.domainActiveGetter)
-      {
-        if (isMajlesBuild()) this.domainActiveSetter(this.searchDomain[1]);
-        else this.domainActiveSetter(this.searchDomain[0]);
-      }
-    },
-    onSelectSuggestion(data) {
-      this.searchStart(data);
-      this.showSuggestion = false;
-    },
-
-    // برای بستن div وقتی خارج از آن کلیک میشه
-    handleClickOutside(event) {
-      const isResponsiveOutside = window?.innerWidth <= 991;
-
-      if (!isResponsiveOutside) {
-        return; // خروج از تابع اگر کاربر در حال استفاده از موبایل یا تبلت است
-      }
-      const menuElement = this.$refs?.menu;
-      const sidebarElement = this.$refs.theSidebar?.$el;
-      const buttonForTheSidebar = this.$refs?.buttonForTheSidebar;
-      // to close left menu
-      if (menuElement && !menuElement.contains(event.target)) {
-        menuElement.classList.remove("show");
-      }
-      // to close theSidebar
-      if (
-        sidebarElement &&
-        !sidebarElement?.contains(event.target) &&
-        this.isSidebarCollapsed !== true
-      ) {
-        if (!buttonForTheSidebar?.contains(event.target))
-          this.sidebarCollapsedSetter(true);
-      }
-    },
-    onSearchSynonym(synonyms) {
-      this.synonyms = synonyms;
-      this.closeModal();
-      this.getQuery();
-    },
-
-    editCatItem() {},
-    disableSynonymIsActive() {
-      this.sysnonymSearchQuery = null;
-      this.sysnonymSearchIsActive = false;
-    },
-
-    closeModal() {
-      this.showBaseModal = false;
-      // this.getCategories();
-    },
-    showSynonymModal() {
-      this.searchSynonymTitleSetter(this.textSearch);
-      this.showBaseModal = true;
-      this.sysnonymSearchIsActive = true;
-    },
-    getNavbarKey(item) {
-      if (item?.key_navbar) return item.key_navbar;
-      return item.key;
-    },
-
-    switchViewMode(viewMode) {
-      if (viewMode == "table") {
-        this.pagination.limit = 25;
-      } else {
-        this.pagination.limit = 10;
-      }
-
-      this.viewMode = viewMode;
-
-      this.searchStart(this.textSearch);
-      // if (this.textSearch != undefined && this.textSearch != "") {
-      //   this.searchStart(this.textSearch);
-      // } else this.getDefaultByFilter();
-    },
-    toggleSidebarMenu() {
-      this.TOGGLE_SIDEBAR_MENU();
-    },
-
-    /**
-     * تنظیم مقدار متنی ورودی به عنوان متن جستجو.
-     * @event setInputText
-     * @param {string} text - مقدار متنی جدید برای تنظیم به عنوان متن جستجو.
-     */
-    setInputText(text) {
-      this.textSearch = myEncodeQuery(text);
-    },
-
-    /**
-     *    تنظیم آیتم انتخاب‌ شده و شروع جستجو.
-     * @param {Object} navItem - آیتم انتخاب‌شده.
-     */
-    setDomainField(navItem) {
-      this.displayAdvanceSearch = navItem?.key == "advance";
-      if (this.displayAdvanceSearch) {
-        this.currentPanel = "advancedSearch";
-      }
-      // this.domainActiveSetter(navItem);
-      this.$refs.content?.setTableColumns();
-      this.$refs.autoComplationRef.prevSearchStart();
-    },
-
-    /**
-     * برای تنظیم آیتم طرح و به‌روز رسانی مسیر.
-     * @param {Object} item - آیتمی که باید تنظیم شود.
-     * @param {number} index - شاخص آیتم.
-     */
-    setNavbar(item, index) {
-      this.modetab = index;
-      this.loading = true;
-      let full_path = this.$route.fullPath;
-      let newRoutePath = full_path;
-      let prevKey = this.$route.query.key;
-      if (prevKey)
-        newRoutePath = full_path.replace(`key=${prevKey}`, `key=${item.key}`);
-      else newRoutePath = full_path + `?key=${item.key}`;
-
-      this.$route.query.key = item.key;
-      history.pushState({}, document.title, newRoutePath);
-
-      this.searchActiveTabSetter(item);
-      setTimeout(() => {
-        this.searchStart(this.textSearch);
-      }, 300);
-    },
     async getSchemas() {
       let localStoageSearchSchema = useStorage("searchSchema", undefined).value;
 
@@ -1349,7 +99,7 @@ export default {
           system: "search",
           build_state: buildState(),
         };
-        const url = repoUrl() + searchApi.schema.list;
+        const url = repoUrl() + hadithApi.schema.list;
 
         this.httpService
           .postRequest(url, payload)
@@ -1357,701 +107,26 @@ export default {
             this.searchSchemaSetter(res.data.search);
             this.searchActiveTabSetter(res.data.search[0]);
             this.fetchingData = false;
+
+            const toast = useToast();
+            toast.add({
+              title: "Success",
+              description: "Your action was completed successfully.",
+              color: "success",
+            });
           })
           .catch((err) => {
             this.fetchingData = false;
           });
       }
     },
-    /**
-     *تنظیم آیتم مرتب‌ سازی  بر اساس کلید داده‌شده
-     * @param {string} [key="searchsort"] - کلید لیست مرتب‌ سازی. .
-     */
-    setSortList(key = "searchsort") {
-      // let key = "lasttitle";
-      // if (this.searchActiveTabGetter?.lists) {
-      //   let res = this.searchActiveTabGetter.lists.find(
-      //     (item) => item.list_key == key
-      //   );
-      //   if (res) key = res.list_key;
-      //   else key = this.searchActiveTabGetter.lists[0].list_key;
-      // }
-      // else this.activeSortItem = undefined;
-
-      this.sortKey = key;
-    },
-
-    //گشتم دیگه استفاده نداشت
-    // /**
-    //  * تغییر حالت نمایش برای لیست.
-    //  */
-    // changeDisplayMode() {
-    //   this.topRepeatInListMode = !this.topRepeatInListMode;
-    //   // ++this.rerenderChart;
-    // },
-
-    /**
-     * بررسی و انجام عملیات .لازم برای تغییر اندازه پنجره.
-     * @returns {boolean} اگر عرض پنجره کمتر از 992 پیکسل باشد، true برمی‌گرداند؛ در غیر این صورت false.
-     */
-    handleResize() {
-      return window.outerWidth < 992;
-
-      // if (this.windowWidth < 990) {
-      //   this.$store.commit("TOGGLE_SIDEBAR_MENU");
-      // }
-    },
-    // showFilterText(event) {
-    //   this.changePageFilter = event;
-    // },
-
-    /**
-     * تنظیم لیست‌های درختی بر اساس رویداد موردنظر.
-     * @param {*} event رویدادی که می‌خواهید برای تنظیم لیست‌های درختی استفاده کنید.
-     */
-    // treeListItem(event) {
-    //   this.treeLists = event;
-    // },
-
-    /**
-     * تغییر وضعیت نمایش فیلترها بر اساس رویداد ورودی.
-     * @param {number} event ورودی که مشخص می‌کند کدام عملیات باید انجام شود؛ 0 برای نمایش فیلترها و 1 برای مخفی کردن آن‌ها.
-     */
-    changeHideFilter(event) {
-      if (event === 0) {
-        this.$refs.axis.classList.remove("hiden");
-        this.$refs.showFilter.classList.toggle("d-none");
-
-        this.showButton = false;
-        // this.showFilter = true;
-      } else if (event === 1) {
-        this.$refs.axis.classList.add("hiden");
-        this.$refs.showFilter.classList.toggle("d-none");
-        this.showButton = true;
-        // this.showFilter = false;
-      }
-    },
-    changeType() {},
-    /**
-     * انجام عملیات مربوط به جستجو در حالت تایپ کردن.
-     */
-    searchTyping(evt) {
-      this.searchTypeItem = {};
-      this.searchTypeItem_subItem = undefined;
-
-      let searchType = this.searchActiveTabGetter?.searchType.find(
-        (i) => i.key == this.searchType
-      );
-
-      if (searchType.item) {
-        this.searchTypeItem = searchType;
-      } else {
-        this.searchType_lable = "عادی";
-        if (this.searchType == "and") this.searchType_lable = "ترکیب عطفی";
-        else if (this.searchType == "phrase")
-          this.searchType_lable = "جستجوی عبارتی = عین عبارت";
-        else if (this.searchType == "vector")
-          this.searchType_lable + "جستجوی معنایی هوشمند";
-
-        this.$refs.autoComplationRef.prevSearchStart();
-      }
-    },
-    /**
-     * انجام عملیات مربوط به جستجو در حالت تایپ کردن.
-     */
-    setSearchTypingItem(searchType) {
-      if (searchType.component == "SynonymSearch") this.showSynonymModal();
-      else if (searchType.key == "amplify") this.changeAmplify();
-    },
-    /**
-     * انجام عملیات مربوط به جستجو بر اساس کد.
-     */
-    searchCoding() {
-      // this.searchCodeKey = code;
-      this.$refs.autoComplationRef.prevSearchStart();
-    },
-    /**
-     * دریافت داده‌های Emplify از سرور.
-     */
-    async getEmplifyData() {
-      var vm = this;
-
-      let url = adminApi.admin.get.replace("{{system}}", "common");
-      url += "/search_amplify";
-
-      try {
-        const { $api } = useNuxtApp();
-        const res = await $api(url, {
-          baseURL: repoUrl(),
-        });
-        this.listAmplify = JSON.parse(res.data.hits.hits[0]._source.value);
-      } catch (err) {}
-    },
-    /**
-     * تغییر مقدار امپلیفای متناظر با انتخاب شده.
-     */
-    changeAmplify() {
-      if (
-        this.amplifyIndex != -1 &&
-        this.amplifyIndex < this.listAmplify.length
-      ) {
-        var text = this.listAmplify[this.amplifyIndex].keys;
-        this.textAmplify = text;
-      } else this.textAmplify = "";
-
-      this.filterUpdate(this.filterUrl);
-    },
-
-    /**
-     * جستجو بر اساس متن امپلیفای.
-     * @param {string} text متن جستجوی امپلیفای.
-     */
-    searchAmplify(text) {
-      this.textAmplify = text;
-      this.filterUpdate(this.filterUrl);
-    },
-
-    /**
-     * بازنشانی گزینه‌ها به وضعیت اولیه.
-     */
-    resetOptions() {
-      this.page = 0;
-      this.filterUrl = "";
-      this.$refs?.filterlist?.resetFilter();
-    },
-
-    /**
-     * نمایش فیلترها.
-     */
-    showfilter() {
-      this.$refs?.filterlist?.showfilter();
-    },
-
-    /**
-     * بررسی وضعیت واژه‌های چند کلمه ای در رشته جستجوی ورودی.
-     * @param {string} query_string رشته جستجوی ورودی.
-     */
-    checkMultiword(query_string) {
-      this.ismultword = true;
-      if (query_string == null || query_string == "") return;
-      var ww = query_string.split(" ");
-      this.iscode = /^\d+$/.test(query_string);
-      // if (this.iscode == false) this.ismultword = query_string.split(" ").length > 1;
-
-      // this.$refs.topheader?.setOptions(this.ismultword, this.iscode);
-      this.setOptions(this.ismultword, this.iscode);
-    },
-    /**
-     * تنظیم گزینه‌های جستجو.
-     * @param {boolean} isMulti وضعیت واژه‌های چندکلمه‌ای در رشته جستجوی ورودی.
-     * @param {boolean} isCode وضعیت کد بودن رشته جستجوی ورودی.
-     */
-    setOptions(isMulti, isCode = false) {
-      this.ismultiWord = isMulti;
-      if (this.ismultiWord == false) this.searchType = "typeNormal";
-      this.iscode = isCode;
-    },
-    /**
-     * شروع عملیات جستجو با رشته جستجوی ورودی.
-     * @param {string|null} query_string رشته جستجوی ورودی. اگر نال یا خالی باشد، عملیات جستجو بر اساس پارامترهای فیلتر شروع می‌شود.
-     */
-    searchStart(query_string = null) {
-      // وقتی از کامپوننت auto-complation فراخوانی بشه
-      if (typeof query_string == "object") {
-        query_string = query_string.textSearch;
-      }
-
-      if (query_string != null && query_string != "") {
-        query_string = query_string.trim();
-        this.setInputText(query_string);
-        this.checkMultiword(query_string);
-
-        history.pushState(
-          {},
-          document.title,
-          "/search" + "/?q=" + myEncodeQuery(query_string)
-        );
-      } else {
-        this.setInputText("");
-        this.setSortList("lasttitle");
-      }
-
-      // if (this.topRepeatInListMode)
-      //   this.$refs?.content?.setTextSearch(query_string, this.countInPage);
-
-      this.resetOptions();
-      this.getQuery();
-
-      // کار جستجوی بدون متن جستجو و با متن جستجو در یک متود قابل جمع بود
-      // لذا این حالت  بخاطر دوری از پیچیدگی حذف شد
-      // تست اولیه انجام شد و خوب کار میکرد
-      //  else {
-      //   this.setInputText("");
-      //   this.searchingState = false;
-      //   this.setSortList("lasttitle");
-      //   this.getDefaultByFilter();
-      // }
-
-      // if (this.textSearch != "") {
-      //   history.pushState(
-      //     {},
-      //     document.title,
-      //     "/search" + "/?q=" + myEncodeQuery(this.textSearch)
-      //   );
-      // } else history.pushState({}, document.title, "/search");
-    },
-    /**
-     * تنظیم کوئری پیشرفته برای جستجو.
-     * @param {string} query کوئری پیشرفته جستجو.
-     */
-    setQueryAdvanced(query) {
-      this.initText(query);
-      // if (this.$refs.topheader) {
-      //   this.$refs.topheader.setSearchLine(query);
-      // }
-    },
-    /**
-     * تغییر صفحه‌بندی.
-     * @param {number} item شماره صفحه جدید.
-     */
-    changePaging: function (item) {
-      this.pagination = item;
-
-      this.getQuery(true, false, this.sortKey);
-      // if (this.searchingState) this.getQuery(true, false, this.sortKey);
-      // else this.getDefaultByFilter();
-    },
-    /**
-     * پنهان کردن خلاصه.
-     */
-    hideSummary: function () {
-      this.showSummary = false;
-      // this.showTermSummary = false;
-    },
-    /**
-     * تغییر موقعیت فعلی.
-     * @param {any} item آیتم جدید.
-     */
-    changeCurrent: function (item) {
-      this.showSummary = false;
-      // if (this.$route.name == "termResult") {
-      //   this.changeCurrentTerm(item);
-      // }
-      // if (item == this.currentItem) this.showSummary = !this.showSummary;
-      // else this.showSummary = true;
-      this.$nextTick(() => {
-        this.showSummary = true;
-      });
-
-      this.currentItem = item;
-      if (this.$refs.summary) this.$refs.summary.setInfo(item);
-    },
-    /**
-     * به‌روزرسانی فیلترها و اجرای جستجو.
-     * @param {string} filter فیلتر جدید برای جستجو.
-     */
-    filterUpdate: function (filter) {
-      this.filterUrl = filter;
-      this.page = 0;
-      this.getQuery(false, true);
-      // if (this.searchingState) this.getQuery(false, true);
-      // else this.getDefaultByFilter();
-    },
-    /**
-     * دریافت نتایج جستجو بر اساس متغیرهای فعلی.
-     * @param {boolean} pageOnly اگر صحیح باشد، تنها صفحه‌بندی بروزرسانی می‌شود و جستجوی جدید انجام نمی‌شود.
-     * @param {boolean} filteronly اگر صحیح باشد، تنها فیلترها بروزرسانی می‌شوند و جستجوی جدید انجام نمی‌شود.
-     * @param {string} _sortKey کلید مرتب‌سازی مورد نظر.
-     */
-    async getQuery(pageOnly = false, filteronly = false, _sortKey = undefined) {
-      this.searchingState = false;
-
-      var vm = this;
-      this.loading = true;
-
-      let index_key = this.contentKey;
-      if (!index_key) return;
-
-      let query = "";
-
-      let payload = {};
-      //////////////// Synonym  /////////////////////
-      if (this.searchType == "synonym") {
-        let newSynonym = {};
-        this.sysnonymSearchQuery = "";
-        if (this.synonyms) {
-          Object.keys(this.synonyms).forEach((key, index) => {
-            if (
-              !(
-                "isStopWord" in this.synonyms[key] &&
-                this.synonyms[key]["isStopWord"]
-              )
-            ) {
-              newSynonym[key] = this.synonyms[key].value;
-              this.sysnonymSearchQuery += " " + key;
-            }
-          });
-        }
-
-        if (this.textSearch == "" || this.textSearch === undefined)
-          this.textSearch = this.sysnonymSearchQuery;
-
-        if (newSynonym) {
-          payload = {
-            synonym: newSynonym,
-          };
-        }
-      }
-      ///////////////////////////////////////////////////////
-      if (!(this.textSearch == "" || this.textSearch === undefined)) {
-        query = myEncodeQuery(this.textSearch);
-        this.domain_key = this.domainActiveGetter?.key;
-        if (this.domain_key && this.domain_key != "all") {
-          this.domain_lable = this.domainActiveGetter?.label;
-          query =
-            encodeURIComponent("#") +
-            this.domainActiveGetter?.tag +
-            " " +
-            query;
-        }
-      }
-
-      if (_sortKey == undefined) {
-        if (query) this.setSortList("searchsort");
-        else this.setSortList("lasttitle");
-      }
-
-      // var suburl = appName + index_key + "/";
-      // if (this.iscode) {
-      //   suburl += "code/" + this.searchCodeKey + "/";
-      // } else if (this.ismultword) {
-      //   if (this.searchType == "and") suburl += "and/";
-      //   else if (this.searchType == "phrase") suburl += "phrase/";
-      //   else if (this.searchType == "vector") suburl += "vector/";
-      // }
-
-      let filter = this.filterUrl;
-      if (this.searchActiveTabGetter?.key_filter) {
-        filter += this.searchActiveTabGetter?.key_filter;
-      }
-
-      if (this.textAmplify != undefined && this.textAmplify != "") {
-        filter += "&o_am=" + this.textAmplify;
-      }
-
-      // if (this.sortKey != undefined) finalUrl += this.sortKey;
-
-      if (!pageOnly) {
-        this.resetPagination();
-      }
-
-      let filterFull = "";
-      if (query) filterFull += "q=" + query;
-      filterFull += filter;
-
-      if (filterFull == "") filterFull = "none";
-
-      let field_collapse = this.domainActiveGetter?.field_collapse ?? "normal";
-
-      let url = searchApi.search.queryNormal;
-
-      url = url.replace("{{appname}}", buildName());
-      url = url.replace("{{index_key}}", index_key);
-      url = url.replace("{{search_type}}", this.searchType);
-      url = url.replace("{{sortKey}}", this.sortKey);
-      url = url.replace("{{field_collapse}}", field_collapse);
-      url = url.replace("{{offset}}", this.pagination.offset);
-      url = url.replace("{{limit}}", this.pagination.limit);
-      url = url.replace("{{filter}}", filterFull);
-
-      //تعیین فیلد کد خاص برای جستجو استفاده نداشت حذف شد
-      // if (this.iscode) url = url.replace("{{sub_key}}", this.searchCodeKey);
-      // else url = url.replace("/{{sub_key}}", "");
-
-      //this.addressBarUrl = "/q=" + query + filter;
-      try {
-        const { $api } = useNuxtApp();
-        const response = await $api(url, {
-          baseURL: repoUrl(),
-          method: "POST",
-          body: payload,
-        });
-        this.lists = response;
-        this.listAnswer = [];
-
-        let sug_items = this.lists?.data?.suggest?.result.find((item) => {
-          return item?.options.length > 0;
-        });
-        this.showSuggestion = sug_items ? true : false;
-        this.searchingState = !(
-          this.textSearch == "" || this.textSearch === undefined
-        );
-        vm.loading = false;
-
-        vm.total_answer = response.hits.total.value;
-        this.$refs.filterlist?.setAnswer(response.aggregations);
-        this.listAnswer = response?.hits?.hits;
-        if (this.listAnswer.length) {
-          this.listAnswer.forEach((item) => {
-            if (
-              !item._source.qanon_etebar ||
-              item._source.qanon_etebar === ""
-            ) {
-              item._source.qanon_etebar = "معتبر";
-            }
-          });
-        }
-        //vm.initNormalRespone(response, pageOnly, filteronly);
-
-        const total = response.hits.total.value;
-
-        let pages = Math.ceil(total / this.pagination.limit);
-        // pages = (total % this.pagination.limit == 0 && totla !=0 ) ? pages : pages-1;
-        const pagination = {
-          total: total,
-          pages: pages == 0 ? 1 : pages,
-        };
-
-        this.pagination = { ...this.pagination, ...pagination };
-
-        if (!pageOnly && vm.textSearch) {
-          LogService.index(
-            this.currentUser,
-            vm.textSearch,
-            vm.page,
-            vm.filterUrl,
-            response.took
-          );
-        }
-      } catch (err) {
-        vm.loading = false;
-        this.searchingState = false;
-      }
-    },
-    /**
-     * تنظیم مورد انتخابی مرتب‌سازی و اجرای عملیات مرتب‌سازی.
-     * @param {Object} item آیتم مرتب‌سازی انتخاب شده.
-     */
-    setSortListDropDown(key, title = "") {
-      // کلید انتخاب شده از لیست
-      let item = key;
-
-      // در صورتی که کلید انتخاب نشده باشد، مقدار پیش‌فرض "lasttitle" تنظیم می‌شود
-      this.sortKey = item ?? "lasttitle";
-
-      // گرفتن مقادیر جدید بر اساس کلید انتخاب‌شده
-      this.getQuery(true, false, this.sortKey);
-    },
-    /**
-     * دریافت نتایج جستجو بر اساس فیلترها و مرتب‌سازی پیشفرض.
-     * @param {string|null} _sortKey کلید مرتب‌سازی مورد نظر. اگر مقداردهی نشود، از مرتب‌سازی پیشفرض استفاده می‌شود.
-     * @param {boolean} pageOnly اگر صحیح باشد، تنها صفحه‌بندی بروزرسانی می‌شود و جستجوی جدید انجام نمی‌شود.
-     * @param {boolean} filteronly اگر صحیح باشد، تنها فیلترها بروزرسانی می‌شوند و جستجوی جدید انجام نمی‌شود.
-     */
-
-    /**
-     * پاسخ به درخواست جستجوی عادی را مقداردهی می‌کند.
-     * @param {Object} response پاسخ دریافتی از سرویس جستجو.
-     * @param {boolean} pageOnly اگر صحیح باشد، تنها صفحه‌بندی بروزرسانی می‌شود و اطلاعات نمایشی تغییر نمی‌کند.
-     * @param {boolean} filteronly اگر صحیح باشد، تنها فیلترها بروزرسانی می‌شوند و اطلاعات نمایشی تغییر نمی‌کند.
-     */
-    initNormalRespone(response, pageOnly, filteronly) {
-      let listAnswer = response.data?.hits?.hits;
-      //در صورت خالی بودن qanon_etebar مقدار را مساوی  معتبر میکنه
-      listAnswer.forEach((item) => {
-        if (!item._source.qanon_etebar || item._source.qanon_etebar === "") {
-          item._source.qanon_etebar = "معتبر";
-        }
-      });
-
-      if (pageOnly) {
-        this.$refs.content?.setAnswer(
-          listAnswer,
-          response.data.hits.total.value
-        );
-      } else if (filteronly) {
-        this.$refs.content?.setAnswer(
-          listAnswer,
-          response.data.hits.total.value,
-          response.data.hits.total.relation
-        );
-        this.$refs.filterlist?.setAnswer(response.data.aggregations);
-      } else {
-        this.$refs.content?.setAnswer(
-          listAnswer,
-          response.data.hits?.total.value,
-          response.data.hits?.total.relation
-        );
-        this.$refs.filterlist?.setAnswer(response.data.aggregations);
-      }
-    },
-    /**
-     * پاسخ به درخواست جستجوی مفهومی را مقداردهی می‌کند.
-     * @param {Object} response پاسخ دریافتی از سرویس جستجو.
-     * @param {boolean} pageOnly اگر صحیح باشد، تنها صفحه‌بندی بروزرسانی می‌شود و اطلاعات نمایشی تغییر نمی‌کند.
-     * @param {boolean} filteronly اگر صحیح باشد، تنها فیلترها بروزرسانی می‌شوند و اطلاعات نمایشی تغییر نمی‌کند.
-     */
-    // initTermRespone(response, pageOnly, filteronly) {
-    //   if (pageOnly) {
-    //     this.$refs.content?.setAnswer(
-    //       response.data.aggregations.branch.buckets,
-    //       response.data.hits.total.value
-    //     );
-    //   } else if (filteronly) {
-    //     this.$refs.content?.setAnswer(
-    //       response.data.aggregations.branch.buckets,
-    //       response.data.hits.total.value,
-    //       response.data.hits.total.relation
-    //     );
-    //     this.$refs.filterlist?.setAnswer(response.data.aggregations);
-    //   } else {
-    //     this.$refs.content?.setAnswer(
-    //       response.data.aggregations.branch.buckets,
-    //       response.data.hits.total.value,
-    //       response.data.hits.total.relation
-    //     );
-    //     response.data.aggregations.branch.buckets = [];
-    //     this.$refs.filterlist?.setAnswer(response.data.aggregations);
-    //   }
-    // },
-    /**
-     * تغییرات در لیست برچسب‌ها را اعمال می‌کند و فیلترهای مربوطه را تنظیم می‌کند.
-     * @param {string} tags رشته‌ای که شامل برچسب‌های مورد نظر است.
-     */
-    listChanged(tags) {
-      let res = [];
-      tags.split(",").forEach((e) => {
-        let i = e.lastIndexOf("_");
-        if (i != -1) {
-          res.push(e.substring(0, i));
-        }
-      });
-      this.setFilterNavigate(res);
-      // this.$refs.topheader.setFilterNavigate(res);
-    },
-    /**
-     * بازنشانی مقادیر و نمایش مجدد لیست نتایج و فیلترها.
-     * @param {Object} list لیست دریافتی از سرویس جستجو.
-     */
-    againsetlist(list) {
-      this.$refs.content?.setAnswer(
-        // this.lists.data.aggregations.branch.buckets,
-        this.lists.data.hits.hits,
-        this.lists.data.hits.total.value,
-        this.lists.data.hits.total.relation
-      );
-      this.$refs.filterlist?.setAnswer(this.lists.data.aggregations);
-    },
-    /**
-     * بازنشانی اطلاعات صفحه‌بندی به حالت اولیه.
-     */
-    resetPagination() {
-      this.pagination = {
-        pages: 0,
-        total: 0,
-        page: 1,
-        offset: 0,
-        limit: this.viewMode == "table" ? 25 : 10,
-      };
-    },
-    /**
-     * بستن قسمت جستجوی پیشرفته.
-     */
-    closeAdvancedSearch() {
-      this.displayAdvanceSearch = false;
-      this.currentPanel = null;
-      this.domainActiveSetter(this.searchDomain[0]);
-    },
-    /**
-     * نمایش یا مخفی کردن قسمت جستجوی پیشرفته بسته به وضعیت کنونی.
-     */
-    showAdvancedSearch() {
-      if (this.displayAdvanceSearch) {
-        this.displayAdvanceSearch = false;
-      } else {
-        this.displayAdvanceSearch = true;
-      }
-    },
-    /**
-     * بررسی اینکه آیا هیچ پاسخی در نتیجه جستجو وجود دارد یا خیر.
-     * @returns {boolean} اگر در جستجو هیچ پاسخی وجود داشته باشد، true برگردانده می‌شود؛ در غیر این صورت false.
-     */
-    showNoAnswer() {
-      if (this.searchingState) {
-        return this.total_answer == 0;
-      }
-      return false;
-    },
-    /**
-     * بررسی اینکه آیا کاربر می‌تواند یک عملیات خاص را انجام دهد یا خیر.
-     * @param {string} keyName نام کلید مربوطه که نشان دهنده مجوز عملیات است.
-     * @returns {boolean} اگر کاربر می‌تواند عملیات را انجام دهد، true برگردانده می‌شود؛ در غیر این صورت false.
-     */
-    canSee(keyName) {
-      if (this.currentUser?.user_level > 1) return true;
-      return this.userPermisionGetter.includes(keyName);
-    },
-    /**
-     * تولید متن HTML برای نمایش توضیحات ابزار نشانگر براساس بخش و کلید داده شده.
-     * @param {string} section بخش مربوطه از توضیحات (مثلاً "search" یا "entity").
-     * @param {string} key کلید مربوطه به توضیحات (مثلاً "search_type" یا "search_sort").
-     * @param {string} id شناسه مربوط به توضیحات، اختیاری است.
-     * @returns {string} متن HTML نمایشی برای توضیحات ابزار نشانگر.
-     */
-    getHtmlTooltip2(section, key, id) {
-      let res = "";
-      let link = "";
-      if (id) link = location.origin + "/pages/help/" + section + "/" + id;
-
-      if (section == "search") {
-        if (key == "search_type") {
-          res = `<p class="mb-2">برای یافتن بهترین پاسخ، روش جستجو را تعیین می‌کند</p>`;
-        } else if (key == "search_sort") {
-          res = `<p class="mb-2">ترتیب نمایش فهرست قبل و بعد از جستجو را تعیین می کند</p>`;
-        } else if (key == "search_advance") {
-          res = `<p class="mb-2">امکانات ویژه جهت جستجو در ویژگی های همراه متن در اختیار می گذارد </p>`;
-        }
-      }
-
-      if (section == "entity") {
-      }
-
-      if (res != "" && link != "")
-        res += `<a class="btn btn-link" target="_blank" href="${link}"> بیشتر ... </a>`;
-
-      return res;
-    },
   },
   components: {
     AutoComplation: defineAsyncComponent(() =>
-      import("@search/components/global/AutoComplation.vue")
+      import("@hadith/components/hadith/AutoComplation.vue")
     ),
-    MyContent: defineAsyncComponent(() =>
-      import("@search/components/search/MyContent.vue")
-    ),
-    FilterListSearch: defineAsyncComponent(() =>
-      import("@search/components/search/view/FilterListSearch.vue")
-    ),
-    SwitchComponent: defineAsyncComponent(() =>
-      import("~/components/global/SwitchComponent.vue")
-    ),
-    SynonymSearch: defineAsyncComponent(() =>
-      import("@search/components/search/forms/SynonymSearch.vue")
-    ),
-    AdvancedSearch: defineAsyncComponent(() =>
-      import("@search/components/search/view/SearchAdvancedSearch.vue")
-    ),
-    TripleSwitch: defineAsyncComponent(() =>
-      import("~/components/global/TripleSwitch.vue")
-    ),
-    SearchLayout: defineAsyncComponent(() =>
-      import("@search/layouts/SearchLayout.vue")
-    ),
-    SwitchWithIcon: defineAsyncComponent(() =>
-      import("@components/other/SwitchWithIcon.vue")
-    ),
-    SearchSummary: defineAsyncComponent(() =>
-      import("@search/components/search/view/SearchSummary.vue")
+    HadithLayout: defineAsyncComponent(() =>
+      import("@hadith/layouts/HadithLayout.vue")
     ),
   },
 };
diff --git a/stores/hadithStore.ts b/stores/hadithStore.ts
index 1116f93..19a4188 100644
--- a/stores/hadithStore.ts
+++ b/stores/hadithStore.ts
@@ -23,7 +23,7 @@ import type {
   selectedProject,
 } from "~/types/listTypes";
 
-export const useSearchStore = defineStore("searchStore", {
+export const useHadithStore = defineStore("hadithStore", {
   persist: {
     storage: piniaPluginPersistedstate.localStorage(),
   },  state: () => ({