diff --git a/CHANGELOG.md b/CHANGELOG.md
index 31b5c36..5510a35 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -313,6 +313,135 @@
- Add trailing newlines to all source files (a970f94)
# Changelog for v1.0.0
+## [1.5.2] - 2026-03-28
+
+### ✨ Features
+
+- make all API URLs configurable via VITE_API_BASE_URL env variable (f9da460)
+- full docs redesign with Stripe-style layout and updated response examples (6a7e4f8)
+- add i18n support for all hardcoded text (EN + ID translations) (02aa5d4)
+- add back glossary section with Stripe-style design (cce1f72)
+- use CodeBlock with Prism syntax highlighting in CodePanel (9ba36b3)
+- restore full glossary with KaTeX formulas and calculation examples (ae58468)
+
+### 🐛 Bug Fixes
+
+- remove trigger-deploy job (WORKFLOW_TOKEN not available, rely on PAT tag push) (aab8593)
+- use WORKFLOW_PAT org secret instead of WORKFLOW_TOKEN (7d3c22f)
+- do not split components chunk, keep prismjs co-located with CodeBlock (544d03a)
+- expose Prism to window before language plugins load (3ba7d20)
+- import Prism from prism-setup to ensure window.Prism is set before plugins (2bc66e9)
+- restore CodeBlock.vue with correct prism-setup import (662f463)
+- use static imports for prism language plugins (no require, proper ES module) (55a8e1c)
+- do not assign prismjs to manual chunk, let rollup co-locate with importer (40e56cb)
+- add pnpm.overrides to match lockfile (prevents LOCKFILE_CONFIG_MISMATCH in Docker) (e1c6d62)
+- pin pnpm to 10.15.1 in Dockerfile to match CI (9a273e9)
+- accept both v-prefixed and plain semver tags in deploy trigger (31fe5ac)
+- exclude prismjs from vendor chunk so it co-locates with its consumers (2b4c4ea)
+- use tag push trigger instead of release published to prevent duplicate deploy runs (af978de)
+- resolve lint error in DocSidebar and unused import in Home (3d18d5b)
+- remove duplicate release-branch-creation workflow (handled by reusable workflow) (ceda3e1)
+- use CodePanel component for glossary formula code blocks (21faf3f)
+- show correct parameters for each endpoint (73f3a90)
+- use Prism.highlight() instead of highlightElement() for reactive code rendering (81efb31)
+- improve mobile responsiveness - remove horizontal overflow (f6d3bcc)
+- remove overflow-hidden from api-section-grid children, add body max-width (f54e333)
+- resolve remaining mobile overflow issues in glossary and API section (5ae0088)
+
+### 📚 Documentation
+
+- update changelog for v1.3.3 (5e9fb75)
+- update changelog for 1.3.4 (0bcfe71)
+- update changelog for 1.3.5 (81272a1)
+- update changelog for 1.3.6 (8f0e9a1)
+- update changelog for 1.3.7 (9832774)
+- update changelog for 1.3.8 (a9e1b8d)
+- update changelog for 1.4.0 (f9b08c0)
+- update changelog for 1.4.1 (1e5fe80)
+- update changelog for 1.4.2 (6e890ff)
+- update changelog for 1.4.3 (a77da18)
+- update changelog for 1.4.4 (e3f6b3c)
+- update changelog for 1.5.0 (a010b16)
+- update changelog for 1.5.1 (46cb6ea)
+
+### 🔧 Chores
+
+- bump version to v1.4.0 for next development cycle (2c0abcd)
+- back-merge v1.3.0 to develop (7cace92)
+- back-merge v1.3.1 to develop (66490af)
+- back-merge v1.3.2 to develop (7b22074)
+- back-merge v1.3.3 to develop (473940f)
+- prepare v1.3.4 hotfix (7f6ef19)
+- bump version to 1.3.4 (e5ffb13)
+- back-merge 1.3.4 to develop (44abde5)
+- prepare v1.3.5 hotfix (5ef9462)
+- bump version to 1.3.5 (54181e6)
+- back-merge 1.3.5 to develop (6b81bdf)
+- prepare v1.3.6 hotfix (c029ec4)
+- bump version to 1.3.6 (c2aba95)
+- back-merge 1.3.6 to develop (05d7997)
+- prepare v1.3.7 hotfix (9df6c2e)
+- bump version to 1.3.7 (3cd0540)
+- regenerate pnpm-lock.yaml after adding pnpm.overrides (e0a905e)
+- back-merge 1.3.7 to develop (e1f8738)
+- bump version to 1.3.8 (66900c4)
+- back-merge 1.3.8 to develop (a712d80)
+- prepare v1.4.0 release (8a52e4e)
+- bump version to v1.5.0 for next development cycle (814713a)
+- bump version to 1.4.1 (5f14ac9)
+- back-merge 1.4.1 to develop (550ee8f)
+- bump version to 1.4.2 (27c5b5c)
+- back-merge 1.4.2 to develop (2036271)
+- back-merge 1.4.3 to develop (beace1a)
+- back-merge 1.4.4 to develop (718613c)
+- bump version to 1.5.1 (e132081)
+- bump version to 1.5.2 (f209cd2)
+
+### 📝 Other Changes
+
+- Merge pull request #48 from banua-coder/chore/bump-version-to-v1.4.0-dev (31cdfb8)
+- Merge pull request #51 from banua-coder/chore/back-merge-v1.3.0 (05c32bc)
+- Merge pull request #54 from banua-coder/chore/back-merge-v1.3.1 (d939de7)
+- Merge pull request #57 from banua-coder/chore/back-merge-v1.3.2 (dd4974b)
+- Merge pull request #60 from banua-coder/chore/back-merge-v1.3.3 (80eb69c)
+- Merge pull request #61 from banua-coder/chore/prepare-hotfix-v1.3.4 (1108df2)
+- Merge pull request #62 from banua-coder/hotfix/1.3.4 (b4dbfcc)
+- Merge pull request #63 from banua-coder/chore/back-merge-1.3.4 (9b7df39)
+- Merge pull request #64 from banua-coder/chore/prepare-hotfix-v1.3.5 (8eef46c)
+- Merge pull request #65 from banua-coder/hotfix/1.3.5 (132d70e)
+- Merge pull request #66 from banua-coder/chore/back-merge-1.3.5 (8d99044)
+- Merge pull request #67 from banua-coder/chore/prepare-hotfix-v1.3.6 (6a2e396)
+- Merge pull request #68 from banua-coder/hotfix/1.3.6 (985bc35)
+- Merge pull request #69 from banua-coder/chore/back-merge-1.3.6 (4e7f847)
+- Merge pull request #70 from banua-coder/chore/prepare-hotfix-v1.3.7 (72c249a)
+- Merge pull request #71 from banua-coder/hotfix/1.3.7 (95df5e9)
+- Merge pull request #72 from banua-coder/chore/back-merge-1.3.7 (ad3828c)
+- Merge pull request #74 from banua-coder/hotfix/1.3.8 (ae7c28f)
+- Merge pull request #75 from banua-coder/chore/back-merge-1.3.8 (9eef133)
+- Merge pull request #76 from banua-coder/fix/remove-duplicate-deploy-trigger (3ed94ef)
+- Merge pull request #77 from banua-coder/feature/configurable-api-url (b150a5a)
+- Merge pull request #78 from banua-coder/feature/docs-redesign-stripe-style (910c96d)
+- Merge pull request #79 from banua-coder/chore/prepare-release-v1.4.0 (87c0b06)
+- Merge pull request #81 from banua-coder/chore/bump-version-to-v1.5.0-dev (2c10b45)
+- Merge pull request #80 from banua-coder/release/1.4.0 (75657a2)
+- Merge pull request #85 from banua-coder/chore/back-merge-1.4.0 (756950a)
+- Merge pull request #86 from banua-coder/hotfix/1.4.1 (9e66e9f)
+- Merge pull request #87 from banua-coder/chore/back-merge-1.4.1 (bb9f6a1)
+- Merge pull request #88 from banua-coder/hotfix/1.4.2 (46b02da)
+- hotfix(glossary): full editorial redesign - replace AI-generic card layout with clean editorial style (4586fd2)
+- Merge pull request #89 from banua-coder/chore/back-merge-1.4.2 (338d433)
+- Merge pull request #90 from banua-coder/hotfix/1.4.3 (f44ef6e)
+- hotfix(1.4.4): sidebar scroll-spy, version badge, code tabs light mode, glossary padding, real API responses (48f0df3)
+- Merge pull request #91 from banua-coder/chore/back-merge-1.4.3 (66ecde0)
+- Merge pull request #92 from banua-coder/hotfix/1.4.4 (05a61ef)
+- Merge pull request #94 from banua-coder/chore/back-merge-1.4.4 (a08096c)
+- Merge pull request #95 from banua-coder/fix/mobile-responsiveness (97e0960)
+- Merge pull request #96 from banua-coder/release/1.5.0 (53ee259)
+- hotfix: make math formulas, code blocks, and params table scrollable on mobile (73dae93)
+- Merge pull request #101 from banua-coder/hotfix/1.5.1 (894f219)
+- hotfix(1.5.2): fix overflow clipping in section containers (285f747)
+- Merge pull request #103 from banua-coder/hotfix/1.5.2 (09fdfd9)
+
## [1.5.1] - 2026-03-28
### ✨ Features
diff --git a/src/components/ApiSection.vue b/src/components/ApiSection.vue
index ef560b4..bac9862 100644
--- a/src/components/ApiSection.vue
+++ b/src/components/ApiSection.vue
@@ -2,9 +2,9 @@
-
-
{{ method }}
-
{{ endpoint }}
+
+ {{ method }}
+ {{ endpoint }}
{{ description }}
diff --git a/src/components/CodeBlock.vue b/src/components/CodeBlock.vue
index afea03d..9fcb429 100644
--- a/src/components/CodeBlock.vue
+++ b/src/components/CodeBlock.vue
@@ -267,7 +267,7 @@ onMounted(() => {
.code-block-wrapper {
@apply rounded-lg my-4 transition-colors duration-200;
@apply border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-900;
- overflow: hidden; /* keep border-radius clipping */
+ overflow-x: auto; /* allow horizontal scroll */
max-width: 100%;
}
diff --git a/src/components/ParamsTable.vue b/src/components/ParamsTable.vue
index 3345f51..dbcf83d 100644
--- a/src/components/ParamsTable.vue
+++ b/src/components/ParamsTable.vue
@@ -1,7 +1,7 @@
{{ title || t('docs.table.queryParameters') }}
-
+
diff --git a/src/components/documentation/AuthenticationSection.vue b/src/components/documentation/AuthenticationSection.vue
index a3c9e45..4cc505f 100644
--- a/src/components/documentation/AuthenticationSection.vue
+++ b/src/components/documentation/AuthenticationSection.vue
@@ -5,7 +5,7 @@
{{ t('documentation.authentication.subtitle') }}
-
+
{{ t('documentation.authentication.title') }}
{{ t('documentation.authentication.subtitle') }}
diff --git a/src/components/documentation/ErrorHandlingSection.vue b/src/components/documentation/ErrorHandlingSection.vue
index c47a5ef..53d0a48 100644
--- a/src/components/documentation/ErrorHandlingSection.vue
+++ b/src/components/documentation/ErrorHandlingSection.vue
@@ -5,7 +5,7 @@
{{ t('documentation.errorHandling.subtitle') }}
-
+
{{ t('documentation.errorHandling.title') }}
{{ t('documentation.errorHandling.subtitle') }}
diff --git a/src/components/documentation/GlossarySection.vue b/src/components/documentation/GlossarySection.vue
index dafbbe3..05c65fd 100644
--- a/src/components/documentation/GlossarySection.vue
+++ b/src/components/documentation/GlossarySection.vue
@@ -28,7 +28,7 @@
-
+
@@ -46,17 +46,17 @@
{{ t('documentation.glossary.reproductionRate.interpretation') }}
-
-
Rt > 1
-
{{ t('documentation.glossary.reproductionRate.growing') }}
+
+ Rt > 1
+ {{ t('documentation.glossary.reproductionRate.growing') }}
-
-
Rt = 1
-
{{ t('documentation.glossary.reproductionRate.stable') }}
+
+ Rt = 1
+ {{ t('documentation.glossary.reproductionRate.stable') }}
-
-
Rt < 1
-
{{ t('documentation.glossary.reproductionRate.declining') }}
+
+ Rt < 1
+ {{ t('documentation.glossary.reproductionRate.declining') }}
@@ -110,9 +110,10 @@
-
+
+
+
+
@@ -125,7 +126,7 @@
-
+
@@ -184,7 +185,7 @@
-
+
{{ t('documentation.glossary.reproductionRate.practicalExample.step3.detailedCalculations.lowerBoundStep.title') }}
{{ t('documentation.glossary.reproductionRate.practicalExample.step3.detailedCalculations.lowerBoundStep.formula') }}
@@ -273,7 +274,7 @@
-
+
{{ t('documentation.glossary.caseClassifications.title') }}
diff --git a/src/components/documentation/HealthCheckSection.vue b/src/components/documentation/HealthCheckSection.vue
index 2aeaf9b..f29afb7 100644
--- a/src/components/documentation/HealthCheckSection.vue
+++ b/src/components/documentation/HealthCheckSection.vue
@@ -5,7 +5,7 @@
{{ t('documentation.healthCheck.description') }}
-
+
diff --git a/src/components/documentation/HospitalsSection.vue b/src/components/documentation/HospitalsSection.vue
index 389960f..58091db 100644
--- a/src/components/documentation/HospitalsSection.vue
+++ b/src/components/documentation/HospitalsSection.vue
@@ -6,7 +6,7 @@
-
+
GET
@@ -66,7 +66,7 @@
-
+
GET
diff --git a/src/components/documentation/NationalHistoricalSection.vue b/src/components/documentation/NationalHistoricalSection.vue
index b371d92..6cc07b3 100644
--- a/src/components/documentation/NationalHistoricalSection.vue
+++ b/src/components/documentation/NationalHistoricalSection.vue
@@ -26,7 +26,7 @@
-
+
GET
diff --git a/src/components/documentation/NationalLatestSection.vue b/src/components/documentation/NationalLatestSection.vue
index 9220742..0f97c5f 100644
--- a/src/components/documentation/NationalLatestSection.vue
+++ b/src/components/documentation/NationalLatestSection.vue
@@ -5,7 +5,7 @@
{{ t('documentation.nationalLatest.description') }}
-
+
diff --git a/src/components/documentation/OverviewSection.vue b/src/components/documentation/OverviewSection.vue
index 514bc10..11b429c 100644
--- a/src/components/documentation/OverviewSection.vue
+++ b/src/components/documentation/OverviewSection.vue
@@ -14,7 +14,7 @@
-
+
{{ t('documentation.overview.gettingStarted') }}
{{ t('documentation.overview.gettingStartedSub') }}
diff --git a/src/components/documentation/ProvinceCasesSection.vue b/src/components/documentation/ProvinceCasesSection.vue
index 7e1bfa6..3230a8d 100644
--- a/src/components/documentation/ProvinceCasesSection.vue
+++ b/src/components/documentation/ProvinceCasesSection.vue
@@ -5,7 +5,7 @@
{{ t('documentation.provinceCases.description') }}
-
+
{{ t('documentation.provinceCases.endpoints') }}
{{ t('documentation.provinceCases.description') }}
diff --git a/src/components/documentation/ProvincesSection.vue b/src/components/documentation/ProvincesSection.vue
index 90f6c24..d3771cb 100644
--- a/src/components/documentation/ProvincesSection.vue
+++ b/src/components/documentation/ProvincesSection.vue
@@ -5,7 +5,7 @@
{{ t('documentation.provinces.description') }}
-
+
{{ t('documentation.provinces.endpoint') }}
{{ t('documentation.provinces.description') }}
diff --git a/src/components/documentation/RegenciesSection.vue b/src/components/documentation/RegenciesSection.vue
index 9f1132c..419f72d 100644
--- a/src/components/documentation/RegenciesSection.vue
+++ b/src/components/documentation/RegenciesSection.vue
@@ -6,7 +6,7 @@
-
+
GET
@@ -65,7 +65,7 @@
-
+
GET
@@ -99,7 +99,7 @@
-
+
GET
diff --git a/src/components/documentation/RootEndpointSection.vue b/src/components/documentation/RootEndpointSection.vue
index 83f5c38..55b8a1e 100644
--- a/src/components/documentation/RootEndpointSection.vue
+++ b/src/components/documentation/RootEndpointSection.vue
@@ -5,7 +5,7 @@
{{ t('documentation.rootEndpoint.description') }}
-
+
diff --git a/src/components/documentation/StatisticsSection.vue b/src/components/documentation/StatisticsSection.vue
index 6b837d7..933ec9c 100644
--- a/src/components/documentation/StatisticsSection.vue
+++ b/src/components/documentation/StatisticsSection.vue
@@ -6,7 +6,7 @@
-
+
GET
@@ -28,7 +28,7 @@
-
+
GET
@@ -52,7 +52,7 @@
-
+
GET
@@ -74,7 +74,7 @@
-
+
GET
diff --git a/src/components/documentation/TaskForcesSection.vue b/src/components/documentation/TaskForcesSection.vue
index c6ead1a..8d3d8e6 100644
--- a/src/components/documentation/TaskForcesSection.vue
+++ b/src/components/documentation/TaskForcesSection.vue
@@ -5,7 +5,7 @@
{{ t('documentation.taskForces.description') }}
-
+
GET
diff --git a/src/components/documentation/VaccinationSection.vue b/src/components/documentation/VaccinationSection.vue
index dd43dc3..97ed8db 100644
--- a/src/components/documentation/VaccinationSection.vue
+++ b/src/components/documentation/VaccinationSection.vue
@@ -6,7 +6,7 @@
-
+
GET
@@ -61,7 +61,7 @@
-
+
GET
@@ -85,7 +85,7 @@
-
+
GET
diff --git a/src/style.css b/src/style.css
index 6122d78..c3ce39c 100644
--- a/src/style.css
+++ b/src/style.css
@@ -19,6 +19,13 @@ body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
@apply bg-white dark:bg-gray-950 text-gray-900 dark:text-gray-100;
transition: background-color 0.15s ease, color 0.15s ease;
+ overflow-x: hidden;
+ max-width: 100vw;
+}
+
+#app {
+ overflow-x: hidden;
+ max-width: 100vw;
}
/* Skip link */
@@ -39,7 +46,7 @@ body {
.code-panel {
background: var(--code-bg);
border-radius: 8px;
- overflow: hidden;
+ overflow-x: auto;
}
.code-panel pre {
@@ -98,6 +105,12 @@ body {
}
}
+/* Prevent grid children from overflowing viewport */
+.api-section-grid > * {
+ min-width: 0;
+ max-width: 100%;
+}
+
/* Scrollbar styling */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }