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.
|
|
5 months ago | |
|---|---|---|
| .. | ||
| README.md | 5 months ago | |
| index.ts | 5 months ago | |
| stepper-completed-content.svelte | 5 months ago | |
| stepper-content.svelte | 5 months ago | |
| stepper-indicator.svelte | 5 months ago | |
| stepper-item.svelte | 5 months ago | |
| stepper-list.svelte | 5 months ago | |
| stepper-next-trigger.svelte | 5 months ago | |
| stepper-prev-trigger.svelte | 5 months ago | |
| stepper-separator.svelte | 5 months ago | |
| stepper-trigger.svelte | 5 months ago | |
| stepper.css | 5 months ago | |
| stepper.svelte | 5 months ago | |
| types.ts | 5 months ago | |
README.md
Stepper
Eidos Stepper viste el primitive headless de Soma para wizards por pasos. La
rama anterior tenia el equivalente en terra/stepper, no en air/components.
Baseline
| Fuente | Superficie | Estado Eidos |
|---|---|---|
Terra glm-5 |
Root, List, Item, Trigger, Indicator, Separator, Content, Description, Title, Prev/Next triggers. | UIX mantiene las partes de comportamiento y mueve Title/Description al contenido del paso. |
| Soma actual | Provider, List, Item, Trigger, Indicator, Separator, Content, CompletedContent, PrevTrigger, NextTrigger; linear/non-linear, orientation, RTL, count auto, roving focus. |
Cubierto por passthrough. Eidos anade size, variant, color y receta. |
| Ark UI Steps | Root, List, Item, Trigger, Indicator, Separator, Content, CompletedContent, Prev/Next triggers, validation/skippable helpers. | Cubierto salvo isStepValid/isStepSkippable/onStepInvalid, que pertenecen a Soma si aparece un consumer. |
| Chakra Steps | API basada en Ark; clickable triggers y content. | Cubierto. |
| React Aria Tabs | TabList/Tab/TabPanel accesible, base semántica equivalente. | Soma usa tablist/tab/tabpanel para navegación de pasos. |
| Mantine Stepper | Monolítico con steps visuales y control externo. | Cubierto como primitive compuesto; Eidos no crea API monolítica. |
Referencias externas consultadas:
- Ark UI Steps: https://ark-ui.com/docs/components/steps
- Chakra UI Steps: https://next.chakra-ui.com/docs/components/steps
- React Aria Tabs: https://react-aria.adobe.com/Tabs
API Eidos
<Stepper bind:value orientation="horizontal" linear size="md" variant="soft" color="primary">
<Stepper.List>
<Stepper.Item index={0}>
<Stepper.Trigger>
<Stepper.Indicator>1</Stepper.Indicator>
Account
</Stepper.Trigger>
<Stepper.Separator />
</Stepper.Item>
</Stepper.List>
<Stepper.Content index={0}>Account form</Stepper.Content>
<Stepper.PrevTrigger>Back</Stepper.PrevTrigger>
<Stepper.NextTrigger>Next</Stepper.NextTrigger>
</Stepper>
Decisiones
- No se crea
Providerpublico: el root visual esStepper. - No se anade API flat ni monolítica.
sizees responsive y se resuelve conActiveEidos.variantcontrola indicador actual/completo.colorusa paletas canonicas de Eidos; no hay aliases legacy.- Validación/skipping de pasos queda fuera de esta fase. El primitive ya permite
linear;isStepValid/isStepSkippablese implementarian en Soma, no en Eidos.
Eventos
Morfo declara:
shift-step: cambio de paso.commit-complete: llegada al estado completado.
No se emiten eventos por navegación de foco con flechas; sólo por cambio real de paso.
Comparativa
| Capacidad | Bits UI | Ark UI | React Aria | shadcn-svelte | UIX |
|---|---|---|---|---|---|
| Surface compound (root + parts) | ✓ | ✓ | ✓ | ✓ | ✓ |
| ARIA semantics + keyboard nav | ✓ | ✓ | ✓ | parcial | ✓ via morfo |
| Variantes visuales (size / variant) | parcial | parcial | n/a | tailwind | ✓ recipe |
| Form integration | parcial | parcial | ✓ | parcial | ✓ via Field |
| Eventos sema declarativos | n/a | n/a | n/a | n/a | ✓ |
Gaps
| Gap | Disposición | Detalle |
|---|---|---|
| API extendida sobre las referencias externas | diferir | Sólo si llega un caso de uso real. Mantener la superficie estable. |
| Cobertura adicional de variantes visuales | diferir | El recipe cubre sm/md/lg + solid/outline/ghost. Más variantes requieren caso concreto. |
| Documentación per-prop exhaustiva | implementar | Cuando se cierre el ciclo de remediación de cada componente. |
| Tests browser-level del flujo completo (Playwright) | implementar | Cobertura visual + interacciones. Se hace en una pasada conjunta de tests. |