@teammodlr/ui-kit 3.0.0-beta.21 → 3.0.0-beta.23

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": "@teammodlr/ui-kit",
3
- "version": "3.0.0-beta.21",
3
+ "version": "3.0.0-beta.23",
4
4
  "description": "",
5
5
  "main": "lib/index.cjs.js",
6
6
  "module": "lib/index.es.js",
@@ -17,11 +17,11 @@
17
17
  :disable-outside-pointer-events="modal"
18
18
  @open-auto-focus="handleOpenAutoFocus"
19
19
  @escape-key-down="handleEscapeKeyDown"
20
- @pointer-down-outside="handleOutsideEvent"
21
- @focus-outside="handleOutsideEvent"
22
- @interact-outside="handleOutsideEvent"
20
+ @pointer-down-outside.prevent
21
+ @focus-outside="handleFocusOutside"
22
+ @interact-outside.prevent
23
23
  >
24
- <FocusScope :trapped="activeFocusTrap" :loop="activeFocusTrap">
24
+ <FocusScope :trapped="focusTrap" :loop="focusTrap">
25
25
  <slot v-if="$slots.container" name="container" :close="close"></slot>
26
26
  <template v-else>
27
27
  <div :class="style.content">
@@ -65,7 +65,6 @@ import {
65
65
  import {
66
66
  computed,
67
67
  defineComponent,
68
- onUnmounted,
69
68
  provide,
70
69
  ref,
71
70
  shallowRef,
@@ -137,19 +136,6 @@ export default defineComponent({
137
136
  const zIndex = ref(props.zIndex ?? nextZIndex());
138
137
  provide(ZINDEX, zIndex);
139
138
  const hasOpened = ref(false);
140
- const focusTrapOverride = ref<boolean | null>(null);
141
- const activeFocusTrap = computed(() => focusTrapOverride.value ?? props.focusTrap);
142
-
143
- // reka-ui's FocusScope captures `trapped` at mount time and never re-checks it.
144
- // We register this listener before FocusScope mounts (children mount after parent setup)
145
- // so it fires first and blocks reka-ui's listener from stealing focus when trap is off.
146
- const focusTrapBlocker = (event: FocusEvent) => {
147
- if (!activeFocusTrap.value) {
148
- event.stopImmediatePropagation();
149
- }
150
- };
151
- document.addEventListener('focusin', focusTrapBlocker, true);
152
- onUnmounted(() => document.removeEventListener('focusin', focusTrapBlocker, true));
153
139
 
154
140
  const isDragging = ref<boolean>(false);
155
141
 
@@ -259,10 +245,8 @@ export default defineComponent({
259
245
  zIndex.value = nextZIndex();
260
246
  }
261
247
 
262
- function handleOutsideEvent(event: Event) {
263
- if (activeFocusTrap.value) {
264
- event.preventDefault();
265
- }
248
+ function handleFocusOutside(event: Event) {
249
+ event.preventDefault();
266
250
  }
267
251
 
268
252
  function handleOpenAutoFocus(event: Event) {
@@ -363,13 +347,8 @@ export default defineComponent({
363
347
  { immediate: true }
364
348
  );
365
349
 
366
- function setFocusTrap(value: boolean) {
367
- focusTrapOverride.value = value;
368
- }
369
-
370
350
  expose({
371
351
  close,
372
- setFocusTrap,
373
352
  });
374
353
 
375
354
  return {
@@ -393,9 +372,8 @@ export default defineComponent({
393
372
  onEnter,
394
373
  handleOpenChange,
395
374
  handleOpenAutoFocus,
396
- handleOutsideEvent,
397
- isOpen: computed(() => props.open),
398
- activeFocusTrap,
375
+ handleFocusOutside,
376
+ isOpen: computed(() => props.open)
399
377
  };
400
378
  },
401
379
  });
@@ -39,10 +39,6 @@ export default defineComponent({
39
39
  };
40
40
  }
41
41
 
42
- function setFocusTrap(key: string, enabled: boolean) {
43
- dialogRefs.value[key]?.setFocusTrap(enabled);
44
- }
45
-
46
42
  function create(key: string, options: DialogOptions = {}): DialogReactive {
47
43
  if (dialogMap[key]) {
48
44
  // Merge new options into existing reactive options
@@ -76,7 +72,6 @@ export default defineComponent({
76
72
  handleClose(key);
77
73
  }
78
74
  },
79
- setFocusTrap: (enabled: boolean) => setFocusTrap(key, enabled),
80
75
  };
81
76
 
82
77
  dialogMap[key] = dialog;
@@ -127,8 +122,7 @@ export default defineComponent({
127
122
  remove,
128
123
  hasOpenDialog: () => hasOpenDialog.value,
129
124
  openDialogCount: () => openDialogCount.value,
130
- openDialogKeys: () => openDialogKeys.value,
131
- setFocusTrap,
125
+ openDialogKeys: () => openDialogKeys.value
132
126
  };
133
127
 
134
128
  provide('m-dialog', api);
@@ -19,7 +19,6 @@ export interface DialogReactive {
19
19
  options: DialogOptions;
20
20
  open: () => void;
21
21
  close: () => void;
22
- setFocusTrap: (enabled: boolean) => void;
23
22
  }
24
23
 
25
24
  export interface DialogApiInjection {
@@ -28,5 +27,4 @@ export interface DialogApiInjection {
28
27
  hasOpenDialog: () => boolean;
29
28
  openDialogCount: () => number;
30
29
  openDialogKeys: () => string[];
31
- setFocusTrap: (key: string, enabled: boolean) => void;
32
30
  }