-
-
+
+
-
-
+
-
-
-
-
-
-
+
+
-
-
+
+
@@ -206,8 +269,14 @@ function onSplashFinish() {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -272,6 +305,11 @@ function formatDate(ts) {
{{ place.cuisine }}
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
-
-
-
+
- Coordinates
- {{ place.lat.toFixed(5) }}, {{ place.lng.toFixed(5) }}
-
+
+
+
+ Coordinates
+
+
+
+
+
+ {{ place.lat.toFixed(5) }}, {{ place.lng.toFixed(5) }}
+
+
-
-
-
-
@@ -700,7 +743,7 @@ function formatDate(ts) {
.place-name-row {
display: flex;
- align-items: center;
+ align-items: flex-start;
gap: 11px;
margin-bottom: 8px;
}
@@ -718,6 +761,14 @@ function formatDate(ts) {
svg { display: block; }
}
+.place-name-col {
+ flex: 1;
+ min-width: 0;
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+}
+
.place-name {
font-size: 24px;
font-weight: 800;
@@ -726,6 +777,23 @@ function formatDate(ts) {
min-width: 0;
}
+.place-added {
+ display: inline-flex;
+ align-items: center;
+ gap: 5px;
+ font-size: 12px;
+ font-weight: 600;
+ color: var(--text-muted);
+ width: fit-content;
+}
+
+.hero-tags {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 6px;
+ margin: 10px 0 4px;
+}
+
.place-rating {
display: flex;
align-items: center;
@@ -937,6 +1005,19 @@ function formatDate(ts) {
border-bottom: 1px solid var(--border);
&:last-child { border-bottom: none; }
+
+ &.info-row--copy {
+ width: 100%;
+ text-align: left;
+ /* don't touch background here โ cartoon.scss owns the card
+ background; a scoped reset previously out-specified it and made
+ this row fall through to the page backdrop instead of staying
+ white like its siblings */
+ border-radius: inherit;
+ cursor: pointer;
+
+ &:active { transform: scale(0.99); }
+ }
}
.info-icon {
@@ -956,6 +1037,129 @@ function formatDate(ts) {
flex-direction: column;
gap: 2px;
min-width: 0;
+ flex: 1;
+}
+
+.info-copy-icon {
+ flex-shrink: 0;
+ align-self: center;
+ color: var(--text-muted);
+ opacity: 0.6;
+}
+
+.info-row--copy:active .info-copy-icon { opacity: 1; color: var(--accent); }
+
+/* โโ Address + Coordinates: one pill, coordinates collapsed โโ */
+.addr-card {
+ margin: 0 22px 12px;
+ border-radius: 16px;
+ overflow: hidden;
+}
+
+.addr-row {
+ display: flex;
+ align-items: flex-start;
+ gap: 14px;
+ width: 100%;
+ padding: 12px;
+ text-align: left;
+ cursor: pointer;
+ background: transparent; // reset the browser's default button-face gray
+ border: none;
+ font: inherit;
+ color: inherit;
+
+ &:active { transform: scale(0.99); }
+}
+
+.addr-divider {
+ height: 1px;
+ margin: 0 12px;
+}
+
+.coords-toggle {
+ display: flex;
+ align-items: center;
+ gap: 14px;
+ width: 100%;
+ padding: 12px;
+ text-align: left;
+ cursor: pointer;
+
+ &:active { opacity: 0.8; }
+}
+
+.coords-toggle-label {
+ flex: 1;
+ font-size: 13px;
+ font-weight: 700;
+}
+
+.coords-chevron {
+ flex-shrink: 0;
+}
+
+/* Expanded state: the label is replaced in place by the value + a
+ copy action โ same row, same height, no accordion panel below */
+.coords-value {
+ flex: 1;
+ font-size: 13.5px;
+ font-weight: 700;
+ word-break: break-word;
+ animation: ct-pop 0.15s ease both;
+}
+
+.coords-copy-btn {
+ flex-shrink: 0;
+ display: inline-flex;
+ align-items: center;
+ gap: 5px;
+ padding: 6px 12px;
+ font-family: inherit;
+ font-size: 12px;
+ font-weight: 700;
+ border: none;
+ cursor: pointer;
+
+ &:active { transform: scale(0.96); }
+}
+
+/* โโ Notes: bigger, distinct "note" card โโ */
+.notes-card {
+ margin: 0 22px 12px;
+ padding: 18px 20px;
+ border-radius: 20px;
+}
+
+.notes-card-head {
+ display: flex;
+ align-items: center;
+ gap: 9px;
+ margin-bottom: 10px;
+}
+
+.notes-card-icon {
+ flex-shrink: 0;
+ width: 32px;
+ height: 32px;
+ border-radius: 11px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.notes-card-label {
+ font-size: 11px;
+ font-weight: 800;
+ text-transform: uppercase;
+ letter-spacing: 0.6px;
+}
+
+.notes-card-text {
+ font-size: 15.5px;
+ line-height: 1.55;
+ white-space: pre-wrap;
+ word-break: break-word;
}
.info-label {
diff --git a/src/components/PlacesView.vue b/src/components/PlacesView.vue
index 2324f82..43bf087 100644
--- a/src/components/PlacesView.vue
+++ b/src/components/PlacesView.vue
@@ -1,5 +1,5 @@