sprae 12.4.13 → 12.4.15

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sprae",
3
3
  "description": "DOM microhydration",
4
- "version": "12.4.13",
4
+ "version": "12.4.15",
5
5
  "main": "./sprae.js",
6
6
  "module": "./sprae.js",
7
7
  "umd:main": "dist/sprae.umd.js",
@@ -61,6 +61,7 @@
61
61
  "test:jessie": "SPRAE_COMPILER=jessie node -r ./test/register.cjs test/test.js",
62
62
  "test:preact": "SPRAE_SIGNALS=preact node -r ./test/register.cjs test/test.js",
63
63
  "test:mem": "node --expose-gc -r ./test/register.cjs test/test.js",
64
+ "test:browser": "node test/browser.js",
64
65
  "bench": "node --expose-gc -r ./test/register-happy.cjs test/bench.js",
65
66
  "build": "node .esbuild.js",
66
67
  "types": "tsc --declaration --declarationMap --emitDeclarationOnly --outDir types --target ESNext --module ESNext --moduleResolution bundler --allowJs --skipLibCheck --noEmitOnError false sprae.js core.js store.js signal.js directive/*.js",
package/sprae.js CHANGED
@@ -82,7 +82,7 @@ const dir = (target, name, expr, state) => {
82
82
  })
83
83
  if (!(_state in el)) return off
84
84
  let _d = 0
85
- return () => { if (_d) return; _d = 1; off(); el[_dispose]?.() }
85
+ return () => { if (_d) return; _d = 1; off(); update[_off] ? update[_off]() : el[_dispose]?.() }
86
86
  }
87
87
  }
88
88
 
@@ -135,10 +135,10 @@ Object.assign(modifier, {
135
135
  self: (fn) => (e) => (e.target === fn.target && fn(e)),
136
136
  /** Triggers when event is outside the element. Ignores drag-out (pointerdown inside, pointerup outside). */
137
137
  away: (fn, _pd) => {
138
- let doc = fn.target.ownerDocument, pdHandler = e => _pd = e.target
138
+ let doc = fn.target.ownerDocument, pdHandler = e => _pd = e.target, _skip = doc.currentEvent || doc.defaultView?.event
139
139
  doc.addEventListener('pointerdown', pdHandler, true)
140
140
  return Object.assign(
141
- (e) => !fn.target.contains(e.type === 'click' ? _pd ?? e.target : e.target) && e.target.isConnected && fn(e),
141
+ (e) => e !== _skip && !fn.target.contains(e.type === 'click' ? _pd ?? e.target : e.target) && e.target.isConnected && fn(e),
142
142
  { target: doc, [_dispose]: () => doc.removeEventListener('pointerdown', pdHandler, true) }
143
143
  )
144
144
  },
@@ -1 +1 @@
1
- {"version":3,"file":"if.d.ts","sourceRoot":"","sources":["../../directive/if.js"],"names":[],"mappings":"AASe,8BAJJ,OAAO,GAAG,mBAAmB,eAE3B,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CA4ChC"}
1
+ {"version":3,"file":"if.d.ts","sourceRoot":"","sources":["../../directive/if.js"],"names":[],"mappings":"AASe,8BAJJ,OAAO,GAAG,mBAAmB,eAE3B,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CA+ChC"}