Skip to content

chore: version packages - #179

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

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

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

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

@dashfoo/core@2.0.0

Major Changes

  • 9eec182: Give the history functions explicit names: dispatch is now dispatchToHistory, undo is undoHistory, redo is redoHistory, canUndo is canUndoHistory and canRedo is canRedoHistory. createHistory now normalizes the model it receives, so every history holds a canonical document.

  • 9eec182: normalize clamps every tabset's selected into its strip. tabsetNodeSchema now checks shape only, so tabsetNodeSchema.parse and dashfooSchema.parse keep an out-of-range selected for normalize (and parseModel) to clamp. tabsetNodeObjectSchema is removed: tabsetNodeSchema has no transform left to bypass.

  • 9eec182: Remove dashfooMachine. It had one state and mapped each event onto a history function, so it added indirection without a lifecycle. Hold a History from createHistory and step it with dispatchToHistory, undoHistory and redoHistory. dragDockMachine is unchanged.

  • 9eec182: One responsive projection. useResponsiveLayout(model, { maxWidth, orientation? }) measures the layout's own container and returns the compact view of the model plus the lock that goes with it (restructurable: false, which also disables floating, and maximizable: false). DashfooLayout's responsive prop runs on the same hook, so a hand-built Layout.Root compacts exactly like the built-in layout, keeping row ancestors so nested widget state survives the breakpoint.

    Breaking: useResponsiveModel, useContainerWidth, matchBreakpoint, activeBreakpoint and the Breakpoint, ResponsiveModel and UseResponsiveModelOptions types are removed from @dashfoo/react, and stackModel is removed from @dashfoo/core. Flattening reparented nested tabsets and remounted their content; use useResponsiveLayout instead.

  • 9eec182: Remove exports nothing consumed: findRootContaining, the TabContainer alias (TabLocation.container is a TabsetNode), and the snap internals snapSizes, resolveSnapTargets, DEFAULT_SNAP_THRESHOLD and SnapResult. Snap through resolveSnapGrid, decideSnap and settleSnap.

Minor Changes

  • 9eec182: Add resolveDropIntent and dropIndicator: pure drop-intent resolution over a measured tabset. They decide self-drops from the drag subject, strip versus body, the insertion index and the splitDock override, and derive the insertion line or split zone from the same measurement.
  • 9eec182: Removing a tab from a strip keeps the selection on the tab that was selected; removing a tab before it used to shift the selection onto its neighbour. Core exports the rule as fallbackSelectedIndex, and the tab strip's drag preview uses it instead of its own copy.

Patch Changes

  • 9eec182: Every docking action now activates the tabset that received the moved content. moveNode, moveTabset and addNode onto a tabset's center used to leave focus where it was, so merging the active tabset away dropped focus to the first tabset. addNode with a tab id already in the layout is ignored with a [dashfoo] warning instead of creating a duplicate.
  • 9eec182: The reducer detects a no-op once, by comparing the normalized result with its input, and returns the input object when they match. Maximizing a float's tabset or an unknown id, and re-sending an identical min, max, snap or config, no longer record an undo step or clear the redo stack.

@dashfoo/react@0.10.0

Minor Changes

  • 9eec182: Layout.Root now mounts the drag root, so every layout gets exactly one drag manager and drag actor, shared by the main tree and its floats. Hand-built layouts with Layout.FloatLayer can now drag between floats and the main tree; before, each float mounted its own root and those drops failed silently. A root nested inside another (a layout under DashfooDragProvider, or a layout in a tab) reuses the outer one. Layout.DragLayer no longer mounts a root of its own: it must sit inside a Layout.Root, warns when it does not, and drops its undocumented onCommit and splitDock props in favour of the layout store.

  • 9eec182: Remove the unused global prop from Layout.FloatLayer. Floating panels already inherit their capabilities from the layout above them; drop global={...} from any hand-built <Layout.FloatLayer>.

  • 9eec182: One responsive projection. useResponsiveLayout(model, { maxWidth, orientation? }) measures the layout's own container and returns the compact view of the model plus the lock that goes with it (restructurable: false, which also disables floating, and maximizable: false). DashfooLayout's responsive prop runs on the same hook, so a hand-built Layout.Root compacts exactly like the built-in layout, keeping row ancestors so nested widget state survives the breakpoint.

    Breaking: useResponsiveModel, useContainerWidth, matchBreakpoint, activeBreakpoint and the Breakpoint, ResponsiveModel and UseResponsiveModelOptions types are removed from @dashfoo/react, and stackModel is removed from @dashfoo/core. Flattening reparented nested tabsets and remounted their content; use useResponsiveLayout instead.

  • 9eec182: useDashfooStore now owns the whole document lifecycle. It takes a persist option (the same string | { key, storage?, debounceMs? } that DashfooLayout accepts) that loads once after hydration, restores without an undo entry or a save, debounce-saves every change and flushes on page hide and unmount. The store also returns reset(), which clears the saved copy and restores defaultModel. Hand-built layouts get the same persistence as DashfooLayout from the hook alone.

    Breaking: usePersistence and its Persistence and PersistConfig types are removed; pass persist to useDashfooStore instead. The persist input type is exported as PersistInput. With persist set, setModel now saves the replacement like any other change. The store no longer runs an XState actor.

Patch Changes

  • 9eec182: Drop intents and the dock indicator now come from one tab-strip measurement through resolveDropIntent and dropIndicator in @dashfoo/core, so the insertion index and the insertion line always mark the same slot. The index is measured against whole tab items (label plus close button), the item wrapper (data-dashfoo="tab-item") carries data-tab-id, a layout nested in a tab no longer leaks its strip into the outer tabset's measurement, and only the layer that resolved a drop paints its indicator.
  • 9eec182: useExternalTabSource warns once when it has no drag root above it instead of silently registering nothing.
  • 9eec182: Removing a tab from a strip keeps the selection on the tab that was selected; removing a tab before it used to shift the selection onto its neighbour. Core exports the rule as fallbackSelectedIndex, and the tab strip's drag preview uses it instead of its own copy.
  • Updated dependencies [9eec182]
  • Updated dependencies [9eec182]
  • Updated dependencies [9eec182]
  • Updated dependencies [9eec182]
  • Updated dependencies [9eec182]
  • Updated dependencies [9eec182]
  • Updated dependencies [9eec182]
  • Updated dependencies [9eec182]
  • Updated dependencies [9eec182]
    • @dashfoo/core@2.0.0

@vercel

vercel Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
dashfoo-demo-vite Ready Ready Preview Oct 15, 2026 8:30pm UTC
dashfoo-docs Ready Ready Preview Oct 15, 2026 8:30pm UTC
dashfoo-landing Ready Ready Preview Oct 15, 2026 8:30pm UTC

@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 809de55 to 2eded2e Compare October 13, 2026 23:54
@vercel
vercel Bot temporarily deployed to Preview – dashfoo-demo-vite October 14, 2026 19:21 Inactive
@vercel
vercel Bot temporarily deployed to Preview – dashfoo-landing October 14, 2026 19:21 Inactive

This branch was successfully deployed

3 active deployments
Preview – dashfoo-demo-vite — b018e5dd Deployed Oct 15, 2026 by vercel[bot]
Preview – dashfoo-docs — b018e5dd Deployed Oct 15, 2026 by vercel[bot]
Preview – dashfoo-landing — b018e5dd Deployed Oct 15, 2026 by vercel[bot]
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