Skip to content

feat: add abstraction layer for services, composables, and plugin (ENG-37137)#505

Merged
robsongajunior merged 3 commits intomainfrom
feat/ENG-37137-primevue-abstraction-layer
Apr 2, 2026
Merged

feat: add abstraction layer for services, composables, and plugin (ENG-37137)#505
robsongajunior merged 3 commits intomainfrom
feat/ENG-37137-primevue-abstraction-layer

Conversation

@HerbertJulio
Copy link
Copy Markdown
Contributor

Summary

  • WebkitPlugin: Plugin unificado que registra PrimeVue, ToastService, DialogService e Tooltip em uma unica chamada app.use(WebkitPlugin)
  • useToast wrapper: Composable que mantem API original (toast.add()) e adiciona atalhos semanticos (toast.success(), toast.error(), toast.warn(), toast.info())
  • useDialog wrapper: Composable que encapsula useDialog do PrimeVue
  • Novos componentes: DynamicDialog e ConfirmDialog wrappers
  • Re-exports: FilterMatchMode (@aziontech/webkit/api) e Tooltip directive (@aziontech/webkit/tooltip)

Motivacao

Permitir que o console-kit remova a dependencia direta do primevue do seu package.json, usando o webkit como unica camada de abstracao. A migracao no console-kit sera mecanica (troca de import paths em ~100 arquivos), sem mudanca de logica.

Novos exports

Export Tipo Descricao
@aziontech/webkit/plugin Plugin WebkitPlugin (PrimeVue + ToastService + DialogService + Tooltip)
@aziontech/webkit/use-toast Composable useToast wrapper com atalhos semanticos
@aziontech/webkit/use-dialog Composable useDialog wrapper
@aziontech/webkit/api Utility FilterMatchMode re-export
@aziontech/webkit/dynamic-dialog Component DynamicDialog wrapper
@aziontech/webkit/confirm-dialog Component ConfirmDialog wrapper
@aziontech/webkit/tooltip Directive Tooltip re-export

Como o console-kit vai consumir

// main.js — antes: 4 imports + 4 app.use → depois: 1 import + 1 app.use
import { WebkitPlugin } from '@aziontech/webkit/plugin'
app.use(WebkitPlugin)

// componentes — mesma API, so muda import path
import { useToast } from '@aziontech/webkit/use-toast'
import { useDialog } from '@aziontech/webkit/use-dialog'
import { FilterMatchMode } from '@aziontech/webkit/api'

Test plan

  • Verificar que os exports resolvem corretamente no consumer app
  • Verificar que useToast e useDialog funcionam quando o WebkitPlugin esta registrado
  • Verificar que toast.add() (API original) continua funcionando
  • Verificar que os atalhos toast.success(), toast.error() disparam corretamente
  • Verificar que DynamicDialog e ConfirmDialog renderizam
  • Verificar que FilterMatchMode.CONTAINS resolve corretamente

…les, and plugin (ENG-37137)

- Add useToast wrapper composable with semantic shortcuts (success, error, warn, info)
- Add useDialog wrapper composable
- Add FilterMatchMode re-export via api entry point
- Add DynamicDialog and ConfirmDialog wrapper components
- Add Tooltip directive re-export
- Add WebkitPlugin that registers PrimeVue, ToastService, DialogService, and Tooltip
- Update package.json with 7 new exports
- Add abstraction approaches documentation
@HerbertJulio HerbertJulio requested a review from a team as a code owner April 1, 2026 21:17
@HerbertJulio HerbertJulio self-assigned this Apr 1, 2026
Wrappers previously relied on Vue's implicit inheritAttrs fallthrough
for the pt (passthrough) prop, which is fragile. Now explicitly declared
and forwarded in: accordion-tab, breadcrumb, card, column, message,
progressbar, steps, tabmenu, tabpanel, tag, timeline, toast.
@robsongajunior robsongajunior merged commit 899e242 into main Apr 2, 2026
3 checks passed
@HerbertJulio HerbertJulio changed the title feat(primevue): add abstraction layer for services, composables, and plugin (ENG-37137) feat: add abstraction layer for services, composables, and plugin (ENG-37137) Apr 2, 2026
@robsongajunior
Copy link
Copy Markdown
Collaborator

🎉 This PR is included in version 1.18.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@robsongajunior
Copy link
Copy Markdown
Collaborator

🎉 This PR is included in version 1.9.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@robsongajunior robsongajunior deleted the feat/ENG-37137-primevue-abstraction-layer branch April 17, 2026 16:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

3 participants