Skip to content

Version Packages - #132

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main
Open

Version Packages#132
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

marking-menu@1.0.0

Major Changes

  • #138 c150389 - Stop assigning generated positional IDs to menu items. Items without a
    caller-provided ID now expose id: undefined; provide an explicit ID when an
    item must be addressed by ID. Positional identity is available separately as
    the library-assigned key property.

  • #138 c150389 - Rename getChildrenByName() to getChildrenByLabel() on emitted menu items.

  • #233 ab83b8b - createMarkingMenu no longer returns an RxJS Observable. It returns an
    already-active controller: listen with controller.on(type, listener) and
    stop the menu with controller.dispose() (or [Symbol.dispose](), for
    using).

    Six events replace the old notification stream: start, open, move,
    change, select, and cancel. move now fires in every mode, so draw
    is gone; cancel's selection field is renamed active, and is always
    present. Where you used to do this:

    const subscription = createMarkingMenu({ items, parent }).subscribe(
      (selection) => console.log(selection.label),
    );
    subscription.unsubscribe();

    do this instead:

    const menu = createMarkingMenu({ items, parent });
    menu.on('select', (event) => console.log(event.selection.label));
    menu.dispose();

    notifySteps, MarkingMenuNotification, exportNotification, and the
    conditional result type it produced are gone along with it: every controller
    now dispatches the full event set, so a consumer who only wants selections
    listens for select and ignores the rest.

  • #144 1580c6e - Ship a single ES module entry point at dist/index.js. Remove the UMD
    artifact, including its CommonJS, AMD, and window.MarkingMenu loading paths,
    and remove the former marking-menu.mjs entry point. Browser consumers must
    now load the package as an ES module.

  • #145 4c70277 - Return null from getNearestChild() when an emitted menu item has no
    sub-items, instead of throwing.

  • #138 c150389 - Return null instead of undefined from getChild() when no direct sub-item
    has the requested ID. Calling getChild() on a leaf now also returns null
    instead of throwing.

  • #138 c150389 - Replace the isLeaf() method on emitted menu items with an isLeaf boolean
    property.

  • #138 c150389 - Replace the isRoot() method on emitted menu items with an isRoot boolean
    property.

  • #138 c150389 - Rename the menu item name property to label.

  • #227 1efeece - Return null instead of undefined from the root's parent property.
    Items' parent is now precisely typed: for a model built from a literal
    menu description, it resolves to the exact ancestor node instead of a loose
    one. AnyModelNode, MarkingMenuModelItem and ModelRoot gain the field
    in their types, so any code implementing or mocking one of them needs to
    supply it.

  • #145 4c70277 - Raise the browser build target to Chrome and Edge 111, Firefox 114, and
    Safari and iOS 16.4 or newer.

  • #138 c150389 - Replace the default MarkingMenu export with the named createMarkingMenu
    export. Update imports and calls accordingly:

    import { createMarkingMenu } from 'marking-menu';
    
    const menu$ = createMarkingMenu({ items, parent });
  • #188 fe933d7 - Narrow MarkingMenuLogger to error, now taking a single Error argument
    rather than varargs of unknown. Errors are normalized before reaching it, so
    a handler typed to expect an Error can be passed directly. info, warn
    and debug become optional and ignored, since nothing in the library ever
    called them. console still satisfies the type, and log can still be
    overridden partially. Three things break: a logger whose error expects
    something other than (or in addition to) an Error, a logger whose error
    declares two or more required parameters, and any code that imported
    MarkingMenuLogger to call .info(), .warn() or .debug() on it.

  • #129 25c0a37 - Remove the string shorthand for menu items. Every menu item must now be an
    object.

  • #138 c150389 - Pass a single configuration object to createMarkingMenu instead of using
    positional arguments: createMarkingMenu({ items, parent, ...options }).

  • #138 c150389 - Expose sub-items of emitted selection items as items instead of children.

  • #138 c150389 - Define submenus with items instead of children.

  • #145 4c70277 - Rename the subMenuOpeningDelay configuration option to
    submenuOpeningDelay.

  • #138 c150389 - Require caller-provided item IDs to be unique across the entire menu tree.
    Duplicate literal IDs are rejected by TypeScript, and duplicate IDs in
    dynamically built menus throw when the menu is created.

Minor Changes

  • #234 fc86a4e - rxjs is gone: not a dependency, not a peer dependency, not a runtime
    import. Events reach you through the controller's plain on/dispose API
    with nothing to install or pin a compatible version of.

  • #189 bffd5aa - Export the public event classes and typed, listen-only emitter facade that
    the upcoming native event-based API will use: MarkingMenuStartEvent,
    MarkingMenuOpenEvent, MarkingMenuMoveEvent, MarkingMenuChangeEvent,
    MarkingMenuSelectEvent, MarkingMenuCancelEvent, their shared
    MarkingMenuEventBase, the MarkingMenuEventMap/MarkingMenuEvent types, and
    MarkingMenuEventEmitter.

    These events are plain classes, not DOM Events: this library has no DOM
    target, bubbling, or default action to prevent, so there is none of that
    machinery to carry around. MarkingMenuEventEmitter is listen-only: on/off
    narrowed per event name, with no listener options (once/signal/capture) and no
    dispatch/emit in the type at all.

  • #150 c7ad8ad - Migrate drag handling to Pointer Events with pointer capture, explicit gesture cancellation, reliable touch-action management, and complete listener and inner-observable teardown.

  • #147 9c46198 - Ship TypeScript type declarations. Emitted selections are typed from the items
    passed to createMarkingMenu(), so their id and label narrow to the exact
    values described, instead of being unknown.

Patch Changes

  • #147 9c46198 - Remove the raf-schd dependency, replaced with an equivalent internal
    implementation. No behavior change; raf-schd just no longer shows up in
    consumers' node_modules or dependency audits.

All notable changes to this project will be documented in this file. Entries are generated from Changesets — see .changeset/README.md for how to add one.

0.10.1 (2026-07-22)

Features

  • migrate GitHub Pages deployment to Actions and ESM demo (#113) (f0a870d)
  • publish native ESM build alongside UMD (#112) (3723cf4)

Bug Fixes

@github-actions
github-actions Bot force-pushed the changeset-release/main branch 29 times, most recently from 7f7304b to 018c0c6 Compare July 29, 2026 18:00
@github-actions
github-actions Bot force-pushed the changeset-release/main branch 2 times, most recently from 203f422 to c3bb9af Compare August 5, 2026 18:36
@github-actions
github-actions Bot force-pushed the changeset-release/main branch 6 times, most recently from df09d6c to 4773412 Compare August 28, 2026 05:41
@github-actions
github-actions Bot force-pushed the changeset-release/main branch 20 times, most recently from d6041a7 to c7e0cdc Compare September 6, 2026 09:51
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from c7e0cdc to 3fcdfaf Compare September 6, 2026 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants