From 3961fd1c84ca5ddf2d838486c5ed3ddaaa30d9cf Mon Sep 17 00:00:00 2001 From: cpathipa <119517080+cpathipa@users.noreply.github.com> Date: Thu, 17 Apr 2025 12:41:19 -0500 Subject: [PATCH 01/12] Cloud version v1.140.0, API v4 version v0.138.0, Validation version v0.64.0, UI version v0.10.0, Utilities version v0.3.0, Queries version v0.3.0, Shared version v0.2.0 --- ...r-11868-upcoming-features-1744170177040.md | 5 - .../pr-11941-tech-stories-1743701271429.md | 5 - .../pr-11976-changed-1744036917580.md | 5 - ...r-11978-upcoming-features-1744016884259.md | 5 - .../pr-11995-added-1744149551930.md | 5 - ...r-11998-upcoming-features-1744205635852.md | 5 - ...r-12016-upcoming-features-1744641958354.md | 5 - ...r-12027-upcoming-features-1744710990072.md | 5 - packages/api-v4/CHANGELOG.md | 28 +++- packages/api-v4/package.json | 4 +- .../pr-11816-fixed-1742349641632.md | 5 - ...r-11868-upcoming-features-1742271706713.md | 5 - .../pr-11906-fixed-1742567649683.md | 5 - .../pr-11906-fixed-1742567667084.md | 5 - .../pr-11906-tech-stories-1742567613345.md | 5 - .../pr-11924-tech-stories-1743082255119.md | 5 - .../pr-11928-tests-1743086335061.md | 5 - .../pr-11932-changed-1743106946509.md | 5 - ...r-11934-upcoming-features-1743443080180.md | 5 - .../pr-11941-tech-stories-1743701285887.md | 5 - ...r-11943-upcoming-features-1743494415175.md | 5 - .../pr-11944-changed-1743506054914.md | 5 - ...r-11953-upcoming-features-1743614906461.md | 5 - .../pr-11955-removed-1743596163534.md | 5 - ...r-11957-upcoming-features-1744304365513.md | 5 - .../pr-11958-tests-1743610427083.md | 5 - .../pr-11961-tests-1743634308900.md | 5 - .../pr-11962-changed-1743652792312.md | 5 - ...r-11963-upcoming-features-1743680039001.md | 5 - .../pr-11964-tech-stories-1743691912901.md | 5 - .../pr-11966-fixed-1743718029581.md | 5 - ...r-11967-upcoming-features-1743747392300.md | 5 - .../pr-11968-fixed-1743780227804.md | 5 - .../pr-11969-added-1743779981445.md | 5 - .../pr-11973-changed-1743783278795.md | 5 - ...r-11974-upcoming-features-1743784910488.md | 5 - .../pr-11975-fixed-1744233099304.md | 5 - ...r-11976-upcoming-features-1744036859769.md | 5 - ...r-11977-upcoming-features-1744016876527.md | 5 - ...r-11978-upcoming-features-1744016922823.md | 5 - ...r-11981-upcoming-features-1744104834195.md | 5 - ...r-11984-upcoming-features-1744052007574.md | 5 - ...r-11985-upcoming-features-1744141507075.md | 5 - .../pr-11986-removed-1744096851575.md | 5 - .../pr-11987-changed-1744123144788.md | 5 - .../pr-11989-changed-1744126754414.md | 5 - .../pr-11992-tests-1744132206121.md | 5 - .../pr-11993-added-1744134925847.md | 5 - ...r-11995-upcoming-features-1744149575402.md | 5 - .../pr-11996-tests-1744202889076.md | 5 - .../pr-11997-tests-1744203271879.md | 5 - ...r-11998-upcoming-features-1744205663442.md | 5 - .../pr-11999-tests-1744205582905.md | 5 - ...r-12001-upcoming-features-1744284627613.md | 5 - .../pr-12002-tech-stories-1744219481332.md | 5 - .../pr-12003-fixed-1744230658863.md | 5 - .../pr-12004-changed-1744299731705.md | 5 - .../pr-12006-fixed-1744289649305.md | 5 - .../pr-12007-changed-1744290501828.md | 5 - ...r-12008-upcoming-features-1744651679398.md | 5 - .../pr-12009-removed-1744307901647.md | 5 - .../pr-12010-added-1744316331183.md | 5 - .../pr-12011-fixed-1744319899786.md | 5 - .../pr-12012-added-1744320839894.md | 5 - .../pr-12012-added-1744837242791.md | 5 - .../pr-12014-tests-1744382864732.md | 5 - ...r-12016-upcoming-features-1744492314777.md | 5 - ...r-12017-upcoming-features-1744652118248.md | 5 - .../pr-12018-tech-stories-1744408988818.md | 5 - .../pr-12019-fixed-1744606971621.md | 5 - .../pr-12021-fixed-1744625544934.md | 5 - .../pr-12023-tests-1744653408368.md | 5 - .../pr-12025-removed-1744698392062.md | 5 - ...r-12026-upcoming-features-1744709007966.md | 5 - ...r-12027-upcoming-features-1744711021887.md | 5 - .../pr-12030-tests-1744726914987.md | 5 - .../pr-12031-changed-1744729225214.md | 5 - .../pr-12032-fixed-1744732437757.md | 5 - ...r-12033-upcoming-features-1744745488820.md | 5 - .../pr-12036-tests-1744749094051.md | 5 - .../pr-12038-changed-1744750503892.md | 5 - .../pr-12040-tests-1744753693965.md | 5 - ...r-12044-upcoming-features-1744808175869.md | 5 - .../pr-12048-changed-1744815132260.md | 5 - packages/manager/CHANGELOG.md | 130 ++++++++++++++---- packages/manager/package.json | 4 +- .../pr-11941-tech-stories-1743701305865.md | 5 - .../pr-11953-added-1743614960791.md | 5 - packages/queries/CHANGELOG.md | 14 +- packages/queries/package.json | 4 +- .../pr-11941-tech-stories-1743701490436.md | 5 - packages/shared/CHANGELOG.md | 8 +- packages/shared/package.json | 4 +- .../pr-11816-tech-stories-1742349715922.md | 5 - .../pr-11941-tech-stories-1743701371905.md | 5 - .../pr-11962-added-1743652880587.md | 5 - packages/ui/CHANGELOG.md | 17 ++- packages/ui/package.json | 4 +- .../pr-11941-tech-stories-1743701383002.md | 5 - .../pr-11955-added-1743596189029.md | 5 - .../pr-11986-added-1744096873342.md | 5 - .../pr-12025-added-1744698420691.md | 5 - packages/utilities/CHANGELOG.md | 16 ++- packages/utilities/package.json | 4 +- ...r-11868-upcoming-features-1742271743027.md | 5 - .../pr-11941-tech-stories-1743701398312.md | 5 - .../pr-11963-changed-1743680086813.md | 5 - .../pr-12022-added-1744640788599.md | 5 - .../pr-12033-removed-1744745547794.md | 5 - packages/validation/CHANGELOG.md | 33 +++-- packages/validation/package.json | 4 +- 111 files changed, 209 insertions(+), 550 deletions(-) delete mode 100644 packages/api-v4/.changeset/pr-11868-upcoming-features-1744170177040.md delete mode 100644 packages/api-v4/.changeset/pr-11941-tech-stories-1743701271429.md delete mode 100644 packages/api-v4/.changeset/pr-11976-changed-1744036917580.md delete mode 100644 packages/api-v4/.changeset/pr-11978-upcoming-features-1744016884259.md delete mode 100644 packages/api-v4/.changeset/pr-11995-added-1744149551930.md delete mode 100644 packages/api-v4/.changeset/pr-11998-upcoming-features-1744205635852.md delete mode 100644 packages/api-v4/.changeset/pr-12016-upcoming-features-1744641958354.md delete mode 100644 packages/api-v4/.changeset/pr-12027-upcoming-features-1744710990072.md delete mode 100644 packages/manager/.changeset/pr-11816-fixed-1742349641632.md delete mode 100644 packages/manager/.changeset/pr-11868-upcoming-features-1742271706713.md delete mode 100644 packages/manager/.changeset/pr-11906-fixed-1742567649683.md delete mode 100644 packages/manager/.changeset/pr-11906-fixed-1742567667084.md delete mode 100644 packages/manager/.changeset/pr-11906-tech-stories-1742567613345.md delete mode 100644 packages/manager/.changeset/pr-11924-tech-stories-1743082255119.md delete mode 100644 packages/manager/.changeset/pr-11928-tests-1743086335061.md delete mode 100644 packages/manager/.changeset/pr-11932-changed-1743106946509.md delete mode 100644 packages/manager/.changeset/pr-11934-upcoming-features-1743443080180.md delete mode 100644 packages/manager/.changeset/pr-11941-tech-stories-1743701285887.md delete mode 100644 packages/manager/.changeset/pr-11943-upcoming-features-1743494415175.md delete mode 100644 packages/manager/.changeset/pr-11944-changed-1743506054914.md delete mode 100644 packages/manager/.changeset/pr-11953-upcoming-features-1743614906461.md delete mode 100644 packages/manager/.changeset/pr-11955-removed-1743596163534.md delete mode 100644 packages/manager/.changeset/pr-11957-upcoming-features-1744304365513.md delete mode 100644 packages/manager/.changeset/pr-11958-tests-1743610427083.md delete mode 100644 packages/manager/.changeset/pr-11961-tests-1743634308900.md delete mode 100644 packages/manager/.changeset/pr-11962-changed-1743652792312.md delete mode 100644 packages/manager/.changeset/pr-11963-upcoming-features-1743680039001.md delete mode 100644 packages/manager/.changeset/pr-11964-tech-stories-1743691912901.md delete mode 100644 packages/manager/.changeset/pr-11966-fixed-1743718029581.md delete mode 100644 packages/manager/.changeset/pr-11967-upcoming-features-1743747392300.md delete mode 100644 packages/manager/.changeset/pr-11968-fixed-1743780227804.md delete mode 100644 packages/manager/.changeset/pr-11969-added-1743779981445.md delete mode 100644 packages/manager/.changeset/pr-11973-changed-1743783278795.md delete mode 100644 packages/manager/.changeset/pr-11974-upcoming-features-1743784910488.md delete mode 100644 packages/manager/.changeset/pr-11975-fixed-1744233099304.md delete mode 100644 packages/manager/.changeset/pr-11976-upcoming-features-1744036859769.md delete mode 100644 packages/manager/.changeset/pr-11977-upcoming-features-1744016876527.md delete mode 100644 packages/manager/.changeset/pr-11978-upcoming-features-1744016922823.md delete mode 100644 packages/manager/.changeset/pr-11981-upcoming-features-1744104834195.md delete mode 100644 packages/manager/.changeset/pr-11984-upcoming-features-1744052007574.md delete mode 100644 packages/manager/.changeset/pr-11985-upcoming-features-1744141507075.md delete mode 100644 packages/manager/.changeset/pr-11986-removed-1744096851575.md delete mode 100644 packages/manager/.changeset/pr-11987-changed-1744123144788.md delete mode 100644 packages/manager/.changeset/pr-11989-changed-1744126754414.md delete mode 100644 packages/manager/.changeset/pr-11992-tests-1744132206121.md delete mode 100644 packages/manager/.changeset/pr-11993-added-1744134925847.md delete mode 100644 packages/manager/.changeset/pr-11995-upcoming-features-1744149575402.md delete mode 100644 packages/manager/.changeset/pr-11996-tests-1744202889076.md delete mode 100644 packages/manager/.changeset/pr-11997-tests-1744203271879.md delete mode 100644 packages/manager/.changeset/pr-11998-upcoming-features-1744205663442.md delete mode 100644 packages/manager/.changeset/pr-11999-tests-1744205582905.md delete mode 100644 packages/manager/.changeset/pr-12001-upcoming-features-1744284627613.md delete mode 100644 packages/manager/.changeset/pr-12002-tech-stories-1744219481332.md delete mode 100644 packages/manager/.changeset/pr-12003-fixed-1744230658863.md delete mode 100644 packages/manager/.changeset/pr-12004-changed-1744299731705.md delete mode 100644 packages/manager/.changeset/pr-12006-fixed-1744289649305.md delete mode 100644 packages/manager/.changeset/pr-12007-changed-1744290501828.md delete mode 100644 packages/manager/.changeset/pr-12008-upcoming-features-1744651679398.md delete mode 100644 packages/manager/.changeset/pr-12009-removed-1744307901647.md delete mode 100644 packages/manager/.changeset/pr-12010-added-1744316331183.md delete mode 100644 packages/manager/.changeset/pr-12011-fixed-1744319899786.md delete mode 100644 packages/manager/.changeset/pr-12012-added-1744320839894.md delete mode 100644 packages/manager/.changeset/pr-12012-added-1744837242791.md delete mode 100644 packages/manager/.changeset/pr-12014-tests-1744382864732.md delete mode 100644 packages/manager/.changeset/pr-12016-upcoming-features-1744492314777.md delete mode 100644 packages/manager/.changeset/pr-12017-upcoming-features-1744652118248.md delete mode 100644 packages/manager/.changeset/pr-12018-tech-stories-1744408988818.md delete mode 100644 packages/manager/.changeset/pr-12019-fixed-1744606971621.md delete mode 100644 packages/manager/.changeset/pr-12021-fixed-1744625544934.md delete mode 100644 packages/manager/.changeset/pr-12023-tests-1744653408368.md delete mode 100644 packages/manager/.changeset/pr-12025-removed-1744698392062.md delete mode 100644 packages/manager/.changeset/pr-12026-upcoming-features-1744709007966.md delete mode 100644 packages/manager/.changeset/pr-12027-upcoming-features-1744711021887.md delete mode 100644 packages/manager/.changeset/pr-12030-tests-1744726914987.md delete mode 100644 packages/manager/.changeset/pr-12031-changed-1744729225214.md delete mode 100644 packages/manager/.changeset/pr-12032-fixed-1744732437757.md delete mode 100644 packages/manager/.changeset/pr-12033-upcoming-features-1744745488820.md delete mode 100644 packages/manager/.changeset/pr-12036-tests-1744749094051.md delete mode 100644 packages/manager/.changeset/pr-12038-changed-1744750503892.md delete mode 100644 packages/manager/.changeset/pr-12040-tests-1744753693965.md delete mode 100644 packages/manager/.changeset/pr-12044-upcoming-features-1744808175869.md delete mode 100644 packages/manager/.changeset/pr-12048-changed-1744815132260.md delete mode 100644 packages/queries/.changeset/pr-11941-tech-stories-1743701305865.md delete mode 100644 packages/queries/.changeset/pr-11953-added-1743614960791.md delete mode 100644 packages/shared/.changeset/pr-11941-tech-stories-1743701490436.md delete mode 100644 packages/ui/.changeset/pr-11816-tech-stories-1742349715922.md delete mode 100644 packages/ui/.changeset/pr-11941-tech-stories-1743701371905.md delete mode 100644 packages/ui/.changeset/pr-11962-added-1743652880587.md delete mode 100644 packages/utilities/.changeset/pr-11941-tech-stories-1743701383002.md delete mode 100644 packages/utilities/.changeset/pr-11955-added-1743596189029.md delete mode 100644 packages/utilities/.changeset/pr-11986-added-1744096873342.md delete mode 100644 packages/utilities/.changeset/pr-12025-added-1744698420691.md delete mode 100644 packages/validation/.changeset/pr-11868-upcoming-features-1742271743027.md delete mode 100644 packages/validation/.changeset/pr-11941-tech-stories-1743701398312.md delete mode 100644 packages/validation/.changeset/pr-11963-changed-1743680086813.md delete mode 100644 packages/validation/.changeset/pr-12022-added-1744640788599.md delete mode 100644 packages/validation/.changeset/pr-12033-removed-1744745547794.md 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/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/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/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 From 47d1dd7517886c73a88e78dcaa18f3e39669a1d5 Mon Sep 17 00:00:00 2001 From: Connie Liu <139280159+coliu-akamai@users.noreply.github.com> Date: Thu, 17 Apr 2025 15:41:48 -0400 Subject: [PATCH 02/12] fix: Surface IPv4 Range errors for Linode Interfaces in SubnetAssignLinodesDrawer (#12058) * fix: Surface ip range errors for Linode Interfaces in SubnetAssignLinodesDrawer * fix typo in Upgrade Interfaces dialog --- .../DialogContents/PromptDialogContent.tsx | 8 +-- .../manager/src/features/VPCs/utils.test.ts | 55 +++++++++++++++++++ packages/manager/src/features/VPCs/utils.ts | 11 +++- 3 files changed, 67 insertions(+), 7 deletions(-) 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/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'; From 309ecd7e074517a7a344e6db5081ffda91e934e1 Mon Sep 17 00:00:00 2001 From: Alban Bailly <130582365+abailly-akamai@users.noreply.github.com> Date: Thu, 17 Apr 2025 17:20:33 -0400 Subject: [PATCH 03/12] fix: [M3-9790] - Notice & DismissibleBanner styles (#12055) * Clean up styles * Cleanup styles * Final styling + new stories * fix lint * fix unit * Added changeset: Notice and DismissibleBanner styles * feedback * feedback * feedback @mjac0bs * feedback @hana-akamai & @cpathipa * feedback @cpathipa --- .../DismissibleBanner.stories.tsx | 19 ++++++- .../DismissibleBanner/DismissibleBanner.tsx | 31 ++++++++---- .../src/features/Backups/BackupsCTA.tsx | 40 ++++++++------- .../CreditCardExpiredBanner.tsx | 3 +- .../GlobalNotifications/EmailBounce.tsx | 37 +++++++------- .../VerificationDetailsBanner.tsx | 8 ++- .../manager/src/routes/images/ImagesRoute.tsx | 2 +- packages/ui/src/assets/icons/close.svg | 4 +- .../src/components/Notice/Notice.stories.tsx | 12 +++++ .../ui/src/components/Notice/Notice.styles.ts | 22 ++++---- .../ui/src/components/Notice/Notice.test.tsx | 2 +- packages/ui/src/components/Notice/Notice.tsx | 50 ++++++++++++------- 12 files changed, 148 insertions(+), 82 deletions(-) diff --git a/packages/manager/src/components/DismissibleBanner/DismissibleBanner.stories.tsx b/packages/manager/src/components/DismissibleBanner/DismissibleBanner.stories.tsx index a2af0d71767..6544b4c4898 100644 --- a/packages/manager/src/components/DismissibleBanner/DismissibleBanner.stories.tsx +++ b/packages/manager/src/components/DismissibleBanner/DismissibleBanner.stories.tsx @@ -11,7 +11,7 @@ type Story = StoryObj; export const Default: Story = { render: (args) => ( - + This is an example of a dismissible banner. ), @@ -28,6 +28,8 @@ export const CallToActionBanner: Story = { Upgrade Version } + forceImportantIconVerticalCenter + important preferenceKey="cluster-v1" variant="info" > @@ -55,6 +57,21 @@ export const BetaBanner: Story = { ), }; +export const InfoWithLongTextAndMarkup: StoryObj = { + render: () => ( + + + This is an important, 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..f6c9e0047bb 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,29 @@ 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, + }, + })} > ); 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/features/Backups/BackupsCTA.tsx b/packages/manager/src/features/Backups/BackupsCTA.tsx index 43a2622fe6f..cc63aeef71f 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,26 @@ 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. + + + + + setIsBackupsDrawerOpen(false)} open={isBackupsDrawerOpen} diff --git a/packages/manager/src/features/GlobalNotifications/CreditCardExpiredBanner.tsx b/packages/manager/src/features/GlobalNotifications/CreditCardExpiredBanner.tsx index 69000f6173d..b03739dbbd1 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,6 +34,7 @@ export const CreditCardExpiredBanner = () => { Update Card } + forceImportantIconVerticalCenter important preferenceKey={'credit-card-expired'} variant="error" diff --git a/packages/manager/src/features/GlobalNotifications/EmailBounce.tsx b/packages/manager/src/features/GlobalNotifications/EmailBounce.tsx index 613193171e9..168fab5623c 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/VerificationDetailsBanner.tsx b/packages/manager/src/features/GlobalNotifications/VerificationDetailsBanner.tsx index f763c7142aa..be06b6f8995 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/routes/images/ImagesRoute.tsx b/packages/manager/src/routes/images/ImagesRoute.tsx index 39034e9ce89..15706f3e515 100644 --- a/packages/manager/src/routes/images/ImagesRoute.tsx +++ b/packages/manager/src/routes/images/ImagesRoute.tsx @@ -17,7 +17,7 @@ export const ImagesRoute = () => { spacingBottom={8} variant="info" > - + Custom Images are now encrypted by default for enhanced security.{' '} Learn more 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 @@ - - + + \ No newline at end of file diff --git a/packages/ui/src/components/Notice/Notice.stories.tsx b/packages/ui/src/components/Notice/Notice.stories.tsx index 3cfcd8c586b..fad4c8246f2 100644 --- a/packages/ui/src/components/Notice/Notice.stories.tsx +++ b/packages/ui/src/components/Notice/Notice.stories.tsx @@ -1,3 +1,4 @@ +import { Typography } from '@linode/ui'; import { styled } from '@mui/material/styles'; import React from 'react'; @@ -18,6 +19,17 @@ export const Info: StoryObj = { ), }; +export const InfoWithLongTextAndMarkup: StoryObj = { + render: () => ( + + + This is a informational notice with a title. + + This paragraph under the title should wrap. + + ), +}; + export const Error: StoryObj = { render: (args) => ( diff --git a/packages/ui/src/components/Notice/Notice.styles.ts b/packages/ui/src/components/Notice/Notice.styles.ts index ade6385e878..1bad1b13fcf 100644 --- a/packages/ui/src/components/Notice/Notice.styles.ts +++ b/packages/ui/src/components/Notice/Notice.styles.ts @@ -10,16 +10,12 @@ export const useStyles = makeStyles()((theme) => ({ stroke: theme.tokens.color.Neutrals.White, }, color: theme.tokens.color.Neutrals.White, - left: 10, - position: 'absolute', - top: '50%', - transform: 'translateY(-50%)', + width: 20, + height: 20, + position: 'relative', }, important: { font: theme.font.normal, - '& p': { - paddingLeft: theme.spacingFunction(36), - }, }, info: { borderLeft: `4px solid ${theme.tokens.component.NotificationBanner.Informative.Border}`, @@ -28,19 +24,23 @@ export const useStyles = makeStyles()((theme) => ({ }, root: { display: 'flex', + alignItems: 'center', '& + .notice': { marginTop: `${theme.spacingFunction(8)} !important`, }, - alignItems: 'center', borderRadius: 1, + padding: `${theme.spacingFunction(8)} ${theme.spacingFunction(16)}`, + '& .MuiTypography-root': { + width: '100%', + }, '& p': { fontSize: theme.tokens.font.FontSize.Xs, - lineHeight: '20px', font: theme.font.semibold, - padding: `10px ${theme.spacingFunction(16)}`, + position: 'relative', + top: 1, + margin: 0, }, maxWidth: '100%', - padding: '0px', position: 'relative', }, success: { diff --git a/packages/ui/src/components/Notice/Notice.test.tsx b/packages/ui/src/components/Notice/Notice.test.tsx index fbeec0414e6..c025f2d0c28 100644 --- a/packages/ui/src/components/Notice/Notice.test.tsx +++ b/packages/ui/src/components/Notice/Notice.test.tsx @@ -10,7 +10,7 @@ describe('Notice Component', () => { const { container } = renderWithTheme(); const notice = container.firstChild; - expect(notice).toHaveStyle('margin-bottom: 8px'); + expect(notice).toHaveStyle('margin-bottom: 0.5rem'); expect(notice).toHaveStyle('margin-left: 0'); expect(notice).toHaveStyle('margin-top: 0'); }); diff --git a/packages/ui/src/components/Notice/Notice.tsx b/packages/ui/src/components/Notice/Notice.tsx index f3db63321d1..169ea8134bb 100644 --- a/packages/ui/src/components/Notice/Notice.tsx +++ b/packages/ui/src/components/Notice/Notice.tsx @@ -31,6 +31,10 @@ export interface NoticeProps extends BoxProps { * The error group this error belongs to. This is used to scroll to the error when the user clicks on the error. */ errorGroup?: string; + /** + * If true, the important icon will be vertically centered with the text no matter the height of the text. + */ + forceImportantIconVerticalCenter?: boolean; /** * If true, an icon will be displayed to the left of the error, reflecting the variant of the error. */ @@ -83,6 +87,7 @@ export const Notice = (props: NoticeProps) => { className, dataTestId, errorGroup, + forceImportantIconVerticalCenter = false, important, spacingBottom, spacingLeft, @@ -128,8 +133,7 @@ export const Notice = (props: NoticeProps) => { [classes.info]: variantMap.info || variantMap.tip, [classes.success]: variantMap.success, [classes.warning]: variantMap.warning, - // The order we apply styles matters, therefore we: - // eslint-disable-next-line perfectionist/sort-objects + // The order we apply styles matters - important must be applied last [classes.important]: important, [errorScrollClassName]: variantMap.error, }, @@ -140,37 +144,45 @@ export const Notice = (props: NoticeProps) => { dataTestId ?? `notice${variant ? `-${variant}` : ''}${important ? '-important' : ''}` } + role="alert" sx={[ (theme) => ({ marginBottom: spacingBottom !== undefined ? `${spacingBottom}px` - : theme.spacing(1), + : theme.spacingFunction(8), marginLeft: spacingLeft !== undefined ? `${spacingLeft}px` : 0, marginTop: spacingTop !== undefined ? `${spacingTop}px` : 0, }), ...(Array.isArray(sx) ? sx : [sx]), ]} - role="alert" {...dataAttributes} {...rest} > - {important && variantMap.error && } - {important && variantMap.info && } - {important && variantMap.success && ( - - )} - {important && variantMap.tip && ( - - )} - {important && variantMap.warning && ( - - )} - {text || typeof children === 'string' ? ( - {text ?? children} - ) : ( - children + {important && ( + ({ + display: 'flex', + alignSelf: forceImportantIconVerticalCenter + ? 'center' + : 'flex-start', + marginRight: theme.spacingFunction(8), + })} + > + {variantMap.error && } + {variantMap.info && } + {variantMap.success && } + {variantMap.tip && } + {variantMap.warning && } + )} + + {text || typeof children === 'string' ? ( + {text ?? children} + ) : ( + children + )} + ); }; From e18c549beeac15751a763684e8e204174f93edcc Mon Sep 17 00:00:00 2001 From: Bill Coloe Date: Fri, 18 Apr 2025 11:13:19 -0500 Subject: [PATCH 04/12] Add design feedback --- .../src/components/Snackbar/Snackbar.tsx | 3 + packages/ui/src/foundations/themes/dark.ts | 47 ++++++++------- packages/ui/src/foundations/themes/light.ts | 58 ++++++++++--------- 3 files changed, 61 insertions(+), 47 deletions(-) diff --git a/packages/manager/src/components/Snackbar/Snackbar.tsx b/packages/manager/src/components/Snackbar/Snackbar.tsx index c34633f19d5..d57dfa34eea 100644 --- a/packages/manager/src/components/Snackbar/Snackbar.tsx +++ b/packages/manager/src/components/Snackbar/Snackbar.tsx @@ -25,6 +25,9 @@ declare module 'notistack' { const StyledMaterialDesignContent = styled(MaterialDesignContent)( ({ theme }: { theme: Theme }) => ({ + '#notistack-snackbar': { + alignItems: 'flex-start', + }, '#notistack-snackbar > svg': { position: 'absolute', left: '14px', 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, From efd0c2bca857556aa5d005da064c361353b43142 Mon Sep 17 00:00:00 2001 From: Bill Coloe Date: Fri, 18 Apr 2025 11:29:24 -0500 Subject: [PATCH 05/12] Added changeset: Toast styling according to additonal Des feedback --- .../manager/.changeset/pr-12064-changed-1744993764105.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/manager/.changeset/pr-12064-changed-1744993764105.md diff --git a/packages/manager/.changeset/pr-12064-changed-1744993764105.md b/packages/manager/.changeset/pr-12064-changed-1744993764105.md new file mode 100644 index 00000000000..3ff631cac70 --- /dev/null +++ b/packages/manager/.changeset/pr-12064-changed-1744993764105.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Changed +--- + +Toast styling according to additonal Des feedback ([#12064](https://github.com/linode/manager/pull/12064)) From c091c429fa59ee37d54b87945b00f1192326519b Mon Sep 17 00:00:00 2001 From: Bill Coloe Date: Fri, 18 Apr 2025 11:56:01 -0500 Subject: [PATCH 06/12] Align close icon --- packages/manager/src/components/Snackbar/Snackbar.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/manager/src/components/Snackbar/Snackbar.tsx b/packages/manager/src/components/Snackbar/Snackbar.tsx index d57dfa34eea..2593a72f5de 100644 --- a/packages/manager/src/components/Snackbar/Snackbar.tsx +++ b/packages/manager/src/components/Snackbar/Snackbar.tsx @@ -63,6 +63,7 @@ const StyledMaterialDesignContent = styled(MaterialDesignContent)( borderLeft: theme.notificationToast.warning.borderLeft, }, '& #notistack-snackbar + div': { + alignSelf: 'flex-start', paddingLeft: theme.spacingFunction(12), }, }) From 6eeac9ceed9498bfe383d0d4f0c7d4fc7e423699 Mon Sep 17 00:00:00 2001 From: Bill Coloe Date: Fri, 18 Apr 2025 12:28:52 -0500 Subject: [PATCH 07/12] Remove changeset --- .../manager/.changeset/pr-12064-changed-1744993764105.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 packages/manager/.changeset/pr-12064-changed-1744993764105.md diff --git a/packages/manager/.changeset/pr-12064-changed-1744993764105.md b/packages/manager/.changeset/pr-12064-changed-1744993764105.md deleted file mode 100644 index 3ff631cac70..00000000000 --- a/packages/manager/.changeset/pr-12064-changed-1744993764105.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@linode/manager": Changed ---- - -Toast styling according to additonal Des feedback ([#12064](https://github.com/linode/manager/pull/12064)) From 7e805bc1cce618fe168153add3c45298165e6cea Mon Sep 17 00:00:00 2001 From: Conal Ryan Date: Fri, 18 Apr 2025 15:06:51 -0400 Subject: [PATCH 08/12] feat[UIE-8726]: IAM disable API check when feature flag is off --- .../src/features/IAM/hooks/useIsIAMEnabled.test.ts | 9 +++++++++ .../manager/src/features/IAM/hooks/useIsIAMEnabled.ts | 2 +- packages/manager/src/queries/iam/iam.ts | 3 ++- 3 files changed, 12 insertions(+), 2 deletions(-) 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/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, }); }; From 3f2b2d78a28b7e066e3e4151f0bdd2011ac6ddc1 Mon Sep 17 00:00:00 2001 From: Conal Ryan Date: Fri, 18 Apr 2025 15:13:06 -0400 Subject: [PATCH 09/12] Added changeset: IAM disable API check when feature flag is off --- .../.changeset/pr-12068-upcoming-features-1745003586699.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/manager/.changeset/pr-12068-upcoming-features-1745003586699.md diff --git a/packages/manager/.changeset/pr-12068-upcoming-features-1745003586699.md b/packages/manager/.changeset/pr-12068-upcoming-features-1745003586699.md new file mode 100644 index 00000000000..a45c95a2f19 --- /dev/null +++ b/packages/manager/.changeset/pr-12068-upcoming-features-1745003586699.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Upcoming Features +--- + +IAM disable API check when feature flag is off ([#12068](https://github.com/linode/manager/pull/12068)) From cd5f879e92d8260e09356451a3aa35d55470e782 Mon Sep 17 00:00:00 2001 From: Bill Coloe Date: Fri, 18 Apr 2025 14:21:21 -0500 Subject: [PATCH 10/12] Set relative positioning on toast parent for smoother animation --- packages/manager/src/components/Snackbar/Snackbar.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/manager/src/components/Snackbar/Snackbar.tsx b/packages/manager/src/components/Snackbar/Snackbar.tsx index 2593a72f5de..a2c9efab983 100644 --- a/packages/manager/src/components/Snackbar/Snackbar.tsx +++ b/packages/manager/src/components/Snackbar/Snackbar.tsx @@ -27,10 +27,11 @@ 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, From a49549205ddbbb61767d6e6000272ec66348cb6e Mon Sep 17 00:00:00 2001 From: Conal Ryan Date: Fri, 18 Apr 2025 15:28:34 -0400 Subject: [PATCH 11/12] Remove changeset --- .../.changeset/pr-12068-upcoming-features-1745003586699.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 packages/manager/.changeset/pr-12068-upcoming-features-1745003586699.md diff --git a/packages/manager/.changeset/pr-12068-upcoming-features-1745003586699.md b/packages/manager/.changeset/pr-12068-upcoming-features-1745003586699.md deleted file mode 100644 index a45c95a2f19..00000000000 --- a/packages/manager/.changeset/pr-12068-upcoming-features-1745003586699.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@linode/manager": Upcoming Features ---- - -IAM disable API check when feature flag is off ([#12068](https://github.com/linode/manager/pull/12068)) From c6361bf9edaaf923c75dd65c7dbdba9c8599de91 Mon Sep 17 00:00:00 2001 From: Hana Xu <115299789+hana-akamai@users.noreply.github.com> Date: Mon, 21 Apr 2025 11:35:14 -0400 Subject: [PATCH 12/12] fix: [M3-9796] - Notice icon, padding, and dark mode (#12065) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🔄 - Fix icon not changing in dark mode - Fix left padding - All notices/banners have icons associated now without the need for important - Removed important references from the codebase and stories No need for changeset since this isn't released yet. I did a quick pass-through and haven't noticed any regressions ## How to test 🧪 ### Verification steps (How to verify changes) - [ ] Check notices/banners for regressions across the codebase in dark mode, various sizes, and storybook --- .../bucket-object-gen2.spec.ts | 4 +- .../AbuseTicketBanner/AbuseTicketBanner.tsx | 3 +- .../DismissibleBanner.stories.tsx | 6 +- .../DismissibleBanner/DismissibleBanner.tsx | 3 + .../MaintenanceBanner/MaintenanceBanner.tsx | 2 +- .../ProductInformationBanner.tsx | 8 --- .../ProductNotification.tsx | 6 +- .../src/features/Account/AccountLogins.tsx | 1 - .../features/Account/CloseAccountDialog.tsx | 8 +-- .../src/features/Backups/BackupsCTA.tsx | 7 +- .../DatabaseCreate/DatabaseCreate.tsx | 3 +- .../DatabaseAdvancedConfigurationDrawer.tsx | 2 +- .../Databases/DatabaseDetail/index.tsx | 8 +-- .../Domains/CreateDomain/CreateDomain.tsx | 13 ++-- .../src/features/Domains/DomainBanner.tsx | 1 - .../Devices/FirewallDeviceLanding.tsx | 1 - .../Rules/FirewallRulesLanding.tsx | 41 ++++++----- .../APIMaintenanceBanner.tsx | 1 - .../GlobalNotifications/ComplianceBanner.tsx | 1 - .../CreditCardExpiredBanner.tsx | 1 - .../DatabaseMigrationInfoBanner.tsx | 4 +- .../GlobalNotifications/EmailBounce.tsx | 2 +- .../RegionStatusBanner.tsx | 2 +- .../TaxCollectionBanner.tsx | 1 - .../VerificationDetailsBanner.tsx | 2 +- .../src/features/Help/StatusBanners.tsx | 1 - .../Images/ImagesCreate/CreateImageTab.tsx | 1 - .../Images/ImagesCreate/ImageUpload.tsx | 1 - .../ImageRegions/ManageImageRegionsForm.tsx | 2 +- .../Images/ImagesLanding/ImagesLanding.tsx | 1 - .../CreateCluster/CreateCluster.tsx | 30 +++----- .../KubeCheckoutBar/KubeCheckoutBar.tsx | 7 +- .../NodePoolsDisplay/AddNodePoolDrawer.tsx | 7 +- .../NodePoolsDisplay/ResizeNodePoolDrawer.tsx | 26 +++---- .../features/Linodes/LinodeCreate/index.tsx | 8 +-- .../features/Linodes/LinodeEntityDetail.tsx | 1 - .../DialogContents/ErrorDialogContent.tsx | 2 +- .../DialogContents/SuccessDialogContent.tsx | 2 +- .../TransferContent.tsx | 3 +- .../LinodesDetailHeader/HostMaintenance.tsx | 2 +- .../MigrationNotification.tsx | 13 +--- .../MutationNotification.tsx | 2 +- .../LongviewLanding/LongviewLanding.tsx | 1 - .../LongviewLanding/LongviewPlans.tsx | 1 - .../NodeBalancers/NodeBalancerCreate.tsx | 68 +++++++++---------- .../NodeBalancerDetail/NodeBalancerDetail.tsx | 16 ++--- .../BucketLanding/BucketLanding.tsx | 2 +- .../BucketLanding/OMC_BucketLanding.tsx | 2 +- .../ObjectStorage/ObjectStorageLanding.tsx | 1 - .../StackScriptCreate/StackScriptCreate.tsx | 3 +- .../FormComponents/CannotCreateVPCNotice.tsx | 1 - .../VPCDetail/SubnetAssignLinodesDrawer.tsx | 1 - .../VPCs/VPCDetail/SubnetCreateDrawer.tsx | 5 +- .../VPCs/VPCDetail/SubnetEditDrawer.tsx | 1 - .../VPCDetail/SubnetUnassignLinodesDrawer.tsx | 1 - .../VPCs/VPCLanding/VPCEditDrawer.tsx | 1 - .../VolumeDrawer/LinodeVolumeAttachForm.tsx | 1 - .../src/features/Volumes/VolumeCreate.tsx | 21 ++---- .../manager/src/routes/images/ImagesRoute.tsx | 1 - .../src/components/Notice/Notice.stories.tsx | 61 ++--------------- .../ui/src/components/Notice/Notice.styles.ts | 18 +++-- .../ui/src/components/Notice/Notice.test.tsx | 7 -- packages/ui/src/components/Notice/Notice.tsx | 42 ++++-------- 63 files changed, 172 insertions(+), 323 deletions(-) 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/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 6544b4c4898..77a17ecc46c 100644 --- a/packages/manager/src/components/DismissibleBanner/DismissibleBanner.stories.tsx +++ b/packages/manager/src/components/DismissibleBanner/DismissibleBanner.stories.tsx @@ -11,7 +11,7 @@ type Story = StoryObj; export const Default: Story = { render: (args) => ( - + This is an example of a dismissible banner. ), @@ -29,7 +29,6 @@ export const CallToActionBanner: Story = { } forceImportantIconVerticalCenter - important preferenceKey="cluster-v1" variant="info" > @@ -60,12 +59,11 @@ export const BetaBanner: Story = { export const InfoWithLongTextAndMarkup: StoryObj = { render: () => ( - This is an important, dismissible informational notice with a title. + This is a dismissible informational notice with a title. This notice contains long text that should wrap. diff --git a/packages/manager/src/components/DismissibleBanner/DismissibleBanner.tsx b/packages/manager/src/components/DismissibleBanner/DismissibleBanner.tsx index f6c9e0047bb..fc4de218335 100644 --- a/packages/manager/src/components/DismissibleBanner/DismissibleBanner.tsx +++ b/packages/manager/src/components/DismissibleBanner/DismissibleBanner.tsx @@ -63,6 +63,9 @@ export const DismissibleBanner = (props: Props) => { '& svg': { width: 16, height: 16, + '& path': { + fill: theme.tokens.component.NotificationBanner.Icon, + }, }, })} > 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/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 cc63aeef71f..d8275fd49b9 100644 --- a/packages/manager/src/features/Backups/BackupsCTA.tsx +++ b/packages/manager/src/features/Backups/BackupsCTA.tsx @@ -66,7 +66,12 @@ export const BackupsCTA = () => { ({ + padding: 0.25, + '& path': { + fill: theme.tokens.component.NotificationBanner.Icon, + }, + })} > 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 b03739dbbd1..1de9f822732 100644 --- a/packages/manager/src/features/GlobalNotifications/CreditCardExpiredBanner.tsx +++ b/packages/manager/src/features/GlobalNotifications/CreditCardExpiredBanner.tsx @@ -35,7 +35,6 @@ export const CreditCardExpiredBanner = () => { } forceImportantIconVerticalCenter - important 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 168fab5623c..540942d3b12 100644 --- a/packages/manager/src/features/GlobalNotifications/EmailBounce.tsx +++ b/packages/manager/src/features/GlobalNotifications/EmailBounce.tsx @@ -131,7 +131,7 @@ const EmailBounceNotification = React.memo((props: Props) => { } return ( - + { } 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 be06b6f8995..f0749b2720d 100644 --- a/packages/manager/src/features/GlobalNotifications/VerificationDetailsBanner.tsx +++ b/packages/manager/src/features/GlobalNotifications/VerificationDetailsBanner.tsx @@ -24,7 +24,7 @@ export const VerificationDetailsBanner = ({ } return ( - + { variant={ variantMap.error ? 'error' : variantMap.warning ? 'warning' : undefined } - important preferenceKey={preferenceKey} sx={{ marginBottom: theme.spacing() }} > 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/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/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/routes/images/ImagesRoute.tsx b/packages/manager/src/routes/images/ImagesRoute.tsx index 15706f3e515..5cb3213de28 100644 --- a/packages/manager/src/routes/images/ImagesRoute.tsx +++ b/packages/manager/src/routes/images/ImagesRoute.tsx @@ -12,7 +12,6 @@ export const ImagesRoute = () => { return ( }> = { ), }; +export const Tip: StoryObj = { + render: (args) => ( + + ), +}; + export const InfoWithLongTextAndMarkup: StoryObj = { render: () => ( @@ -42,61 +48,6 @@ export const Warning: StoryObj = { ), }; -export const ImportantSuccess: StoryObj = { - render: (args) => ( - - ), -}; - -export const ImportantInfo: StoryObj = { - render: (args) => ( - - ), -}; - -export const ImportantTip: StoryObj = { - render: (args) => ( - - ), -}; - -export const ImportantError: StoryObj = { - render: (args) => ( - - ), -}; - -export const ImportantWarning: StoryObj = { - render: (args) => ( - - ), -}; - const meta: Meta = { args: { text: 'This is a notice', diff --git a/packages/ui/src/components/Notice/Notice.styles.ts b/packages/ui/src/components/Notice/Notice.styles.ts index 1bad1b13fcf..fbfb0704c2f 100644 --- a/packages/ui/src/components/Notice/Notice.styles.ts +++ b/packages/ui/src/components/Notice/Notice.styles.ts @@ -4,6 +4,9 @@ export const useStyles = makeStyles()((theme) => ({ error: { borderLeft: `4px solid ${theme.tokens.component.NotificationBanner.Error.Border}`, background: theme.tokens.component.NotificationBanner.Error.Background, + '& path': { + fill: theme.tokens.component.NotificationBanner.Error.StatusIcon, + }, }, icon: { '& g': { @@ -14,13 +17,13 @@ export const useStyles = makeStyles()((theme) => ({ height: 20, position: 'relative', }, - important: { - font: theme.font.normal, - }, info: { borderLeft: `4px solid ${theme.tokens.component.NotificationBanner.Informative.Border}`, background: theme.tokens.component.NotificationBanner.Informative.Background, + '& path': { + fill: theme.tokens.component.NotificationBanner.Informative.StatusIcon, + }, }, root: { display: 'flex', @@ -29,7 +32,7 @@ export const useStyles = makeStyles()((theme) => ({ marginTop: `${theme.spacingFunction(8)} !important`, }, borderRadius: 1, - padding: `${theme.spacingFunction(8)} ${theme.spacingFunction(16)}`, + padding: `${theme.spacingFunction(8)} ${theme.spacingFunction(12)}`, '& .MuiTypography-root': { width: '100%', }, @@ -46,9 +49,16 @@ export const useStyles = makeStyles()((theme) => ({ success: { borderLeft: `4px solid ${theme.tokens.component.NotificationBanner.Success.Border}`, background: theme.tokens.component.NotificationBanner.Success.Background, + '& path': { + fill: theme.tokens.component.NotificationBanner.Success.StatusIcon, + }, }, warning: { borderLeft: `4px solid ${theme.tokens.component.NotificationBanner.Warning.Border}`, background: theme.tokens.component.NotificationBanner.Warning.Background, + // Only update outer triangle color + '& .css-1j6o9qe-icon path:first-of-type': { + fill: theme.tokens.component.NotificationBanner.Warning.StatusIcon, + }, }, })); diff --git a/packages/ui/src/components/Notice/Notice.test.tsx b/packages/ui/src/components/Notice/Notice.test.tsx index c025f2d0c28..b31a927c5aa 100644 --- a/packages/ui/src/components/Notice/Notice.test.tsx +++ b/packages/ui/src/components/Notice/Notice.test.tsx @@ -67,13 +67,6 @@ describe('Notice Component', () => { expect(container.firstChild).toHaveStyle('background: #ffe5e5;'); }); - it('displays icon for important notices', () => { - const { getByTestId } = renderWithTheme(); - const icon = getByTestId('notice-important'); - - expect(icon).toBeInTheDocument(); - }); - it('handles bypassValidation prop', () => { const { container } = renderWithTheme(); diff --git a/packages/ui/src/components/Notice/Notice.tsx b/packages/ui/src/components/Notice/Notice.tsx index 169ea8134bb..4e77f75fa47 100644 --- a/packages/ui/src/components/Notice/Notice.tsx +++ b/packages/ui/src/components/Notice/Notice.tsx @@ -35,10 +35,6 @@ export interface NoticeProps extends BoxProps { * If true, the important icon will be vertically centered with the text no matter the height of the text. */ forceImportantIconVerticalCenter?: boolean; - /** - * If true, an icon will be displayed to the left of the error, reflecting the variant of the error. - */ - important?: boolean; /** * The amount of spacing to apply to the bottom of the error. */ @@ -88,7 +84,6 @@ export const Notice = (props: NoticeProps) => { dataTestId, errorGroup, forceImportantIconVerticalCenter = false, - important, spacingBottom, spacingLeft, spacingTop, @@ -133,17 +128,12 @@ export const Notice = (props: NoticeProps) => { [classes.info]: variantMap.info || variantMap.tip, [classes.success]: variantMap.success, [classes.warning]: variantMap.warning, - // The order we apply styles matters - important must be applied last - [classes.important]: important, [errorScrollClassName]: variantMap.error, }, 'notice', className, )} - data-testid={ - dataTestId ?? - `notice${variant ? `-${variant}` : ''}${important ? '-important' : ''}` - } + data-testid={dataTestId ?? `notice${variant ? `-${variant}` : ''}`} role="alert" sx={[ (theme) => ({ @@ -159,23 +149,19 @@ export const Notice = (props: NoticeProps) => { {...dataAttributes} {...rest} > - {important && ( - ({ - display: 'flex', - alignSelf: forceImportantIconVerticalCenter - ? 'center' - : 'flex-start', - marginRight: theme.spacingFunction(8), - })} - > - {variantMap.error && } - {variantMap.info && } - {variantMap.success && } - {variantMap.tip && } - {variantMap.warning && } - - )} + ({ + display: 'flex', + alignSelf: forceImportantIconVerticalCenter ? 'center' : 'flex-start', + marginRight: theme.spacingFunction(8), + })} + > + {variantMap.error && } + {variantMap.info && } + {variantMap.success && } + {variantMap.tip && } + {variantMap.warning && } + {text || typeof children === 'string' ? ( {text ?? children}