diff --git a/.gitignore b/.gitignore index a0377b4..e2d0e80 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ dist-ssr *.njsproj *.sln *.sw? + +.claude/ diff --git a/dev_error.txt b/dev_error.txt deleted file mode 100644 index e69de29..0000000 diff --git a/dev_output.txt b/dev_output.txt deleted file mode 100644 index 1ef6f50..0000000 --- a/dev_output.txt +++ /dev/null @@ -1,11 +0,0 @@ - -> map-journal@0.0.0 dev -> vite - -Port 5173 is in use, trying another one... -Port 5174 is in use, trying another one... - - VITE v8.0.15 ready in 1792 ms - - ➜ Local: http://localhost:5175/ - ➜ Network: use --host to expose diff --git a/package-lock.json b/package-lock.json index 15fe377..94437e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,6 @@ "dependencies": { "d3": "^7.9.0", "firebase": "^12.14.0", - "flag-icons": "^7.5.0", "html-to-image": "^1.11.13", "topojson-client": "^3.1.0", "world-atlas": "^2.0.2" @@ -2336,12 +2335,6 @@ "@firebase/util": "1.15.1" } }, - "node_modules/flag-icons": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/flag-icons/-/flag-icons-7.5.0.tgz", - "integrity": "sha512-kd+MNXviFIg5hijH766tt+3x76ele1AXlo4zDdCxIvqWZhKt4T83bOtxUOOMlTx/EcFdUMH5yvQgYlFh1EqqFg==", - "license": "MIT" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", diff --git a/package.json b/package.json index 2d09a8b..c8b3512 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "dependencies": { "d3": "^7.9.0", "firebase": "^12.14.0", - "flag-icons": "^7.5.0", "html-to-image": "^1.11.13", "topojson-client": "^3.1.0", "world-atlas": "^2.0.2" diff --git a/src/App.svelte b/src/App.svelte index 3686922..1e2f8e5 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -117,12 +117,12 @@ bottom: 24px; right: 24px; z-index: 10; - padding: 12px 28px; - border-radius: 24px; + padding: 10px 22px; + border-radius: 20px; border: none; background: #8b5cf6; color: #fff; - font-size: 15px; + font-size: 14px; font-weight: 500; gap: 6px; cursor: pointer; diff --git a/src/assets/logo-1-cursor.png b/src/assets/logo-1-cursor.png deleted file mode 100644 index 5ef6f48..0000000 Binary files a/src/assets/logo-1-cursor.png and /dev/null differ diff --git a/src/assets/logo-1.png b/src/assets/logo-1.png deleted file mode 100644 index 021a88f..0000000 Binary files a/src/assets/logo-1.png and /dev/null differ diff --git a/src/assets/logo-2.png b/src/assets/logo-2.png deleted file mode 100644 index b75a85b..0000000 Binary files a/src/assets/logo-2.png and /dev/null differ diff --git a/src/assets/logo.png b/src/assets/logo.png deleted file mode 100644 index 6b6a1fc..0000000 Binary files a/src/assets/logo.png and /dev/null differ diff --git a/src/lib/firebase.js b/src/lib/firebase.js index 644d57d..ce4f456 100644 --- a/src/lib/firebase.js +++ b/src/lib/firebase.js @@ -12,7 +12,7 @@ const firebaseConfig = { appId: import.meta.env.VITE_FIREBASE_APP_ID, }; -export const app = initializeApp(firebaseConfig); +const app = initializeApp(firebaseConfig); export const auth = getAuth(app); export const db = getFirestore(app); export const storage = getStorage(app); diff --git a/src/lib/layout/Footer.svelte b/src/lib/layout/Footer.svelte deleted file mode 100644 index d2517b1..0000000 --- a/src/lib/layout/Footer.svelte +++ /dev/null @@ -1,25 +0,0 @@ - - - - - diff --git a/src/lib/layout/selection.svelte.js b/src/lib/layout/selection.svelte.js index 7d5a3cb..18e434e 100644 --- a/src/lib/layout/selection.svelte.js +++ b/src/lib/layout/selection.svelte.js @@ -1,4 +1,4 @@ -import { journals } from '../stores/journalStore.js'; +import { journals } from '../stores/entriesStore.svelte.js'; import { nameToId } from '../shared/countries.js'; import { getUserProfile } from '../auth/userStore.svelte.js'; diff --git a/src/lib/shared/PhotoGallery.svelte b/src/lib/shared/PhotoGallery.svelte deleted file mode 100644 index aa14030..0000000 --- a/src/lib/shared/PhotoGallery.svelte +++ /dev/null @@ -1,167 +0,0 @@ - - -{#if photos.length > 0} - -{/if} - - diff --git a/src/lib/shared/countryCities.js b/src/lib/shared/countryCities.js deleted file mode 100644 index 1862d34..0000000 --- a/src/lib/shared/countryCities.js +++ /dev/null @@ -1,184 +0,0 @@ -export const countryCities = { - 'Afghanistan': ['Kabul','Kandahar','Herat','Mazar-i-Sharif','Jalalabad'], - 'Albania': ['Tirana','Durrës','Vlorë','Shkodër','Elbasan'], - 'Algeria': ['Algiers','Oran','Constantine','Annaba','Blida'], - 'Andorra': ['Andorra la Vella','Escaldes-Engordany','Encamp'], - 'Angola': ['Luanda','Huambo','Lobito','Benguela','Lubango'], - 'Argentina': ['Buenos Aires','Córdoba','Rosario','Mendoza','Bariloche','Salta','Mar del Plata'], - 'Armenia': ['Yerevan','Gyumri','Vanadzor'], - 'Australia': ['Sydney','Melbourne','Brisbane','Perth','Adelaide','Gold Coast','Cairns','Darwin','Hobart','Canberra'], - 'Austria': ['Vienna','Salzburg','Graz','Innsbruck','Linz','Hallstatt'], - 'Azerbaijan': ['Baku','Ganja','Sumqayit'], - 'Bahamas': ['Nassau','Freeport'], - 'Bahrain': ['Manama','Riffa','Muharraq'], - 'Bangladesh': ['Dhaka','Chittagong','Sylhet','Rajshahi','Khulna'], - 'Barbados': ['Bridgetown'], - 'Belarus': ['Minsk','Gomel','Brest','Grodno'], - 'Belgium': ['Brussels','Bruges','Ghent','Antwerp','Liège'], - 'Belize': ['Belize City','San Ignacio','Placencia'], - 'Benin': ['Cotonou','Porto-Novo','Abomey'], - 'Bhutan': ['Thimphu','Paro','Punakha'], - 'Bolivia': ['La Paz','Santa Cruz','Cochabamba','Sucre','Uyuni'], - 'Bosnia and Herz.': ['Sarajevo','Mostar','Banja Luka'], - 'Botswana': ['Gaborone','Francistown','Maun'], - 'Brazil': ['São Paulo','Rio de Janeiro','Brasília','Salvador','Fortaleza','Manaus','Recife','Florianópolis','Foz do Iguaçu'], - 'Brunei': ['Bandar Seri Begawan'], - 'Bulgaria': ['Sofia','Plovdiv','Varna','Burgas','Ruse'], - 'Burkina Faso': ['Ouagadougou','Bobo-Dioulasso'], - 'Burundi': ['Bujumbura','Gitega'], - 'Cabo Verde': ['Praia','Mindelo'], - 'Cambodia': ['Phnom Penh','Siem Reap','Sihanoukville','Battambang'], - 'Cameroon': ['Yaoundé','Douala','Bafoussam'], - 'Canada': ['Toronto','Vancouver','Montreal','Calgary','Ottawa','Edmonton','Quebec City','Whistler','Banff','Niagara Falls','Halifax'], - 'Central African Rep.': ['Bangui'], - 'Chad': ["N'Djamena",'Moundou'], - 'Chile': ['Santiago','Valparaíso','Atacama','Puerto Natales','Punta Arenas','Viña del Mar','San Pedro de Atacama'], - 'China': ['Beijing','Shanghai','Guangzhou','Shenzhen','Chengdu','Xi\'an','Hangzhou','Chongqing','Guilin','Zhangjiajie','Lijiang','Hong Kong','Macau'], - 'Colombia': ['Bogotá','Medellín','Cartagena','Cali','Santa Marta','Barranquilla'], - 'Comoros': ['Moroni'], - 'Congo': ['Brazzaville','Pointe-Noire'], - 'Costa Rica': ['San José','Manuel Antonio','Tamarindo','Arenal','Monteverde'], - 'Croatia': ['Zagreb','Dubrovnik','Split','Hvar','Zadar','Pula','Rijeka'], - 'Cuba': ['Havana','Trinidad','Varadero','Santiago de Cuba','Cienfuegos'], - 'Cyprus': ['Nicosia','Limassol','Paphos','Larnaca','Ayia Napa'], - 'Czechia': ['Prague','Brno','Český Krumlov','Karlovy Vary','Olomouc'], - "Côte d'Ivoire": ['Abidjan','Yamoussoukro','Bouaké'], - 'Dem. Rep. Congo': ['Kinshasa','Lubumbashi','Goma','Kisangani'], - 'Denmark': ['Copenhagen','Aarhus','Odense','Aalborg'], - 'Djibouti': ['Djibouti City'], - 'Dominican Rep.': ['Santo Domingo','Punta Cana','Santiago','La Romana'], - 'Ecuador': ['Quito','Guayaquil','Cuenca','Baños','Galápagos Islands'], - 'Egypt': ['Cairo','Alexandria','Luxor','Aswan','Sharm el-Sheikh','Hurghada','Giza'], - 'El Salvador': ['San Salvador','Santa Ana','San Miguel'], - 'Eq. Guinea': ['Malabo','Bata'], - 'Eritrea': ['Asmara','Massawa'], - 'Estonia': ['Tallinn','Tartu','Pärnu'], - 'Ethiopia': ['Addis Ababa','Lalibela','Gondar','Axum','Dire Dawa'], - 'Fiji': ['Suva','Nadi','Mamanuca Islands'], - 'Finland': ['Helsinki','Rovaniemi','Tampere','Turku','Oulu'], - 'Fr. Polynesia': ['Papeete','Bora Bora','Moorea'], - 'France': ['Paris','Nice','Lyon','Marseille','Bordeaux','Strasbourg','Toulouse','Cannes','Monaco','Mont Saint-Michel','Versailles'], - 'Gabon': ['Libreville','Port-Gentil'], - 'Gambia': ['Banjul','Serekunda'], - 'Georgia': ['Tbilisi','Batumi','Kutaisi','Sighnaghi'], - 'Germany': ['Berlin','Munich','Hamburg','Frankfurt','Cologne','Dresden','Heidelberg','Rothenburg ob der Tauber','Neuschwanstein','Stuttgart'], - 'Ghana': ['Accra','Kumasi','Cape Coast','Tamale'], - 'Greece': ['Athens','Santorini','Mykonos','Rhodes','Thessaloniki','Crete','Corfu','Meteora'], - 'Greenland': ['Nuuk','Ilulissat'], - 'Grenada': ["St. George's"], - 'Guatemala': ['Guatemala City','Antigua','Lake Atitlán','Tikal','Quetzaltenango'], - 'Guinea': ['Conakry'], - 'Guyana': ['Georgetown'], - 'Haiti': ['Port-au-Prince','Cap-Haïtien'], - 'Honduras': ['Tegucigalpa','San Pedro Sula','Roatán'], - 'Hong Kong': ['Hong Kong'], - 'Hungary': ['Budapest','Debrecen','Pécs','Eger','Győr'], - 'Iceland': ['Reykjavik','Akureyri','Blue Lagoon','Golden Circle'], - 'India': ['Mumbai','Delhi','Jaipur','Agra','Bangalore','Chennai','Kolkata','Goa','Varanasi','Udaipur','Kerala','Leh','Shimla'], - 'Indonesia': ['Jakarta','Bali','Yogyakarta','Lombok','Medan','Komodo','Raja Ampat','Surabaya'], - 'Iran': ['Tehran','Isfahan','Shiraz','Persepolis','Yazd'], - 'Iraq': ['Baghdad','Erbil','Basra','Najaf'], - 'Ireland': ['Dublin','Cork','Galway','Killarney','Limerick'], - 'Israel': ['Jerusalem','Tel Aviv','Haifa','Eilat','Dead Sea'], - 'Italy': ['Rome','Florence','Venice','Milan','Naples','Amalfi','Sicily','Cinque Terre','Bologna','Turin'], - 'Jamaica': ['Kingston','Montego Bay','Negril','Ocho Rios'], - 'Japan': ['Tokyo','Kyoto','Osaka','Hiroshima','Nara','Sapporo','Hakone','Nikko','Kanazawa','Okinawa','Fukuoka'], - 'Jordan': ['Amman','Petra','Wadi Rum','Aqaba','Jerash'], - 'Kazakhstan': ['Almaty','Nur-Sultan','Shymkent'], - 'Kenya': ['Nairobi','Mombasa','Masai Mara','Amboseli','Zanzibar'], - 'Kosovo': ['Pristina','Prizren'], - 'Kuwait': ['Kuwait City'], - 'Kyrgyzstan': ['Bishkek','Osh','Karakol'], - 'Laos': ['Vientiane','Luang Prabang','Vang Vieng'], - 'Latvia': ['Riga','Jūrmala','Sigulda'], - 'Lebanon': ['Beirut','Byblos','Baalbek','Sidon'], - 'Libya': ['Tripoli','Benghazi','Leptis Magna'], - 'Liechtenstein': ['Vaduz'], - 'Lithuania': ['Vilnius','Kaunas','Trakai','Klaipėda'], - 'Luxembourg': ['Luxembourg City','Vianden'], - 'Madagascar': ['Antananarivo','Nosy Be','Morondava'], - 'Malawi': ['Lilongwe','Blantyre','Lake Malawi'], - 'Malaysia': ['Kuala Lumpur','Penang','Langkawi','Kota Kinabalu','Malacca','George Town'], - 'Maldives': ['Malé','Maafushi'], - 'Mali': ['Bamako','Timbuktu','Djenné'], - 'Malta': ['Valletta','Mdina','Gozo'], - 'Mauritania': ['Nouakchott'], - 'Mauritius': ['Port Louis','Grand Baie','Flic en Flac'], - 'Mexico': ['Mexico City','Cancún','Guadalajara','Oaxaca','Tulum','Playa del Carmen','San Miguel de Allende','Monterrey','Chichen Itza'], - 'Moldova': ['Chișinău'], - 'Monaco': ['Monaco'], - 'Mongolia': ['Ulaanbaatar','Gobi Desert'], - 'Montenegro': ['Podgorica','Kotor','Budva','Bar'], - 'Morocco': ['Marrakech','Fes','Casablanca','Rabat','Chefchaouen','Essaouira','Sahara Desert'], - 'Mozambique': ['Maputo','Beira','Pemba'], - 'Myanmar': ['Yangon','Bagan','Mandalay','Inle Lake'], - 'Namibia': ['Windhoek','Swakopmund','Etosha','Sossusvlei'], - 'Nepal': ['Kathmandu','Pokhara','Everest Base Camp','Chitwan','Lumbini'], - 'Netherlands': ['Amsterdam','Rotterdam','The Hague','Utrecht','Delft','Eindhoven'], - 'New Zealand': ['Auckland','Queenstown','Wellington','Christchurch','Rotorua','Milford Sound'], - 'Nicaragua': ['Managua','Granada','León'], - 'Niger': ['Niamey','Agadez'], - 'Nigeria': ['Lagos','Abuja','Kano','Ibadan'], - 'North Korea': ['Pyongyang'], - 'North Macedonia': ['Skopje','Ohrid'], - 'Norway': ['Oslo','Bergen','Tromsø','Flåm','Ålesund','Stavanger'], - 'Oman': ['Muscat','Nizwa','Salalah','Wahiba Sands'], - 'Pakistan': ['Karachi','Lahore','Islamabad','Peshawar','Gilgit'], - 'Palestine': ['Ramallah','Bethlehem','Jericho','Hebron'], - 'Panama': ['Panama City','Bocas del Toro','Boquete'], - 'Papua New Guinea': ['Port Moresby'], - 'Paraguay': ['Asunción','Ciudad del Este'], - 'Peru': ['Lima','Cusco','Machu Picchu','Arequipa','Puno','Iquitos'], - 'Philippines': ['Manila','Cebu','Palawan','Boracay','Davao','Siargao'], - 'Poland': ['Warsaw','Kraków','Gdańsk','Wrocław','Poznań','Zakopane'], - 'Portugal': ['Lisbon','Porto','Algarve','Sintra','Madeira','Azores','Évora'], - 'Puerto Rico': ['San Juan','Ponce','Rincon'], - 'Qatar': ['Doha'], - 'Romania': ['Bucharest','Transylvania','Cluj-Napoca','Sibiu','Brașov','Sinaia'], - 'Russia': ['Moscow','St. Petersburg','Irkutsk','Vladivostok','Sochi','Kazan','Novosibirsk'], - 'Rwanda': ['Kigali','Volcanoes National Park'], - 'S. Sudan': ['Juba'], - 'Saint Lucia': ['Castries','Soufrière'], - 'Saudi Arabia': ['Riyadh','Jeddah','Mecca','Medina','AlUla','NEOM'], - 'Senegal': ['Dakar','Saint-Louis','Ziguinchor'], - 'Serbia': ['Belgrade','Novi Sad','Niš'], - 'Seychelles': ['Victoria','La Digue','Praslin','Mahé'], - 'Sierra Leone': ['Freetown'], - 'Singapore': ['Singapore'], - 'Slovakia': ['Bratislava','Košice','Banská Bystrica'], - 'Slovenia': ['Ljubljana','Bled','Piran','Maribor'], - 'Solomon Is.': ['Honiara'], - 'Somalia': ['Mogadishu'], - 'South Africa': ['Cape Town','Johannesburg','Durban','Stellenbosch','Kruger','Garden Route','Pretoria'], - 'South Korea': ['Seoul','Busan','Jeju','Gyeongju','Incheon','Suwon'], - 'Spain': ['Barcelona','Madrid','Seville','Granada','Valencia','Bilbao','Toledo','San Sebastián','Ibiza','Mallorca'], - 'Sri Lanka': ['Colombo','Kandy','Galle','Ella','Sigiriya','Mirissa'], - 'Sudan': ['Khartoum','Omdurman'], - 'Suriname': ['Paramaribo'], - 'Sweden': ['Stockholm','Gothenburg','Malmö','Uppsala','Kiruna'], - 'Switzerland': ['Zurich','Geneva','Bern','Interlaken','Lucerne','Zermatt','Lugano','Grindelwald'], - 'Syria': ['Damascus','Aleppo','Palmyra'], - 'São Tomé and Príncipe': ['São Tomé'], - 'Taiwan': ['Taipei','Kaohsiung','Tainan','Taichung'], - 'Tajikistan': ['Dushanbe','Khujand'], - 'Tanzania': ['Dar es Salaam','Zanzibar','Serengeti','Arusha','Kilimanjaro'], - 'Thailand': ['Bangkok','Chiang Mai','Phuket','Koh Samui','Koh Phi Phi','Ayutthaya','Pai','Krabi'], - 'Timor-Leste': ['Dili'], - 'Togo': ['Lomé'], - 'Trinidad and Tobago': ['Port of Spain'], - 'Tunisia': ['Tunis','Carthage','Sousse','Hammamet','Djerba'], - 'Turkey': ['Istanbul','Cappadocia','Antalya','Bodrum','Ankara','Ephesus','Pamukkale','Trabzon'], - 'Turkmenistan': ['Ashgabat','Merv'], - 'Uganda': ['Kampala','Bwindi','Jinja'], - 'Ukraine': ['Kyiv','Lviv','Odessa','Kharkiv'], - 'United Arab Emirates': ['Dubai','Abu Dhabi','Sharjah'], - 'United Kingdom': ['London','Edinburgh','Manchester','Liverpool','Oxford','Cambridge','Bath','York','Brighton','Glasgow','Dublin'], - 'United States of America': ['New York','Los Angeles','Chicago','Miami','San Francisco','Las Vegas','New Orleans','Seattle','Boston','Washington D.C.','Nashville','Denver','Honolulu','Anchorage','Portland'], - 'Uruguay': ['Montevideo','Punta del Este','Colonia del Sacramento'], - 'Uzbekistan': ['Tashkent','Samarkand','Bukhara','Khiva'], - 'Venezuela': ['Caracas','Medellín','Canaima','Los Roques'], - 'Vietnam': ['Hanoi','Ho Chi Minh City','Hoi An','Da Nang','Ha Long Bay','Hue','Sapa','Phu Quoc'], - 'Yemen': ["Sana'a",'Aden'], - 'Zambia': ['Lusaka','Livingstone','Victoria Falls'], - 'Zimbabwe': ['Harare','Bulawayo','Victoria Falls'], -}; diff --git a/src/lib/stores/journalStore.js b/src/lib/stores/journalStore.js deleted file mode 100644 index e36efa6..0000000 --- a/src/lib/stores/journalStore.js +++ /dev/null @@ -1,2 +0,0 @@ -export { journals } from './entriesStore.svelte.js'; -export { addEntry as addJournal } from './entriesStore.svelte.js'; diff --git a/src/lib/timeline/detail/EditForm.svelte b/src/lib/timeline/detail/EditForm.svelte index 65591dd..c7a51f4 100644 --- a/src/lib/timeline/detail/EditForm.svelte +++ b/src/lib/timeline/detail/EditForm.svelte @@ -1,16 +1,8 @@
- -
-
- -
- -
- {#each [1,2,3] as s} -
s}>
- {/each} -
- -
- {#if step < 3} - - {:else} - - {/if} -
-
+
{#if step === 1} -

- {isNew ? 'Journal your trip!' : 'Edit your trip'} -

- -
-
- - - {#if errors.country}{errors.country}{/if} -
-
- - - {#if errors.cities}{errors.cities}{/if} - {#if cities.length > 0} -
- {#each cities as c} - {c} - {/each} -
- {/if} -
-
- -
-
- - - {#if errors.date}{errors.date}{/if} -
-
- - - {#if errors.days}{errors.days}{/if} -
-
- -
- -
- {#each ['solo','friends','family'] as t} - - {/each} -
- {#if errors.tripType}{errors.tripType}{/if} -
- -
- -
- {#each transportOptions as opt} - - {/each} -
- {#if errors.transport}{errors.transport}{/if} -
+ {:else if step === 2}

Photos

@@ -258,70 +143,6 @@ font-family: var(--sans); } - .topbar { - display: flex; - align-items: center; - justify-content: space-between; - padding: 0 20px; - height: 52px; - flex-shrink: 0; - border-bottom: 1px solid var(--border); - background: var(--bg); - } - .topbar-left, .topbar-right { - display: flex; - align-items: center; - min-width: 110px; - } - .topbar-right { justify-content: flex-end; } - - .steps { - display: flex; - gap: 8px; - align-items: center; - } - .step-dot { - width: 8px; - height: 8px; - border-radius: 50%; - background: var(--border); - transition: background 0.2s, transform 0.2s; - } - .step-dot.active { background: var(--accent); transform: scale(1.25); } - .step-dot.done { background: var(--accent); opacity: 0.35; } - - .ghost-btn { - display: inline-flex; - align-items: center; - gap: 6px; - font-family: var(--sans); - font-size: 15px; - font-weight: 400; - color: var(--text); - background: none; - border: 1px solid transparent; - border-radius: 10px; - padding: 8px 14px; - cursor: pointer; - transition: background 0.15s, color 0.15s, border-color 0.15s; - } - .ghost-btn:hover { background: var(--bg-subtle); border-color: var(--border); color: var(--text-h); } - - .save-btn { - font-family: var(--sans); - font-size: 15px; - font-weight: 400; - color: #fff; - background: var(--accent); - border: 1px solid var(--accent); - border-radius: 10px; - padding: 8px 18px; - cursor: pointer; - transition: background 0.15s; - white-space: nowrap; - } - .save-btn:hover { background: var(--accent-dark); border-color: var(--accent-dark); } - .scroll { flex: 1; overflow-y: auto; } .form { @@ -333,13 +154,6 @@ gap: 18px; } - .page-headline { - font-size: 28px; - font-weight: 500; - color: var(--text-h); - letter-spacing: -0.5px; - margin: 0 0 4px; - } .step-title { font-size: 20px; font-weight: 400; @@ -354,7 +168,6 @@ margin: -10px 0 4px; } - .row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; } .field { display: flex; flex-direction: column; gap: 6px; } .label-row { @@ -370,9 +183,6 @@ text-transform: uppercase; color: var(--text-h); } - .req { color: var(--accent); font-size: 11px; } - .kw { color: var(--accent); } - .ferr { font-size: 13px; font-weight: 500; color: #dc2626; } .char-count { font-size: 11px; font-weight: 300; color: var(--text-sub); transition: color 0.15s; } .char-count.over { color: #dc2626; } @@ -395,35 +205,4 @@ .input:focus { border-color: var(--accent-border); } .textarea { resize: vertical; line-height: 1.6; } - - .toggle-row { display: flex; gap: 10px; flex-wrap: wrap; } - .toggle-opt { - display: flex; align-items: center; justify-content: center; gap: 8px; - font-size: 14px; font-weight: 400; color: var(--text); - padding: 12px 14px; border-radius: 10px; - border: 1px solid var(--border); - cursor: pointer; transition: border-color 0.15s, background 0.15s, color 0.15s, box-shadow 0.15s; - background: var(--bg-subtle); - white-space: nowrap; - } - .toggle-opt input { display: none; } - .toggle-opt.active { border-color: var(--accent); background: var(--accent-bg); color: var(--accent); box-shadow: 0 0 0 1px var(--accent); } - .toggle-opt.active img { filter: brightness(0) saturate(100%) invert(27%) sepia(98%) saturate(1169%) hue-rotate(239deg) brightness(80%) contrast(92%); } - - .transport-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; } - .transport-opt { flex-direction: column; gap: 6px; padding: 16px 10px; } - .transport-img { width: 44px; height: 44px; object-fit: contain; flex-shrink: 0; } - - .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; } - .tag { - display: inline-flex; align-items: center; gap: 4px; - font-size: 12px; font-weight: 300; color: var(--accent); - background: var(--accent-bg); border: 1px solid var(--accent-border); - border-radius: 20px; padding: 3px 10px 3px 12px; - } - .tag-rm { - background: none; border: none; color: var(--accent); - font-size: 15px; line-height: 1; cursor: pointer; padding: 0; opacity: 0.6; - } - .tag-rm:hover { opacity: 1; } diff --git a/src/lib/timeline/detail/JournalSummary.svelte b/src/lib/timeline/detail/JournalSummary.svelte deleted file mode 100644 index 1f213d1..0000000 --- a/src/lib/timeline/detail/JournalSummary.svelte +++ /dev/null @@ -1,198 +0,0 @@ - - -{#if stats} -
- - -
- -
-
- - - - - - - - TRAVEL JOURNAL -
-
-

PASSPORT

-

{stats.yearRange}

-
-
- -
- - -
-
- TRIPS - {stats.tripCount} -
-
- COUNTRIES - {stats.countries.length} -
-
- DAYS - {stats.totalDays} -
-
-
- - -
- P<JNL{String(stats.tripCount).padStart(2,'0')}<<<<<<<<<<<<<<<<<<<<<<<<<<< - {stats.yearRange.replace(' – ','').replace(/\s/g,'')}{'<'.repeat(12)}{String(stats.totalDays).padStart(4,'0')} -
-
-{/if} - - diff --git a/src/lib/timeline/detail/NewEntryForm.svelte b/src/lib/timeline/detail/NewEntryForm.svelte index 9d806f4..04d0987 100644 --- a/src/lib/timeline/detail/NewEntryForm.svelte +++ b/src/lib/timeline/detail/NewEntryForm.svelte @@ -1,11 +1,12 @@
-
-
- -
- -
- {#each [1,2,3] as s} -
s}>
- {/each} -
- -
- {#if step < 3} - - {:else} - - {#if saveError}{saveError}{/if} - {/if} -
-
+
@@ -283,78 +266,6 @@ font-family: var(--sans); } - /* topbar */ - .topbar { - display: flex; - align-items: center; - justify-content: space-between; - padding: 0 20px; - height: 52px; - flex-shrink: 0; - border-bottom: 1px solid var(--border); - background: var(--bg); - } - .topbar-left, .topbar-right { - display: flex; - align-items: center; - min-width: 110px; - } - .topbar-right { justify-content: flex-end; } - - .steps { - display: flex; - gap: 8px; - align-items: center; - } - .step-dot { - width: 8px; - height: 8px; - border-radius: 50%; - background: var(--border); - transition: background 0.2s, transform 0.2s; - } - .step-dot.active { - background: var(--accent); - transform: scale(1.25); - } - .step-dot.done { - background: var(--accent); - opacity: 0.35; - } - - .ghost-btn { - display: inline-flex; - align-items: center; - gap: 6px; - font-family: var(--sans); - font-size: 15px; - font-weight: 400; - color: var(--text); - background: none; - border: 1px solid transparent; - border-radius: 10px; - padding: 8px 14px; - cursor: pointer; - transition: background 0.15s, color 0.15s, border-color 0.15s; - } - .ghost-btn:hover { background: var(--bg-subtle); border-color: var(--border); color: var(--text-h); } - - .save-btn { - font-family: var(--sans); - font-size: 15px; - font-weight: 400; - color: #fff; - background: var(--accent); - border: 1px solid var(--accent); - border-radius: 10px; - padding: 8px 18px; - cursor: pointer; - transition: background 0.15s; - white-space: nowrap; - } - .save-btn:hover { background: var(--accent-dark); border-color: var(--accent-dark); } - .save-btn:disabled { opacity: 0.6; cursor: not-allowed; } - /* scroll + form */ .scroll { flex: 1; overflow-y: auto; } diff --git a/src/lib/timeline/detail/StepNavbar.svelte b/src/lib/timeline/detail/StepNavbar.svelte new file mode 100644 index 0000000..0374d17 --- /dev/null +++ b/src/lib/timeline/detail/StepNavbar.svelte @@ -0,0 +1,100 @@ + + +
+
+ +
+ +
+ {#each Array(totalSteps) as _, i} +
i + 1}>
+ {/each} +
+ +
+ + {#if saveError}{saveError}{/if} +
+
+ + diff --git a/src/lib/timeline/detail/TripBasicInfo.svelte b/src/lib/timeline/detail/TripBasicInfo.svelte new file mode 100644 index 0000000..6b95640 --- /dev/null +++ b/src/lib/timeline/detail/TripBasicInfo.svelte @@ -0,0 +1,188 @@ + + +

+ {isNew ? 'Journal your trip!' : 'Edit your trip'} +

+ +
+
+ + + {#if errors.country}{errors.country}{/if} +
+
+ + + {#if errors.cities}{errors.cities}{/if} + {#if cities.length > 0} +
+ {#each cities as c} + {c} + {/each} +
+ {/if} +
+
+ +
+
+ + + {#if errors.date}{errors.date}{/if} +
+
+ + + {#if errors.days}{errors.days}{/if} +
+
+ +
+ +
+ {#each ['solo','friends','family'] as t} + + {/each} +
+ {#if errors.tripType}{errors.tripType}{/if} +
+ +
+ +
+ {#each transportOptions as opt} + + {/each} +
+ {#if errors.transport}{errors.transport}{/if} +
+ + diff --git a/src/lib/timeline/view/TimelineToolbar.svelte b/src/lib/timeline/view/TimelineToolbar.svelte deleted file mode 100644 index f930098..0000000 --- a/src/lib/timeline/view/TimelineToolbar.svelte +++ /dev/null @@ -1,40 +0,0 @@ - - -
- - diff --git a/src/lib/timeline/view/TimelineView.svelte b/src/lib/timeline/view/TimelineView.svelte index b1bb5ba..8b88aac 100644 --- a/src/lib/timeline/view/TimelineView.svelte +++ b/src/lib/timeline/view/TimelineView.svelte @@ -1,6 +1,5 @@