tristan b55050b2ad
Release / release (push) Successful in 1m36s
fix(ui): token w-m-btn-action partagé + fix alignement pagination DataTable (#59)
## Description

Deux changements regroupés :

### 1. Nouveau token Tailwind partagé `w-m-btn-action` (150px)

Exposé via `tailwind.config.ts` du layer + CSS var `--m-btn-action-width` dans `malio.css`. Utilisable côté projet consommateur pour les boutons d'action (`<MalioButton button-class="w-m-btn-action" />`), et themable en redéfinissant la CSS var dans son propre `:root`.

Convention alignée sur les couleurs `m-btn-primary` / `m-btn-secondary` / `m-btn-danger` (préfixe `m-btn-`).

### 2. Fix alignement pagination DataTable

Régression visuelle après l'introduction du `min-h-[1rem]` sur la zone message du MalioSelect (qui ajoute ~20px sous le field). La barre pagination du DataTable embarquait un MalioSelect pour le `perPage` à côté d'éléments centrés (span « Lignes : » + nav boutons Prev/Page/Next), faisant dériver l'alignement vertical.

**Fix** :
- La barre pagination passe en `items-center`
- Le MalioSelect du sélecteur perPage est encapsulé dans un wrapper `h-12` qui borne sa taille flex à la hauteur du field — le slot vide déborde invisiblement en dessous
- Tous les centres alignés exactement sur le field (y=24)

## Check list

- [x] Pas de régression
- [x] TU/TI/TF rédigée (34/34 tests DataTable OK)
- [x] TU/TI/TF OK
- [x] CHANGELOG modifié

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: THOLOT DECHENE Matthieu <matthieu@yuno.malio.fr>
Co-authored-by: matthieu <matthieu@yuno.malio.fr>
Reviewed-on: #59
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-06-01 07:31:39 +00:00
2026-03-08 19:00:24 +00:00
2026-03-26 07:40:04 +00:00
2026-03-26 07:40:04 +00:00
2026-02-19 10:48:42 +01:00
2026-02-19 10:58:13 +01:00
2026-02-19 10:48:42 +01:00
2026-02-19 10:48:42 +01:00
2026-03-08 19:00:24 +00:00
2026-02-19 10:48:42 +01:00
2026-03-26 07:40:04 +00:00
2026-03-08 19:00:24 +00:00
2026-02-19 10:48:42 +01:00
2026-03-08 19:00:24 +00:00
2026-03-08 19:00:24 +00:00
2026-03-08 19:00:24 +00:00
2026-03-08 19:00:24 +00:00
2026-03-08 19:00:24 +00:00
2026-03-08 19:00:24 +00:00

Malio UI Layer (Nuxt)

Layer Nuxt partageable pour centraliser des composants UI et les réutiliser dans plusieurs projets.

Le layer est à la racine du repo.
Le dossier .playground/ sert à tester localement les composants du layer.

Commandes utiles

Installation

npm install

Développement local (playground)

Préparer les fichiers Nuxt générés du playground (utile pour TypeScript + ESLint) :

npm run dev:prepare

Lancer le playground :

npm run dev

Qualité

Lancer le linter :

npm run lint

Build / preview

Build de production du playground :

npm run build

Génération statique du playground :

npm run generate

Prévisualiser le build :

npm run preview

Livraison / publication du layer (CI)

La publication est automatique via .gitea/workflows/release.yml sur push main / master.

Le job CI :

  1. Installe les dépendances
  2. Lance npm run dev:prepare
  3. Lance npm run lint
  4. Lance semantic-release (version automatique + publish sur Gitea Packages)

Les versions sont calculées via Conventional Commits :

  • fix: ... -> patch (1.0.0 -> 1.0.1)
  • feat: ... -> minor (1.0.0 -> 1.1.0)
  • feat!: ... ou BREAKING CHANGE: -> major (1.0.0 -> 2.0.0)

Secrets requis dans le repo Gitea :

  • NPM_TOKEN : token avec droits publish package
  • RELEASE_TOKEN : token avec droits write repo (tags/releases)

Commande locale utile avant push :

npm pack --dry-run

Tester un composant dans le playground

Le playground étend déjà le layer via .playground/nuxt.config.ts.

Exemple rapide :

  1. Créer un composant dans le layer
    Fichier app/components/malio/Badge.vue
<template>
  <span class="inline-flex rounded-full bg-gray-900 px-2 py-1 text-xs text-white">
    {{ label }}
  </span>
</template>

<script setup lang="ts">
withDefaults(defineProps<{ label?: string }>(), {
  label: 'Badge',
})
</script>
  1. Lutiliser dans le playground
    Fichier .playground/pages/index.vue
<template>
  <div class="p-6 space-y-4">
    <MalioBadge label="Nouveau composant" />
  </div>
</template>
  1. Lancer le playground
npm run dev

Utiliser ce layer dans un autre projet Nuxt

1) Configurer le .npmrc du projet consommateur

Option simple :

@malio:registry=https://gitea.malio.fr/api/packages/MALIO-DEV/npm/

Puis :

export NPM_TOKEN=TON_TOKEN_GITEA

2) Installer le package

npm install @malio/layer-ui

3) Étendre le layer

Dans nuxt.config.ts du projet consommateur :

export default defineNuxtConfig({
  extends: ['@malio/layer-ui'],
})
S
Description
No description provided
Readme 1.7 MiB
Languages
Vue 62.5%
TypeScript 36.9%
CSS 0.3%
Shell 0.2%