# Change Log ## 0.6.7 - **UluNavStrip** | Remove exact active class matching active class (both were 'is-active') since this breaks the class binding in `` since we have duplicate keys in the object { 'is-active' : activeCond, 'is-active' : exactActiveCond } so the keys matching causes a unexpected bug do to class binding behavior. Having is-active on active should work correctly, because exact active's are also active. ## 0.6.6 - **UluNavStrip** | Add noChildren prop to underlying UluMenu call (since this menu doesn't support displaying children) ## 0.6.5 - No changes ## 0.6.4 - **UluNavStrip** | Add 'is-active' class to linkActive (router link active) ## 0.6.3 - **useFloatingUi** | Add config options for all floating ui plugins (so you can pass config to any like ship and flip) - **UluPopover** | Update prop descriptions for docs ## 0.6.2 - **useModals** add missing export for this composable ## 0.6.1 - **Forms** remove deprecated prop warnings and remove deprecated props (ie. label, required, etc that were on the fields and are now on UluFormItem) - Keeping them is more confusing in storybook docs - **UluBadge** | Add modifiers prop and modifiers system (like other components, button, etc) - **Docs Storybook Site** - Fixed missing UluIcons, which were not rendering because the FA module was being tree-shaken out ## 0.6.0 - **Forms Updates (Breaking Changes)** - Form input components are no longer multi-root. Inputs and labels have been separated (UluFormLabel is now its own component). - This allows native Vue attribute fallthrough to work predictably directly on the inputs (e.g., placeholder, disabled, type). - `UluFormItem` has been refactored as a smart wrapper for all form fields: - Added `layout` to map directly to form-theme BEM modifiers (e.g., layout="text" creates form-theme__item--text) without conflicting with native HTML input types. - It now automatically manages associated labels, descriptions (help text), and error/warning message states. - It automatically generates and links unique IDs for inputs, labels, and aria-describedby accessibility attributes (these can still be overridden). - `UluSearchForm` was rewritten to use the new .input-group layout and now supports v-model and emits a @submit event. - `UluButton` and `UluAction` add "type" prop for buttons (in case you want type other than button ie. submit) - `UluIcon` simplify the async loading of Font Awesome component (only loaded if set to use it) to avoid any bundler mistakes ## 0.5.16 - Scroll Anchors Updates/Enhancements - `useScrollAnchors` - Fix edge issue: If you scroll really fast since this relies on IntersectionObserver it can not fire leaving an item active that isn't active - Considered debounced fallback called in intersection observer or scroll/etc but this would be unreliable or bloated code (recreating IntersectionObserver margins, making sure to account for different roots other than viewport) - Instead going to force the browser to run the IntersectionObserver by removing the current observer in a debounced callback on the root element's scroll event and creating it again after the debounce delay (since observers run 1 time initially) this will catch edge cases where the IntersectionObserver didn't fire - Also fix issue with observer no items intersection (all above the reading zone) to deactivate any active sections - Allow deactivateLastItem - `UluScrollAnchors` - Added `deactivateLastItem` prop (defaults to `false`). The default behavior has been updated so the last anchor item remains active even when scrolling past its bounding box (e.g. into a footer). Set this prop to `true` to revert to the old behavior where it deactivates. - `UluScrollAnchorsNavAnimated` - Changed the indicator rail to use a `::before` pseudo element so it naturally layers underneath the indicator shape. - Added `trimRailToCenters` prop (defaults to `true`). This dynamically sizes the rail to span exactly from the center of the first indicator to the center of the last indicator, preventing the line from overhanging on custom indicator shapes. - Added `railStartOffset` and `railEndOffset` props to allow adjustment for optical alignment of the rail (e.g. to align with a specific font's cap-height). - Refine debug logs ## 0.5.15 - Update peer dependency @ulu/frontend to latest "0.5.0" ## 0.5.14 - `UluModal` - Adjust "pauseVideos" to "noPauseVideos" so that it's enabled by default to match the frontend dialog modules default behavior. Prop renamed so it can be used as boolean prop without passing false ## 0.5.13 - `UluModal` - Add "autoIframe" to match @ulu/frontend modal-builder's convenience option for automatic iframe layout - Add "pauseVideos" to match @ulu/frontend dialog's convenience option for automaticatically pausing videos (only youtube and native videos currently) - Update @ulu/frontend peerDependencies to latest 0.4.11 (this version includes fixes for pauseVideo instead of stopVideo, and adjustments to prepVideo [to not re-prep]) ## 0.5.12 - `composable/useWindowResize.js` - Use isBrowser() util instead of import.meta.env.SSR flag which isn't working correctly with vite-ssg - Update @ulu/frontend peerDependencies to latest 0.4.9 (changes there are also related to SSR fixes) ## 0.5.11 - `components/systems/scroll-anchors/UluScrollAnchors.vue` - Adjusted observer configuration props to provide both sensible defaults and precise control over section highlighting. - By default, it retains the legacy behavior (a 20% tall "reading zone"), which remains the best option if sections also trigger general scroll animations/transitions. - Added `snapOffset` prop for strict navigation snapping. - Accepts a Number (0 to 100) to create a precise 1% "tripwire" line at that percentage down the viewport (e.g., :snap-offset="20"). - Prevents multiple sections from overlapping in the active state and eliminates skipped sections during reverse scrolling. - Enhanced `observerOptions` prop to act as a complete escape hatch. - Passing a custom configuration object here will now completely override both the default reading zone and any snapOffset values. - `useScrollAnchors` - Updates to support the above changes to the system (resolves this new prop to the final observerOptions) - Add watcher for `observerOptions` or `snapOffset` - Add story to demonstrate/test the new `snapOffset` prop ## 0.5.10 - Update "uluTransformAssetUrl" to include the default tags vue looks for (img, video, source, ...), as when you adjust this in vite.config.js it overwrites the defaults. So it seems like the best pattern to use is to include the defaults along with the ulu specific components. ## 0.5.9 - Update "uluTransformAssetUrls" in vite module to include "imageSrc" for UluCard - So that vite automatically resolves paths in this prop. You need to include "uluTransformAssetUrls" in your vite config for this to work ## 0.5.8 - `UluCard` | Going to keep props `imageSrc` and `imageAlt` as they are useful for simple composition over defining slots or `image` property (object passed to UluImage) - Remove the ability for `image` prop from previous update (0.5.7) to be string (explicitly object that aligns with `UluImage` props) ## 0.5.7 - `UluCard` (**Deprecated Props**) - Replaced `imageSrc` and `imageAlt` with a unified `image` prop. The `image` prop accepts a simple string (for src) or an object (to pass complex `UluImage` props like `src`, `alt`, `sources`, and `classes`). `imageSrc` and `imageAlt` still work but will trigger deprecation warnings in the console during development. - `UluPlaceholderImage` - Now uses `UluImage` internally to ensure consistent image rendering across the library. ## 0.5.6 - `UluImageSource` (new component for composing sources within UluImage for DEX) - The new component is designed to be passed through slot on `` so you don't need to import the image (in `