@dataloop-ai/components 0.20.261-new-input.3 → 0.20.261-new-input.5

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@dataloop-ai/components",
3
- "version": "0.20.261-new-input.3",
3
+ "version": "0.20.261-new-input.5",
4
4
  "exports": {
5
5
  ".": "./index.ts",
6
6
  "./models": "./models.ts",
@@ -161,6 +161,7 @@
161
161
  <dl-menu
162
162
  v-if="showSuggestItems"
163
163
  :model-value="isMenuOpen"
164
+ :menu-class="suggestionMenuClass()"
164
165
  persistent
165
166
  no-focus
166
167
  no-refocus
@@ -1358,6 +1359,13 @@ export default defineComponent({
1358
1359
  const inputRef = this.$refs.input as HTMLInputElement
1359
1360
  inputRef.blur()
1360
1361
  },
1362
+ suggestionMenuClass(): string {
1363
+ return `${this.uuid}__suggestion-menu`
1364
+ },
1365
+ isBlurToSuggestionMenu(e: FocusEvent): boolean {
1366
+ const relatedTarget = e.relatedTarget as HTMLElement | null
1367
+ return !!relatedTarget?.closest(`.${this.suggestionMenuClass()}`)
1368
+ },
1361
1369
  closeSuggestionMenuAfterBlur(): void {
1362
1370
  // Delay close so suggestion item click can finish before menu teardown.
1363
1371
  setTimeout(() => {
@@ -1366,7 +1374,10 @@ export default defineComponent({
1366
1374
  }
1367
1375
  }, 0)
1368
1376
  },
1369
- onBlur(e: InputEvent): void {
1377
+ onBlur(e: FocusEvent): void {
1378
+ if (this.isBlurToSuggestionMenu(e)) {
1379
+ return
1380
+ }
1370
1381
  const el = e.target as HTMLElement
1371
1382
  el.innerText = (el.innerText ?? '').endsWith('.')
1372
1383
  ? el.innerText.slice(0, -1)
@@ -1389,6 +1400,9 @@ export default defineComponent({
1389
1400
  this.$emit('focus', e)
1390
1401
  },
1391
1402
  onNativeBlur(e: FocusEvent): void {
1403
+ if (this.isBlurToSuggestionMenu(e)) {
1404
+ return
1405
+ }
1392
1406
  this.focused = false
1393
1407
  this.closeSuggestionMenuAfterBlur()
1394
1408
  this.$emit('blur', e)