TMF

@tmf/kb-front (7.9.0-rc.2)

Published 2026-11-04 02:02:12 -03:00 by tarcisio

Installation

@tmf:registry=
npm install @tmf/kb-front@7.9.0-rc.2
"@tmf/kb-front": "7.9.0-rc.2"

About this package

@tmf/kb-front

UI plug-and-play do módulo Base de Conhecimento (KB) multi-domínio da plataforma TMF: o host instala o pacote e renderiza <KBApp baseUrl getToken tenantId can />, sem depender de @tmf/platform-core nem montar um AppContract. Backend irmão: packages/kb/back — consumir sempre via manual de integração dele (INTEGRATION.md).

A versão é a do package.json (fonte única) e a da tabela gerada do README.md da raiz do monorepo; este arquivo não a repete. O que cada versão trouxe: CHANGELOG.md.

O que existe em src/

  • KBApp (app/KBApp.tsx) — shell completo: nav de seções (browse, curation, blocks, import, settings, cada uma escondida por can()), árvore de categorias com drag-and-drop, listagem/busca, leitura de artigo (?article=), quick switcher (Ctrl/Cmd+K) e backlinks. Cria um QueryClient próprio — não exige QueryClientProvider no host.
  • Renderização de conteúdo pelo content_format do backend: md (via marked, sempre sanitizado com DOMPurify depois), html (caminho anterior), wikilinks [[nota]], frontmatter como grade de propriedades e callouts. Detalhes no CHANGELOG.md.
  • Páginas e componentes exportados pelo barrel (src/index.ts) para hosts que queiram montar peças fora do KBApp: KBBrowse, KBArticleView, KBCuration, KBBlocks, KBDomainsSettings, KBTenantSettings, KBArticleEditor, KBCategoryTree, KBQuickSwitcher, KBBacklinksPanel, entre outros.
  • ClientKnowledgeBaseTab (pages/embed.tsx) — a KB de um cliente embutida na tela do host (aba); clientId é obrigatório nesse ponto de montagem.
  • KBContext/useKBContext, useKBRouting (History API, sem react-router; modos "query" e "path"), createKBClient (wrapper de fetch com Bearer via getToken()), i18n pt-BR/en-US e theme/tokens.css (custom properties --kb-*).

Uso

import { KBApp } from '@tmf/kb-front'
import '@tmf/kb-front/styles.css'   // tokens --kb-* — sem isso a KB renderiza sem estilo

<KBApp
  baseUrl="/api"
  getToken={() => auth.token}
  tenantId={tenant.id}
  can={(permission) => hasPermission(permission)}   // recebe 'kb:view', 'kb:edit', 'kb:admin'…
/>

⚠️ baseUrl é o prefix= usado pelo host em app.include_router(kb_module.router, prefix=...) — nunca esse prefixo + /kb, porque toda rota do backend já declara /kb/... no próprio path (com baseUrl="/api/kb" saem requests em /api/kb/kb/..., 404 em tudo). Ver ../back/INTEGRATION.md §5.

⚠️ tenantId é só contexto da UI: o backend resolve o tenant pelo token (via get_scope do host) e nunca lê tenant do request. O recorte por cliente (clientId) viaja como client_id em query e é validado pelo backend contra o escopo do principal (pedir cliente alheio é 403).

Peer dependencies: react/react-dom e @tiptap/react, @tiptap/starter-kit, @tiptap/pm (o editor usa a instância do host). Faixas em package.json.

Testes

cd packages/kb/front && npm ci
npm run typecheck && npm test   # vitest + Testing Library

Documentação

Arquivo Conteúdo
INTEGRATION.md Manual do consumidor do front (montagem, props, roteamento, checklist)
../back/INTEGRATION.md Manual do backend tmf-kb-back (pré-requisitos, montagem, rota canônica, env vars, checklist, troubleshooting)
../back/README.md Visão do backend

Dependencies

Dependencies

ID Version
@dnd-kit/core ^6.0.0
@dnd-kit/sortable ^10.0.0
@tanstack/react-query ^5.0.0
dompurify ^3.0.0
lucide-react ^0.400.0
marked ^17.0.3

Development dependencies

ID Version
@testing-library/jest-dom ^6.0.0
@testing-library/react ^16.0.0
@tiptap/pm ^3.27.3
@tiptap/react ^3.27.3
@tiptap/starter-kit ^3.27.3
@tmf/platform-core file:../../platform-core
@types/dompurify ^3.0.5
@types/react ^18.2.47
@types/react-dom ^18.2.18
jsdom ^25.0.0
tsup ^8.5.1
typescript ^5.3.3
vitest ^4.1.11

Peer dependencies

ID Version
@tiptap/pm >=3.0.0
@tiptap/react >=3.0.0
@tiptap/starter-kit >=3.0.0
@tmf/design-tokens >=0.6.0
react >=18.0.0
react-dom >=18.0.0

Keywords

tmf knowledge-base react components plug-and-play
Details
npm
2026-11-04 02:02:12 -03:00
0
Trade Marketing Force LTDA
UNLICENSED
next
541 KiB
Assets (1)
Versions (22) View all
7.9.0-rc.2 2026-11-04
7.8.0-rc.1 2026-11-03
7.4.0 2026-10-30
7.3.0 2026-10-29
7.2.2 2026-10-20