Exportações do pacote
O Orbz separa o acesso puro à API, o registro protegido para navegador e o bundle independente para navegador. Todos os frameworks renderizam o elemento nativo <orb-z>.
Mapa de pontos de entrada
| Importação | Disponibiliza | Efeito colateral |
|---|---|---|
@neongate-ai/orbz | Elemento nativo, tipos do runtime de conversa, constantes, predefinições, funções de normalização, orbzElementClassFactory() e defineOrbz() | Não registra a tag |
@neongate-ai/orbz/browser | Tudo que a entrada principal disponibiliza | Chama defineOrbz() |
@neongate-ai/orbz/react-types | Extensão opcional dos tipos JSX do React para a tag nativa <orb-z> | Nenhum |
@neongate-ai/orbz/standalone | Build independente para navegador da entrada de navegador | Chama defineOrbz() |
@neongate-ai/orbz/index.css | A mesma folha de estilos de origem incorporada à raiz shadow fechada | Nenhum |
@neongate-ai/orbz/package.json | Metadados do pacote publicado | Nenhum |
Os pontos de entrada de navegador e standalone são marcados no manifesto do pacote como tendo efeitos colaterais, para que os empacotadores preservem a chamada de registro.
react-types não contém um componente React nem um adaptador de runtime. Importe-o apenas em projetos TypeScript de React ou Next.js que precisem reconhecer <orb-z> no JSX.
Entrada principal
Use a entrada principal para registro explícito e tipos de domínio reutilizáveis:
import {
DEFAULT_ORBZ_PRESET,
defineOrbz,
ORBZ_PRESETS,
ORBZ_STATES,
type OrbzElement,
type OrbzPresetName,
type OrbzState,
} from "@neongate-ai/orbz";
defineOrbz();
const nextState: OrbzState = "listening";
const preset: OrbzPresetName = DEFAULT_ORBZ_PRESET;
const colors = ORBZ_PRESETS[preset];
const orb = document.querySelector<OrbzElement>("orb-z");
if (orb) orb.state = nextState;Importar apenas o módulo principal nunca registra orb-z. Chame defineOrbz() ou importe /browser quando a página precisar ativar a implementação da tag.
Constantes
| Exportação | Significado |
|---|---|
ORBZ_TAG_NAME | A string "orb-z" |
ORBZ_OBSERVED_ATTRIBUTES | Nomes dos atributos nativos reativos |
ORBZ_STATES | Todos os estados do assistente compatíveis |
ORBZ_REDUCED_MOTION_MODES | system, always e never |
ORBZ_PRESET_NAMES | Seis nomes canônicos de predefinições, começando por neongate |
ORBZ_PRESETS | Valores de cor imutáveis para cada predefinição canônica; mantém um alias derivado da conta, obsoleto e não enumerável |
ORBZ_COLOR_ATTRIBUTES | Mapa das chaves de cor para os nomes de atributos nativos |
ORBZ_COLOR_KEYS | As cinco chaves de cor |
DEFAULT_ORBZ_STATE | idle |
DEFAULT_ORBZ_SIZE | 16rem |
DEFAULT_ORBZ_SPEED | 1 |
DEFAULT_ORBZ_REDUCED_MOTION | system |
DEFAULT_ORBZ_PRESET | neongate; veja nomes das predefinições |
DEFAULT_ORBZ_COLORS | As cores da predefinição Neongate |
config | Namespace imutável que expõe as constantes do pacote, incluindo config.ORBZ_STATES |
talk | Objeto vazio congelado de compatibilidade ({}); defina as etapas no host |
DEFAULT_TALK_FLOW | Array vazio congelado ([]); sem saudação, persona ou conversa integrada |
Os arrays e registros de predefinições ajudam a gerar controles validados sem copiar os valores aceitos pelo pacote.
import { DEFAULT_ORBZ_PRESET, ORBZ_PRESET_NAMES, ORBZ_STATES } from "@neongate-ai/orbz";
for (const state of ORBZ_STATES) {
stateSelect.add(new Option(state, state));
}
for (const preset of ORBZ_PRESET_NAMES) {
const label = preset === DEFAULT_ORBZ_PRESET ? "Neongate" : preset;
presetSelect.add(new Option(label, preset));
}Tipos
| Exportação | Estrutura |
|---|---|
OrbzState | União dos cinco nomes de estado |
OrbzReducedMotion | "system" | "always" | "never" |
OrbzPresetName | União dos seis nomes canônicos e de um alias de entrada obsoleto derivado da conta |
OrbzSize | number | string |
OrbzColors | Strings obrigatórias primary, secondary, accent, highlight e background |
OrbzColorOverrides | OrbzColors parcial |
OrbzBaseOptions | Opções de estado, tamanho, velocidade, pausa, elevação e movimento reduzido |
OrbzPresetOptions | Modo de predefinição; as chaves de cores personalizadas são never |
OrbzCustomColorOptions | Modo de cores personalizadas; preset é never |
OrbzColorSelection | União dos modos de predefinição e de cores personalizadas |
OrbzOptions | Opções básicas combinadas com a união de seleção de cores |
OrbzElement | Propriedades do elemento nativo e métodos de reprodução |
OrbzElementConstructor | Construtor tipado do elemento personalizado |
OrbzTalkStep | Etapa tipada de conversa determinística ou apoiada por inteligência |
OrbzTalkContext | Valores em memória capturados pelo executor de conversa |
OrbzVoiceOptions | Configuração opcional do mecanismo de voz, fluxo de conversa e inteligência |
OrbzVoiceEnginePort | Contrato para a saída de voz fornecida pelo implementador |
OrbzIntelligencePort | Contrato para respostas opcionais não determinísticas |
WebSpeechAdapterOptions | Opções de localidade, preferência de voz, velocidade, tom, volume e carregamento de vozes |
OpenAISpeechAdapterOptions | Opções de endpoint seguro, modelo de fala da OpenAI, voz, instruções e formato |
Adaptadores de fala
| Exportação | Finalidade |
|---|---|
WebSpeechAdapter | Síntese de fala do navegador com seleção explícita de localidade e voz |
OpenAISpeechAdapter | Fala com qualidade OpenAI por meio de um endpoint seguro controlado pelo implementador |
OpenAISpeechAdapter usa gpt-4o-mini-tts, marin e MP3 por padrão. A chave da API da OpenAI permanece no endpoint e nunca é incluída no código do navegador.
Validadores e normalizadores
| Exportação | Finalidade |
|---|---|
isOrbzState() | Guarda de tipo para um estado compatível |
isOrbzPresetName() | Guarda de tipo que aceita nomes canônicos e um alias obsoleto derivado da conta |
isOrbzReducedMotion() | Guarda de tipo para um valor de movimento reduzido |
normalizeOrbzState() | Entradas incompatíveis tornam-se idle |
normalizeOrbzPreset() | Normaliza uma entrada obsoleta derivada da conta para neongate; entradas incompatíveis tornam-se DEFAULT_ORBZ_PRESET |
normalizeOrbzReducedMotion() | Entradas incompatíveis tornam-se system |
normalizeOrbzSize() | Números tornam-se pixels; entradas numéricas inválidas ou vazias tornam-se 16rem |
normalizeOrbzSpeed() | Entradas não positivas ou não finitas tornam-se 1 |
mergeOrbzColors() | Aplica substituições válidas e não vazias sobre um conjunto básico de cores |
Normalize configurações não confiáveis antes de armazená-las:
import {
normalizeOrbzPreset,
normalizeOrbzSpeed,
normalizeOrbzState,
} from "@neongate-ai/orbz";
const config = {
preset: normalizeOrbzPreset(payload.preset),
speed: normalizeOrbzSpeed(payload.speed),
state: normalizeOrbzState(payload.state),
};Funções de registro
defineOrbz() é a API habitual de registro explícito. É segura para SSR e idempotente:
import { defineOrbz } from "@neongate-ai/orbz";
const constructor = defineOrbz();orbzElementClassFactory() cria e mantém a classe em cache somente quando globalThis.HTMLElement existe. Ela é exportada para integrações avançadas; a maioria das aplicações deve chamar defineOrbz().
import { orbzElementClassFactory } from '@neongate-ai/orbz'
const constructor = orbzElementClassFactory()
// undefined on a server; an OrbzElementConstructor in a browserAs duas funções evitam avaliar uma subclasse de HTMLElement quando o DOM não está disponível.