Merge branch 'feature/20250910-all' into feature/20250916_cl

This commit is contained in:
clkim
2025-09-16 15:26:44 +09:00
25 changed files with 58 additions and 37 deletions

View File

@@ -21,34 +21,55 @@ repo/
│ ├── assets/
│ │ └── css/
│ ├── components/
│ │ ├── atoms/
│ │ ├── layout/
│ │ │ ├── default/
│ │ │ └── StoveGnb.vue
│ │ ├── molecules/
│ │ └── templates/
│ │ ├── atoms/ # 기본 UI 컴포넌트
│ │ │ ├── Button.vue
│ │ │ ├── LocaleLink.vue
│ │ │ └── icons/
│ │ │ ├── ArrowDown.vue
│ │ │ ├── LinkOut.vue
│ │ │ └── Star.vue
│ │ ├── blocks/ # 복합 컴포넌트
│ │ │ ├── HybridLink.vue
│ │ │ ├── loading/
│ │ │ ├── modal/
│ │ │ ├── StoveGnb.vue
│ │ │ └── VisualContent.vue
│ │ ├── layouts/ # 레이아웃 컴포넌트
│ │ │ ├── Footer.vue
│ │ │ ├── Header.vue
│ │ │ └── Main.vue
│ │ └── widgets/ # 템플릿용 공통 위젯
│ │ ├── Background.vue
│ │ ├── MainTitle.vue
│ │ ├── SubTitle.vue
│ ├── composables/
│ ├── layouts/
│ │ ├── default.vue
│ │ └── promotion.vue
│ ├── middleware/
│ │ ├── init.route.global.ts
│ │ └── pageData.global.ts
│ ├── nuxt.config.ts
│ ├── plugins/
│ ├── public/
│ │ └── images/
│ ├── registry/
│ │ └── index.ts
│ ├── server/
│ │ ├── api/
│ │ ── middleware/
│ │ ── middleware/
│ │ └── routes/
│ ├── stores/
│ ├── templates/
│ │ ├── GrVisual01/
│ │ ├── GrVisual02/
│ │ └── GrVisual03/
│ │ ├── GrVisual01
│ │ ├── GrVisual02
│ │ └── GrVisual03
│ ├── types/
│ │ ── api/
│ │ └── utils/
│ │ ── api/
│ │ ├── gameData.ts
│ │ └── pageData.ts
│ └── utils/
├── i18n/
│ └── locales/
├── node_modules/
├── nuxt.config.ts
├── package.json

View File

@@ -3,15 +3,15 @@
<h1 class="sr-only">dddd</h1>
<NuxtPage />
<MoleculesLoadingFull />
<MoleculesLoadingLocal />
<LoadingFull />
<LoadingLocal />
</NuxtLayout>
</template>
<script setup lang="ts">
import { useNuxtApp } from 'nuxt/app'
import MoleculesLoadingFull from '#layers/components/molecules/loading/Full.vue'
import MoleculesLoadingLocal from '#layers/components/molecules/loading/Local.vue'
import LoadingFull from '#layers/components/blocks/loading/Full.vue'
import LoadingLocal from '#layers/components/blocks/loading/Local.vue'
import { useGameDataStore } from '#layers/stores/useGameDataStore'
import type { GameDataMetaTag, GameDataValue } from '#layers/types/api/gameData'

View File

@@ -33,7 +33,7 @@ watchEffect(() => {
<template>
<NuxtLayout :name="layout">
<ClientOnly>
<BlocksMain :templates="pageData?.templates ?? []" />
<LayoutsMain :templates="pageData?.templates ?? []" />
</ClientOnly>
</NuxtLayout>
</template>

View File

@@ -33,7 +33,7 @@ watchEffect(() => {
<template>
<NuxtLayout :name="layout">
<ClientOnly>
<BlocksMain :templates="pageData?.templates ?? []" />
<LayoutsMain :templates="pageData?.templates ?? []" />
</ClientOnly>
</NuxtLayout>
</template>

View File

@@ -33,7 +33,7 @@ watchEffect(() => {
<template>
<NuxtLayout :name="layout">
<ClientOnly>
<BlocksMain :templates="pageData?.templates ?? []" />
<LayoutsMain :templates="pageData?.templates ?? []" />
</ClientOnly>
</NuxtLayout>
</template>

View File

@@ -42,7 +42,7 @@ watchEffect(() => {
<template>
<NuxtLayout :name="layout">
<ClientOnly>
<BlocksMain :templates="pageData?.templates ?? []" />
<LayoutsMain :templates="pageData?.templates ?? []" />
</ClientOnly>
</NuxtLayout>
</template>

View File

@@ -114,7 +114,7 @@
<script setup lang="ts">
import { useI18n } from 'vue-i18n'
import { useGameDataStore } from '#layers/stores/useGameDataStore'
import LanguageSwitcher from '#layers/components/molecules/LanguageSwitcher.vue'
import LanguageSwitcher from '#layers/components/blocks/LanguageSwitcher.vue'
const { t, locale } = useI18n()
const gameDataStore = useGameDataStore()

View File

@@ -150,7 +150,7 @@
<div
class="language-area absolute bottom-7 right-10 text-white md:bottom-5.5 md:right-4"
>
<MoleculesLanguageSwitcher />
<BlocksLanguageSwitcher />
<!-- <SelectLanguage /> -->
<!-- <AtomsLanguageSwitcher /> -->

View File

@@ -12,7 +12,7 @@ const gnbList = gameData?.gnb?.menus as GameDataGnb['menus']
<header
class="bg-theme-foreground text-theme-foreground-reversal relative z-50"
>
<MoleculesStoveGnb />
<BlocksStoveGnb />
<div
data-name="header-game"
class="px-[40px] h-16 flex items-center whitespace-nowrap"
@@ -37,7 +37,7 @@ const gnbList = gameData?.gnb?.menus as GameDataGnb['menus']
class="relative group"
>
<!-- Link 컴포넌트 사용 -->
<MoleculesHybridLink
<BlocksHybridLink
:to="gnbItem.url_path"
:target="gnbItem.link_target"
class="relative flex items-center h-[64px]"
@@ -47,7 +47,7 @@ const gnbList = gameData?.gnb?.menus as GameDataGnb['menus']
<span
class="absolute bottom-0 left-0 w-full h-2 border-b-2 border-transparent transition-border-color group-hover:border-theme-foreground-reversal group-active:border-theme-foreground-reversal-10"
/>
</MoleculesHybridLink>
</BlocksHybridLink>
<div
v-if="gnbItem.children"
class="absolute top-full left-[-28px] min-w-[190px] pt-[4px] pointer-events-none group-hover:pointer-events-auto"
@@ -57,7 +57,7 @@ const gnbList = gameData?.gnb?.menus as GameDataGnb['menus']
>
<li v-for="child in gnbItem.children" :key="child.menu_name">
<!-- Link 컴포넌트 사용 -->
<MoleculesHybridLink
<BlocksHybridLink
:to="child.url_path"
:target="child.link_target"
class="flex items-center px-4 py-[9px] rounded-[12px] transition-background hover:bg-theme-foreground-reversal-40 active:bg-theme-foreground-reversal-70"
@@ -67,7 +67,7 @@ const gnbList = gameData?.gnb?.menus as GameDataGnb['menus']
v-if="child.link_target === '_blank'"
class="ml-1"
/>
</MoleculesHybridLink>
</BlocksHybridLink>
</li>
</ul>
</div>

View File

@@ -19,7 +19,7 @@ const imageSrc = getResponsiveSrc(resourcesData.value?.res_path)
</script>
<template>
<MoleculesVisualContent
<BlocksVisualContent
tag="p"
:text="displayText"
:image-src="imageSrc as any"

View File

@@ -19,7 +19,7 @@ const imageSrc = getResponsiveSrc(resourcesData.value?.res_path)
</script>
<template>
<MoleculesVisualContent
<BlocksVisualContent
tag="h2"
:text="displayText"
:image-src="imageSrc as any"

View File

@@ -19,7 +19,7 @@ const imageSrc = getResponsiveSrc(resourcesData.value?.res_path)
</script>
<template>
<MoleculesVisualContent
<BlocksVisualContent
tag="h3"
:text="displayText"
:image-src="imageSrc as any"

View File

@@ -2,8 +2,8 @@
<template>
<div>
<BlocksDefaultHeader />
<LayoutsHeader />
<slot />
<BlocksDefaultFooter />
<LayoutsFooter />
</div>
</template>

View File

@@ -1,6 +1,6 @@
import GrVisual01 from '#layers/components/templates/GrVisual01/index.vue'
import GrVisual02 from '#layers/components/templates/GrVisual02/index.vue'
import GrVisual03 from '#layers/components/templates/GrVisual03/index.vue'
import GrVisual01 from '#layers/templates/GrVisual01/index.vue'
import GrVisual02 from '#layers/templates/GrVisual02/index.vue'
import GrVisual03 from '#layers/templates/GrVisual03/index.vue'
// import GrGallery01 from "#layers/templates/GrGallery01/index.vue";
// import GrGallery02 from "#layers/templates/GrGallery02/index.vue";
// import GrGallery03 from "#layers/templates/GrGallery03/index.vue";

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import YouTubeModal from '#layers/components/molecules/modal/YouTubeModal.vue'
import YouTubeModal from '#layers/components/blocks/modal/YouTube.vue'
interface Props {
components: Record<string, any>