Commit Graph

73 Commits

Author SHA1 Message Date
Lebaud Antoine
2a5533962d 💄(demo) update default cunningham tokens
Update default demo app design tokens to
avoid unnecessary changes unrelated to branch work.
2023-06-27 11:03:57 +02:00
Nathan Vasse
16463c6c83 🔖(release) version packages
Bump @openfun/cunningham-react to 0.8.2
Bump @openfun/cunningham-tokens to 0.5.0
2023-06-23 14:52:12 +02:00
Lebaud Antoine
c160359045 🐛(react) export DatePicker components
Date picker elements were not exported in the global `index.ts`
2023-06-23 12:50:54 +02:00
Nathan Vasse
d618a1805e 🔖(release) version packages
Bump @openfun/cunningham-react to 0.8.1
2023-06-19 17:59:05 +02:00
Nathan Vasse
501ba1a031 🐛(react) fix DatePicker alignments
Due to the previous changes of LabelledBox that allows it to fit dynamic
height containers, we forgot to update the DatePicker resulting in a broken
CSS alignment.
2023-06-19 17:21:29 +02:00
Nathan Vasse
760ffb48e9 🔖(release) version packages
Bump @openfun/cunningham-react to 0.8.0
2023-06-19 15:20:49 +02:00
Nathan Vasse
c8afa105dd (react) add multi select
Adding this new variant makes necessary to reorganize the files to keep
a clear separations of concerns. As of now Select/index.tsx is just an
entrypoint to render either the mono or multi variant of the select.
2023-06-19 15:04:05 +02:00
Lebaud Antoine
76ad5621c6 🐛(react) fix calendar selects initialization and syncing
Select under the calendar component were not properly initialized,
leading to issues. Additionally, syncing the dropdowns with the calendar
state was causing unnecessary renders. Selects now update on user events
triggered by the toggle button, ensuring the selected item remains
up-to-date. The code has been refactored to eliminate duplication
and improve the component's readability and maintainability.
2023-06-16 17:13:35 +02:00
Lebaud Antoine
10fa71e2a7 (react) add DatePicker component
Based on the Figma DS design by Alex, a mono date-picker
component has been added. It uses react-aria headless ui
component capabilities, with downshift headless ui component.
React-aria was not supporting by default dropdown menus to
select months and years. We could not reuse Popover component
from react-aria because we are not using their headless ui
component for the button one. Clicking on the toggle calendar
button triggers both the button and the popover click outside
events. React-aria button uses a custom onPress props that is
disabled by their popover. Instead, I have implemented a simple
custom hook. This is the first acceptable version of the component.
Some minor user interaction are missing. This first component
doesn't support time selection.
2023-06-12 18:57:20 +02:00
Lebaud Antoine
1d1cf81cf6 (react) add a popover component
A design system needs a popover mecanism.
In the select component, this logic is handled by downshift.
We introduce a new component, responsible to open an element in
a popin and close it when the user click outside of it.
2023-06-12 18:57:20 +02:00
Lebaud Antoine
6f05995f24 🎨(react) make eof stylesheets consistent
Some older tools misbehave if the last line of data
in a text file is not terminated with a newline.
It makes sure the last line was properly terminated.
2023-06-12 17:08:01 +02:00
Nathan Vasse
787bd3de75 🏷️(react) allow autocompletion for DataGrid's renderCell
Previously the type of the row parameter of renderCell was hardcoded as
Row. This wasn't ideal because the best case scenario we want it to enable
Typescript to use the type of rows props. Now that's the case.

Resolve #62
2023-06-06 17:10:33 +02:00
Nathan Vasse
9127fd803c 🐛(react) support nested field in DataGrid
It was previously needed to use renderCell to be able to use nested
fields, which was not handy.

Resolve #62
2023-06-06 17:10:33 +02:00
Lebaud Antoine
1ff37cf12f 💄(react) improve input component styling configuration
Align design tokens of input component with select component's
design tokens for consistent styling configuration. Having a
transparent background was causing a weird ux.
2023-06-06 12:21:41 +02:00
Lebaud Antoine
38538e354b 💄(react) improve radio input styling configuration
Align design tokens of radio input component with select component's
design tokens for consistent styling configuration.
2023-06-06 12:21:41 +02:00
Lebaud Antoine
8cf2bb28e1 ♻️(react) improve checkbox styling configuration
Align design tokens of checkbox component with select component's
design tokens for consistent styling configuration.
2023-06-06 12:21:41 +02:00
Lebaud Antoine
fe91471127 💄(react) improve DX when converting px to rem values
It can be tricky, while integrating the figma design file,
to map some small px values to their rem equivalent. Thus,
this PR proposes a new util function converting pixel to rem.
It would ensure that all size values can scale base on the
font-size base, while keeping a good developer experience.
2023-06-01 19:20:05 +02:00
Nathan Vasse
0153b5043b 📝(react) add forms examples to documentation
We think doing this really illustrates what the design system looks
in real life, all components living together next to each other.
2023-06-01 12:05:32 +02:00
Nathan Vasse
2c6a66b220 💄(react) change pagination border color
The pagination component's border color was different from the one
of other components, especially the DataGrid, which was not really
homogenous.
2023-06-01 12:05:32 +02:00
Nathan Vasse
a869fe51dc 💄(react) reduce inputs borders
We do this in order to have homogenous border accross the entire
library, before we had DataGrid with 1px border and inputs with 2px
borders, which was not really nice to the eye.
2023-06-01 12:05:32 +02:00
Nathan Vasse
1cb1b48c8d (react) add min-width to Field
Without this new property the components using Field ( Input, Select, ... )
would not properly fit by default inside a flex parent.
2023-06-01 12:05:32 +02:00
Nathan Vasse
30d08a956b (react) add fullWidth props to Button
Can be useful in many situations.
2023-06-01 12:05:32 +02:00
Nathan Vasse
22ad673374 🔖(release) version packages
Bump @openfun/cunningham-react to 0.7.0
2023-05-24 17:10:23 +02:00
Nathan Vasse
bc6d085868 💄(react) change label color on state error ( select, input )
We forgot to implement this during the first PRs.
2023-05-24 16:49:49 +02:00
Nathan Vasse
75c6e2e482 💄(react) change label color when focused ( select, input )
We forgot to implement this behavior when coding these inputs.
2023-05-24 16:49:49 +02:00
Nathan Vasse
d79f01fd93 (react) add the possibility to hide select label
Based on recent feedbacks this feature was needed. It is important for
the label to still be accessible to screen readers, that's why we
introduced the offscreen class.

Resolve #60
2023-05-24 15:58:07 +02:00
Nathan Vasse
c93c8d2a2f (react) add disable property to select option
Based on recent feedbacks, this feature was needed for consumer apps.

Resolve #60
2023-05-24 15:58:07 +02:00
Nathan Vasse
c11727976c (react) add clearable option to Select
Based on a feedback given from another project, we want to be able
to disable the clear feature on the select.

Resolve #60
2023-05-24 15:58:07 +02:00
Nathan Vasse
9d7ad489ba (react) add Switch component
Implement a shiny new component that can be used as an alternative to
the regular checkbox.
2023-05-24 15:37:50 +02:00
Nathan Vasse
e72606cfcd 💄(react) make inputs labels bolder
The current labels of radio, checkbox and switches were not bold enough
to match the figma sketches.
2023-05-24 15:37:50 +02:00
Nathan Vasse
eb6692bf5e (react) add a design token for checkbox hover background
This was based on recent feedbacks to provide more granularity for
customization.

Resolve #59
2023-05-24 12:00:42 +02:00
Nathan Vasse
527c3fc0c9 (react) set specific cursor on checkbox related components
Even if this is not the default behavior of the native checkbox, based on
recent feedbacks and by comparing what other components libraries do, it
appears that setting a custom cursor on checkbox hover is the most
intuitive thing to do.

Resolve #59
2023-05-24 12:00:42 +02:00
Nathan Vasse
c53d34834c 📝(react) add customization doc
This part of the doc was a huge miss as it is often asked during
installation based on our recent feedbacks.
2023-05-24 11:10:13 +02:00
Nathan Vasse
e05c6b786c 🏷️(react) export DefaultToken types and defaultTokens variable
By doing this we provide more typings for consumers which makes more
handy the use of the local configuration in cunningham.ts files.
2023-05-24 11:10:13 +02:00
Nathan Vasse
b5fcfdfeab (react) add support for CJS
At first we wanted to only support ESM. But as we want to share types
and export design tokens from the react package to the outside world
in order to allow local cunningham.ts files to import them, we are
forced to also build the library for CJS too. Why? Because local
cunningham.ts files are loaded as CJS, so they can only import CJS
module. Why loading cunningham.ts as CJS? Because the tokens package's
binary is built for CJS, then it's seamless to make it load CJS, where
making it load ESM was buggy. And why not migrate the tokens package to
ESM so? Because it implies to rewrite every imports with .js extensions,
makes us loose the possibility to use __dirname kind of variables. And
also Jest use for testing is not compliant at all when it comes to execute
ESM code. Well, the ecosystem is not ready for that at the moment, sadly.
2023-05-24 11:10:13 +02:00
Nathan Vasse
ce6eb50a98 ♻️(react) migrate ArgsTable to ArgTypes and rework imports
Storybook was emitting warnings errors about the fact that ArgsTable
is deprecated, and also I rewrote imports as those are not the one
used in the doc anymore, this will prevent breaking changes in the
upcoming upgrades.
2023-05-23 10:10:40 +02:00
Nathan Vasse
8cda41772d ♻️(react) fix Storybook source blocks
Due to the recent upgrade to Storybook 7, the source blocks of Canvases
were broken, they were only showing args. This was mainly due to the fact
that as of Storybook 7 the meta tags of the MDX files have changed, thus
causing the issue. These are now based on imports. We also needed to rename
index.stories.mdx files to index.mdx because Storybook was throwing errors,
maybe due to a conflicts with index.stories.tsx files and new imports.
Anyway this way of naming MDX files seems to be the recommend one based on
the official documentation.
2023-05-23 10:10:40 +02:00
Nathan Vasse
f264c29a4a 🔖(release) version packages
Bump @openfun/cunningham-react to 0.6.2
2023-05-15 17:28:18 +02:00
Nathan Vasse
15eb9b9e57 🏷️(react) add missing types exports
We forgot to add exports for Checkbox and Radio.
2023-05-15 17:23:49 +02:00
Nathan Vasse
87b328292b 🔖(release) version packages
Bump @openfun/cunningham-react to 0.6.0
2023-05-12 11:57:05 +02:00
Nathan Vasse
2ff5fc5d29 (react) add Select component
Finally our powerful Select component is available to make great forms!
2023-05-12 11:13:38 +02:00
Nathan Vasse
3545af85ae 📦️(react) pure ESM package
Previously we had some configuration in package.json that were falsely
indicating that the react package was supporting CJS, which wasn't the
case. So this commit makes it clear that the package is pure ESM.
2023-05-11 17:58:13 +02:00
jbpenrath
56227d206a 🔖(react) bump to 0.5.0
Minor Changes
- 7513b4d: fix type files imports and rollup them
- b53afcb: Add DataList component
2023-05-05 11:18:39 +02:00
jbpenrath
c9f8540dfb 🔖(tokens) bump to 0.4.0
Minor Changes
- 7eac0bf: Suffix all sass maps with the `!default` map
- fb2fb3e: Do not generate sass sub maps
2023-05-05 11:18:39 +02:00
Romain Le Cellier
b53afcb4af (react) add DataList
Implement DataList that is a wrapper of DataGrid without header, sorting
nor pagination.
2023-05-05 10:54:50 +02:00
Nathan Vasse
7513b4d217 🔧(react) rollup type files
Previously types file were splitted into their original folder
tree structure. By enabling this option we could just get one
global .d.ts file. To make this more handy I created a dedicated
build bash file, the package.json was starting to get messy.
2023-05-04 16:53:29 +02:00
jbpenrath
7eac0bfca1 (tokens) make sass maps overridable
We suffix all sass maps with `!default` flag. In this way, if a consumer
 needs to override cunningham tokens, it will be able to.
2023-05-03 15:56:40 +02:00
jbpenrath
fb2fb3e107 🔥(tokens) remove colors sub maps
Create color sub maps seems to be a good idea but in fact was not. In
fact if with need to create token sub map this structure should appear
within the tokens module.
2023-05-03 15:56:40 +02:00
Nathan Vasse
a9625eb1c2 🔖(release) version packages
Bump @openfun/cunningham-react to 0.4.0
Bump @openfun/cunningham-tokens to 0.3.0
2023-04-28 16:06:23 +02:00
Romain Le Cellier
b9d2f2955f 🐛(tokens) fix scss generator
scss maps expect keys between quotes like:
$map = (
  'key': value,
)
2023-04-28 09:44:54 +02:00