Commit Graph

276 Commits

Author SHA1 Message Date
Nathan Panchout
3e62cdb929 🎨(react) enhance alert component styles
update alert token and css files with new css variables introduce
with the new tokens architectures
2025-09-23 15:58:43 +02:00
jbpenrath
2ee7450915 (react) fix flaky test
On CI, a test times out frequently. We increase the timeout
threshold to prevent that..

Resolve #355
2025-08-07 10:15:07 +02:00
jbpenrath
8e049bc21e 🐛(react) disable button link
According to its prop, the Button component can be rendered as
a link but in this case, the prop `disabled` has no effect. So to fix
that if the Button receives a `href` prop and is disabled, we apply
a modifier class `.c__button--disabled`.
2025-08-07 10:15:07 +02:00
Nathan Panchout
06926863c6 (react) fix translations and add missing translations
This commit improves the translations method to handle undefined values
gracefully and adds several missing translations for modals in the
French locale.
2025-07-29 16:44:17 +02:00
jbpenrath
7ef8930bc8 🐛(react) prevent input cursor to jump on searchable multi select
Fix an issue that cause the input cursor to jump when user
types in the search input of a multiple select.
2025-07-29 16:04:58 +02:00
jbpenrath
ef8a225406 🐛(react) use uniqueId for modal portals
When a ModalProvider is mounted, it renders a div with an id which is use as
container to render modals through portals. But currently, if developer use
several CunninghamProvider across its application, a container with the same
id will be rendered several times that is weird. To prevent this kind of id
collision, we decide to generate a unique Id for each ModalProvider.

Resolve #352
2025-07-24 11:40:09 +02:00
jbpenrath
e9a85ee63f 🐛(react) prevent error on searchable select
When a select is searchable, when the user search term but this one return
no items, currently the component raise an error.
2025-05-06 09:57:28 +02:00
jbpenrath
b1850c029a 🚨(react) fix type and sass warning after deps upgrade
- Do not use deprecated `map-get` Sass method
- Fix type issue in `DatePicker`
2025-05-05 17:56:15 +02:00
jbpenrath
79c59acd0d 🐛(react) fix DateRangePicker issue
We encountered a bug with the date range picker due to an internal
logic of `@react-aria/calendar`. This bug silently came back recently but
our test suite does not trigger that but since the update of
`@testing-library/user-event` a test starts to fail and highlight this issue so
we fix again this bug.

https://github.com/adobe/react-spectrum/commit/12f2f4e
2025-03-18 10:44:16 +01:00
jbpenrath
56d9ed88f0 💥(react) upgrade to React 19
https://react.dev/blog/2024/04/25/react-19-upgrade-guide
https://react.dev/blog/2024/12/05/react-19
2025-01-08 11:02:50 +01:00
jbpenrath
86815cf95b 🔧(react) migrate to vite 6
With the new major version of vite, some path resolution did not work so
we update our vite config to resolve properly paths starting by 'src'.
Furthermore there were some deprecation warning about the use of cjs
files as vite configuration so we use 'mts' extension for all vite
config files in react package to allow vite to detect them as
ES Modules.
2025-01-08 11:02:50 +01:00
jbpenrath
dc8015f080 💄(react) use overflow auto instead of scroll
Currently, Tooltip and Datagrid components are set to always scroll bar.
This is weird, as the scrollbar is always shown even if this is not
needed. Instead, we use `auto` value to display it only when
it is needed
2024-08-20 14:47:48 +02:00
jbpenrath
b0b7061b7a ⬆️(deps) migrate to typescript-eslint 8
A major version of typescript-eslint has been released. This version contains
some breaking change and rules change so we have to tweak our eslint
configuration.

https://main--typescript-eslint.netlify.app/blog/announcing-typescript-eslint-v8
2024-08-20 13:51:29 +02:00
Nathan Vasse
1514e4f0b3 🐛(react) make datagrid select column visible
Due to a previous commit f398e51db3 the selection
column was invisible, this way caused by having table-layout: fixed and
width: 0 on the select column at the same time.
2024-08-20 11:36:46 +02:00
jbpenrath
dbd5f05652 🏷️(react) fix types issue
Since upgrade of @react-stately/calendar, a type issue was emit and
broke the build.
2024-07-29 14:46:52 +02:00
jbpenrath
b6c0565958 🐛(react) allow to set column size for data grid without header
Currently, to set the width of column we define a width to the
corresponding header cell. But DataGrid components allows to not render
header rows so in this case, the size is not set. In order to fix that,
if header is not rendered, we set width of cell to the corresponding
column.
2024-05-28 11:03:14 +02:00
jbpenrath
6bae4ad89a 🐛(modal) make modal scrollable when height exceeds the viewport height
Currently, if the content of a modal exceeds the viewport height, it is
not scrollable.
2024-05-24 16:29:09 +02:00
Nathan Vasse
e53cc730fc 💄(react) disable default Modal text align center
This default behavior was causing lots of troubles when using modals.
For instance the Select value were centered, it was also the case for
most of consumer's component inside modals, forcing the users to
set text-align:left on their side, resulting in additionnal work.
Now we use another approach by using a specific div for the content
we want centered.
2024-05-16 14:43:17 +02:00
Nathan Vasse
582027f22a ♻️(react) add a scroller div inside modal
Having the position fixed and at the same time overflow auto on the same
element was causing absolute children to be cropped. We need to set those
two attribute on two different parent for these children to not be cropped.
Yes this is weird, this is CSS.
2024-05-16 14:43:17 +02:00
Nathan Vasse
06c5c9dff3 ♻️(react) use react aria for select menu
The way the menu of the select was made was causing it to be cropped
inside modals, it was due to the fact the menu was nested inside a
position relative parent. Now we use react aria to position in full
absolute the menu, making it to be correctly displayed inside modals.
2024-05-16 14:43:17 +02:00
jbpenrath
a70f8129eb (react) remove warnings during tests
Numerous warnings was raised during tests. We remove most of them. Some
needs to be discussed before fix.
2024-04-29 15:38:22 +02:00
Nathan Vasse
91c8935a8a 🐛(react) fix Select mono selected item update label
When we were updating the label from the options array of the selected
item, the field was still showing this old value.

Fixes #316
2024-04-24 17:23:26 +02:00
Nathan Vasse
285cf99681 (react) add closeOnEsc props to Modal
We want to be able to disable closing modals by pressing escape in
some cases.
2024-04-23 14:38:44 +02:00
Nathan Vasse
2916dd2af9 (react) add custom modal portal
In some apps this is mostly needed, for instance: when the
CunninghamProvider is nested in the DOM, we want the modal to still
be displayed on top of anything else, then in those cases we will be
able to define a node directly in the body and tell cunningham to
render modals inside it.
2024-04-23 14:38:44 +02:00
Nathan Vasse
6ebeb116d3 ♻️(react) migrate Modals to react modal
We encoutered an issue where stacked modal backdrop were not rendered
above the modal below. It was caused by the dialog element that is
natively rendered on the top layer regardless where it is create in
the DOM. So we decided to use react modal that provides hand crafted
dialog, and implementing a11y features.

Closes #314
2024-04-23 14:38:44 +02:00
Nathan Vasse
c61b2ac43d (react) introduce large and extra-large new modal sizes
We realized it was missing an in between medium and large existing
modal sizes. The old large now become extra-large.

Closes #313
2024-04-23 14:38:44 +02:00
Nathan Vasse
06fca5b34e ♻️(react) disable animation when Chromatic is running
We need to disable Javascript animation when Chromatic is taking
snapshots in order to avoid having changes detected each time a build
is ran.
2024-03-25 15:40:27 +01:00
Nathan Vasse
9c614953b8 ♻️(react) remove faker usage from stories
Random data in stories was causing Chromatic to detect changes during
each build.
2024-03-25 15:40:27 +01:00
Nathan Vasse
a8ec9fb757 (react) add InputPassword
We had the need to have a built-in password input able to show or
hide the password.

Closes #301
2024-03-21 17:16:39 +01:00
Nathan Vasse
c63aff4861 📝(react) upgrade stories for Storybook 8
The old way of using Canvas is deprecated, we need to migrate all the
stories to the new standard.
2024-03-21 17:00:04 +01:00
Nathan Vasse
1f80674717 📝(doc) upgrade doc for Storybook v8
The Canvas block does not handle free source code anymore, now we need
to put it in a dedicated Story.
2024-03-21 17:00:04 +01:00
Nathan Vasse
0ef7684b12 (react) add Tooltip component
This component will allow to provide contextual information on any
DOM node.

Closes #239
2024-03-21 16:14:55 +01:00
Nathan Vasse
b4a6367bce 🐛(react) fix DataGrid selection checkbox rerendering
Each time a row was select or unselect the checkbox was re-triggering
its animation, which looked buggy.

Fixes #37
2024-03-19 14:34:14 +01:00
Nathan Vasse
20f5bb703b ♻️(react) make className standard across components
The className prop was sometimes set onto the nested element and
sometimes on the container element, which was not consistent. Now
we always set the className onto the upmost element.
2024-03-19 14:15:35 +01:00
Nathan Vasse
f398e51db3 (react) add width property to DataGrid columns
Without this feature we needed to override CSS directly in order to
make columns a specific width.

Closes #240
2024-03-18 17:01:01 +01:00
Nathan Vasse
5446d70bca 📝(react) fix RHF login example
This story was broken due to incorrect usage of FormProvider.
2024-03-18 16:48:35 +01:00
Nathan Vasse
25e61c2b4a (react) add enableSorting support on DataGrid
Previously it was only available at column level. This way we will
be able to disable sorting on all columns at once.

Closes #298
2024-03-15 15:47:43 +01:00
Nathan Vasse
8e7300b92c 💄(react) add border-radius transition
This transition was not working, now this provides are smoother effect.

Closes #112
2024-03-13 15:53:59 +01:00
Nathan Vasse
974f139f14 🐛(react) add warning when onSortModelChange is missing
We encountered the case were a user reported that the column were
making cursor pointer but clicking on it was doing nothing. It was
caused by the fact that onSortModelChange was not provided. So in
this case we trigger a warning only if enableSorting is true on one
column at least.
2024-03-12 11:34:20 +01:00
Nathan Vasse
317cab4bad (react) add sorting on custom cells
Previously sorting on custom cells was not possible because they were
considered as "display cells" by React-Table, which is made for actions
columns, which aren't sortable.

Closes #296 #100
2024-03-12 11:34:20 +01:00
Nathan Vasse
30ec253ab0 (react) make Pagination goto input optionnal
Based on a recent request we needed to make it optionnal in order to
have simpler pagination in some cases.

Closes #183
2024-03-08 16:33:54 +01:00
Nathan Vasse
d63c203b21 🚨(react) fix CSS end warning usage
Next.js is warning about the usage of end instead of flex-end during
compilation.

Fixes #291
2024-03-08 15:06:25 +01:00
Nathan Vasse
31fa91e92f (react) add empty placeholder customization props
We want to be able to customize the empty placeholder label, add a
call to action and choose whether we want to display the image as well.

Closes #27
2024-03-06 17:43:29 +01:00
Nathan Vasse
04ab3306e2 (react) add onSearchInputChange callback to searchable select
We want to be able to notify an event when the search term of the
searchable select gets updated.
2024-03-04 14:40:40 +01:00
Nathan Vasse
680365a117 💄(react) make Modal close button sticky
We want to make sure this button is always visible inside scrollable
modals.

Fixes #278
2024-02-28 17:36:32 +01:00
Nathan Vasse
c5e5d9fa85 📝(react) make color prop of Button appear in the doc
This prop color was not appearing in the ArgTypes because it was an override
attribute.

Fixes #235
2024-02-28 17:31:02 +01:00
Nathan Vasse
ce7a3d7c5b 📱(react) improve Modal responsive
The footer of the Modal component was not perfect on mobile, the sided
footer must be on two lines on mobile.
2024-02-28 17:19:32 +01:00
Nathan Vasse
7461626822 📱(react) improve DateRangerPicker responsive
The component was not able to resize properly on narrow screens.
2024-02-28 17:19:32 +01:00
Nathan Vasse
54df5d6c71 💄(react) remove modal content outline on focus
This was giving a strange look n feel, neither improving a11y.
2024-02-28 17:19:32 +01:00
Nathan Vasse
6d1da169e7 ♻️(react) prevent animate usage on some envs
This animate function is not supported by some testing environments,
to prevent any crashes on consumers side we need to first make sure
this function is defined.

Fixes #281
2024-02-28 10:51:47 +01:00