1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-06 00:07:44 +01:00
Commit Graph

3031 Commits

Author SHA1 Message Date
Thomas Heartman
f46d420b10
feat: add warning icons to environments in selector (#6290)
This PR adds warning icons to the environment selector for environments
that have problems detected. However, because we don't have any way
detect problems yet, this PR only adds the icons and the infrastructure
to display them. They're always set to "not displayed" for now.

The icons have "problems detected" as accessible text.

It looks like this when you add them in (for every environment):

<img width="1137" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/c29bfa52-ddee-4b16-b3ac-5c1f8fcc326e">
2024-02-21 13:28:37 +08:00
Thomas Heartman
ddae97080d
feat: wrap buttons in a fieldset and add an explanatory legend. (#6289)
This makes it more obvious to everyone what the buttons do.
2024-02-21 12:15:02 +08:00
Christopher Kolstad
7350c91a1e
fix: display all roles if we can't get project roles 2024-02-20 16:23:25 +01:00
Christopher Kolstad
e9d9db17fe
feat: Adding Project access requires same role (#6270)
In order to prevent users from being able to assign roles/permissions
they don't have, this PR adds a check that the user performing the
action either is Admin, Project owner or has the same role they are
trying to grant/add.

This addAccess method is only used from Enterprise, so there will be a
separate PR there, updating how we return the roles list for a user, so
that our frontend can only present the roles a user is actually allowed
to grant.

This adds the validation to the backend to ensure that even if the
frontend thinks we're allowed to add any role to any user here, the
backend can be smart enough to stop it.

We should still update frontend as well, so that it doesn't look like we
can add roles we won't be allowed to.
2024-02-20 15:56:53 +01:00
Thomas Heartman
a468c55fc7
feat: add environment selection to connected instances screen (#6277)
This PR adds an environment selector to the connected instances table,
using query parameters to store the environment selection.

I'm still using the old data to populate this, so it'll show you all
data when nothing is selected and only filtered data when you select an
env. There is no way to unselect an env at the moment: I'm not sure
that's something we'll need to do, so we'll handle that when we know.

I imagine in the future, we might update the component to make separate
calls per environments and a call to determine which envs are available,
but for now, this will do just fine.

<img width="848" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/ef7562d5-c0ab-48c6-ba43-7c0007719ab4">
2024-02-20 12:14:44 +02:00
Thomas Heartman
d967d4adb0
feat: add tabs (#6267)
This PR adds a new file "Application.tsx", which is analogous to the
existing Project.tsx file in that it contains the base layout for the
application page, as well as tabs pointing to sub pages. Currently, the
overview tab uses a paragraph with some fallback text, while the
connected instances table displays the instances table.

I have mostly copied the existing ApplicationEdit component and used
that as a base, assuming that we'll delete that component when we're
done with this.

<img width="1449" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/ac574a83-3cf4-4de5-a4de-188575074ecb">
2024-02-20 17:32:33 +08:00
Nuno Góis
7e6a3c7e69
fix: clickable names in inc wh and action tables (#6275)
https://linear.app/unleash/issue/2-1954/make-names-clickable-in-actions-and-incoming-webhooks

Makes names clickable in the incoming webhook and action tables. When
clicked, they open the edit form for that resource.


![image](https://github.com/Unleash/unleash/assets/14320932/973f38c0-2603-4cbf-9352-90ddfe0b6e3f)


![image](https://github.com/Unleash/unleash/assets/14320932/ff733899-b86a-494a-8d2c-65d53e19a356)
2024-02-20 09:28:00 +00:00
andreas-unleash
f71badd255
feat: dashboard project filtering (#6259)
Adds the same project selector Autocomplete as we use in the playground.
Implements the filtering 

Closes: #
[1-2036](https://linear.app/unleash/issue/1-2036/api-project-filtering)

<img width="1508" alt="Screenshot 2024-02-16 at 15 57 24"
src="https://github.com/Unleash/unleash/assets/104830839/4490e43c-17db-41b6-ba75-e7b0f2df0522">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-02-19 16:28:03 +02:00
Nuno Góis
9b980bb212
fix: small ui/ux adjustments to the actions form (#6269)
Small UI/UX adjustments to the actions form after aligning.


![image](https://github.com/Unleash/unleash/assets/14320932/5ededf9c-af54-4628-8fb3-0fcc6afc87dc)
2024-02-19 13:22:18 +00:00
Jaanus Sellin
03929e3031
feat: project applications UI (#6260)
![image](https://github.com/Unleash/unleash/assets/964450/a1129857-820c-4e93-ac59-ef5f4743d774)
2024-02-19 09:50:53 +02:00
Thomas Heartman
bd907244c4
chore: don't hide columns in connected instances table (#6264)
Don't hide anything yet, so remove related code. Plus other code we
don't need has been removed.
2024-02-19 14:37:13 +08:00
Thomas Heartman
0e9102fb22
feat: add connected instances table (#6263)
This PR adds a first iteration of the connected instances table on a new
connected instances tab of the application page (hidden behind a flag).

As a first version, it only uses data that we currently return for each
application (so no "connected through" or "last synchronized").

It also uses the existing version of the application data and just
filters it for the "production" environment right now.

Adding query parameters (and potentially a new URL?) to the applications
page (to save state and fetch data) will be done in a follow-up. This
should lay the groundwork for adding a new API too.

<img width="1485" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/4fb68456-d0f5-4f82-9246-5333a273df9c">
2024-02-19 14:12:12 +08:00
Gastón Fournier
7a48fb57a6
feat: permission matrix (PoC) (#6223)
## About the changes
This is a rough initial version as a PoC for a permission matrix. 

This is only available after enabling the flag `userAccessUIEnabled`
that is set to true by default in local development.

The access was added to the users' admin page but could be embedded in
different contexts (e.g. when assigning a role to a user):

![image](https://github.com/Unleash/unleash/assets/455064/3f541f46-99bb-409b-a0fe-13f5d3f9572a)


This is how the matrix looks like

![screencapture-localhost-3000-admin-users-3-access-2024-02-13-12_15_44](https://github.com/Unleash/unleash/assets/455064/183deeb6-a0dc-470f-924c-f435c6196407)

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-02-16 14:31:33 +01:00
Thomas Heartman
e5fe4a7766
chore: add sdkReporting flag to front end (#6253)
It's already in the back end, but wasn't declared in the front end
flags.
2024-02-16 15:43:27 +08:00
Thomas Heartman
a8fa1ae347
fix: hide warnings that you'll overwrite changes on CRs that are already applied (#6214)
The current approach uses adds an extra parameter to the components and
passes it through from the parent components. It's never a lot of
levels, so it feels alright, but it's feels like a bit of a code smell.
I wonder if it would make sense to use a context for each change
request? 🤔

Supersedes: https://github.com/Unleash/unleash/pull/6181
2024-02-16 12:41:14 +08:00
Thomas Heartman
64a6af2858
feat: show info on what would be deleted (#6235)
This PR updates the way we show deleted strategies in the CR UI. Instead
of showing just the strategy name and a diff on hover, we show the same
strategy config as we do for new and updated strategies.

This makes it easier to see what you have deleted.

In doing so, it also fixes two issues:
1. inconsistent border radius for segment changes listed. Due to an
override in `frontend/src/themes/theme.ts`, these would get a border
radius of `theme.shape.borderRadiusLarge` instead of
`theme.shape.borderRadiusMedium`. It does this by adding a class and
making the selector more specific.
2. The background was unset for the strategy rollout box and constraint
item boxes.

It looks like this:

<img width="728" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/7cba28ac-0454-444d-8cfa-f46543ccf2dc">

<img width="728" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/832be653-3def-4afc-b72f-36fcd76ad83d">

Or with more kinds of strategies:
<img width="454" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/f18e5482-7d2e-4cbd-8177-9de6dfb10307">


Note: I'm happy to isolate the color changes to a separate PR if that's
preferable.
2024-02-16 04:13:40 +00:00
Mateusz Kwasniewski
c2b1fd20e5
fix: long descriptions should have tooltips (#6202) 2024-02-15 14:17:55 +01:00
Jaanus Sellin
8dc27204d1
feat: add gen:api:clean for clean orval schemas (#6244)
Created a build script that generates orval schemas with automatic
cleanup. Also generating new ones.

1. yarn gen:api **(generates schemas)**
2. rm -rf src/openapi/apis **(remove apis)**
3.  sed -i '1q' src/openapi/index.ts **(remove all rows except first)**
2024-02-15 11:45:35 +02:00
Nuno Góis
7a699cf68c
fix: refine project actions form (#6242)
https://linear.app/unleash/issue/2-1934/refine-the-actions-form-uiux

First effort in refining the project actions form to look slightly more
like the design, including some refactors.


![image](https://github.com/Unleash/unleash/assets/14320932/ab6e11b4-b3b4-4c58-8bd1-9fcc9cb7014b)
2024-02-15 08:28:20 +00:00
Nuno Góis
6a9f80c554
fix: misc UI/UX fixes (#6241)
https://linear.app/unleash/issue/UNL-338/adjustments-incoming-webhooks-actions

Includes misc UI/UX fixes, including a typo, the vertical alignment of
the Enterprise badge in project settings and the way incoming webhooks
are displayed in non-Enterprise plans.
2024-02-15 08:17:11 +00:00
Thomas Heartman
011008a361
fix: add missing key to list of application projects (#6243)
This is in the applications table. To achieve it, we also wrap the text in a span.
2024-02-15 07:56:26 +00:00
Tymoteusz Czech
0d51bad67b
feat: dashboard lead time gauge (#6225) 2024-02-14 13:32:12 +01:00
Jaanus Sellin
624524819a
chore: update orval types (#6238) 2024-02-14 13:13:34 +02:00
Jaanus Sellin
3d77825493
feat: project applications server side paging and sorting and filtering (#6236)
Uses exactly same pattern as search-store. Nothing too crazy here.
Most code is in tests.
2024-02-14 13:03:44 +02:00
Thomas Heartman
2ab99624d2
feat: show env var conflicts in change requests (#6182)
This PR adds showing of env variant conflicts in change requests.

This is a simple solution that only compares the total state of
variants. We *could* potentially do a modified version where we show
each and every variant as its own property. Because variants have to be
unique by name and because their names can't be changed after their
creation, we could create a map of variant name to their data.

<img width="1105" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/0c67f958-6c4e-453a-9791-0e132fb1f23e">
2024-02-14 10:12:19 +09:00
Jaanus Sellin
e50574dbef
chore: generate orval types (#6224) 2024-02-13 15:22:08 +02:00
Jaanus Sellin
eb5d7a3788
feat: sdk reporting flag and e2e test (#6216)
1. Add flag
2. Add e2e test with more complete example
3. Some bug fixes
2024-02-13 14:13:21 +02:00
andreas-unleash
1ad5b5062a
feat: Make storing to local storage robust (#6139)
Handles non serializable objects like Map and Set and makes the
serialisation/deserialisation process more robust generally.

Closes #
[UNL-322](https://linear.app/unleash/issue/UNL-322/add-types-to-local-storage-and-force-simple-types)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-02-13 09:36:15 +02:00
Nuno Góis
9511e64027
refactor: project actions (#6203)
https://linear.app/unleash/issue/2-1938/refactor-project-actions

Refactors project actions to not include the project in the payload.

Includes other misc scouting.
2024-02-12 17:10:33 +00:00
Tymoteusz Czech
c224d7dc4c
Feat: chart 'no-data' placeholder (#6172) 2024-02-12 16:10:46 +01:00
Tymoteusz Czech
3e7c2bb30e
Dashboard chart fill (#6167) 2024-02-12 15:30:17 +01:00
Mateusz Kwasniewski
b48d25a226
feat: default stickiness explanation (#6201) 2024-02-12 13:16:51 +01:00
andreas-unleash
3e4f31b588
Chore: add zendesk btn to error dialog (#6187)
Adds the option for a 3rd button in the Dialogue component
Adds a button to open our zendesk support page

Closes #
[1-2024](https://linear.app/unleash/issue/1-2024/review-the-ui-error-dialog)
<img width="1677" alt="Screenshot 2024-02-09 at 11 18 20"
src="https://github.com/Unleash/unleash/assets/104830839/bf69c9c2-456f-4b83-b80e-d72f0d678331">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-02-12 10:26:45 +02:00
Gastón Fournier
6d26c79fa7
chore: Move actions inside projects (#6191)
## About the changes
Action should be relative to a project (in general).
2024-02-12 09:26:05 +01:00
Gastón Fournier
924ea39ea2
feat: project actions UI form (#6115)
## About the changes
Add, delete, and update actions is already working. The UI still needs
some love, but it's functional

![image](https://github.com/Unleash/unleash/assets/455064/f990bc8c-902b-4e00-8a1a-3761c32780a3)

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-02-09 12:13:44 +00:00
Fredrik Strand Oseberg
260ef70309
Feat/UI error observability (#6169)
This PR adds an endpoint to Unleash that accepts an error message and
option error stack and logs it as an error. This allows us to leverage
errors in logs observability to catch UI errors consistently.

Considered a test, but this endpoint only accepts and logs input, so I'm
not sure how useful it would be.
2024-02-09 13:07:44 +01:00
Nuno Góis
4c1dfbefa7
chore: clean up customRootRolesKillSwitch (#6173)
https://linear.app/unleash/issue/2-1308/remove-customrootroleskillswitch-flag

Cleans up the `customRootRolesKillSwitch` flag.
2024-02-09 08:41:40 +00:00
Nuno Góis
13df715bfd
fix: prevent infinite rerenders in useIncomingWebhooks (#6176)
React can sometimes be non-intuitive and behave erratically due to the
way it detects changes in hook dependencies.

This prevents infinite re-renders from `useIncomingWebhooks` by using a
static `DEFAULT_DATA` constant, so that its reference is always the
same, so no changes are detected when there are none.

Unrelated scouting, but this PR also removes an unneeded dependency in
the memoized columns in `ProjectActionsTable`.
2024-02-09 08:17:15 +00:00
Thomas Heartman
b77f3129f2
feat: show segment conflicts in crs (#6138)
This PR updates the diff calculation to work with both strategy changes
and segment changes. It also adds the corresponding segment change
conflict overview to segment updates.

<img width="1225" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/688a57a5-5cd7-4b0a-bd1e-df63189594d8">
2024-02-09 16:25:01 +09:00
Mateusz Kwasniewski
7e66a79f9f
feat: add disabled state handling on slow network (#6165) 2024-02-08 10:27:51 +01:00
Nuno Góis
cc2ccb1134
fix: network tab active state (#6154)
https://linear.app/unleash/issue/UNL-335/network-active-tab-state

Fixes the tab active state in Network by using the new `TabLink`
component.


![image](https://github.com/Unleash/unleash/assets/14320932/d8d4cc1e-9554-4b20-9991-b66e49663ae5)
2024-02-07 15:03:44 +00:00
Mateusz Kwasniewski
11bfcd605a
fix: overflowing description (#6150) 2024-02-07 12:51:10 +01:00
Mateusz Kwasniewski
3d1e0a6312
chore: upgrade to msw 2.x with new response declaration (#6148) 2024-02-07 11:33:55 +01:00
Mateusz Kwasniewski
d060427603
chore: update msw (#6147) 2024-02-07 10:58:29 +01:00
Christopher Kolstad
ea38877b0c
feat: List and delete inactive users
Adds a new Inactive Users list component to admin/users for easier cleanup of users that are counted as inactive: No sign of activity (logins or api token usage) in the last 180 days.

---------

Co-authored-by: David Leek <david@getunleash.io>
2024-02-05 14:07:38 +01:00
Mateusz Kwasniewski
2d7464f517
feat: make edge explicit in UI (#6132) 2024-02-05 13:34:22 +01:00
Fredrik Strand Oseberg
6a70ba0cd0
fix: add new steps to demo guide (#6112)
This PR adds the necessary steps for the demo guidance to work properly
with the new form
2024-02-05 11:36:15 +01:00
Thomas Heartman
73c4c62ea3
chore: track metrics for how many CRs are moved into next state with conflicts (#6109)
Use React's context to track how many CRs are moved into their next
state with conflicts present.

This PR wraps environment change requests and change request overviews
in a change request plausible context that contains a
`willOverwriteStrategyChanges` property. This property is updated by the
diff calculation if there are any conflicts and then read by the
`changeState` function in the `useChangeRequestApi` hook.

As long as at least one of the strategies in the CR contain conflicts,
it will be marked as overwriting changes.
2024-02-05 18:27:11 +09:00
Jaanus Sellin
0cf8396ec2
feat: add posted feedback table (#6113)
The page can only be navigated if you know direct url `/feedback`


![image](https://github.com/Unleash/unleash/assets/964450/6018a6c0-9fee-4fb2-9b68-2d3e87674441)
2024-02-02 15:39:29 +02:00
Mateusz Kwasniewski
1834f9f8bc
fix: show all selected application names (#6110) 2024-02-02 11:35:00 +01:00
Mateusz Kwasniewski
28fc36a1de
fix: exclude columns with commas (#6102) 2024-02-01 14:10:57 +01:00
Mateusz Kwasniewski
4e3ab7186c
feat: time to production chart (#6100) 2024-02-01 12:22:27 +01:00
Thomas Heartman
99b8fa2943
refactor: take chatgpt's suggestions for diff calc algorithm (#6086)
We had to make some updates to let the compiler know about the types and
fix an issue with nested objects not being compared as objects (instead
as strings), but this saves us a few lines and is hopefully more
readable.
2024-02-01 19:57:09 +09:00
Fredrik Strand Oseberg
de0bebd7ad
fix: set correct lables for project charts (#6099) 2024-02-01 10:31:11 +01:00
Jaanus Sellin
bb02ffd8c4
feat: A/B test search feedback variants (#6085)
Search was not getting any feedback. We introduced 3 different variants
to compare conversion rate.


![image](https://github.com/Unleash/unleash/assets/964450/9c4fbcd6-c6d9-4570-9a08-9321087f609a)

![image](https://github.com/Unleash/unleash/assets/964450/6d643d48-1dcb-4a67-9951-7f0c6865f31d)

![image](https://github.com/Unleash/unleash/assets/964450/423dbd54-5dd1-409c-9cd5-295edb9453d9)
2024-01-31 14:32:23 +02:00
Fredrik Strand Oseberg
79e86e1aca
feat: project health widget (#6092)
Adds the project health widget to the edb:

<img width="1243" alt="Skjermbilde 2024-01-31 kl 12 16 23"
src="https://github.com/Unleash/unleash/assets/16081982/7df1e4dc-3245-4c30-bb9e-f21e90697392">
2024-01-31 13:19:28 +01:00
Jaanus Sellin
0f901bbe12
fix: fix skeleton not appearing on feature toggle list (#6093)
The `FeatureToggleListTable` is nested directly within `PageContent`.
`PageContent` was cause for removing the skeleton from the table.
However, this is unnecessary because the table has its own loader that
manages the skeletons. Therefore, `PageContent` does not require a
loader.
2024-01-31 13:26:39 +02:00
Thomas Heartman
5417662f5a
chore: add metrics for conflict creation detection (#6022)
This PR adds a 'change-request-conflict-created' event whenever someone
save a strategy update for a strategy that's used in either pending or
scheduled change requests.

Data for pending change requests will only be sent if change requests
are enabled. Data for scheduled change requests will be sent regardless.

Getting this data is somewhat involved, so I've extracted as much of the
logic into a separate file as possible.

The event re-uses the existing `change_request` metric and sends the
following data for each change request that we discover conflicts on:

```ts 
{
  state: ChangeRequestState,
  changeRequest: string, // <unleash identifier>#<change request id>
  action: 'edit-strategy',
  eventType: 'conflict-created'
}
```

There's only one action for this for now, but we could expand this event
to things such as strategy deletion, feature archival, in the future.
That said, I'd be happy to take it out.

## Discussion points

### Has the strategy actually been updated?

This does not check whether a strategy has actually changed before
emitting the event, only that you save your strategy changes.

This assumes that most people will simply close the modal by
clicking/tapping outside it or using the escape key instead of pressing
save.

However, it will likely lead to some false positives. If we think that
is an issue, I would suggest adding a check that something in the
strategy has actually changed in a follow-up PR.
2024-01-31 18:56:56 +09:00
Tymoteusz Czech
d77e5391ed
refactor: FlagsChart and FlagsProjectChart components (#6087)
Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2024-01-31 09:50:50 +00:00
Tymoteusz Czech
e6ccd83739
refactor: LineChart component (#6072)
Initial version of a reusable trend chart, with a tooltip and vertical highlight
2024-01-31 10:07:29 +01:00
Jaanus Sellin
d7eb950f3a
chore: remove featureSearchAPI flag (#6081) 2024-01-31 10:01:31 +02:00
Fredrik Strand Oseberg
aae1d0576f
feat: add project flags component (#6070)
This PR adds project flags line chart component
2024-01-31 08:48:10 +01:00
Jaanus Sellin
c6a2303026
chore: remove featureSearchFrontend flag (#6066) 2024-01-31 09:22:26 +02:00
Tymoteusz Czech
c9ac4916e8
feat: executive dashboard responsive grid (#6069)
- unified "Widget" component
- column order dependent on screen width
2024-01-30 17:02:13 +01:00
Ivar Conradi Østhus
38df2e1831
fix: add instanceName to license display (#6065)
## About the changes
- Shows the instanceName from the license
- add new feature flag `enableLicenseChecker` used to enforce a valid
license.
2024-01-30 11:05:27 +01:00
Fredrik Strand Oseberg
7d6d4064a8
feat: connect dashboard static widgets to data (#6062)
This PR connects the static widgets to actual data
2024-01-30 10:07:16 +01:00
Jaanus Sellin
2643ac1356
feat: add CR id to plausible events (#6035)
Added conflict count to CR metrics and CR id.

Something to think about:
There was idea that we can aggregate this data based on CR id, but CR id
is just a number from 0 to x. So it will not be unique across instances.

---------

Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2024-01-30 10:38:39 +02:00
Tymoteusz Czech
46fb40ca08
fix: dashboard layout (#6063)
Align widgets properly on main screen. Responsive view in next PRs
2024-01-30 09:00:06 +01:00
Mateusz Kwasniewski
8a7e65eaa6
refactor: cleanup fix for persistent set (#6060) 2024-01-29 12:33:01 +01:00
Nuno Góis
c1046079dd
chore: actions modal form (#6057)
https://linear.app/unleash/issue/2-1882/ui-add-actions-modal-and-form

Adds actions modal and form, allowing users to create and edit actions.

The main thing that is missing is adding the remaining fields, which
will be included in a later PR.
2024-01-29 11:15:29 +00:00
Nuno Góis
7da9232516
refactor: add temporary ts-expect-error to setGlobalStore in setHiddenEnvironments 2024-01-29 10:26:00 +00:00
Mateusz Kwasniewski
ce219f1b74
fix: hidden envs (#6050) 2024-01-26 17:03:10 +01:00
Tymoteusz Czech
61c6583e24
Feat/dashboard chart tooltip (#6038)
Initial version of new chart tooltip
2024-01-26 14:33:11 +01:00
Fredrik Strand Oseberg
4a025a4b4b
feat: flag widget (#6047)
This PR adds the flag widget:

<img width="333" alt="Skjermbilde 2024-01-26 kl 14 16 19"
src="https://github.com/Unleash/unleash/assets/16081982/57b8c312-fcd5-4a3f-85f7-76514c671912">
2024-01-26 14:22:16 +01:00
Nuno Góis
6ee4d2724e
fix: actions table UI improvements (#6042)
Includes some small fixes and improvements to the actions table UI:
 - Fix webhook icon not properly loading
 - Make actions execution param names bold in the tooltip
 - Make filters param names bold in the tooltip
2024-01-26 09:52:19 +00:00
Nuno Góis
32484460ef
chore: project actions table (#6039)
https://linear.app/unleash/issue/2-1877/ui-add-actions-table

Implements the new project actions table.


![image](https://github.com/Unleash/unleash/assets/14320932/2ce96669-4b8f-46cd-9a87-8b14f0682694)


![image](https://github.com/Unleash/unleash/assets/14320932/d73327f2-1e1a-4d57-8ef8-1f4518c4b5d9)


![image](https://github.com/Unleash/unleash/assets/14320932/27b9ffab-4fff-4fdf-808f-b778987fa198)
2024-01-26 08:20:30 +00:00
Tymoteusz Czech
00b3cbaa8b
Dashboard API hook (#5990)
Data fetching for dashboard

https://linear.app/unleash/issue/1-1969/dashboard-users-chart-api-hook
2024-01-26 09:03:12 +01:00
Fredrik Strand Oseberg
9ac1c88bd4
feat: new user widget (#6037)
Preliminary code for executive dashboard user widget
2024-01-25 14:43:59 +01:00
Jaanus Sellin
b0ecfd4d34
feat: add plausible change-requests-conflicts (#6024) 2024-01-24 21:46:08 +02:00
Christopher Kolstad
17d826ddf4
task: Add banner encouraging edge upgrade (#6018)
Only triggers if there is any rows in client instances that have

    sdk_version: unleash-edge with version < 17.0.0

The function that checks this memoizes the check for 10 minutes to avoid
scanning the client instances table too often.
2024-01-24 14:22:48 +00:00
Jaanus Sellin
e4ca8a3e6c
feat: track search bar events (#6021)
Adding tracking for 2 views, when users use the new search. 

For features view and project view.
2024-01-24 14:23:23 +02:00
Nuno Góis
5d1d428746
chore: project actions tab (#6009)
https://linear.app/unleash/issue/2-1858/add-new-actions-tab-to-project-settings

Adds the new actions tab to project settings, hidden behind the
`automatedActions` feature flag.


![image](https://github.com/Unleash/unleash/assets/14320932/594ed7e0-6e1a-464e-b649-bee368e14aea)
2024-01-24 10:05:04 +00:00
Thomas Heartman
01318b11ea
fix: show the updated value instead of the snapshot value (#5989)
This PR fixes a bug in the displayed value of the conflict list so that
it shows the value it would update to instead of the snapshot value.

In doing so, it updates the logic of the algorithm to:

1. if the snapshot value and the current value are the same, it's not a
conflict (it's an intended change)
2. If the snapshot value differs from the current value, it is a
conflict if and only if the value in the change differs from the current
value. Otherwise, it's not a conflict.

The new test cases are:
- it shows a diff for a property if the snapshot and live version differ
for that property and the changed value is different from the live
version
- it does not show a diff for a property if the live version and the
change have the same value, even if the snapshot differs from the live
version
- it does not show a diff for a property if the snapshot and the live
version are the same
2024-01-24 12:39:41 +04:00
Nuno Góis
13a9b1bc13
fix: project settings title (#6011)
Small fix to the project settings title, correcting it and making it
consistent.
2024-01-24 08:38:13 +00:00
Nuno Góis
7413a1ee1a
chore: add support for project and environment in PermissionGuard (#6008)
I noticed some manual `hasAccess` usages in permission guards due to the
fact that `PermissionGuard` does not accept `project` and `environment`.
This PR adds this support to `PermissionGuard` so we can adapt these
`hasAccess` checks to use it instead, adding consistency and cleaning
things up.

This PR does not include these adaptations however, it only adds the
optional properties to the component. We can address these at a later
point.
2024-01-24 08:20:38 +00:00
Tymoteusz Czech
68eb3dec07
fix: upgrade unleash-client to v5.3.0 (#5800) 2024-01-24 09:12:07 +01:00
Mateusz Kwasniewski
156ba39b42
fix: strategy screen re-rendering table bug (#6006) 2024-01-23 15:49:13 +01:00
Mateusz Kwasniewski
48ef88b4fa
test: variant edit corner cases (#5998) 2024-01-23 10:38:31 +01:00
Mateusz Kwasniewski
3fd735ac7e
fix: move useEffect before renders (#5995) 2024-01-23 09:32:48 +01:00
Mateusz Kwasniewski
5305c868e5
fix: update stickiness between tabs (#5991)
Fixes a bug where stickiness update to the main strategy would not propagate to strategy variants
2024-01-23 08:58:06 +01:00
Nuno Góis
0847c2e52c
chore: add new action hooks (#5992)
https://linear.app/unleash/issue/2-1857/create-new-action-hooks-on-the-frontend

Adds action hooks to help us with CRUD operations on the frontend,
similar to https://github.com/Unleash/unleash/pull/5788 and
https://github.com/Unleash/unleash/pull/5790
2024-01-22 17:31:04 +00:00
Christopher Kolstad
8256c2eaf2
task: Use fine-grained project permissions in frontend (#5974)
Connected to [#5932](https://github.com/Unleash/unleash/pull/5932) -
This starts using the new permissions in addition to the old
UPDATE_PROJECT permission. That way, if you're happy with
UPDATE_PROJECT, you don't need to change.

However, you can now add more fine grained permissions for both READ and
WRITE operations.
2024-01-22 15:34:10 +01:00
Tymoteusz Czech
b7483e8989
chore: generate frontend openapi types (#5988)
Update for dashboard types
2024-01-22 14:16:07 +01:00
Thomas Heartman
fd91cd1771
fix: don't use kebab-case for properties (#5979)
These are apparently unsupported in css objects and using the camelCased (or PascalCased) versions was the suggested fix.
2024-01-22 12:26:25 +00:00
Fredrik Strand Oseberg
60d2176efa
feat: add option to use variants with feedback (#5986)
This PR will allow us to use a feature flag with variants to control
whether or not we should show the comments field of the feedback form.
This will allow us to see whether we can increase feedback collection if
we reduce the load on the customer.
2024-01-22 13:14:27 +01:00
Mateusz Kwasniewski
055bab8e7c
feat: include number of flags chart (#5987) 2024-01-22 12:15:49 +01:00
Mateusz Kwasniewski
c9b99f41cf
feat: number of flags component (#5984) 2024-01-22 11:47:15 +01:00
Thomas Heartman
312a40ce1c
refactor: prefer 'span' to 'div' in the badge element (#5981)
This changes the badge element to prefer spans instead of divs. The
primary difference between spans and divs is that spans are inline and
divs are block. Styling-wise, we override the display property anyway.
Semantically, most all of the badges are used inline instead of on
their own block level, so this change seems sensible. You can still
provide `div` as the `as` prop if you need to.
2024-01-22 14:44:26 +04:00
Tymoteusz Czech
ec1439e171
Feat: dashboard users chart frontend (#5980)
Users chart with tooltip and legend
2024-01-22 11:07:38 +01:00
Thomas Heartman
edf3cad092
fix: add keys to the features cell component (#5978)
This PR adds the `key` property to the features cell component where it
renders lists of flags. This fixes a few rendering errors we've been
getting in the console.
2024-01-22 07:57:38 +00:00
Thomas Heartman
f7c8180145
Chore: omit snapshot property from event payload (#5972)
This PR hides the "snapshot" data from the diff overview we show in the
UI in a change request.
2024-01-22 11:13:49 +04:00
Thomas Heartman
0bb709a718
feat: show changes that would be overwritten in change request overview UI (#5964)
This PR adds a first, rough iteration of what it could look like to show
changes that would be overwritten by applying a PR.

The changes are listed in a table (semantically; looks more like a list
visually) and show the property, the current live value and the version
that you have in your changes. The changes are hidden by default, but
can be shown by expanding a details element.

@nicolaesocaciu Suggested that we merge this version for now and iterate
on the design later.

Here's what it looks like closed:

![image](https://github.com/Unleash/unleash/assets/17786332/3a641642-0537-4e7a-aeca-b3d3df6b8e31)

Here's what it looks like with a typical change load:

![image](https://github.com/Unleash/unleash/assets/17786332/b7aa7265-d1c7-4b6b-a9a2-f58cb966f25c)


Here's what it looks like if you change more or less every property
changed:

![image](https://github.com/Unleash/unleash/assets/17786332/4d94ab69-86ed-4c3e-be6a-6890c654e37e)
2024-01-22 11:13:38 +04:00
Thomas Heartman
01a38becb3
fix: handle title diffing correctly in strategy change diffs (#5971)
A strategy title can be either an empty string or undefined on the
type we use in the frontend. In the snapshot it can be an empty
string, null (presumably), and undefined.

This change updates the diffing logic to handle the various title diff
cases correctly. It also updates the type used for the snapshot to
reflect this.
2024-01-19 18:56:46 +04:00
Nuno Góis
77fcc9e840
fix: incoming webhooks form UI adjustments (#5973)
Small UI improvements in the new incoming webhooks form after aligning
with @nicolaesocaciu.


![image](https://github.com/Unleash/unleash/assets/14320932/6f829863-ab94-4d35-a1d7-d8722e8ec159)
2024-01-19 14:50:54 +00:00
andreas-unleash
dda0fd3fd4
Fix: losing redirect on provider login (#5970)
Fixes the initial redirect to take into account the value from session
storage

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-01-19 14:31:42 +02:00
Mateusz Kwasniewski
84e341bbb7
feat: show select all button when more than 1 item (#5965) 2024-01-19 11:26:03 +01:00
andreas-unleash
a096b2a485
fix: store redirect to localStorage to avoid loss of redirect (#5929)
Stores `redirect` param in localStorage in the Authentication component.
Retrieves the `redirect` param from localStorage at the Login screen if
it is not there in the url.

This will solve losing the redirect information all provider logins

Closes #
[1-1890](https://linear.app/unleash/issue/1-1890/capture-path-before-logging-in-and-redirect-to-it-if-there-and-custom)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-01-19 11:32:26 +02:00
Fredrik Strand Oseberg
4ee2acb3aa
fix: add more comprehensive metrics for feedback (#5967)
Add more comprehensive tracking of feedback
2024-01-19 10:23:40 +01:00
Thomas Heartman
c69137a1ee
feat: add algorithm to detect what strategy changes would be overwritten by applying a CR (#5963)
This change adds an algorithm with tests for detecting what changes
would be overwritten by applying a CR.

Test cases:
- It compares strategies regardless of order of keys in the objects.
This ensures that two strategies with the same content but different
order of keys are compared correctly.
- It treats `undefined` or missing segments in old config as equal to
`[]` in change
- It treats `undefined` or missing strategy variants in old config and
change as equal to `[]`
- It lists changes in a sorted list with the correct values
- It ignores object order on nested objects. Similar to the first
point, this does order-insensitive comparison for nested objects (such
as params and constraints).
2024-01-19 13:08:08 +04:00
Mateusz Kwasniewski
b00909db3f
test: show array param decoder (#5955) 2024-01-19 09:27:47 +01:00
Mateusz Kwasniewski
22037cb0f2
fix: normalize hours back to prevent freezing UI (#5953) 2024-01-19 09:27:31 +01:00
Mateusz Kwasniewski
1fd7749ae7
fix: prevent jumping columns in search view (#5950) 2024-01-18 14:37:57 +01:00
Mateusz Kwasniewski
105747293e
fix: show pagination when enough items (#5948) 2024-01-18 14:36:05 +01:00
Nuno Góis
3dd188e77c
refactor: shared url_safe_basic constant (#5952)
Uses a new `URL_SAFE_BASIC` regex constant that checks for characters
that are commonly used in URL path sections: alphanumeric lowercase
characters, dashes and underscores.

This will allow us to re-use this constant in our server-side
validation.
2024-01-18 12:33:33 +00:00
Nuno Góis
5b56fac66f
Chore inc webhooks modal form (#5938)
https://linear.app/unleash/issue/2-1818/ui-create-incoming-webhook-newedit-modal

Adds the incoming webhooks modal form, which allows users to create and
edit incoming webhooks, along with their respective tokens.

Follows a logic similar to service accounts and their tokens, and tries
to use the newest form validation flow that we implemented in the roles
form.


![image](https://github.com/Unleash/unleash/assets/14320932/5d37a72e-2777-4c8b-b71b-3c0610959a52)
2024-01-18 11:38:05 +00:00
Tymoteusz Czech
4b02d6aa9c
Executive Dashboard page setup (#5949) 2024-01-18 12:32:25 +01:00
Mateusz Kwasniewski
d3215335c9
feat: metrics periods expressed in days (#5928) 2024-01-18 11:54:20 +01:00
Mateusz Kwasniewski
f5cf118b12
fix: precise selected all chips check (#5945) 2024-01-18 11:53:56 +01:00
Mateusz Kwasniewski
567099a15b
fix: table loader (#5937) 2024-01-18 11:26:42 +01:00
andreas-unleash
60813acb09
fix: make the conflcit email template button conditionally render (#5931)
Makes the schedule conflict email button conditional to having the link
present.

Closes #
[1-1950](https://linear.app/unleash/issue/1-1950/modify-the-template-to-make-the-new-button-conditional)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-01-17 13:26:07 +00:00
Fredrik Strand Oseberg
1deee10317
Feat/disabled strategies (#5930)
This PR makes disabled strategies more prominent in the UI:

<img width="1031" alt="Skjermbilde 2024-01-17 kl 11 26 11"
src="https://github.com/Unleash/unleash/assets/16081982/4a07c0aa-8f86-4854-829e-1088abecfb4e">
2024-01-17 13:20:39 +01:00
Mateusz Kwasniewski
5fb2ac8054
fix: select default application based on timespan (#5927) 2024-01-17 12:15:03 +01:00
Christopher Kolstad
2b1111044f
feat: added killswitch for admin tokens (#5905)
Since we've now added PAT's we really do recommend switching to those,
or for enterprises, we recommend using service accounts.

Admin tokens have an obvious disadvantage in that they're not connected
to any user, so actions performed by them are harder to audit.

This PR adds a killswitch for turning it off, in preparation for
deprecating them and ultimately removing them in the future.
2024-01-17 10:27:36 +01:00
Mateusz Kwasniewski
6a55964ce8
fix: metrics apps should be selected from the longest time span (#5923) 2024-01-17 09:51:59 +01:00
renovate[bot]
f61750a755
chore(deps): update dependency debounce to v2 (#5901)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [debounce](https://togithub.com/sindresorhus/debounce) | [`1.2.1` ->
`2.0.0`](https://renovatebot.com/diffs/npm/debounce/1.2.1/2.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/debounce/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/debounce/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/debounce/1.2.1/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/debounce/1.2.1/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>sindresorhus/debounce (debounce)</summary>

###
[`v2.0.0`](https://togithub.com/sindresorhus/debounce/releases/tag/v2.0.0)

[Compare
Source](https://togithub.com/sindresorhus/debounce/compare/1.2.1...v2.0.0)

##### Breaking

- Require Node.js 18 and modern browsers
[`2872fb8`](https://togithub.com/sindresorhus/debounce/commit/2872fb8)
- Removed support for
[component](https://togithub.com/componentjs/component) (now defunct
project)

##### Improvements

- Add TypeScript types
[`2872fb8`](https://togithub.com/sindresorhus/debounce/commit/2872fb8)
- Protect against improper use in classes
[`95eef87`](https://togithub.com/sindresorhus/debounce/commit/95eef87)

##### Fixes

- Fix recursive callback args
([#&#8203;32](https://togithub.com/sindresorhus/debounce/issues/32))
[`c997759`](https://togithub.com/sindresorhus/debounce/commit/c997759)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2024-01-17 10:29:17 +02:00
Fredrik Strand Oseberg
9d32bf53eb
fix: refactor autosave to use the id to resolve the constraint (#5917)
Use id to resolve autosave constraints now that we have consistent id
references
2024-01-17 08:51:54 +01:00
Nuno Góis
d2366a8aa1
fix: improve SSO default role resolution (#5916)
This improves the role resolution in the value of the default root role,
preventing a bug where settings saved
pre-https://github.com/Unleash/unleash/pull/5887 would show an empty
default root role in the dropdown.

Also makes the role update more robust.
2024-01-16 16:08:46 +00:00
Mateusz Kwasniewski
3bebc11fb2
feat: adjust height on applications list in metrics (#5918) 2024-01-16 16:21:55 +01:00
Fredrik Strand Oseberg
967ee13e62
fix: add symbols as constraint ids (#5913)
This PR adds uuids as ids using a symbol in order to make sure we only
use this to keep internal order in the viritual DOM. This makes us able
to have predictable mutable lists on the frontend, and makes it easy to
not pass this property along to the backend.
2024-01-16 13:47:04 +01:00
Mateusz Kwasniewski
dfeaea8ee9
feat: hours back feature metrics tracking (#5904) 2024-01-16 10:30:06 +01:00
Nuno Góis
3b5b1ec020
chore: add tokens column to incoming webhooks table (#5903)
https://linear.app/unleash/issue/2-1827/add-remaining-columns-to-the-incoming-webhooks-table

Adds the "tokens" column to the incoming webhooks table.

Also includes some slight adjustments to the table, including a fix to
center the actions button.


![image](https://github.com/Unleash/unleash/assets/14320932/2ca63b17-c20e-41d0-9065-db8bcad33c24)
2024-01-16 08:43:14 +00:00
Fredrik Strand Oseberg
9d370ad85d
Fix/autosave on delete (#5899)
This PR will make FeatureStrategyConstraints use the value coming from
the setState function instead of closing over a stale value.
2024-01-16 09:23:35 +01:00
Mateusz Kwasniewski
6cfb7b4fb8
feat: feature metrics table timezone (#5880) 2024-01-15 15:31:10 +01:00
Mateusz Kwasniewski
9ac8a466ab
feat: select all applications (#5897) 2024-01-15 15:30:35 +01:00
Nuno Góis
0ba37e8622
feat: list all root roles in SSO config (#5887)
Lists all root roles in SSO config, including custom root roles.


![image](https://github.com/Unleash/unleash/assets/14320932/30114169-4184-4a22-9671-c7041b750d1c)
2024-01-15 13:13:29 +00:00
Nuno Góis
22acadf4cc
fix: role form sluggishness (#5888)
This seems to improve the performance in the role form while still
maintaining the same validation logic.

A big factor was the memoization of the categories calculation and
respective elements, which is especially impactful when there are many
environments.
2024-01-15 08:37:53 +00:00
Fredrik Strand Oseberg
ebd673e9fc
fix: use the new method (#5894)
This PR adds the new setValuesWithRecord method to the deletion of
values. In addition, we'll auto save when using the undo button aswell.
2024-01-15 09:28:19 +01:00
Fredrik Strand Oseberg
f7b285d340
feat: add undo (#5879)
This PR adds undo functionality so you can restore the state of your
constraint if you make a mistake. We also amend the autosave
functionality to only apply when values are changed and you have a valid
value. See demo:

https://www.loom.com/share/da704da8aee94ac18d4caae697426802
2024-01-15 08:47:59 +01:00
Thomas Heartman
a4c1161285
chore: fix lints on main (#5877)
These were introduced by prs created before the new biome update.
2024-01-12 11:38:08 +00:00
Thomas Heartman
8ae267ea25
feat: show suspended schedules in timeline (#5873)
This PR updates the timeline to show suspended schedules. It also adds
"schedule failed" when the schedule has failed.

<img width="465" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/aabbee02-b407-4653-959b-92bec8a1fa66">

<img width="465" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/7242c34a-1b1e-4efc-a778-a360e3bc4428">
2024-01-12 16:50:08 +05:30
Mateusz Kwasniewski
c816ffd49d
feat: aggregate metrics for the same timestamp (#5876) 2024-01-12 12:19:30 +01:00
Thomas Heartman
a88763283a
feat: show suspended schedule states in review status (#5872)
Updates the change request review status box to handle suspended
schedules.

<img width="852" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/2af52b6d-d821-4d30-9166-e8e76ead120d">
2024-01-12 16:48:58 +05:30
Thomas Heartman
aecc0b54a1
feat: show suspended states in change request badge (#5871)
This updates the CR badge to show suspended states correctly.

<img width="370" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/f678059b-f72a-46ef-9111-0fc90f228fc8">
2024-01-12 16:48:34 +05:30
Christopher Kolstad
5a3bb1ffc3
Biome1.5.1 (#5867)
Lots of work here, mostly because I didn't want to turn off the
`noImplicitAnyLet` lint. This PR tries its best to type all the untyped
lets biome complained about (Don't ask me how many hours that took or
how many lints that was >200...), which in the future will force test
authors to actually type their global variables setup in `beforeAll`.

---------

Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2024-01-12 09:25:59 +00:00
Mateusz Kwasniewski
e27a578fab
feat: separate UI flag and backend flag for extended metrics (#5875) 2024-01-12 10:20:03 +01:00
Thomas Heartman
39145e2617
refactor: use union types for change request types (#5870)
This changes the two interfaces IChangeRequest and
IChangeRequestSchedule to be union types instead of interfaces. It also
extracts the constituents of those union types into proper types
themselves (so that they can be used in function type signatures etc).
It also updates the type names.

This turned out to be more work than I had imagined, but I think the end
result pays off, giving us more type safety and control.

I wanted to use just `ChangeRequest` for the IChangeRequest type, but
that caused issues due to naming collisions with the `ChangeRequest`
component that we have, causing tests to fail. I've named it
`ChangeRequestType` as a potential solution, but suggestions are
welcome.

The relevant changes are in
`frontend/src/component/changeRequest/changeRequest.types.ts`.
Everything else is updated references and some necessary refactoring to
respect the new types.
2024-01-12 13:15:43 +05:30
Mateusz Kwasniewski
6ba4591c7f
feat: select multiple apps (#5860) 2024-01-12 08:33:52 +01:00
Thomas Heartman
be579ba63b
chore: update orval schemas (#5858)
This PR updates Orval schemas. The motivation is to get the new schemas
for schedule suspension, but as always, we get everything else too.
2024-01-11 18:18:44 +05:30
Nuno Góis
b496990f79
chore: add no unused imports biome rule (#5855)
Adds a Biome rule for "no unused imports", which is something we
sometimes have trouble catching.

We're adding this as a warning for now. It is safely and easily fixable
with `yarn lint:fix`.


![image](https://github.com/Unleash/unleash/assets/14320932/fd84dea8-6b20-4ba5-bfd8-047b9dcf2bff)

![image](https://github.com/Unleash/unleash/assets/14320932/990bb0b0-760a-4c5e-8136-d957e902bf0b)
2024-01-11 12:44:05 +00:00
Nuno Góis
7af91c7e9d
chore: incoming webhooks table (#5837)
https://linear.app/unleash/issue/2-1817/ui-create-an-incoming-webhooks-configuration-page

This adds an incoming webhooks page with the respective table. We plan
on possibly extending the table with a couple more columns in a future
PR.

This allows us:
 - View all configured incoming webhooks;
 - Copy their URL to the clipboard;
 - Remove them;

For "new" and "edit" operations we still need the incoming webhooks
form/dialog, coming in a future PR.

**Note**: Even though we are showing the full URL in the table for now,
we may end up truncating its start in the future (e.g.
`.../api/incoming-webhook/<webhook-name>` - This decision depends on how
it will look like after the rest of the columns are added.


![image](https://github.com/Unleash/unleash/assets/14320932/1cac3286-818f-4967-8686-43f78aa6bd33)
2024-01-11 12:05:14 +00:00
Fredrik Strand Oseberg
2a723ea9e8
fix: remove empty variants when changing tabs (#5850)
This PR makes a change to how variants work in the new setup. Variants
will now:

* Be removed if you change tab or unmount the component and it has no
name
* Moved StrategyVariants into a separate component to isolate this
change
* Add error handling around onSubmit and only trigger feedback if it's
successful
2024-01-11 10:43:29 +01:00
Mateusz Kwasniewski
3a2d4ae60b
feat: daily metrics display (#5836) 2024-01-11 10:39:58 +01:00
renovate[bot]
2bff3f010b
chore(deps): update material-ui monorepo (#4403)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@mui/icons-material](https://mui.com/material-ui/material-icons/)
([source](https://togithub.com/mui/material-ui/tree/HEAD/packages/mui-icons-material))
| [`5.11.9` ->
`5.15.2`](https://renovatebot.com/diffs/npm/@mui%2ficons-material/5.11.9/5.15.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@mui%2ficons-material/5.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@mui%2ficons-material/5.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@mui%2ficons-material/5.11.9/5.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@mui%2ficons-material/5.11.9/5.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@mui/lab](https://mui.com/material-ui/about-the-lab/)
([source](https://togithub.com/mui/material-ui/tree/HEAD/packages/mui-lab))
| [`5.0.0-alpha.120` ->
`5.0.0-alpha.158`](https://renovatebot.com/diffs/npm/@mui%2flab/5.0.0-alpha.120/5.0.0-alpha.158)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@mui%2flab/5.0.0-alpha.158?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@mui%2flab/5.0.0-alpha.158?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@mui%2flab/5.0.0-alpha.120/5.0.0-alpha.158?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@mui%2flab/5.0.0-alpha.120/5.0.0-alpha.158?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@mui/material](https://mui.com/material-ui/)
([source](https://togithub.com/mui/material-ui/tree/HEAD/packages/mui-material))
| [`5.11.10` ->
`5.15.2`](https://renovatebot.com/diffs/npm/@mui%2fmaterial/5.11.10/5.15.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@mui%2fmaterial/5.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@mui%2fmaterial/5.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@mui%2fmaterial/5.11.10/5.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@mui%2fmaterial/5.11.10/5.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@mui/x-date-pickers](https://mui.com/x/react-date-pickers/)
([source](https://togithub.com/mui/mui-x/tree/HEAD/packages/x-date-pickers))
| [`6.18.3` ->
`6.18.6`](https://renovatebot.com/diffs/npm/@mui%2fx-date-pickers/6.18.3/6.18.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@mui%2fx-date-pickers/6.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@mui%2fx-date-pickers/6.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@mui%2fx-date-pickers/6.18.3/6.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@mui%2fx-date-pickers/6.18.3/6.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>mui/material-ui (@&#8203;mui/icons-material)</summary>

###
[`v5.15.2`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#5152)

[Compare
Source](https://togithub.com/mui/material-ui/compare/v5.15.1...v5.15.2)

<!-- generated comparing v5.15.1..master -->

*Dec 25, 2023*

A big thanks to the 13 contributors who made this release possible. Here
are some highlights :

- 🚀 Added support for callbacks in the [variant's props
definition](https://mui.com/material-ui/customization/theme-components/#creating-new-component-variants)
([#&#8203;40094](https://togithub.com/mui/material-ui/issues/40094))
[@&#8203;mnajdova](https://togithub.com/mnajdova)
- 💫 Published a
[blogpost](https://mui.com/blog/2023-material-ui-v6-and-beyond/) for the
2024's plan about Material UI

##### `@mui/material@5.15.1`

- ​<!-- 31 -->\[Badge] Use the variants API in the styled call
([#&#8203;40213](https://togithub.com/mui/material-ui/issues/40213))
[@&#8203;mnajdova](https://togithub.com/mnajdova)
- ​<!-- 04 -->\[Paper] Add missing Paper classes descriptions
([#&#8203;40300](https://togithub.com/mui/material-ui/issues/40300))
[@&#8203;sai6855](https://togithub.com/sai6855)

##### `@mui/system@5.15.1`

- ​<!-- 03 -->Support props callback in the variant's definition
([#&#8203;40094](https://togithub.com/mui/material-ui/issues/40094))
[@&#8203;mnajdova](https://togithub.com/mnajdova)

##### `@mui/base@5.0.0-beta.29`

- ​<!-- 29 -->\[Popup] Use context-based transition API
([#&#8203;39326](https://togithub.com/mui/material-ui/issues/39326))
[@&#8203;michaldudak](https://togithub.com/michaldudak)
- ​<!-- 28 -->\[Popup] Popup no longer opens outside viewport
([#&#8203;39827](https://togithub.com/mui/material-ui/issues/39827))
[@&#8203;adamhylander](https://togithub.com/adamhylander)
- ​<!-- 27 -->\[useSelect] Refactor to use DOM focus management instead
of active descendant
([#&#8203;39675](https://togithub.com/mui/material-ui/issues/39675))
[@&#8203;DiegoAndai](https://togithub.com/DiegoAndai)

##### `@mui/material-next@6.0.0-alpha.115`

- ​<!-- 15 -->\[material-next]\[Divider]Divider ts support
([#&#8203;40307](https://togithub.com/mui/material-ui/issues/40307))
[@&#8203;sai6855](https://togithub.com/sai6855)

##### Docs

- ​<!-- 30 -->\[base-ui] Fix form submission Select demo
([#&#8203;40014](https://togithub.com/mui/material-ui/issues/40014))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)
- ​<!-- 24 -->\[blog] Add Material UI v6 and beyond blog post
([#&#8203;40242](https://togithub.com/mui/material-ui/issues/40242))
[@&#8203;mnajdova](https://togithub.com/mnajdova)
- ​<!-- 10 -->\[material-ui] Fix broken links in the All components page
([#&#8203;40303](https://togithub.com/mui/material-ui/issues/40303))
[@&#8203;muazaqdas](https://togithub.com/muazaqdas)
- ​<!-- 09 -->\[material-ui] Fix broken links on the All components page
([#&#8203;40279](https://togithub.com/mui/material-ui/issues/40279))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 08 -->\[material-ui] Add aria-current for nav tabs demo
([#&#8203;39594](https://togithub.com/mui/material-ui/issues/39594))
[@&#8203;Kimzify](https://togithub.com/Kimzify)
- ​<!-- 07 -->\[material-ui] Add an "All components" page
([#&#8203;40256](https://togithub.com/mui/material-ui/issues/40256))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 06 -->\[material-ui]\[Tooltip] Add demo to show how to change
distance between tooltip and its anchor
([#&#8203;40087](https://togithub.com/mui/material-ui/issues/40087))
[@&#8203;anle9650](https://togithub.com/anle9650)

##### Core

- ​<!-- 26 -->\[blog] Fix 301 redirection
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 25 -->\[blog] Reduce max image size
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 23 -->\[code-infra] Extract Babel macro from mui-utils
([#&#8203;40262](https://togithub.com/mui/material-ui/issues/40262))
[@&#8203;michaldudak](https://togithub.com/michaldudak)
- ​<!-- 22 -->\[core] Simplify a bit the release instructions
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 21 -->\[core] Push force to deploy is not unexpected
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 20 -->\[core] Fix CSS2 vs. CSS3 ::after syntax
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 19 -->\[core] Fix CSS2 vs. CSS3 ::before syntax
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 05 -->\[core] Use direct import from utils package
([#&#8203;40254](https://togithub.com/mui/material-ui/issues/40254))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)
- ​<!-- 18 -->\[core] Yaml format match most common convention
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 17 -->\[core] Polish docs-feedback issue template
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 16 -->\[core] Pin Node version on GitHub Actions to 18.18
([#&#8203;40187](https://togithub.com/mui/material-ui/issues/40187))
[@&#8203;michaldudak](https://togithub.com/michaldudak)
- ​<!-- 14 -->\[docs] Fix SEO regression
([#&#8203;40306](https://togithub.com/mui/material-ui/issues/40306))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 13 -->\[docs] Fix docs redirections
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 12 -->\[docs] Update the Contributing guide to give more
guidance on documentation
([#&#8203;40274](https://togithub.com/mui/material-ui/issues/40274))
[@&#8203;samuelsycamore](https://togithub.com/samuelsycamore)
- ​<!-- 11 -->\[docs-infra] Add polish to the inline code block
([#&#8203;40260](https://togithub.com/mui/material-ui/issues/40260))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 02 -->\[website] Update Gold sponsors: add RxDB, standardize
formatting
([#&#8203;40273](https://togithub.com/mui/material-ui/issues/40273))
[@&#8203;samuelsycamore](https://togithub.com/samuelsycamore)
- ​<!-- 01 -->\[website] Revert change to homepage SEO attributes
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)

All contributors of this release in alphabetical order:
[@&#8203;adamhylander](https://togithub.com/adamhylander),
[@&#8203;anle9650](https://togithub.com/anle9650),
[@&#8203;danilo-leal](https://togithub.com/danilo-leal),
[@&#8203;DiegoAndai](https://togithub.com/DiegoAndai),
[@&#8203;Kimzify](https://togithub.com/Kimzify),
[@&#8203;michaldudak](https://togithub.com/michaldudak),
[@&#8203;mnajdova](https://togithub.com/mnajdova),
[@&#8203;muazaqdas](https://togithub.com/muazaqdas),
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari),
[@&#8203;sai6855](https://togithub.com/sai6855),
[@&#8203;samuelsycamore](https://togithub.com/samuelsycamore),
[@&#8203;siriwatknp](https://togithub.com/siriwatknp),
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)

###
[`v5.15.1`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#5151)

[Compare
Source](https://togithub.com/mui/material-ui/compare/v5.15.0...v5.15.1)

<!-- generated comparing v5.15.0..master -->

*Dec 19, 2023*

A big thanks to the 15 contributors who made this release possible.
This release was mostly about 🐛 bug fixes and 📚 documentation
improvements.

##### `@mui/material@5.15.1`

- ​<!-- 13 -->\[CardActions]\[DialogActions] Apply margin for all
children except for 1st child
([#&#8203;40168](https://togithub.com/mui/material-ui/issues/40168))
[@&#8203;sai6855](https://togithub.com/sai6855)
- ​<!-- 03 -->\[TablePagination] Add ability to change icons in
TablePaginationActions using `slots` and `slotProps`
([#&#8203;33797](https://togithub.com/mui/material-ui/issues/33797))
[@&#8203;pratikkarad](https://togithub.com/pratikkarad)
- ​<!-- 13 -->\[CssVarsProvider] Fix HSL breaking button styles
([#&#8203;39869](https://togithub.com/mui/material-ui/issues/39869))
[@&#8203;gitstart](https://togithub.com/gitstart)

##### `@mui/joy@5.0.0-beta.19`

- ​<!-- 05 -->\[FormControl] Fix issue with the conditional setting of
`htmlFor` and `id` attributes not functioning properly for form labels
([#&#8203;40180](https://togithub.com/mui/material-ui/issues/40180))
[@&#8203;ReaZzy](https://togithub.com/ReaZzy)
- ​<!-- 04 -->\[typescript] Address TypeScript issue with custom zIndex
not functioning
([#&#8203;40133](https://togithub.com/mui/material-ui/issues/40133))
[@&#8203;qiweiii](https://togithub.com/qiweiii)

##### `@mui/styled-engine-sc@6.0.0-alpha.9`

- ​<!-- 02 -->\[typescript] Fix `theme` being of type any
([#&#8203;40200](https://togithub.com/mui/material-ui/issues/40200))
[@&#8203;mnajdova](https://togithub.com/mnajdova)

##### Docs

- ​<!-- 09 -->\[joy-ui] Fix typo in the CSS baseline page
([#&#8203;40222](https://togithub.com/mui/material-ui/issues/40222))
[@&#8203;possibilities](https://togithub.com/possibilities)
- ​<!-- 08 -->\[joy-ui] Document missing Autocomplete props
([#&#8203;39979](https://togithub.com/mui/material-ui/issues/39979))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)
- ​<!-- 10 -->\[joy-ui] Fix typo about Typography levels
([#&#8203;40230](https://togithub.com/mui/material-ui/issues/40230))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 07 -->\[material-ui] Update the related projects page to list
`mui-tiptap` for rich text
([#&#8203;40216](https://togithub.com/mui/material-ui/issues/40216))
[@&#8203;sjdemartini](https://togithub.com/sjdemartini)
- ​<!-- 06 -->\[material-ui] Fix typo in the Next.js integration page
([#&#8203;40209](https://togithub.com/mui/material-ui/issues/40209))
[@&#8203;s8990](https://togithub.com/s8990)

##### Core

- ​<!-- 14 -->\[blog] Fix access to Notion without an account
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 12 -->\[core] Update workflows and issue templates to reflect
the updated label
([#&#8203;40197](https://togithub.com/mui/material-ui/issues/40197))
[@&#8203;MBilalShafi](https://togithub.com/MBilalShafi)
- ​<!-- 11 -->\[docs] Replace Twitter with X
([#&#8203;40193](https://togithub.com/mui/material-ui/issues/40193))
[@&#8203;mbrookes](https://togithub.com/mbrookes)
- ​<!-- 10 -->\[docs-infra] Uplift the Algolia search modal design
([#&#8203;40186](https://togithub.com/mui/material-ui/issues/40186))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 01 -->\[website] Update product descriptions and social preview
images
([#&#8203;32181](https://togithub.com/mui/material-ui/issues/32181))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)

All contributors of this release in alphabetical order:
[@&#8203;danilo-leal](https://togithub.com/danilo-leal),
[@&#8203;gitstart](https://togithub.com/gitstart),
[@&#8203;MBilalShafi](https://togithub.com/MBilalShafi),
[@&#8203;mbrookes](https://togithub.com/mbrookes),
[@&#8203;mnajdova](https://togithub.com/mnajdova),
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari),
[@&#8203;possibilities](https://togithub.com/possibilities),
[@&#8203;pratikkarad](https://togithub.com/pratikkarad),
[@&#8203;qiweiii](https://togithub.com/qiweiii),
[@&#8203;ReaZzy](https://togithub.com/ReaZzy),
[@&#8203;s8990](https://togithub.com/s8990),
[@&#8203;sai6855](https://togithub.com/sai6855),
[@&#8203;sjdemartini](https://togithub.com/sjdemartini),
[@&#8203;zanivan](https://togithub.com/zanivan),
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)

###
[`v5.15.0`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#5150)

[Compare
Source](https://togithub.com/mui/material-ui/compare/v5.14.19...v5.15.0)

<!-- generated comparing v5.14.20..master -->

*Dec 11, 2023*

A big thanks to the 15 contributors who made this release possible. Here
are some highlights :

- 🚀 Added [a new package for a better Material UI integration with
Next.js](https://mui.com/material-ui/guides/nextjs)
([#&#8203;39947](https://togithub.com/mui/material-ui/issues/39947))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)

##### `@mui/material@5.15.0`

- ​<!-- 12 -->Revert "\[Select]\[material-ui] Add name to hidden input
element"
([#&#8203;40174](https://togithub.com/mui/material-ui/issues/40174))
[@&#8203;mj12albert](https://togithub.com/mj12albert)
- ​<!-- 02 -->\[material-ui] Refactor ComponentsVariants type into a
generic
([#&#8203;39623](https://togithub.com/mui/material-ui/issues/39623))
[@&#8203;blakenetz](https://togithub.com/blakenetz)

##### `@mui/material-nextjs@5.15.0`

- ​<!-- 01 -->\[material-ui] Add new Next.js integration package
([#&#8203;39947](https://togithub.com/mui/material-ui/issues/39947))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)

##### `@mui/material-next@6.0.0-alpha.113`

- ​<!-- 11 -->\[Badge]\[material-next] Apply new OwnerState type to
Badge
([#&#8203;40119](https://togithub.com/mui/material-ui/issues/40119))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)
- ​<!-- 06 -->\[material-next]\[ButtonGroup] Change `ButtonGroup` files
to ts
([#&#8203;39794](https://togithub.com/mui/material-ui/issues/39794))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)

##### `@mui/icons-material@5.15.0`

- ​<!-- 05 -->\[icons] Add X logo
([#&#8203;38811](https://togithub.com/mui/material-ui/issues/38811))
[@&#8203;abreel](https://togithub.com/abreel)

##### `@mui/base@5.0.0-beta.27`

- ​<!-- 10 -->\[base-ui] useControllableReducer warns when controlled
props become uncontrolled (and vice versa)
([#&#8203;39096](https://togithub.com/mui/material-ui/issues/39096))
[@&#8203;mj12albert](https://togithub.com/mj12albert)

##### `@mui/joy@5.0.0-beta.18`

- ​<!-- 04 -->\[joy-ui]\[Radio]\[Input] Fix inheritance of disabled prop
([#&#8203;39934](https://togithub.com/mui/material-ui/issues/39934))
[@&#8203;sai6855](https://togithub.com/sai6855)

##### `@mui/lab@5.0.0-alpha.156`

- ​<!-- 03 -->\[lab]\[LoadingButton] LoadingButton now inherits props
from ButtonGroup
([#&#8203;39679](https://togithub.com/mui/material-ui/issues/39679))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)

##### Docs

- ​<!-- 09 -->\[docs] Fix reference to non-existent checkmark in
supported-components.md
([#&#8203;40056](https://togithub.com/mui/material-ui/issues/40056))
[@&#8203;mbrookes](https://togithub.com/mbrookes)
- ​<!-- 09 -->\[docs]\[base-ui] Add copy button & primary color picker
to the component gallery page
([#&#8203;39884](https://togithub.com/mui/material-ui/issues/39884))
[@&#8203;mnajdova](https://togithub.com/mnajdova)
- ​<!-- 08 -->\[docs-infra] Update CodeSandbox links
([#&#8203;39992](https://togithub.com/mui/material-ui/issues/39992))
[@&#8203;anle9650](https://togithub.com/anle9650)
- ​<!-- 04 -->\[material-ui]\[docs] Fix wrong root element for emotion
styles in shadow DOM
([#&#8203;35326](https://togithub.com/mui/material-ui/issues/35326))
[@&#8203;EloB](https://togithub.com/EloB)
- ​<!-- 03 -->\[material-ui]\[docs] Move the responsive font charts from
recharts to MUI X
([#&#8203;40097](https://togithub.com/mui/material-ui/issues/40097))
[@&#8203;alexfauquette](https://togithub.com/alexfauquette)
- ​<!-- 02 -->\[joy-ui]\[templates] Remove outdated code
([#&#8203;40095](https://togithub.com/mui/material-ui/issues/40095))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 05 -->\[material-ui]\[docs]\[Popper] Update Positioned Popper
demo styles
([#&#8203;40170](https://togithub.com/mui/material-ui/issues/40170))
[@&#8203;sai6855](https://togithub.com/sai6855)

##### Core

- ​<!-- 08 -->\[blog] Add a Phuket retreat blog post
([#&#8203;40055](https://togithub.com/mui/material-ui/issues/40055))
[@&#8203;mikailaread](https://togithub.com/mikailaread)
- ​<!-- 07 -->\[blog] Adjust the latest MUI X blog post
([#&#8203;40046](https://togithub.com/mui/material-ui/issues/40046))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 05 -->\[core] Migrate from tslint to eslint
([#&#8203;40020](https://togithub.com/mui/material-ui/issues/40020))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)

All contributors of this release in alphabetical order:
[@&#8203;abreel](https://togithub.com/abreel),
[@&#8203;alexfauquette](https://togithub.com/alexfauquette),
[@&#8203;anle9650](https://togithub.com/anle9650),
[@&#8203;blakenetz](https://togithub.com/blakenetz),
[@&#8203;danilo-leal](https://togithub.com/danilo-leal),
[@&#8203;EloB](https://togithub.com/EloB),
[@&#8203;lhilgert9](https://togithub.com/lhilgert9),
[@&#8203;mbrookes](https://togithub.com/mbrookes),
[@&#8203;mikailaread](https://togithub.com/mikailaread),
[@&#8203;mj12albert](https://togithub.com/mj12albert),
[@&#8203;mnajdova](https://togithub.com/mnajdova),
[@&#8203;sai6855](https://togithub.com/sai6855),
[@&#8203;siriwatknp](https://togithub.com/siriwatknp),
[@&#8203;zanivan](https://togithub.com/zanivan),
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)

###
[`v5.14.19`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#51419)

[Compare
Source](https://togithub.com/mui/material-ui/compare/v5.14.18...v5.14.19)

<!-- generated comparing v5.14.18..master -->

*Nov 29, 2023*

A big thanks to the 18 contributors who made this release possible. Here
are some highlights :

- 🐛 Fix Material UI Autocomplete behavior when there are duplicate
labels
([#&#8203;36426](https://togithub.com/mui/material-ui/issues/36426))
[@&#8203;islandryu](https://togithub.com/islandryu)
- 🚀 Added Material You Linear Progress to `material-next` package
([#&#8203;39807](https://togithub.com/mui/material-ui/issues/39807))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)

##### `@mui/material@5.14.19`

- ​<!-- 44 -->\[Autocomplete] Fix behavior when there are duplicate
labels
([#&#8203;36426](https://togithub.com/mui/material-ui/issues/36426))
[@&#8203;islandryu](https://togithub.com/islandryu)
- ​<!-- 37 -->\[Box] Added boxClasses
([#&#8203;39889](https://togithub.com/mui/material-ui/issues/39889))
[@&#8203;sadik-malik](https://togithub.com/sadik-malik)
- ​<!-- 18 -->\[FilledInput] Fix slot props deepmerge order
([#&#8203;38922](https://togithub.com/mui/material-ui/issues/38922))
[@&#8203;dhaub-exelixis](https://togithub.com/dhaub-exelixis)
- ​<!-- 12 -->\[Select] Add id to hidden input element
([#&#8203;39414](https://togithub.com/mui/material-ui/issues/39414))
[@&#8203;DarhkVoyd](https://togithub.com/DarhkVoyd)
- ​<!-- 11 -->\[Select] Remove unnecessary picking of `onChange` type
from SelectInputProps
([#&#8203;39891](https://togithub.com/mui/material-ui/issues/39891))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)

##### `@mui/base@5.0.0-beta.25`

- ​<!-- 46 -->\[Menu] Fix navigation of items when 1st item is disabled
([#&#8203;39828](https://togithub.com/mui/material-ui/issues/39828))
[@&#8203;sai6855](https://togithub.com/sai6855)
- ​<!-- 42 -->\[Modal] Refine demos
([#&#8203;39824](https://togithub.com/mui/material-ui/issues/39824))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 41 -->\[NumberInput] Implement `numberInputReducer`
([#&#8203;38723](https://togithub.com/mui/material-ui/issues/38723))
[@&#8203;mj12albert](https://togithub.com/mj12albert)
- ​<!-- 40 -->\[useNumberInput] Fix change handlers passed through
slotProps
([#&#8203;39407](https://togithub.com/mui/material-ui/issues/39407))
[@&#8203;mj12albert](https://togithub.com/mj12albert)

##### `@mui/joy@5.0.0-beta.16`

- ​<!-- 38 -->\[Box] Added boxClasses
([#&#8203;39895](https://togithub.com/mui/material-ui/issues/39895))
[@&#8203;sadik-malik](https://togithub.com/sadik-malik)

##### `@mui/system@5.14.19`

- ​<!-- 36 -->\[Box] Added boxClasses
([#&#8203;39896](https://togithub.com/mui/material-ui/issues/39896))
[@&#8203;sadik-malik](https://togithub.com/sadik-malik)
- ​<!-- 09 -->Add outlineColor to defaultSxConfig
([#&#8203;39962](https://togithub.com/mui/material-ui/issues/39962))
[@&#8203;brijeshb42](https://togithub.com/brijeshb42)

##### `@mui/types@7.2.10`

- ​<!-- 08 -->Add `PartiallyRequired` type
([#&#8203;39939](https://togithub.com/mui/material-ui/issues/39939))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)

##### `@mui/material-next@6.0.0-alpha.111`

- ​<!-- 47 -->\[ProgressIndicator] Apply MD3 style to `LinearProgress`
([#&#8203;39807](https://togithub.com/mui/material-ui/issues/39807))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)
- ​<!-- 17 -->\[FormHelperText] Add FormHelperText component
([#&#8203;39503](https://togithub.com/mui/material-ui/issues/39503))
[@&#8203;mj12albert](https://togithub.com/mj12albert)
- ​<!-- 16 -->\[IconButton] Copy IconButton to material-next
([#&#8203;39945](https://togithub.com/mui/material-ui/issues/39945))
[@&#8203;mj12albert](https://togithub.com/mj12albert)
- ​<!-- 13 -->\[Switch] Copy `Switch` to material next
([#&#8203;39887](https://togithub.com/mui/material-ui/issues/39887))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)

##### Docs

- ​<!-- 19 -->\[material-ui] Fix theme prop in v5 migration guide
([#&#8203;39976](https://togithub.com/mui/material-ui/issues/39976))
[@&#8203;sai6855](https://togithub.com/sai6855)
- ​<!-- 43 -->\[base-ui] Improve Next.js Link docs
([#&#8203;39838](https://togithub.com/mui/material-ui/issues/39838))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 39 -->\[base-ui] Export Base UI theme in stylesheet
([#&#8203;39694](https://togithub.com/mui/material-ui/issues/39694))
[@&#8203;mnajdova](https://togithub.com/mnajdova)
- ​<!-- 52 -->\[joy-ui] Fix the date min & max slot props values on the
Input demo
([#&#8203;40018](https://togithub.com/mui/material-ui/issues/40018))
[@&#8203;avikalpg](https://togithub.com/avikalpg)
- ​<!-- 35 -->\[joy-ui]\[ButtonGroup] Fix orientation prop description
([#&#8203;39876](https://togithub.com/mui/material-ui/issues/39876))
[@&#8203;sai6855](https://togithub.com/sai6855)
- ​<!-- 25 -->\[joy-ui] Update gif from the Dark Mode Optimization page
([#&#8203;39726](https://togithub.com/mui/material-ui/issues/39726))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 24 -->\[joy-ui] Fix h1 template
([#&#8203;40017](https://togithub.com/mui/material-ui/issues/40017))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 23 -->\[joy-ui] Fix wrong product id
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 22 -->\[joy-ui] Fixes in theme scoping documentation
([#&#8203;39899](https://togithub.com/mui/material-ui/issues/39899))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)
- ​<!-- 21 -->\[joy-ui] Refine the Email, Teams and Files templates
([#&#8203;39579](https://togithub.com/mui/material-ui/issues/39579))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 15 -->\[joy-ui]\[templates] Fix layout shift on Profile template
([#&#8203;40022](https://togithub.com/mui/material-ui/issues/40022))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 14 -->\[joy-ui]\[Templates] Update thumbnails
([#&#8203;39938](https://togithub.com/mui/material-ui/issues/39938))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 20 -->\[material-next] Add contributing guide
([#&#8203;39944](https://togithub.com/mui/material-ui/issues/39944))
[@&#8203;mj12albert](https://togithub.com/mj12albert)
- ​<!-- 51 -->End v6 blogpost notification
([#&#8203;39879](https://togithub.com/mui/material-ui/issues/39879))
[@&#8203;joserodolfofreitas](https://togithub.com/joserodolfofreitas)
- ​<!-- 31 -->Fix nested CSS warning
([#&#8203;39932](https://togithub.com/mui/material-ui/issues/39932))
[@&#8203;mnajdova](https://togithub.com/mnajdova)
- ​<!-- 30 -->Make integration searchable
([#&#8203;39967](https://togithub.com/mui/material-ui/issues/39967))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 29 -->Fix use of quote in markdown
([#&#8203;39953](https://togithub.com/mui/material-ui/issues/39953))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 28 -->Show design links on Joy UI
([#&#8203;39955](https://togithub.com/mui/material-ui/issues/39955))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 27 -->Restore Algolia results when searching for "Figma"
([#&#8203;39956](https://togithub.com/mui/material-ui/issues/39956))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 26 -->Fix two tone icon dark mode color
([#&#8203;39868](https://togithub.com/mui/material-ui/issues/39868))
[@&#8203;mnajdova](https://togithub.com/mnajdova)

##### Core

- ​<!-- 45 -->Improve lerna's renovate package rules
([#&#8203;40029](https://togithub.com/mui/material-ui/issues/40029))
[@&#8203;DiegoAndai](https://togithub.com/DiegoAndai)
- ​<!-- 34 -->Downgrade lerna to 7.2.0
([#&#8203;40026](https://togithub.com/mui/material-ui/issues/40026))
[@&#8203;DiegoAndai](https://togithub.com/DiegoAndai)
- ​<!-- 32 -->Rename OpenCollective
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 48 -->\[docs-infra] Env variables should be string
([#&#8203;39991](https://togithub.com/mui/material-ui/issues/39991))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 10 -->\[Portal] Improve docs for container prop
([#&#8203;39180](https://togithub.com/mui/material-ui/issues/39180))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 50 -->\[website] Update pricing table
([#&#8203;40023](https://togithub.com/mui/material-ui/issues/40023))
[@&#8203;cherniavskii](https://togithub.com/cherniavskii)
- ​<!-- 49 -->\[website]\[docs] Update the product identifier menu and X
page
([#&#8203;39832](https://togithub.com/mui/material-ui/issues/39832))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 07 -->\[website] Mark TreeView and Charts as stable
([#&#8203;39975](https://togithub.com/mui/material-ui/issues/39975))
[@&#8203;flaviendelangle](https://togithub.com/flaviendelangle)
- ​<!-- 06 -->\[website] Update career page
([#&#8203;40015](https://togithub.com/mui/material-ui/issues/40015))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 05 -->\[website] Sync about dataset
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 04 -->\[website] Fix 301 redirection to X tree-view
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 03 -->\[website] Change redirection prefixes
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 02 -->\[website] Fix 301 link
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 01 -->\[website] Fix modal not being closed with the escape key
on the Base UI page
([#&#8203;39880](https://togithub.com/mui/material-ui/issues/39880))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)

All contributors of this release in alphabetical order:
[@&#8203;avikalpg](https://togithub.com/avikalpg),
[@&#8203;brijeshb42](https://togithub.com/brijeshb42),
[@&#8203;cherniavskii](https://togithub.com/cherniavskii),
[@&#8203;danilo-leal](https://togithub.com/danilo-leal),
[@&#8203;DarhkVoyd](https://togithub.com/DarhkVoyd),
[@&#8203;dhaub-exelixis](https://togithub.com/dhaub-exelixis),
[@&#8203;DiegoAndai](https://togithub.com/DiegoAndai),
[@&#8203;flaviendelangle](https://togithub.com/flaviendelangle),
[@&#8203;islandryu](https://togithub.com/islandryu),
[@&#8203;joserodolfofreitas](https://togithub.com/joserodolfofreitas),
[@&#8203;lhilgert9](https://togithub.com/lhilgert9),
[@&#8203;mj12albert](https://togithub.com/mj12albert),
[@&#8203;mnajdova](https://togithub.com/mnajdova),
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari),
[@&#8203;sadik-malik](https://togithub.com/sadik-malik),
[@&#8203;sai6855](https://togithub.com/sai6855),
[@&#8203;zanivan](https://togithub.com/zanivan),
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)

###
[`v5.14.18`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#51418)

[Compare
Source](https://togithub.com/mui/material-ui/compare/v5.14.16...v5.14.18)

<!-- generated comparing v5.14.17..master -->

*Nov 14, 2023*

A big thanks to the 14 contributors who made this release possible. Here
are some highlights :

- 💫 Introduced new [Stepper](https://mui.com/joy-ui/react-stepper/)
component in Joy UI
([#&#8203;39688](https://togithub.com/mui/material-ui/issues/39688))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)
-   other 🐛 bug fixes and 📚 documentation improvements

##### `@mui/material@5.14.18`

- ​<!-- 32 -->\[Autocomplete] Add `defaultMuiPrevented` to onKeyDown
type
([#&#8203;39820](https://togithub.com/mui/material-ui/issues/39820))
[@&#8203;sai6855](https://togithub.com/sai6855)
- ​<!-- 31 -->\[Autocomplete] Fix React key warning in Next.js
([#&#8203;39795](https://togithub.com/mui/material-ui/issues/39795))
[@&#8203;mj12albert](https://togithub.com/mj12albert)
- ​<!-- 24 -->\[Checkbox] Asterisk placement aligned correctly
([#&#8203;39721](https://togithub.com/mui/material-ui/issues/39721))
[@&#8203;axelbostrom](https://togithub.com/axelbostrom)
- ​<!-- 04 -->\[Rating] Fix the hover highlighting for spaced icons
([#&#8203;39775](https://togithub.com/mui/material-ui/issues/39775))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)
- ​<!-- 03 -->\[TablePagination] Implement `slotProps` pattern for the
actions and the select slots
([#&#8203;39353](https://togithub.com/mui/material-ui/issues/39353))
[@&#8203;anle9650](https://togithub.com/anle9650)
- ​<!-- 02 -->\[TextField] Fix padding on small filled multiline
TextField
([#&#8203;39769](https://togithub.com/mui/material-ui/issues/39769))
[@&#8203;mj12albert](https://togithub.com/mj12albert)

##### `@mui/joy@5.0.0-beta.15`

- ​<!-- 11 -->\[Stepper] Add new `Stepper` component
([#&#8203;39688](https://togithub.com/mui/material-ui/issues/39688))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)
- ​<!-- 12 -->\[Select] Fix displaying placeholder when multiple is true
([#&#8203;39806](https://togithub.com/mui/material-ui/issues/39806))
[@&#8203;sai6855](https://togithub.com/sai6855)

##### `@mui/material-next@6.0.0-alpha.110`

- ​<!-- 26 -->\[ButtonGroup] Copy `ButtonGroup` to material next
([#&#8203;39739](https://togithub.com/mui/material-ui/issues/39739))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)
- ​<!-- 09 -->\[ProgressIndicator] Change `CircularProgress` files to ts
([#&#8203;39791](https://togithub.com/mui/material-ui/issues/39791))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)
- ​<!-- 08 -->\[ProgressIndicator] Change `LinearProgress` files to ts
([#&#8203;39793](https://togithub.com/mui/material-ui/issues/39793))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)
- ​<!-- 07 -->\[ProgressIndicator] Copy `LinearProgress` to material
next
([#&#8203;39779](https://togithub.com/mui/material-ui/issues/39779))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)
- ​<!-- 06 -->\[ProgressIndicator] Copy `CircularProgress` to material
next
([#&#8203;39780](https://togithub.com/mui/material-ui/issues/39780))
[@&#8203;lhilgert9](https://togithub.com/lhilgert9)
- ​<!-- 05 -->\[TextField] Add FormLabel and InputLabel components
([#&#8203;39483](https://togithub.com/mui/material-ui/issues/39483))
[@&#8203;mj12albert](https://togithub.com/mj12albert)

###
[`v5.14.16`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#51416)

[Compare
Source](https://togithub.com/mui/material-ui/compare/v5.14.15...v5.14.16)

<!-- generated comparing v5.14.15..master -->

*Oct 31, 2023*

A big thanks to the 19 contributors who made this release possible. Here
are some highlights :

-  New highly requested Joy UI component:
[Snackbar](https://mui.com/joy-ui/react-snackbar)
([#&#8203;38801](https://togithub.com/mui/material-ui/issues/38801))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)

##### `@mui/material@5.14.16`

- ​<!-- 03 -->Fix ownerstate being propagated to DOM node when using
styled-components v6
([#&#8203;39586](https://togithub.com/mui/material-ui/issues/39586))
[@&#8203;mnajdova](https://togithub.com/mnajdova)

##### `@mui/base@5.0.0-beta.22`

- ​<!-- 28 -->\[Autocomplete] Standardize box shadow on demos
([#&#8203;39519](https://togithub.com/mui/material-ui/issues/39519))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 27 -->\[useSelect] Support browser autofill
([#&#8203;39595](https://togithub.com/mui/material-ui/issues/39595))
[@&#8203;DiegoAndai](https://togithub.com/DiegoAndai)
- ​<!-- 30 -->\[base-ui] Fix mergeSlotProps className join order
([#&#8203;39616](https://togithub.com/mui/material-ui/issues/39616))
[@&#8203;mj12albert](https://togithub.com/mj12albert)

##### `@mui/joy@5.0.0-beta.13`

-   ​<!-- 29 -->\[Accordion] Add type button to accordion
- ​<!-- 28 -->\[Card] Fix CardOverflow in nested cards
([#&#8203;39668](https://togithub.com/mui/material-ui/issues/39668))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp) summary
([#&#8203;39532](https://togithub.com/mui/material-ui/issues/39532))
[@&#8203;Popppins](https://togithub.com/Popppins)
- ​<!-- 08 -->\[Menu] Fix closing of listbox in `MenuList` demo
([#&#8203;39459](https://togithub.com/mui/material-ui/issues/39459))
[@&#8203;sai6855](https://togithub.com/sai6855)
- ​<!-- 07 -->\[Progress] Revamp Linear and Circular progress variants
([#&#8203;39492](https://togithub.com/mui/material-ui/issues/39492))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 06 -->\[Select] Support selection of `multiple` options
([#&#8203;39454](https://togithub.com/mui/material-ui/issues/39454))
[@&#8203;sai6855](https://togithub.com/sai6855)
- ​<!-- 05 -->\[Textarea] Add ref usage instructions
([#&#8203;39615](https://togithub.com/mui/material-ui/issues/39615))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 10 --> Fix sticky hover media query issue on mobile
([#&#8203;37467](https://togithub.com/mui/material-ui/issues/37467))
[@&#8203;gitstart](https://togithub.com/gitstart)
- ​<!-- 09 --> Add Snackbar component
([#&#8203;38801](https://togithub.com/mui/material-ui/issues/38801))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)

##### `@mui/material-next@6.0.0-alpha.108`

- ​<!-- 04 -->\[theme] Update Material You typescale tokens
([#&#8203;39514](https://togithub.com/mui/material-ui/issues/39514))
[@&#8203;mj12albert](https://togithub.com/mj12albert)

##### Docs

- ​<!-- 22 -->Fix 301 link to Primer design system
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 19 -->\[joy-ui] Revise the CSS vars page
([#&#8203;39335](https://togithub.com/mui/material-ui/issues/39335))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 18 -->\[joy-ui] Add docs for changing styles based on states
([#&#8203;39597](https://togithub.com/mui/material-ui/issues/39597))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)
- ​<!-- 17 -->\[joy-ui] Fix wrong messages
([#&#8203;39602](https://togithub.com/mui/material-ui/issues/39602))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)
- ​<!-- 16 -->\[material-ui] Include link to bundler how-to for Styled
Components users
([#&#8203;39620](https://togithub.com/mui/material-ui/issues/39620))
[@&#8203;jcoyle37](https://togithub.com/jcoyle37)
- ​<!-- 15 -->\[material-ui] Improve Dialog demos
([#&#8203;39642](https://togithub.com/mui/material-ui/issues/39642))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)
- ​<!-- 14 -->\[material-ui] Add stray design fine-tuning to the example
collection
([#&#8203;39581](https://togithub.com/mui/material-ui/issues/39581))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 13 -->\[system] Clean up `@mui/styles` docs and discourage users
from installing it
([#&#8203;39644](https://togithub.com/mui/material-ui/issues/39644))
[@&#8203;samuelsycamore](https://togithub.com/samuelsycamore)
- ​<!-- 12 -->\[examples] Upgrade Remix to v2
([#&#8203;39229](https://togithub.com/mui/material-ui/issues/39229))
[@&#8203;Nkzn](https://togithub.com/Nkzn)
- ​<!-- 11 -->\[examples]\[material-ui] Remove hardcoded `color="black"`
from Next.js App Router layout
([#&#8203;39577](https://togithub.com/mui/material-ui/issues/39577))
[@&#8203;samuelsycamore](https://togithub.com/samuelsycamore)

##### Core

- ​<!-- 26 -->\[core] Setup vale for enforcing style guides
([#&#8203;39633](https://togithub.com/mui/material-ui/issues/39633))
[@&#8203;alexfauquette](https://togithub.com/alexfauquette)
- ​<!-- 25 -->\[core] Remove unused use client
([#&#8203;38967](https://togithub.com/mui/material-ui/issues/38967))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 24 -->\[core] Remove duplicate export
([#&#8203;39346](https://togithub.com/mui/material-ui/issues/39346))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 23 -->\[core] Remove not used `@types/loader-utils` package from
`zero-next-plugin`
([#&#8203;39609](https://togithub.com/mui/material-ui/issues/39609))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)
- ​<!-- 21 -->\[docs-infra] Add meta charset in codesandbox examples
([#&#8203;39424](https://togithub.com/mui/material-ui/issues/39424))
[@&#8203;Janpot](https://togithub.com/Janpot)
- ​<!-- 20 -->\[docs-infra] Fix settings drawer accessibility issues
([#&#8203;39589](https://togithub.com/mui/material-ui/issues/39589))
[@&#8203;emamoah](https://togithub.com/emamoah)
- ​<!-- 02 -->\[website] Add stray adjustments and clean-ups
([#&#8203;39673](https://togithub.com/mui/material-ui/issues/39673))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 01 -->\[website] Open the `Design Engineer - xGrid` role
([#&#8203;39375](https://togithub.com/mui/material-ui/issues/39375))
[@&#8203;DanailH](https://togithub.com/DanailH)

All contributors of this release in alphabetical order:
[@&#8203;alexfauquette](https://togithub.com/alexfauquette),
[@&#8203;Best-Sardar](https://togithub.com/Best-Sardar),
[@&#8203;DanailH](https://togithub.com/DanailH),
[@&#8203;danilo-leal](https://togithub.com/danilo-leal),
[@&#8203;DiegoAndai](https://togithub.com/DiegoAndai),
[@&#8203;emamoah](https://togithub.com/emamoah),
[@&#8203;gitstart](https://togithub.com/gitstart),
[@&#8203;Janpot](https://togithub.com/Janpot),
[@&#8203;jcoyle37](https://togithub.com/jcoyle37),
[@&#8203;mj12albert](https://togithub.com/mj12albert),
[@&#8203;mnajdova](https://togithub.com/mnajdova),
[@&#8203;Nkzn](https://togithub.com/Nkzn),
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari),
[@&#8203;Popppins](https://togithub.com/Popppins),
[@&#8203;sai6855](https://togithub.com/sai6855),
[@&#8203;samuelsycamore](https://togithub.com/samuelsycamore),
[@&#8203;siriwatknp](https://togithub.com/siriwatknp),
[@&#8203;zanivan](https://togithub.com/zanivan),
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)

###
[`v5.14.15`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#51415)

[Compare
Source](https://togithub.com/mui/material-ui/compare/v5.14.14...v5.14.15)

<!-- generated comparing v5.14.14..master -->

*Oct 24, 2023*

A big thanks to the 17 contributors who made this release possible.

##### `@mui/material@5.14.15`

- ​<!-- 24 -->\[Checkbox]\[Radio] Fix theme style overrides not working
for different sizes
([#&#8203;39377](https://togithub.com/mui/material-ui/issues/39377))
[@&#8203;gitstart](https://togithub.com/gitstart)
- ​<!-- 12 -->\[InputLabel] InputLabel supports ownerState.focused for
styleOverrides
([#&#8203;39470](https://togithub.com/mui/material-ui/issues/39470))
[@&#8203;mj12albert](https://togithub.com/mj12albert)
- ​<!-- 07 -->\[ToggleButton] Add `fullWidth` to `toggleButtonClasses`
and `toggleButtonGroupClasses`
([#&#8203;39536](https://togithub.com/mui/material-ui/issues/39536))
[@&#8203;Semigradsky](https://togithub.com/Semigradsky)

##### `@mui/base@5.0.0-beta.21`

- ​<!-- 29 -->\[useAutocomplete] Correct keyboard navigation with
multiple disabled options
([#&#8203;38788](https://togithub.com/mui/material-ui/issues/38788))
[@&#8203;VadimZvf](https://togithub.com/VadimZvf)
- ​<!-- 28 -->\[Select] Standardize box shadow on demos
([#&#8203;39509](https://togithub.com/mui/material-ui/issues/39509))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 27 -->\[Slider] Refine demos
([#&#8203;39526](https://togithub.com/mui/material-ui/issues/39526))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 34 -->\[Input] Update and port additional tests from material-ui
([#&#8203;39584](https://togithub.com/mui/material-ui/issues/39584))
[@&#8203;mj12albert](https://togithub.com/mj12albert)

##### `@mui/material-next@6.0.0-alpha.107`

- ​<!-- 16 -->\[FilledInput] Add FilledInput component
([#&#8203;39307](https://togithub.com/mui/material-ui/issues/39307))
[@&#8203;mj12albert](https://togithub.com/mj12albert)
- ​<!-- 13 -->\[InputAdornment] Fix unstable_capitalize import
([#&#8203;39510](https://togithub.com/mui/material-ui/issues/39510))
[@&#8203;DiegoAndai](https://togithub.com/DiegoAndai)
- ​<!-- 08 -->\[Snackbar] copy files to mui-material-next
([#&#8203;39232](https://togithub.com/mui/material-ui/issues/39232))
[@&#8203;Best-Sardar](https://togithub.com/Best-Sardar)
- ​<!-- 33 -->\[Menu] Use useMenu hook
([#&#8203;38934](https://togithub.com/mui/material-ui/issues/38934))
[@&#8203;mnajdova](https://togithub.com/mnajdova)

##### `@mui/joy@5.0.0-beta.12`

- ​<!-- 26 -->\[Button] Fix button size being a decorator
([#&#8203;39529](https://togithub.com/mui/material-ui/issues/39529))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)
- ​<!-- 25 -->\[CardOverflow] Remove conditional CSS to support Next.js
App dir
([#&#8203;39101](https://togithub.com/mui/material-ui/issues/39101))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)
- ​<!-- 11 -->\[Link] Apply `userSelect: none` only when it's a button
([#&#8203;39486](https://togithub.com/mui/material-ui/issues/39486))
[@&#8203;mwskwong](https://togithub.com/mwskwong)

##### `@mui/lab@5.0.0-alpha.150`

- ​<!-- 09 -->Update peer dep of
[@&#8203;mui/material](https://togithub.com/mui/material)
([#&#8203;39398](https://togithub.com/mui/material-ui/issues/39398))
[@&#8203;brijeshb42](https://togithub.com/brijeshb42)

##### `@mui/zero-runtime@0.0.1-alpha.0`

- ​<!-- 06 -->Implement typings for public runtime API
([#&#8203;39215](https://togithub.com/mui/material-ui/issues/39215))
[@&#8203;brijeshb42](https://togithub.com/brijeshb42)

##### `@mui/zero-vite-plugin@0.0.1-alpha.0`

- ​<!-- 05 -->Modify plugin to transform node_modules
([#&#8203;39517](https://togithub.com/mui/material-ui/issues/39517))
[@&#8203;brijeshb42](https://togithub.com/brijeshb42)

##### Docs

- ​<!-- 31 -->\[base-ui] Standardize grey palette across demos
([#&#8203;39504](https://togithub.com/mui/material-ui/issues/39504))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 30 -->\[base-ui] Overall demos design review
([#&#8203;38820](https://togithub.com/mui/material-ui/issues/38820))
[@&#8203;zanivan](https://togithub.com/zanivan)
- ​<!-- 19 -->\[joy-ui] Adjust the responsiveness of the template card
([#&#8203;39534](https://togithub.com/mui/material-ui/issues/39534))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 18 -->\[material-ui] Typo fixes in overview page
([#&#8203;39540](https://togithub.com/mui/material-ui/issues/39540))
[@&#8203;Evan151](https://togithub.com/Evan151)
- ​<!-- 35 -->\[material-ui] Add stray design tweaks to the templates
collection
([#&#8203;39583](https://togithub.com/mui/material-ui/issues/39583))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 17 -->\[system] Revise the Box page
([#&#8203;39159](https://togithub.com/mui/material-ui/issues/39159))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 22 -->Fix git diff format
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 15 -->\[I10n] Add Norwegian (nynorsk) (nn-NO) locale
([#&#8203;39481](https://togithub.com/mui/material-ui/issues/39481))
[@&#8203;hjalti-lifekeys](https://togithub.com/hjalti-lifekeys)
- ​<!-- 10 -->\[l10n] Fix double space typo in ar-EG
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 14 -->\[I10n] Additions to Icelandic (is-IS) locale
([#&#8203;39480](https://togithub.com/mui/material-ui/issues/39480))
[@&#8203;hjalti-lifekeys](https://togithub.com/hjalti-lifekeys)

##### Core

- ​<!-- 23 -->\[core] Replace a `useCallback` by `useRef` in
useEventCallback
([#&#8203;39078](https://togithub.com/mui/material-ui/issues/39078))
[@&#8203;romgrk](https://togithub.com/romgrk)
- ​<!-- 21 -->\[docs-infra] Prevent docs crash
([#&#8203;39214](https://togithub.com/mui/material-ui/issues/39214))
[@&#8203;alexfauquette](https://togithub.com/alexfauquette)
- ​<!-- 20 -->\[docs-infra] Fix no-op autoprefixer warning
([#&#8203;39385](https://togithub.com/mui/material-ui/issues/39385))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 32 -->\[docs-infra] Refine the API page design
([#&#8203;39520](https://togithub.com/mui/material-ui/issues/39520))
[@&#8203;alexfauquette](https://togithub.com/alexfauquette)
- ​<!-- 25 -->\[docs-infra] Fix cut-off sponsors
([#&#8203;39572](https://togithub.com/mui/material-ui/issues/39572))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 04 -->\[website] Add missing h1 on page
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 03 -->\[website] Fix unrecognized prop warning
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 02 -->\[website] Store Engineer role filled
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 01 -->\[website] Add stray design adjustments
([#&#8203;39496](https://togithub.com/mui/material-ui/issues/39496))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)

All contributors of this release in alphabetical order:
[@&#8203;alexfauquette](https://togithub.com/alexfauquette),
[@&#8203;Best-Sardar](https://togithub.com/Best-Sardar),
[@&#8203;brijeshb42](https://togithub.com/brijeshb42),
[@&#8203;danilo-leal](https://togithub.com/danilo-leal),
[@&#8203;DiegoAndai](https://togithub.com/DiegoAndai),
[@&#8203;Evan151](https://togithub.com/Evan151),
[@&#8203;gitstart](https://togithub.com/gitstart),
[@&#8203;hjalti-lifekeys](https://togithub.com/hjalti-lifekeys),
[@&#8203;mj12albert](https://togithub.com/mj12albert),
[@&#8203;mnajdova](https://togithub.com/mnajdova),
[@&#8203;mwskwong](https://togithub.com/mwskwong),
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari),
[@&#8203;romgrk](https://togithub.com/romgrk),
[@&#8203;Semigradsky](https://togithub.com/Semigradsky),
[@&#8203;siriwatknp](https://togithub.com/siriwatknp),
[@&#8203;VadimZvf](https://togithub.com/VadimZvf),
[@&#8203;zanivan](https://togithub.com/zanivan)

###
[`v5.14.14`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#51414)

[Compare
Source](https://togithub.com/mui/material-ui/compare/v5.14.13...v5.14.14)

<!-- generated comparing v5.14.13..master -->

*Oct 17, 2023*

A big thanks to the 24 contributors who made this release possible. Here
are some highlights :
This release was mostly about 🐛 bug fixes and 📚 documentation
improvements.

##### `@mui/material@5.14.14`

- ​<!-- 29 -->\[material-ui]\[AppBar] Support all default palette colors
in TypeScript
([#&#8203;39389](https://togithub.com/mui/material-ui/issues/39389))
[@&#8203;BreakBB](https://togithub.com/BreakBB)
- ​<!-- 28 -->\[material-ui]\[AvatarGroup] Add `renderSurplus` prop
([#&#8203;39283](https://togithub.com/mui/material-ui/issues/39283))
[@&#8203;uuxxx](https://togithub.com/uuxxx)
- ​<!-- 25 -->\[material-ui]\[Box] Fix system properties has incorrect
`Theme` interface when applied directly
([#&#8203;39404](https://togithub.com/mui/material-ui/issues/39404))
[@&#8203;Semigradsky](https://togithub.com/Semigradsky)
- ​<!-- 04 -->\[material-ui]\[Pagination] Update `type` parameter of
`getItemAriaLabel` prop
([#&#8203;39390](https://togithub.com/mui/material-ui/issues/39390))
[@&#8203;Simer13](https://togithub.com/Simer13)
- ​<!-- 06 -->\[material]\[tab] Show/hide scroll buttons for dynamically
added children
([#&#8203;39415](https://togithub.com/mui/material-ui/issues/39415))
[@&#8203;brijeshb42](https://togithub.com/brijeshb42)

##### `@mui/base@5.0.0-beta.20`

- ​<!-- 26 -->\[base-ui]\[Menu] Do not reopen the menu after clicking on
a trigger in Safari
([#&#8203;39393](https://togithub.com/mui/material-ui/issues/39393))
[@&#8203;michaldudak](https://togithub.com/michaldudak)

##### `@mui/material-next@6.0.0-alpha.106`

- ​<!-- 23 -->\[Divider]\[material-next] Add Divider component
([#&#8203;39179](https://togithub.com/mui/material-ui/issues/39179))
[@&#8203;Best-Sardar](https://togithub.com/Best-Sardar)

##### `@mui/joy@5.0.0-beta.11`

- ​<!-- 08 -->\[joy-ui]\[List] Add the `marker` prop
([#&#8203;39313](https://togithub.com/mui/material-ui/issues/39313))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)
- ​<!-- 07 -->\[joy-ui]\[Skeleton] Fix semi-transparent scenario when
with surface components and color inversion
([#&#8203;39400](https://togithub.com/mui/material-ui/issues/39400))
[@&#8203;TheNatkat](https://togithub.com/TheNatkat)
- ​<!-- 06 -->\[joy-ui]\[Textarea] Fix focus ring for error state
([#&#8203;39391](https://togithub.com/mui/material-ui/issues/39391))
[@&#8203;vineetjk](https://togithub.com/vineetjk)

##### `@mui/icons-material@5.14.14`

- ​<!-- 09 -->\[icons] Fix VoiceChatOutlined showing the wrong icon
([#&#8203;39418](https://togithub.com/mui/material-ui/issues/39418))
[@&#8203;devuser200](https://togithub.com/devuser200)

##### `@mui/system@5.14.14`

- ​<!-- 03 -->\[mui-system]\[style] bug fix for style value check color
in nullable object
([#&#8203;39457](https://togithub.com/mui/material-ui/issues/39457))
[@&#8203;DarhkVoyd](https://togithub.com/DarhkVoyd)

##### `@mui/styled-engine-sc@6.0.0-alpha.2`

- ​<!-- 05 -->\[styled-engine-sc] Fix TS issues because of missing types
([#&#8203;39395](https://togithub.com/mui/material-ui/issues/39395))
[@&#8203;mnajdova](https://togithub.com/mnajdova)

##### Docs

- ​<!-- 27 -->\[docs]\[base-ui] Renaming demos to BaseXxx
([#&#8203;39104](https://togithub.com/mui/material-ui/issues/39104))
[@&#8203;christophermorin](https://togithub.com/christophermorin)
- ​<!-- 26 -->\[docs] Accessibility in Base UI
([#&#8203;39264](https://togithub.com/mui/material-ui/issues/39264))
[@&#8203;michaldudak](https://togithub.com/michaldudak)
- ​<!-- 22 -->\[docs] Fix 301 redirection
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 21 -->\[docs] Improve Base UI table of contents for APIs
([#&#8203;39412](https://togithub.com/mui/material-ui/issues/39412))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)
- ​<!-- 20 -->\[docs] Adjust design kits-related content
([#&#8203;39367](https://togithub.com/mui/material-ui/issues/39367))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 19 -->\[docs] Revise the Contributing Guide
([#&#8203;39190](https://togithub.com/mui/material-ui/issues/39190))
[@&#8203;samuelsycamore](https://togithub.com/samuelsycamore)
- ​<!-- 12 -->\[docs]\[joy-ui] Fix row hover prop name in the Table page
([#&#8203;39431](https://togithub.com/mui/material-ui/issues/39431))
[@&#8203;adrienbrault](https://togithub.com/adrienbrault)
- ​<!-- 11 -->\[docs]\[joy-ui] Fix color inversion demos
([#&#8203;39403](https://togithub.com/mui/material-ui/issues/39403))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 10 -->\[docs]\[material-ui] Remove irrelevant TODO from Snackbar
demo
([#&#8203;39396](https://togithub.com/mui/material-ui/issues/39396))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)
- ​<!-- 06 -->\[docs]\[material-ui]\[Table] Bug in "Sorting & Selecting"
demo
([#&#8203;39426](https://togithub.com/mui/material-ui/issues/39426))
[@&#8203;codewithrabeeh](https://togithub.com/codewithrabeeh)
- ​<!-- 05 -->\[docs]\[joy-ui]\[typography] Update docs after lineHeight
changes
([#&#8203;39366](https://togithub.com/mui/material-ui/issues/39366))
[@&#8203;zanivan](https://togithub.com/zanivan)

##### Core

- ​<!-- 24 -->\[core] Fix multiple typos across the repo
([#&#8203;39422](https://togithub.com/mui/material-ui/issues/39422))
[@&#8203;parikshitadhikari](https://togithub.com/parikshitadhikari)
- ​<!-- 18 -->\[docs-infra] Add refinements to the API content design
([#&#8203;39425](https://togithub.com/mui/material-ui/issues/39425))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 17 -->\[docs-infra] Add a min height to the layout component
([#&#8203;39416](https://togithub.com/mui/material-ui/issues/39416))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 16 -->\[docs-infra] Prevent horizontal scroll in the TOC
([#&#8203;39417](https://togithub.com/mui/material-ui/issues/39417))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 15 -->\[docs-infra] Add a collapsible list & table views to the
API content display
([#&#8203;38265](https://togithub.com/mui/material-ui/issues/38265))
[@&#8203;alexfauquette](https://togithub.com/alexfauquette)
- ​<!-- 14 -->\[docs-infra] Adjust the `kbd` tag styles
([#&#8203;39397](https://togithub.com/mui/material-ui/issues/39397))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 13 -->\[docs-infra] Fix strong style regression
([#&#8203;39384](https://togithub.com/mui/material-ui/issues/39384))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 04 -->\[website] Add the LinkedIn profile to the contributors
section on the About page
([#&#8203;39455](https://togithub.com/mui/material-ui/issues/39455))
[@&#8203;chhawinder](https://togithub.com/chhawinder)
- ​<!-- 03 -->\[website] Update new role template
([#&#8203;39386](https://togithub.com/mui/material-ui/issues/39386))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 02 -->\[website] Add stray design fine-tunning to the Pricing
page
([#&#8203;39472](https://togithub.com/mui/material-ui/issues/39472))
[@&#8203;danilo-leal](https://togithub.com/danilo-leal)
- ​<!-- 01 -->\[website] Fix career anchor link to perks & benefits
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)

All contributors of this release in alphabetical order:
[@&#8203;adrienbrault](https://togithub.com/adrienbrault),
[@&#8203;alexfauquette](https://togithub.com/alexfauquette),
[@&#8203;Best-Sardar](https://togithub.com/Best-Sardar),
[@&#8203;BreakBB](https://togithub.com/BreakBB),
[@&#8203;brijeshb42](https://togithub.com/brijeshb42),
[@&#8203;chhawinder](https://togithub.com/chhawinder),
[@&#8203;christophermorin](https://togithub.com/christophermorin),
[@&#8203;codewithrabeeh](https://togithub.com/codewithrabeeh),
[@&#8203;danilo-leal](https://togithub.com/danilo-leal),
[@&#8203;DarhkVoyd](https://togithub.com/DarhkVoyd),
[@&#8203;devuser200](https://togi

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTIxLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2024-01-11 08:17:10 +00:00
Fredrik Strand Oseberg
0b50a4e7c5
fix/remove cancel button (#5838)
This PR removes the cancel button from the new constraint accordion.
Since we now do autosave when the constraint updates, cancel is no
longer needed, the done button and delete button is enough.
2024-01-11 08:55:49 +01:00
Fredrik Strand Oseberg
78fa122604
Fix/banner placement (#5833)
This PR determines where we show the banners in the new strategy
configuration:

<img width="1166" alt="Skjermbilde 2024-01-10 kl 14 46 35"
src="https://github.com/Unleash/unleash/assets/16081982/db2cd3aa-9de5-4095-873f-33e09610c74f">
2024-01-10 16:08:56 +01:00
Fredrik Strand Oseberg
d6afe69a0f
Fix/constraint accordion autosave (#5825)
This PR adds autosave to the constraint accordion which means that when
you add values to it, it will automatically save the constraint locally.
If you unmount the constraint component without any valid values, it
will remove the constraint from the list.
2024-01-10 11:48:15 +01:00
Nuno Góis
10c3acd27d
chore: adapt integrations layout for incoming webhooks (#5828)
https://linear.app/unleash/issue/2-1823/adapt-integrations-page-to-incoming-webhooks-tab-layout

Adapts the current integrations page to the incoming webhooks feature,
which includes things like:
- Displaying both configured and available integrations in a single
"page block"
 - Implement tabs
 - Add "Incoming Webhooks" integration card
 - Adapt the existing `IntegrationCard` component to support `onClick`

This also includes a small girl scouting fix: Some tabs (like on the
roles page) did not correctly reflect the active tab.

### `incomingWebhooks` disabled


![image](https://github.com/Unleash/unleash/assets/14320932/f5c1c61b-0eb1-487e-ab5a-c65e9fc168c8)

### `incomingWebhooks` enabled

Notice the new "Incoming webhooks" tab and integration card.


![image](https://github.com/Unleash/unleash/assets/14320932/f5680ad5-4a00-4acb-bc8d-77160cc91034)
2024-01-10 10:33:51 +00:00
Jaanus Sellin
d770f624e6
refactor: move plausible context on top of feedback (#5824)
We were unable to send plausible events from feedback. Now we can.
2024-01-10 11:31:41 +02:00
renovate[bot]
92ae2235a0
chore(deps): update dependency @biomejs/biome to v1.4.1 (#5709)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev)
([source](https://togithub.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome))
| [`1.4.0` ->
`1.4.1`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/1.4.0/1.4.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@biomejs%2fbiome/1.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@biomejs%2fbiome/1.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@biomejs%2fbiome/1.4.0/1.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@biomejs%2fbiome/1.4.0/1.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

###
[`v1.4.1`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#141-2023-11-30)

[Compare
Source](889593e3f9...a887513062)

##### Editors

- Fix [#&#8203;933](https://togithub.com/biomejs/biome/issues/933). Some
files are properly ignored in the LSP too. E.g. `package.json`,
`tsconfig.json`, etc.

##### Formatter

##### Bug fixes

- Fix some accidental line breaks when printing array expressions within
arrow functions and other long lines
[#&#8203;917](https://togithub.com/biomejs/biome/pull/917). Contributed
by [@&#8203;faultyserver](https://togithub.com/faultyserver)

- Match Prettier's breaking strategy for `ArrowChain` layouts
[#&#8203;934](https://togithub.com/biomejs/biome/pull/934). Contributed
by [@&#8203;faultyserver](https://togithub.com/faultyserver)

- Fix double-printing of leading comments in arrow chain expressions
[#&#8203;951](https://togithub.com/biomejs/biome/pull/951). Contributed
by [@&#8203;faultyserver](https://togithub.com/faultyserver)

##### Linter

##### Bug fixes

- Fix [#&#8203;910](https://togithub.com/biomejs/biome/issues/910),
where the rule `noSvgWithoutTitle` should skip elements that have
`aria-hidden` attributes. Contributed by
[@&#8203;vasucp1207](https://togithub.com/vasucp1207)

##### New features

-   Add [useForOf](https://biomejs.dev/linter/rules/use-for-of) rule.
The rule recommends a for-of loop when the loop index is only used to
read from an array that is being iterated.
Contributed by [@&#8203;victor-teles](https://togithub.com/victor-teles)

##### Enhancement

- Implements
[#&#8203;924](https://togithub.com/biomejs/biome/issues/924) and
[#&#8203;920](https://togithub.com/biomejs/biome/issues/920).
[noUselessElse](https://biomejs.dev/linter/rules/no-useless-else) now
ignores `else` clauses that follow at least one `if` statement that
doesn't break early. Contributed by
[@&#8203;Conaclos](https://togithub.com/Conaclos)

    For example, the following code is no longer reported by the rule:

    ```js
    function f(x) {
        if (x < 0) {
          // this `if` doesn't break early.
        } else if (x > 0) {
            return x;
        } else {
            // This `else` block was previously reported as useless.
        }
    }
    ```

##### Bug fixes

- Fix [#&#8203;918](https://togithub.com/biomejs/biome/issues/918),
[useSimpleNumberKeys](https://biomejs.dev/linter/rules/use-simple-number-keys)
no longer repports false positive on comments. Contributed by
[@&#8203;kalleep](https://togithub.com/kalleep)

- Fix [#&#8203;953](https://togithub.com/biomejs/biome/issues/953),
[noRedeclare](https://biomejs.dev/linter/rules/no-redeclare) no longer
reports type parameters with the same name in different mapped types as
redeclarations. Contributed by
[@&#8203;Conaclos](https://togithub.com/Conaclos)

- Fix [#&#8203;608](https://togithub.com/biomejs/biome/issues/608),
[useExhaustiveDependencies](https://biomejs.dev/linter/rules/use-exhaustive-dependencies)
no longer repports missing dependencies for React hooks without
dependency array. Contributed by
[@&#8203;kalleep](https://togithub.com/kalleep)

##### Parser

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: David Leek <david@getunleash.io>
2024-01-10 09:11:49 +00:00
Gastón Fournier
72f84f0381
feat: overflow email when it's too long (#5801)
## About the changes
For long emails we want to 
![Screenshot from 2024-01-09
10-29-42](https://github.com/Unleash/unleash/assets/455064/85305c41-25c3-4c54-8159-f9ce32adeb6c)


![image](https://github.com/Unleash/unleash/assets/455064/b1728aa0-eb93-44d9-ab65-e41d3fae0d2b)
2024-01-09 11:07:42 +01:00
andreas-unleash
fbeb5425af
feat: add tooltip to Scheduled badge (#5726)
Closes #
[1-1831](https://linear.app/unleash/issue/1-1831/enhancement-tooltips-for-change-request-overview-page-to-add-hover)

<img width="1332" alt="Screenshot 2023-12-22 at 12 59 15"
src="https://github.com/Unleash/unleash/assets/104830839/1a851b47-4756-4f3f-a9e6-14067e395738">
<img width="1263" alt="Screenshot 2023-12-22 at 12 59 07"
src="https://github.com/Unleash/unleash/assets/104830839/cdce0e81-3e04-4414-8965-13072b282dea">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-01-09 10:32:52 +02:00
Nuno Góis
c8fb313004
chore: incoming webhook token hooks (#5790)
https://linear.app/unleash/issue/2-1814/create-new-incoming-webhook-token-hooks-on-the-frontend

Adds incoming webhook token hooks to help us with CRUD operations on the
frontend.
2024-01-08 15:43:24 +00:00
Nuno Góis
68d7af919d
chore: incoming webhook hooks (#5788)
https://linear.app/unleash/issue/2-1813/create-new-incoming-webhook-hooks-on-the-frontend

Adds incoming webhook hooks to help us with CRUD operations on the
frontend.
2024-01-08 15:12:47 +00:00
Mateusz Kwasniewski
8955a9906d
feat: extended metrics options ui (#5786) 2024-01-08 14:49:41 +01:00
Thomas Heartman
c6f1f44e64
chore: show new change request diagram for users who are exposed to scheduled CRs (#5777)
This PR adds the new CR diagram (with schedule info) conditionally.
It'll only render for users who are exposed to scheduled CRs.

It also updates the text of the old version to make it all consistent
and adds a `aria-details` attribute to the SVG so that assistive tech
knows what it is.

New version

![image](https://github.com/Unleash/unleash/assets/17786332/54833996-41ff-4d5c-9c62-8eb36aa065c6)
2024-01-08 09:49:13 +05:30
Nuno Góis
c6ba9603c8
fix: demo banner zIndex, display on top (#5776)
This PR does 2 things:
- Fixes the `DemoBanner` zIndex to be the same as the sticky banners (no
longer displays on top of modals)
- Moves the `Demo` wrapper to `App` instead of `MainLayout`, always
displaying the demo banner before other banners


![image](https://github.com/Unleash/unleash/assets/14320932/b115ee7f-26e0-468f-91aa-1f82335a6538)
2024-01-05 14:57:34 +00:00
Fredrik Strand Oseberg
04814bfc63
fix: add condition to show variants tab (#5775)
Adds a conditional check so we don't display this tab for strategies
that don't support it.
2024-01-05 11:05:58 +01:00
Fredrik Strand Oseberg
de7f6e035e
feat: add badges to the new strategy configuration form (#5773)
This PR adds badges to display the amount of variants and constraints /
segments.

<img width="778" alt="Skjermbilde 2024-01-05 kl 10 12 39"
src="https://github.com/Unleash/unleash/assets/16081982/3a188d46-7d2f-4fa2-b2a9-e64a59d5ef09">
2024-01-05 10:28:27 +01:00
Fredrik Strand Oseberg
46ecce49a8
fix: add checks to remove warnings on project settings (#5766)
This PR removes warning on the project settings by always making sure we
have the project before rendering the settings and do a conditional
check on the featureLimit number field.
2024-01-05 09:23:12 +01:00
Nuno Góis
769146fbd3
fix: properly handle markdown links (#5768)
Iterates on https://github.com/Unleash/unleash/pull/5762

While on the previous PR we would always open markdown links on a new
tab, we still want to navigate on the same tab when a relative link is
specified.

This adds a new `Markdown` common component with this logic by default,
which should make things a lot simpler and easier to maintain. The logic
that was followed is similar to the existing internal/external links
logic in our banners.
2024-01-05 08:18:34 +00:00
Nuno Góis
ab139553c5
fix: adapts react markdown to open links in new tab (#5762)
Adapts our current implementations of `ReactMarkdown` to always open
markdown links in new tabs.
2024-01-04 14:32:27 +00:00
Jaanus Sellin
77074a26de
refactor: now always show feedback button for search page (#5765) 2024-01-04 14:59:45 +02:00
Jaanus Sellin
182901aab6
feat: plausible for feedback (#5763) 2024-01-04 14:38:54 +02:00
Jaanus Sellin
b24471c1b4
feat: add dont ask me again button (#5753) 2024-01-04 14:10:01 +02:00
Fredrik Strand Oseberg
5582339560
feat: add click away handler to sidebar content (#5751)
Does what it says on the can
2024-01-04 12:33:00 +01:00
Thomas Heartman
ff96563742
fix: align timeline icon for schedule failures (#5761)
Aligns the icon to the end of the end of the box to make it match the
text.

Also removes a redundant br element.
2024-01-04 16:04:50 +05:30
Thomas Heartman
795aa18bca
fix: use the correct icon for failed scheduled CRs (#5760)
This PR switches the notification icon to an exclamation mark (the Error
icon). It updates three components:

1. The badge
2. The timeline
3. The review status

Screenshot with all the replaced icons

![image](https://github.com/Unleash/unleash/assets/17786332/cb10b8d1-9da3-4c48-b13c-09c7680e2b05)
2024-01-04 15:44:53 +05:30
Nuno Góis
8736189b4f
fix: UI improvements related to the increase of width (#5752)
https://linear.app/unleash/issue/UNL-309/1500px-width-ui-issues

UI fixes, improvements and adjustments related to the recent increase in
width on the UI. Tried to follow the feature flag logic wherever it made
sense.


![image](https://github.com/Unleash/unleash/assets/14320932/b5b4f437-c232-4025-ab24-09070a036592)


![image](https://github.com/Unleash/unleash/assets/14320932/e9008e3b-db5c-4553-bd7d-58a01120433d)


Co-authored-by: Nicolae <nicolae@getunleash.ai>
2024-01-04 09:57:30 +00:00
Jaanus Sellin
e0c9ef6d2f
fix: snapshot update to fix build (#5755) 2024-01-04 09:02:08 +01:00
Simon Hornby
efa2117ded
chore: update default version in UI (#4761)
We get a flash of the Unleash scaffold when we first load the page. For
a brief moment, we display version 3 and then overwrite it with the
correct version. Looks kinda silly, we know we're in version 5.x so
let's just do that
2024-01-03 22:23:25 +01:00
Fredrik Strand Oseberg
70600552d2
Feat/add feedback to new strategy form (#5745)
This PR adds the feedback form to the new create / edit strategy form
behind a feature flag.

* Add feedback form
* Minor refactor to useFeedback
2024-01-03 15:43:22 +01:00
Jaanus Sellin
a73d87a943
feat: make feedback available for OSS (#5748) 2024-01-03 15:08:01 +02:00
Thomas Heartman
1556a51e37
fix: update text in scheduling components (#5746)
This pr updates the text in some of the scheduling components to be more
clear and consistent.
2024-01-03 18:18:52 +05:30
Thomas Heartman
b0c5baa9d3
chore: format schedule information according to user preferences (#5747)
This pr uses the user's preferred timezone to display the scheduled
times. If the user has no preferences, the default will be used.

With norwegian locale set as preference: 

<img width="1529" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/0072432c-e470-4edc-91fb-864a86bc8f30">

With nothing set (falls back to my system setting):
<img width="1529" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/adf3d95f-4015-4302-ac09-e3ba511090db">
2024-01-03 18:18:43 +05:30
Ivar Conradi Østhus
fef6935d3a
feat: license checker for self-hosted (#5239)
Show banner for enterprise self-hosted if they violate their license.

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-01-02 20:06:35 +00:00
Jaanus Sellin
dc0df235dd
chore: remove private projects flag (#5743) 2024-01-02 15:53:26 +02:00
Fredrik Strand Oseberg
049c5b9afa
feat: variant name change on create (#5742)
This PR refactores the StrategyVariants component to be passed in from
the outside to the new form component. This allows us to pass in the
StrategyVariants with an "editable" property in the create form which we
use to determine the editable state of the name input field. If the
editable field is not passed in we keep the old behavior.

Notable changes:
* StrategyVariants is now passed in from the outside, allowing us to
define different props at call time
* Added tests for the new behavior, and for keeping the old behavior
(such as in edit strategy)
* Added tracking
2024-01-02 13:53:04 +01:00
Jaanus Sellin
e4c9a257ad
feat: make local storage work and make feedback url configurable (#5738)
Make storage work react way.
Make feedback url configurable by env variable.
2023-12-29 13:19:08 +02:00
Jaanus Sellin
55bd0a6760
feat: keep feedback submission in local storage (#5737)
Now it will track if feedback has been submitted in local storage.
2023-12-29 10:08:19 +02:00
Jaanus Sellin
86da11015c
feat: ui now connects to backend, full e2e (#5736)
Added API hooks and now frontend actually sends data to database.
2023-12-28 14:31:53 +02:00
Jaanus Sellin
2588a90f79
feat: feedback screen main ui (#5729)
Completes the main UI for feedback.
Next steps is to correct data flow and finetuning.
2023-12-28 09:30:36 +02:00
Tymoteusz Czech
eeb2b2115e
Fix: icon rendering issue in ApplicationList and add help to app update (#5730)
- Fixed app icon rendering
- Added tooltip with link to MUI
2023-12-27 18:35:08 +01:00
Jaanus Sellin
9d8487ad6e
feat: feedback skeleton ui (#5727)
This adds component, which will allow to draw feedback component based
on incoming data.
2023-12-22 15:09:02 +02:00
Jaanus Sellin
d8a7d76f7b
chore: generate missing orval types (#5722) 2023-12-22 12:10:50 +02:00
andreas-unleash
12100b3912
fix: add padding to warning banner (#5720)
Closes #
[1-1830](https://linear.app/unleash/issue/1-1830/potential-conflict-warning-add-padding-8px)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-21 14:58:17 +02:00
andreas-unleash
aea18d1ac4
fix: review status title color (#5716)
Closes #
[1-1825](https://linear.app/unleash/issue/1-1825/change-the-color-of-the-scheduled-and-pending-state-to-warningdark)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-21 14:38:33 +02:00
Jaanus Sellin
3926ec6c51
feat: tracking feature buttons clicks (#5714) 2023-12-21 11:01:16 +02:00
Tymoteusz Czech
9b7981047d
Fix row selection on paginated pages (#5706) 2023-12-21 11:01:10 +02:00
David Leek
4e56d1d8d5
feat: implement column created_by_user_id in feature_tag (#5695)
## About the changes

Adds the new nullable column created_by_user_id to the data used by
feature-tag-store and feature-tag-service. Also updates openapi schemas.
2023-12-21 10:00:45 +01:00
andreas-unleash
e0f83347ab
fix: hide variant diff if no change in ChangeRequestOverview (#5715)
Closes #
[1-1813](https://linear.app/unleash/issue/1-1813/do-not-show-variants-table-in-change-request-when-no-variant-change)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-21 10:39:18 +02:00
Fredrik Strand Oseberg
3ab331dce7
feat: increase unleash width (#5707)
This PR adds two feature flags:
* One is to add some holiday cheer to the unleash logo
* The other allows us to increase the width of unleash if the screen
allows it

<img width="1837" alt="Skjermbilde 2023-12-20 kl 16 18 16"
src="https://github.com/Unleash/unleash/assets/16081982/a25ccfb0-fd99-470f-8583-3ba9ef9186f9">
2023-12-21 08:42:28 +01:00
Fredrik Strand Oseberg
59a6ef46e8
fix: separate concerns for ConstraintAccordionList (#5701)
## Problem

The ConstraintAccordionList component was used in multiple places: 
* Playground
* Segment form
* StrategyExecution
* Change requests
* Create strategy
* Edit strategy

This is problematic because some of the views are just pure visual
representations, and other views allow you to interact with and edit the
constraints. This causes a situation where the visual representation
needs to be aware of the implementation details of editing and mutating
constraints. In addition the ConstraintAccordionList is not just a pure
rendering of the list, it also keeps internal state on when to show the
create button and optional headers. This is makes it hard to make
changes when stylings need to be subtly different across components.

## Solution

Taking on the full refactor for this is out of scope, but it's
unfortunate that the ConstraintAccordionList needs all this internal
state. For now I split out the list into it's own component called
ConstraintList. I gathered the functions needed for editing and mutating
the constraints in a reusable hook and isolated the version of the list
used in the new feature strategy edit / create components into it's own
component so that the changes in layout will not affect anything else.

Ideally we should try to move towards a future where the components
don't keep internal state like this but clear boundaries and purposes
for the use.
2023-12-20 15:36:23 +01:00
Tymoteusz Czech
6d0e32810c
fix: empty paginated table state (#5685)
Table placeholder should be visible if search query returns no data.
2023-12-20 14:11:21 +00:00
Mateusz Kwasniewski
f3ca4f0c54
chore: upgrading vite to newer version (#5703) 2023-12-20 14:48:18 +01:00
andreas-unleash
0f8a6661a8
Feat: allow rescheduling of failed scheduled cr (#5702)
Allows for rescheduling failed scheduled requests

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-20 15:19:23 +02:00
Jaanus Sellin
bb5b322475
fix: now project overview has skeleton instead of placeholders (#5696)
Removed `ref` dependency from `useLoading` hook, it was being overly
reactive and breaking skeleton.
2023-12-20 14:59:41 +02:00
Mateusz Kwasniewski
7be0c55d39
fix: move paginated table into isolation context (#5694) 2023-12-20 10:47:22 +01:00
Fredrik Strand Oseberg
5a263ee35c
Feat/new strategy configuration tests (#5692)
Does what it says
2023-12-20 09:16:45 +01:00
Jaanus Sellin
c979e687ca
fix: remove extra call to features on project load (#5690)
Currently EnableEnvironmentDialog was loaded even if no feature was
touched. Now it will only load, if feature toggle was selected.
2023-12-19 21:03:24 +02:00
Tymoteusz Czech
dce91b0e90
fix: pagination and column width 2023-12-19 16:24:43 +01:00
Mateusz Kwasniewski
8306073e1f
feat: keep filter order (#5688) 2023-12-19 15:35:39 +01:00
Nuno Góis
c0bc2d9b68
fix: prevent banner from crashing with invalid variant (#5686)
https://linear.app/unleash/issue/2-1760/prevent-banner-from-crashing-when-set-with-an-invalid-variant

This prevents the banner from crashing when set with an invalid variant.
Instead, it default its styles to the default variant, which is `info`.

Also adds tests to validate our assumptions.
2023-12-19 13:09:40 +00:00
Tymoteusz Czech
8388700f76
fix: project features batch actions refetch (#5680)
Reload paginated features on project overview after batch action.
2023-12-19 14:46:06 +02:00
Jaanus Sellin
42943ada75
fix: now history is only shown to search bars that have id to save hi… (#5684) 2023-12-19 14:20:10 +02:00
Jaanus Sellin
8e09f08a05
feat: rebrand feature toggle list as search (#5675) 2023-12-19 13:42:14 +02:00
Mateusz Kwasniewski
7800d9d1b4
feat: export all features in project (#5677) 2023-12-19 08:57:10 +01:00
Tymoteusz Czech
b2c31a3bd3
fix: column visibility (#5676)
- always show favorites and selection
- reset local storage columns cache
2023-12-18 16:24:39 +01:00
Mateusz Kwasniewski
e380d28924
feat: up and down arrow navigation for filter items (#5673) 2023-12-18 14:13:32 +01:00
andreas-unleash
75bdd73c15
feat: add plausible tracking to scheduling (#5668)
Adds plausible tracking with actions:
- scheduled-created
- scheduled-updated
- scheduled-rejected
- scheduled-applied

Closes #
[1-1630](https://linear.app/unleash/issue/1-1630/add-plausible-metrics)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-18 15:06:58 +02:00
Paulo Miranda
fd34f35e0e
feat: add reset password to user manager (#5580)
## About the changes
This PR adds a reset password functionality to user table (only available to admins). This makes it possible to reset passwords without configuring the email service.

![Screenshot from 2023-12-10
20-41-22](https://github.com/Unleash/unleash/assets/32435715/0209525a-4f3a-4998-b9de-7299469e1a68)

![Screenshot from 2023-12-16
16-40-36](https://github.com/Unleash/unleash/assets/32435715/556e324c-c0b0-4bb9-b2b5-3bd653f4d329)

![Screenshot from 2023-12-16
16-40-48](https://github.com/Unleash/unleash/assets/32435715/b0249e9d-9e1a-4cfe-a5ee-0ab22f45ce28)

---------

Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
Co-authored-by: Thomas Heartman <thomasheartman+github@gmail.com>
2023-12-18 13:54:04 +01:00
Mateusz Kwasniewski
c5b3058890
fix: date filter item missing key (#5674) 2023-12-18 13:51:27 +01:00
Mateusz Kwasniewski
6bf54a2f24
feat: keyboard navigation filter item (#5667) 2023-12-18 12:36:00 +01:00
Mateusz Kwasniewski
5ba588f59a
feat: Multi highlighter (#5666) 2023-12-18 10:58:07 +01:00
andreas-unleash
7fdd720aa3
feat: show failure in cr overview (#5660)
Show failure reason in change request overview

Closes
[1-1769](https://linear.app/unleash/issue/1-1769/add-reason-and-icon-to-change-request-overview)
<img width="771" alt="Screenshot 2023-12-15 at 10 37 03"
src="https://github.com/Unleash/unleash/assets/104830839/898b6ac9-bd44-442f-92a4-9b4d5754fea7">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-18 11:37:56 +02:00
Jaanus Sellin
2da919fee9
fix: disable sort (#5665)
'
2023-12-18 10:25:10 +02:00
Mateusz Kwasniewski
cc01971ff0
feat: update message with no feature toggles (#5663) 2023-12-18 09:05:58 +01:00
Tymoteusz Czech
50ff36cbce
feat: feature table tags (#5659)
- tags on project overview
- refactor of tags cell
2023-12-15 16:22:19 +01:00
Mateusz Kwasniewski
d429f51cbd
feat: filter chips icons (#5658) 2023-12-15 13:42:09 +00:00
Fredrik Strand Oseberg
864ae4530b
Feat/new strategy configuration header (#5655)
This PR adds more information to the header of the strategy according to
the new designs:

<img width="1298" alt="Skjermbilde 2023-12-15 kl 13 31 26"
src="https://github.com/Unleash/unleash/assets/16081982/73a3bc6b-c78b-4f24-b9f3-8a4b2c14e39c">
2023-12-15 14:09:47 +01:00
Mateusz Kwasniewski
8283edfc0a
feat: Sort by stale (#5653) 2023-12-15 11:56:06 +00:00
Mateusz Kwasniewski
bf4d37fded
feat: disable sorting on selected columns (#5652) 2023-12-15 12:47:00 +01:00
Fredrik Strand Oseberg
cbd6aa1324
Feat/new strategy variants tab (#5649)
This PR sets up the variants tab for the new strategy configuration.
Also some minor adjustments to the new form:

* Change where padding is controlled to allow us to have more granular
control over how the buttons width and border should look and have the
tabs have full-width borders across the form
* Move the buttons to be absolutely positioned at the bottom of the page
* Move where we display banners to avoid clutter

<img width="1284" alt="Skjermbilde 2023-12-14 kl 21 17 53"
src="https://github.com/Unleash/unleash/assets/16081982/45e6a364-e4aa-47ac-b420-f3be9b39a15e">
2023-12-15 12:26:13 +01:00
Jaanus Sellin
848415c5ca
feat: add history for search (#5651)
This is simple refactor. Just moving history part out of suggestions
component.
2023-12-15 13:22:19 +02:00
Tymoteusz Czech
203d6ac848
refactor: paginated project table cleanup (#5646)
- added `getRowId` - fix row selection
- move and rename paginated table
2023-12-15 11:37:49 +01:00
Nuno Góis
8be09510e8
chore: clean up banners feature flag (#5648)
Cleans up some leftover references to the `banners` feature flag. 

Related to https://github.com/Unleash/unleash/pull/5348
2023-12-15 10:16:13 +00:00
Nuno Góis
f84fa81ebe
chore: add incomingWebhooks feature flag (#5647)
https://linear.app/unleash/issue/2-1683/feature-flag-add-a-new-incomingwebhooks-feature-flag-for-this-feature

Adds a new `incomingWebhooks` feature flag.
2023-12-15 10:15:52 +00:00
Mateusz Kwasniewski
0726887bb8
feat: reset persistent table offset on change (#5650) 2023-12-15 10:20:55 +01:00
Fredrik Strand Oseberg
53b32db278
Feat/new strategy configuration targeting tab (#5643)
This PR sets up the new targeting tab for strategy configuration:

<img width="1292" alt="Skjermbilde 2023-12-14 kl 11 24 11"
src="https://github.com/Unleash/unleash/assets/16081982/5c2d8f02-b3ec-49d4-b8bd-90f93ef3931c">
2023-12-15 10:20:34 +01:00
Jaanus Sellin
fbb5dd9022
feat: add icons to filters (#5640) 2023-12-14 15:06:26 +02:00
Mateusz Kwasniewski
772682176e
feat: pagination reset on feature list (#5644) 2023-12-14 13:44:27 +01:00
andreas-unleash
a595c0fbcc
feat: show failure reason for scheduled requests in timeline (#5639)
Adds an icon with a tooltip and changes the dot color to red for
scheduled change requests

Closes #
[1-1768](https://linear.app/unleash/issue/1-1768/add-reason-and-icon-to-timeline)
<img width="1668" alt="Screenshot 2023-12-14 at 10 20 27"
src="https://github.com/Unleash/unleash/assets/104830839/dcf54834-ea9f-4e78-b69d-15d6179ffce3">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-14 11:49:14 +02:00
andreas-unleash
cbd50ac0f5
Feat: show status of scheduled change request (#5630)
Modifies the ChangeRequestStatusBadge to display the failed execution

Closes #
[1-1767](https://linear.app/unleash/issue/1-1767/add-status-to-scheduled-badge)
![Screenshot 2023-12-13 at 13 10
42](https://github.com/Unleash/unleash/assets/104830839/5aab83b4-a3d8-4a88-8f17-628cb37d7850)
![Screenshot 2023-12-13 at 13 15
26](https://github.com/Unleash/unleash/assets/104830839/799e4bbe-b469-4cee-a3df-f0b6efcca33a)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-14 11:49:03 +02:00
Mateusz Kwasniewski
176e22ed40
feat: adjust filter chips styling (#5638) 2023-12-14 10:40:12 +01:00
Tymoteusz Czech
29bd636273
Feat: row actions (#5635)
- add table placeholder back
- add row actions column
- refactor actions into hook
- batch actions
2023-12-14 09:04:56 +01:00
Mateusz Kwasniewski
adb9ba5c09
test: filter selection avoid duplicates (#5636) 2023-12-13 15:57:49 +01:00
Jaanus Sellin
d00d27a9ac
fix: last seen now will not break (#5634) 2023-12-13 16:05:54 +02:00
Jaanus Sellin
1191094981
feat: add tests for filters component (#5632) 2023-12-13 16:05:09 +02:00
Mateusz Kwasniewski
bcf0e6b7a3
fix: avoid duplicate unselected filters (#5633) 2023-12-13 13:01:55 +01:00
Fredrik Strand Oseberg
c552f3ae72
Feat/new strategy configuration general tab (#5628)
* Adds the new general tab settings behind a feature flag
* Adds a test for the FlexibleStrategy component
2023-12-13 12:34:43 +01:00
Mateusz Kwasniewski
54316cace3
feat: project filter names (#5627) 2023-12-13 11:34:30 +01:00
Jaanus Sellin
92dd3feec2
refactor: project overview using filters component (#5626) 2023-12-13 11:56:08 +02:00
Jaanus Sellin
ed4a182e7e
refactor: filter abstraction (#5625) 2023-12-13 11:43:02 +02:00
Tymoteusz Czech
17b747ea8f
feat: project features - new columns visibility handling (#5605)
In `ExperimentalProjectTable.tsx`, changes have been made to the columns
configuration in order to handle column visibiilty. This includes adding
id property to every column. Logic responsible for dynamically adjusts
column visibility based on screen size was moved to new hook,
`useDefaultColumnVisibility`
2023-12-13 10:08:16 +01:00
Jaanus Sellin
c0c1dba9b0
refactor: simplify configuration for filters (#5622)
This is building block of abstraction for filters.
2023-12-13 10:23:59 +02:00
Mateusz Kwasniewski
11b477d872
test: scrollable filter options and sticky search (#5623) 2023-12-13 09:23:20 +01:00
Mateusz Kwasniewski
2b7e127680
test: feature toggle list table (#5618) 2023-12-13 08:13:19 +01:00
Jaanus Sellin
4f207f18e6
feat: filters for project overview (#5620) 2023-12-12 22:50:49 +02:00
Jaanus Sellin
1c95029319
feat: add plausible tracking (#5614) 2023-12-12 15:46:48 +02:00
Jaanus Sellin
8961a6e1db
fix: paginated project overview now returns single project (#5615) 2023-12-12 15:46:08 +02:00
andreas-unleash
4376697250
feat: show Changes scheduled in feature variants even when CR are dis… (#5613)
show Changes scheduled in feature variants even when CR are disabled

Modifies existing hook to call the new `change-requests/scheduled`
endpoint that returns the relevant scheduled change requests even when
change requests are disabled

Rename the ChangeRequestIdentityData to ScheduledChangeRequestViewModel
for consistency (finalised schemas will replace the BE and FE types in a
follow up PR)

Closes #
[1-1746](https://linear.app/unleash/issue/1-1746/show-change-scheduled-badge-in-feature-environment-variants-even-if)

<img width="1486" alt="Screenshot 2023-12-12 at 14 24 44"
src="https://github.com/Unleash/unleash/assets/104830839/7c4e92ef-81d8-423e-8b78-9015ede59952">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-12 15:34:32 +02:00
Tymoteusz Czech
bc62a98f51
update withTableState (#5603)
## About the changes
Handle column visibility from table state in URL and local storage.
2023-12-12 14:01:04 +01:00
Tymoteusz Czech
8a5a73ad7d
feat: new columns visibility menu (#5604)
New `<ColumnsMenu />` is using it's own list of elements instead of
inferring it from table columns definition. This component doesn't need
it's internal structure to depend on react-table and it's interface.
2023-12-12 13:41:25 +01:00
Jaanus Sellin
386c4baa86
feat: keep filters ordered based on user selection (#5609) 2023-12-12 13:01:23 +02:00
Mateusz Kwasniewski
850b78a699
fix: show popover on empty state (#5611) 2023-12-12 11:40:00 +01:00
Mateusz Kwasniewski
eebe43fcb1
feat: show dropdown immediately (#5606) 2023-12-12 09:27:50 +01:00
Mateusz Kwasniewski
e88beff2b2
feat: do not cache old search and filter results (#5600) 2023-12-12 08:47:57 +01:00
andreas-unleash
e02c252636
fix: show Changes scheduled badge for strategies even if change reque… (#5599)
show Changes scheduled badge for strategies even if change requests are
disabled

Closes #
[1-1745](https://linear.app/unleash/issue/1-1745/show-changes-scheduled-badge-in-strategy-item-even-if-change-requests)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-12 09:30:57 +02:00
Jaanus Sellin
74f6f15247
feat: do not show project if not multiple projects exist (#5598) 2023-12-11 16:02:10 +02:00
Fredrik Strand Oseberg
9dbb7ea9a9
feat: add initial setup for tabs (#5586)
This PR sets up the initial tab structure for the new strategy form
2023-12-11 13:39:21 +01:00
Tymoteusz Czech
d11aedc12f
Project Overview with react-table v8 (#5571) 2023-12-11 13:33:11 +01:00
Mateusz Kwasniewski
ba50d1ef69
feat: adjust styling for search filters (#5587) 2023-12-11 13:11:26 +01:00
Jaanus Sellin
9bae14a2cc
feat: add tags filter (#5584) 2023-12-11 14:10:03 +02:00
Fredrik Strand Oseberg
ec670450fd
feat: initial setup (#5583)
This PR sets up the feature flag for the new strategy configuration and
duplicates the components for the new setup
2023-12-11 12:23:18 +01:00
andreas-unleash
2322e1149a
feat: more info on staleness in health report (#5582)
Adds an info tooltip for potentially stale and a link to configure
feature toggle type lifetime


Closes
[UNL-215](https://linear.app/unleash/issue/UNL-215/improve-health-page-with-some-guidance-about-staleness)
<img width="1323" alt="Screenshot 2023-12-11 at 11 39 36"
src="https://github.com/Unleash/unleash/assets/104830839/386ec6e6-55df-42ca-b5e0-ef3e75448452">

<img width="1316" alt="Screenshot 2023-12-11 at 11 43 07"
src="https://github.com/Unleash/unleash/assets/104830839/5bf7df15-ff87-4ce0-be25-0c031c881d05">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-11 13:11:28 +02:00
Jaanus Sellin
5d80f5fa4d
feat: test filter date item (#5576) 2023-12-11 12:22:00 +02:00
Thomas Heartman
879e4c98e5
feat: show potential schedule conflicts when you archive flags (#5575)
Show change requests that would be impacted by an archive operation


![image](https://github.com/Unleash/unleash/assets/17786332/7b2af89a-7292-4b90-b7a4-768df375e0fb)
2023-12-11 10:45:45 +01:00
Tymoteusz Czech
e5c865b716
fix: menu routes for new features page - mobile option (#5566)
Remove duplicated option in the menu.
2023-12-08 14:53:10 +02:00
Thomas Heartman
cd731cef03
refactor: update the API url for getting scheduled change requests with a strategy (#5573)
Relates to enterprise PR 889; update the API url
2023-12-08 12:29:54 +01:00
Jaanus Sellin
166432bcb0
feat: support localization in date filter (#5572) 2023-12-08 13:20:39 +02:00
Jaanus Sellin
1173b664da
feat: add created date filter component (#5569) 2023-12-08 10:07:57 +02:00
Simon Hornby
0e5861ac33
chore: use explicit images for inverted operator rather than a boolean not operator (#5565) 2023-12-07 13:03:19 +02:00
Jaanus Sellin
e89ebf358e
refactor: split filter configuration with filter visibility state (#5563)
This PR splits the filter configuration with filter visibility state.
This will simplify adding different filter types in future, for example
date filters.
2023-12-07 11:59:35 +02:00
Mateusz Kwasniewski
38d02e1a85
feat: segments operators (#5562) 2023-12-06 17:38:36 +02:00
Thomas Heartman
a228f54344
feat: show scheduled CRs using strategies when removing it (#5560)
Show a warning about how deleting a strategy might mess up scheduled
change requests.

If there are change requests, list them. If there are no conflicts, show
nothing. If we don't know (because of no successful response from the
API), say that it might cause issues.


![image](https://github.com/Unleash/unleash/assets/17786332/2c6a4257-69f5-458a-ab6f-9b2ea2f5d550)
2023-12-06 15:39:17 +01:00
Mateusz Kwasniewski
87ebbb0fa2
feat: segments filter (#5558)
Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2023-12-06 14:50:18 +02:00
Jaanus Sellin
eda4186a6c
fix: state now persist to filters (#5559)
When navigating to features list, now it will respect the query params.
2023-12-06 14:17:49 +02:00
Jaanus Sellin
d9648de08d
chore: rename is not any of to is none of (#5544) 2023-12-06 12:53:51 +02:00
Jaanus Sellin
eb43d37379
feat: segment cell and orval types (#5543) 2023-12-06 12:51:00 +02:00
Jaanus Sellin
b8fabbd726
feat: add new filter button with state (#5556)
[Screencast from 2023-12-05
16-59-28.webm](https://github.com/Unleash/unleash/assets/964450/793c771b-6246-4e28-8c13-920696a48bd5)

---------

Co-authored-by: kwasniew <kwasniewski.mateusz@gmail.com>
2023-12-06 12:50:33 +02:00
Mateusz Kwasniewski
da1a9d4036
test: Filter item test (#5557) 2023-12-06 09:10:15 +01:00
Mateusz Kwasniewski
2dcf4af7b1
feat: filter persisted in url (#5549) 2023-12-05 17:31:23 +01:00
Nuno Góis
f348acb3b9
feat: improve role form validation (#5548)
https://linear.app/unleash/issue/2-1717/improve-the-ux-when-all-the-required-fields-are-not-filled-in

Improves role form validation behavior.
We may want to look into a form validation library, like
[react-hook-form](https://react-hook-form.com/), for future
implementations.
2023-12-05 12:39:30 +00:00
Saeed Akasteh
fa9d38fc22
fix(removeapitokenbutton.tsx): add environment name in delete token modal (#5469)
add environment name in delete token modal
2023-12-05 13:17:31 +01:00
Tymoteusz Czech
b5122a74e7
refactor: table state management in withTableState (#5531) 2023-12-05 12:16:58 +01:00
Tymoteusz Czech
795c67306c
fix: features sidebar scroll (#5524)
Feature toggle overview screen - the sidebar getting sticky was making it hard to see many environments
2023-12-05 09:08:02 +01:00
Jaanus Sellin
6b2b7a3388
chore: generate new models from openapi (#5528) 2023-12-04 21:49:49 +02:00
Tymoteusz Czech
ddca82213a
refactor: project overview table state (#5530)
Use new table state management on project overview and on
project/features
2023-12-04 17:04:28 +01:00
Mateusz Kwasniewski
5c889df9be
test: persistent table state (#5529) 2023-12-04 15:47:53 +01:00
Tymoteusz Czech
a506b92544
feat: Refactor Table State Persistence in Feature Toggle List (#5527)
new custom hook, `usePersistentTableState`

Co-authored-by: Mateusz Kwasniewski <kwasniewski.mateusz@gmail.com>
2023-12-04 13:21:03 +00:00
Thomas Heartman
a0a15416c4
feat: display potential conflicts in existing change requests (#5521)
This update displays schedule conflicts in active change requests (any
CR that isn't applied, canceled, or rejected).


![image](https://github.com/Unleash/unleash/assets/17786332/181c6c0a-f5de-4eed-9093-ac0109e1e8f3)
2023-12-04 13:33:28 +01:00
Mateusz Kwasniewski
a9363efec1
fix: prevent search being stacked on top of the form dropdown (#5523) 2023-12-04 12:27:25 +01:00
Jaanus Sellin
a299885e22
feat: update project overview endpoint (#5518)
1. Created new hook for endpoint
2. Start removing useProject hook, when features not needed.
2023-12-01 20:00:35 +02:00
Tymoteusz Czech
755c22f3b9
feat: features list pagination (#5496)
New paginated table - tested on /features-new behind a flag
2023-12-01 14:53:05 +00:00
Tymoteusz Czech
fba80222de
Frontend OpenAPI types update (#5520) 2023-12-01 13:30:30 +00:00
andreas-unleash
02451baaf2
feat: hide change actions when change request is scheduled (#5514)
Added 'Scheduled' state to the check for non-pending change requests

Closes #
[1-1680](https://linear.app/unleash/issue/1-1680/remove-edit-change-ui-when-cr-is-scheduled)
<img width="868" alt="Screenshot 2023-11-30 at 11 54 44"
src="https://github.com/Unleash/unleash/assets/104830839/8e6afec5-1353-4030-b49b-4a8f3eaee5f6">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-11-30 12:52:29 +02:00
Mateusz Kwasniewski
2b66ba41dc
fix: groups link (#5511) 2023-11-30 09:42:27 +01:00
Tymoteusz Czech
f690fe86da
feat: new search for feature toggle list table (#5454)
Filtering of feature toggles list with backend
2023-11-29 10:42:35 +01:00
Tymoteusz Czech
e476de5faa
feat: update feature search (#5473) 2023-11-29 08:45:30 +01:00
renovate[bot]
c7498dcac6
chore(deps): update dependency @biomejs/biome to v1.4.0 (#5288)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev)
([source](https://togithub.com/biomejs/biome)) | [`1.3.3` ->
`1.4.0`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/1.3.3/1.4.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@biomejs%2fbiome/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@biomejs%2fbiome/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@biomejs%2fbiome/1.3.3/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@biomejs%2fbiome/1.3.3/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

###
[`v1.4.0`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#140-2023-11-27)

[Compare
Source](af24597c18...889593e3f9)

##### CLI

- Remove the CLI options from the `lsp-proxy`, as they were never meant
to be passed to that command. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `--config-path` to `lsp-proxy` and `start` commands. It's
now possible to tell the Daemon server to load `biome.json` from a
custom path. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add new `--diagnostic-level` option to let users control the level of
diagnostics printed by the CLI. Possible values are: `"info"`, `"warn"`,
`"hint"`. Contributed by
[@&#8203;simonxabris](https://togithub.com/simonxabris)

- Add option `--line-feed` to the `format` command. Contributed by
[@&#8203;SuperchupuDev](https://togithub.com/SuperchupuDev)

- Add option `--bracket-same-line` to the `format` command. Contributed
by [@&#8203;faultyserve](https://togithub.com/faultyserve)

- Add option `--bracket-spacing` to the `format` command. Contributed by
[@&#8203;faultyserve](https://togithub.com/faultyserve)

##### Bug fixes

- Fix the command `format`, now it returns a non-zero exit code when if
there pending diffs. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

##### Configuration

- Add option `formatter.lineFeed`. Contributed by
[@&#8203;SuperchupuDev](https://togithub.com/SuperchupuDev)
- Add option `javascript.formatter.bracketSameLine`. Contributed by
[@&#8203;faultyserve](https://togithub.com/faultyserve)
- Add option `javascript.formatter.bracketSpacing`. Contributed by
[@&#8203;faultyserve](https://togithub.com/faultyserve)

##### Formatter

##### New features

- Add a new option
[`--line-ending`](https://biomejs.dev/reference/configuration/#formatterlineending).
This option allows changing the type of line endings. Contributed by
[@&#8203;SuperchupuDev](https://togithub.com/SuperchupuDev)
- Added a new option called `--bracket-spacing` to the formatter. This
option allows you to control whether spaces are inserted around the
brackets of object literals.
[#&#8203;627](https://togithub.com/biomejs/biome/issues/627).
Contributed by [@&#8203;faultyserver](https://togithub.com/faultyserver)
- Added a new option called `--bracket-same-line` to the formatter. This
option allows you to control whether spaces are inserted around the
brackets of object literals.
[#&#8203;627](https://togithub.com/biomejs/biome/issues/627).
Contributed by [@&#8203;faultyserver](https://togithub.com/faultyserver)

##### Bug fixes

- Fix [#&#8203;832](https://togithub.com/biomejs/biome/issues/832), the
formatter no longer keeps an unnecessary trailing comma in type
parameter lists. Contributed by
[@&#8203;Conaclos](https://togithub.com/Conaclos)

- Fix [#&#8203;301](https://togithub.com/biomejs/biome/issues/301), the
formatter should not break before the `in` keyword. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

##### Linter

##### Promoted rules

-
[a11y/noInteractiveElementToNoninteractiveRole](https://biomejs.dev/linter/rules/no-interactive-element-to-noninteractive-role)
-
[complexity/noThisInStatic](https://biomejs.dev/linter/rules/no-this-in-static)
-
[complexity/useArrowFunction](https://biomejs.dev/linter/rules/use-arrow-function)
-
[correctness/noEmptyCharacterClassInRegex](https://biomejs.dev/linter/rules/no-empty-character-class-in-regex)
-
[correctness/noInvalidNewBuiltin](https://biomejs.dev/linter/rules/no-invalid-new-builtin)
-
[style/noUselessElse](https://biomejs.dev/linter/rules/no-useless-else)
-
[style/useAsConstAssertion](https://biomejs.dev/linter/rules/use-as-const-assertion)
-
[style/useShorthandAssign](https://biomejs.dev/linter/rules/use-shorthand-assign)
-
[suspicious/noApproximativeNumericConstant](https://biomejs.dev/linter/rules/no-approximative-numeric-constant)
-
[suspicious/noMisleadingInstantiator](https://biomejs.dev/linter/rules/no-misleading-instantiator)
-
[suspicious/noMisrefactoredShorthandAssign](https://biomejs.dev/linter/rules/no-misrefactored-shorthand-assign)

The following rules are now recommended:

-   [a11y/noAccessKey](https://biomejs.dev/linter/rules/no-access-key)
-
[a11y/useHeadingContent](https://biomejs.dev/linter/rules/use-heading-content)
-
[complexity/useSimpleNumberKeys](https://biomejs.dev/linter/use-simple-number-keys)

The following rules are now deprecated:

-
[correctness/noNewSymbol](https://biomejs.dev/linter/rules/no-new-symbol)
The rule is replaced by
[correctness/noInvalidNewBuiltin](https://biomejs.dev/linter/rules/no-invalid-new-builtin)

##### New features

- Add
[noDefaultExport](https://biomejs.dev/linter/rules/no-default-export)
which disallows `export default`. Contributed by
[@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add
[noAriaHiddenOnFocusable](https://biomejs.dev/linter/rules/no-aria-hidden-on-focusable)
which reports hidden and focusable elements. Contributed by
[@&#8203;vasucp1207](https://togithub.com/vasucp1207)

- Add
[noImplicitAnyLet](https://biomejs.dev/linter/rules/no-implicit-any-let)
that reports variables declared with `let` and without initialization
and type annotation. Contributed by
[@&#8203;TaKO8Ki](https://togithub.com/TaKO8Ki) and
[@&#8203;b4s36t4](https://togithub.com/b4s36t4)

- Add [useAwait](https://biomejs.dev/linter/rules/use-await) that
reports `async` functions that don't use an `await` expression.

- Add
[useValidAriaRole](https://biomejs.dev/linter/rules/use-valid-aria-role).
Contributed by [@&#8203;vasucp1207](https://togithub.com/vasucp1207)

- Add [useRegexLiterals](https://biomejs.dev/linter/use-regex-literals)
that suggests turning call to the regex constructor into regex literals.
COntributed by [@&#8203;Yuiki](https://togithub.com/Yuiki)

##### Enhancements

- Add an unsafe code fix for
[a11y/useAriaActivedescendantWithTabindex](https://biomejs.dev/linter/rules/use-aria-activedescendant-with-tabindex)

##### Bug fixes

- Fix [#&#8203;639](https://togithub.com/biomejs/biome/issues/639) by
ignoring unused TypeScript's mapped key. Contributed by
[@&#8203;Conaclos](https://togithub.com/Conaclos)

- Fix [#&#8203;565](https://togithub.com/biomejs/biome/issues/565) by
handling several `infer` with the same name in extends clauses of
TypeScript's conditional types. Contributed by
[@&#8203;Conaclos](https://togithub.com/Conaclos)

- Fix [#&#8203;653](https://togithub.com/biomejs/biome/issues/653).
[noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports)
now correctly removes the entire line where the unused `import` is.
Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Fix [#&#8203;607](https://togithub.com/biomejs/biome/issues/609)
`useExhaustiveDependencies`, ignore optional chaining, Contributed by
[@&#8203;msdlisper](https://togithub.com/msdlisper)

- Fix [#&#8203;676](https://togithub.com/biomejs/biome/issues/676), by
using the correct node for the `"noreferrer"` when applying the code
action. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Fix [#&#8203;455](https://togithub.com/biomejs/biome/issues/455). The
CLI can now print complex emojis to the console correctly.

- Fix [#&#8203;727](https://togithub.com/biomejs/biome/issues/727).
[noInferrableTypes](https://biomejs.dev/linter/rules/no-inferrable-types)
now correctly keeps type annotations when the initialization expression
is `null`. Contributed by
[@&#8203;Conaclos](https://togithub.com/Conaclos)

- Fix [#&#8203;784](https://togithub.com/biomejs/biome/issues/784),
[noSvgWithoutTitle](https://biomejs.dev/linter/rules/no-svg-without-title)
fixes false-positives to `aria-label` and reports svg's role attribute
is implicit. Contributed by
[@&#8203;unvalley](https://togithub.com/unvalley)

- Fix [#&#8203;834](https://togithub.com/biomejs/biome/issues/834) that
made
[noUselessLoneBlockStatements](https://biomejs.dev/linter/rules/no-useless-lone-block-statements)
reports block statements of switch clauses. Contributed by
[@&#8203;vasucp1207](https://togithub.com/vasucp1207)

- Fix [#&#8203;783](https://togithub.com/biomejs/biome/issues/834) that
made
[noUselessLoneBlockStatements](https://biomejs.dev/linter/rules/no-useless-lone-block-statements)
reports block statements of `try-catch` structures. Contributed by
[@&#8203;hougesen](https://togithub.com/hougesen)

- Fix [#&#8203;69](https://togithub.com/biomejs/biome/issues/69) that
made
[correctness/noUnnecessaryContinue](https://biomejs.dev/linter/rules/no-unnecessary-continue)
incorrectly reports a `continue` used to break a switch clause.
Contributed by [@&#8203;TaKO8Ki](https://togithub.com/TaKO8Ki)

- Fix [#&#8203;664](https://togithub.com/biomejs/biome/issues/664) by
improving the diagnostic of
[style/useNamingConvention](https://biomejs.dev/linter/use-naming-convention)
when double capital are detected in strict camel case mode. Contributed
by [@&#8203;vasucp1207](https://togithub.com/vasucp1207)

- Fix [#&#8203;643](https://togithub.com/biomejs/biome/issues/643) that
erroneously parsed the option of
[complexity/useExhaustiveDependencies](https://biomejs.dev/linter/use-naming-convention).
Contributed by [@&#8203;arendjr](https://togithub.com/arendjr)

##### Parser

##### Bug fixes

- Fix [#&#8203;846](https://togithub.com/biomejs/biome/issues/846) that
erroneously parsed `<const T,>() => {}` as a JSX tag instead of an arrow
function when both TypeScript and JSX are enabled.

##### VSCode

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Christopher Kolstad <chriswk@getunleash.io>
2023-11-28 09:32:00 +00:00
Thomas Heartman
dba1c90db8
Feat: show change request data on segment project usage page (#5410)
Show usage in change requests if that'd cause you to not be able to move
the segment into a project.

- [x] ~Relies on changes from #5407 (and #5405, #5406) to go through
first.~


![image](https://github.com/Unleash/unleash/assets/17786332/e6b84664-db86-457e-885f-a86c95bc46ec)
2023-11-28 10:01:56 +01:00
Mateusz Kwasniewski
de287a75fe
chore: remove dependent feature flags (#5419) 2023-11-27 14:54:40 +01:00
Christopher Kolstad
c179c8ad5e
chore(update): Updates biome config to 1.3 format (#5421)
Does what it says on the tin, update to 1.3.x format for biome config
2023-11-27 13:42:58 +01:00
Nuno Góis
023db4e2c9
refactor: favor permission name over id (#5409)
https://linear.app/unleash/issue/2-1664/create-db-migration-that-favors-the-name-column-over-id-for

Similar to https://github.com/Unleash/unleash/pull/5398, but
non-breaking (semver).
This keeps the permissions `id` column intact, however favors the
permission name whenever possible.
2023-11-27 11:12:09 +00:00
Thomas Heartman
b021e7cf85
feat: show strategies used by segments (#5407)
This PR displays change request usage of segments when such usage is
returned from the API. It expects at least #5406 to have been merged
before it can be merged.


![image](https://github.com/Unleash/unleash/assets/17786332/c74bb1c9-07f9-4bca-95bb-4ca020398444)
2023-11-27 10:34:34 +00:00
Thomas Heartman
90915cfdd7
Chore: add strategy sorting algorithm (#5406)
This PR adds a strategy sorting algorithm to be used for the segment
deletion dialog. It assumes that you have a list of existing strategies
and a list of change request strategies. Based on the content of these
two lists, it will create one unified list sorted after a number of
criteria (as listed in the test).

# Discussion point: 

This impl does the sorting on the front end, but could we do it on the
back end? Instead of adding a new property to the segment data, could we
simply fold the change request strategies in with the existing segment
strategies and return it using the old property? If the only place we do
that is in this view, then that might be a good suggestion.

Response:

I'll leave this in the front end for now. The reason is that we can't add change request strategies to the existing `strategies` property of the API payload without it being a breaking change. The OpenAPI schema says that `id` is a required field on a strategy, and that field doesn't exist on strategies that have only been added in change requests, but not yet applied.
2023-11-27 11:23:10 +01:00
Chris Hepner
ef46b042cc
fix: typo in Unleash playground frontend (#5389)
## About the changes

- Change "undestand" to "understand"
- Capitalize "Unleash"

Co-authored-by: Chris Hepner <chris@healthtensor.com>
2023-11-27 09:30:00 +01:00
Tymoteusz Czech
dbd897e3bd
Feat/new paginated table (#5371)
## About the changes
2023-11-24 17:50:58 +01:00
Nuno Góis
47e214d96f
fix: enable toggle with disabled strategies dialog (#5416)
https://linear.app/unleash/issue/UNL-283/improve-dialog-when-there-are-disabled-strategies-and-we-want-to

Improves the "enable toggle when there are disabled strategies" dialog.
Also implements passing in the missing `disabledStrategiesCount`
property to the dialog.


![image](https://github.com/Unleash/unleash/assets/14320932/95d9110e-8c1c-47ce-8e1b-389607115a54)
2023-11-24 14:57:03 +00:00
Nuno Góis
aa8347eb7a
fix: delete archived feature toggles in the UI (#5411)
This PR addresses 2 tasks that aim to fix and improve the UI/UX on
archived feature toggle deletion:

-
https://linear.app/unleash/issue/UNL-260/delete-feature-toggle-dialog-update-word-toggles-to-singular-toggle
-
https://linear.app/unleash/issue/UNL-282/deleting-multiple-toggles-in-the-project-archive-the-batch-selector

Essentially:

- Makes it clearer that we're deleting a single feature toggle by
changing the text to singular toggle
- Improves clarity further by adding a list of feature toggles about to
be deleted
- Fixes a bug where the batch selector would not be cleared after
deleting multiple feature toggles

## Deleting one feature toggle (singular)

![image](https://github.com/Unleash/unleash/assets/14320932/c956f459-ef18-4153-97f7-ffdd6b11613c)

## Deleting multiple feature toggles (plural)

![image](https://github.com/Unleash/unleash/assets/14320932/14f875a4-7f56-4db9-81db-cd06526e5bd5)
2023-11-24 09:35:13 +00:00
Tymoteusz Czech
ffe37ac709
Basic filter label (#5387) 2023-11-24 10:07:42 +01:00
Nuno Góis
7d2fd172a5
fix: role permissions UI improvements (#5388)
https://linear.app/unleash/issue/2-1657/role-permissions-improvements

This PR includes 3 improvements:
 - Sort permissions alphabetically
 - Ensure we don't display duplicate permissions
 - Improve alignment of columns by using a proper grid


![image](https://github.com/Unleash/unleash/assets/14320932/7cb4a70e-8e39-4077-95a0-66f29b3c2e55)
2023-11-23 09:43:15 +00:00
andreas-unleash
937a605888
chore: remove variantTypeNumber flag (#5382)
Closes #
[1-1648](https://linear.app/unleash/issue/1-1648/clean-varianttypenumber-flag-for-release)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-11-23 11:12:56 +02:00
andreas-unleash
1dafc85eaa
chore: remove playgroundImprovements flag (#5384)
Closes #:

[1-1647](https://linear.app/unleash/issue/1-1647/clean-playgroundimprovements-flag-for-release)

[1-1665](https://linear.app/unleash/issue/1-1665/flaky-test-playgroundconnectionfieldsettesttsx)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-11-23 10:50:19 +02:00
andreas-unleash
3e12c2b5b6
Chore: remove disableEnvsOnRevive flag (#5391)
Closes #
[1-1646](https://linear.app/unleash/issue/1-1646/clean-disableenvsonrevive-flag-for-release)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-11-23 10:10:37 +02:00
Fredrik Strand Oseberg
5414fa6663
Refactor/remove last seen at flag (#5394)
This PR removes the feature flag for displaying the new last seen by
environments component.
2023-11-22 13:32:38 +01:00
Nuno Góis
5dc3e830a8
feat: add CREATE_TAG_TYPE permission (#5386)
https://linear.app/unleash/issue/2-1164/update-tag-type-covers-both-creation-and-update

Adds a new `CREATE_TAG_TYPE` permission instead of using
`UPDATE_TAG_TYPE` for both actions.
2023-11-22 10:20:19 +00:00
andreas-unleash
8ffc92af5b
fix: Only show strategy variant changes if there is a diff in the variants (#5353)
What it says on the box

Closes #
[1-1652](https://linear.app/unleash/issue/1-1652/remove-the-variants-from-change-request-page-when-not-modified)

![Screenshot 2023-11-16 at 11 26
05](https://github.com/Unleash/unleash/assets/104830839/8f25b82c-4dbc-46fb-bdd6-0e0049659c72)

![Screenshot 2023-11-16 at 11 25
46](https://github.com/Unleash/unleash/assets/104830839/e6366622-3a50-4a0e-bba2-6c1d34e64077)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-11-22 09:50:03 +02:00
Fredrik Strand Oseberg
83fe430a14
Feat/private project badge (#5373)
Adds an icon with tooltip for private projects in ProjectCard and
Project header:

<img width="528" alt="Skjermbilde 2023-11-21 kl 10 58 13"
src="https://github.com/Unleash/unleash/assets/16081982/28004c11-a20d-4740-98f4-127f41639896">
2023-11-21 11:49:50 +01:00
Tymoteusz Czech
d5049e6197
feat: useTableState hook (#5362)
Simplified logic for handling interaction between URL (query), table state and localstorage.
2023-11-21 11:25:31 +01:00
Fredrik Strand Oseberg
11533bf97a
refactor: remove feature flag for Dora (#5367) 2023-11-21 08:18:00 +01:00
Thomas Heartman
90d6c7c0ba
chore: remove usage of feature naming pattern flag (#5364)
In preparation for this feature going GA
2023-11-20 12:42:24 +01:00
Gastón Fournier
4801b64824
feat(banners): enable customer banners (#5348)
## About the changes
This feature allows our Enterprise customers to configure banners to be
displayed on their Unleash instance for all their users to see and
interact with. Previously known as "internal message banners".
2023-11-17 13:56:09 +00:00
Thomas Heartman
be699962b1
chore: remove segments oss splash (#5359)
This change removes the oss segments splash screen that was introduced
in https://github.com/Unleash/unleash/pull/5053.
2023-11-17 13:39:43 +00:00
andreas-unleash
0dc5f306cc
Feat: change request scheduled timeline (#5346)
Adds the scheduled state to the timeline

Closes #
[1-1632](https://linear.app/unleash/issue/1-1632/update-the-progress-bar-for-scheduled-changes)

![Screenshot 2023-11-16 at 10 51
03](https://github.com/Unleash/unleash/assets/104830839/6267299e-d5c3-4cbf-9ab2-25da53f2d526)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-11-17 11:20:14 +02:00
Nuno Góis
f8a9d7f355
fix: take into account project segments permission in form (#5352)
https://linear.app/unleash/issue/SR-184/ticket-1106-users-with-createedit-project-segment-dont-see-all-the

https://github.com/Unleash/unleash/pull/5304 did not take into account
permissions further into the Segment form.

This PR fixes the remaining permission checks to take into consideration
the project-level permission: `UPDATE_PROJECT_SEGMENT`.
2023-11-16 11:54:56 +00:00
Fredrik Strand Oseberg
2dd2d520e3
Feat/exp project features (#5351)
This PR adds feature toggle list on the project on a separate page as an
experiment
2023-11-16 12:41:31 +01:00
Jaanus Sellin
4e1040c849
feat: connect sort table to backend (#5338)
Now FE sorting is done in backend.
2023-11-15 16:01:02 +02:00
Fredrik Strand Oseberg
db77962a72
fix/usefeaturesearch cache (#5340)
Fixes a bug where the closure over the useFeatureSearch hook would not
account for projectId and return the wrong total/initial load
2023-11-15 11:09:13 +01:00
Fredrik Strand Oseberg
357af740c8
refactor: new table styling for project overview (#5334)
This PR alters the table styling for the Project Overview table so that
we utilise more of the surrounding space:
2023-11-14 13:57:06 +01:00
Jaanus Sellin
069d90d8cb
fix: date should sort asc/desc properly (#5335) 2023-11-14 14:47:28 +02:00
Tymoteusz Czech
fd3a7f12cb
chore: remove featureSwitchRefactor flag (#5329)
Cleanup. This change has been rolled out to significant number of
customers already, and we have another parallel version behind a flag.
2023-11-14 13:03:23 +01:00
Jaanus Sellin
cdebf9aa28
fix: sort order should be persisted and used from local storage (#5332) 2023-11-14 11:08:04 +02:00
Fredrik Strand Oseberg
ddd718fd23
refactor/reshape table (#5328)
This PR fixes a couple of issues with the pagination bar:

* Fixes an issue where padding bottom would be broken due to disabling
padding on the parent container
* Remove padding on the entire table to create more space and remove
header bar border radius as per discussion with @nicolaesocaciu
2023-11-14 08:44:36 +01:00
Fredrik Oseberg
0f7360c1e8
fix: conditionally show pagination bar 2023-11-13 14:47:51 +01:00
Fredrik Strand Oseberg
834ae1d8a4
Feat/pagination loading (#5325)
This PR makes changes to how the project overview skeleton screen works.
Important changes:

- Add skeleton screens to missing elements, creating a more
comprehensive loading screen
- Split the page into different loading sections, so that we can load
the table when we fetch the next page without affecting the rest of the
page.

https://www.loom.com/share/e5d30dc897ac488ea80cfae11ffab646

Next steps:
* Hide bar if total is less than 25
* Add FE testing
2023-11-13 14:08:48 +01:00
Fredrik Strand Oseberg
7f4df19660
Feat/pagination bar (#5309)
Initial implementation of the sticky pagination bar.
2023-11-10 14:16:31 +01:00
Nuno Góis
15f77f5b8b
fix: project settings flag limit not properly set (#5317)
https://linear.app/unleash/issue/SR-169/ticket-1107-project-feature-flag-limit-is-not-correctly-updated

Fixes #5315, an issue where it would not be possible to set an empty
flag limit.
This also fixes the UI behavior: Before, when the flag limit field was
emptied, it would disappear from the UI.

I'm a bit unsure of the original intent of the `(data.defaultStickiness
!== undefined || data.featureLimit !== undefined)` condition. We're in
an update method, triggered by a PUT endpoint - I think it's safe to
assume that we'll always want to set these values to whatever they come
as, we just need to convert them to `null` in case they are not present
(i.e. `undefined`).
2023-11-10 09:57:20 +00:00
andreas-unleash
180c0dceae
Fix/scheduled request UI (#5318)
Change timezone format
Fixes a bug where the Edit button on hover being elongated

Before:
<img width="755" alt="Screenshot 2023-11-09 at 21 36 01"
src="https://github.com/Unleash/unleash/assets/104830839/189f21d5-8a68-4d6b-b094-b518749a9b2f">

After:
<img width="812" alt="Screenshot 2023-11-09 at 22 09 26"
src="https://github.com/Unleash/unleash/assets/104830839/9056f995-bd2b-4353-8526-77160e49e990">

Adds the missed onClick to the edit button to show the dialog

Fixes a bug with ScheduleChangesDialog onClose

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-11-10 11:22:03 +02:00
andreas-unleash
77db9f3258
feat: add Changes Scheduled badge to feature variants (#5312)
Adds the Changes Scheduled badge to environment variant when appropriate

Closes #
[1-1625](https://linear.app/unleash/issue/1-1625/show-a-badge-when-variant-in-scheduled-request)
<img width="1006" alt="Screenshot 2023-11-09 at 15 42 37"
src="https://github.com/Unleash/unleash/assets/104830839/118a3f0b-9acf-4a49-92d2-49bbe49a4c91">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2023-11-09 14:58:58 +00:00
andreas-unleash
100c22b42a
Feat: scheduled change request badges (#5300)
Adds a new badge to strategies that have changes in an a scheduled
change request

Closes #
[1-1620](https://linear.app/unleash/issue/1-1620/create-a-new-badge-for-flag-that-is-part-of-scheduled-change)
<img width="1671" alt="Screenshot 2023-11-09 at 11 49 53"
src="https://github.com/Unleash/unleash/assets/104830839/596abbc0-f9ab-4642-9ed2-79ef50fb6c05">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2023-11-09 13:48:29 +02:00