Skip to content

Commit 37f1f29

Browse files
authored
Merge pull request #139 from soranjiro/fix/standard-season
feat: standard-season
2 parents 26ae02b + d72a07e commit 37f1f29

75 files changed

Lines changed: 7966 additions & 139 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,5 +164,5 @@ apps/web/static/docs/
164164
**/blob-report/
165165
**/playwright/.cache/
166166

167-
# Partytown (generated from @builder.io/partytown)
167+
# Partytown (generated from @qwik.dev/partytown)
168168
apps/web/static/~partytown/

apps/web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"mapbox-gl": "^3.17.0"
2222
},
2323
"devDependencies": {
24-
"@builder.io/partytown": "^0.10.3",
24+
"@qwik.dev/partytown": "^0.11.2",
2525
"@cloudflare/workers-types": "^4.20250110.0",
2626
"@playwright/test": "^1.57.0",
2727
"@sveltejs/adapter-cloudflare": "^4.7.4",

apps/web/src/app.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<meta name="description" content="旅のしおりをサクッと作成・共有できる無料Webアプリ。テーマをカスタマイズして、友達や家族との旅行計画をまとめましょう。アカウント登録不要で今すぐ始められます。" />
88
<meta name="keywords" content="旅行, しおり, 旅のしおり, 旅行計画, 無料, Webアプリ, 旅行管理, 行程管理" />
99
<meta name="theme-color" content="#f9fafb" />
10+
<meta name="mobile-web-app-capable" content="yes" />
1011
<meta name="apple-mobile-web-app-capable" content="yes" />
1112
<meta name="apple-mobile-web-app-status-bar-style" content="light" />
1213
<meta name="apple-mobile-web-app-title" content="たびたび" />

apps/web/src/lib/auth/index.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { ShioriHistory } from '@tabitabi/types';
2+
import { replaceState } from '$app/navigation';
23

34
const STORAGE_KEY = 'shiori_history';
45

@@ -94,7 +95,13 @@ export const auth = {
9495
const newUrl = params.toString()
9596
? `${window.location.pathname}?${params.toString()}`
9697
: window.location.pathname;
97-
window.history.replaceState({}, '', newUrl);
98+
99+
try {
100+
replaceState('', newUrl);
101+
} catch (e) {
102+
// In SSR context, replaceState may not be available
103+
// but we're in a browser context when this runs
104+
}
98105
}
99106

100107
return token;

apps/web/src/lib/demo/demoData.test.ts

Lines changed: 0 additions & 108 deletions
This file was deleted.

apps/web/src/lib/demo/demoData.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ type DemoDataLoader = () => Promise<{ getDemoData: () => DemoDataSet }>;
77
const demoDataLoaders: Record<AvailableTheme, DemoDataLoader> = {
88
'map-only': () => import('$lib/themes/map-only/demo-data'),
99
'mapbox-journey': () => import('$lib/themes/mapbox-journey/demo-data'),
10-
'standard-autumn': () => import('$lib/themes/standard-autumn/demo-data'),
10+
'standard-spring': () => import('$lib/themes/standard-seasons/spring/demo-data'),
11+
'standard-summer': () => import('$lib/themes/standard-seasons/summer/demo-data'),
12+
'standard-autumn': () => import('$lib/themes/standard-seasons/autumn/demo-data'),
13+
'standard-winter': () => import('$lib/themes/standard-seasons/winter/demo-data'),
1114
'ai-generated': () => import('$lib/themes/ai-generated/demo-data'),
1215
'shopping': () => import('$lib/themes/shopping/demo-data'),
1316
'pixel-quest': () => import('$lib/themes/pixel-quest/demo-data'),

apps/web/src/lib/themes/ai-generated/demo-data.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export function getDemoData(): DemoDataSet {
7777
},
7878
itinerary_walica_settings: {
7979
itinerary_id: 'demo',
80-
walica_id: 'https://walica.jp/group/01KBTSYADVKY8HPQ1CHRHTNG19',
80+
walica_id: '01KBTSYADVKY8HPQ1CHRHTNG19',
8181
created_at: now,
8282
updated_at: now,
8383
},

apps/web/src/lib/themes/catalog.ts

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ export const defaultThemeId = "standard-autumn" as const;
33
export const availableThemes = [
44
"map-only",
55
"mapbox-journey",
6+
"standard-spring",
7+
"standard-summer",
68
"standard-autumn",
9+
"standard-winter",
710
"ai-generated",
811
"shopping",
912
"pixel-quest",
@@ -18,11 +21,29 @@ const THEME_CATALOG: Array<{
1821
description: string;
1922
phrase: string;
2023
}> = [
24+
{
25+
id: "standard-spring",
26+
name: "標準(春)",
27+
description: "やさしく、かわいらしい",
28+
phrase: "春の旅",
29+
},
30+
{
31+
id: "standard-summer",
32+
name: "標準(夏)",
33+
description: "爽やかで涼しい",
34+
phrase: "夏の旅",
35+
},
2136
{
2237
id: "standard-autumn",
23-
name: "標準",
24-
description: "モチーフ秋",
25-
phrase: "旅行のしおり",
38+
name: "標準(秋)",
39+
description: "温かみがあり、落ち着いている",
40+
phrase: "秋の旅",
41+
},
42+
{
43+
id: "standard-winter",
44+
name: "標準(冬)",
45+
description: "静寂で、凛とした雰囲気",
46+
phrase: "冬の旅",
2647
},
2748
{
2849
id: "shopping",

apps/web/src/lib/themes/index.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,14 @@ export async function loadTheme(themeId: string): Promise<Theme> {
1414
return (await import("./map-only")).default;
1515
case "mapbox-journey":
1616
return (await import("./mapbox-journey")).default;
17+
case "standard-spring":
18+
return (await import("./standard-seasons/spring")).default;
19+
case "standard-summer":
20+
return (await import("./standard-seasons/summer")).default;
1721
case "standard-autumn":
18-
return (await import("./standard-autumn")).default;
22+
return (await import("./standard-seasons/autumn")).default;
23+
case "standard-winter":
24+
return (await import("./standard-seasons/winter")).default;
1925
case "ai-generated":
2026
return (await import("./ai-generated")).default;
2127
case "shopping":
@@ -25,7 +31,7 @@ export async function loadTheme(themeId: string): Promise<Theme> {
2531
case "sauna-rally":
2632
return (await import("./sauna-rally")).default;
2733
default:
28-
return (await import("./standard-autumn")).default;
34+
return (await import("./standard-seasons/autumn")).default;
2935
}
3036
}
3137

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import type { ThemeConfig } from "@tabitabi/types";
2+
3+
export const seasonAutumnTheme: ThemeConfig = {
4+
id: "standard-autumn",
5+
name: "標準(秋)",
6+
version: "1.0.0",
7+
description: "温かみと落ち着きのある秋のテーマ",
8+
author: "Tabitabi Team",
9+
features: {
10+
steps: { enabled: true, required: true },
11+
memo: { enabled: true },
12+
checklist: { enabled: false },
13+
budget: { enabled: false },
14+
map: { enabled: false },
15+
},
16+
ui: {
17+
layout: "single",
18+
colorScheme: "light",
19+
customColors: {
20+
primary: "#8b2e1f",
21+
secondary: "#d89f2e",
22+
background: "#faf5f0",
23+
text: "#3a2d25",
24+
accent: "#c46b1f",
25+
},
26+
},
27+
};

0 commit comments

Comments
 (0)