
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@praxisui/settings-panel
Advanced tools
Settings panel for Praxis UI libraries: open editors for configuration at runtime and persist settings.
Para ver esta biblioteca em funcionamento em uma aplicação completa, utilize o projeto de exemplo (Quickstart):
@praxisui/* em um app Angular, incluindo instalação, configuração e uso em telas reais.Painel de configurações baseado em drawer para hospedar editores de configuração com UX consistente (Apply, Save & Close, Reset, Cancel).
npm i @praxisui/settings-panel
Peer dependencies (Angular v20):
@angular/core ^20.0.0@angular/common ^20.0.0@angular/cdk ^20.0.0@angular/material ^20.0.0@praxisui/dynamic-fields ^0.0.1SettingsPanelService.open(...) informando um componente standalone como conteúdo.SettingsValueProvider para o painel habilitar/desabilitar ações do rodapé.SettingsPanelRef.applied$ e saved$ para aplicar/persistir mudanças.Serviço
open(config: SettingsPanelConfig): SettingsPanelRef
config.id: string Identificador único da instânciaconfig.title?: string Título do cabeçalho (opcional titleIcon)config.content: { component: Type<any>; inputs?: Record<string, any> } Componente + inputs iniciaisRef
applied$: Observable<any> Emite quando o usuário clica em Apply (painel permanece aberto)saved$: Observable<any> Emite quando o usuário clica em Save & Closeclosed$: Observable<SettingsPanelCloseReason> Emite ao fechar ('cancel' | 'save' | 'backdrop' | 'esc')apply(value: any) Emite Apply programaticamentesave(value: any) Emite Save & Close programaticamentereset() Notifica que o conteúdo foi resetado ao estado inicialclose(reason?: SettingsPanelCloseReason) Fecha o painelInjection Tokens
SETTINGS_PANEL_DATA Dados passados ao componente de conteúdo (os mesmos de content.inputs)SETTINGS_PANEL_REF A instância viva do SettingsPanelRefO componente hospedado deve expor os membros abaixo para o painel controlar os botões do rodapé:
Obrigatórios
isDirty$: Observable<boolean> true quando há alterações não aplicadas (habilita Apply/Save)isValid$: Observable<boolean> true quando o estado é válido (desabilita ações se false)isBusy$: Observable<boolean> true durante operações assíncronas (desabilita ações)getSettingsValue(): any Snapshot atual usado em Apply/SaveOpcionais
onSave?(): any | Promise<any> | Observable<any> Se presente, o Save chamará este método; caso contrário o painel usa getSettingsValue()reset?(): void Chamado quando o usuário clica ResetsuggestExpanded$?, preferredWidth$?, requiresFullHeight$?, onPanelResize?, onBeforeClose?, onFocusChange?, customActions$?, hideDefaultButtons$?Comportamento do Rodapé
isDirty && isValid && !isBusy// Em um componente host (ex.: Filtro Praxis)
const ref = this.settingsPanel.open({
id: `filter.${this.configKey}`,
title: 'Configurações do Filtro',
content: { component: FilterSettingsComponent, inputs: currentConfig },
});
// Tratar Apply (manter painel aberto)
ref.applied$.pipe(take(1)).subscribe((cfg: FilterConfig) => {
const safe = validateConfig(cfg);
applyChanges(safe);
persistConfig(safe, 'Configurações aplicadas');
});
// Tratar Save & Close
ref.saved$.pipe(take(1)).subscribe((cfg: FilterConfig) => {
const safe = validateConfig(cfg);
applyChanges(safe);
persistConfig(safe, 'Configurações salvas');
});
@Component({ standalone: true /* imports… */ })
export class MySettingsEditor implements SettingsValueProvider {
private fb = inject(FormBuilder);
form = this.fb.group({ foo: ['bar', Validators.required] });
// Streams obrigatórias
isDirty$ = this.form.valueChanges.pipe(map(() => this.form.dirty), startWith(false));
isValid$ = this.form.statusChanges.pipe(map(() => this.form.valid), startWith(this.form.valid));
isBusy$ = of(false);
getSettingsValue() {
return this.form.getRawValue();
}
reset() {
this.form.reset({ foo: 'bar' });
}
}
# build do pacote
ng build praxis-settings-panel
# verificar conteúdo do pacote
cd dist/praxis-settings-panel && npm pack
O pacote publicado inclui este README.md via configuração de assets no ng-package.json.
FAQs
Settings panel for Praxis UI libraries: open editors for configuration at runtime and persist settings.
The npm package @praxisui/settings-panel receives a total of 496 weekly downloads. As such, @praxisui/settings-panel popularity was classified as not popular.
We found that @praxisui/settings-panel demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.