@forgeax/app-shell 0.57.0 → 0.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/react.d.ts CHANGED
@@ -269,6 +269,8 @@ interface DragPresenceLifecycleOptions {
269
269
  readonly target?: DragPresenceEventTarget;
270
270
  readonly isStartTarget: (target: EventTarget | null) => boolean;
271
271
  readonly onActiveChange: (active: boolean) => void;
272
+ /** Observes every dragover, including drags that were not admitted as active. */
273
+ readonly onDragOver?: (target: EventTarget | null) => void;
272
274
  }
273
275
  /** Own one HTML5 drag-presence lease without owning target or presentation policy. */
274
276
  declare function installDragPresenceLifecycle(options: DragPresenceLifecycleOptions): () => void;
package/dist/react.js CHANGED
@@ -1864,6 +1864,7 @@ function installDragPresenceLifecycle(options) {
1864
1864
  let disposed = false;
1865
1865
  let active = false;
1866
1866
  let startRegistered = false;
1867
+ let overRegistered = false;
1867
1868
  let endRegistered = false;
1868
1869
  let dropRegistered = false;
1869
1870
  const publish = (next) => {
@@ -1889,6 +1890,13 @@ function installDragPresenceLifecycle(options) {
1889
1890
  if (disposed) return;
1890
1891
  publish(false);
1891
1892
  };
1893
+ const onOver = (event) => {
1894
+ if (disposed) return;
1895
+ try {
1896
+ options.onDragOver?.(event.target);
1897
+ } catch {
1898
+ }
1899
+ };
1892
1900
  const remove = (type, listener, registered) => {
1893
1901
  if (!registered) return;
1894
1902
  try {
@@ -1899,6 +1907,8 @@ function installDragPresenceLifecycle(options) {
1899
1907
  try {
1900
1908
  startRegistered = true;
1901
1909
  target.addEventListener("dragstart", onStart, true);
1910
+ overRegistered = true;
1911
+ target.addEventListener("dragover", onOver, true);
1902
1912
  endRegistered = true;
1903
1913
  target.addEventListener("dragend", onEnd, true);
1904
1914
  dropRegistered = true;
@@ -1907,6 +1917,7 @@ function installDragPresenceLifecycle(options) {
1907
1917
  disposed = true;
1908
1918
  remove("drop", onEnd, dropRegistered);
1909
1919
  remove("dragend", onEnd, endRegistered);
1920
+ remove("dragover", onOver, overRegistered);
1910
1921
  remove("dragstart", onStart, startRegistered);
1911
1922
  publish(false);
1912
1923
  }
@@ -1915,6 +1926,7 @@ function installDragPresenceLifecycle(options) {
1915
1926
  disposed = true;
1916
1927
  remove("drop", onEnd, dropRegistered);
1917
1928
  remove("dragend", onEnd, endRegistered);
1929
+ remove("dragover", onOver, overRegistered);
1918
1930
  remove("dragstart", onStart, startRegistered);
1919
1931
  publish(false);
1920
1932
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgeax/app-shell",
3
- "version": "0.57.0",
3
+ "version": "0.58.0",
4
4
  "description": "Generic Dock, Panel, Window, and Slot composition primitives",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",