reka-ui 2.9.0 → 2.9.1

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.
Files changed (101) hide show
  1. package/dist/Calendar/CalendarGrid.cjs +3 -3
  2. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  3. package/dist/Calendar/CalendarGrid.js +4 -4
  4. package/dist/Calendar/CalendarGrid.js.map +1 -1
  5. package/dist/Combobox/ComboboxInput.cjs +10 -1
  6. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  7. package/dist/Combobox/ComboboxInput.js +10 -1
  8. package/dist/Combobox/ComboboxInput.js.map +1 -1
  9. package/dist/DismissableLayer/utils.cjs +1 -0
  10. package/dist/DismissableLayer/utils.cjs.map +1 -1
  11. package/dist/DismissableLayer/utils.js +1 -0
  12. package/dist/DismissableLayer/utils.js.map +1 -1
  13. package/dist/Menu/MenuGroup.cjs +13 -2
  14. package/dist/Menu/MenuGroup.cjs.map +1 -1
  15. package/dist/Menu/MenuGroup.js +8 -3
  16. package/dist/Menu/MenuGroup.js.map +1 -1
  17. package/dist/Menu/MenuItemImpl.cjs +3 -2
  18. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  19. package/dist/Menu/MenuItemImpl.js +3 -2
  20. package/dist/Menu/MenuItemImpl.js.map +1 -1
  21. package/dist/Menu/MenuLabel.cjs +4 -2
  22. package/dist/Menu/MenuLabel.cjs.map +1 -1
  23. package/dist/Menu/MenuLabel.js +5 -3
  24. package/dist/Menu/MenuLabel.js.map +1 -1
  25. package/dist/MonthPicker/MonthPickerGrid.cjs +3 -3
  26. package/dist/MonthPicker/MonthPickerGrid.cjs.map +1 -1
  27. package/dist/MonthPicker/MonthPickerGrid.js +4 -4
  28. package/dist/MonthPicker/MonthPickerGrid.js.map +1 -1
  29. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs +3 -3
  30. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs.map +1 -1
  31. package/dist/MonthRangePicker/MonthRangePickerGrid.js +4 -4
  32. package/dist/MonthRangePicker/MonthRangePickerGrid.js.map +1 -1
  33. package/dist/RangeCalendar/RangeCalendarGrid.cjs +3 -3
  34. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  35. package/dist/RangeCalendar/RangeCalendarGrid.js +4 -4
  36. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  37. package/dist/Splitter/SplitterGroup.cjs +23 -13
  38. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  39. package/dist/Splitter/SplitterGroup.js +23 -13
  40. package/dist/Splitter/SplitterGroup.js.map +1 -1
  41. package/dist/Toast/FocusProxy.cjs +0 -1
  42. package/dist/Toast/FocusProxy.cjs.map +1 -1
  43. package/dist/Toast/FocusProxy.js +0 -1
  44. package/dist/Toast/FocusProxy.js.map +1 -1
  45. package/dist/Toast/ToastRootImpl.cjs +1 -5
  46. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  47. package/dist/Toast/ToastRootImpl.js +1 -5
  48. package/dist/Toast/ToastRootImpl.js.map +1 -1
  49. package/dist/YearPicker/YearPickerGrid.cjs +3 -3
  50. package/dist/YearPicker/YearPickerGrid.cjs.map +1 -1
  51. package/dist/YearPicker/YearPickerGrid.js +4 -4
  52. package/dist/YearPicker/YearPickerGrid.js.map +1 -1
  53. package/dist/YearRangePicker/YearRangePickerGrid.cjs +3 -3
  54. package/dist/YearRangePicker/YearRangePickerGrid.cjs.map +1 -1
  55. package/dist/YearRangePicker/YearRangePickerGrid.js +4 -4
  56. package/dist/YearRangePicker/YearRangePickerGrid.js.map +1 -1
  57. package/dist/constant.d.cts.map +1 -1
  58. package/dist/date/useDateField.cjs +1 -0
  59. package/dist/date/useDateField.cjs.map +1 -1
  60. package/dist/date/useDateField.js +1 -0
  61. package/dist/date/useDateField.js.map +1 -1
  62. package/dist/index.cjs +1 -1
  63. package/dist/index.js +1 -1
  64. package/dist/index3.d.cts +1007 -1006
  65. package/dist/index3.d.cts.map +1 -1
  66. package/dist/index3.d.ts +83 -82
  67. package/dist/index3.d.ts.map +1 -1
  68. package/dist/internal.d.cts +2 -4
  69. package/dist/internal.d.cts.map +1 -1
  70. package/dist/internal.d.ts +2 -4
  71. package/dist/shared/useBodyScrollLock.cjs +1 -0
  72. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  73. package/dist/shared/useBodyScrollLock.js +1 -0
  74. package/dist/shared/useBodyScrollLock.js.map +1 -1
  75. package/dist/shared/useHideOthers.cjs +1 -1
  76. package/dist/shared/useHideOthers.cjs.map +1 -1
  77. package/dist/shared/useHideOthers.js +1 -1
  78. package/dist/shared/useHideOthers.js.map +1 -1
  79. package/dist/utils/callPanelCallbacks.cjs +10 -7
  80. package/dist/utils/callPanelCallbacks.cjs.map +1 -1
  81. package/dist/utils/callPanelCallbacks.js +10 -7
  82. package/dist/utils/callPanelCallbacks.js.map +1 -1
  83. package/package.json +2 -2
  84. package/src/Calendar/CalendarGrid.vue +6 -1
  85. package/src/Combobox/ComboboxInput.vue +19 -0
  86. package/src/DismissableLayer/utils.ts +4 -1
  87. package/src/Menu/MenuGroup.vue +12 -0
  88. package/src/Menu/MenuItemImpl.vue +4 -4
  89. package/src/Menu/MenuLabel.vue +7 -1
  90. package/src/MonthPicker/MonthPickerGrid.vue +6 -1
  91. package/src/MonthRangePicker/MonthRangePickerGrid.vue +6 -1
  92. package/src/RangeCalendar/RangeCalendarGrid.vue +6 -1
  93. package/src/Splitter/SplitterGroup.vue +26 -6
  94. package/src/Splitter/utils/callPanelCallbacks.ts +16 -8
  95. package/src/Toast/FocusProxy.vue +0 -1
  96. package/src/Toast/ToastRootImpl.vue +0 -4
  97. package/src/YearPicker/YearPickerGrid.vue +6 -1
  98. package/src/YearRangePicker/YearRangePickerGrid.vue +6 -1
  99. package/src/shared/date/useDateField.ts +2 -1
  100. package/src/shared/useBodyScrollLock.ts +2 -0
  101. package/src/shared/useHideOthers.ts +2 -1
@@ -182,7 +182,6 @@ provideToastRootContext({ onClose: handleClose })
182
182
  v-if="announceTextContent"
183
183
  role="alert"
184
184
  :aria-live="type === 'foreground' ? 'assertive' : 'polite'"
185
- aria-atomic="true"
186
185
  >
187
186
  {{ announceTextContent }}
188
187
  </ToastAnnounce>
@@ -194,9 +193,6 @@ provideToastRootContext({ onClose: handleClose })
194
193
  <CollectionItem>
195
194
  <Primitive
196
195
  :ref="forwardRef"
197
- role="alert"
198
- aria-live="off"
199
- aria-atomic="true"
200
196
  tabindex="0"
201
197
  v-bind="$attrs"
202
198
  :as="as"
@@ -17,10 +17,15 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
17
17
  </script>
18
18
 
19
19
  <template>
20
+ <!--
21
+ role="application" is intentional: it ensures screen readers like NVDA pass
22
+ keyboard events (arrow keys) to the web app instead of intercepting them
23
+ for virtual cursor navigation. This is the same pattern used by React Aria.
24
+ -->
20
25
  <Primitive
21
26
  v-bind="props"
22
27
  tabindex="-1"
23
- role="grid"
28
+ role="application"
24
29
  :aria-labelledby="rootContext.headingId"
25
30
  :aria-readonly="readonly"
26
31
  :aria-disabled="disabled"
@@ -17,10 +17,15 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
17
17
  </script>
18
18
 
19
19
  <template>
20
+ <!--
21
+ role="application" is intentional: it ensures screen readers like NVDA pass
22
+ keyboard events (arrow keys) to the web app instead of intercepting them
23
+ for virtual cursor navigation. This is the same pattern used by React Aria.
24
+ -->
20
25
  <Primitive
21
26
  v-bind="props"
22
27
  tabindex="-1"
23
- role="grid"
28
+ role="application"
24
29
  :aria-labelledby="rootContext.headingId"
25
30
  :aria-readonly="readonly"
26
31
  :aria-disabled="disabled"
@@ -874,9 +874,10 @@ export function useDateField(props: UseDateFieldProps) {
874
874
  function handleSegmentKeydown(e: KeyboardEvent) {
875
875
  const disabled = props.disabled.value
876
876
  const readonly = props.readonly.value
877
-
878
877
  if (disabled || readonly)
879
878
  return
879
+ if (e.key !== kbd.TAB)
880
+ e.preventDefault()
880
881
  const segmentKeydownHandlers = {
881
882
  day: handleDaySegmentKeydown,
882
883
  month: handleMonthSegmentKeydown,
@@ -80,6 +80,8 @@ const useBodyLockStackCount = createSharedComposable(() => {
80
80
 
81
81
  // let dismissibleLayer set previous pointerEvent first
82
82
  nextTick(() => {
83
+ if (!locked.value)
84
+ return
83
85
  document.body.style.pointerEvents = 'none'
84
86
  document.body.style.overflow = 'hidden'
85
87
  })
@@ -16,7 +16,8 @@ export function useHideOthers(target: MaybeElementRef) {
16
16
  // disable hideOthers on test mode
17
17
  if (import.meta.env.MODE === 'test')
18
18
  return
19
- if (el)
19
+ // Skip if inside a closed native popover
20
+ if (el && !el.closest('[popover]:not(:popover-open)'))
20
21
  undo = hideOthers(el)
21
22
  else if (undo)
22
23
  undo()