@onblide/ui
6.1.0
Minor Changes
-
ca5f047: Calendar com destaque ao passar o mouse e faixa visível em meses e anos.
- Dias, meses e anos ganham destaque sob o mouse desde o primeiro clique, nos modos
singleerange. - No modo
range, as vistas de meses e de anos mostram o intervalo selecionado (início e fim marcados, meses ou anos entre eles com a cor de faixa), mesmo quando o intervalo atravessa anos. - Com só o início escolhido, passar o mouse sobre um mês ou ano mostra a faixa até ele, como já acontecia nos dias.
- Dias, meses e anos ganham destaque sob o mouse desde o primeiro clique, nos modos
6.0.0
Major Changes
-
Kbd e Stepper corrigidos.
Quebra de compatibilidade: a prop
inversedoKbdfoi removida. Ela pintava a tecla com as cores da superfície da página, então ficava invisível em qualquer fundo que não fosse o do Tooltip. Agora oKbddesenha texto, contorno e fundo a partir da cor do texto ao redor (currentColor) e fica legível em qualquer fundo, claro, escuro ou colorido.Correções:
Stepper: os marcadores passam a ter sempre o mesmo tamanho (box-sizing: border-box). Antes, o marcador atual (borda de 2px) e o futuro (borda de 1px) ficavam maiores que o concluído, e nos layouts horizontal, barra e vertical as linhas de ligação e os rótulos ficavam deslocados em degraus.Stepper,Timeline,BreadcrumbseTreeView: os itens de lista zeram a margem, para que um CSS de lista do aplicativo (comoli + licom margem superior) não os desloque.- Documentação: o resultado das demos fica isolado do estilo de listas do tema do site, que também deslocava as etapas.
5.0.0
Major Changes
-
Toast que dá para disparar, escolher a posição e testar de verdade.
Quebra de compatibilidade: o global
window.obToaste o eventoob-toastforam removidos. Use a função exportadatoast:toast({ tone, title, body, action, onAction, icon, duration })e os atalhostoast.success,toast.info,toast.warningetoast.danger;toast.dismiss(id)fecha um toast (ou todos, sem id). O módulo não escreve mais emwindowao ser importado.Correções e novidades no
ToastStack:- Cada toast agora vai para uma fila só. Antes, todo
ToastStackna página recebia o mesmo toast e ele aparecia duplicado em várias posições; a nova propname(comstackno toast) permite ter várias filas. - Novas props
duration(0 mantém até fechar) elimit. A duração padrão passou de 4,8 s para 5 s. - Passar o mouse sobre a fila pausa a contagem, como o guia já prometia.
- A fila ganha
role="region"e nome acessível, e oidfixo virou classe, para poder haver mais de uma na página.
- Cada toast agora vai para uma fila só. Antes, todo
4.2.0
Minor Changes
- FileUpload com foto de perfil de verdade: na variante
image, a área toda (foto, botão e texto) aceita arrastar e soltar, com destaque e "Solte aqui", e a foto vazia convida a adicionar. As novas propsshape="circle"esizedeixam a prévia redonda e do tamanho que você precisar. Com foto, as ações viram botões só com ícone e tooltip (trocar e remover), passar o mouse na foto mostra "Trocar", e o envio mostra um progresso circular sobre a imagem. O botão de escolher imagem ganha ícone, a variantebuttonavisa que dá para arrastar, e a lista de arquivos mostra miniatura das imagens.
4.1.0
Minor Changes
- Navegação ampla no Calendar e no Datepicker: clicar no mês do cabeçalho abre a grade dos 12 meses, e clicar no ano abre um bloco de 12 anos, com setas que passam de ano em ano e de 12 em 12 anos. A escolha desce de nível (ano, mês, dia) e Esc volta um nível. Meses e anos inteiros fora de
minemaxficam desabilitados, e a nova propopenTodefine a vista inicial (days,monthsouyears).
4.0.1
Patch Changes
- No Calendar e no Datepicker em modo intervalo, cada dia do intervalo volta a ser um quadrado arredondado próprio, com espaço entre eles, em vez de uma faixa contínua.
4.0.0
Major Changes
-
Catálogo revisado para ficar só com componentes comuns nos design systems conhecidos, e cada peça sobre a base certa.
Quebras de compatibilidade:
- O
Datepickerfoi reescrito sobre o novoCalendar.value,defaultValueeonChangeusamDate(ou um intervalo comstarteendno modorange),mode="range"substituisingleDate, emin,max,isDateDisabledeweekStartsOnsubstituemminBookingDateemaxBookingDays. SaemDatepickerValues,showSubmitButton,resetOnSubmit,submitLabel,clearLabel,startDateLabeleendDateLabel. - O
SearchInputé só o campo de busca: saemresults,onSelecte o tipoSearchInputResult(use oAutocompletepara sugestões); entramariaLabeledisabled. - Saem do pacote
Dropdown(use oMenu),KeyList,BrandseBrandTile.FloatingPaneleStatusDotpassam a ser internos.
Novidades:
- Novos componentes:
Calendar,Kbd,AvatarGroup,EmptyState,AccordioneAlertDialog. ModalganharoleecloseButton.Avataraceita até três caracteres eminitials.Select,AutocompleteeMenuabrem para cima quando falta espaço embaixo, com o posicionamento compartilhado com oPopover.TooltipeMenudesenham atalhos com oKbd.- O
Breadcrumbsrecolhe os níveis numMenu.
- O
3.1.1
Patch Changes
- Componentes alinhados às regras do design system. Alert, Toast, Modal, Drawer e Popover usam o
Button(neutral, iconOnly) no botão de fechar, e o Drawer passa a usar o ícone do Phosphor no lugar do caractere de texto. As ações de Alert e Toast também usamButton. O contador de SideNav e Tabs usa oBadge, e o botão de remover do Chip usa o ícone do Phosphor. Cores e sombras fixas viraram tokens:--ob-fg-on-color,--ob-scrim(o fundo de Modal e Drawer agora acompanha o tema escuro),--ob-shadow-xs,--ob-shadow-md,--ob-shadow-popecolor-mixsobre os tokens de tom no Slider. Corrige o rótulo do ProgressBar, que mostrava valores acima de 100% ou abaixo de 0%. Remove os comentários do código dos componentes.
3.1.0
Minor Changes
- Gerenciador de aparência:
themeManager(init, get, set, subscribe), hookuseTheme()ethemeInitScript(também em@onblide/ui/theme-init) para evitar o flash no carregamento. Escolha entre claro, escuro e sistema, persistida emlocalStoragee sincronizada entre abas. O tema claro agora também existe em[data-theme="light"], então uma região clara dentro de uma página escura volta aos tokens claros.
3.0.0
Major Changes
- Navbar: removido
NavbarIconButton, que duplicava o Button. Use<Button kind="neutral" iconOnly aria-label="..." icon={<Icons.bell size={20} />} count={3} />nasactions; o botão de menu da Navbar (onMenuToggle) também passa a ser um Button.
2.4.0
Minor Changes
- Button: novo estilo
neutral(transparente, com fundo sutil no hover), propspressed(marcaaria-pressede destaca o fundo noneutral) ecount(contador em badge no canto) e anel de foco visível ao navegar pelo teclado.
2.3.0
Minor Changes
- SideNav: o rodapé de conta usa o componente Avatar e aceita foto (
accountImageeaccountImageAlt, com volta às iniciais se a imagem falhar), os botões de recolher e abrir usam o Button comiconOnly, e o nome e o detalhe da conta ficam alinhados à esquerda.
2.2.0
Minor Changes
- Button: nova prop
iconOnlypara botão só com ícone, quadrado (32, 40 ou 48px conformesize), sem texto; exigearia-label.
2.1.0
Minor Changes
- Avatar: as iniciais passam a ser a primeira letra da primeira e da última palavra do nome ("Mateus Silva" vira "MS", antes saía "MA"; com uma palavra só continuam as duas primeiras letras) e a nova prop
initialssubstitui as iniciais geradas.
2.0.0
Major Changes
- SideNav: a marca deixa de ser texto. Removido
brandName;brandagora é a logo horizontal (padrão: logo da Onblide) e o novobrandMarké o símbolo exibido recolhida. RemovidoworkspaceName; o rodapé usaaccountName(padrão "Conta"), o novoaccountDetail(linha secundária) e iniciais derivadas do nome quandouserInitialsé omitido. O botão de abrir a barra recolhida existe mesmo comhideBrand(íconecaret-right), e o botão sobre a logo ganha contorno ao passar o mouse. O rótulo de acessibilidade do rodapé passa a serAbrir menu de+ o nome da conta.
1.6.4
Patch Changes
- SideNav: os botões de recolher e abrir ficam com aparência fixa e só trocam de ícone ao passar o mouse (
caret-left→caret-line-leftna borda; logo →caret-line-rightquando recolhida).
1.6.3
Patch Changes
- SideNav: os botões de recolher e abrir têm o mesmo formato (quadrado arredondado) e o mesmo par de ícones (
caret-line-left/caret-line-right), com efeito de hover que desloca o ícone e destaca a borda; sobre a logo, ela se dissolve no ícone.
1.6.2
Patch Changes
- SideNav: a barra de rolagem da lista fica fina e só aparece quando o mouse está sobre a lista, sem setas.
1.6.1
Patch Changes
- SideNav: os botões de recolher e abrir usam o mesmo glifo (
caret-left/caret-right), só espelhado.
1.6.0
Minor Changes
- SideNav: botão circular de recolher na borda da barra (com
onToggle), logo que vira o botão de abrir ao passar o mouse quando recolhida, largura fixa de 72px recolhida mesmo comflush, lista rolável separada do rodapé e menu de conta que não é mais cortado. Menu ganhaplacementright/right-endeblock. Tooltip passa a ter texto legível no tema escuro.
1.5.1
Patch Changes
Table: o tamanho da fonte do conteúdo passa de 14px fixo paravar(--ob-fs-xs)(12px), acompanhando o token tipográfico em vez de um número solto.
1.5.0
Minor Changes
-
SideNav: o nome da marca no cabeçalho (brandName, oubrandpra substituir o bloco inteiro) e o nome da conta no rodapé (accountName) agora são configuráveis, em vez de "Onblide" fixo no código. O rodapé de conta virou um gatilho deMenu(Perfil/Configurações/Sair por padrão, customizável viaaccountMenu/onProfile/onSettings/onSignOut), em vez de um bloco estático.Menu: nova propplacement('bottom' | 'top' | 'auto', padrão'auto'). Comauto, mede o espaço abaixo do gatilho e abre o painel para cima quando necessário — usado pelo rodapé de conta daSideNav, mas disponível em qualquerMenu.
1.4.0
Minor Changes
- Implementa de verdade a prop
maxBookingDaysdoDatepicker, antes aceita mas sem nenhum efeito. Com ela definida, dias além do limite (contado a partir da data inicial) ficam desabilitados no calendário e a digitação manual de uma data final além do limite mostra erro.
1.3.0
Minor Changes
- Adiciona suporte a imagem no
Avatar(src/alt), com fallback automático pras iniciais quando a imagem não é informada ou falha ao carregar.
1.2.0
Minor Changes
- Adiciona
LogoMark, o símbolo isolado da marca Onblide (sem o wordmark), e passa a usá-lo como marca padrão doNavbare no cabeçalho daSideNav. No modo recolhido daSideNav, o botão de expandir some por trás do símbolo e só aparece no hover/foco, em vez de disputar espaço com ele o tempo todo. - Adiciona o componente
Navbar: barra de navegação superior com três layouts (links,search,context), segundo nível opcional (secondary), modo compacto e responsivo, e os subcomponentesNavbarLink,NavbarIconButtoneNavbarAccount.
1.1.2
Patch Changes
Avatarpassa a aceitar imagem porsrc, comaltopcional e fallback para as iniciais quando não houver imagem.
1.1.1
Patch Changes
- Corrige um vão de 1-2px que podia aparecer nas linhas conectoras do
Stepper(variantehorizontal), em telas comdevicePixelRatio1. Cada conector é desenhado em duas metades, uma de cada célula vizinha, que arredondavam a largura fracionária pra baixo de forma independente.
1.1.0
Minor Changes
- Adiciona
ToggleButton(botão com dois estados, pressionado e não pressionado, comaria-pressed) eButtonGroup(agrupaButton/ToggleButtonrelacionados, anexados ou espaçados, com split button viaMenue seleção única ou múltipla viaToggleButton).
1.0.1
Patch Changes
CodeInputpassa a usar--ob-font-mono(JetBrains Mono) nos dígitos, alinhado à convenção do design system para números e código — antes usava--ob-font(Poppins) por descuido.
1.0.0
Major Changes
- Remove o componente
DeadlineCalendar. Ele nasceu como uma variante do calendário feita para uma implementação específica e nunca deveria ter virado componente do design system — não há substituto, nem migração: quem precisar dessa funcionalidade deve construí-la fora do pacote.
0.16.0
Minor Changes
-
Menuganha a propdefaultOpen, para montar o painel já aberto em demonstrações e capturas de tela (mesmo padrão doPopover).Corrige também um regex de normalização de texto (usado por
AutocompleteeTreeViewpara busca sem acento) que guardava os caracteres Unicode literais em vez do escapè-ͯ, o que podia corromper em pipelines que leem o arquivo com uma codificação diferente de UTF-8. Passa a usar\p{Diacritic}, sem nenhum caractere não-ASCII na fonte.
0.15.0
Minor Changes
-
13 componentes novos, portados das propostas aprovadas no Claude Design:
Divider,List(+ListItem,ListSubheader,ListDivider),Breadcrumbs,Textarea,NumberField,FileUpload,Autocomplete,Menu(+ContextMenu,MenuPanel),Menubar(+KeyList),Popover,SteppereTimeline.TreeViewtambém entra nesta leva, com seleção simples/múltipla, busca, carregamento sob demanda, edição e arrastar-para-mover.Todos seguem o padrão já estabelecido no pacote: TypeScript estrito, tokens do design system, ARIA e teclado completos, smoke tests e demos/guias no site de documentação.
0.14.0
Minor Changes
- Breaking: o componente
Togglefoi renomeado paraSwitch(junto com o tipoToggleProps→SwitchProps), alinhando o nome ao papel ARIA que ele já tinha (role="switch") e ao nome mais usado no mercado para essa forma — pílula com bolinha deslizante, liga/desliga imediato.Togglenão existe mais; troqueimport { Toggle } from '@onblide/ui'porimport { Switch } from '@onblide/ui'(mesma API, só o nome muda).
0.13.6
Patch Changes
- Table: clicar num cabeçalho
sortableagora ordena de verdade — semonSort, a Table cicla crescente → decrescente → sem ordenação sozinha, reconhecendo data emdd/mm/aaaa, número e texto.onSortcontinua disponível para ordenação controlada (paginação no servidor, por exemplo), caso em que a Table só avisa a coluna clicada e não reordena por conta própria.
0.13.5
Patch Changes
- Table: a linha embaixo do cabeçalho passa a usar a mesma cor das linhas do corpo (
--ob-line-soft); só o contorno externo mantém--ob-border. A hierarquia do cabeçalho vem da tipografia, e a linha deixa de parecer mais grossa que as demais.
0.13.4
Patch Changes
- Table: a última linha não tem mais borda de baixo (ela se somava à borda do invólucro numa linha de 2px no rodapé) e a linha do cabeçalho passa de 1,5px para 1px, sem espessura fracionada que engrossava em telas com escala. Vale para os estados normal, selecionável, carregando e vazio; novo smoke
smoke-table.mjsgarante isso.
0.13.3
Patch Changes
- Checkbox: check marcado passa a usar o
check-fat(fill) do Phosphor em 12px, que lê como marcado de fato — o check bold em 14px tinha traço de ~1,3px, visualmente igual ao regular. O indeterminado usa o minus bold oficial com contorno extra para ter a mesma espessura do check.
0.13.2
Patch Changes
Checkbox: check e traço passam a ser os SVGs oficiais do Phosphor (peso bold,@phosphor-icons/core, embutidos no build) em 14px, centralizados pela geometria — antes eram glifos de fonte de 12px, finos e deslocados em meio pixel. O contorno vira sombra interna (miolo de 18px inteiros, 2px de respiro exatos) e a caixa fica alinhada ao pixel mesmo em posição fracionada.Radiorecebe a mesma correção no ponto central. Os dois usam entrelinha de 18px no rótulo.
0.13.1
Patch Changes
SideNav: itens, seções e grupos deixam de encolher quando a lista não cabe na altura (os itens ficavam esmagados, com cerca de metade da altura); no modoflusha lista rola. O item ativo perde a barra vertical sólida: fundo azul-claro e texto azul marcam a seleção.
0.13.0
Minor Changes
- Biblioteca Phosphor inteira, nos seis pesos.
PheIconsganham a propweight(regular,fill,bold,light,thin,duotone; padrãoregular) estyles.csspassa a carregar as seis fontes (cada uma só é baixada quando usada). Os componentes aplicam o peso pelo papel:fillno item ativo doSideNav, na aba ativa dosTabse no ícone de status doAlerte doToast;boldem ícones de até 14px e no check/traço doCheckbox, que agora usam o mesmo peso e ficam centralizados. ATablepassa a usar oCheckboxdo design system (com estado indeterminado no "selecionar tudo") eCheckboxganhaariaLabel.Chip,SearchInputeDeadlineCalendardeixam de montar<i class="ph">à mão.
0.12.0
Minor Changes
SideNav: itens aceitamchildrene viram grupos que abrem e fecham, com seta; o grupo começa aberto quando contém o item ativo.
0.11.1
Patch Changes
Checkbox: o rótulo inteiro passa a alternar a seleção (antes só o quadrado respondia ao clique), comrole="checkbox",aria-checked(incluindomixedno indeterminado), foco por teclado e Espaço/Enter.- Todas as props dos componentes ganham descrição (JSDoc), que aparece nos tipos, na documentação e no Claude Design. Os exemplos passam a cobrir as variantes que faltavam.
0.11.0
Minor Changes
- Novos tokens de realce de sintaxe (
--ob-code-tag,--ob-code-attr,--ob-code-string,--ob-code-number,--ob-code-punct,--ob-code-comment,--ob-code-text), derivados da paleta e válidos nos temas claro e escuro.
0.10.0
Minor Changes
SideNav: novas props opcionaishideBrand,hideAccountemenuLabelpara usar o componente como lista de navegação simples, sem a marca e sem a conta do usuário. O comportamento padrão não muda.
0.9.2
Patch Changes
- Unifica os tokens:
src/tokens.csspassa a ser o único arquivo (o antigocolors_and_type.cssda raiz e a pastafonts/duplicada foram removidos) e as páginas deds/apontam para ele.
0.9.1
Patch Changes
- Remove o web app de demonstração (
ui_kits/web_app) e o smoke que o executava; o pacote não muda.
0.9.0
Minor Changes
BrandseBrandTilepassam a usar os glifos oficiais de marca do Phosphor (ph-<marca>-logo, já presentes no webfont), na cor de cada marca, no lugar dos SVGs desenhados à mão. Marcas sem glifo no Phosphor não são implementadas.
0.8.3
Patch Changes
- Reorganiza o código-fonte por papel na interface (
actions,forms,feedback,overlays,navigation,data-display,brand,iconography), no lugar da divisão antigacomponents/primitives. A API pública não muda.
0.8.2
Patch Changes
Datepicker: qualquer dia do calendário ganha destaque ao passar o mouse (ou receber foco), em todos os modos, não só na pré-visualização do intervalo.
0.8.1
Patch Changes
Datepicker: as setas de mês passam a usar ícones Phosphor (caret-left/caret-right) em vez do caractere de texto, comtype="button"earia-label.
0.8.0
Minor Changes
Datepicker(intervalo): com só o início escolhido, passar o mouse sobre outro dia destaca o intervalo inteiro (para a frente ou para trás do início); clicar num dia anterior ao início agora fecha o intervalo entre eles, em vez de reiniciar a seleção. Os dias e as setas do calendário também passam a herdar a fonte do design system.
0.7.0
Minor Changes
Buttonagora aceita as props nativas do<button>(disabled,type,aria-*,name...) e usatype="button"por padrão; desabilitado fica com opacidade reduzida, cursornot-allowede sem brilho no hover.
0.6.0
Minor Changes
- Fase 4 (remoção do UI kit antigo). Novo:
Logo(lockup horizontal da marca em SVG inline, cores pelos tokens--ob-*;sizeé a altura em px, padrão 28) e o tipoLogoProps. O web app (project/ui_kits/web_app/) passa a usar só este pacote, pelo bundle de navegador. Mudanças internas sem efeito visual:Iconsé construído sobrePh— o<i>de cada ícone ganhacolor: currentColorinline (a mesma cor herdada de antes) earia-hiddenpassa a vir antes destyle; as keyframes compartilhadas foram consolidadas — o<style id="ob-prim-kf">deu lugar aob-spin-kf(injetado uma vez, usado porSpinnereSearchInput) eob-pulse-kf(injetado peloTable), com as mesmas regras@keyframes. Infra: os smokes de marcas e doLogoleem fixtures congeladas emscripts/fixtures/; novoscripts/smoke-web-app.mjsconfere, sem navegador, que o web app roda só com o bundle.
0.5.1
Patch Changes
Select: o primeiro clique no campo (sem foco) agora abre a lista; antes ela abria e fechava em seguida, e só o segundo clique abria. Clicar na seta, no espaço vazio do campo ou no corpo de um chip com a lista aberta agora fecha e mantém fechada (antes reabria por causa do refoco). Ao fechar por clique o foco não volta ao campo.
0.5.0
Minor Changes
- Fase 3 (endurecimento). Mudança visível:
Paginationpassa a mostrar as duas reticências quando há páginas escondidas dos dois lados (1 … 5 6 7 … 20). Quebras de tipo:SelectProps(desde a 0.4.0) e agoraSliderPropssão uniões discriminadas pormultierange; deixam de compilarinterface X extends SelectProps,Omit<SelectProps, …>repassado a<Select {...p}/>,SelectProps['onChange']com parâmetro implícito e<Select multi={variavelBoolean}/>(o mesmo vale paraSliderPropserange); use os tipos exportadosSelectBaseProps/SliderBasePropsou um ramo da união (SingleSelectProps,MultiSelectProps,SingleSliderProps,RangeSliderProps). Correções: o botão de remover doChiptemtype="button"(não envia mais formulário); oSlidernão geraNaNcommin === maxe não deixa listeners pendurados ao desmontar durante um arrasto; oTooltipnão fica mais preso aberto com hover e foco juntos. Acessibilidade:Togglevira um switch (role="switch",aria-checked, foco por Tab, Espaço/Enter);Modalganharole="dialog",aria-modal, título associado e botão de fechar nomeado;Paginationganha<nav aria-label>,aria-currente setas nomeadas. Infra: teste de tipos contra o.d.tspublicado (npm run typecheck:dist), golden do CSS injetado com ordem, runner de smokes que falha sem smokes,README.mddo pacote.
0.4.0
Minor Changes
- Adiciona Icons, Brands, BrandTile, Link, Pagination e Modal (Fase 2, Lote C); Table aceita interface como tipo de linha e Select ganha props discriminadas por multi (onChange recebe string no modo simples e string[] no multi); migra components-link, components-pagination e components-modal.
0.3.1
Patch Changes
- Exporta os tipos OBTone e OBToastPosition, usados nas props públicas de Alert, Toast, ProgressBar e ToastStack.
0.3.0
Minor Changes
- Adiciona Alert, ProgressBar, Toast, ToastStack, Drawer, CodeInput, SearchInput, SideNav, Tabs, Table, DeadlineCalendar, Select e Input (Fase 2, Lote B); migra components-slider.html.
0.2.0
Minor Changes
- Adiciona Radio, RadioGroup, Toggle, Skeleton, Tooltip, Chip, StatusDot, Badge, Card, Avatar, Spinner, ProgressCircle e Slider (Fase 2, Lote A).
0.1.0
Minor Changes
- Primeira versão do pacote: Ph, Button, Checkbox, FieldShell, Datepicker, FloatingPanel e Dropdown portados para TypeScript.