Composants UI

Composants @framework/ui

Composants techniques migrés depuis frappe-ui vers le paquet @framework/ui (télémétrie, onboarding, import de données, bannières d'essai et d'inscription)

Composants @framework/ui

Le paquet @framework/ui regroupe des composants Vue qui dépendent de la connaissance de Dokos (doctypes, endpoints, onboarding, facturation). Ces composants ont été migrés depuis frappe-ui afin de séparer la bibliothèque de composants « purs » (frappe-ui) des composants spécifiques au framework.

Composants concernés

GroupeComposants et fonctions
TélémétrietelemetryPlugin, useTelemetry, TelemetryPluginOptions
Onboarding et aideuseOnboarding, OnboardingStep, GettingStartedBanner, IntermediateStepModal, HelpModal, showHelpModal, minimize
FacturationTrialBanner, SignupBanner
Import de donnéesDataImportWizard, useDataImport

Changement d'import

Tous ces composants sont exportés depuis la racine du paquet. Il suffit de remplacer le chemin d'import :

-import { useTelemetry, TrialBanner } from 'frappe-ui/frappe'
+import { useTelemetry, TrialBanner } from '@framework/ui'

Aucun sous-chemin supplémentaire n'a été introduit.

Modifications techniques

Import de données

L'ancien composant DataImport est remplacé par DataImportWizard. Il reçoit l'état créé par le composable useDataImport.

<script setup>
import { ref } from "vue";
import { DataImportWizard, useDataImport } from "@framework/ui";

const importName = ref(null);
const dataImport = useDataImport(importName, { doctype: "Customer" });
</script>

<template>
  <DataImportWizard :data-import="dataImport" />
</template>

Les anciennes propriétés label, description et socket n'existent plus. L'assistant utilise lui-même la connexion temps réel de l'application. Les anciens types DataImportRecord, DataImportProps, DataImportSocket et DataImports ont été retirés.

Le mappage des colonnes utilise le composant Combobox de frappe-ui. Les étapes de l'assistant utilisent le composant Link de @framework/ui.

Onboarding et aide

Le composable et l'état d'aide sont écrits en TypeScript. useOnboarding est typé depuis le source plutôt que via un fichier .d.ts écrit à la main.

Dépendance @vueuse/core

@vueuse/core est une dépendance paire (peer dependency), car le composable d'onboarding utilise useStorage. Cela évite qu'une application se retrouve avec deux copies des refs.

Composants internes non exportés

Les écrans internes de DataImportWizard (étapes), OnboardingSteps et HelpCenter ont été migrés en tant que fichiers internes. Ils ne sont jamais importés directement par une application et ne figurent pas dans le barrel racine.