diff --git a/packages/api-v4/.changeset/pr-11868-upcoming-features-1744170177040.md b/packages/api-v4/.changeset/pr-11868-upcoming-features-1744170177040.md
deleted file mode 100644
index 7865f422359..00000000000
--- a/packages/api-v4/.changeset/pr-11868-upcoming-features-1744170177040.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/api-v4": Upcoming Features
----
-
-Add schema validation for `edit alert` call in cloudpulse alerts ([#11868](https://github.com/linode/manager/pull/11868))
diff --git a/packages/api-v4/.changeset/pr-11941-tech-stories-1743701271429.md b/packages/api-v4/.changeset/pr-11941-tech-stories-1743701271429.md
deleted file mode 100644
index e4690c79a77..00000000000
--- a/packages/api-v4/.changeset/pr-11941-tech-stories-1743701271429.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/api-v4": Tech Stories
----
-
-Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
diff --git a/packages/api-v4/.changeset/pr-11976-changed-1744036917580.md b/packages/api-v4/.changeset/pr-11976-changed-1744036917580.md
deleted file mode 100644
index 192f823c78b..00000000000
--- a/packages/api-v4/.changeset/pr-11976-changed-1744036917580.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/api-v4": Changed
----
-
-Add VPC field to `LinodeIPsResponseIPV4` ([#11976](https://github.com/linode/manager/pull/11976))
diff --git a/packages/api-v4/.changeset/pr-11978-upcoming-features-1744016884259.md b/packages/api-v4/.changeset/pr-11978-upcoming-features-1744016884259.md
deleted file mode 100644
index f660454fd38..00000000000
--- a/packages/api-v4/.changeset/pr-11978-upcoming-features-1744016884259.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/api-v4": Upcoming Features
----
-
-Fix the iam api for put method ([#11978](https://github.com/linode/manager/pull/11978))
diff --git a/packages/api-v4/.changeset/pr-11995-added-1744149551930.md b/packages/api-v4/.changeset/pr-11995-added-1744149551930.md
deleted file mode 100644
index b95072ab94f..00000000000
--- a/packages/api-v4/.changeset/pr-11995-added-1744149551930.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/api-v4": Added
----
-
-`Linode Interfaces` to the `AccountCapability` type ([#11995](https://github.com/linode/manager/pull/11995))
diff --git a/packages/api-v4/.changeset/pr-11998-upcoming-features-1744205635852.md b/packages/api-v4/.changeset/pr-11998-upcoming-features-1744205635852.md
deleted file mode 100644
index 4516810804e..00000000000
--- a/packages/api-v4/.changeset/pr-11998-upcoming-features-1744205635852.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/api-v4": Upcoming Features
----
-
-fix the api to the right one for iam ([#11998](https://github.com/linode/manager/pull/11998))
diff --git a/packages/api-v4/.changeset/pr-12016-upcoming-features-1744641958354.md b/packages/api-v4/.changeset/pr-12016-upcoming-features-1744641958354.md
deleted file mode 100644
index db0fb9f6b90..00000000000
--- a/packages/api-v4/.changeset/pr-12016-upcoming-features-1744641958354.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/api-v4": Upcoming Features
----
-
-Rename `DeleteLinodeConfigInterfacePayload` to `DeleteInterfaceIds` ([#12016](https://github.com/linode/manager/pull/12016))
diff --git a/packages/api-v4/.changeset/pr-12027-upcoming-features-1744710990072.md b/packages/api-v4/.changeset/pr-12027-upcoming-features-1744710990072.md
deleted file mode 100644
index af5e0690ae9..00000000000
--- a/packages/api-v4/.changeset/pr-12027-upcoming-features-1744710990072.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/api-v4": Upcoming Features
----
-
-fix the api to the right one for iam ([#12027](https://github.com/linode/manager/pull/12027))
diff --git a/packages/api-v4/CHANGELOG.md b/packages/api-v4/CHANGELOG.md
index 8514e69fac1..2a2f3a43471 100644
--- a/packages/api-v4/CHANGELOG.md
+++ b/packages/api-v4/CHANGELOG.md
@@ -1,5 +1,26 @@
-## [2025-04-08] - v0.137.0
+## [2025-04-22] - v0.138.0
+
+### Added:
+
+- `Linode Interfaces` to the `AccountCapability` type ([#11995](https://github.com/linode/manager/pull/11995))
+
+### Changed:
+
+- Add VPC field to `LinodeIPsResponseIPV4` ([#11976](https://github.com/linode/manager/pull/11976))
+
+### Tech Stories:
+- Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
+
+### Upcoming Features:
+
+- Add schema validation for `edit alert` call in cloudpulse alerts ([#11868](https://github.com/linode/manager/pull/11868))
+- Fix the iam api for put method ([#11978](https://github.com/linode/manager/pull/11978))
+- fix the api to the right one for iam ([#11998](https://github.com/linode/manager/pull/11998))
+- Rename `DeleteLinodeConfigInterfacePayload` to `DeleteInterfaceIds` ([#12016](https://github.com/linode/manager/pull/12016))
+- fix the api to the right one for iam ([#12027](https://github.com/linode/manager/pull/12027))
+
+## [2025-04-08] - v0.137.0
### Added:
@@ -27,7 +48,6 @@
## [2025-03-25] - v0.136.0
-
### Added:
- Add and update `/v4beta/nodebalancers` endpoints for NB-VPC Integration ([#11811](https://github.com/linode/manager/pull/11811))
@@ -73,7 +93,6 @@
## [2025-02-11] - v0.134.0
-
### Added:
- Labels and Taints types and params ([#11528](https://github.com/linode/manager/pull/11528))
@@ -116,7 +135,6 @@
- Add types for Quotas endpoints ([#11493](https://github.com/linode/manager/pull/11493))
- Add Notification Channel related types to cloudpulse/alerts.ts ([#11511](https://github.com/linode/manager/pull/11511))
-
## [2025-01-14] - v0.132.0
### Added:
@@ -126,7 +144,7 @@
### Changed:
-- Type of `AlertDefinitionType` to `'system'|'user'` ([#11346](https://github.com/linode/manager/pull/11346))
+- Type of `AlertDefinitionType` to `'system'|'user'` ([#11346](https://github.com/linode/manager/pull/11346))
- Property names, and types of the CreateAlertDefinitionPayload and Alert interfaces ([#11392](https://github.com/linode/manager/pull/11392))
- BaseDatabase total_disk_size_gb and used_disk_size_gb are always expected and used_disk_size_gb can be null ([#11426](https://github.com/linode/manager/pull/11426))
- Renamed `AvailableMetrics` type to `MetricDefinition` ([#11433](https://github.com/linode/manager/pull/11433))
diff --git a/packages/api-v4/package.json b/packages/api-v4/package.json
index e497a194fcc..38f0b84b48f 100644
--- a/packages/api-v4/package.json
+++ b/packages/api-v4/package.json
@@ -1,6 +1,6 @@
{
"name": "@linode/api-v4",
- "version": "0.137.0",
+ "version": "0.138.0",
"homepage": "https://github.com/linode/manager/tree/develop/packages/api-v4",
"bugs": {
"url": "https://github.com/linode/manager/issues"
@@ -69,4 +69,4 @@
"tsc -p tsconfig.json --noEmit true --emitDeclarationOnly false"
]
}
-}
+}
\ No newline at end of file
diff --git a/packages/manager/.changeset/pr-11816-fixed-1742349641632.md b/packages/manager/.changeset/pr-11816-fixed-1742349641632.md
deleted file mode 100644
index 0589e79781f..00000000000
--- a/packages/manager/.changeset/pr-11816-fixed-1742349641632.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-Visual UI bug with Payment Amount adornment ([#11816](https://github.com/linode/manager/pull/11816))
diff --git a/packages/manager/.changeset/pr-11868-upcoming-features-1742271706713.md b/packages/manager/.changeset/pr-11868-upcoming-features-1742271706713.md
deleted file mode 100644
index d758b205d75..00000000000
--- a/packages/manager/.changeset/pr-11868-upcoming-features-1742271706713.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Enhance schema validation for cloudpulse create and edit alert flow and avoid type assertions ([#11868](https://github.com/linode/manager/pull/11868))
diff --git a/packages/manager/.changeset/pr-11906-fixed-1742567649683.md b/packages/manager/.changeset/pr-11906-fixed-1742567649683.md
deleted file mode 100644
index 015d42aa964..00000000000
--- a/packages/manager/.changeset/pr-11906-fixed-1742567649683.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-Pagination for subnets in VPC Subnet table ([#11906](https://github.com/linode/manager/pull/11906))
diff --git a/packages/manager/.changeset/pr-11906-fixed-1742567667084.md b/packages/manager/.changeset/pr-11906-fixed-1742567667084.md
deleted file mode 100644
index 9b1877fc086..00000000000
--- a/packages/manager/.changeset/pr-11906-fixed-1742567667084.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-IP incrementation in Subnet Create drawer ([#11906](https://github.com/linode/manager/pull/11906))
diff --git a/packages/manager/.changeset/pr-11906-tech-stories-1742567613345.md b/packages/manager/.changeset/pr-11906-tech-stories-1742567613345.md
deleted file mode 100644
index 589b14a18c9..00000000000
--- a/packages/manager/.changeset/pr-11906-tech-stories-1742567613345.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tech Stories
----
-
-VPC rerouting (TanStack) ([#11906](https://github.com/linode/manager/pull/11906))
diff --git a/packages/manager/.changeset/pr-11924-tech-stories-1743082255119.md b/packages/manager/.changeset/pr-11924-tech-stories-1743082255119.md
deleted file mode 100644
index d2c9b40cba3..00000000000
--- a/packages/manager/.changeset/pr-11924-tech-stories-1743082255119.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tech Stories
----
-
-Migrate Object Storage to Tanstack Router ([#11924](https://github.com/linode/manager/pull/11924))
diff --git a/packages/manager/.changeset/pr-11928-tests-1743086335061.md b/packages/manager/.changeset/pr-11928-tests-1743086335061.md
deleted file mode 100644
index 1a8edfb3e63..00000000000
--- a/packages/manager/.changeset/pr-11928-tests-1743086335061.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Add database configuration to test 2 node cluster and validate dbaas v2 create/summary view ([#11928](https://github.com/linode/manager/pull/11928))
diff --git a/packages/manager/.changeset/pr-11932-changed-1743106946509.md b/packages/manager/.changeset/pr-11932-changed-1743106946509.md
deleted file mode 100644
index 3fa41ea6700..00000000000
--- a/packages/manager/.changeset/pr-11932-changed-1743106946509.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Changed
----
-
-Disable Autocomplete search on touch devices ([#11932](https://github.com/linode/manager/pull/11932))
diff --git a/packages/manager/.changeset/pr-11934-upcoming-features-1743443080180.md b/packages/manager/.changeset/pr-11934-upcoming-features-1743443080180.md
deleted file mode 100644
index 191e72b6ed1..00000000000
--- a/packages/manager/.changeset/pr-11934-upcoming-features-1743443080180.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Disable Upgrade Interfaces feature for LKE Linodes and other conditions ([#11934](https://github.com/linode/manager/pull/11934))
diff --git a/packages/manager/.changeset/pr-11941-tech-stories-1743701285887.md b/packages/manager/.changeset/pr-11941-tech-stories-1743701285887.md
deleted file mode 100644
index 7beac16a8d3..00000000000
--- a/packages/manager/.changeset/pr-11941-tech-stories-1743701285887.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tech Stories
----
-
-Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
diff --git a/packages/manager/.changeset/pr-11943-upcoming-features-1743494415175.md b/packages/manager/.changeset/pr-11943-upcoming-features-1743494415175.md
deleted file mode 100644
index 40d3cef7c49..00000000000
--- a/packages/manager/.changeset/pr-11943-upcoming-features-1743494415175.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Enhance CloudPulse alerting resource selection section with maximum selection limitations ([#11943](https://github.com/linode/manager/pull/11943))
diff --git a/packages/manager/.changeset/pr-11944-changed-1743506054914.md b/packages/manager/.changeset/pr-11944-changed-1743506054914.md
deleted file mode 100644
index 1b523d5be17..00000000000
--- a/packages/manager/.changeset/pr-11944-changed-1743506054914.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Changed
----
-
-Remove min length validation for tag and added validation for empty string ([#11944](https://github.com/linode/manager/pull/11944))
diff --git a/packages/manager/.changeset/pr-11953-upcoming-features-1743614906461.md b/packages/manager/.changeset/pr-11953-upcoming-features-1743614906461.md
deleted file mode 100644
index 26f9bab4a56..00000000000
--- a/packages/manager/.changeset/pr-11953-upcoming-features-1743614906461.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Fix SubnetLinodeRow for Linodes using new interfaces ([#11953](https://github.com/linode/manager/pull/11953))
diff --git a/packages/manager/.changeset/pr-11955-removed-1743596163534.md b/packages/manager/.changeset/pr-11955-removed-1743596163534.md
deleted file mode 100644
index b004250bd76..00000000000
--- a/packages/manager/.changeset/pr-11955-removed-1743596163534.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Removed
----
-
-Move `getUserTimeZone` and its associated profile factories to `@linode/utilities` ([#11955](https://github.com/linode/manager/pull/11955))
diff --git a/packages/manager/.changeset/pr-11957-upcoming-features-1744304365513.md b/packages/manager/.changeset/pr-11957-upcoming-features-1744304365513.md
deleted file mode 100644
index 47fe90f096b..00000000000
--- a/packages/manager/.changeset/pr-11957-upcoming-features-1744304365513.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Add Edit Public Linode Interface Drawer ([#11957](https://github.com/linode/manager/pull/11957))
diff --git a/packages/manager/.changeset/pr-11958-tests-1743610427083.md b/packages/manager/.changeset/pr-11958-tests-1743610427083.md
deleted file mode 100644
index f1805971d36..00000000000
--- a/packages/manager/.changeset/pr-11958-tests-1743610427083.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Add `env:marketplaceApps`, `env:multipleRegions`, and `env:stackScripts` tags for Cypress tests ([#11958](https://github.com/linode/manager/pull/11958))
diff --git a/packages/manager/.changeset/pr-11961-tests-1743634308900.md b/packages/manager/.changeset/pr-11961-tests-1743634308900.md
deleted file mode 100644
index d165a7b28fa..00000000000
--- a/packages/manager/.changeset/pr-11961-tests-1743634308900.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Avoid selecting regions that do not support Machine Images in Image upload tests ([#11961](https://github.com/linode/manager/pull/11961))
diff --git a/packages/manager/.changeset/pr-11962-changed-1743652792312.md b/packages/manager/.changeset/pr-11962-changed-1743652792312.md
deleted file mode 100644
index 2116ae7e2b7..00000000000
--- a/packages/manager/.changeset/pr-11962-changed-1743652792312.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Changed
----
-
-Update toast styling to Akamai Design System specs ([#11962](https://github.com/linode/manager/pull/11962))
diff --git a/packages/manager/.changeset/pr-11963-upcoming-features-1743680039001.md b/packages/manager/.changeset/pr-11963-upcoming-features-1743680039001.md
deleted file mode 100644
index 95f920cae93..00000000000
--- a/packages/manager/.changeset/pr-11963-upcoming-features-1743680039001.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-UI bugfixes: Resetting Trigger Occurences, Resources values when service type is cleared, Disabling Trigger Occurences, Threshold values unless Service Type is selected. Added Max value for Trigger Occurences and Threshold TextField components ([#11963](https://github.com/linode/manager/pull/11963))
diff --git a/packages/manager/.changeset/pr-11964-tech-stories-1743691912901.md b/packages/manager/.changeset/pr-11964-tech-stories-1743691912901.md
deleted file mode 100644
index f4252ec0527..00000000000
--- a/packages/manager/.changeset/pr-11964-tech-stories-1743691912901.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tech Stories
----
-
-Add MSW crud operations for Nodebalancers ([#11964](https://github.com/linode/manager/pull/11964))
diff --git a/packages/manager/.changeset/pr-11966-fixed-1743718029581.md b/packages/manager/.changeset/pr-11966-fixed-1743718029581.md
deleted file mode 100644
index 5ae611d9e0f..00000000000
--- a/packages/manager/.changeset/pr-11966-fixed-1743718029581.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-LKE-E related network requests on the NodeBalancer details page ([#11966](https://github.com/linode/manager/pull/11966))
diff --git a/packages/manager/.changeset/pr-11967-upcoming-features-1743747392300.md b/packages/manager/.changeset/pr-11967-upcoming-features-1743747392300.md
deleted file mode 100644
index 4c6efebfce9..00000000000
--- a/packages/manager/.changeset/pr-11967-upcoming-features-1743747392300.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Remove `or` condition in filtering of `/instances` call at CloudPulse Metrics ([#11967](https://github.com/linode/manager/pull/11967))
diff --git a/packages/manager/.changeset/pr-11968-fixed-1743780227804.md b/packages/manager/.changeset/pr-11968-fixed-1743780227804.md
deleted file mode 100644
index dcc7fbf49f1..00000000000
--- a/packages/manager/.changeset/pr-11968-fixed-1743780227804.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-Update grid width in CloudPulseDashboardLanding.tsx, Change time range preference key in GlobalFilter.tsx, Change maxHeight of applied filter box to 78px in CloudPulseAppliedFilter.tsx ([#11968](https://github.com/linode/manager/pull/11968))
diff --git a/packages/manager/.changeset/pr-11969-added-1743779981445.md b/packages/manager/.changeset/pr-11969-added-1743779981445.md
deleted file mode 100644
index 5ec79486e71..00000000000
--- a/packages/manager/.changeset/pr-11969-added-1743779981445.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Added
----
-
-Add `cache update` logic in alerts.ts query file ([#11969](https://github.com/linode/manager/pull/11969))
diff --git a/packages/manager/.changeset/pr-11973-changed-1743783278795.md b/packages/manager/.changeset/pr-11973-changed-1743783278795.md
deleted file mode 100644
index 5106905ac82..00000000000
--- a/packages/manager/.changeset/pr-11973-changed-1743783278795.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Changed
----
-
-Disable custom/template firewall toggle in Create Firewall form for restricted user and update other field restrictions ([#11973](https://github.com/linode/manager/pull/11973))
diff --git a/packages/manager/.changeset/pr-11974-upcoming-features-1743784910488.md b/packages/manager/.changeset/pr-11974-upcoming-features-1743784910488.md
deleted file mode 100644
index 65a1f280cd4..00000000000
--- a/packages/manager/.changeset/pr-11974-upcoming-features-1743784910488.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Feature flag for VM Host Maintenance policy ([#11974](https://github.com/linode/manager/pull/11974))
diff --git a/packages/manager/.changeset/pr-11975-fixed-1744233099304.md b/packages/manager/.changeset/pr-11975-fixed-1744233099304.md
deleted file mode 100644
index 641a305fbac..00000000000
--- a/packages/manager/.changeset/pr-11975-fixed-1744233099304.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-Display appropriate message for OBJ Access Keys with `Limited Access` and `No Access` permissions ([#11975](https://github.com/linode/manager/pull/11975))
diff --git a/packages/manager/.changeset/pr-11976-upcoming-features-1744036859769.md b/packages/manager/.changeset/pr-11976-upcoming-features-1744036859769.md
deleted file mode 100644
index 7de631b1632..00000000000
--- a/packages/manager/.changeset/pr-11976-upcoming-features-1744036859769.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Fix Linode Interface related VPC bugs in Linode Entity Detail and IP Addresses table ([#11976](https://github.com/linode/manager/pull/11976))
diff --git a/packages/manager/.changeset/pr-11977-upcoming-features-1744016876527.md b/packages/manager/.changeset/pr-11977-upcoming-features-1744016876527.md
deleted file mode 100644
index 71a71205fe9..00000000000
--- a/packages/manager/.changeset/pr-11977-upcoming-features-1744016876527.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Rename resources to entities in labels, placeholders, messages and warnings in `cloudpulse alerting` section ([#11977](https://github.com/linode/manager/pull/11977))
diff --git a/packages/manager/.changeset/pr-11978-upcoming-features-1744016922823.md b/packages/manager/.changeset/pr-11978-upcoming-features-1744016922823.md
deleted file mode 100644
index ce124c1a999..00000000000
--- a/packages/manager/.changeset/pr-11978-upcoming-features-1744016922823.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Add a new drawer for updating entities iam ([#11978](https://github.com/linode/manager/pull/11978))
diff --git a/packages/manager/.changeset/pr-11981-upcoming-features-1744104834195.md b/packages/manager/.changeset/pr-11981-upcoming-features-1744104834195.md
deleted file mode 100644
index 016235f78df..00000000000
--- a/packages/manager/.changeset/pr-11981-upcoming-features-1744104834195.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Add `Confirmation Dialog` in `AlertListTable.tsx`, add `message` prop in `AlertConfirmationDialog.tsx` ([#11981](https://github.com/linode/manager/pull/11981))
diff --git a/packages/manager/.changeset/pr-11984-upcoming-features-1744052007574.md b/packages/manager/.changeset/pr-11984-upcoming-features-1744052007574.md
deleted file mode 100644
index c5082d44b47..00000000000
--- a/packages/manager/.changeset/pr-11984-upcoming-features-1744052007574.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Fix displaying empty state when user doesn't have the assigned roles in iam ([#11984](https://github.com/linode/manager/pull/11984))
diff --git a/packages/manager/.changeset/pr-11985-upcoming-features-1744141507075.md b/packages/manager/.changeset/pr-11985-upcoming-features-1744141507075.md
deleted file mode 100644
index 1f30d2ae328..00000000000
--- a/packages/manager/.changeset/pr-11985-upcoming-features-1744141507075.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Update UI of the Networking section on the Linode Create flow ([#11985](https://github.com/linode/manager/pull/11985))
diff --git a/packages/manager/.changeset/pr-11986-removed-1744096851575.md b/packages/manager/.changeset/pr-11986-removed-1744096851575.md
deleted file mode 100644
index c0f723bb793..00000000000
--- a/packages/manager/.changeset/pr-11986-removed-1744096851575.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Removed
----
-
-Move `betaUtils` and its associated factories to `utilities` package ([#11986](https://github.com/linode/manager/pull/11986))
diff --git a/packages/manager/.changeset/pr-11987-changed-1744123144788.md b/packages/manager/.changeset/pr-11987-changed-1744123144788.md
deleted file mode 100644
index 0a8b802052b..00000000000
--- a/packages/manager/.changeset/pr-11987-changed-1744123144788.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Changed
----
-
-Update config label to follow the category.label format, rename Monitor tab ([#11987](https://github.com/linode/manager/pull/11987))
diff --git a/packages/manager/.changeset/pr-11989-changed-1744126754414.md b/packages/manager/.changeset/pr-11989-changed-1744126754414.md
deleted file mode 100644
index a98ead02e29..00000000000
--- a/packages/manager/.changeset/pr-11989-changed-1744126754414.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Changed
----
-
-Image service Gen2 - Copy updates ([#11989](https://github.com/linode/manager/pull/11989))
diff --git a/packages/manager/.changeset/pr-11992-tests-1744132206121.md b/packages/manager/.changeset/pr-11992-tests-1744132206121.md
deleted file mode 100644
index cac399e801f..00000000000
--- a/packages/manager/.changeset/pr-11992-tests-1744132206121.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Replace hardcoded region IDs in clone linode test ([#11992](https://github.com/linode/manager/pull/11992))
diff --git a/packages/manager/.changeset/pr-11993-added-1744134925847.md b/packages/manager/.changeset/pr-11993-added-1744134925847.md
deleted file mode 100644
index 98b06ec1784..00000000000
--- a/packages/manager/.changeset/pr-11993-added-1744134925847.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Added
----
-
-Display encryption status with lock icon in Image Edit Drawer ([#11993](https://github.com/linode/manager/pull/11993))
diff --git a/packages/manager/.changeset/pr-11995-upcoming-features-1744149575402.md b/packages/manager/.changeset/pr-11995-upcoming-features-1744149575402.md
deleted file mode 100644
index ba46daa7746..00000000000
--- a/packages/manager/.changeset/pr-11995-upcoming-features-1744149575402.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Check for Linode Interfaces Account Capability ([#11995](https://github.com/linode/manager/pull/11995))
diff --git a/packages/manager/.changeset/pr-11996-tests-1744202889076.md b/packages/manager/.changeset/pr-11996-tests-1744202889076.md
deleted file mode 100644
index 6ba743b0470..00000000000
--- a/packages/manager/.changeset/pr-11996-tests-1744202889076.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Remove hardcoded region in LKE test ([#11996](https://github.com/linode/manager/pull/11996))
diff --git a/packages/manager/.changeset/pr-11997-tests-1744203271879.md b/packages/manager/.changeset/pr-11997-tests-1744203271879.md
deleted file mode 100644
index 78834fd3d02..00000000000
--- a/packages/manager/.changeset/pr-11997-tests-1744203271879.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Use mock regions as constraint for region search ([#11997](https://github.com/linode/manager/pull/11997))
diff --git a/packages/manager/.changeset/pr-11998-upcoming-features-1744205663442.md b/packages/manager/.changeset/pr-11998-upcoming-features-1744205663442.md
deleted file mode 100644
index 9acfefc35b8..00000000000
--- a/packages/manager/.changeset/pr-11998-upcoming-features-1744205663442.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-add a new drawer for updating role for entity ([#11998](https://github.com/linode/manager/pull/11998))
diff --git a/packages/manager/.changeset/pr-11999-tests-1744205582905.md b/packages/manager/.changeset/pr-11999-tests-1744205582905.md
deleted file mode 100644
index 53ecb4251bb..00000000000
--- a/packages/manager/.changeset/pr-11999-tests-1744205582905.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Use mock region for linode config tests ([#11999](https://github.com/linode/manager/pull/11999))
diff --git a/packages/manager/.changeset/pr-12001-upcoming-features-1744284627613.md b/packages/manager/.changeset/pr-12001-upcoming-features-1744284627613.md
deleted file mode 100644
index 9ec150a60fc..00000000000
--- a/packages/manager/.changeset/pr-12001-upcoming-features-1744284627613.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Add `group by tag` feature for alerts in CloudPulse ([#12001](https://github.com/linode/manager/pull/12001))
diff --git a/packages/manager/.changeset/pr-12002-tech-stories-1744219481332.md b/packages/manager/.changeset/pr-12002-tech-stories-1744219481332.md
deleted file mode 100644
index e3b900a12a8..00000000000
--- a/packages/manager/.changeset/pr-12002-tech-stories-1744219481332.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tech Stories
----
-
-Upgrade Cypress to 14.3.0 ([#12002](https://github.com/linode/manager/pull/12002))
diff --git a/packages/manager/.changeset/pr-12003-fixed-1744230658863.md b/packages/manager/.changeset/pr-12003-fixed-1744230658863.md
deleted file mode 100644
index 07f77bcf468..00000000000
--- a/packages/manager/.changeset/pr-12003-fixed-1744230658863.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-Improve sensitive data masking in Longview, LKE node pools, Domains, and Linode details ([#12003](https://github.com/linode/manager/pull/12003))
diff --git a/packages/manager/.changeset/pr-12004-changed-1744299731705.md b/packages/manager/.changeset/pr-12004-changed-1744299731705.md
deleted file mode 100644
index e35589055ca..00000000000
--- a/packages/manager/.changeset/pr-12004-changed-1744299731705.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Changed
----
-
-Akamai Design System: Notice component ([#12004](https://github.com/linode/manager/pull/12004))
diff --git a/packages/manager/.changeset/pr-12006-fixed-1744289649305.md b/packages/manager/.changeset/pr-12006-fixed-1744289649305.md
deleted file mode 100644
index 905e2d9a87c..00000000000
--- a/packages/manager/.changeset/pr-12006-fixed-1744289649305.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-DBaaS: Fixed dropdown autofill, error persistence on drawer reopen, missing validation for default_time_zone, and improved API error field mapping ([#12006](https://github.com/linode/manager/pull/12006))
diff --git a/packages/manager/.changeset/pr-12007-changed-1744290501828.md b/packages/manager/.changeset/pr-12007-changed-1744290501828.md
deleted file mode 100644
index a4b5562a763..00000000000
--- a/packages/manager/.changeset/pr-12007-changed-1744290501828.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Changed
----
-
-Rename `Analytics` tab to `Metrics` tab on Linode details page ([#12007](https://github.com/linode/manager/pull/12007))
diff --git a/packages/manager/.changeset/pr-12008-upcoming-features-1744651679398.md b/packages/manager/.changeset/pr-12008-upcoming-features-1744651679398.md
deleted file mode 100644
index cc2a7be2e80..00000000000
--- a/packages/manager/.changeset/pr-12008-upcoming-features-1744651679398.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Support more VPC features in the Add Interface Drawer ([#12008](https://github.com/linode/manager/pull/12008))
diff --git a/packages/manager/.changeset/pr-12009-removed-1744307901647.md b/packages/manager/.changeset/pr-12009-removed-1744307901647.md
deleted file mode 100644
index 165c5405934..00000000000
--- a/packages/manager/.changeset/pr-12009-removed-1744307901647.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Removed
----
-
-Truncation from PDF descriptions ([#12009](https://github.com/linode/manager/pull/12009))
diff --git a/packages/manager/.changeset/pr-12010-added-1744316331183.md b/packages/manager/.changeset/pr-12010-added-1744316331183.md
deleted file mode 100644
index e7413ca37c6..00000000000
--- a/packages/manager/.changeset/pr-12010-added-1744316331183.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Added
----
-
-Legacy browser support for `url.canParse` ([#12010](https://github.com/linode/manager/pull/12010))
diff --git a/packages/manager/.changeset/pr-12011-fixed-1744319899786.md b/packages/manager/.changeset/pr-12011-fixed-1744319899786.md
deleted file mode 100644
index 236ee3a2634..00000000000
--- a/packages/manager/.changeset/pr-12011-fixed-1744319899786.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-ACL no longer renders for E2/E2 endpoints on page load ([#12011](https://github.com/linode/manager/pull/12011))
diff --git a/packages/manager/.changeset/pr-12012-added-1744320839894.md b/packages/manager/.changeset/pr-12012-added-1744320839894.md
deleted file mode 100644
index b4e3fa42de9..00000000000
--- a/packages/manager/.changeset/pr-12012-added-1744320839894.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Added
----
-
-UIE-8142 - implement Roles table ([#12012](https://github.com/linode/manager/pull/12012))
diff --git a/packages/manager/.changeset/pr-12012-added-1744837242791.md b/packages/manager/.changeset/pr-12012-added-1744837242791.md
deleted file mode 100644
index b7455c3e38c..00000000000
--- a/packages/manager/.changeset/pr-12012-added-1744837242791.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Added
----
-
-Introduced the Web Component library, used table as POC ([#12012](https://github.com/linode/manager/pull/12012))
diff --git a/packages/manager/.changeset/pr-12014-tests-1744382864732.md b/packages/manager/.changeset/pr-12014-tests-1744382864732.md
deleted file mode 100644
index d009564903e..00000000000
--- a/packages/manager/.changeset/pr-12014-tests-1744382864732.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Fix LKE update tests in DevCloud ([#12014](https://github.com/linode/manager/pull/12014))
diff --git a/packages/manager/.changeset/pr-12016-upcoming-features-1744492314777.md b/packages/manager/.changeset/pr-12016-upcoming-features-1744492314777.md
deleted file mode 100644
index 3bc6b5b1a20..00000000000
--- a/packages/manager/.changeset/pr-12016-upcoming-features-1744492314777.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Add support for Linode Interfaces in Subnet Assign and Unassign drawers ([#12016](https://github.com/linode/manager/pull/12016))
diff --git a/packages/manager/.changeset/pr-12017-upcoming-features-1744652118248.md b/packages/manager/.changeset/pr-12017-upcoming-features-1744652118248.md
deleted file mode 100644
index a3d169d020e..00000000000
--- a/packages/manager/.changeset/pr-12017-upcoming-features-1744652118248.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Add Interface Settings Drawer for Linode Interfaces ([#12017](https://github.com/linode/manager/pull/12017))
diff --git a/packages/manager/.changeset/pr-12018-tech-stories-1744408988818.md b/packages/manager/.changeset/pr-12018-tech-stories-1744408988818.md
deleted file mode 100644
index 79fb3ff8a61..00000000000
--- a/packages/manager/.changeset/pr-12018-tech-stories-1744408988818.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tech Stories
----
-
-Use Simple select component in `RegionTypeFilter` ([#12018](https://github.com/linode/manager/pull/12018))
diff --git a/packages/manager/.changeset/pr-12019-fixed-1744606971621.md b/packages/manager/.changeset/pr-12019-fixed-1744606971621.md
deleted file mode 100644
index 223fc2b961b..00000000000
--- a/packages/manager/.changeset/pr-12019-fixed-1744606971621.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-Missing warning message in the Images Landing page for a restricted user ([#12019](https://github.com/linode/manager/pull/12019))
diff --git a/packages/manager/.changeset/pr-12021-fixed-1744625544934.md b/packages/manager/.changeset/pr-12021-fixed-1744625544934.md
deleted file mode 100644
index a5018eccb5e..00000000000
--- a/packages/manager/.changeset/pr-12021-fixed-1744625544934.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-Missing warning message in the Longview landing page for the restricted user ([#12021](https://github.com/linode/manager/pull/12021))
diff --git a/packages/manager/.changeset/pr-12023-tests-1744653408368.md b/packages/manager/.changeset/pr-12023-tests-1744653408368.md
deleted file mode 100644
index e40345c136c..00000000000
--- a/packages/manager/.changeset/pr-12023-tests-1744653408368.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Allow plan selection tests to pass in non-Production environments ([#12023](https://github.com/linode/manager/pull/12023))
diff --git a/packages/manager/.changeset/pr-12025-removed-1744698392062.md b/packages/manager/.changeset/pr-12025-removed-1744698392062.md
deleted file mode 100644
index ddd90e176e3..00000000000
--- a/packages/manager/.changeset/pr-12025-removed-1744698392062.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Removed
----
-
-Move `grants` and its associated factories to `utilities` package ([#12025](https://github.com/linode/manager/pull/12025))
diff --git a/packages/manager/.changeset/pr-12026-upcoming-features-1744709007966.md b/packages/manager/.changeset/pr-12026-upcoming-features-1744709007966.md
deleted file mode 100644
index 806da08fff2..00000000000
--- a/packages/manager/.changeset/pr-12026-upcoming-features-1744709007966.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Feature flag for ACLP Integration ([#12026](https://github.com/linode/manager/pull/12026))
diff --git a/packages/manager/.changeset/pr-12027-upcoming-features-1744711021887.md b/packages/manager/.changeset/pr-12027-upcoming-features-1744711021887.md
deleted file mode 100644
index f0ffa2c51ee..00000000000
--- a/packages/manager/.changeset/pr-12027-upcoming-features-1744711021887.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-IAM: Add a new confirmation dialog for removing entity for the role ([#12027](https://github.com/linode/manager/pull/12027))
diff --git a/packages/manager/.changeset/pr-12030-tests-1744726914987.md b/packages/manager/.changeset/pr-12030-tests-1744726914987.md
deleted file mode 100644
index 10a54ec89e0..00000000000
--- a/packages/manager/.changeset/pr-12030-tests-1744726914987.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Allow Linode delete tests to pass against non-Prod environments ([#12030](https://github.com/linode/manager/pull/12030))
diff --git a/packages/manager/.changeset/pr-12031-changed-1744729225214.md b/packages/manager/.changeset/pr-12031-changed-1744729225214.md
deleted file mode 100644
index 796305dba53..00000000000
--- a/packages/manager/.changeset/pr-12031-changed-1744729225214.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Changed
----
-
-Image Service Gen2 GA - Update copy about Image Pricing ([#12031](https://github.com/linode/manager/pull/12031))
diff --git a/packages/manager/.changeset/pr-12032-fixed-1744732437757.md b/packages/manager/.changeset/pr-12032-fixed-1744732437757.md
deleted file mode 100644
index 22c92e7697b..00000000000
--- a/packages/manager/.changeset/pr-12032-fixed-1744732437757.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Fixed
----
-
-incorrect restart-related label on Save button, autofill not applying values, and API errors not clearing on config field blur ([#12032](https://github.com/linode/manager/pull/12032))
diff --git a/packages/manager/.changeset/pr-12033-upcoming-features-1744745488820.md b/packages/manager/.changeset/pr-12033-upcoming-features-1744745488820.md
deleted file mode 100644
index 42a288ca4a4..00000000000
--- a/packages/manager/.changeset/pr-12033-upcoming-features-1744745488820.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Fix incorrect max autoscaler limit validation for LKE-E ([#12033](https://github.com/linode/manager/pull/12033))
diff --git a/packages/manager/.changeset/pr-12036-tests-1744749094051.md b/packages/manager/.changeset/pr-12036-tests-1744749094051.md
deleted file mode 100644
index ffa622f11c5..00000000000
--- a/packages/manager/.changeset/pr-12036-tests-1744749094051.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Add Cypress tests to cover Firewall create flows using templates ([#12036](https://github.com/linode/manager/pull/12036))
diff --git a/packages/manager/.changeset/pr-12038-changed-1744750503892.md b/packages/manager/.changeset/pr-12038-changed-1744750503892.md
deleted file mode 100644
index 775d6117c94..00000000000
--- a/packages/manager/.changeset/pr-12038-changed-1744750503892.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Changed
----
-
-Update Assign Role panel UI ([#12038](https://github.com/linode/manager/pull/12038))
diff --git a/packages/manager/.changeset/pr-12040-tests-1744753693965.md b/packages/manager/.changeset/pr-12040-tests-1744753693965.md
deleted file mode 100644
index 220fe9450b6..00000000000
--- a/packages/manager/.changeset/pr-12040-tests-1744753693965.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Tests
----
-
-Add Firewall landing page tests to cover Linode Interfaces improvements ([#12040](https://github.com/linode/manager/pull/12040))
diff --git a/packages/manager/.changeset/pr-12044-upcoming-features-1744808175869.md b/packages/manager/.changeset/pr-12044-upcoming-features-1744808175869.md
deleted file mode 100644
index ab961a1f005..00000000000
--- a/packages/manager/.changeset/pr-12044-upcoming-features-1744808175869.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Upcoming Features
----
-
-Add an API check to the useIsIAMEnabled hook ([#12044](https://github.com/linode/manager/pull/12044))
diff --git a/packages/manager/.changeset/pr-12048-changed-1744815132260.md b/packages/manager/.changeset/pr-12048-changed-1744815132260.md
deleted file mode 100644
index 329d5d052e5..00000000000
--- a/packages/manager/.changeset/pr-12048-changed-1744815132260.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/manager": Removed
----
-
-Deprecate WarpSpeed, UTunnel, VictoriaMetrics, Seatable Marketplace apps ([#12048](https://github.com/linode/manager/pull/12048))
diff --git a/packages/manager/CHANGELOG.md b/packages/manager/CHANGELOG.md
index 65464ddcda5..747afca7151 100644
--- a/packages/manager/CHANGELOG.md
+++ b/packages/manager/CHANGELOG.md
@@ -4,6 +4,102 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
+## [2025-04-22] - v1.140.0
+
+### Added:
+
+- Add `cache update` logic in alerts.ts query file ([#11969](https://github.com/linode/manager/pull/11969))
+- Display encryption status with lock icon in Image Edit Drawer ([#11993](https://github.com/linode/manager/pull/11993))
+- Legacy browser support for `url.canParse` ([#12010](https://github.com/linode/manager/pull/12010))
+- Introduced the Web Component library, used table as POC ([#12012](https://github.com/linode/manager/pull/12012))
+
+### Changed:
+
+- Disable Autocomplete search on touch devices ([#11932](https://github.com/linode/manager/pull/11932))
+- Remove min length validation for tag and added validation for empty string ([#11944](https://github.com/linode/manager/pull/11944))
+- Update toast styling to Akamai Design System specs ([#11962](https://github.com/linode/manager/pull/11962))
+- Disable custom/template firewall toggle in Create Firewall form for restricted user and update other field restrictions ([#11973](https://github.com/linode/manager/pull/11973))
+- Update config label to follow the category.label format, rename Monitor tab ([#11987](https://github.com/linode/manager/pull/11987))
+- Update copy for Image Service Gen2 ((#11989, [#12031](https://github.com/linode/manager/pull/12031))
+- Update Notice component to Akamai Design System ([#12004](https://github.com/linode/manager/pull/12004))
+- Rename `Analytics` tab to `Metrics` tab on Linode details page ([#12007](https://github.com/linode/manager/pull/12007))
+- Update Assign Role panel UI ([#12038](https://github.com/linode/manager/pull/12038))
+
+### Fixed:
+
+- Visual UI bug with Payment Amount adornment ([#11816](https://github.com/linode/manager/pull/11816))
+- Pagination for subnets in VPC Subnet table ([#11906](https://github.com/linode/manager/pull/11906))
+- IP incrementation in Subnet Create drawer ([#11906](https://github.com/linode/manager/pull/11906))
+- LKE-E related network requests on the NodeBalancer details page ([#11966](https://github.com/linode/manager/pull/11966))
+- Update grid width in CloudPulseDashboardLanding.tsx, Change time range preference key in GlobalFilter.tsx, Change maxHeight of applied filter box to 78px in CloudPulseAppliedFilter.tsx ([#11968](https://github.com/linode/manager/pull/11968))
+- Display appropriate message for OBJ Access Keys with `Limited Access` and `No Access` permissions ([#11975](https://github.com/linode/manager/pull/11975))
+- Bugs in sensitive data masking in Longview, LKE node pools, Domains, and Linode details ([#12003](https://github.com/linode/manager/pull/12003))
+- DBaaS: Fixed dropdown autofill, error persistence on drawer reopen, missing validation for default_time_zone, and improved API error field mapping ([#12006](https://github.com/linode/manager/pull/12006))
+- ACL no longer renders for E2/E2 endpoints on page load ([#12011](https://github.com/linode/manager/pull/12011))
+- Missing warning message in the Images Landing page for a restricted user ([#12019](https://github.com/linode/manager/pull/12019))
+- Missing warning message in the Longview landing page for the restricted user ([#12021](https://github.com/linode/manager/pull/12021))
+- DBaaS: incorrect restart-related label on Save button, autofill not applying values, and API errors not clearing on config field blur ([#12032](https://github.com/linode/manager/pull/12032))
+
+### Removed:
+
+- Move `getUserTimeZone` and its associated profile factories to `@linode/utilities` ([#11955](https://github.com/linode/manager/pull/11955))
+- Move `betaUtils` and its associated factories to `utilities` package ([#11986](https://github.com/linode/manager/pull/11986))
+- Truncation from PDF descriptions ([#12009](https://github.com/linode/manager/pull/12009))
+- Move `grants` and its associated factories to `utilities` package ([#12025](https://github.com/linode/manager/pull/12025))
+- Deprecate WarpSpeed, UTunnel, VictoriaMetrics, Seatable Marketplace apps ([#12048](https://github.com/linode/manager/pull/12048))
+
+### Tech Stories:
+
+- VPC rerouting (TanStack) ([#11906](https://github.com/linode/manager/pull/11906))
+- Migrate Object Storage to Tanstack Router ([#11924](https://github.com/linode/manager/pull/11924))
+- Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
+- Add MSW crud operations for Nodebalancers ([#11964](https://github.com/linode/manager/pull/11964))
+- Upgrade Cypress to 14.3.0 ([#12002](https://github.com/linode/manager/pull/12002))
+- Use Simple select component in `RegionTypeFilter` ([#12018](https://github.com/linode/manager/pull/12018))
+
+### Tests:
+
+- Add database configuration to test 2 node cluster and validate dbaas v2 create/summary view ([#11928](https://github.com/linode/manager/pull/11928))
+- Add `env:marketplaceApps`, `env:multipleRegions`, and `env:stackScripts` tags for Cypress tests ([#11958](https://github.com/linode/manager/pull/11958))
+- Avoid selecting regions that do not support Machine Images in Image upload tests ([#11961](https://github.com/linode/manager/pull/11961))
+- Replace hardcoded region IDs in clone linode test ([#11992](https://github.com/linode/manager/pull/11992))
+- Remove hardcoded region in LKE test ([#11996](https://github.com/linode/manager/pull/11996))
+- Use mock regions as constraint for region search ([#11997](https://github.com/linode/manager/pull/11997))
+- Use mock region for linode config tests ([#11999](https://github.com/linode/manager/pull/11999))
+- Fix LKE update tests in DevCloud ([#12014](https://github.com/linode/manager/pull/12014))
+- Allow plan selection tests to pass in non-Production environments ([#12023](https://github.com/linode/manager/pull/12023))
+- Allow Linode delete tests to pass against non-Prod environments ([#12030](https://github.com/linode/manager/pull/12030))
+- Add Cypress tests to cover Firewall create flows using templates ([#12036](https://github.com/linode/manager/pull/12036))
+- Add Firewall landing page tests to cover Linode Interfaces improvements ([#12040](https://github.com/linode/manager/pull/12040))
+
+### Upcoming Features:
+
+- Enhance schema validation for CloudPulse create and edit alert flow and avoid type assertions ([#11868](https://github.com/linode/manager/pull/11868))
+- Disable Upgrade Interfaces feature for LKE Linodes and other conditions ([#11934](https://github.com/linode/manager/pull/11934))
+- Enhance CloudPulse alerting resource selection section with maximum selection limitations ([#11943](https://github.com/linode/manager/pull/11943))
+- Fix SubnetLinodeRow for Linodes using new interfaces ([#11953](https://github.com/linode/manager/pull/11953))
+- Add Edit Public Linode Interface Drawer ([#11957](https://github.com/linode/manager/pull/11957))
+- UI bugfixes: Resetting Trigger Occurences, Resources values when service type is cleared, Disabling Trigger Occurences, Threshold values unless Service Type is selected. Added Max value for Trigger Occurences and Threshold TextField components ([#11963](https://github.com/linode/manager/pull/11963))
+- Remove `or` condition in filtering of `/instances` call at CloudPulse Metrics ([#11967](https://github.com/linode/manager/pull/11967))
+- Feature flag for VM Host Maintenance policy ([#11974](https://github.com/linode/manager/pull/11974))
+- Fix Linode Interface related VPC bugs in Linode Entity Detail and IP Addresses table ([#11976](https://github.com/linode/manager/pull/11976))
+- Rename resources to entities in labels, placeholders, messages and warnings in `cloudpulse alerting` section ([#11977](https://github.com/linode/manager/pull/11977))
+- Add a new drawer for updating entities iam ([#11978](https://github.com/linode/manager/pull/11978))
+- Add `Confirmation Dialog` in `AlertListTable.tsx`, add `message` prop in `AlertConfirmationDialog.tsx` ([#11981](https://github.com/linode/manager/pull/11981))
+- Fix displaying empty state when user doesn't have the assigned roles in iam ([#11984](https://github.com/linode/manager/pull/11984))
+- Update UI of the Networking section on the Linode Create flow ([#11985](https://github.com/linode/manager/pull/11985))
+- Check for Linode Interfaces Account Capability ([#11995](https://github.com/linode/manager/pull/11995))
+- add a new drawer for updating role for entity ([#11998](https://github.com/linode/manager/pull/11998))
+- Add `group by tag` feature for alerts in CloudPulse ([#12001](https://github.com/linode/manager/pull/12001))
+- Support more VPC features in the Add Interface Drawer ([#12008](https://github.com/linode/manager/pull/12008))
+- Add support for Linode Interfaces in Subnet Assign and Unassign drawers ([#12016](https://github.com/linode/manager/pull/12016))
+- Add Interface Settings Drawer for Linode Interfaces ([#12017](https://github.com/linode/manager/pull/12017))
+- Feature flag for ACLP Integration ([#12026](https://github.com/linode/manager/pull/12026))
+- IAM: Add a new confirmation dialog for removing entity for the role ([#12027](https://github.com/linode/manager/pull/12027))
+- Fix incorrect max autoscaler limit validation for LKE-E ([#12033](https://github.com/linode/manager/pull/12033))
+- Add an API check to the useIsIAMEnabled hook ([#12044](https://github.com/linode/manager/pull/12044))
+- Implement IAM Roles table ([#12012](https://github.com/linode/manager/pull/12012))
+
## [2025-04-16] - v1.139.1
### Removed:
@@ -12,7 +108,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
## [2025-04-08] - v1.139.0
-
### Added:
- Add cache update logic on edit alert query ([#11917](https://github.com/linode/manager/pull/11917))
@@ -53,7 +148,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Move ramda dependent utils ([#11913](https://github.com/linode/manager/pull/11913))
- Move `useIsGeckoEnabled` hook out of `RegionSelect` to `@linode/shared` package ([#11918](https://github.com/linode/manager/pull/11918))
- Remove region selector from Edit VPC drawer since data center assignment cannot be changed. ([#11929](https://github.com/linode/manager/pull/11929))
-- DBaaS: deprecated types, outdated and unused code in DatabaseCreate and DatabaseSummary ([#11909](https://github.com/linode/manager/pull/11909))
+- DBaaS: deprecated types, outdated and unused code in DatabaseCreate and DatabaseSummary ([#11909](https://github.com/linode/manager/pull/11909))
- Move `useFormattedDate` from `manager` to `utilities` package ([#11931](https://github.com/linode/manager/pull/11931))
- Move stackscripts-related queries and dependencies to shared `queries` package ([#11949](https://github.com/linode/manager/pull/11949))
@@ -62,10 +157,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Make `RegionSelect` and `RegionMultiSelect` pure ([#11790](https://github.com/linode/manager/pull/11790))
- Nodebalancer routing (Tanstack) ([#11858](https://github.com/linode/manager/pull/11858))
- Add `FirewallSelect` component ([#11887](https://github.com/linode/manager/pull/11887))
-- Add eslint rule for deprecating mui theme.spacing ([#11889](https://github.com/linode/manager/pull/11889))
+- Add eslint rule for deprecating mui theme.spacing ([#11889](https://github.com/linode/manager/pull/11889))
- Resolve Path Traversal Vulnerabilities detected from semgrep ([#11914](https://github.com/linode/manager/pull/11914))
- Move feature flag code out of Kubernetes queries file ([#11922](https://github.com/linode/manager/pull/11922))
-- Fix incorrect secret in `publish-packages` Github Action ([#11923](https://github.com/linode/manager/pull/11923))
+- Fix incorrect secret in `publish-packages` Github Action ([#11923](https://github.com/linode/manager/pull/11923))
- Remove hashing on Pendo account and visitor ids ([#11950](https://github.com/linode/manager/pull/11950))
### Tests:
@@ -116,7 +211,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
## [2025-03-25] - v1.138.0
-
### Added:
- LKE UI updates for checkout bar & NodeBalancer Details summary ([#11653](https://github.com/linode/manager/pull/11653))
@@ -226,7 +320,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Fix Google Pay test failures when using Braintree sandbox environment (#11863)
- Apply new custom eslint rule and lint files (#11689, #11722, #11730, #11756, #11766, #11814)
-
### Upcoming Features:
- Build new Quotas Controls ([#11647](https://github.com/linode/manager/pull/11647))
@@ -261,7 +354,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Add Upgrade Interfaces dialog for Linodes using legacy Configuration Profile Interfaces ([#11808](https://github.com/linode/manager/pull/11808))
- Disable Akamai App Platform beta for LKE-E clusters on create flow ([#11809](https://github.com/linode/manager/pull/11809))
- Handle errors while enabling and disabling alerts in Monitor at `AlertListTable.tsx` ([#11813](https://github.com/linode/manager/pull/11813))
-- Set `refetchInterval` for 2 mins in CloudPulse alert queries ([#11815](https://github.com/linode/manager/pull/11815))
+- Set `refetchInterval` for 2 mins in CloudPulse alert queries ([#11815](https://github.com/linode/manager/pull/11815))
- Add resources selection limitation in CloudPulse Alerting resources section for create and edit flows ([#11823](https://github.com/linode/manager/pull/11823))
- Remove `sxEndIcon` prop from Add Metric, Dimension Filter and Notification Channel buttons ([#11825](https://github.com/linode/manager/pull/11825))
- Add query to update roles in IAM ([#11840](https://github.com/linode/manager/pull/11840))
@@ -271,7 +364,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Remove toggle in the 'Add A User' drawer and default to limited access for users for IAM ([#11870](https://github.com/linode/manager/pull/11870))
- Update LKE-E flows to account for LDE status at LA launch ([#11880](https://github.com/linode/manager/pull/11880))
-
## [2025-02-27] - v1.137.2
### Fixed:
@@ -284,10 +376,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Unable to save non-US billing contact information without tax id ([#11725](https://github.com/linode/manager/pull/11725))
-
## [2025-02-25] - v1.137.0
-
### Added:
- Improved Node Pool Collapsing UX ([#11619](https://github.com/linode/manager/pull/11619))
@@ -317,7 +407,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Migrate `Dialog`, `DialogTitle` components, and `visibilityHide.svg`, `visibilityShow.svg`, and `chevron-down.svg` icons to the `@linode/ui` package ([#11673](https://github.com/linode/manager/pull/11673))
- `react-select` from the codebase ([#11601](https://github.com/linode/manager/pull/11601))
-
### Tech Stories:
- Improve consistency of Notice error states ([#11404](https://github.com/linode/manager/pull/11404))
@@ -370,7 +459,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
## [2025-02-11] - v1.136.0
-
### Added:
- Labels and Taints to LKE Node Pools ([#11528](https://github.com/linode/manager/pull/11528), [#11553](https://github.com/linode/manager/pull/11553))
@@ -378,7 +466,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- LKE cluster label and id on associated Linode's details page ([#11568](https://github.com/linode/manager/pull/11568))
- Visual indication for unencrypted images ([#11579](https://github.com/linode/manager/pull/11579))
- Collapsible Node Pool tables & filterable status ([#11589](https://github.com/linode/manager/pull/11589))
-- Database status display and event notifications for database migration ([#11590](https://github.com/linode/manager/pull/11590))
+- Database status display and event notifications for database migration ([#11590](https://github.com/linode/manager/pull/11590))
- Database migration info banner ([#11595](https://github.com/linode/manager/pull/11595))
### Changed:
@@ -398,7 +486,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
### Tech Stories:
- Refactor routing for Placement Groups to use Tanstack Router ([#11474](https://github.com/linode/manager/pull/11474))
-- Replace ramda's `pathOr` with custom utility ([#11512](https://github.com/linode/manager/pull/11512))
+- Replace ramda's `pathOr` with custom utility ([#11512](https://github.com/linode/manager/pull/11512))
- Refactor StackScript Create, Edit, and Details pages ([#11532](https://github.com/linode/manager/pull/11532))
- Upgrade Vite to v6 ([#11548](https://github.com/linode/manager/pull/11548))
- Upgrade Vitest to v3 ([#11548](https://github.com/linode/manager/pull/11548))
@@ -459,7 +547,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Improve backups banner styles ([#11480](https://github.com/linode/manager/pull/11480))
- Disable resizable plans when the usable storage equals the used storage of the database cluster ([#11481](https://github.com/linode/manager/pull/11481))
-([#11495](https://github.com/linode/manager/pull/11495))
+ ([#11495](https://github.com/linode/manager/pull/11495))
- Tech doc link for Bucket rate limits ([#11513](https://github.com/linode/manager/pull/11513))
- Search v2 `not equal` syntax ([#11521](https://github.com/linode/manager/pull/11521))
- Revise Disk Encryption description copy in Linode Create flow ([#11536](https://github.com/linode/manager/pull/11536))
@@ -484,7 +572,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Refactor and convert DomainRecords to functional component ([#11447](https://github.com/linode/manager/pull/11447))
- Add `Asia/Calcutta` zonename in `timezones.ts`, `disabledTimeZone` property in `DateTimeRangePicker`, and `minDate` property to `DateTimePicker` ([#11495](https://github.com/linode/manager/pull/11495))
-
### Tests:
- Improve organization of Object Storage and Object Storage Multicluster tests ([#11484](https://github.com/linode/manager/pull/11484))
@@ -507,7 +594,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Add `AddNotificationChannel` component with unit tests with necessary changes for constants, `CreateAlertDefinition` and other components. ([#11511](https://github.com/linode/manager/pull/11511))
- Add Quotas feature flag, queries, and MSW CRUD preset support ([#11493](https://github.com/linode/manager/pull/11493))
-
## [2025-01-14] - v1.134.0
### Added:
@@ -539,7 +625,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Account Cancellation Survey Button Color Issues ([#11412](https://github.com/linode/manager/pull/11412))
- DBaaS Manage Access IP fields are displaying an IPv4 validation error message when both IPv6 and IPv4 are available. ([#11414](https://github.com/linode/manager/pull/11414))
- `RegionHelperText` causing console errors ([#11416](https://github.com/linode/manager/pull/11416))
-- Linode Edit Config warning message when initially selecting a VPC as the primary interface ([#11424](https://github.com/linode/manager/pull/11424))
+- Linode Edit Config warning message when initially selecting a VPC as the primary interface ([#11424](https://github.com/linode/manager/pull/11424))
- DBaaS Resize tab Used field is displaying just GB on provisioning database cluster ([#11426](https://github.com/linode/manager/pull/11426))
- Various bugs in Managed tables ([#11431](https://github.com/linode/manager/pull/11431))
- ARIA label of action menu in Domains Landing table row ([#11437](https://github.com/linode/manager/pull/11437))
@@ -574,7 +660,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Add MSW crud domains ([#11428](https://github.com/linode/manager/pull/11428))
- Replace react-select instances in /Users with new Select ([#11430](https://github.com/linode/manager/pull/11430))
- Fixed CloudPulse metric definition types ([#11433](https://github.com/linode/manager/pull/11433))
-- Patch `cookie` version as resolution for dependabot ([#11434](https://github.com/linode/manager/pull/11434))
+- Patch `cookie` version as resolution for dependabot ([#11434](https://github.com/linode/manager/pull/11434))
- Replace Select with Autocomplete component in Object Storage ([#11456](https://github.com/linode/manager/pull/11456))
- Update `react-vnc` to 2.0.2 ([#11467](https://github.com/linode/manager/pull/11467))
@@ -590,7 +676,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Improve assertions made in `smoke-billing-activity.spec.ts` ([#11394](https://github.com/linode/manager/pull/11394))
- Clean up `DatabaseBackups.test.tsx` ([#11394](https://github.com/linode/manager/pull/11394))
- Fix account login and logout tests when using non-Prod environment ([#11407](https://github.com/linode/manager/pull/11407))
-- Add Cypress component tests for Autocomplete ([#11408](https://github.com/linode/manager/pull/11408))
+- Add Cypress component tests for Autocomplete ([#11408](https://github.com/linode/manager/pull/11408))
- Update mock region for LKE cluster creation test ([#11411](https://github.com/linode/manager/pull/11411))
- Cypress tests to validate errors in Linode Create Backups tab ([#11422](https://github.com/linode/manager/pull/11422))
- Cypress test to validate aria label of Linode IP Addresses action menu ([#11435](https://github.com/linode/manager/pull/11435))
@@ -616,7 +702,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- High performance volume indicator ([#11400](https://github.com/linode/manager/pull/11400))
- Add new no assigned roles component for IAM ([#11401](https://github.com/linode/manager/pull/11401))
- Fix invalid routes in the IAM ([#11436](https://github.com/linode/manager/pull/11436))
-- Initial support for NodeBalancer UDP protocol ([#11405](https://github.com/linode/manager/pull/11405))
+- Initial support for NodeBalancer UDP protocol ([#11405](https://github.com/linode/manager/pull/11405))
- Add support for new optional filter - 'Tags' in monitor ([#11457](https://github.com/linode/manager/pull/11457))
- Show ACLP supported regions per service type in region select ([#11382](https://github.com/linode/manager/pull/11382))
- Add `CloudPulseAppliedFilter` and `CloudPulseAppliedFilterRenderer` components, update filter change handler function to add another parameter `label` ([#11354](https://github.com/linode/manager/pull/11354))
@@ -635,7 +721,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Incorrectly displayed region options ([#11449](https://github.com/linode/manager/pull/11449))
-
## [2024-12-19] - v1.133.1
### Fixed:
@@ -643,7 +728,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- Filter available regions in Object Gen2 Create Drawer and Access Keys List based on endpoint capabilities ([#11432](https://github.com/linode/manager/pull/11432))
- Region name display in Gen2 warning notices when regions are unavailable due to format mismatch ([#11432](https://github.com/linode/manager/pull/11432))
-
## [2024-12-10] - v1.133.0
### Added:
diff --git a/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-object-gen2.spec.ts b/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-object-gen2.spec.ts
index 6d10cf1b60a..ffe4e804298 100644
--- a/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-object-gen2.spec.ts
+++ b/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-object-gen2.spec.ts
@@ -413,7 +413,7 @@ describe('Object Storage Gen2 bucket object tests', () => {
cy.findByText(mockRegions[0].label).should('be.visible');
});
// warning message
- cy.findByTestId('notice-warning-important').within(() => {
+ cy.findByTestId('notice-warning').within(() => {
cy.contains(
`There was an error loading buckets in ${mockRegions[1].label}`
);
@@ -463,7 +463,7 @@ describe('Object Storage Gen2 bucket object tests', () => {
// table with retrieved bucket
cy.get('table tbody tr').should('have.length', 1);
// warning message
- cy.findByTestId('notice-warning-important').within(() => {
+ cy.findByTestId('notice-warning').within(() => {
cy.contains(
'There was an error loading buckets in the following regions:'
);
diff --git a/packages/manager/package.json b/packages/manager/package.json
index 54d8bf184e3..05e9a9d1d02 100644
--- a/packages/manager/package.json
+++ b/packages/manager/package.json
@@ -2,7 +2,7 @@
"name": "linode-manager",
"author": "Linode",
"description": "The Linode Manager website",
- "version": "1.139.1",
+ "version": "1.140.0",
"private": true,
"type": "module",
"bugs": {
@@ -208,4 +208,4 @@
"Firefox ESR",
"not dead"
]
-}
+}
\ No newline at end of file
diff --git a/packages/manager/src/components/AbuseTicketBanner/AbuseTicketBanner.tsx b/packages/manager/src/components/AbuseTicketBanner/AbuseTicketBanner.tsx
index 40e1067eb5f..22dfac315c3 100644
--- a/packages/manager/src/components/AbuseTicketBanner/AbuseTicketBanner.tsx
+++ b/packages/manager/src/components/AbuseTicketBanner/AbuseTicketBanner.tsx
@@ -33,7 +33,7 @@ export const AbuseTicketBanner = () => {
const href = multiple
? '/support/tickets'
- : abuseTickets[0].entity?.url ?? '';
+ : (abuseTickets[0].entity?.url ?? '');
const isViewingTicket = location.pathname.match(href);
return (
@@ -43,7 +43,6 @@ export const AbuseTicketBanner = () => {
expiry: DateTime.utc().plus({ days: 7 }).toISO(),
label: preferenceKey,
}}
- important
preferenceKey={preferenceKey}
variant="warning"
>
diff --git a/packages/manager/src/components/DismissibleBanner/DismissibleBanner.stories.tsx b/packages/manager/src/components/DismissibleBanner/DismissibleBanner.stories.tsx
index a2af0d71767..77a17ecc46c 100644
--- a/packages/manager/src/components/DismissibleBanner/DismissibleBanner.stories.tsx
+++ b/packages/manager/src/components/DismissibleBanner/DismissibleBanner.stories.tsx
@@ -28,6 +28,7 @@ export const CallToActionBanner: Story = {
Upgrade Version
}
+ forceImportantIconVerticalCenter
preferenceKey="cluster-v1"
variant="info"
>
@@ -55,6 +56,20 @@ export const BetaBanner: Story = {
),
};
+export const InfoWithLongTextAndMarkup: StoryObj = {
+ render: () => (
+
+
+ This is a dismissible informational notice with a title.
+
+ This notice contains long text that should wrap.
+
+ ),
+};
+
const meta: Meta = {
args: { preferenceKey: 'dismissible-banner' },
component: DismissibleBanner,
diff --git a/packages/manager/src/components/DismissibleBanner/DismissibleBanner.tsx b/packages/manager/src/components/DismissibleBanner/DismissibleBanner.tsx
index f049864524f..fc4de218335 100644
--- a/packages/manager/src/components/DismissibleBanner/DismissibleBanner.tsx
+++ b/packages/manager/src/components/DismissibleBanner/DismissibleBanner.tsx
@@ -11,6 +11,10 @@ interface Props extends NoticeProps {
* Optional element to pass to the banner to trigger actions
*/
actionButton?: JSX.Element;
+ /**
+ * If true, the important icon will be vertically centered with the text no matter the height of the text.
+ */
+ forceImportantIconVerticalCenter?: boolean;
/**
* Additional controls to pass to the Dismissible Banner
*/
@@ -54,22 +58,32 @@ export const DismissibleBanner = (props: Props) => {
aria-label={`Dismiss ${preferenceKey} banner`}
data-testid="notice-dismiss"
onClick={handleDismiss}
- sx={{ padding: 1, paddingRight: 2 }}
+ sx={(theme) => ({
+ padding: theme.spacingFunction(2),
+ '& svg': {
+ width: 16,
+ height: 16,
+ '& path': {
+ fill: theme.tokens.component.NotificationBanner.Icon,
+ },
+ },
+ })}
>
);
return (
- theme.palette.background.paper}
- display="flex"
- gap={1}
- justifyContent="space-between"
- {...rest}
- >
- {children}
-
+ theme.palette.background.paper} {...rest}>
+
+ {children}
+
+
{actionButton}
{dismissibleButton}
diff --git a/packages/manager/src/components/MaintenanceBanner/MaintenanceBanner.tsx b/packages/manager/src/components/MaintenanceBanner/MaintenanceBanner.tsx
index 1463ab86584..cd0b94629b8 100644
--- a/packages/manager/src/components/MaintenanceBanner/MaintenanceBanner.tsx
+++ b/packages/manager/src/components/MaintenanceBanner/MaintenanceBanner.tsx
@@ -68,7 +68,7 @@ export const MaintenanceBanner = React.memo((props: Props) => {
}
return (
-
+
{generateIntroText(type, maintenanceStart, maintenanceEnd)}
diff --git a/packages/manager/src/components/ProductInformationBanner/ProductInformationBanner.tsx b/packages/manager/src/components/ProductInformationBanner/ProductInformationBanner.tsx
index 8269b2bd417..99ab5df9893 100644
--- a/packages/manager/src/components/ProductInformationBanner/ProductInformationBanner.tsx
+++ b/packages/manager/src/components/ProductInformationBanner/ProductInformationBanner.tsx
@@ -29,13 +29,6 @@ export const ProductInformationBanner = React.memo(
return null;
}
- const isImportantBanner =
- thisBanner.decoration.important === 'true'
- ? true
- : thisBanner.decoration.important === 'false'
- ? false
- : true;
-
let hasBannerExpired = true;
try {
hasBannerExpired = isAfter(
@@ -52,7 +45,6 @@ export const ProductInformationBanner = React.memo(
return (
- {text}
-
- );
+ return {text};
};
diff --git a/packages/manager/src/components/Snackbar/Snackbar.tsx b/packages/manager/src/components/Snackbar/Snackbar.tsx
index c34633f19d5..a2c9efab983 100644
--- a/packages/manager/src/components/Snackbar/Snackbar.tsx
+++ b/packages/manager/src/components/Snackbar/Snackbar.tsx
@@ -25,9 +25,13 @@ declare module 'notistack' {
const StyledMaterialDesignContent = styled(MaterialDesignContent)(
({ theme }: { theme: Theme }) => ({
+ '#notistack-snackbar': {
+ alignItems: 'flex-start',
+ position: 'relative',
+ },
'#notistack-snackbar > svg': {
position: 'absolute',
- left: '14px',
+ left: '-45px',
},
'&.notistack-MuiContent': {
color: theme.notificationToast.default.color,
@@ -60,6 +64,7 @@ const StyledMaterialDesignContent = styled(MaterialDesignContent)(
borderLeft: theme.notificationToast.warning.borderLeft,
},
'& #notistack-snackbar + div': {
+ alignSelf: 'flex-start',
paddingLeft: theme.spacingFunction(12),
},
})
diff --git a/packages/manager/src/features/Account/AccountLogins.tsx b/packages/manager/src/features/Account/AccountLogins.tsx
index 2c06eb241bb..4335b3a2c84 100644
--- a/packages/manager/src/features/Account/AccountLogins.tsx
+++ b/packages/manager/src/features/Account/AccountLogins.tsx
@@ -165,7 +165,6 @@ const AccountLogins = () => {
isChildUser,
resourceType: 'Account',
})}
- important
variant="warning"
/>
);
diff --git a/packages/manager/src/features/Account/CloseAccountDialog.tsx b/packages/manager/src/features/Account/CloseAccountDialog.tsx
index 3428969433e..39d381210f6 100644
--- a/packages/manager/src/features/Account/CloseAccountDialog.tsx
+++ b/packages/manager/src/features/Account/CloseAccountDialog.tsx
@@ -19,9 +19,8 @@ interface Props {
}
const CloseAccountDialog = ({ closeDialog, open }: Props) => {
- const [isClosingAccount, setIsClosingAccount] = React.useState(
- false
- );
+ const [isClosingAccount, setIsClosingAccount] =
+ React.useState(false);
const [errors, setErrors] = React.useState(undefined);
const [comments, setComments] = React.useState('');
const history = useHistory();
@@ -103,11 +102,10 @@ const CloseAccountDialog = ({ closeDialog, open }: Props) => {
) : null}
({
border: `1px solid ${theme.tokens.alias.Action.Negative.Default}`,
})}
- important
- spacingBottom={12}
variant="error"
>
diff --git a/packages/manager/src/features/Backups/BackupsCTA.tsx b/packages/manager/src/features/Backups/BackupsCTA.tsx
index 43a2622fe6f..d8275fd49b9 100644
--- a/packages/manager/src/features/Backups/BackupsCTA.tsx
+++ b/packages/manager/src/features/Backups/BackupsCTA.tsx
@@ -1,8 +1,3 @@
-import { CloseIcon, IconButton, Notice, Typography } from '@linode/ui';
-
-import React from 'react';
-
-import { LinkButton } from 'src/components/LinkButton';
import {
useAccountSettings,
useAllLinodesQuery,
@@ -10,6 +5,10 @@ import {
usePreferences,
useProfile,
} from '@linode/queries';
+import { Box, CloseIcon, IconButton, Notice, Typography } from '@linode/ui';
+import React from 'react';
+
+import { LinkButton } from 'src/components/LinkButton';
import { BackupDrawer } from './BackupDrawer';
@@ -52,19 +51,31 @@ export const BackupsCTA = () => {
spacingBottom={8}
variant="info"
>
-
- setIsBackupsDrawerOpen(true)}>
- Enable Linode Backups
- {' '}
- to protect your data and recover quickly in an emergency.
-
-
-
-
+
+ setIsBackupsDrawerOpen(true)}>
+ Enable Linode Backups
+ {' '}
+ to protect your data and recover quickly in an emergency.
+
+ ({
+ padding: 0.25,
+ '& path': {
+ fill: theme.tokens.component.NotificationBanner.Icon,
+ },
+ })}
+ >
+
+
+
setIsBackupsDrawerOpen(false)}
open={isBackupsDrawerOpen}
diff --git a/packages/manager/src/features/Databases/DatabaseCreate/DatabaseCreate.tsx b/packages/manager/src/features/Databases/DatabaseCreate/DatabaseCreate.tsx
index 53ed7c76b53..1a71e471679 100644
--- a/packages/manager/src/features/Databases/DatabaseCreate/DatabaseCreate.tsx
+++ b/packages/manager/src/features/Databases/DatabaseCreate/DatabaseCreate.tsx
@@ -250,12 +250,11 @@ const DatabaseCreate = () => {
/>
{isRestricted && (
)}
diff --git a/packages/manager/src/features/Databases/DatabaseDetail/DatabaseAdvancedConfiguration/DatabaseAdvancedConfigurationDrawer.tsx b/packages/manager/src/features/Databases/DatabaseDetail/DatabaseAdvancedConfiguration/DatabaseAdvancedConfigurationDrawer.tsx
index 8e30e1a2ffc..7f8901b05c4 100644
--- a/packages/manager/src/features/Databases/DatabaseDetail/DatabaseAdvancedConfiguration/DatabaseAdvancedConfigurationDrawer.tsx
+++ b/packages/manager/src/features/Databases/DatabaseDetail/DatabaseAdvancedConfiguration/DatabaseAdvancedConfigurationDrawer.tsx
@@ -183,7 +183,7 @@ export const DatabaseAdvancedConfigurationDrawer = (props: Props) => {
Learn more.
-
+
{ADVANCED_CONFIG_INFO}
diff --git a/packages/manager/src/features/Databases/DatabaseDetail/index.tsx b/packages/manager/src/features/Databases/DatabaseDetail/index.tsx
index 5f1316d601d..3f2bf879941 100644
--- a/packages/manager/src/features/Databases/DatabaseDetail/index.tsx
+++ b/packages/manager/src/features/Databases/DatabaseDetail/index.tsx
@@ -65,11 +65,8 @@ export const DatabaseDetail = () => {
id,
});
- const {
- editableLabelError,
- resetEditableLabel,
- setEditableLabelError,
- } = useEditableLabelState();
+ const { editableLabelError, resetEditableLabel, setEditableLabelError } =
+ useEditableLabelState();
if (error) {
return (
@@ -207,7 +204,6 @@ export const DatabaseDetail = () => {
text={
"You don't have permissions to modify this Database. Please contact an account administrator for details."
}
- important
variant="warning"
/>
)}
diff --git a/packages/manager/src/features/Domains/CreateDomain/CreateDomain.tsx b/packages/manager/src/features/Domains/CreateDomain/CreateDomain.tsx
index 1245e43d2cd..64156dbf7d9 100644
--- a/packages/manager/src/features/Domains/CreateDomain/CreateDomain.tsx
+++ b/packages/manager/src/features/Domains/CreateDomain/CreateDomain.tsx
@@ -81,18 +81,14 @@ export const CreateDomain = () => {
},
];
- const [
- defaultRecordsSetting,
- setDefaultRecordsSetting,
- ] = React.useState(defaultRecords[0]);
+ const [defaultRecordsSetting, setDefaultRecordsSetting] =
+ React.useState(defaultRecords[0]);
const [selectedDefaultLinode, setSelectedDefaultLinode] = React.useState<
Linode | undefined
>(undefined);
- const [
- selectedDefaultNodeBalancer,
- setSelectedDefaultNodeBalancer,
- ] = React.useState(undefined);
+ const [selectedDefaultNodeBalancer, setSelectedDefaultNodeBalancer] =
+ React.useState(undefined);
const { values, ...formik } = useFormik({
initialValues: {
@@ -303,7 +299,6 @@ export const CreateDomain = () => {
text={
"You don't have permissions to create a new Domain. Please contact an account administrator for details."
}
- important
variant="error"
/>
)}
diff --git a/packages/manager/src/features/Domains/DomainBanner.tsx b/packages/manager/src/features/Domains/DomainBanner.tsx
index a9c6c711696..0775216c90a 100644
--- a/packages/manager/src/features/Domains/DomainBanner.tsx
+++ b/packages/manager/src/features/Domains/DomainBanner.tsx
@@ -25,7 +25,6 @@ export const DomainBanner = React.memo((props: DomainBannerProps) => {
expiry: DateTime.utc().plus({ days: 30 }).toISO(),
label: KEY,
}}
- important
preferenceKey={KEY}
variant="warning"
>
diff --git a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.tsx b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.tsx
index ec8e183aab1..2844196a5a4 100644
--- a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.tsx
@@ -82,7 +82,6 @@ export const FirewallDeviceLanding = React.memo(
text={
"You don't have permissions to modify this Firewall. Please contact an account administrator for details."
}
- important
variant="error"
/>
) : null}
diff --git a/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRulesLanding.tsx b/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRulesLanding.tsx
index 0bf22df33d6..ef4f067a79d 100644
--- a/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRulesLanding.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRulesLanding.tsx
@@ -53,9 +53,8 @@ interface Drawer {
export const FirewallRulesLanding = React.memo((props: Props) => {
const { disabled, firewallID, rules } = props;
- const { mutateAsync: updateFirewallRules } = useUpdateFirewallRulesMutation(
- firewallID
- );
+ const { mutateAsync: updateFirewallRules } =
+ useUpdateFirewallRulesMutation(firewallID);
const { data: devices } = useAllFirewallDevicesQuery(firewallID);
const queryClient = useQueryClient();
const navigate = useNavigate();
@@ -95,10 +94,8 @@ export const FirewallRulesLanding = React.memo((props: Props) => {
const [generalErrors, setGeneralErrors] = React.useState<
APIError[] | undefined
>();
- const [
- discardChangesModalOpen,
- setDiscardChangesModalOpen,
- ] = React.useState(false);
+ const [discardChangesModalOpen, setDiscardChangesModalOpen] =
+ React.useState(false);
const openRuleDrawer = (
category: Category,
@@ -116,10 +113,10 @@ export const FirewallRulesLanding = React.memo((props: Props) => {
category === 'inbound' && mode === 'create'
? '/firewalls/$id/rules/add/inbound'
: category === 'inbound' && mode === 'edit'
- ? `/firewalls/$id/rules/edit/inbound/$ruleId`
- : category === 'outbound' && mode === 'create'
- ? '/firewalls/$id/rules/add/outbound'
- : `/firewalls/$id/rules/edit/outbound/$ruleId`,
+ ? `/firewalls/$id/rules/edit/inbound/$ruleId`
+ : category === 'outbound' && mode === 'create'
+ ? '/firewalls/$id/rules/add/outbound'
+ : `/firewalls/$id/rules/edit/outbound/$ruleId`,
});
};
@@ -319,12 +316,14 @@ export const FirewallRulesLanding = React.memo((props: Props) => {
}
}, [status, reset]);
- const inboundRules = React.useMemo(() => editorStateToRules(inboundState), [
- inboundState,
- ]);
- const outboundRules = React.useMemo(() => editorStateToRules(outboundState), [
- outboundState,
- ]);
+ const inboundRules = React.useMemo(
+ () => editorStateToRules(inboundState),
+ [inboundState]
+ );
+ const outboundRules = React.useMemo(
+ () => editorStateToRules(outboundState),
+ [outboundState]
+ );
// This is for the Rule Drawer. If there is a rule to modify,
// we need to pass it to the drawer to pre-populate the form fields.
@@ -385,7 +384,6 @@ export const FirewallRulesLanding = React.memo((props: Props) => {
text={
"You don't have permissions to modify this Firewall. Please contact an account administrator for details."
}
- important
variant="error"
/>
) : null}
@@ -495,8 +493,8 @@ interface DiscardChangesDialogProps {
isOpen: boolean;
}
-export const DiscardChangesDialog: React.FC = React.memo(
- (props) => {
+export const DiscardChangesDialog: React.FC =
+ React.memo((props) => {
const { handleClose, handleDiscard, isOpen } = props;
const actions = React.useCallback(
@@ -527,5 +525,4 @@ export const DiscardChangesDialog: React.FC = React.m
);
- }
-);
+ });
diff --git a/packages/manager/src/features/GlobalNotifications/APIMaintenanceBanner.tsx b/packages/manager/src/features/GlobalNotifications/APIMaintenanceBanner.tsx
index fcdef9a158c..1d0c9468703 100644
--- a/packages/manager/src/features/GlobalNotifications/APIMaintenanceBanner.tsx
+++ b/packages/manager/src/features/GlobalNotifications/APIMaintenanceBanner.tsx
@@ -64,7 +64,6 @@ export const APIMaintenanceBanner = React.memo((props: Props) => {
return (
{
Review Update
}
- important
preferenceKey="gdpr-compliance"
variant="warning"
>
diff --git a/packages/manager/src/features/GlobalNotifications/CreditCardExpiredBanner.tsx b/packages/manager/src/features/GlobalNotifications/CreditCardExpiredBanner.tsx
index 69000f6173d..1de9f822732 100644
--- a/packages/manager/src/features/GlobalNotifications/CreditCardExpiredBanner.tsx
+++ b/packages/manager/src/features/GlobalNotifications/CreditCardExpiredBanner.tsx
@@ -1,9 +1,9 @@
+import { useAccount } from '@linode/queries';
import { Button, Typography } from '@linode/ui';
import * as React from 'react';
import { useHistory } from 'react-router-dom';
import { DismissibleBanner } from 'src/components/DismissibleBanner/DismissibleBanner';
-import { useAccount } from '@linode/queries';
import { isCreditCardExpired } from 'src/utilities/creditCard';
export const CreditCardExpiredBanner = () => {
@@ -34,7 +34,7 @@ export const CreditCardExpiredBanner = () => {
Update Card
}
- important
+ forceImportantIconVerticalCenter
preferenceKey={'credit-card-expired'}
variant="error"
>
diff --git a/packages/manager/src/features/GlobalNotifications/DatabaseMigrationInfoBanner.tsx b/packages/manager/src/features/GlobalNotifications/DatabaseMigrationInfoBanner.tsx
index e57d8fd9620..e73fb86c916 100644
--- a/packages/manager/src/features/GlobalNotifications/DatabaseMigrationInfoBanner.tsx
+++ b/packages/manager/src/features/GlobalNotifications/DatabaseMigrationInfoBanner.tsx
@@ -5,12 +5,12 @@ import { SupportLink } from 'src/components/SupportLink';
export const DatabaseMigrationInfoBanner = () => {
return (
-
+
({
font: theme.font.bold,
})}
- lineHeight="20px"
>
Legacy clusters decommission
diff --git a/packages/manager/src/features/GlobalNotifications/EmailBounce.tsx b/packages/manager/src/features/GlobalNotifications/EmailBounce.tsx
index 613193171e9..540942d3b12 100644
--- a/packages/manager/src/features/GlobalNotifications/EmailBounce.tsx
+++ b/packages/manager/src/features/GlobalNotifications/EmailBounce.tsx
@@ -1,18 +1,17 @@
-import { Button, Notice, Typography } from '@linode/ui';
-import { useTheme } from '@mui/material/styles';
-import Grid from '@mui/material/Grid2';
-import useMediaQuery from '@mui/material/useMediaQuery';
-import { useSnackbar } from 'notistack';
-import * as React from 'react';
-import { useHistory } from 'react-router-dom';
-
import {
useAccount,
useMutateAccount,
- useNotificationsQuery,
useMutateProfile,
+ useNotificationsQuery,
useProfile,
} from '@linode/queries';
+import { Button, Notice, Typography } from '@linode/ui';
+import Grid from '@mui/material/Grid2';
+import { useTheme } from '@mui/material/styles';
+import useMediaQuery from '@mui/material/useMediaQuery';
+import { useSnackbar } from 'notistack';
+import * as React from 'react';
+import { useHistory } from 'react-router-dom';
import { StyledGrid } from './EmailBounce.styles';
@@ -58,6 +57,7 @@ export const EmailBounceNotificationSection = React.memo(() => {
focusEmail: true,
})
}
+ confirmEmail={confirmAccountEmail}
text={
An email to your account’s email address couldn’t be
@@ -65,7 +65,6 @@ export const EmailBounceNotificationSection = React.memo(() => {
correct address?
}
- confirmEmail={confirmAccountEmail}
/>
)}
{userEmailBounceNotification && profileEmailRef && (
@@ -73,6 +72,7 @@ export const EmailBounceNotificationSection = React.memo(() => {
changeEmail={() =>
history.push('/profile/display', { focusEmail: true })
}
+ confirmEmail={confirmProfileEmail}
text={
An email to your user profile’s email address couldn’t
@@ -80,7 +80,6 @@ export const EmailBounceNotificationSection = React.memo(() => {
correct address?
}
- confirmEmail={confirmProfileEmail}
/>
)}
>
@@ -132,13 +131,15 @@ const EmailBounceNotification = React.memo((props: Props) => {
}
return (
-
+
{
>
{text}
-
+
diff --git a/packages/manager/src/features/GlobalNotifications/RegionStatusBanner.tsx b/packages/manager/src/features/GlobalNotifications/RegionStatusBanner.tsx
index 0715cf2a699..6c95a5b9fba 100644
--- a/packages/manager/src/features/GlobalNotifications/RegionStatusBanner.tsx
+++ b/packages/manager/src/features/GlobalNotifications/RegionStatusBanner.tsx
@@ -63,7 +63,7 @@ export const RegionStatusBanner = React.memo(() => {
}
return (
-
+
{renderBanner(labelsOfRegionsWithOutages)}
);
diff --git a/packages/manager/src/features/GlobalNotifications/TaxCollectionBanner.tsx b/packages/manager/src/features/GlobalNotifications/TaxCollectionBanner.tsx
index 5bc39204ad4..230f3ef8859 100644
--- a/packages/manager/src/features/GlobalNotifications/TaxCollectionBanner.tsx
+++ b/packages/manager/src/features/GlobalNotifications/TaxCollectionBanner.tsx
@@ -68,7 +68,6 @@ export const TaxCollectionBanner = () => {
!isBannerDateWithinFiveWeeksPrior ? (
diff --git a/packages/manager/src/features/GlobalNotifications/VerificationDetailsBanner.tsx b/packages/manager/src/features/GlobalNotifications/VerificationDetailsBanner.tsx
index f763c7142aa..f0749b2720d 100644
--- a/packages/manager/src/features/GlobalNotifications/VerificationDetailsBanner.tsx
+++ b/packages/manager/src/features/GlobalNotifications/VerificationDetailsBanner.tsx
@@ -24,12 +24,15 @@ export const VerificationDetailsBanner = ({
}
return (
-
+
Add verification details to enhance account security and ensure prompt
@@ -39,6 +42,9 @@ export const VerificationDetailsBanner = ({
buttonType="primary"
data-testid="confirmButton"
onClick={() => history.push('/profile/auth', focusOptions)}
+ sx={{
+ width: 250,
+ }}
>
Add verification details
diff --git a/packages/manager/src/features/Help/StatusBanners.tsx b/packages/manager/src/features/Help/StatusBanners.tsx
index a0a61701b40..35f8139ea52 100644
--- a/packages/manager/src/features/Help/StatusBanners.tsx
+++ b/packages/manager/src/features/Help/StatusBanners.tsx
@@ -73,7 +73,6 @@ export const IncidentBanner = React.memo((props: IncidentProps) => {
variant={
variantMap.error ? 'error' : variantMap.warning ? 'warning' : undefined
}
- important
preferenceKey={preferenceKey}
sx={{ marginBottom: theme.spacing() }}
>
diff --git a/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.test.ts b/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.test.ts
index cf6d975305b..cffc6bd34dc 100644
--- a/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.test.ts
+++ b/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.test.ts
@@ -63,7 +63,10 @@ describe('useIsIAMEnabled', () => {
await waitFor(() => {
expect(result.current.isIAMBeta).toBe(false);
+ // eslint-disable-next-line testing-library/no-wait-for-multiple-assertions
expect(result.current.isIAMEnabled).toBe(true);
+ // eslint-disable-next-line testing-library/no-wait-for-multiple-assertions
+ expect(queryMocks.useAccountPermissions).toHaveBeenCalledWith(true);
});
});
@@ -87,7 +90,10 @@ describe('useIsIAMEnabled', () => {
await waitFor(() => {
expect(result.current.isIAMBeta).toBe(false);
+ // eslint-disable-next-line testing-library/no-wait-for-multiple-assertions
expect(result.current.isIAMEnabled).toBe(false);
+ // eslint-disable-next-line testing-library/no-wait-for-multiple-assertions
+ expect(queryMocks.useAccountPermissions).toHaveBeenCalledWith(false);
});
});
@@ -110,7 +116,10 @@ describe('useIsIAMEnabled', () => {
await waitFor(() => {
expect(result.current.isIAMBeta).toBe(true);
+ // eslint-disable-next-line testing-library/no-wait-for-multiple-assertions
expect(result.current.isIAMEnabled).toBe(false);
+ // eslint-disable-next-line testing-library/no-wait-for-multiple-assertions
+ expect(queryMocks.useAccountPermissions).toHaveBeenCalledWith(true);
});
});
});
diff --git a/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.ts b/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.ts
index 650101e1c53..dfba5d8ace4 100644
--- a/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.ts
+++ b/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.ts
@@ -8,7 +8,7 @@ import { useAccountPermissions } from 'src/queries/iam/iam';
*/
export const useIsIAMEnabled = () => {
const flags = useFlags();
- const { data: rolePermissions } = useAccountPermissions();
+ const { data: rolePermissions } = useAccountPermissions(flags.iam?.enabled);
const hasAccountAccess = rolePermissions?.account_access?.length;
const hasEntityAccess = rolePermissions?.entity_access?.length;
diff --git a/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.tsx b/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.tsx
index 817361968e8..3b7f5e3d625 100644
--- a/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.tsx
+++ b/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.tsx
@@ -163,7 +163,6 @@ export const CreateImageTab = () => {
isSingular: false,
resourceType: 'Images',
})}
- important
variant="error"
/>
)}
diff --git a/packages/manager/src/features/Images/ImagesCreate/ImageUpload.tsx b/packages/manager/src/features/Images/ImagesCreate/ImageUpload.tsx
index 19c606b7057..7512dc50a27 100644
--- a/packages/manager/src/features/Images/ImagesCreate/ImageUpload.tsx
+++ b/packages/manager/src/features/Images/ImagesCreate/ImageUpload.tsx
@@ -192,7 +192,6 @@ export const ImageUpload = () => {
isSingular: false,
resourceType: 'Images',
})}
- important
variant="error"
/>
)}
diff --git a/packages/manager/src/features/Images/ImagesLanding/ImageRegions/ManageImageRegionsForm.tsx b/packages/manager/src/features/Images/ImagesLanding/ImageRegions/ManageImageRegionsForm.tsx
index 9662f006f51..41ec58f89cd 100644
--- a/packages/manager/src/features/Images/ImagesLanding/ImageRegions/ManageImageRegionsForm.tsx
+++ b/packages/manager/src/features/Images/ImagesLanding/ImageRegions/ManageImageRegionsForm.tsx
@@ -113,7 +113,7 @@ export const ManageImageReplicasForm = (props: Props) => {
{' '}
for details on managing your Linux system's disk space.
-
+
As part of our limited promotional period, image replicas are free of
charge until Q4 2025. Starting in Q4, replicas will be subject to our
diff --git a/packages/manager/src/features/Images/ImagesLanding/ImagesLanding.tsx b/packages/manager/src/features/Images/ImagesLanding/ImagesLanding.tsx
index 6fcae5d5c7d..4654651ff26 100644
--- a/packages/manager/src/features/Images/ImagesLanding/ImagesLanding.tsx
+++ b/packages/manager/src/features/Images/ImagesLanding/ImagesLanding.tsx
@@ -429,7 +429,6 @@ export const ImagesLanding = () => {
{isCreateImageRestricted && (
{
const [ipV6Addr, setIPv6Addr] = React.useState([
stringToExtendedIP(''),
]);
- const [selectedTier, setSelectedTier] = React.useState(
- 'standard'
- );
- const [
- isACLAcknowledgementChecked,
- setIsACLAcknowledgementChecked,
- ] = React.useState(false);
+ const [selectedTier, setSelectedTier] =
+ React.useState('standard');
+ const [isACLAcknowledgementChecked, setIsACLAcknowledgementChecked] =
+ React.useState(false);
const {
data: kubernetesHighAvailabilityTypesData,
@@ -174,18 +171,14 @@ export const CreateCluster = () => {
// Only want to use current types here.
const typesData = filterCurrentTypes(allTypes?.map(extendType));
- const {
- mutateAsync: createKubernetesCluster,
- } = useCreateKubernetesClusterMutation();
+ const { mutateAsync: createKubernetesCluster } =
+ useCreateKubernetesClusterMutation();
- const {
- mutateAsync: createKubernetesClusterBeta,
- } = useCreateKubernetesClusterBetaMutation();
+ const { mutateAsync: createKubernetesClusterBeta } =
+ useCreateKubernetesClusterBetaMutation();
- const {
- isLkeEnterpriseLAFeatureEnabled,
- isLkeEnterpriseLAFlagEnabled,
- } = useIsLkeEnterpriseEnabled();
+ const { isLkeEnterpriseLAFeatureEnabled, isLkeEnterpriseLAFlagEnabled } =
+ useIsLkeEnterpriseEnabled();
const {
isLoadingVersions,
@@ -384,13 +377,12 @@ export const CreateCluster = () => {
)}
{isCreateClusterRestricted && (
)}
diff --git a/packages/manager/src/features/Kubernetes/KubeCheckoutBar/KubeCheckoutBar.tsx b/packages/manager/src/features/Kubernetes/KubeCheckoutBar/KubeCheckoutBar.tsx
index 3cbb52e3270..8ac2ce7b2d1 100644
--- a/packages/manager/src/features/Kubernetes/KubeCheckoutBar/KubeCheckoutBar.tsx
+++ b/packages/manager/src/features/Kubernetes/KubeCheckoutBar/KubeCheckoutBar.tsx
@@ -170,12 +170,7 @@ export const KubeCheckoutBar = (props: Props) => {
))}
{showWarning && (
-
+
)}
>
diff --git a/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/AddNodePoolDrawer.tsx b/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/AddNodePoolDrawer.tsx
index d5677f650bc..366d492996b 100644
--- a/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/AddNodePoolDrawer.tsx
+++ b/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/AddNodePoolDrawer.tsx
@@ -104,8 +104,10 @@ export const AddNodePoolDrawer = (props: Props) => {
? extendedTypes.find((thisType) => thisType.id === selectedTypeInfo.planId)
: undefined;
- const pricePerNode = getLinodeRegionPrice(selectedType, clusterRegionId)
- ?.monthly;
+ const pricePerNode = getLinodeRegionPrice(
+ selectedType,
+ clusterRegionId
+ )?.monthly;
const totalPrice =
selectedTypeInfo && isNumber(pricePerNode)
@@ -203,7 +205,6 @@ export const AddNodePoolDrawer = (props: Props) => {
selectedTypeInfo.count > 0 &&
selectedTypeInfo.count < 3 && (
{
- const {
- kubernetesClusterId,
- kubernetesRegionId,
- nodePool,
- onClose,
- open,
- } = props;
+ const { kubernetesClusterId, kubernetesRegionId, nodePool, onClose, open } =
+ props;
const { classes } = useStyles();
const typesQuery = useSpecificTypes(nodePool?.type ? [nodePool.type] : []);
@@ -71,9 +66,8 @@ export const ResizeNodePoolDrawer = (props: Props) => {
isPending,
mutateAsync: updateNodePool,
} = useUpdateNodePoolMutation(kubernetesClusterId, nodePool?.id ?? -1);
- const [resizeNodePoolError, setResizeNodePoolError] = React.useState(
- ''
- );
+ const [resizeNodePoolError, setResizeNodePoolError] =
+ React.useState('');
const [updatedCount, setUpdatedCount] = React.useState(
nodePool?.count ?? 0
@@ -111,8 +105,10 @@ export const ResizeNodePoolDrawer = (props: Props) => {
});
};
- const pricePerNode = getLinodeRegionPrice(planType, kubernetesRegionId)
- ?.monthly;
+ const pricePerNode = getLinodeRegionPrice(
+ planType,
+ kubernetesRegionId
+ )?.monthly;
const totalMonthlyPrice =
planType &&
@@ -186,12 +182,10 @@ export const ResizeNodePoolDrawer = (props: Props) => {
{updatedCount < nodePool.count && (
-
+
)}
- {updatedCount < 3 && (
-
- )}
+ {updatedCount < 3 && }
{nodePool.count && hasInvalidPrice && (
{
const { mutateAsync: cloneLinode } = useCloneLinodeMutation();
const { mutateAsync: updateAccountAgreements } = useMutateAccountAgreements();
- const {
- handleLinodeCreateAnalyticsFormError,
- } = useHandleLinodeCreateAnalyticsFormError(params.type ?? 'OS');
+ const { handleLinodeCreateAnalyticsFormError } =
+ useHandleLinodeCreateAnalyticsFormError(params.type ?? 'OS');
const currentTabIndex = getTabIndex(params.type);
@@ -218,13 +217,12 @@ export const LinodeCreate = () => {
{isLinodeCreateRestricted && (
)}
diff --git a/packages/manager/src/features/Linodes/LinodeEntityDetail.tsx b/packages/manager/src/features/Linodes/LinodeEntityDetail.tsx
index bd23b63205c..cc6badeb0b0 100644
--- a/packages/manager/src/features/Linodes/LinodeEntityDetail.tsx
+++ b/packages/manager/src/features/Linodes/LinodeEntityDetail.tsx
@@ -119,7 +119,6 @@ export const LinodeEntityDetail = (props: Props) => {
<>
{isLinodesGrantReadOnly && (
-
+
{isDryRun ? ERROR_DRY_RUN_COPY : 'Unable to upgrade interfaces.'}
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/UpgradeInterfaces/DialogContents/PromptDialogContent.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/UpgradeInterfaces/DialogContents/PromptDialogContent.tsx
index e20f4103fbc..3292533953f 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/UpgradeInterfaces/DialogContents/PromptDialogContent.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/UpgradeInterfaces/DialogContents/PromptDialogContent.tsx
@@ -24,10 +24,8 @@ export const PromptDialogContent = (
const [isDryRun, setIsDryRun] = React.useState(true);
- const {
- data: configs,
- isLoading: isLoadingConfigs,
- } = useAllLinodeConfigsQuery(linodeId, open);
+ const { data: configs, isLoading: isLoadingConfigs } =
+ useAllLinodeConfigsQuery(linodeId, open);
const { isPending, upgradeToLinodeInterfaces } = useUpgradeToLinodeInterfaces(
{
@@ -95,7 +93,7 @@ export const PromptDialogContent = (
{' '}
All networking configurations will be deleted from the configuration
- profile and re-assigned to the neew interfaces in the Linode Network
+ profile and re-assigned to the new interfaces in the Linode Network
tab.
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/UpgradeInterfaces/DialogContents/SuccessDialogContent.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/UpgradeInterfaces/DialogContents/SuccessDialogContent.tsx
index cfd683d782a..8a54148c0aa 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/UpgradeInterfaces/DialogContents/SuccessDialogContent.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/UpgradeInterfaces/DialogContents/SuccessDialogContent.tsx
@@ -26,7 +26,7 @@ export const SuccessDialogContent = (
return (
-
+
{isDryRun ? SUCCESS_DRY_RUN_COPY : SUCCESS_UPGRADE_COPY}
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/NetworkingSummaryPanel/TransferContent.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/NetworkingSummaryPanel/TransferContent.tsx
index 6c0d5fdfa71..22896576147 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/NetworkingSummaryPanel/TransferContent.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/NetworkingSummaryPanel/TransferContent.tsx
@@ -60,11 +60,10 @@ export const TransferContent = (props: ContentProps) => {
if (error) {
return (
);
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/HostMaintenance.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/HostMaintenance.tsx
index d3432f34d42..000d963e36f 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/HostMaintenance.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/HostMaintenance.tsx
@@ -13,7 +13,7 @@ export const HostMaintenance = (props: Props) => {
return null;
}
return (
-
+
An issue affecting the physical host this Linode resides on has been
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/MigrationNotification.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/MigrationNotification.tsx
index bba8906b0e7..e134d746074 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/MigrationNotification.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/MigrationNotification.tsx
@@ -33,15 +33,8 @@ export const MigrationNotification = React.memo((props: Props) => {
const { data: profile } = useProfile();
- const {
- closeDialog,
- dialog,
- handleError,
- openDialog,
- submitDialog,
- } = useDialog((linodeID: number) =>
- scheduleOrQueueMigration(linodeID)
- );
+ const { closeDialog, dialog, handleError, openDialog, submitDialog } =
+ useDialog((linodeID: number) => scheduleOrQueueMigration(linodeID));
const onSubmit = () => {
submitDialog(linodeID)
@@ -106,7 +99,7 @@ export const MigrationNotification = React.memo((props: Props) => {
return (
<>
-
+
{notificationType === 'migration_scheduled'
? migrationScheduledText()
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/MutationNotification.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/MutationNotification.tsx
index 1899eac48bf..0d07b7810d0 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/MutationNotification.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodesDetailHeader/MutationNotification.tsx
@@ -74,7 +74,7 @@ export const MutationNotification = (props: Props) => {
return (
<>
-
+
You have a pending upgrade. The estimated time to complete this
upgrade is
diff --git a/packages/manager/src/features/Longview/LongviewLanding/LongviewLanding.tsx b/packages/manager/src/features/Longview/LongviewLanding/LongviewLanding.tsx
index dfb934bbb1a..68db90e60b1 100644
--- a/packages/manager/src/features/Longview/LongviewLanding/LongviewLanding.tsx
+++ b/packages/manager/src/features/Longview/LongviewLanding/LongviewLanding.tsx
@@ -120,7 +120,6 @@ export const LongviewLanding = (props: LongviewProps) => {
<>
{isLongviewCreationRestricted && (
{
)}
{!mayUserModifyLVSubscription && (
diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancerCreate.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancerCreate.tsx
index a32be080cc6..19432d2dc22 100644
--- a/packages/manager/src/features/NodeBalancers/NodeBalancerCreate.tsx
+++ b/packages/manager/src/features/NodeBalancers/NodeBalancerCreate.tsx
@@ -116,24 +116,19 @@ const NodeBalancerCreate = () => {
mutateAsync: createNodeBalancer,
} = useNodebalancerCreateMutation();
- const [
- nodeBalancerFields,
- setNodeBalancerFields,
- ] = React.useState(defaultFieldsStates);
+ const [nodeBalancerFields, setNodeBalancerFields] =
+ React.useState(defaultFieldsStates);
- const [hasSignedAgreement, setHasSignedAgreement] = React.useState(
- false
- );
+ const [hasSignedAgreement, setHasSignedAgreement] =
+ React.useState(false);
- const [
- deleteConfigConfirmDialog,
- setDeleteConfigConfirmDialog,
- ] = React.useState<{
- errors?: APIError[];
- idxToDelete?: number;
- open: boolean;
- submitting: boolean;
- }>(defaultDeleteConfigConfirmDialogState);
+ const [deleteConfigConfirmDialog, setDeleteConfigConfirmDialog] =
+ React.useState<{
+ errors?: APIError[];
+ idxToDelete?: number;
+ open: boolean;
+ submitting: boolean;
+ }>(defaultDeleteConfigConfirmDialogState);
const { mutateAsync: updateAgreements } = useMutateAccountAgreements();
@@ -164,16 +159,15 @@ const NodeBalancerCreate = () => {
return { ...prev, configs: newConfigs };
});
- const removeNodeBalancerConfigNode = (configIdx: number) => (
- nodeIdx: number
- ) =>
- setNodeBalancerFields((prev) => {
- const newConfigs = [...prev.configs];
- newConfigs[configIdx].nodes = newConfigs[configIdx].nodes.filter(
- (_, idx) => idx !== nodeIdx
- );
- return { ...prev, configs: newConfigs };
- });
+ const removeNodeBalancerConfigNode =
+ (configIdx: number) => (nodeIdx: number) =>
+ setNodeBalancerFields((prev) => {
+ const newConfigs = [...prev.configs];
+ newConfigs[configIdx].nodes = newConfigs[configIdx].nodes.filter(
+ (_, idx) => idx !== nodeIdx
+ );
+ return { ...prev, configs: newConfigs };
+ });
const setNodeValue = (
cidx: number,
@@ -358,7 +352,7 @@ const NodeBalancerCreate = () => {
};
const onConfigValueChange = <
- Key extends keyof NodeBalancerConfigFieldsWithStatusAndErrors
+ Key extends keyof NodeBalancerConfigFieldsWithStatusAndErrors,
>(
configId: number,
key: Key,
@@ -438,8 +432,9 @@ const NodeBalancerCreate = () => {
selectedRegionId: nodeBalancerFields.region ?? '',
});
- const regionLabel = regions?.find((r) => r.id === nodeBalancerFields.region)
- ?.label;
+ const regionLabel = regions?.find(
+ (r) => r.id === nodeBalancerFields.region
+ )?.label;
const price = getDCSpecificPriceByType({
regionId: nodeBalancerFields.region,
@@ -501,12 +496,11 @@ const NodeBalancerCreate = () => {
)}
{isRestricted && (
)}
@@ -583,9 +577,9 @@ const NodeBalancerCreate = () => {
{nodeBalancerFields.configs.map((nodeBalancerConfig, idx) => {
- const onChange = (key: keyof NodeBalancerConfigFieldsWithStatus) => (
- value: any
- ) => onConfigValueChange(idx, key, value);
+ const onChange =
+ (key: keyof NodeBalancerConfigFieldsWithStatus) => (value: any) =>
+ onConfigValueChange(idx, key, value);
return (
{
};
/* @todo: move to own file */
-export const lensFrom = (p1: (number | string)[]) => (
- p2: (number | string)[]
-) => lensPath([...p1, ...p2]);
+export const lensFrom =
+ (p1: (number | string)[]) => (p2: (number | string)[]) =>
+ lensPath([...p1, ...p2]);
const getPathAndFieldFromFieldString = (value: string) => {
let field = value;
diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerDetail.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerDetail.tsx
index 2d6c882e4b4..141ef433887 100644
--- a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerDetail.tsx
+++ b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerDetail.tsx
@@ -31,15 +31,14 @@ export const NodeBalancerDetail = () => {
const [label, setLabel] = React.useState();
const { data: grants } = useGrants();
- const {
- error: updateError,
- mutateAsync: updateNodeBalancer,
- } = useNodebalancerUpdateMutation(Number(id));
+ const { error: updateError, mutateAsync: updateNodeBalancer } =
+ useNodebalancerUpdateMutation(Number(id));
- const { data: nodebalancer, error, isLoading } = useNodeBalancerQuery(
- Number(id),
- Boolean(id)
- );
+ const {
+ data: nodebalancer,
+ error,
+ isLoading,
+ } = useNodeBalancerQuery(Number(id), Boolean(id));
const isNodeBalancerReadOnly = useIsResourceRestricted({
grantLevel: 'read_only',
@@ -115,7 +114,6 @@ export const NodeBalancerDetail = () => {
text={getRestrictedResourceText({
resourceType: 'NodeBalancers',
})}
- important
variant="warning"
/>
)}
diff --git a/packages/manager/src/features/ObjectStorage/BucketLanding/BucketLanding.tsx b/packages/manager/src/features/ObjectStorage/BucketLanding/BucketLanding.tsx
index 7404639ccd3..c947fff60d2 100644
--- a/packages/manager/src/features/ObjectStorage/BucketLanding/BucketLanding.tsx
+++ b/packages/manager/src/features/ObjectStorage/BucketLanding/BucketLanding.tsx
@@ -281,7 +281,7 @@ const Banner = React.memo(({ regionsAffected }: BannerProps) => {
const moreThanOneRegionAffected = regionsAffected.length > 1;
return (
-
+
There was an error loading buckets in{' '}
{moreThanOneRegionAffected
diff --git a/packages/manager/src/features/ObjectStorage/BucketLanding/OMC_BucketLanding.tsx b/packages/manager/src/features/ObjectStorage/BucketLanding/OMC_BucketLanding.tsx
index 6207bf51f50..704c037e35e 100644
--- a/packages/manager/src/features/ObjectStorage/BucketLanding/OMC_BucketLanding.tsx
+++ b/packages/manager/src/features/ObjectStorage/BucketLanding/OMC_BucketLanding.tsx
@@ -293,7 +293,7 @@ const Banner = React.memo(({ regionsAffected }: BannerProps) => {
const moreThanOneRegionAffected = regionsAffected.length > 1;
return (
-
+
There was an error loading buckets in{' '}
{moreThanOneRegionAffected
diff --git a/packages/manager/src/features/ObjectStorage/ObjectStorageLanding.tsx b/packages/manager/src/features/ObjectStorage/ObjectStorageLanding.tsx
index a024fce14e0..cefb07677a9 100644
--- a/packages/manager/src/features/ObjectStorage/ObjectStorageLanding.tsx
+++ b/packages/manager/src/features/ObjectStorage/ObjectStorageLanding.tsx
@@ -203,7 +203,6 @@ export const BillingNotice = React.memo(() => {
expiry: DateTime.utc().plus({ days: 30 }).toISO(),
label: NOTIFICATION_KEY,
}}
- important
preferenceKey={NOTIFICATION_KEY}
variant="warning"
>
diff --git a/packages/manager/src/features/StackScripts/StackScriptCreate/StackScriptCreate.tsx b/packages/manager/src/features/StackScripts/StackScriptCreate/StackScriptCreate.tsx
index c6657f96d97..b79222e82e7 100644
--- a/packages/manager/src/features/StackScripts/StackScriptCreate/StackScriptCreate.tsx
+++ b/packages/manager/src/features/StackScripts/StackScriptCreate/StackScriptCreate.tsx
@@ -76,13 +76,12 @@ export const StackScriptCreate = () => {
{isStackScriptCreationRestricted && (
)}
diff --git a/packages/manager/src/features/VPCs/VPCCreate/FormComponents/CannotCreateVPCNotice.tsx b/packages/manager/src/features/VPCs/VPCCreate/FormComponents/CannotCreateVPCNotice.tsx
index 53220e98caa..fbd2c48b005 100644
--- a/packages/manager/src/features/VPCs/VPCCreate/FormComponents/CannotCreateVPCNotice.tsx
+++ b/packages/manager/src/features/VPCs/VPCCreate/FormComponents/CannotCreateVPCNotice.tsx
@@ -5,7 +5,6 @@ import { CANNOT_CREATE_VPC_MESSAGE } from '../../constants';
export const CannotCreateVPCNotice = (
{userCannotAssignLinodes && (
diff --git a/packages/manager/src/features/VPCs/VPCDetail/SubnetCreateDrawer.tsx b/packages/manager/src/features/VPCs/VPCDetail/SubnetCreateDrawer.tsx
index 3558fb91e2a..dec766ab715 100644
--- a/packages/manager/src/features/VPCs/VPCDetail/SubnetCreateDrawer.tsx
+++ b/packages/manager/src/features/VPCs/VPCDetail/SubnetCreateDrawer.tsx
@@ -101,12 +101,11 @@ export const SubnetCreateDrawer = (props: Props) => {
)}
{userCannotAddSubnet && (
)}
diff --git a/packages/manager/src/features/VPCs/VPCDetail/SubnetEditDrawer.tsx b/packages/manager/src/features/VPCs/VPCDetail/SubnetEditDrawer.tsx
index ce5de18d1c1..b8a3de33a6e 100644
--- a/packages/manager/src/features/VPCs/VPCDetail/SubnetEditDrawer.tsx
+++ b/packages/manager/src/features/VPCs/VPCDetail/SubnetEditDrawer.tsx
@@ -88,7 +88,6 @@ export const SubnetEditDrawer = (props: Props) => {
)}
{readOnly && (
diff --git a/packages/manager/src/features/VPCs/VPCDetail/SubnetUnassignLinodesDrawer.tsx b/packages/manager/src/features/VPCs/VPCDetail/SubnetUnassignLinodesDrawer.tsx
index 4557c224744..319c8f487cd 100644
--- a/packages/manager/src/features/VPCs/VPCDetail/SubnetUnassignLinodesDrawer.tsx
+++ b/packages/manager/src/features/VPCs/VPCDetail/SubnetUnassignLinodesDrawer.tsx
@@ -318,7 +318,6 @@ export const SubnetUnassignLinodesDrawer = React.memo(
>
{userCannotUnassignLinodes && (
diff --git a/packages/manager/src/features/VPCs/VPCLanding/VPCEditDrawer.tsx b/packages/manager/src/features/VPCs/VPCLanding/VPCEditDrawer.tsx
index 891ad61dc28..b10a1024c73 100644
--- a/packages/manager/src/features/VPCs/VPCLanding/VPCEditDrawer.tsx
+++ b/packages/manager/src/features/VPCs/VPCLanding/VPCEditDrawer.tsx
@@ -81,7 +81,6 @@ export const VPCEditDrawer = (props: Props) => {
)}
{readOnly && (
diff --git a/packages/manager/src/features/VPCs/utils.test.ts b/packages/manager/src/features/VPCs/utils.test.ts
index cba32310b5d..21c48cb1982 100644
--- a/packages/manager/src/features/VPCs/utils.test.ts
+++ b/packages/manager/src/features/VPCs/utils.test.ts
@@ -17,8 +17,11 @@ import {
getVPCInterfacePayload,
hasUnrecommendedConfiguration,
hasUnrecommendedConfigurationLinodeInterface,
+ transformLinodeInterfaceErrorsToFormikErrors,
} from './utils';
+import type { APIError } from '@linode/api-v4';
+
const subnetLinodeInfoList1 = subnetAssignedLinodeDataFactory.buildList(4);
const subnetLinodeInfoId1 = subnetAssignedLinodeDataFactory.build({ id: 1 });
const subnetLinodeInfoId3 = subnetAssignedLinodeDataFactory.build({ id: 3 });
@@ -254,3 +257,55 @@ describe('Linode Interface utility functions', () => {
});
});
});
+
+describe('transformLinodeInterfaceErrorsToFormikErrors', () => {
+ it('handles vpc range errors', () => {
+ const error: APIError[] = [
+ { field: 'vpc.ipv4.ranges[3].range', reason: 'Range is invalid.' },
+ ];
+
+ expect(transformLinodeInterfaceErrorsToFormikErrors(error)).toStrictEqual([
+ {
+ field: 'ip_ranges[3]',
+ reason: 'Range is invalid.',
+ },
+ ]);
+
+ const generalRangeError: APIError[] = [
+ { field: 'vpc.ipv4.ranges', reason: 'Range is invalid.' },
+ ];
+
+ expect(
+ transformLinodeInterfaceErrorsToFormikErrors(generalRangeError)
+ ).toStrictEqual([
+ {
+ field: 'ip_ranges',
+ reason: 'Range is invalid.',
+ },
+ ]);
+ });
+
+ it('handles vpc address errors', () => {
+ const error: APIError[] = [
+ { field: 'vpc.ipv4.addresses[0]', reason: 'address is invalid.' },
+ ];
+
+ expect(transformLinodeInterfaceErrorsToFormikErrors(error)).toStrictEqual([
+ {
+ field: 'ipv4.vpc',
+ reason: 'address is invalid.',
+ },
+ ]);
+
+ const error2: APIError[] = [
+ { field: 'vpc.ipv4.addresses', reason: 'address 2 is invalid.' },
+ ];
+
+ expect(transformLinodeInterfaceErrorsToFormikErrors(error2)).toStrictEqual([
+ {
+ field: 'ipv4.vpc',
+ reason: 'address 2 is invalid.',
+ },
+ ]);
+ });
+});
diff --git a/packages/manager/src/features/VPCs/utils.ts b/packages/manager/src/features/VPCs/utils.ts
index 41327fed813..4efed46225b 100644
--- a/packages/manager/src/features/VPCs/utils.ts
+++ b/packages/manager/src/features/VPCs/utils.ts
@@ -158,8 +158,15 @@ export const transformLinodeInterfaceErrorsToFormikErrors = (
errors: APIError[]
): APIError[] => {
for (const error of errors) {
- if (error.field && error.field.match(/vpc.ipv4.ranges\[(\d+)\]/)) {
- error.field = 'ip_ranges[$1]';
+ if (error.field && error.field.includes('vpc.ipv4.ranges')) {
+ if (error.field.match(/vpc.ipv4.ranges\[(\d+)\].range/)) {
+ error.field = error.field.replace(
+ /vpc.ipv4.ranges\[(\d+)\].range/,
+ 'ip_ranges[$1]'
+ );
+ } else {
+ error.field = 'ip_ranges';
+ }
}
if (error.field && error.field.includes('vpc.ipv4.addresses')) {
error.field = 'ipv4.vpc';
diff --git a/packages/manager/src/features/Volumes/Drawers/VolumeDrawer/LinodeVolumeAttachForm.tsx b/packages/manager/src/features/Volumes/Drawers/VolumeDrawer/LinodeVolumeAttachForm.tsx
index 982deaf58f7..d390d02a7ca 100644
--- a/packages/manager/src/features/Volumes/Drawers/VolumeDrawer/LinodeVolumeAttachForm.tsx
+++ b/packages/manager/src/features/Volumes/Drawers/VolumeDrawer/LinodeVolumeAttachForm.tsx
@@ -115,7 +115,6 @@ export const LinodeVolumeAttachForm = (props: Props) => {
text={
"You don't have permissions to add a Volume for this Linode. Please contact an account administrator for details."
}
- important
variant="error"
/>
)}
diff --git a/packages/manager/src/features/Volumes/VolumeCreate.tsx b/packages/manager/src/features/Volumes/VolumeCreate.tsx
index 5c24e82072c..f51344ce8ed 100644
--- a/packages/manager/src/features/Volumes/VolumeCreate.tsx
+++ b/packages/manager/src/features/Volumes/VolumeCreate.tsx
@@ -148,9 +148,8 @@ export const VolumeCreate = () => {
const [hasSignedAgreement, setHasSignedAgreement] = React.useState(false);
const { mutateAsync: updateAccountAgreements } = useMutateAccountAgreements();
- const {
- isBlockStorageEncryptionFeatureEnabled,
- } = useIsBlockStorageEncryptionFeatureEnabled();
+ const { isBlockStorageEncryptionFeatureEnabled } =
+ useIsBlockStorageEncryptionFeatureEnabled();
const regionsWithBlockStorage =
regions
@@ -193,15 +192,8 @@ export const VolumeCreate = () => {
} = useFormik({
initialValues,
onSubmit: (values, { resetForm, setErrors, setStatus, setSubmitting }) => {
- const {
- config_id,
- encryption,
- label,
- linode_id,
- region,
- size,
- tags,
- } = values;
+ const { config_id, encryption, label, linode_id, region, size, tags } =
+ values;
setSubmitting(true);
@@ -339,12 +331,11 @@ export const VolumeCreate = () => {
/>
{doesNotHavePermission && (
)}
@@ -394,7 +385,7 @@ export const VolumeCreate = () => {
touched.tags
? errors.tags
? getErrorStringOrDefault(
- (errors.tags as unknown) as APIError[],
+ errors.tags as unknown as APIError[],
'Unable to tag volume.'
)
: undefined
diff --git a/packages/manager/src/queries/iam/iam.ts b/packages/manager/src/queries/iam/iam.ts
index c7a45414576..ed6d4536949 100644
--- a/packages/manager/src/queries/iam/iam.ts
+++ b/packages/manager/src/queries/iam/iam.ts
@@ -17,11 +17,12 @@ export const useAccountUserPermissions = (username?: string) => {
});
};
-export const useAccountPermissions = () => {
+export const useAccountPermissions = (enabled = true) => {
return useQuery({
...iamQueries.permissions,
...queryPresets.oneTimeFetch,
...queryPresets.noRetry,
+ enabled,
});
};
diff --git a/packages/manager/src/routes/images/ImagesRoute.tsx b/packages/manager/src/routes/images/ImagesRoute.tsx
index 39034e9ce89..5cb3213de28 100644
--- a/packages/manager/src/routes/images/ImagesRoute.tsx
+++ b/packages/manager/src/routes/images/ImagesRoute.tsx
@@ -12,12 +12,11 @@ export const ImagesRoute = () => {
return (
}>
-
+
Custom Images are now encrypted by default for enhanced security.{' '}
Learn more
diff --git a/packages/queries/.changeset/pr-11941-tech-stories-1743701305865.md b/packages/queries/.changeset/pr-11941-tech-stories-1743701305865.md
deleted file mode 100644
index 0283f467b31..00000000000
--- a/packages/queries/.changeset/pr-11941-tech-stories-1743701305865.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/queries": Tech Stories
----
-
-Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
diff --git a/packages/queries/.changeset/pr-11953-added-1743614960791.md b/packages/queries/.changeset/pr-11953-added-1743614960791.md
deleted file mode 100644
index 149212f70bb..00000000000
--- a/packages/queries/.changeset/pr-11953-added-1743614960791.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/queries": Added
----
-
-Linode Config related queries to get a single Config and a single Config Profile Interface ([#11953](https://github.com/linode/manager/pull/11953))
diff --git a/packages/queries/CHANGELOG.md b/packages/queries/CHANGELOG.md
index 445e4096a03..e7dc5dd5203 100644
--- a/packages/queries/CHANGELOG.md
+++ b/packages/queries/CHANGELOG.md
@@ -1,5 +1,14 @@
-## [2025-04-08] - v0.2.0
+## [2025-04-22] - v0.3.0
+
+### Added:
+
+- Linode Config related queries to get a single Config and a single Config Profile Interface ([#11953](https://github.com/linode/manager/pull/11953))
+### Tech Stories:
+
+- Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
+
+## [2025-04-08] - v0.2.0
### Added:
@@ -9,11 +18,10 @@
### Upcoming Features:
-- Add Firewall Settings query ([#11828](https://github.com/linode/manager/pull/11828))
+- Add Firewall Settings query ([#11828](https://github.com/linode/manager/pull/11828))
## [2025-03-25] - v0.1.0
-
### Added:
- Create queries package with `linodes/` queries and dependencies ([#11774](https://github.com/linode/manager/pull/11774))
diff --git a/packages/queries/package.json b/packages/queries/package.json
index 2e103dcad7d..73e5fe393ef 100644
--- a/packages/queries/package.json
+++ b/packages/queries/package.json
@@ -1,6 +1,6 @@
{
"name": "@linode/queries",
- "version": "0.2.0",
+ "version": "0.3.0",
"description": "Linode Utility functions library",
"main": "src/index.js",
"module": "src/index.ts",
@@ -42,4 +42,4 @@
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.18"
}
-}
+}
\ No newline at end of file
diff --git a/packages/shared/.changeset/pr-11941-tech-stories-1743701490436.md b/packages/shared/.changeset/pr-11941-tech-stories-1743701490436.md
deleted file mode 100644
index 532a65b84d4..00000000000
--- a/packages/shared/.changeset/pr-11941-tech-stories-1743701490436.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/shared": Tech Stories
----
-
-Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
diff --git a/packages/shared/CHANGELOG.md b/packages/shared/CHANGELOG.md
index ca9075134dd..dba8b564a4a 100644
--- a/packages/shared/CHANGELOG.md
+++ b/packages/shared/CHANGELOG.md
@@ -1,8 +1,12 @@
-## [2025-04-08] - v0.1.0
+## [2025-04-22] - v0.2.0
+
+### Tech Stories:
+- Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
+
+## [2025-04-08] - v0.1.0
### Added:
- New `shared` package with `LinodeSelect` as the first component ([#11844](https://github.com/linode/manager/pull/11844))
- Move `useIsGeckoEnabled` hook out of `RegionSelect` to `@linode/shared` package ([#11918](https://github.com/linode/manager/pull/11918))
-
diff --git a/packages/shared/package.json b/packages/shared/package.json
index 1a81f4de63f..806f14e248e 100644
--- a/packages/shared/package.json
+++ b/packages/shared/package.json
@@ -1,6 +1,6 @@
{
"name": "@linode/shared",
- "version": "0.1.0",
+ "version": "0.2.0",
"description": "Linode shared feature component library",
"main": "src/index.ts",
"module": "src/index.ts",
@@ -51,4 +51,4 @@
"@types/react-dom": "^18.2.18",
"vite-plugin-svgr": "^3.2.0"
}
-}
+}
\ No newline at end of file
diff --git a/packages/ui/.changeset/pr-11816-tech-stories-1742349715922.md b/packages/ui/.changeset/pr-11816-tech-stories-1742349715922.md
deleted file mode 100644
index 691f2a4ae33..00000000000
--- a/packages/ui/.changeset/pr-11816-tech-stories-1742349715922.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/ui": Tech Stories
----
-
-Initial update to start updating deprecated TextField props for MUIv6 ([#11816](https://github.com/linode/manager/pull/11816))
diff --git a/packages/ui/.changeset/pr-11941-tech-stories-1743701371905.md b/packages/ui/.changeset/pr-11941-tech-stories-1743701371905.md
deleted file mode 100644
index d72d57ef0af..00000000000
--- a/packages/ui/.changeset/pr-11941-tech-stories-1743701371905.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/ui": Tech Stories
----
-
-Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
diff --git a/packages/ui/.changeset/pr-11962-added-1743652880587.md b/packages/ui/.changeset/pr-11962-added-1743652880587.md
deleted file mode 100644
index ed2f4e52376..00000000000
--- a/packages/ui/.changeset/pr-11962-added-1743652880587.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/ui": Added
----
-
-Include outlined SVG icons for toast design ([#11962](https://github.com/linode/manager/pull/11962))
diff --git a/packages/ui/CHANGELOG.md b/packages/ui/CHANGELOG.md
index 0246c62b847..984c8b48238 100644
--- a/packages/ui/CHANGELOG.md
+++ b/packages/ui/CHANGELOG.md
@@ -1,5 +1,15 @@
-## [2025-04-08] - v0.9.0
+## [2025-04-22] - v0.10.0
+
+### Added:
+- Include outlined SVG icons for toast design ([#11962](https://github.com/linode/manager/pull/11962))
+
+### Tech Stories:
+
+- Initial update to start updating deprecated TextField props for MUIv6 ([#11816](https://github.com/linode/manager/pull/11816))
+- Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
+
+## [2025-04-08] - v0.9.0
### Added:
@@ -17,7 +27,6 @@
## [2025-03-25] - v0.8.0
-
### Added:
- Date Range Picker v2 leveraging Luxon ([#11540](https://github.com/linode/manager/pull/11540))
@@ -40,11 +49,10 @@
- Upgrade to MUI v6 ([#11688](https://github.com/linode/manager/pull/11688))
- 4.0.0 Design Tokens - New Spacing & Badge Tokens ([#11757](https://github.com/linode/manager/pull/11757))
-
## [2025-02-25] - v0.7.0
-
### Added:
+
- ESLint rules to disallow `data-test-id` attributes and enforce type-safe equality operators ([#11634](https://github.com/linode/manager/pull/11634))
- `Dialog`, `DialogTitle` components, and `visibilityHide.svg`, `visibilityShow.svg`, and `chevron-down.svg` icons to the `@linode/ui` package ([#11673](https://github.com/linode/manager/pull/11673))
@@ -54,7 +62,6 @@
## [2025-01-28] - v0.6.0
-
### Changed:
- Refactor and clean up `Notice` ([#11480](https://github.com/linode/manager/pull/11480))
diff --git a/packages/ui/package.json b/packages/ui/package.json
index c29211ba17f..97aa230e248 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -2,7 +2,7 @@
"name": "@linode/ui",
"author": "Linode",
"description": "Linode UI component library",
- "version": "0.9.0",
+ "version": "0.10.0",
"type": "module",
"main": "src/index.ts",
"module": "src/index.ts",
@@ -57,4 +57,4 @@
"@types/react-dom": "^18.2.18",
"vite-plugin-svgr": "^3.2.0"
}
-}
+}
\ No newline at end of file
diff --git a/packages/ui/src/assets/icons/close.svg b/packages/ui/src/assets/icons/close.svg
index 48335bc1921..67ae141cfda 100644
--- a/packages/ui/src/assets/icons/close.svg
+++ b/packages/ui/src/assets/icons/close.svg
@@ -1,3 +1,3 @@
-
);
};
diff --git a/packages/ui/src/foundations/themes/dark.ts b/packages/ui/src/foundations/themes/dark.ts
index bc3aad356ab..1f2921a00ed 100644
--- a/packages/ui/src/foundations/themes/dark.ts
+++ b/packages/ui/src/foundations/themes/dark.ts
@@ -109,28 +109,28 @@ export const customDarkModeOptions = {
export const notificationToast = {
default: {
backgroundColor: NotificationToast.Informative.Background,
- borderLeft: `48px solid ${NotificationToast.Informative.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Informative.IconBackground}`,
color: NotificationToast.Text,
},
error: {
backgroundColor: NotificationToast.Error.Background,
- borderLeft: `48px solid ${NotificationToast.Error.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Error.IconBackground}`,
},
info: {
backgroundColor: NotificationToast.Informative.Background,
- borderLeft: `48px solid ${NotificationToast.Informative.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Informative.IconBackground}`,
},
success: {
backgroundColor: NotificationToast.Success.Background,
- borderLeft: `48px solid ${NotificationToast.Success.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Success.IconBackground}`,
},
warning: {
backgroundColor: NotificationToast.Warning.Background,
- borderLeft: `48px solid ${NotificationToast.Warning.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Warning.IconBackground}`,
},
tip: {
backgroundColor: NotificationToast.Informative.Background,
- borderLeft: `48px solid ${NotificationToast.Informative.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Informative.IconBackground}`,
},
} as const;
@@ -345,11 +345,12 @@ export const darkTheme: ThemeOptions = {
{
props: { color: 'error' },
style: {
- '&:not([aria-disabled="true"]):hover, &:not([aria-disabled="true"]):focus': {
- backgroundColor: Background.Negativesubtle,
- border: `1px solid ${Border.Negative}`,
- color: Content.Text.Negative,
- },
+ '&:not([aria-disabled="true"]):hover, &:not([aria-disabled="true"]):focus':
+ {
+ backgroundColor: Background.Negativesubtle,
+ border: `1px solid ${Border.Negative}`,
+ color: Content.Text.Negative,
+ },
'&[aria-disabled="true"]': {
backgroundColor: 'transparent',
border: `1px solid ${Button.Secondary.Disabled.Border}`,
@@ -601,11 +602,12 @@ export const darkTheme: ThemeOptions = {
border: `1px solid ${TextField.Focus.Border}`,
color: TextField.Focus.Text,
},
- '&:disabled, &[aria-disabled="true"], &.Mui-disabled, &.Mui-disabled:hover': {
- backgroundColor: TextField.Disabled.Background,
- border: `1px solid ${TextField.Disabled.Border}`,
- color: TextField.Disabled.Text,
- },
+ '&:disabled, &[aria-disabled="true"], &.Mui-disabled, &.Mui-disabled:hover':
+ {
+ backgroundColor: TextField.Disabled.Background,
+ border: `1px solid ${TextField.Disabled.Border}`,
+ color: TextField.Disabled.Text,
+ },
'&:hover': {
backgroundColor: TextField.Hover.Background,
border: `1px solid ${TextField.Hover.Border}`,
@@ -838,9 +840,11 @@ export const darkTheme: ThemeOptions = {
// Zebra Striping
'&.MuiTable-zebra': {
// Linodes Group by Tag: First Row is the Title
- '&.MuiTable-groupByTag .MuiTableRow-root:not(:first-of-type):nth-of-type(odd)': MuiTableZebraStyles,
+ '&.MuiTable-groupByTag .MuiTableRow-root:not(:first-of-type):nth-of-type(odd)':
+ MuiTableZebraStyles,
// Default Striping
- '&:not(.MuiTable-groupByTag) .MuiTableRow-root:not(.MuiTableRow-nested):nth-of-type(even)': MuiTableZebraStyles,
+ '&:not(.MuiTable-groupByTag) .MuiTableRow-root:not(.MuiTableRow-nested):nth-of-type(even)':
+ MuiTableZebraStyles,
},
// Nested Tables
'.MuiTable-root': {
@@ -907,9 +911,10 @@ export const darkTheme: ThemeOptions = {
backgroundColor: Table.Row.Background.Hover,
},
// Disable hover for nested rows (VPC)
- '&.MuiTableRow-nested, &.MuiTableRow-nested.MuiTableRow-hover:hover': {
- backgroundColor: Table.Row.Background.Default,
- },
+ '&.MuiTableRow-nested, &.MuiTableRow-nested.MuiTableRow-hover:hover':
+ {
+ backgroundColor: Table.Row.Background.Default,
+ },
'&.disabled-row .MuiTableCell-root': {
// TODO: Use design tokens in future when ready
backgroundColor: Interaction.Background.Disabled,
diff --git a/packages/ui/src/foundations/themes/light.ts b/packages/ui/src/foundations/themes/light.ts
index 3b32c7e326e..30f8683d41c 100644
--- a/packages/ui/src/foundations/themes/light.ts
+++ b/packages/ui/src/foundations/themes/light.ts
@@ -115,28 +115,28 @@ export const borderColors = {
export const notificationToast = {
default: {
backgroundColor: NotificationToast.Informative.Background,
- borderLeft: `48px solid ${NotificationToast.Informative.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Informative.IconBackground}`,
color: NotificationToast.Text,
},
error: {
backgroundColor: NotificationToast.Error.Background,
- borderLeft: `48px solid ${NotificationToast.Error.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Error.IconBackground}`,
},
info: {
backgroundColor: NotificationToast.Informative.Background,
- borderLeft: `48px solid ${NotificationToast.Informative.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Informative.IconBackground}`,
},
success: {
backgroundColor: NotificationToast.Success.Background,
- borderLeft: `48px solid ${NotificationToast.Success.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Success.IconBackground}`,
},
warning: {
backgroundColor: NotificationToast.Warning.Background,
- borderLeft: `48px solid ${NotificationToast.Warning.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Warning.IconBackground}`,
},
tip: {
backgroundColor: NotificationToast.Informative.Background,
- borderLeft: `48px solid ${NotificationToast.Informative.Border}`,
+ borderLeft: `48px solid ${NotificationToast.Informative.IconBackground}`,
},
} as const;
@@ -423,9 +423,10 @@ export const lightTheme: ThemeOptions = {
},
root: {
// Spacing for clear and popup icons (circular loading)
- '&.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon .MuiAutocomplete-inputRoot': {
- paddingRight: Spacing.S48,
- },
+ '&.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon .MuiAutocomplete-inputRoot':
+ {
+ paddingRight: Spacing.S48,
+ },
maxWidth: inputMaxWidth,
},
tag: {
@@ -550,11 +551,12 @@ export const lightTheme: ThemeOptions = {
{
props: { color: 'error' },
style: {
- '&:not([aria-disabled="true"]):hover, &:not([aria-disabled="true"]):focus': {
- backgroundColor: Background.Negativesubtle,
- border: `1px solid ${Border.Negative}`,
- color: Content.Text.Negative,
- },
+ '&:not([aria-disabled="true"]):hover, &:not([aria-disabled="true"]):focus':
+ {
+ backgroundColor: Background.Negativesubtle,
+ border: `1px solid ${Border.Negative}`,
+ color: Content.Text.Negative,
+ },
'&[aria-disabled="true"]': {
backgroundColor: 'transparent',
border: `1px solid ${Button.Secondary.Disabled.Border}`,
@@ -957,15 +959,16 @@ export const lightTheme: ThemeOptions = {
border: `1px solid ${TextField.Focus.Border}`,
color: TextField.Focus.Text,
},
- '&:disabled, &[aria-disabled="true"], &.Mui-disabled, &.Mui-disabled:hover': {
- '& .MuiInputAdornment-root': {
+ '&:disabled, &[aria-disabled="true"], &.Mui-disabled, &.Mui-disabled:hover':
+ {
+ '& .MuiInputAdornment-root': {
+ cursor: 'not-allowed',
+ },
+ backgroundColor: TextField.Disabled.Background,
+ border: `1px solid ${TextField.Disabled.Border}`,
+ color: TextField.Disabled.Text,
cursor: 'not-allowed',
},
- backgroundColor: TextField.Disabled.Background,
- border: `1px solid ${TextField.Disabled.Border}`,
- color: TextField.Disabled.Text,
- cursor: 'not-allowed',
- },
'&:hover': {
backgroundColor: TextField.Hover.Background,
border: `1px solid ${TextField.Hover.Border}`,
@@ -1393,9 +1396,11 @@ export const lightTheme: ThemeOptions = {
// Zebra Striping
'&.MuiTable-zebra': {
// Linodes Group by Tag: First Row is the Title
- '&.MuiTable-groupByTag .MuiTableRow-root:not(:first-of-type):nth-of-type(odd)': MuiTableZebraStyles,
+ '&.MuiTable-groupByTag .MuiTableRow-root:not(:first-of-type):nth-of-type(odd)':
+ MuiTableZebraStyles,
// Default Striping
- '&:not(.MuiTable-groupByTag) .MuiTableRow-root:not(.MuiTableRow-nested):nth-of-type(even)': MuiTableZebraStyles,
+ '&:not(.MuiTable-groupByTag) .MuiTableRow-root:not(.MuiTableRow-nested):nth-of-type(even)':
+ MuiTableZebraStyles,
'.MuiTableRow-root:not(:last-of-type)': {
'.MuiTableCell-root': {
borderBottom: 0,
@@ -1491,9 +1496,10 @@ export const lightTheme: ThemeOptions = {
backgroundColor: Table.Row.Background.Hover,
},
// Disable hover for nested rows (VPC)
- '&.MuiTableRow-nested, &.MuiTableRow-nested.MuiTableRow-hover:hover': {
- backgroundColor: Table.Row.Background.Default,
- },
+ '&.MuiTableRow-nested, &.MuiTableRow-nested.MuiTableRow-hover:hover':
+ {
+ backgroundColor: Table.Row.Background.Default,
+ },
'&.disabled-row .MuiTableCell-root': {
// TODO: Use design tokens in future when ready
backgroundColor: Interaction.Background.Disabled,
diff --git a/packages/utilities/.changeset/pr-11941-tech-stories-1743701383002.md b/packages/utilities/.changeset/pr-11941-tech-stories-1743701383002.md
deleted file mode 100644
index b3ac279d913..00000000000
--- a/packages/utilities/.changeset/pr-11941-tech-stories-1743701383002.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/utilities": Tech Stories
----
-
-Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
diff --git a/packages/utilities/.changeset/pr-11955-added-1743596189029.md b/packages/utilities/.changeset/pr-11955-added-1743596189029.md
deleted file mode 100644
index 74f0782d536..00000000000
--- a/packages/utilities/.changeset/pr-11955-added-1743596189029.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/utilities": Added
----
-
-Move `getUserTimeZone` and its associated profile factories to `@linode/utilities` ([#11955](https://github.com/linode/manager/pull/11955))
diff --git a/packages/utilities/.changeset/pr-11986-added-1744096873342.md b/packages/utilities/.changeset/pr-11986-added-1744096873342.md
deleted file mode 100644
index 3303a24aadb..00000000000
--- a/packages/utilities/.changeset/pr-11986-added-1744096873342.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/utilities": Added
----
-
-Move `betaUtils` and its associated factories to `utilities` package ([#11986](https://github.com/linode/manager/pull/11986))
diff --git a/packages/utilities/.changeset/pr-12025-added-1744698420691.md b/packages/utilities/.changeset/pr-12025-added-1744698420691.md
deleted file mode 100644
index 9e3b6af72da..00000000000
--- a/packages/utilities/.changeset/pr-12025-added-1744698420691.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/utilities": Added
----
-
-Move `grants` and its associated factories to `utilities` package ([#12025](https://github.com/linode/manager/pull/12025))
diff --git a/packages/utilities/CHANGELOG.md b/packages/utilities/CHANGELOG.md
index 46208b09409..9cb361744bf 100644
--- a/packages/utilities/CHANGELOG.md
+++ b/packages/utilities/CHANGELOG.md
@@ -1,5 +1,16 @@
-## [2025-04-08] - v0.2.0
+## [2025-04-22] - v0.3.0
+
+### Added:
+- Move `getUserTimeZone` and its associated profile factories to `@linode/utilities` ([#11955](https://github.com/linode/manager/pull/11955))
+- Move `betaUtils` and its associated factories to `utilities` package ([#11986](https://github.com/linode/manager/pull/11986))
+- Move `grants` and its associated factories to `utilities` package ([#12025](https://github.com/linode/manager/pull/12025))
+
+### Tech Stories:
+
+- Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
+
+## [2025-04-08] - v0.2.0
### Added:
@@ -16,7 +27,6 @@
## [2025-03-25] - v0.1.0
-
### Added:
- `@linode/utilities` package with `capitalize` utility and `useInterval` hook as the first additions ([#11666](https://github.com/linode/manager/pull/11666))
@@ -35,4 +45,4 @@
### Tech Stories:
-- Update `@vitest/ui` from `2.1.1` to `3.0.3` ([#11749](https://github.com/linode/manager/pull/11749))
\ No newline at end of file
+- Update `@vitest/ui` from `2.1.1` to `3.0.3` ([#11749](https://github.com/linode/manager/pull/11749))
diff --git a/packages/utilities/package.json b/packages/utilities/package.json
index 43c9d13292e..6140bb568bf 100644
--- a/packages/utilities/package.json
+++ b/packages/utilities/package.json
@@ -1,6 +1,6 @@
{
"name": "@linode/utilities",
- "version": "0.2.0",
+ "version": "0.3.0",
"description": "Linode Utility functions library",
"main": "src/index.ts",
"module": "src/index.ts",
@@ -48,4 +48,4 @@
"@types/react-dom": "^18.2.18",
"factory.ts": "^0.5.1"
}
-}
+}
\ No newline at end of file
diff --git a/packages/validation/.changeset/pr-11868-upcoming-features-1742271743027.md b/packages/validation/.changeset/pr-11868-upcoming-features-1742271743027.md
deleted file mode 100644
index 8c3dc31d0a5..00000000000
--- a/packages/validation/.changeset/pr-11868-upcoming-features-1742271743027.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/validation": Upcoming Features
----
-
-Enhance the validation schema for create flow and new schema for edit alert flow in cloudpulse ([#11868](https://github.com/linode/manager/pull/11868))
diff --git a/packages/validation/.changeset/pr-11941-tech-stories-1743701398312.md b/packages/validation/.changeset/pr-11941-tech-stories-1743701398312.md
deleted file mode 100644
index b6320562f4b..00000000000
--- a/packages/validation/.changeset/pr-11941-tech-stories-1743701398312.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/validation": Tech Stories
----
-
-Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
diff --git a/packages/validation/.changeset/pr-11963-changed-1743680086813.md b/packages/validation/.changeset/pr-11963-changed-1743680086813.md
deleted file mode 100644
index cb52d5cbb61..00000000000
--- a/packages/validation/.changeset/pr-11963-changed-1743680086813.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/validation": Changed
----
-
-Validation message for threshold field in Metric Threshold ([#11963](https://github.com/linode/manager/pull/11963))
diff --git a/packages/validation/.changeset/pr-12022-added-1744640788599.md b/packages/validation/.changeset/pr-12022-added-1744640788599.md
deleted file mode 100644
index 13e1587fa8d..00000000000
--- a/packages/validation/.changeset/pr-12022-added-1744640788599.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/validation": Added
----
-
-custom validation for `wal_sender_timeout` and `max_failover_replication_time_lag` ([#12022](https://github.com/linode/manager/pull/12022))
diff --git a/packages/validation/.changeset/pr-12033-removed-1744745547794.md b/packages/validation/.changeset/pr-12033-removed-1744745547794.md
deleted file mode 100644
index 4249c4d2514..00000000000
--- a/packages/validation/.changeset/pr-12033-removed-1744745547794.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@linode/validation": Removed
----
-
-AutoscaleNodePoolSchema from kubenetes.schema.ts ([#12033](https://github.com/linode/manager/pull/12033))
diff --git a/packages/validation/CHANGELOG.md b/packages/validation/CHANGELOG.md
index 71280c0fb6c..591fffff7db 100644
--- a/packages/validation/CHANGELOG.md
+++ b/packages/validation/CHANGELOG.md
@@ -1,5 +1,26 @@
-## [2025-04-08] - v0.63.0
+## [2025-04-22] - v0.64.0
+
+### Added:
+- custom validation for `wal_sender_timeout` and `max_failover_replication_time_lag` ([#12022](https://github.com/linode/manager/pull/12022))
+
+### Changed:
+
+- Validation message for threshold field in Metric Threshold ([#11963](https://github.com/linode/manager/pull/11963))
+
+### Removed:
+
+- AutoscaleNodePoolSchema from kubenetes.schema.ts ([#12033](https://github.com/linode/manager/pull/12033))
+
+### Tech Stories:
+
+- Eslint Overhaul ([#11941](https://github.com/linode/manager/pull/11941))
+
+### Upcoming Features:
+
+- Enhance the validation schema for create flow and new schema for edit alert flow in cloudpulse ([#11868](https://github.com/linode/manager/pull/11868))
+
+## [2025-04-08] - v0.63.0
### Upcoming Features:
@@ -7,13 +28,11 @@
## [2025-03-25] - v0.62.0
-
### Added:
- Validation messages for required Autoscale min and max values ([#11664](https://github.com/linode/manager/pull/11664))
- Optional IPv6 to `createVPCIPv6Schema` ([#11852](https://github.com/linode/manager/pull/11852))
-
### Changed:
- Update CreateFirewallSchema to match API types ([#11677](https://github.com/linode/manager/pull/11677))
@@ -33,10 +52,8 @@
- Validation for required ACL enablement on LKE-E clusters ([#11746](https://github.com/linode/manager/pull/11746))
- New rule for Name and Description of Create Alert form ([#11773](https://github.com/linode/manager/pull/11773))
-
## [2025-02-25] - v0.61.0
-
### Removed:
- Required `entity_ids` from `createAlertDefinitionSchema` ([#11649](https://github.com/linode/manager/pull/11649))
@@ -47,10 +64,8 @@
- Inability to add LKE Node Pool Labels with underscore in key ([#11682](https://github.com/linode/manager/pull/11682))
-
## [2025-02-11] - v0.60.0
-
### Added:
- Taint and label schemas for Node Pool Labels and Taints ([#11553](https://github.com/linode/manager/pull/11553))
@@ -61,7 +76,7 @@
### Upcoming Features:
-- Add new validation schemas for Linode Interfaces project: `CreateLinodeInterfaceSchema` and `ModifyLinodeInterfaceSchema` ([#11527](https://github.com/linode/manager/pull/11527))
+- Add new validation schemas for Linode Interfaces project: `CreateLinodeInterfaceSchema` and `ModifyLinodeInterfaceSchema` ([#11527](https://github.com/linode/manager/pull/11527))
- Revised validation error messages for the CreateAlertDefinition schema ([#11543](https://github.com/linode/manager/pull/11543))
- Add `UpdateFirewallSettingsSchema`for Linode Interfaces project ([#11559](https://github.com/linode/manager/pull/11559))
- Update `CreateLinodeSchema` for Linode Interfaces project ([#11566](https://github.com/linode/manager/pull/11566))
@@ -69,7 +84,6 @@
## [2025-01-28] - v0.59.0
-
### Changed:
- Allow `cipher_suite` to be `none` in NodeBalancer schemas ([#11515](https://github.com/linode/manager/pull/11515))
@@ -78,7 +92,6 @@
- Update `tsconfig.json` to use `bundler` moduleResolution ([#11487](https://github.com/linode/manager/pull/11487))
-
## [2025-01-14] - v0.58.0
### Added:
diff --git a/packages/validation/package.json b/packages/validation/package.json
index dbf242ceed4..a302da1a7e1 100644
--- a/packages/validation/package.json
+++ b/packages/validation/package.json
@@ -1,6 +1,6 @@
{
"name": "@linode/validation",
- "version": "0.63.0",
+ "version": "0.64.0",
"description": "Yup validation schemas for use with the Linode APIv4",
"type": "module",
"main": "lib/index.cjs",
@@ -60,4 +60,4 @@
},
"author": "Linode LLC",
"license": "Apache-2.0"
-}
+}
\ No newline at end of file