You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
4 months ago | |
|---|---|---|
| .. | ||
| README.md | 5 months ago | |
| index.ts | 5 months ago | |
| tooltip-arrow.svelte | 5 months ago | |
| tooltip-content.svelte | 5 months ago | |
| tooltip-group.svelte | 5 months ago | |
| tooltip-trigger.svelte | 5 months ago | |
| tooltip.css | 4 months ago | |
| tooltip.svelte | 4 months ago | |
| types.ts | 5 months ago | |
README.md
Eidos Tooltip
Fecha de revision: 2026-05-17.
Baseline
Air no tenia tooltip en glm-5:src/uix/air/components; este componente es
una envoltura visual sobre Soma/Morfo, no un port de Air.
Comparativa
| Referencia | Superficie relevante | Estado Eidos |
|---|---|---|
Air glm-5 |
No existe tooltip en Air. |
Sin baseline Air. La referencia local es Soma/Morfo. |
| Soma actual | Group, Provider, Trigger, Content, Arrow; delay/skip-delay, hover/focus, hoverable content, disabled, side/align/collision, Floating CSS vars, aria-describedby, role="tooltip". |
Cubierto por passthrough. Eidos solo anade receta visual. |
| Radix Tooltip | Provider global, Root, Trigger, Portal, Content, Arrow; abre en hover/focus, cierra en activacion del trigger o Escape, custom timings, collision, CSS vars para transform-origin/available size/trigger size. | Cubierto. Se alinea Soma para cerrar al click de trigger por defecto y Eidos consume vars de Floating para medidas/animacion. |
| Ark UI Tooltip | Root, Trigger, Positioner, Arrow/ArrowTip, Content; control, root provider, delay, positioning, fixed containers, context. | Cubierto salvo Positioner/ArrowTip explicitos: en UIX viven dentro de Soma Floating/Arrow. |
| Bits UI / shadcn-svelte | Provider recomendado en layout, Root, Trigger, Portal, Content, Arrow; delayDuration, skipDelayDuration, disableHoverableContent, forceMount, Floating vars, nested providers. | Cubierto. disableCloseOnTriggerClick se soporta en Soma como escape hatch. |
Fuentes externas consultadas:
- Radix Tooltip: https://www.radix-ui.com/primitives/docs/components/tooltip
- Ark UI Tooltip: https://ark-ui.com/docs/components/tooltip
- Bits UI Tooltip: https://bits-ui.com/docs/components/tooltip
- shadcn-svelte Tooltip: https://www.shadcn-svelte.com/docs/components/tooltip
Decisiones
- No se crea
Tooltip.Positioner. La posicion pertenece a Soma Floating; Eidos consumedata-side,data-aligny variables CSS publicadas por Soma. - No se crea
Tooltip.ArrowTip. Soma Arrow ya encapsula la geometria del arrow; la receta solo pinta fill/stroke. Tooltip.Contentmantienesizeyvariant, y anadematchAnchorWidth,width,minWidth,maxWidth,height,minHeight,maxHeightcomo props visuales responsivas.- Las medidas se serializan como variables privadas del recipe
(
--_tooltip-content-*); el contrato publico de tokens sigue siendo la recipe. - La receta usa
--floating-transform-originpara animaciones origin-aware y--floating-available-heightcomo max-height por defecto cuando Floating ya lo conoce. - Soma cierra al activar/clicar el trigger por defecto, alineado con Radix. Si
se necesita mantenerlo abierto, usar
disableCloseOnTriggerClick.
Eventos Sema
El morfo declara tres eventos emerge minimos para que Sema pueda emitir
percepcion en hover/focus reveal: open, close y close-dismiss (Escape).
Ninguno carga intent — la aparicion de un tooltip no tiene peso evaluativo
propio. Si una experiencia necesita reforzar percepcion al mostrar ayuda
contextual con un tinte concreto, esa politica debe vivir en el componente
que dispara el tooltip, no en Tooltip por defecto.
Gaps
| ID | Disposicion | Detalle |
|---|---|---|
ignoreNonKeyboardFocus (Bits UI) |
diferir | Sin caso real en accesibilidad/focus management. No debe vivir en Eidos hasta que aparezca el patron concreto. |
customAnchor (Bits UI) |
diferir | Popover ya cubre panel flotante anclado a otro elemento. Si Tooltip lo necesita, anadir primero a Soma. |
data-disabled aplicado a Trigger |
implementar | Morfo declara data-disabled opcional; soma debe propagar la prop del wrapped element. La receta ya estiliza el estado disabled. |
Tinte sema configurable por intent prop |
descartar | Reveal asistivo no carga intent; forzar uno duplica responsabilidades con el componente que dispara el tooltip. |