Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 0 additions & 21 deletions .changeset/global-overlay-singletons.md

This file was deleted.

25 changes: 0 additions & 25 deletions .changeset/publish-spec-and-source.md

This file was deleted.

8 changes: 0 additions & 8 deletions .changeset/util-package-specs.md

This file was deleted.

20 changes: 20 additions & 0 deletions packages/core/dialog/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# @dunky.dev/dialog

## 0.2.1

### Patch Changes

- [#36](https://github.com/dunky-dev/ui/pull/36) [`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3) Thanks [@ivanbanov](https://github.com/ivanbanov)! - Ship `SPEC.md` and the TypeScript sources in the published package, alongside
the built `dist`.

The tarball used to carry `dist` and `README.md` only, so the two things you
actually want when a behavior surprises you — the spec that defines the contract
and the code that implements it — were reachable only by finding the repo and
guessing which tag matches the installed version. Both now sit in
`node_modules/<pkg>/`, pinned to the exact version installed.

Nothing about resolution changes: `publishConfig` still points `main`, `types`,
and `exports` at `dist`, and the sources are inert payload — read them, don't
import them.

- Updated dependencies [[`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3)]:
- @dunky.dev/controllable@0.1.1

## 0.2.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/core/dialog/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@dunky.dev/dialog",
"version": "0.2.0",
"version": "0.2.1",
"description": "Framework-agnostic dialog interaction, modeled as a state machine.",
"license": "MIT",
"repository": {
Expand Down
17 changes: 17 additions & 0 deletions packages/core/utils/controllable/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# @dunky.dev/controllable

## 0.1.1

### Patch Changes

- [#36](https://github.com/dunky-dev/ui/pull/36) [`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3) Thanks [@ivanbanov](https://github.com/ivanbanov)! - Ship `SPEC.md` and the TypeScript sources in the published package, alongside
the built `dist`.

The tarball used to carry `dist` and `README.md` only, so the two things you
actually want when a behavior surprises you — the spec that defines the contract
and the code that implements it — were reachable only by finding the repo and
guessing which tag matches the installed version. Both now sit in
`node_modules/<pkg>/`, pinned to the exact version installed.

Nothing about resolution changes: `publishConfig` still points `main`, `types`,
and `exports` at `dist`, and the sources are inert payload — read them, don't
import them.

## 0.1.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/core/utils/controllable/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@dunky.dev/controllable",
"version": "0.1.0",
"version": "0.1.1",
"description": "Controlled/uncontrolled machinery for state machines: a controllable context slice and gated transitions.",
"license": "MIT",
"repository": {
Expand Down
17 changes: 17 additions & 0 deletions packages/core/utils/overlay/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# @dunky.dev/overlay

## 0.1.1

### Patch Changes

- [#36](https://github.com/dunky-dev/ui/pull/36) [`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3) Thanks [@ivanbanov](https://github.com/ivanbanov)! - Ship `SPEC.md` and the TypeScript sources in the published package, alongside
the built `dist`.

The tarball used to carry `dist` and `README.md` only, so the two things you
actually want when a behavior surprises you — the spec that defines the contract
and the code that implements it — were reachable only by finding the repo and
guessing which tag matches the installed version. Both now sit in
`node_modules/<pkg>/`, pinned to the exact version installed.

Nothing about resolution changes: `publishConfig` still points `main`, `types`,
and `exports` at `dist`, and the sources are inert payload — read them, don't
import them.

## 0.1.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/core/utils/overlay/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@dunky.dev/overlay",
"version": "0.1.0",
"version": "0.1.1",
"description": "Agnostic overlay-layer stack: registration and topmost resolution, shared by every overlay primitive across substrates.",
"license": "MIT",
"repository": {
Expand Down
17 changes: 17 additions & 0 deletions packages/dom/utils/focus-trap/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# @dunky.dev/dom-focus-trap

## 0.1.1

### Patch Changes

- [#36](https://github.com/dunky-dev/ui/pull/36) [`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3) Thanks [@ivanbanov](https://github.com/ivanbanov)! - Ship `SPEC.md` and the TypeScript sources in the published package, alongside
the built `dist`.

The tarball used to carry `dist` and `README.md` only, so the two things you
actually want when a behavior surprises you — the spec that defines the contract
and the code that implements it — were reachable only by finding the repo and
guessing which tag matches the installed version. Both now sit in
`node_modules/<pkg>/`, pinned to the exact version installed.

Nothing about resolution changes: `publishConfig` still points `main`, `types`,
and `exports` at `dist`, and the sources are inert payload — read them, don't
import them.

## 0.1.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/dom/utils/focus-trap/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@dunky.dev/dom-focus-trap",
"version": "0.1.0",
"version": "0.1.1",
"description": "Framework-free Tab/Shift+Tab containment for a DOM subtree.",
"license": "MIT",
"repository": {
Expand Down
17 changes: 17 additions & 0 deletions packages/dom/utils/navigation/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# @dunky.dev/dom-navigation

## 0.1.1

### Patch Changes

- [#36](https://github.com/dunky-dev/ui/pull/36) [`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3) Thanks [@ivanbanov](https://github.com/ivanbanov)! - Ship `SPEC.md` and the TypeScript sources in the published package, alongside
the built `dist`.

The tarball used to carry `dist` and `README.md` only, so the two things you
actually want when a behavior surprises you — the spec that defines the contract
and the code that implements it — were reachable only by finding the repo and
guessing which tag matches the installed version. Both now sit in
`node_modules/<pkg>/`, pinned to the exact version installed.

Nothing about resolution changes: `publishConfig` still points `main`, `types`,
and `exports` at `dist`, and the sources are inert payload — read them, don't
import them.

## 0.1.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/dom/utils/navigation/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@dunky.dev/dom-navigation",
"version": "0.1.0",
"version": "0.1.1",
"description": "Framework-free browser-navigation helpers: a session-history guard so the host's Back dismisses a layer instead of leaving the page.",
"license": "MIT",
"repository": {
Expand Down
37 changes: 37 additions & 0 deletions packages/dom/utils/overlay/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,42 @@
# @dunky.dev/dom-overlay

## 0.1.1

### Patch Changes

- [#32](https://github.com/dunky-dev/ui/pull/32) [`548ef7c`](https://github.com/dunky-dev/ui/commit/548ef7cd6e10263e02e9d0203292d61621f17a8d) Thanks [@ivanbanov](https://github.com/ivanbanov)! - Anchor the overlay layer stack and the scroll-lock registry on a realm-global
keyed by `Symbol.for`, so they survive the module being loaded more than once in
a single page (duplicate bundles in a monorepo or micro-frontend).

Both were plain module-level singletons. When a bundler ships two copies of the
module — a common monorepo/micro-frontend hazard — each copy got its own stack
and its own lock registry, so their "which layer is topmost" and "is the page
still locked" decisions drifted apart: Escape or an outside press could dismiss
the wrong dialog in a nested stack, and scroll lock could double-lock or leak.
Radix hit the same class of bug with its focus-scope stack
(radix-ui/primitives#2815).

The shared state now resolves through a well-known global symbol, so every
duplicate copy rendezvous on the same instance. It is resolved lazily on first
use, so the packages keep their `sideEffects: false` contract (no import-time
global write). No API change.

- [#36](https://github.com/dunky-dev/ui/pull/36) [`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3) Thanks [@ivanbanov](https://github.com/ivanbanov)! - Ship `SPEC.md` and the TypeScript sources in the published package, alongside
the built `dist`.

The tarball used to carry `dist` and `README.md` only, so the two things you
actually want when a behavior surprises you — the spec that defines the contract
and the code that implements it — were reachable only by finding the repo and
guessing which tag matches the installed version. Both now sit in
`node_modules/<pkg>/`, pinned to the exact version installed.

Nothing about resolution changes: `publishConfig` still points `main`, `types`,
and `exports` at `dist`, and the sources are inert payload — read them, don't
import them.

- Updated dependencies [[`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3)]:
- @dunky.dev/overlay@0.1.1

## 0.1.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/dom/utils/overlay/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@dunky.dev/dom-overlay",
"version": "0.1.0",
"version": "0.1.1",
"description": "Framework-free DOM behavior for overlay substrates: the shared layer stack with assistive-tech containment, the exit window, and initial focus.",
"license": "MIT",
"repository": {
Expand Down
34 changes: 34 additions & 0 deletions packages/dom/utils/scroll-lock/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# @dunky.dev/dom-scroll-lock

## 0.1.1

### Patch Changes

- [#32](https://github.com/dunky-dev/ui/pull/32) [`548ef7c`](https://github.com/dunky-dev/ui/commit/548ef7cd6e10263e02e9d0203292d61621f17a8d) Thanks [@ivanbanov](https://github.com/ivanbanov)! - Anchor the overlay layer stack and the scroll-lock registry on a realm-global
keyed by `Symbol.for`, so they survive the module being loaded more than once in
a single page (duplicate bundles in a monorepo or micro-frontend).

Both were plain module-level singletons. When a bundler ships two copies of the
module — a common monorepo/micro-frontend hazard — each copy got its own stack
and its own lock registry, so their "which layer is topmost" and "is the page
still locked" decisions drifted apart: Escape or an outside press could dismiss
the wrong dialog in a nested stack, and scroll lock could double-lock or leak.
Radix hit the same class of bug with its focus-scope stack
(radix-ui/primitives#2815).

The shared state now resolves through a well-known global symbol, so every
duplicate copy rendezvous on the same instance. It is resolved lazily on first
use, so the packages keep their `sideEffects: false` contract (no import-time
global write). No API change.

- [#36](https://github.com/dunky-dev/ui/pull/36) [`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3) Thanks [@ivanbanov](https://github.com/ivanbanov)! - Ship `SPEC.md` and the TypeScript sources in the published package, alongside
the built `dist`.

The tarball used to carry `dist` and `README.md` only, so the two things you
actually want when a behavior surprises you — the spec that defines the contract
and the code that implements it — were reachable only by finding the repo and
guessing which tag matches the installed version. Both now sit in
`node_modules/<pkg>/`, pinned to the exact version installed.

Nothing about resolution changes: `publishConfig` still points `main`, `types`,
and `exports` at `dist`, and the sources are inert payload — read them, don't
import them.

## 0.1.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/dom/utils/scroll-lock/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@dunky.dev/dom-scroll-lock",
"version": "0.1.0",
"version": "0.1.1",
"description": "Framework-free, reference-counted scroll lock for any scroll container.",
"license": "MIT",
"repository": {
Expand Down
24 changes: 24 additions & 0 deletions packages/react/dialog/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# @dunky.dev/react-dialog

## 0.2.1

### Patch Changes

- [#36](https://github.com/dunky-dev/ui/pull/36) [`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3) Thanks [@ivanbanov](https://github.com/ivanbanov)! - Ship `SPEC.md` and the TypeScript sources in the published package, alongside
the built `dist`.

The tarball used to carry `dist` and `README.md` only, so the two things you
actually want when a behavior surprises you — the spec that defines the contract
and the code that implements it — were reachable only by finding the repo and
guessing which tag matches the installed version. Both now sit in
`node_modules/<pkg>/`, pinned to the exact version installed.

Nothing about resolution changes: `publishConfig` still points `main`, `types`,
and `exports` at `dist`, and the sources are inert payload — read them, don't
import them.

- Updated dependencies [[`548ef7c`](https://github.com/dunky-dev/ui/commit/548ef7cd6e10263e02e9d0203292d61621f17a8d), [`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3)]:
- @dunky.dev/dom-overlay@0.1.1
- @dunky.dev/dialog@0.2.1
- @dunky.dev/dom-navigation@0.1.1
- @dunky.dev/react-use-focus-trap@0.1.1
- @dunky.dev/react-use-scroll-lock@0.1.1

## 0.2.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/react/dialog/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@dunky.dev/react-dialog",
"version": "0.2.0",
"version": "0.2.1",
"description": "React binding for @dunky.dev/dialog.",
"license": "MIT",
"repository": {
Expand Down
20 changes: 20 additions & 0 deletions packages/react/hooks/use-focus-trap/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# @dunky.dev/react-use-focus-trap

## 0.1.1

### Patch Changes

- [#36](https://github.com/dunky-dev/ui/pull/36) [`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3) Thanks [@ivanbanov](https://github.com/ivanbanov)! - Ship `SPEC.md` and the TypeScript sources in the published package, alongside
the built `dist`.

The tarball used to carry `dist` and `README.md` only, so the two things you
actually want when a behavior surprises you — the spec that defines the contract
and the code that implements it — were reachable only by finding the repo and
guessing which tag matches the installed version. Both now sit in
`node_modules/<pkg>/`, pinned to the exact version installed.

Nothing about resolution changes: `publishConfig` still points `main`, `types`,
and `exports` at `dist`, and the sources are inert payload — read them, don't
import them.

- Updated dependencies [[`827c079`](https://github.com/dunky-dev/ui/commit/827c079716e6dcb5d78e9341285627137cf0ade3)]:
- @dunky.dev/dom-focus-trap@0.1.1

## 0.1.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/react/hooks/use-focus-trap/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@dunky.dev/react-use-focus-trap",
"version": "0.1.0",
"version": "0.1.1",
"description": "React binding for @dunky.dev/dom-focus-trap.",
"license": "MIT",
"repository": {
Expand Down
Loading