Skip to content

Releases: Applelo/compotes

v0.10.1

Choose a tag to compare

@Applelo Applelo released this 16 Feb 20:38
7447fa8

Bug Fixes

  • Package exports: Fixed main, module, types, and exports paths in both compotes and
    @compotes/vue package.json (e.g. .d.ts → .d.mts/.d.cts, .js → .mjs/.cjs)
  • Typings: Fixed typing resolution by using correct file extensions for ESM/CJS dual publishing
  • Vue package metadata: Fixed incorrect homepage, repository, and bugs URLs (was pointing to
    blottie instead of compotes)

Improvements

  • Package quality checks: Added publint and @arethetypeswrong/cli (attw) to validate package
    exports and typings
  • Prepublish sync script: Added scripts/prepublish-sync.js to sync README/LICENSE into packages
    before publishing, replacing symlinks

v0.10.0

Choose a tag to compare

@Applelo Applelo released this 16 Feb 19:02

New Features 🔥

Vue Package (@compotes/vue)

Official Vue 3 support is here! The new @compotes/vue package provides ready-to-use components and composables for all Compote components.

Components:

  • CCollapse / CCollapseTrigger - Collapsible content with toggle trigger
  • CDrag - Click-and-drag scrollable container
  • CDrilldown / CDrilldownMenu / CDrilldownNext / CDrilldownBack - Hierarchical navigation
  • CDropdown / CDropdownMenu / CDropdownTrigger - Dropdown with context injection
  • CMarquee - Scrolling marquee

All components support the as prop to customize the rendered element, expose methods and reactive state via template refs, and emit typed events.

Composables:

  • useCollapse - Reactive collapse state (isExpanded, isCollapsing) and methods
  • useDrag - Reactive drag state (isDragging, isDraggable)
  • useDrilldown - Reactive drilldown state (level, currentMenuId) and navigation methods
  • useDropdown - Reactive dropdown state (isOpen, type) and control methods
  • useMarquee - Reactive marquee state (isPaused) and playback methods

Core Improvements

  • Declarative event listeners - Pass event handlers via the on option instead of manual addEventListener
  • State change callbacks - Subscribe to reactive state changes with the onStateChange option
  • Typed events - Each component exports an Events enum for type-safe event handling
  • Typed state - Each component exports a State interface (CollapseState, DragState, etc.)
  • Debounced observers - ResizeObserver and MutationObserver callbacks are now debounced to prevent page freezing
  • Deferred initialization - Components can be instantiated without an element and initialized later with init()

Bug Fixes 🔨

  • Collapse: Fixed concurrent animation issues, improved destroy cleanup (removes inline styles and ARIA attributes)
  • Drag: Switched from mouse events to pointer events for better touch support, added setPointerCapture for reliable drag behavior
  • Drilldown: Fixed items array not clearing on updateItems(), mutation observer no longer triggers on clone operations
  • Dropdown: Fixed error message referencing wrong selector, improved accessibility event initialization and cleanup
  • Marquee: Fixed inverted fill detection logic, improved clone cleanup and focus handling
  • Accessibility: focusChar() is now case-insensitive

Breaking Changes 💥

Core API Changes

  • Constructor / el / init(): The element parameter is now optional. Components can be created without an element and initialized later via init(el, options)
  • destroyEvents() removed: Event cleanup is now handled automatically via AbortController

Removed Options

  • initAccessibility - Accessibility is now always enabled
  • initEvents - Events are now always initialized

New Options

  • on - Declarative event listeners object
  • onStateChange - State change callback for Vue integration

CSS Changes

  • Marquee direction classes renamed: .c-marquee--direction-top.c-marquee--direction-up, .c-marquee--direction-bottom.c-marquee--direction-down to respect <marquee> usage.

Build Output

  • UMD file renamed: compotes.umd.cjscompotes.umd.js

Infrastructure 🧰

  • Migrated build system from Vite to tsdown/rolldown
  • Migrated to pnpm workspace catalogs for centralized dependency management
  • Added test coverage reporting with Coveralls
  • Added browser-based testing with Vitest + Playwright
  • Added doc-sync CI check to validate documentation stays in sync with implementation
  • Major dependency updates: pnpm 10, Vitest 4, ESLint 10, TypeScript 5.9, Vite 7

v0.9.2

Choose a tag to compare

@Applelo Applelo released this 14 Feb 21:21
80e1e86

What's Changed

  • Add dropdown.equalizeWidth() method and equalizeWidth option #31
  • Improve testing

Full Changelog: v0.9.1...v0.9.2

v0.9.1

Choose a tag to compare

@Applelo Applelo released this 13 Feb 21:30
bc6f2da

What's Changed

  • Export typing options
  • Fix openOn hover on mobile #29
  • Fix documentation
  • Add isPaused get method on marquee
  • Add mutationObserver option on marquee
  • Improve destroy an all components

Full Changelog: v0.9.0...v0.9.1

v0.9.0

Choose a tag to compare

@Applelo Applelo released this 06 Feb 21:09
9195871

What's Changed

  • Add Dropdown component #25
  • Add mutationObserver option allowing to disable (if it is not necessary) on Dropdown and Drilldown the mutation observer usage.
  • Add lightningcss to reduce css files sizes
  • Fix typing issue with typescript 5 #26

Full Changelog: v0.8.1...v0.9.0

v0.8.1

Choose a tag to compare

@Applelo Applelo released this 02 Feb 20:04
fd22989

What's Changed

  • Fix typings issue #26

Full Changelog: v0.8.0...v0.8.1

v0.8.0

Choose a tag to compare

@Applelo Applelo released this 11 Jan 20:22
8ffcb12

What's Changed

  • Add Marquee
  • Improve docs
  • Improve JSDoc
  • Update dependencies
  • Fix MutationObserver on Drilldown
  • Fine tuning for accessibility options (styles, attrs and events): options initAccessibilityAttrs has been renamed to initAccessibility
  • Fix build compilation file with typescript declaration #24

Full Changelog: v0.7.2...v0.8.0

v0.7.2

Choose a tag to compare

@Applelo Applelo released this 10 Jan 18:09
8ed4f5b

What's Changed

Full Changelog: v0.7.1...v0.7.2

v0.7.1

Choose a tag to compare

@Applelo Applelo released this 26 Oct 18:43
83d5b7b
  • Add test with playwright and vitest
  • Update dependencies

v0.7.0

v0.7.0 Pre-release
Pre-release

Choose a tag to compare

@Applelo Applelo released this 27 Jun 20:18
817ccea
  • Add drag component
  • Update dependencies