aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/molecules
Commit message (Collapse)AuthorAgeFilesLines
* refactor(components): merge HeadingButton and Widget componentsArmand Philippot2023-11-1116-513/+365
| | | | | | The HeadingButton component was only used inside Widget component and it is not very useful on its own so I merge the two components in a new Collapsible component.
* refactor(components): make form components compliant with Eslint rulesArmand Philippot2023-11-1110-61/+94
|
* refactor(components): rewrite HelpButton componentArmand Philippot2023-11-1110-91/+104
|
* refactor(components): rewrite BackToTop componentArmand Philippot2023-11-118-113/+131
| | | | | * replace `link` prop with `anchor` prop * add a `label` prop to let consumer handle the accessible name
* refactor(components): rewrite Link componentArmand Philippot2023-11-1110-5/+229
| | | | | | | | | * rename `external` prop to `isExternal` * rename `download` prop to `isDownload` * rewrite CSS to reduce code length and complexity * move link styles in Sass placeholders to avoid repeats because of WordPress articles * move NavLink component to molecules
* refactor(components): remove Column and NoScript from atomsArmand Philippot2023-11-113-15/+33
| | | | | | | * Column is a simple div meant to be used inside Columns component so they should live together. * NoScript is only used in Layout component and its name does not make sense since it needs to be used inside a `noscript` element.
* refactor(components): rewrite DescriptionList componentArmand Philippot2023-11-117-104/+81
| | | | | | | | | | | | | * add a `spacing` prop * replace `layout` prop with `isInline` prop * remove `items` prop (and classNames props) in favor of new components: Description, Group, Term * remove `withSeparator` prop (CSS content is announced by screen readers and Firefox/Safari have no support for alternative text so the consumer should add itself an element with `aria-hidden` if it need a separator) Be aware, Meta component and its consumers can be visually broken, they should be refactored before using them in production.
* refactor(components): rewrite List componentArmand Philippot2023-11-116-51/+31
| | | | | | | | | * change `items` prop to children * replace `kind` prop with `isHierarchical`, `isOrdered` & `isInline` props * add `hideMarker` prop * add `spacing` prop to control item spacing * move lists styles to Sass placeholders to avoid repeats because of headless WordPress
* refactor(components): make Logo component ESlint compliantArmand Philippot2023-10-241-8/+15
| | | | | I also renamed the title prop to heading because title already exists as HTML attribute.
* feat(components): replace icons with a generic Icon componentArmand Philippot2023-10-248-29/+34
| | | | | Sizes are also predefined and can be set using the `size` prop, so the consumers should no longer adjust the size in CSS.
* feat(components): add Article, Aside, Footer, Header, Main & NavArmand Philippot2023-10-247-51/+41
| | | | | Some components have been renamed to be able to create Footer, Header and Nav.
* refactor(components): rewrite Heading componentArmand Philippot2023-10-245-45/+41
| | | | | | | | | * remove `alignment` and `withMargin` props (consumer should handle that) * move styles to Sass placeholders to avoid repeats with headings coming from WordPress * refactor some other components that depend on Heading to avoid ESlint errors
* refactor(components): rewrite Button and ButtonLink componentsArmand Philippot2023-10-247-56/+69
| | | | | | | | | | | | | | Both: * move styles to Sass placeholders Button: * add `isPressed` prop to Button * add `isLoading` prop to Button (to differentiate state from disabled) ButtonLink: * replace `external` prop with `isExternal` prop * replace `href` prop with `to` prop
* build: convert project to esmArmand Philippot2023-10-2421-1/+22
|
* refactor(components): rewrite form componentsArmand Philippot2023-10-2474-3428/+1092
|
* refactor: use named export for everything except pagesArmand Philippot2023-09-2091-325/+288
| | | | | | Next expect a default export for pages so only those components should use default exports. Everything else should use named exports to reduce the number of import statements.
* refactor(build): replace paths aliases with relative pathsArmand Philippot2023-09-1978-127/+126
| | | | | | Using paths aliases starting with "@" can be confusing and can lead to conflict with existings modules. I prefer to use relative paths to avoid extra configuration in tools because of these aliases.
* chore: make Links and Images compliant with Next.js 13Armand Philippot2023-01-237-35/+23
|
* fix(settings): avoid cropped tooltip on small devicesArmand Philippot2022-06-0912-19/+69
| | | | | | I changed the settings disposition to make tooltip positioning easier. Jest complains about ref passed but everything seems to work as expected so I'm not sure it is relevant. Maybe a bug with cloneElement.
* fix(settings): close tooltip when modal is closingArmand Philippot2022-06-082-15/+20
| | | | | The event was not captured so the tooltip remained open when the settings was closed. It prevented to click on the toolbar buttons.
* chore: add an aria label to code blocksArmand Philippot2022-06-072-0/+19
| | | | | Prism is adding a tabindex to code blocks, so I think an aria label can help screen reader users to identify the tabbed content.
* chore(cards): use post title as link labelArmand Philippot2022-06-074-48/+69
|
* chore: use image title as figure label if no caption is providedArmand Philippot2022-06-071-2/+6
|
* chore: add aria hidden attribute to SVG iconsArmand Philippot2022-06-073-3/+3
|
* test: install and configure cypressArmand Philippot2022-06-0228-28/+28
| | | | I also configure Jest to avoid conflicts between Cypress and Jest.
* fix: improve help button accessibility with aria-pressedArmand Philippot2022-06-022-1/+5
|
* fix: ensure radio buttons are accessibleArmand Philippot2022-06-022-4/+24
| | | | | It seems I cannot use the SVG title as label. So I removed the title and added a visually hidden span to set the radio buttons label.
* chore: replace the Ackee select by a toggle componentArmand Philippot2022-06-0128-586/+780
|
* chore: replace the toggle componentArmand Philippot2022-06-0120-472/+431
|
* chore: add a RadioGroup componentArmand Philippot2022-05-316-2/+348
|
* chore: replace Checkbox component with a BooleanField componentArmand Philippot2022-05-316-7/+408
| | | | | Checkbox and radio buttons are working the same way so I decided to group them in a same component.
* fix(settings): reduce font-size on small devicesArmand Philippot2022-05-2512-7/+105
| | | | | With French translation, words are a little longer so I reduce the font size on small devices to avoid line breaking.
* chore: give autofocus to the toolbar search formArmand Philippot2022-05-241-11/+10
|
* test: fix theme toggle and comment testsArmand Philippot2022-05-242-4/+4
|
* chore(toolbar): change icons to close button when activatedArmand Philippot2022-05-244-0/+213
|
* chore: adjust cards list spacingArmand Philippot2022-05-231-1/+1
|
* refactor: reduce the number of data transformationArmand Philippot2022-05-231-20/+2
|
* chore: adjust dark mode stylesArmand Philippot2022-05-222-1/+3
|
* fix: render all images unoptimized in StorybookArmand Philippot2022-05-224-14/+52
| | | | | | There is a bug with next/image and Storybook. I was manually adding `unoptimized` to images. Instead we can use a workaround by adding an extra config in Storybook `preview.js` file.
* chore: complete Storybook storiesArmand Philippot2022-05-2116-143/+85
|
* fix: close Ackee tooltip on button clickArmand Philippot2022-05-212-6/+17
| | | | | | | The tooltip was closing and reopening on click because of a conflict between the button event and the hook useClickOutside. By checking that the event target is not the button, the tooltip is now closing as expected.
* chore: update images stylesArmand Philippot2022-05-203-9/+68
|
* chore: udpate code blocks styleArmand Philippot2022-05-201-139/+135
|
* chore: handle blog pagination when JS is disabledArmand Philippot2022-05-202-6/+6
|
* refactor: rewrite Prism hooks and providersArmand Philippot2022-05-192-18/+10
| | | | | It avoid some hydratation errors on project pages (not in article however) and the hooks are now reusable.
* chore: fix minor styles/typescript issues introduced during refactoringArmand Philippot2022-05-182-2/+7
|
* chore: handle settings changeArmand Philippot2022-05-1812-89/+113
|
* chore: close toolbar modals on click/focus outsideArmand Philippot2022-05-182-10/+16
|
* chore: add branding animationArmand Philippot2022-05-183-45/+126
|
* chore: make some widgets scrollable (like ToC)Armand Philippot2022-05-172-1/+27
|