mautourco-components
v0.2.54
Published
Bibliothèque de composants Mautourco pour le redesign
Maintainers
Readme
Motorco - Bibliothèque de composants
Ce dépôt contient la bibliothèque de composants utilisée pour la refonte de B2B_react. Le package est publié sur npm afin de faciliter son intégration continue dans le projet.
Installation
Dans B2B_react
npm install mautourco-componentsUtilisation des composants
1. Importer les styles
Option 1 : Import unique (recommandé)
// Dans votre index.tsx ou App.tsx
// Importez tous les styles en une seule ligne
import 'mautourco-components/dist/styles/mautourco.css';Option 2 : Imports individuels (si vous n'avez besoin que de certains composants)
// Importez uniquement les styles dont vous avez besoin
import 'mautourco-components/dist/styles/tokens/tokens.css';
import 'mautourco-components/dist/styles/components/forms.css';
import 'mautourco-components/dist/styles/components/typography.css';
import 'mautourco-components/dist/styles/components/organism/topnavigation.css';
import 'mautourco-components/dist/styles/components/organism/footer.css';Note: Les CSS sont précompilés avec Tailwind v3, donc compatibles avec Tailwind v3 et v4. Le fichier mautourco.css est généré automatiquement et inclut tous les styles de la bibliothèque.
2. Utiliser les composants
Exemple avec des atoms et molecules
import React from 'react';
import {
Input,
Checkbox,
Text,
Heading,
Icon,
MultiSelectDropdown,
} from 'mautourco-components';
function App() {
return (
<div>
<Heading level="h1">Mon Application</Heading>
<Input placeholder="Votre nom" icon="user" iconPosition="leading" />
<Checkbox
label="J'accepte les conditions"
onChange={(checked) => console.log(checked)}
/>
<Icon name="search" size="md" />
</div>
);
}Exemple avec des organisms (TopNavigation et Footer)
import React from 'react';
import { TopNavigation, Footer, Icon } from 'mautourco-components';
import type { TopNavigationProps, FooterProps } from 'mautourco-components';
// Exemple avec TopNavigation
const navigationLinks = [
{ label: 'Accueil', route: '/', isButton: false },
{ label: 'Services', route: '/services', isButton: false },
{ label: 'Contact', route: '/contact', isButton: true },
];
const Logo = () => <Icon name="mautourcoLogo" size="md" />;
function App() {
const handleLinkClick = (link: { label: string; route: string }) => {
// Gérer la navigation (ex: avec React Router)
console.log('Navigation vers:', link.route);
};
return (
<div>
<TopNavigation
links={navigationLinks}
logoUrl={Logo}
homeUrl="/"
active="Accueil"
onLinkClick={handleLinkClick}
onLogin={() => console.log('Login')}
onLogout={() => console.log('Logout')}
/>
{/* Votre contenu principal */}
<main>...</main>
<Footer
logo={<Logo />}
columns={[
{
id: 'menu-1',
title: 'Navigation',
links: [
{
label: 'Accueil',
href: '/',
onClick: () => handleLinkClick({ label: 'Accueil', route: '/' }),
},
{ label: 'Services', href: '/services' },
],
},
]}
contact={{
title: 'Contact',
addressLines: ['84, Gustave Colin Street', 'Forest Side 74414, Mauritius'],
phone: '+ (230) 604 3000',
email: '[email protected]',
}}
socials={[
{
id: 'fb',
label: 'Facebook',
href: '#',
icon: <Icon name="facebook" size="md" />,
},
{
id: 'in',
label: 'LinkedIn',
href: '#',
icon: <Icon name="linkedin" size="md" />,
},
]}
homeUrl="/"
onLinkClick={handleLinkClick}
/>
</div>
);
}Composants disponibles
Atoms (Composants de base)
Input- Champ de saisie avec variantesCheckbox- Case à cocherText- Texte avec variantes de styleHeading- Titres (h1, h2, h3, etc.)Icon- Icônes avec différentes taillesSpinner- Indicateur de chargementTextarea- Zone de texte multi-lignesDropdownInput- Champ de saisie avec dropdownSelectedValue- Affichage de valeur sélectionnée
Molecules (Composants composés)
MultiSelectDropdown- Dropdown de sélection multiple
Organisms (Composants complexes)
TopNavigation- Navigation responsive avec support mobile/desktop, authentification et gestion d'agenceFooter- Pied de page responsive avec colonnes de menu, contact et réseaux sociaux
Variantes de Spinner
ButtonSpinner- Spinner pour boutonsLoadingSpinner- Spinner de chargement général
Icônes individuelles
CheckIcon,ChevronIcon,CloseIconSearchIcon,SettingsIcon,UserIcon
Mise à jour du package
# Dans votre projet
npm update mautourco-componentsDéveloppement du package
Scripts disponibles
npm run build:package # Build du package pour distribution
npm run build-tokens # Génération des design tokens
npm run storybook # Démarre Storybook
npm publish # Publication sur npm (après login)Ajout de nouveaux composants
- Créez votre composant dans
src/components/ - Ajoutez l'export dans
src/index.ts npm run build:packagenpm publish
Notes importantes
- Styles : Les composants nécessitent l'import des fichiers CSS correspondants depuis
dist/styles/ - CSS compilés : Les CSS sont précompilés avec Tailwind v3 lors du build, donc compatibles avec Tailwind v3 et v4
- TypeScript : Tous les composants sont typés
- Design tokens : Générés automatiquement depuis le dossier
tokens/
Dépannage
- Composant non trouvé : Vérifiez qu'il est exporté dans
src/index.ts - Styles manquants : Assurez-vous d'importer les fichiers CSS nécessaires
- Erreur de build : Vérifiez que tous les composants exportés existent réellement
