diff --git a/samples/dds-datasets-polygon-click/README.md b/samples/dds-datasets-polygon-click/README.md
new file mode 100644
index 00000000..9712a770
--- /dev/null
+++ b/samples/dds-datasets-polygon-click/README.md
@@ -0,0 +1,41 @@
+# Google Maps JavaScript Sample
+
+## dds-datasets-polygon-click
+
+This sample shows how to make data features respond to mouse events.
+
+## Setup
+
+### Before starting run:
+
+`npm i`
+
+### Run an example on a local web server
+
+`cd samples/dds-datasets-polygon-click`
+`npm start`
+
+### Build an individual example
+
+`cd samples/dds-datasets-polygon-click`
+`npm run build`
+
+From 'samples':
+
+`npm run build --workspace=dds-datasets-polygon-click/`
+
+### Build all of the examples.
+
+From 'samples':
+
+`npm run build-all`
+
+### Run lint to check for problems
+
+`cd samples/dds-datasets-polygon-click`
+`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/samples/dds-datasets-polygon-click/index.html b/samples/dds-datasets-polygon-click/index.html
new file mode 100644
index 00000000..2afa29fc
--- /dev/null
+++ b/samples/dds-datasets-polygon-click/index.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+ Style a polygon data feature
+
+
+
+
+
+
+
+
+
+ Data source: NYC Open Data
+
+
+
+
+
diff --git a/samples/dds-datasets-polygon-click/index.ts b/samples/dds-datasets-polygon-click/index.ts
new file mode 100644
index 00000000..fbf26529
--- /dev/null
+++ b/samples/dds-datasets-polygon-click/index.ts
@@ -0,0 +1,109 @@
+/**
+ * @license
+ * Copyright 2026 Google LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+// [START maps_dds_datasets_polygon_click]
+const mapElement = document.querySelector('gmp-map') as google.maps.MapElement;
+let innerMap;
+let lastInteractedFeatureIds: string[] = [];
+let lastClickedFeatureIds: string[] = [];
+let datasetLayer;
+
+// [START maps_dds_datasets_polygon_click_eventhandler]
+// Note, 'globalid' is an attribute in this Dataset.
+function handleClick(/* MouseEvent */ e) {
+ if (e.features) {
+ lastClickedFeatureIds = e.features.map(
+ (f) => f.datasetAttributes['globalid']
+ );
+ }
+ datasetLayer.style = applyStyle;
+}
+
+function handleMouseMove(/* MouseEvent */ e) {
+ if (e.features) {
+ lastInteractedFeatureIds = e.features.map(
+ (f) => f.datasetAttributes['globalid']
+ );
+ }
+ datasetLayer.style = applyStyle;
+}
+// [END maps_dds_datasets_polygon_click_eventhandler]
+
+async function initMap() {
+ // Request needed libraries.
+ (await google.maps.importLibrary('maps')) as google.maps.MapsLibrary;
+
+ // Get the inner map.
+ innerMap = mapElement.innerMap;
+
+ // Dataset ID for NYC park data.
+ const datasetId = 'a75dd002-ad20-4fe6-af60-27cd2ed636b4';
+
+ // [START maps_dds_datasets_polygon_click_addlistener]
+ datasetLayer = innerMap.getDatasetFeatureLayer(datasetId);
+ datasetLayer.style = applyStyle;
+
+ datasetLayer.addListener('click', handleClick);
+ datasetLayer.addListener('mousemove', handleMouseMove);
+
+ // Map event listener.
+ innerMap.addListener('mousemove', () => {
+ // If the map gets a mousemove, that means there are no feature layers
+ // with listeners registered under the mouse, so we clear the last
+ // interacted feature ids.
+ if (lastInteractedFeatureIds?.length) {
+ lastInteractedFeatureIds = [];
+ datasetLayer.style = applyStyle;
+ }
+ });
+ // [END maps_dds_datasets_polygon_click_addlistener]
+}
+
+// [START maps_dds_datasets_polygon_click_stylefunction]
+const styleDefault = {
+ strokeColor: 'green',
+ strokeWeight: 2.0,
+ strokeOpacity: 1.0,
+ fillColor: 'green',
+ fillOpacity: 0.3,
+};
+
+const styleClicked = {
+ ...styleDefault,
+ strokeColor: 'blue',
+ fillColor: 'blue',
+ fillOpacity: 0.5,
+};
+
+const styleMouseMove = {
+ ...styleDefault,
+ strokeWeight: 4.0,
+};
+
+function applyStyle(/* FeatureStyleFunctionOptions */ params) {
+ const datasetFeature = params.feature;
+
+ // Note, 'globalid' is an attribute in this dataset.
+ if (
+ lastClickedFeatureIds.includes(
+ datasetFeature.datasetAttributes['globalid']
+ )
+ ) {
+ return styleClicked;
+ }
+
+ if (
+ lastInteractedFeatureIds.includes(
+ datasetFeature.datasetAttributes['globalid']
+ )
+ ) {
+ return styleMouseMove;
+ }
+ return styleDefault;
+}
+// [END maps_dds_datasets_polygon_click_stylefunction]
+
+initMap();
+// [END maps_dds_datasets_polygon_click]
diff --git a/samples/dds-datasets-polygon-click/package.json b/samples/dds-datasets-polygon-click/package.json
new file mode 100644
index 00000000..3b76c62c
--- /dev/null
+++ b/samples/dds-datasets-polygon-click/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "@js-api-samples/dds-datasets-polygon-click",
+ "version": "1.0.0",
+ "scripts": {
+ "build": "tsc && bash ../jsfiddle.sh dds-datasets-polygon-click && bash ../app.sh dds-datasets-polygon-click && bash ../docs.sh dds-datasets-polygon-click && npm run build:vite --workspace=. && bash ../dist.sh dds-datasets-polygon-click",
+ "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/samples/dds-datasets-polygon-click/style.css b/samples/dds-datasets-polygon-click/style.css
new file mode 100644
index 00000000..f9de7495
--- /dev/null
+++ b/samples/dds-datasets-polygon-click/style.css
@@ -0,0 +1,24 @@
+/**
+ * @license
+ * Copyright 2026 Google LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+/* [START maps_dds_datasets_polygon_click] */
+/*
+ * Optional: Makes the sample page fill the window.
+ */
+html,
+body {
+ height: 100%;
+ margin: 0;
+ padding: 0;
+}
+
+#attribution {
+ background-color: rgba(255, 255, 255, 0.7);
+ font-family: 'Roboto', 'Arial', 'sans-serif';
+ font-size: 10px;
+ padding: 2px;
+ margin: 2px;
+}
+/* [END maps_dds_datasets_polygon_click] */
diff --git a/samples/dds-datasets-polygon-click/tsconfig.json b/samples/dds-datasets-polygon-click/tsconfig.json
new file mode 100644
index 00000000..366aabb0
--- /dev/null
+++ b/samples/dds-datasets-polygon-click/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "compilerOptions": {
+ "module": "esnext",
+ "target": "esnext",
+ "strict": true,
+ "noImplicitAny": false,
+ "lib": [
+ "es2015",
+ "esnext",
+ "es6",
+ "dom",
+ "dom.iterable"
+ ],
+ "moduleResolution": "Node",
+ "jsx": "preserve"
+ }
+}