Sobre el proyecto

web-ui-pack es un paquete web universal que proporciona componentes Web altamente escalables y utilidades auxiliares, con un énfasis en la experiencia del desarrollador. Está escrito en TypeScript e incluye documentación JSDoc extensa, por lo que los editores pueden mostrar detalles sobre propiedades, opciones y uso a través de intellisense. Características clave descritas en el README: - Agnóstico de frameworks: utilizable con Angular, React, Vue o HTML y JavaScript simples, ya que la lógica es nativa del navegador y no requiere un runtime externo. - Los controles de formulario vienen listos para usar con lógica de validación integrada, y el proyecto declara un enfoque en las mejores prácticas de accesibilidad web. - Los componentes están diseñados para herencia y personalización; los valores predeterminados se pueden cambiar por clase o por elemento, y el comportamiento se puede sobrescribir mediante prototipos o subclases. - Las variables CSS admiten temas de color personalizados, y un esquema de color oscuro está disponible añadiendo el atributo `wupdark`. - Se incluyen tipos de TypeScript, junto con soporte `.jsx/.tsx` para React/Preact. - La localización se maneja a través de un helper `localeInfo`, con mensajes sobrescribibles mediante una función global. - Optimizado para tree-shaking de webpack mediante la opción de efectos secundarios; el paquete tiene cero dependencias. - El proyecto afirma una cobertura de pruebas del 100% mediante pruebas unitarias y e2e, y declara un enfoque en el rendimiento y el bajo consumo de memoria. Los componentes listados como disponibles incluyen DropdownElement, SortElement, SpinElement, CircleElement, PopupElement, ModalElement (con modal-en-modal, modal de confirmación, hook de confirmación y formulario modal), Notify, FormElement y un conjunto de controles: SwitchControl, CheckControl, RadioControl, TextControl (con máscara/patrón), TextareaControl, PasswordControl, NumberControl, SelectControl, SelectManyControl, TimeControl, DateControl y CalendarControl. Varios elementos están marcados como no completados, como SliderControl, FileControl, ImageControl, ColorControl, MediaPlayer, InfiniteScroll, VirtualScroll, CarouselElement y TableElement. Los helpers se agrupan por área: animación (animateDropdown, animateStack), DOM (findScrollParent, focusFirst, isIntoView, scrollIntoView, WUPScrolled), fecha (dateCompareWithoutTime, dateCopyTime, dateFromString, dateToString), matemáticas (mathFixFP, mathScaleValue, mathRotate), objeto (nestedProperty, objectClone, objectToFormData, observer), evento (onEvent, onFocusGot, onScroll, onScrollStop, onFocusLost, onSpy), cadena (stringLowerCount, stringUpperCount, stringPrettify), otros (promiseWait, localeInfo, TimeObject) y archivos (zip, exportToExcel, saveAsFile, csv). La instalación se realiza mediante npm, seguida de la importación de un componente y la llamada a su método estático `$use()` para registrar el elemento personalizado. El README también documenta la configuración de VSCode para datos personalizados de HTML, señala que la biblioteca se compila a ESNext y puede necesitar ser incluida en babel-loader para navegadores antiguos, y proporciona orientación para solucionar problemas con etiquetas no reconocidas.