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.
svelte-kit-vice/src/uix/eidos/components/checkbox
dev 5c79ee4ec5
perf(eidos): code-split 15 form-control recipes (Phase 3, batch 3)
4 months ago
..
README.md batch: scaffold README sections + audit refinements → 67/67 PASS 5 months ago
checkbox-group-label.svelte Add active eidos runtime and morfo lang registry 5 months ago
checkbox-group.svelte Advance Eidos demos and form validation docs 5 months ago
checkbox-hidden-input.svelte Advance Eidos demos and form validation docs 5 months ago
checkbox-indicator.svelte Advance Eidos demos and form validation docs 5 months ago
checkbox.css feat(eidos): TSC v2.2 (parts + composition) + universal theming coverage 5 months ago
checkbox.svelte perf(eidos): code-split 15 form-control recipes (Phase 3, batch 3) 4 months ago
index.ts Advance Eidos demos and form validation docs 5 months ago
types.ts eidos: theming fixes + size/variant parity batch + docs 5 months ago

README.md

Eidos Checkbox

Checkbox no existe en la rama Air anterior (glm-5:src/uix/air/components), asi que la baseline es el contrato Morfo/Soma actual y la comparativa con APG, Radix, Bits UI, Reka/Ark y shadcn-svelte.

Superficie

<Checkbox bind:checked variant="solid" color="primary" name="terms">
	<Checkbox.Indicator />
	<Checkbox.HiddenInput />
</Checkbox>
<Checkbox.Group bind:value name="channels" columns={2}>
	<Checkbox.GroupLabel>Notification channels</Checkbox.GroupLabel>
	<Checkbox value="email"><Checkbox.Indicator /><Checkbox.HiddenInput /></Checkbox>
	<Checkbox value="sms"><Checkbox.Indicator /><Checkbox.HiddenInput /></Checkbox>
</Checkbox.Group>

Partes publicas: Indicator, HiddenInput, Group, GroupLabel.

Comparativa

Capacidad Eidos/Soma APG Radix Bits UI Reka/Ark shadcn-svelte
Dual-state Si Si Si Si Si Si
Indeterminate / mixed Si: indeterminate Si Si Si Si Si
aria-checked="mixed" Si Si Si Si Si Si
Toggle con Space Si Si Si Si Si Si
Controlled state Si: bind:checked Manual Si Si Si Si
Cambio de indeterminate controlado Si: bind:indeterminate Manual Si Si Si Via primitive
Disabled Si Si Si Si Si Si
Readonly focusable Si: readonly Manual No como API principal Parcial Parcial No
Invalid visual/a11y Si: invalid -> aria-invalid/data-invalid Manual Form layer Manual Form layer Form layer
Hidden input para forms Si: opt-in part Nativo en ejemplo Si Si Si Si
Group con value array Si: Checkbox.Group Fieldset/manual No directo Si Si Manual
Group label enlazado Si: aria-labelledby Si Manual Si Si Manual
Custom indicator Si: icon snippet o children Manual Si Si Si Si
Force-mount indicator Si, heredado de Soma Manual Si Si Si Via primitive
Variantes visuales Si: solid/outline/ghost No No, primitive No, primitive No, primitive Tailwind local
Colores canonicos UIX Si: primary/secondary/neutral/affirm No No No No Tailwind local
Layout de grupo por columnas Si: columns Manual Manual Manual Manual Manual

Decisiones

  • El color visual se limita a primary, secondary, neutral y affirm. risk, threat y loss pertenecen a validacion o contexto del formulario; para error local se usa invalid.
  • HiddenInput es explicito para mantener clara la separacion: el control accesible es el button role="checkbox" y el input existe para submit/validacion HTML.
  • Group vive en Soma porque coordina value: string[], name, required y aria-labelledby; Eidos solo anade layout visual (columns).
  • GroupLabel se declara como label tambien en Morfo. No usa for, porque etiqueta al grupo por aria-labelledby, no a un input concreto.
  • El indicador por defecto usa SvgCheck y SvgDash; el consumer puede aportar un snippet para iconografia propia sin romper el contrato de estado.

Referencias

Baseline

Referencia local: Soma + Morfo + Eidos. La capa visual de Eidos expone size / variant / color sobre el comportamiento que Soma ya implementa; el morfo declara parts, ARIA, keyboard y eventos sema. Las decisiones se alinean con las bibliotecas externas listadas en la Comparativa.

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.

Powered by TurnKey Linux.