diff --git a/src/components/replicator-coverage/ReplicatorCoverage.tsx b/src/components/replicator-coverage/ReplicatorCoverage.tsx
index 184f3812e..0463e2d6c 100644
--- a/src/components/replicator-coverage/ReplicatorCoverage.tsx
+++ b/src/components/replicator-coverage/ReplicatorCoverage.tsx
@@ -89,6 +89,23 @@ function StrategyBadge({
);
}
+function ResourceType({ value }: { value: string }) {
+ return (
+ <>
+ {value.split('::').map((part, index) => (
+
+
{resource.single && (
@@ -220,7 +247,10 @@ function ResourceDetails({ resource }: { resource: ResourceCoverage }) {
{resource.resource_tree && (
-
+
{resource.resource_tree.resources.map((r) => (
({ ...prev, [resourceType]: !prev[resourceType] }));
return (
-
+
toggle(resource.resource_type)}
aria-expanded={isOpen}
- className="replicator-row w-full grid items-start gap-x-3 gap-y-2 grid-cols-[1.75rem_minmax(0,1fr)] md:grid-cols-[1.75rem_minmax(0,1fr)_9rem_minmax(0,14rem)] md:items-center hover:bg-[var(--sl-color-gray-6)] transition-colors"
+ className="replicator-row w-full hover:bg-[var(--sl-color-gray-6)] transition-colors"
style={{
background: 'transparent',
border: 'none',
@@ -377,31 +411,25 @@ export default function ReplicatorCoverage() {
}}
/>
- {resource.resource_type}
+
diff --git a/src/content/docs/aws/getting-started/ci-cd.mdx b/src/content/docs/aws/getting-started/ci-cd.mdx
index 62728fb73..37ddba77f 100644
--- a/src/content/docs/aws/getting-started/ci-cd.mdx
+++ b/src/content/docs/aws/getting-started/ci-cd.mdx
@@ -203,7 +203,7 @@ Most CI jobs should start with a clean LocalStack instance. A fresh instance mak
If your pipeline needs state across jobs or workflow stages, use one of the state management options documented outside this getting started page:
- [Cloud Pods](/aws/developer-tools/snapshots/cloud-pods/) to save and restore named LocalStack state snapshots.
-- [State export and import](/aws/developer-tools/snapshots/export-import-state/) to move state through artifacts or caches.
+- [State export and import](/aws/developer-tools/snapshots/saving-snapshots-locally/) to move state through artifacts or caches.
- [Persistence](/aws/developer-tools/snapshots/persistence/) when the same runner keeps a mounted LocalStack volume.
## Next steps
diff --git a/src/content/docs/snowflake/features/glue-catalog.md b/src/content/docs/snowflake/features/glue-catalog.md
index f93c9e27a..9a7f1a1a3 100644
--- a/src/content/docs/snowflake/features/glue-catalog.md
+++ b/src/content/docs/snowflake/features/glue-catalog.md
@@ -12,7 +12,7 @@ The Snowflake emulator can connect to this Glue Iceberg REST endpoint through a
## Getting started
-This guide walks through creating an Iceberg table in S3 Tables through the Glue Iceberg REST endpoint, registering that table with the Snowflake emulator through a Glue catalog integration, and querying it with SQL. It assumes basic knowledge of the AWS CLI, our [`awslocal`](/aws/connecting/aws-cli/#localstack-aws-cli-awslocal) wrapper, and Snowflake.
+This guide walks through creating an Iceberg table in S3 Tables through the Glue Iceberg REST endpoint, registering that table with the Snowflake emulator through a Glue catalog integration, and querying it with SQL. It assumes basic knowledge of the AWS CLI, our [`awslocal`](/aws/connecting/infrastructure-as-code/deprecated-wrapper-scripts/#awslocal) wrapper, and Snowflake.
In this guide, you will:
diff --git a/src/content/docs/snowflake/tutorials/aws-lambda-localstack-snowpark.md b/src/content/docs/snowflake/tutorials/aws-lambda-localstack-snowpark.md
index 368123de1..6ea49567b 100644
--- a/src/content/docs/snowflake/tutorials/aws-lambda-localstack-snowpark.md
+++ b/src/content/docs/snowflake/tutorials/aws-lambda-localstack-snowpark.md
@@ -21,7 +21,7 @@ The code in this tutorial is available on [GitHub](https://github.com/localstack
- [`localstack` CLI](/snowflake/getting-started/) with a [`LOCALSTACK_AUTH_TOKEN`](/snowflake/getting-started/auth-token/)
- [LocalStack for Snowflake](/snowflake/getting-started/)
-- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) & [`awslocal` wrapper](/aws/connecting/aws-cli/#localstack-aws-cli-awslocal)
+- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) & [`awslocal` wrapper](/aws/connecting/infrastructure-as-code/deprecated-wrapper-scripts/#awslocal)
- Python 3.10 installed locally
## Create the Lambda function
diff --git a/src/content/docs/snowflake/tutorials/s3-tables-iceberg-integration.md b/src/content/docs/snowflake/tutorials/s3-tables-iceberg-integration.md
index b8498733e..6eddabfd8 100644
--- a/src/content/docs/snowflake/tutorials/s3-tables-iceberg-integration.md
+++ b/src/content/docs/snowflake/tutorials/s3-tables-iceberg-integration.md
@@ -20,7 +20,7 @@ With LocalStack's Snowflake emulator, you can create catalog integrations that c
- [`localstack` CLI](/snowflake/getting-started/) with a [`LOCALSTACK_AUTH_TOKEN`](/snowflake/getting-started/auth-token/)
- [LocalStack for Snowflake](/snowflake/getting-started/)
-- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) & [`awslocal` wrapper](/aws/connecting/aws-cli/#localstack-aws-cli-awslocal)
+- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) & [`awslocal` wrapper](/aws/connecting/infrastructure-as-code/deprecated-wrapper-scripts/#awslocal)
- Python 3.10+ with `pyiceberg` and `pyarrow` installed
## Start LocalStack
diff --git a/src/styles/global.css b/src/styles/global.css
index f6c42660e..118e82889 100644
--- a/src/styles/global.css
+++ b/src/styles/global.css
@@ -74,6 +74,77 @@ h3 {
}
}
+/* The coverage component can be narrower than the viewport when Starlight sidebars are visible. */
+.replicator-coverage {
+ container-type: inline-size;
+}
+
+.replicator-coverage-header,
+.replicator-row {
+ display: grid;
+ grid-template-columns: 1.75rem minmax(0, 1fr) 9rem minmax(0, 14rem);
+ align-items: center;
+ gap: 12px;
+}
+
+.replicator-resource-type {
+ display: block;
+ min-width: 0;
+ max-width: 100%;
+ padding: 2px 6px;
+ white-space: normal;
+ overflow-wrap: normal;
+ word-break: normal;
+}
+
+.replicator-service,
+.replicator-strategies {
+ min-width: 0;
+}
+
+.replicator-mobile-label {
+ display: none;
+}
+
+.replicator-policy-list code,
+.replicator-related-resources code,
+.replicator-identifier {
+ display: inline-block;
+ max-width: 100%;
+ overflow-x: auto;
+}
+
+@container (max-width: 46rem) {
+ .replicator-coverage-header {
+ display: none;
+ }
+
+ .replicator-row {
+ grid-template-columns: 1.75rem minmax(0, 1fr);
+ align-items: start;
+ }
+
+ .replicator-resource-type,
+ .replicator-service,
+ .replicator-strategies {
+ grid-column: 2;
+ }
+
+ .replicator-mobile-label {
+ display: inline;
+ }
+}
+
+@container (max-width: 24rem) {
+ .replicator-row {
+ padding: 12px !important;
+ }
+
+ .replicator-details {
+ padding: 16px !important;
+ }
+}
+
/* Product Cards Styles */
.product-card {
color: #ffffff !important;