diff --git a/dist/index.html b/dist/index.html
index 1b5245c4..02f85042 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -71,6 +71,7 @@
Maps JSAPI Samples
place-autocomplete-map
place-class
place-nearby-search
+ place-reviews
place-text-search
places-autocomplete-addressform
react-ui-kit-place-details
diff --git a/dist/samples/place-reviews/app/.eslintsrc.json b/dist/samples/place-reviews/app/.eslintsrc.json
new file mode 100644
index 00000000..4c44dab0
--- /dev/null
+++ b/dist/samples/place-reviews/app/.eslintsrc.json
@@ -0,0 +1,13 @@
+{
+ "extends": [
+ "plugin:@typescript-eslint/recommended"
+ ],
+ "parser": "@typescript-eslint/parser",
+ "rules": {
+ "@typescript-eslint/ban-ts-comment": 0,
+ "@typescript-eslint/no-this-alias": 1,
+ "@typescript-eslint/no-empty-function": 1,
+ "@typescript-eslint/explicit-module-boundary-types": 1,
+ "@typescript-eslint/no-unused-vars": 1
+ }
+}
diff --git a/dist/samples/place-reviews/app/README.md b/dist/samples/place-reviews/app/README.md
new file mode 100644
index 00000000..8b585a15
--- /dev/null
+++ b/dist/samples/place-reviews/app/README.md
@@ -0,0 +1,41 @@
+# Google Maps JavaScript Sample
+
+## place-reviews
+
+Demonstrates retrieving place reviews.
+
+## Setup
+
+### Before starting run:
+
+`npm i`
+
+### Run an example on a local web server
+
+`cd samples/place-reviews`
+`npm start`
+
+### Build an individual example
+
+`cd samples/place-reviews`
+`npm run build`
+
+From 'samples':
+
+`npm run build --workspace=place-reviews/`
+
+### Build all of the examples.
+
+From 'samples':
+
+`npm run build-all`
+
+### Run lint to check for problems
+
+`cd samples/place-reviews`
+`npx eslint index.ts`
+
+## Feedback
+
+For feedback related to this sample, please open a new issue on
+[GitHub](https://github.com/googlemaps-samples/js-api-samples/issues).
diff --git a/dist/samples/place-reviews/app/index.html b/dist/samples/place-reviews/app/index.html
new file mode 100644
index 00000000..6a89aec0
--- /dev/null
+++ b/dist/samples/place-reviews/app/index.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+ Place Reviews
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dist/samples/place-reviews/app/index.ts b/dist/samples/place-reviews/app/index.ts
new file mode 100644
index 00000000..ff05ca8c
--- /dev/null
+++ b/dist/samples/place-reviews/app/index.ts
@@ -0,0 +1,99 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+// [START maps_place_reviews]
+let innerMap;
+let infoWindow;
+const mapElement = document.querySelector('gmp-map') as google.maps.MapElement;
+
+async function initMap() {
+ // Import the needed libraries.
+ const [{ InfoWindow }, { AdvancedMarkerElement }, { Place }] =
+ await Promise.all([
+ google.maps.importLibrary(
+ 'maps'
+ ) as Promise,
+ google.maps.importLibrary(
+ 'marker'
+ ) as Promise,
+ google.maps.importLibrary(
+ 'places'
+ ) as Promise,
+ ]);
+
+ innerMap = mapElement.innerMap;
+
+ // [START maps_place_reviews_get_first]
+ // Create a new Place instance.
+ const place = new Place({
+ id: 'ChIJpyiwa4Zw44kRBQSGWKv4wgA', // Faneuil Hall Marketplace, Boston, MA
+ });
+
+ // Call fetchFields, passing 'reviews' and other needed fields.
+ await place.fetchFields({
+ fields: ['displayName', 'formattedAddress', 'location', 'reviews'],
+ });
+
+ // Create an HTML container.
+ const content = document.createElement('div');
+ const title = document.createElement('div');
+ const rating = document.createElement('div');
+ const address = document.createElement('div');
+ const review = document.createElement('div');
+ const authorLink = document.createElement('a');
+
+ // If there are any reviews display the first one.
+ if (place.reviews && place.reviews.length > 0) {
+ // Get info for the first review.
+ const reviewRating = place.reviews[0].rating;
+ const reviewText = place.reviews[0].text;
+ const authorName = place.reviews[0].authorAttribution!.displayName;
+ const authorUri = place.reviews[0].authorAttribution!.uri;
+
+ // Safely populate the HTML.
+ title.textContent = place.displayName || '';
+ address.textContent = place.formattedAddress || '';
+ rating.textContent = `Rating: ${reviewRating} stars`;
+ review.textContent = reviewText || '';
+ authorLink.textContent = authorName;
+ authorLink.href = authorUri || '';
+ authorLink.target = '_blank';
+
+ content.appendChild(title);
+ content.appendChild(address);
+ content.appendChild(rating);
+ content.appendChild(review);
+ content.appendChild(authorLink);
+ } else {
+ content.textContent =
+ `No reviews were found for ${place.displayName}.`;
+ }
+
+ // Create an infowindow to display the review.
+ infoWindow = new InfoWindow({
+ content,
+ ariaLabel: place.displayName,
+ });
+ // [END maps_place_reviews_get_first]
+
+ // Add a marker.
+ const marker = new AdvancedMarkerElement({
+ map: innerMap,
+ position: place.location,
+ title: place.displayName,
+ });
+
+ innerMap.setCenter(place.location);
+
+ // Show the info window.
+ infoWindow.open({
+ anchor: marker,
+ map: innerMap,
+ });
+}
+
+initMap();
+// [END maps_place_reviews]
diff --git a/dist/samples/place-reviews/app/package.json b/dist/samples/place-reviews/app/package.json
new file mode 100644
index 00000000..c71e1931
--- /dev/null
+++ b/dist/samples/place-reviews/app/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "@js-api-samples/place-reviews",
+ "version": "1.0.0",
+ "scripts": {
+ "build": "tsc && bash ../jsfiddle.sh place-reviews && bash ../app.sh place-reviews && bash ../docs.sh place-reviews && npm run build:vite --workspace=. && bash ../dist.sh place-reviews",
+ "test": "tsc && npm run build:vite --workspace=.",
+ "start": "tsc && vite build --base './' && vite",
+ "build:vite": "vite build --base './'",
+ "preview": "vite preview"
+ },
+ "dependencies": {}
+}
diff --git a/dist/samples/place-reviews/app/style.css b/dist/samples/place-reviews/app/style.css
new file mode 100644
index 00000000..a9a35b8e
--- /dev/null
+++ b/dist/samples/place-reviews/app/style.css
@@ -0,0 +1,25 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+/* [START maps_place_reviews] */
+/*
+ * Always set the map height explicitly to define the size of the div element
+ * that contains the map.
+ */
+gmp-map {
+ height: 100%;
+}
+
+/*
+ * Optional: Makes the sample page fill the window.
+ */
+html,
+body {
+ height: 100%;
+ margin: 0;
+ padding: 0;
+}
+
+/* [END maps_place_reviews] */
diff --git a/dist/samples/place-reviews/app/tsconfig.json b/dist/samples/place-reviews/app/tsconfig.json
new file mode 100644
index 00000000..8e1d9de0
--- /dev/null
+++ b/dist/samples/place-reviews/app/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "compilerOptions": {
+ "module": "esnext",
+ "target": "esnext",
+ "strict": true,
+ "noImplicitAny": false,
+ "lib": ["es2015", "esnext", "es6", "dom", "dom.iterable"],
+ "moduleResolution": "Node",
+ "jsx": "preserve"
+ }
+}
diff --git a/dist/samples/place-reviews/dist/assets/index-BZDSROJH.css b/dist/samples/place-reviews/dist/assets/index-BZDSROJH.css
new file mode 100644
index 00000000..59d9a4df
--- /dev/null
+++ b/dist/samples/place-reviews/dist/assets/index-BZDSROJH.css
@@ -0,0 +1 @@
+gmp-map{height:100%}html,body{height:100%;margin:0;padding:0}
diff --git a/dist/samples/place-reviews/dist/assets/index-Di0JpSSE.js b/dist/samples/place-reviews/dist/assets/index-Di0JpSSE.js
new file mode 100644
index 00000000..90fcad40
--- /dev/null
+++ b/dist/samples/place-reviews/dist/assets/index-Di0JpSSE.js
@@ -0,0 +1 @@
+(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const n of r.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&t(n)}).observe(document,{childList:!0,subtree:!0});function s(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function t(e){if(e.ep)return;e.ep=!0;const r=s(e);fetch(e.href,r)}})();let a,m;const h=document.querySelector("gmp-map");async function y(){const[{InfoWindow:c},{AdvancedMarkerElement:o},{Place:s}]=await Promise.all([google.maps.importLibrary("maps"),google.maps.importLibrary("marker"),google.maps.importLibrary("places")]);a=h.innerMap;const t=new s({id:"ChIJpyiwa4Zw44kRBQSGWKv4wgA"});await t.fetchFields({fields:["displayName","formattedAddress","location","reviews"]});const e=document.createElement("div"),r=document.createElement("div"),n=document.createElement("div"),d=document.createElement("div"),l=document.createElement("div"),i=document.createElement("a");if(t.reviews&&t.reviews.length>0){const u=t.reviews[0].rating,f=t.reviews[0].text,w=t.reviews[0].authorAttribution.displayName,g=t.reviews[0].authorAttribution.uri;r.textContent=t.displayName||"",d.textContent=t.formattedAddress||"",n.textContent=`Rating: ${u} stars`,l.textContent=f||"",i.textContent=w,i.href=g||"",i.target="_blank",e.appendChild(r),e.appendChild(d),e.appendChild(n),e.appendChild(l),e.appendChild(i)}else e.textContent=`No reviews were found for ${t.displayName}.`;m=new c({content:e,ariaLabel:t.displayName});const p=new o({map:a,position:t.location,title:t.displayName});a.setCenter(t.location),m.open({anchor:p,map:a})}y();
diff --git a/dist/samples/place-reviews/dist/index.html b/dist/samples/place-reviews/dist/index.html
new file mode 100644
index 00000000..eccbf1ef
--- /dev/null
+++ b/dist/samples/place-reviews/dist/index.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+ Place Reviews
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dist/samples/place-reviews/docs/index.html b/dist/samples/place-reviews/docs/index.html
new file mode 100644
index 00000000..6a89aec0
--- /dev/null
+++ b/dist/samples/place-reviews/docs/index.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+ Place Reviews
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dist/samples/place-reviews/docs/index.js b/dist/samples/place-reviews/docs/index.js
new file mode 100644
index 00000000..40fd189d
--- /dev/null
+++ b/dist/samples/place-reviews/docs/index.js
@@ -0,0 +1,80 @@
+"use strict";
+/**
+ * @license
+ * Copyright 2025 Google LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+// [START maps_place_reviews]
+let innerMap;
+let infoWindow;
+const mapElement = document.querySelector('gmp-map');
+async function initMap() {
+ // Import the needed libraries.
+ const [{ InfoWindow }, { AdvancedMarkerElement }, { Place }] = await Promise.all([
+ google.maps.importLibrary('maps'),
+ google.maps.importLibrary('marker'),
+ google.maps.importLibrary('places'),
+ ]);
+ innerMap = mapElement.innerMap;
+ // [START maps_place_reviews_get_first]
+ // Create a new Place instance.
+ const place = new Place({
+ id: 'ChIJpyiwa4Zw44kRBQSGWKv4wgA', // Faneuil Hall Marketplace, Boston, MA
+ });
+ // Call fetchFields, passing 'reviews' and other needed fields.
+ await place.fetchFields({
+ fields: ['displayName', 'formattedAddress', 'location', 'reviews'],
+ });
+ // Create an HTML container.
+ const content = document.createElement('div');
+ const title = document.createElement('div');
+ const rating = document.createElement('div');
+ const address = document.createElement('div');
+ const review = document.createElement('div');
+ const authorLink = document.createElement('a');
+ // If there are any reviews display the first one.
+ if (place.reviews && place.reviews.length > 0) {
+ // Get info for the first review.
+ const reviewRating = place.reviews[0].rating;
+ const reviewText = place.reviews[0].text;
+ const authorName = place.reviews[0].authorAttribution.displayName;
+ const authorUri = place.reviews[0].authorAttribution.uri;
+ // Safely populate the HTML.
+ title.textContent = place.displayName || '';
+ address.textContent = place.formattedAddress || '';
+ rating.textContent = `Rating: ${reviewRating} stars`;
+ review.textContent = reviewText || '';
+ authorLink.textContent = authorName;
+ authorLink.href = authorUri || '';
+ authorLink.target = '_blank';
+ content.appendChild(title);
+ content.appendChild(address);
+ content.appendChild(rating);
+ content.appendChild(review);
+ content.appendChild(authorLink);
+ }
+ else {
+ content.textContent =
+ `No reviews were found for ${place.displayName}.`;
+ }
+ // Create an infowindow to display the review.
+ infoWindow = new InfoWindow({
+ content,
+ ariaLabel: place.displayName,
+ });
+ // [END maps_place_reviews_get_first]
+ // Add a marker.
+ const marker = new AdvancedMarkerElement({
+ map: innerMap,
+ position: place.location,
+ title: place.displayName,
+ });
+ innerMap.setCenter(place.location);
+ // Show the info window.
+ infoWindow.open({
+ anchor: marker,
+ map: innerMap,
+ });
+}
+initMap();
+// [END maps_place_reviews]
diff --git a/dist/samples/place-reviews/docs/index.ts b/dist/samples/place-reviews/docs/index.ts
new file mode 100644
index 00000000..ff05ca8c
--- /dev/null
+++ b/dist/samples/place-reviews/docs/index.ts
@@ -0,0 +1,99 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+// [START maps_place_reviews]
+let innerMap;
+let infoWindow;
+const mapElement = document.querySelector('gmp-map') as google.maps.MapElement;
+
+async function initMap() {
+ // Import the needed libraries.
+ const [{ InfoWindow }, { AdvancedMarkerElement }, { Place }] =
+ await Promise.all([
+ google.maps.importLibrary(
+ 'maps'
+ ) as Promise,
+ google.maps.importLibrary(
+ 'marker'
+ ) as Promise,
+ google.maps.importLibrary(
+ 'places'
+ ) as Promise,
+ ]);
+
+ innerMap = mapElement.innerMap;
+
+ // [START maps_place_reviews_get_first]
+ // Create a new Place instance.
+ const place = new Place({
+ id: 'ChIJpyiwa4Zw44kRBQSGWKv4wgA', // Faneuil Hall Marketplace, Boston, MA
+ });
+
+ // Call fetchFields, passing 'reviews' and other needed fields.
+ await place.fetchFields({
+ fields: ['displayName', 'formattedAddress', 'location', 'reviews'],
+ });
+
+ // Create an HTML container.
+ const content = document.createElement('div');
+ const title = document.createElement('div');
+ const rating = document.createElement('div');
+ const address = document.createElement('div');
+ const review = document.createElement('div');
+ const authorLink = document.createElement('a');
+
+ // If there are any reviews display the first one.
+ if (place.reviews && place.reviews.length > 0) {
+ // Get info for the first review.
+ const reviewRating = place.reviews[0].rating;
+ const reviewText = place.reviews[0].text;
+ const authorName = place.reviews[0].authorAttribution!.displayName;
+ const authorUri = place.reviews[0].authorAttribution!.uri;
+
+ // Safely populate the HTML.
+ title.textContent = place.displayName || '';
+ address.textContent = place.formattedAddress || '';
+ rating.textContent = `Rating: ${reviewRating} stars`;
+ review.textContent = reviewText || '';
+ authorLink.textContent = authorName;
+ authorLink.href = authorUri || '';
+ authorLink.target = '_blank';
+
+ content.appendChild(title);
+ content.appendChild(address);
+ content.appendChild(rating);
+ content.appendChild(review);
+ content.appendChild(authorLink);
+ } else {
+ content.textContent =
+ `No reviews were found for ${place.displayName}.`;
+ }
+
+ // Create an infowindow to display the review.
+ infoWindow = new InfoWindow({
+ content,
+ ariaLabel: place.displayName,
+ });
+ // [END maps_place_reviews_get_first]
+
+ // Add a marker.
+ const marker = new AdvancedMarkerElement({
+ map: innerMap,
+ position: place.location,
+ title: place.displayName,
+ });
+
+ innerMap.setCenter(place.location);
+
+ // Show the info window.
+ infoWindow.open({
+ anchor: marker,
+ map: innerMap,
+ });
+}
+
+initMap();
+// [END maps_place_reviews]
diff --git a/dist/samples/place-reviews/docs/style.css b/dist/samples/place-reviews/docs/style.css
new file mode 100644
index 00000000..a9a35b8e
--- /dev/null
+++ b/dist/samples/place-reviews/docs/style.css
@@ -0,0 +1,25 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+/* [START maps_place_reviews] */
+/*
+ * Always set the map height explicitly to define the size of the div element
+ * that contains the map.
+ */
+gmp-map {
+ height: 100%;
+}
+
+/*
+ * Optional: Makes the sample page fill the window.
+ */
+html,
+body {
+ height: 100%;
+ margin: 0;
+ padding: 0;
+}
+
+/* [END maps_place_reviews] */
diff --git a/dist/samples/place-reviews/jsfiddle/demo.css b/dist/samples/place-reviews/jsfiddle/demo.css
new file mode 100644
index 00000000..72d40c20
--- /dev/null
+++ b/dist/samples/place-reviews/jsfiddle/demo.css
@@ -0,0 +1,25 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/*
+ * Always set the map height explicitly to define the size of the div element
+ * that contains the map.
+ */
+gmp-map {
+ height: 100%;
+}
+
+/*
+ * Optional: Makes the sample page fill the window.
+ */
+html,
+body {
+ height: 100%;
+ margin: 0;
+ padding: 0;
+}
+
+
diff --git a/dist/samples/place-reviews/jsfiddle/demo.details b/dist/samples/place-reviews/jsfiddle/demo.details
new file mode 100644
index 00000000..cb5b9f68
--- /dev/null
+++ b/dist/samples/place-reviews/jsfiddle/demo.details
@@ -0,0 +1,7 @@
+name: place-reviews
+authors:
+ - Geo Developer IX Documentation Team
+tags:
+ - google maps
+load_type: h
+description: Sample code supporting Google Maps Platform JavaScript API documentation.
diff --git a/dist/samples/place-reviews/jsfiddle/demo.html b/dist/samples/place-reviews/jsfiddle/demo.html
new file mode 100644
index 00000000..9fd62d9b
--- /dev/null
+++ b/dist/samples/place-reviews/jsfiddle/demo.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+ Place Reviews
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dist/samples/place-reviews/jsfiddle/demo.js b/dist/samples/place-reviews/jsfiddle/demo.js
new file mode 100644
index 00000000..ed000002
--- /dev/null
+++ b/dist/samples/place-reviews/jsfiddle/demo.js
@@ -0,0 +1,80 @@
+"use strict";
+/**
+ * @license
+ * Copyright 2025 Google LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+let innerMap;
+let infoWindow;
+const mapElement = document.querySelector('gmp-map');
+async function initMap() {
+ // Import the needed libraries.
+ const [{ InfoWindow }, { AdvancedMarkerElement }, { Place }] = await Promise.all([
+ google.maps.importLibrary('maps'),
+ google.maps.importLibrary('marker'),
+ google.maps.importLibrary('places'),
+ ]);
+ innerMap = mapElement.innerMap;
+
+ // Create a new Place instance.
+ const place = new Place({
+ id: 'ChIJpyiwa4Zw44kRBQSGWKv4wgA', // Faneuil Hall Marketplace, Boston, MA
+ });
+ // Call fetchFields, passing 'reviews' and other needed fields.
+ await place.fetchFields({
+ fields: ['displayName', 'formattedAddress', 'location', 'reviews'],
+ });
+ // Create an HTML container.
+ const content = document.createElement('div');
+ const title = document.createElement('div');
+ const rating = document.createElement('div');
+ const address = document.createElement('div');
+ const review = document.createElement('div');
+ const authorLink = document.createElement('a');
+ // If there are any reviews display the first one.
+ if (place.reviews && place.reviews.length > 0) {
+ // Get info for the first review.
+ const reviewRating = place.reviews[0].rating;
+ const reviewText = place.reviews[0].text;
+ const authorName = place.reviews[0].authorAttribution.displayName;
+ const authorUri = place.reviews[0].authorAttribution.uri;
+ // Safely populate the HTML.
+ title.textContent = place.displayName || '';
+ address.textContent = place.formattedAddress || '';
+ rating.textContent = `Rating: ${reviewRating} stars`;
+ review.textContent = reviewText || '';
+ authorLink.textContent = authorName;
+ authorLink.href = authorUri || '';
+ authorLink.target = '_blank';
+ content.appendChild(title);
+ content.appendChild(address);
+ content.appendChild(rating);
+ content.appendChild(review);
+ content.appendChild(authorLink);
+ }
+ else {
+ content.textContent =
+ `No reviews were found for ${place.displayName}.`;
+ }
+ // Create an infowindow to display the review.
+ infoWindow = new InfoWindow({
+ content,
+ ariaLabel: place.displayName,
+ });
+
+ // Add a marker.
+ const marker = new AdvancedMarkerElement({
+ map: innerMap,
+ position: place.location,
+ title: place.displayName,
+ });
+ innerMap.setCenter(place.location);
+ // Show the info window.
+ infoWindow.open({
+ anchor: marker,
+ map: innerMap,
+ });
+}
+initMap();
+
diff --git a/index.html b/index.html
index 1b5245c4..02f85042 100644
--- a/index.html
+++ b/index.html
@@ -71,6 +71,7 @@ Maps JSAPI Samples
place-autocomplete-map
place-class
place-nearby-search
+ place-reviews
place-text-search
places-autocomplete-addressform
react-ui-kit-place-details
diff --git a/package-lock.json b/package-lock.json
index e5a4b1a5..8b30b48f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -58,7 +58,6 @@
"integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/code-frame": "^7.27.1",
"@babel/generator": "^7.28.5",
@@ -1453,6 +1452,10 @@
"resolved": "samples/place-nearby-search",
"link": true
},
+ "node_modules/@js-api-samples/place-reviews": {
+ "resolved": "samples/place-reviews",
+ "link": true
+ },
"node_modules/@js-api-samples/place-text-search": {
"resolved": "samples/place-text-search",
"link": true
@@ -1993,7 +1996,6 @@
"integrity": "sha512-b9ll4jaFYfXSv6NZAOJ2P0uuyT/Doel7ho2AHLSUz2thtcL6HEb2+qdV2f9wriVvbEoPAj9VuSOgNc0t0f5iMw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@mischnic/json-sourcemap": "^0.1.1",
"@parcel/cache": "2.16.3",
@@ -4246,7 +4248,6 @@
"integrity": "sha512-gWEkeiyYE4vqjON/+Obqcoeffmk0NF15WSBwSs7zwVA2bAbTaE0SJ7P0WNGoJn8uE7fiaV5a7dKYIJriEqOrmA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"undici-types": "~7.16.0"
}
@@ -4257,7 +4258,6 @@
"integrity": "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"csstype": "^3.2.2"
}
@@ -4324,7 +4324,6 @@
"integrity": "sha512-N9lBGA9o9aqb1hVMc9hzySbhKibHmB+N3IpoShyV6HyQYRGIhlrO5rQgttypi+yEeKsKI4idxC8Jw6gXKD4THA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@typescript-eslint/scope-manager": "8.49.0",
"@typescript-eslint/types": "8.49.0",
@@ -4577,7 +4576,6 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
- "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -4719,7 +4717,6 @@
"url": "https://github.com/sponsors/ai"
}
],
- "peer": true,
"dependencies": {
"caniuse-lite": "^1.0.30001737",
"electron-to-chromium": "^1.5.211",
@@ -5152,7 +5149,6 @@
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
@@ -5237,19 +5233,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint/node_modules/@eslint/js": {
- "version": "9.39.1",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz",
- "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://eslint.org/donate"
- }
- },
"node_modules/eslint/node_modules/brace-expansion": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
@@ -5819,6 +5802,7 @@
"os": [
"android"
],
+ "peer": true,
"engines": {
"node": ">= 12.0.0"
},
@@ -5840,6 +5824,7 @@
"os": [
"darwin"
],
+ "peer": true,
"engines": {
"node": ">= 12.0.0"
},
@@ -5861,6 +5846,7 @@
"os": [
"darwin"
],
+ "peer": true,
"engines": {
"node": ">= 12.0.0"
},
@@ -5882,6 +5868,7 @@
"os": [
"freebsd"
],
+ "peer": true,
"engines": {
"node": ">= 12.0.0"
},
@@ -5903,6 +5890,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">= 12.0.0"
},
@@ -5924,6 +5912,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">= 12.0.0"
},
@@ -5945,6 +5934,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">= 12.0.0"
},
@@ -5966,6 +5956,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">= 12.0.0"
},
@@ -5987,6 +5978,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">= 12.0.0"
},
@@ -6008,6 +6000,7 @@
"os": [
"win32"
],
+ "peer": true,
"engines": {
"node": ">= 12.0.0"
},
@@ -6029,6 +6022,7 @@
"os": [
"win32"
],
+ "peer": true,
"engines": {
"node": ">= 12.0.0"
},
@@ -7364,7 +7358,6 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -7469,7 +7462,6 @@
"resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz",
"integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==",
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -7479,7 +7471,6 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz",
"integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==",
"license": "MIT",
- "peer": true,
"dependencies": {
"scheduler": "^0.27.0"
},
@@ -7789,7 +7780,6 @@
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -7954,7 +7944,6 @@
"integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"esbuild": "^0.27.0",
"fdir": "^6.5.0",
@@ -8407,6 +8396,10 @@
"name": "@js-api-samples/place-nearby-search",
"version": "1.0.0"
},
+ "samples/place-reviews": {
+ "name": "@js-api-samples/place-reviews",
+ "version": "1.0.0"
+ },
"samples/place-text-search": {
"name": "@js-api-samples/place-text-search",
"version": "1.0.0"
@@ -8514,7 +8507,7 @@
"name": "@js-api-samples/react-ui-kit-place-details-latlng-compact",
"version": "1.0.0",
"dependencies": {
- "@vis.gl/react-google-maps": "*",
+ "@vis.gl/react-google-maps": "latest",
"react": "^19.2.1",
"react-dom": "^19.2.3"
},