Caleb Porzio 2 vuotta sitten
vanhempi
commit
af669e694f

+ 19 - 12
package-lock.json

@@ -58,8 +58,8 @@
             "resolved": "packages/persist",
             "link": true
         },
-        "node_modules/@alpinejs/portal": {
-            "resolved": "packages/portal",
+        "node_modules/@alpinejs/ui": {
+            "resolved": "packages/ui",
             "link": true
         },
         "node_modules/@babel/code-frame": {
@@ -7315,7 +7315,7 @@
             }
         },
         "packages/alpinejs": {
-            "version": "3.10.2",
+            "version": "3.10.3",
             "license": "MIT",
             "dependencies": {
                 "@vue/reactivity": "~3.1.1"
@@ -7323,7 +7323,7 @@
         },
         "packages/collapse": {
             "name": "@alpinejs/collapse",
-            "version": "3.10.2",
+            "version": "3.10.3",
             "license": "MIT"
         },
         "packages/csp": {
@@ -7336,12 +7336,12 @@
         },
         "packages/docs": {
             "name": "@alpinejs/docs",
-            "version": "3.10.2-revision.2",
+            "version": "3.10.3-revision.1",
             "license": "MIT"
         },
         "packages/focus": {
             "name": "@alpinejs/focus",
-            "version": "3.10.2",
+            "version": "3.10.3",
             "license": "MIT",
             "dependencies": {
                 "focus-trap": "^6.6.1"
@@ -7357,30 +7357,33 @@
         },
         "packages/intersect": {
             "name": "@alpinejs/intersect",
-            "version": "3.10.2",
+            "version": "3.10.3",
             "license": "MIT"
         },
         "packages/mask": {
-            "version": "3.10.2",
+            "name": "@alpinejs/mask",
+            "version": "3.10.3",
             "license": "MIT"
         },
         "packages/morph": {
             "name": "@alpinejs/morph",
-            "version": "3.10.2",
+            "version": "3.10.3",
             "license": "MIT"
         },
         "packages/navigate": {
+            "name": "@alpinejs/navigate",
             "version": "3.10.2",
             "license": "MIT"
         },
         "packages/persist": {
             "name": "@alpinejs/persist",
-            "version": "3.10.2",
+            "version": "3.10.3",
             "license": "MIT"
         },
         "packages/portal": {
             "name": "@alpinejs/portal",
             "version": "3.6.1-beta.0",
+            "extraneous": true,
             "license": "MIT"
         },
         "packages/trap": {
@@ -7390,6 +7393,10 @@
             "dependencies": {
                 "focus-trap": "^6.6.1"
             }
+        },
+        "packages/ui": {
+            "version": "3.10.3-beta.0",
+            "license": "MIT"
         }
     },
     "dependencies": {
@@ -7432,8 +7439,8 @@
         "@alpinejs/persist": {
             "version": "file:packages/persist"
         },
-        "@alpinejs/portal": {
-            "version": "file:packages/portal"
+        "@alpinejs/ui": {
+            "version": "file:packages/ui"
         },
         "@babel/code-frame": {
             "version": "7.14.5",

+ 9 - 3
packages/alpinejs/src/directives/x-model.js

@@ -6,13 +6,19 @@ import on from '../utils/on'
 import { warn } from '../utils/warn'
 
 directive('model', (el, { modifiers, expression }, { effect, cleanup }) => {
-    let evaluateGet = evaluateLater(el, expression)
+    let scopeTarget = el
+
+    if (modifiers.includes('parent')) {
+        scopeTarget = el.parentNode
+    }
+
+    let evaluateGet = evaluateLater(scopeTarget, expression)
     let evaluateSet
 
     if (typeof expression === 'string') {
-        evaluateSet = evaluateLater(el, `${expression} = __placeholder`)
+        evaluateSet = evaluateLater(scopeTarget, `${expression} = __placeholder`)
     } else if (typeof expression === 'function' && typeof expression() === 'string') {
-        evaluateSet = evaluateLater(el, `${expression()} = __placeholder`)
+        evaluateSet = evaluateLater(scopeTarget, `${expression()} = __placeholder`)
     } else {
         evaluateSet = () => {}
     }

+ 2 - 2
packages/alpinejs/src/directives/x-modelable.js

@@ -18,10 +18,10 @@ directive('modelable', (el, { expression }, { effect, evaluateLater }) => {
         // in x-modelable/model, but the input events from the native input
         // override any functionality added by x-modelable causing confusion.
         el._x_removeModelListeners['default']()
-    
+
         let outerGet = el._x_model.get
         let outerSet = el._x_model.set
-    
+
         effect(() => innerSet(outerGet()))
         effect(() => outerSet(innerGet()))
     })