Releases: frost-js/ui
Releases · frost-js/ui
Release list
v4.0.0
Major release adopting fQuery 5 and improving style preservation, component cleanup, and recovery from interrupted transitions and failed initialization.
Breaking Changes
- Updated
@fr0st/queryfrom version 4 to version 5. Bundled builds include fQuery 5; applications using the external UMD build must load a compatible fQuery 5 build. - Replaced the exported
addScrollPadding()andresetScrollPadding()helpers withlockScrollPadding(). Retain the release function returned bylockScrollPadding(nodes)and call it when compensation is no longer needed.
Fixed
- Preserved original inline styles and
!importantpriorities during component transitions, positioning, scroll locking, and disposal, including custom toast display styles. - Kept shared scroll locks and scrollbar compensation active until the last modal or offcanvas holder releases them, and corrected numeric z-index comparisons for stacked modals.
- Rolled back temporary styles and component state when style locking or Popper initialization fails, allowing subsequent initialization and show attempts to succeed.
- Restored component and trigger state on disposal and prevented late transition callbacks from mutating disposed components or emitting completion events.
- Preserved explicit carousel pauses across slide transitions and hover changes, and restored temporary styles after canceled, reversed, or interrupted drags.
- Prevented overlapping accordion transitions and corrected dropdown element references.
Improved
- Added reusable
lockStyles()andlockStylesCounterFactory()helpers with idempotent release functions and rollback on failed acquisition. - Simplified carousel caption shadows to remove the double-border appearance.
- Aligned browser setup and test conventions with fQuery, consolidated component cases, and expanded recovery and disposal coverage.
- Updated README setup instructions and component behavior documentation.
- Updated development dependencies, patched the transitive
js-yamlvulnerability, and regenerated distribution bundles.
v3.0.3
Patch release preventing stalled CSS transition promises from leaving UI components permanently transitioning.
Fixed
- Added a timing-based fallback to waitForTransition() for WebKit CSS transitions whose finished promises remain pending, including zero-duration transitions under reduced motion.
- Preserved completed and canceled transition result semantics while allowing Modal and other components to finish their transition lifecycle.
v3.0.2
Patch release consolidating component configuration and internal helpers while simplifying browser test setup.
Improved
- Defined default options directly on component classes so configuration remains colocated with each implementation.
- Extracted shared click-target handling and focused helpers for Collapse dimensions, Modal stacking, Popper arrows, and Carousel indicators and style resets.
- Delimited generated component IDs with a hyphen between the prefix and generated suffix.
- Reorganized Popper assertion helpers and simplified browser setup to exercise production defaults instead of overriding them.
v3.0.1
Patch release simplifying browser test assertions and removing obsolete lint configuration.
Improved
- Simplified browser style assertions with Playwright locator assertions.
- Removed the redundant
AnimationESLint global.
v3.0.0
Major release modernizing Frost UI's component lifecycle, styling and theming system, RTL support, package delivery, documentation, and test and release pipeline.
Breaking Changes
- Updated supported Node.js versions to
^20.19.0,^22.13.0, or>=24. - Updated
@fr0st/queryfrom version 3 to version 4; bundled builds now include the version 4 fQuery behavior and its FrostCore version 3 dependency. - Changed the package root to the compiled ESM build and added explicit exports. Use the documented package root or paths under
dist/andsrc/instead of undeclared package subpaths. - Migrated the Sass entry point from global
@importbehavior to the module system. Configure Frost UI with@use "@fr0st/ui/src/scss/ui" as ui with (...)and reference public variables, functions, and mixins through the module namespace. - Encapsulated component state with private class fields. Replace access to
_nodeand_optionswith the publicnodeandoptionsgetters, and avoid relying on internal prototype helpers.
Fixed
- Corrected interrupted transitions, timers, listeners, focus restoration, overlay cleanup, and disposal behavior across alerts, carousels, collapses, dropdowns, modals, offcanvas panels, tabs, toasts, tooltips, and popovers.
- Corrected Popper positioning across element scrolling, overflow boundaries, fixed containers, viewport edges, and right-to-left layouts, while restoring original inline styles on disposal.
- Corrected carousel swipe and timer cleanup, dropdown edge-case handling, wrapped tab navigation, RTL carousel controls, and selector-based collapse triggers.
- Corrected stacked modal indexing, responsive offcanvas visibility, sticky-element scroll compensation, forced overlay hiding, and form validation and card image styling.
- Stabilized CSS transition completion state and keyboard navigation while respecting reduced-motion preferences.
Improved
- Refreshed the visual system with modern color tokens, nested light and dark themes, CSS color mixing, frosted surfaces, gradients, accent variants, stronger focus feedback, and theme-aware elevation.
- Adopted logical CSS properties and RTL-aware component behavior throughout layout, spacing, borders, positioning, carousel navigation, and floating content.
- Moved component motion from JavaScript-driven animation to explicit CSS transitions with customizable timing variables and reduced-motion handling.
- Expanded forms, grid offsets, helpers, utilities, responsive behavior, accessibility, and component styling, and rebuilt the complete demo suite with live theme controls.
- Added prebuilt ESM, external UMD, and bundled UMD outputs with source maps; migrated the build to Vite and Sass Embedded; and documented package, browser, and custom Sass usage.
- Migrated the browser suite to Playwright across Chromium, Firefox, and WebKit, added source coverage, and added CI checks for supported Node.js versions, focused tests, generated bundles, package contents, and provenance-enabled npm publishing.
- Consolidated project documentation into a comprehensive README, expanded JSDoc-powered IntelliSense, organized shared helpers, and aligned repository metadata and naming with current Frost projects.
v2.6.1
- Modified ripple event to occur on click.
v2.6.0
- Modified ripple event to occur on mouseup.
- Fixed bug where original placement data attribute was being removed in
disposemethod in Popper. - Fixed modal header styling.
- Fixed offcanvas header styling.
- Fixed nested accordion styling.
- Fixed visually-hidden styling.
- Fixed card-group styling.
- Fixed outline btn styling.
- Fixed active btn styling.
- Fixed check btn styling.
- Renamed max-width and max-height utility classes.
- Added min-width and min-height utility classes.
- Added resize utility classes.
- Updated demos.
- Updated tests.
- Updated NPM.
v2.5.8
- Updated NPM.
- Updated Dockerfile.
- Updated tests.