reka-ui 2.1.0 → 2.1.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 (58) hide show
  1. package/dist/Calendar/CalendarCellTrigger.cjs +7 -5
  2. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  3. package/dist/Calendar/CalendarCellTrigger.js +7 -5
  4. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  5. package/dist/Combobox/ComboboxItem.cjs +0 -3
  6. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  7. package/dist/Combobox/ComboboxItem.js +1 -3
  8. package/dist/Combobox/ComboboxItem.js.map +1 -1
  9. package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
  10. package/dist/HoverCard/HoverCardRoot.js.map +1 -1
  11. package/dist/NavigationMenu/NavigationMenuSub.cjs +11 -1
  12. package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
  13. package/dist/NavigationMenu/NavigationMenuSub.js +12 -2
  14. package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
  15. package/dist/NavigationMenu/NavigationMenuViewport.cjs +1 -1
  16. package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
  17. package/dist/NavigationMenu/NavigationMenuViewport.js +1 -1
  18. package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
  19. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +6 -4
  20. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  21. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +6 -4
  22. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  23. package/dist/RangeCalendar/RangeCalendarRoot.cjs +3 -3
  24. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  25. package/dist/RangeCalendar/RangeCalendarRoot.js +3 -3
  26. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  27. package/dist/Select/SelectContentImpl.cjs +15 -5
  28. package/dist/Select/SelectContentImpl.cjs.map +1 -1
  29. package/dist/Select/SelectContentImpl.js +15 -5
  30. package/dist/Select/SelectContentImpl.js.map +1 -1
  31. package/dist/Slider/SliderRoot.cjs +1 -1
  32. package/dist/Slider/SliderRoot.cjs.map +1 -1
  33. package/dist/Slider/SliderRoot.js +1 -1
  34. package/dist/Slider/SliderRoot.js.map +1 -1
  35. package/dist/Slider/SliderThumb.cjs +1 -1
  36. package/dist/Slider/SliderThumb.cjs.map +1 -1
  37. package/dist/Slider/SliderThumb.js +1 -1
  38. package/dist/Slider/SliderThumb.js.map +1 -1
  39. package/dist/TagsInput/TagsInputItemDelete.cjs +2 -1
  40. package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
  41. package/dist/TagsInput/TagsInputItemDelete.js +2 -1
  42. package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
  43. package/dist/Toast/ToastClose.cjs +2 -2
  44. package/dist/Toast/ToastClose.cjs.map +1 -1
  45. package/dist/Toast/ToastClose.js +2 -2
  46. package/dist/Toast/ToastClose.js.map +1 -1
  47. package/dist/Toast/ToastRoot.cjs +3 -0
  48. package/dist/Toast/ToastRoot.cjs.map +1 -1
  49. package/dist/Toast/ToastRoot.js +3 -0
  50. package/dist/Toast/ToastRoot.js.map +1 -1
  51. package/dist/Toast/ToastRootImpl.cjs +6 -3
  52. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  53. package/dist/Toast/ToastRootImpl.js +6 -3
  54. package/dist/Toast/ToastRootImpl.js.map +1 -1
  55. package/dist/index.cjs +4 -4
  56. package/dist/index.d.ts +9 -10
  57. package/dist/index.js +2 -2
  58. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ToastRootImpl.js","sources":["../../src/Toast/ToastRootImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { isClient } from '@vueuse/shared'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { SwipeEvent } from './utils'\nimport { createContext, getActiveElement, useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport type ToastRootImplEmits = {\n close: []\n /** Event handler called when the escape key is down. It can be prevented by calling `event.preventDefault`. */\n escapeKeyDown: [event: KeyboardEvent]\n /** Event handler called when the dismiss timer is paused. This occurs when the pointer is moved over the viewport, the viewport is focused or when the window is blurred. */\n pause: []\n /** Event handler called when the dismiss timer is resumed. This occurs when the pointer is moved away from the viewport, the viewport is blurred or when the window is focused. */\n resume: []\n /** Event handler called when starting a swipe interaction. It can be prevented by calling `event.preventDefault`. */\n swipeStart: [event: SwipeEvent]\n /** Event handler called during a swipe interaction. It can be prevented by calling `event.preventDefault`. */\n swipeMove: [event: SwipeEvent]\n swipeCancel: [event: SwipeEvent]\n /** Event handler called at the end of a swipe interaction. It can be prevented by calling `event.preventDefault`. */\n swipeEnd: [event: SwipeEvent]\n}\n\nexport interface ToastRootImplProps extends PrimitiveProps {\n /**\n * Control the sensitivity of the toast for accessibility purposes.\n *\n * For toasts that are the result of a user action, choose `foreground`. Toasts generated from background tasks should use `background`.\n */\n type?: 'foreground' | 'background'\n /**\n * The controlled open state of the dialog. Can be bind as `v-model:open`.\n */\n open?: boolean\n /**\n * Time in milliseconds that toast should remain visible for. Overrides value\n * given to `ToastProvider`.\n */\n duration?: number\n}\n\nexport const [injectToastRootContext, provideToastRootContext]\n = createContext<{ onClose: () => void }>('ToastRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { computed, onMounted, onUnmounted, ref, watch, watchEffect } from 'vue'\nimport { injectToastProviderContext } from './ToastProvider.vue'\nimport { TOAST_SWIPE_CANCEL, TOAST_SWIPE_END, TOAST_SWIPE_MOVE, TOAST_SWIPE_START, VIEWPORT_PAUSE, VIEWPORT_RESUME, getAnnounceTextContent, handleAndDispatchCustomEvent, isDeltaInDirection } from './utils'\nimport { onKeyStroke, useRafFn } from '@vueuse/core'\nimport ToastAnnounce from './ToastAnnounce.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<ToastRootImplProps>(), {\n open: false,\n as: 'li',\n})\n\nconst emits = defineEmits<ToastRootImplEmits>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\nconst { CollectionItem } = useCollection()\n\nconst providerContext = injectToastProviderContext()\nconst pointerStartRef = ref<{ x: number, y: number } | null>(null)\nconst swipeDeltaRef = ref<{ x: number, y: number } | null>(null)\nconst duration = computed(\n () => typeof props.duration === 'number'\n ? props.duration\n : providerContext.duration.value,\n)\n\nconst closeTimerStartTimeRef = ref(0)\nconst closeTimerRemainingTimeRef = ref(duration.value)\nconst closeTimerRef = ref(0)\nconst remainingTime = ref(duration.value)\n\nconst remainingRaf = useRafFn(() => {\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.value\n remainingTime.value = Math.max(closeTimerRemainingTimeRef.value - elapsedTime, 0)\n}, { fpsLimit: 60 })\n\nfunction startTimer(duration: number) {\n if (duration <= 0 || duration === Number.POSITIVE_INFINITY)\n return\n // startTimer is used inside a watch with immediate set to true.\n // This results in code execution during SSR.\n // Ensure this code only runs in a browser environment\n if (!isClient)\n return\n window.clearTimeout(closeTimerRef.value)\n closeTimerStartTimeRef.value = new Date().getTime()\n closeTimerRef.value = window.setTimeout(handleClose, duration)\n}\n\nfunction handleClose() {\n // focus viewport if focus is within toast to read the remaining toast\n // count to SR users and ensure focus isn't lost\n const isFocusInToast = currentElement.value?.contains(getActiveElement())\n if (isFocusInToast)\n providerContext.viewport.value?.focus()\n\n // when manually close the toast, we reset isClosePausedRef\n providerContext.isClosePausedRef.value = false\n emits('close')\n}\n\nconst announceTextContent = computed(() => currentElement.value ? getAnnounceTextContent(currentElement.value) : null)\n\nif (props.type && !['foreground', 'background'].includes(props.type)) {\n const error = 'Invalid prop `type` supplied to `Toast`. Expected `foreground | background`.'\n throw new Error(error)\n}\n\nwatchEffect((cleanupFn) => {\n const viewport = providerContext.viewport.value\n if (viewport) {\n const handleResume = () => {\n startTimer(closeTimerRemainingTimeRef.value)\n remainingRaf.resume()\n emits('resume')\n }\n const handlePause = () => {\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.value\n closeTimerRemainingTimeRef.value = closeTimerRemainingTimeRef.value - elapsedTime\n window.clearTimeout(closeTimerRef.value)\n remainingRaf.pause()\n emits('pause')\n }\n viewport.addEventListener(VIEWPORT_PAUSE, handlePause)\n viewport.addEventListener(VIEWPORT_RESUME, handleResume)\n return () => {\n viewport.removeEventListener(VIEWPORT_PAUSE, handlePause)\n viewport.removeEventListener(VIEWPORT_RESUME, handleResume)\n }\n }\n})\n\n// start timer when toast opens or duration changes.\n// we include `open` in deps because closed !== unmounted when animating\n// so it could reopen before being completely unmounted\nwatch(() => [props.open, duration.value], () => {\n // Reset the timer when the toast is rerendered with the new duration\n closeTimerRemainingTimeRef.value = duration.value\n\n if (props.open && !providerContext.isClosePausedRef.value)\n startTimer(duration.value)\n}, { immediate: true })\n\nonKeyStroke('Escape', (event) => {\n emits('escapeKeyDown', event)\n if (!event.defaultPrevented) {\n providerContext.isFocusedToastEscapeKeyDownRef.value = true\n handleClose()\n }\n})\n\nonMounted(() => {\n providerContext.onToastAdd()\n})\nonUnmounted(() => {\n providerContext.onToastRemove()\n})\n\nprovideToastRootContext({ onClose: handleClose })\n</script>\n\n<template>\n <ToastAnnounce\n v-if=\"announceTextContent\"\n role=\"alert\"\n :aria-live=\"type === 'foreground' ? 'assertive' : 'polite'\"\n aria-atomic=\"true\"\n >\n {{ announceTextContent }}\n </ToastAnnounce>\n\n <Teleport\n v-if=\"providerContext.viewport.value\"\n :to=\"providerContext.viewport.value\"\n >\n <CollectionItem>\n <Primitive\n :ref=\"forwardRef\"\n role=\"alert\"\n aria-live=\"off\"\n aria-atomic=\"true\"\n tabindex=\"0\"\n v-bind=\"$attrs\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-state=\"open ? 'open' : 'closed'\"\n :data-swipe-direction=\"providerContext.swipeDirection.value\"\n :style=\"{ userSelect: 'none', touchAction: 'none' }\"\n @pointerdown.left=\"(event: PointerEvent) => {\n pointerStartRef = { x: event.clientX, y: event.clientY };\n }\"\n @pointermove=\"(event: PointerEvent) => {\n if (!pointerStartRef) return;\n const x = event.clientX - pointerStartRef.x;\n const y = event.clientY - pointerStartRef.y;\n const hasSwipeMoveStarted = Boolean(swipeDeltaRef);\n const isHorizontalSwipe = ['left', 'right'].includes(providerContext.swipeDirection.value);\n const clamp = ['left', 'up'].includes(providerContext.swipeDirection.value)\n ? Math.min\n : Math.max;\n const clampedX = isHorizontalSwipe ? clamp(0, x) : 0;\n const clampedY = !isHorizontalSwipe ? clamp(0, y) : 0;\n const moveStartBuffer = event.pointerType === 'touch' ? 10 : 2;\n const delta = { x: clampedX, y: clampedY };\n const eventDetail = { originalEvent: event, delta };\n if (hasSwipeMoveStarted) {\n swipeDeltaRef = delta;\n handleAndDispatchCustomEvent(TOAST_SWIPE_MOVE, (ev: SwipeEvent) => emits('swipeMove', ev), eventDetail);\n }\n else if (isDeltaInDirection(delta, providerContext.swipeDirection.value, moveStartBuffer)) {\n swipeDeltaRef = delta;\n handleAndDispatchCustomEvent(TOAST_SWIPE_START, (ev: SwipeEvent) => emits('swipeStart', ev), eventDetail);\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n }\n else if (Math.abs(x) > moveStartBuffer || Math.abs(y) > moveStartBuffer) {\n // User is swiping in wrong direction so we disable swipe gesture\n // for the current pointer down interaction\n pointerStartRef = null;\n }\n }\"\n @pointerup=\"(event: PointerEvent) => {\n const delta = swipeDeltaRef;\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n swipeDeltaRef = null;\n pointerStartRef = null;\n if (delta) {\n const toast = event.currentTarget;\n const eventDetail = { originalEvent: event, delta };\n if (\n isDeltaInDirection(delta, providerContext.swipeDirection.value, providerContext.swipeThreshold.value)\n ) {\n handleAndDispatchCustomEvent(TOAST_SWIPE_END, (ev: SwipeEvent) => emits('swipeEnd', ev), eventDetail);\n }\n else {\n handleAndDispatchCustomEvent(TOAST_SWIPE_CANCEL, (ev: SwipeEvent) => emits('swipeCancel', ev), eventDetail);\n }\n // Prevent click event from triggering on items within the toast when\n // pointer up is part of a swipe gesture\n toast?.addEventListener('click', (event) => event.preventDefault(), {\n once: true,\n });\n }\n }\"\n >\n <slot\n :remaining=\"remainingTime\"\n :duration=\"duration\"\n />\n </Primitive>\n </CollectionItem>\n </Teleport>\n</template>\n"],"names":["duration"],"mappings":"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"}
1
+ {"version":3,"file":"ToastRootImpl.js","sources":["../../src/Toast/ToastRootImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { isClient } from '@vueuse/shared'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { SwipeEvent } from './utils'\nimport { createContext, getActiveElement, useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport type ToastRootImplEmits = {\n close: []\n /** Event handler called when the escape key is down. It can be prevented by calling `event.preventDefault`. */\n escapeKeyDown: [event: KeyboardEvent]\n /** Event handler called when the dismiss timer is paused. This occurs when the pointer is moved over the viewport, the viewport is focused or when the window is blurred. */\n pause: []\n /** Event handler called when the dismiss timer is resumed. This occurs when the pointer is moved away from the viewport, the viewport is blurred or when the window is focused. */\n resume: []\n /** Event handler called when starting a swipe interaction. It can be prevented by calling `event.preventDefault`. */\n swipeStart: [event: SwipeEvent]\n /** Event handler called during a swipe interaction. It can be prevented by calling `event.preventDefault`. */\n swipeMove: [event: SwipeEvent]\n swipeCancel: [event: SwipeEvent]\n /** Event handler called at the end of a swipe interaction. It can be prevented by calling `event.preventDefault`. */\n swipeEnd: [event: SwipeEvent]\n}\n\nexport interface ToastRootImplProps extends PrimitiveProps {\n /**\n * Control the sensitivity of the toast for accessibility purposes.\n *\n * For toasts that are the result of a user action, choose `foreground`. Toasts generated from background tasks should use `background`.\n */\n type?: 'foreground' | 'background'\n /**\n * The controlled open state of the dialog. Can be bind as `v-model:open`.\n */\n open?: boolean\n /**\n * Time in milliseconds that toast should remain visible for. Overrides value\n * given to `ToastProvider`.\n */\n duration?: number\n}\n\nexport const [injectToastRootContext, provideToastRootContext]\n = createContext<{ onClose: () => void }>('ToastRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { computed, onMounted, onUnmounted, ref, watch, watchEffect } from 'vue'\nimport { injectToastProviderContext } from './ToastProvider.vue'\nimport { TOAST_SWIPE_CANCEL, TOAST_SWIPE_END, TOAST_SWIPE_MOVE, TOAST_SWIPE_START, VIEWPORT_PAUSE, VIEWPORT_RESUME, getAnnounceTextContent, handleAndDispatchCustomEvent, isDeltaInDirection } from './utils'\nimport { onKeyStroke, useRafFn } from '@vueuse/core'\nimport ToastAnnounce from './ToastAnnounce.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<ToastRootImplProps>(), {\n open: false,\n as: 'li',\n})\n\nconst emits = defineEmits<ToastRootImplEmits>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\nconst { CollectionItem } = useCollection()\n\nconst providerContext = injectToastProviderContext()\nconst pointerStartRef = ref<{ x: number, y: number } | null>(null)\nconst swipeDeltaRef = ref<{ x: number, y: number } | null>(null)\nconst duration = computed(\n () => typeof props.duration === 'number'\n ? props.duration\n : providerContext.duration.value,\n)\n\nconst closeTimerStartTimeRef = ref(0)\nconst closeTimerRemainingTimeRef = ref(duration.value)\nconst closeTimerRef = ref(0)\nconst remainingTime = ref(duration.value)\n\nconst remainingRaf = useRafFn(() => {\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.value\n remainingTime.value = Math.max(closeTimerRemainingTimeRef.value - elapsedTime, 0)\n}, { fpsLimit: 60 })\n\nfunction startTimer(duration: number) {\n if (duration <= 0 || duration === Number.POSITIVE_INFINITY)\n return\n // startTimer is used inside a watch with immediate set to true.\n // This results in code execution during SSR.\n // Ensure this code only runs in a browser environment\n if (!isClient)\n return\n window.clearTimeout(closeTimerRef.value)\n closeTimerStartTimeRef.value = new Date().getTime()\n closeTimerRef.value = window.setTimeout(handleClose, duration)\n}\n\nfunction handleClose(event?: PointerEvent) {\n const isNonPointerEvent = event?.pointerType === ''\n\n // reka: update to only perform focus when user focus via keyboard\n // focus viewport if focus is within toast to read the remaining toast\n // count to SR users and ensure focus isn't lost\n const isFocusInToast = currentElement.value?.contains(getActiveElement())\n if (isFocusInToast && isNonPointerEvent)\n providerContext.viewport.value?.focus()\n\n if (isNonPointerEvent) {\n // when manually close the toast, we reset isClosePausedRef\n providerContext.isClosePausedRef.value = false\n }\n\n emits('close')\n}\n\nconst announceTextContent = computed(() => currentElement.value ? getAnnounceTextContent(currentElement.value) : null)\n\nif (props.type && !['foreground', 'background'].includes(props.type)) {\n const error = 'Invalid prop `type` supplied to `Toast`. Expected `foreground | background`.'\n throw new Error(error)\n}\n\nwatchEffect((cleanupFn) => {\n const viewport = providerContext.viewport.value\n if (viewport) {\n const handleResume = () => {\n startTimer(closeTimerRemainingTimeRef.value)\n remainingRaf.resume()\n emits('resume')\n }\n const handlePause = () => {\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.value\n closeTimerRemainingTimeRef.value = closeTimerRemainingTimeRef.value - elapsedTime\n window.clearTimeout(closeTimerRef.value)\n remainingRaf.pause()\n emits('pause')\n }\n viewport.addEventListener(VIEWPORT_PAUSE, handlePause)\n viewport.addEventListener(VIEWPORT_RESUME, handleResume)\n return () => {\n viewport.removeEventListener(VIEWPORT_PAUSE, handlePause)\n viewport.removeEventListener(VIEWPORT_RESUME, handleResume)\n }\n }\n})\n\n// start timer when toast opens or duration changes.\n// we include `open` in deps because closed !== unmounted when animating\n// so it could reopen before being completely unmounted\nwatch(() => [props.open, duration.value], () => {\n // Reset the timer when the toast is rerendered with the new duration\n closeTimerRemainingTimeRef.value = duration.value\n\n if (props.open && !providerContext.isClosePausedRef.value)\n startTimer(duration.value)\n}, { immediate: true })\n\nonKeyStroke('Escape', (event) => {\n emits('escapeKeyDown', event)\n if (!event.defaultPrevented) {\n providerContext.isFocusedToastEscapeKeyDownRef.value = true\n handleClose()\n }\n})\n\nonMounted(() => {\n providerContext.onToastAdd()\n})\nonUnmounted(() => {\n providerContext.onToastRemove()\n})\n\nprovideToastRootContext({ onClose: handleClose })\n</script>\n\n<template>\n <ToastAnnounce\n v-if=\"announceTextContent\"\n role=\"alert\"\n :aria-live=\"type === 'foreground' ? 'assertive' : 'polite'\"\n aria-atomic=\"true\"\n >\n {{ announceTextContent }}\n </ToastAnnounce>\n\n <Teleport\n v-if=\"providerContext.viewport.value\"\n :to=\"providerContext.viewport.value\"\n >\n <CollectionItem>\n <Primitive\n :ref=\"forwardRef\"\n role=\"alert\"\n aria-live=\"off\"\n aria-atomic=\"true\"\n tabindex=\"0\"\n v-bind=\"$attrs\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-state=\"open ? 'open' : 'closed'\"\n :data-swipe-direction=\"providerContext.swipeDirection.value\"\n :style=\"{ userSelect: 'none', touchAction: 'none' }\"\n @pointerdown.left=\"(event: PointerEvent) => {\n pointerStartRef = { x: event.clientX, y: event.clientY };\n }\"\n @pointermove=\"(event: PointerEvent) => {\n if (!pointerStartRef) return;\n const x = event.clientX - pointerStartRef.x;\n const y = event.clientY - pointerStartRef.y;\n const hasSwipeMoveStarted = Boolean(swipeDeltaRef);\n const isHorizontalSwipe = ['left', 'right'].includes(providerContext.swipeDirection.value);\n const clamp = ['left', 'up'].includes(providerContext.swipeDirection.value)\n ? Math.min\n : Math.max;\n const clampedX = isHorizontalSwipe ? clamp(0, x) : 0;\n const clampedY = !isHorizontalSwipe ? clamp(0, y) : 0;\n const moveStartBuffer = event.pointerType === 'touch' ? 10 : 2;\n const delta = { x: clampedX, y: clampedY };\n const eventDetail = { originalEvent: event, delta };\n if (hasSwipeMoveStarted) {\n swipeDeltaRef = delta;\n handleAndDispatchCustomEvent(TOAST_SWIPE_MOVE, (ev: SwipeEvent) => emits('swipeMove', ev), eventDetail);\n }\n else if (isDeltaInDirection(delta, providerContext.swipeDirection.value, moveStartBuffer)) {\n swipeDeltaRef = delta;\n handleAndDispatchCustomEvent(TOAST_SWIPE_START, (ev: SwipeEvent) => emits('swipeStart', ev), eventDetail);\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n }\n else if (Math.abs(x) > moveStartBuffer || Math.abs(y) > moveStartBuffer) {\n // User is swiping in wrong direction so we disable swipe gesture\n // for the current pointer down interaction\n pointerStartRef = null;\n }\n }\"\n @pointerup=\"(event: PointerEvent) => {\n const delta = swipeDeltaRef;\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n swipeDeltaRef = null;\n pointerStartRef = null;\n if (delta) {\n const toast = event.currentTarget;\n const eventDetail = { originalEvent: event, delta };\n if (\n isDeltaInDirection(delta, providerContext.swipeDirection.value, providerContext.swipeThreshold.value)\n ) {\n handleAndDispatchCustomEvent(TOAST_SWIPE_END, (ev: SwipeEvent) => emits('swipeEnd', ev), eventDetail);\n }\n else {\n handleAndDispatchCustomEvent(TOAST_SWIPE_CANCEL, (ev: SwipeEvent) => emits('swipeCancel', ev), eventDetail);\n }\n // Prevent click event from triggering on items within the toast when\n // pointer up is part of a swipe gesture\n toast?.addEventListener('click', (event) => event.preventDefault(), {\n once: true,\n });\n }\n }\"\n >\n <slot\n :remaining=\"remainingTime\"\n :duration=\"duration\"\n />\n </Primitive>\n </CollectionItem>\n </Teleport>\n</template>\n"],"names":["duration"],"mappings":";;;;;;;;;;;;AA0CO,MAAM,CAAC,sBAAA,EAAwB,uBAAuB,CAAA,GACzD,cAAuC,WAAW;;;;;;;;;;;;;;;AAetD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AACxD,IAAM,MAAA,EAAE,cAAe,EAAA,GAAI,aAAc,EAAA;AAEzC,IAAA,MAAM,kBAAkB,0BAA2B,EAAA;AACnD,IAAM,MAAA,eAAA,GAAkB,IAAqC,IAAI,CAAA;AACjE,IAAM,MAAA,aAAA,GAAgB,IAAqC,IAAI,CAAA;AAC/D,IAAA,MAAM,QAAW,GAAA,QAAA;AAAA,MACf,MAAM,OAAO,KAAM,CAAA,QAAA,KAAa,WAC5B,KAAM,CAAA,QAAA,GACN,gBAAgB,QAAS,CAAA;AAAA,KAC/B;AAEA,IAAM,MAAA,sBAAA,GAAyB,IAAI,CAAC,CAAA;AACpC,IAAM,MAAA,0BAAA,GAA6B,GAAI,CAAA,QAAA,CAAS,KAAK,CAAA;AACrD,IAAM,MAAA,aAAA,GAAgB,IAAI,CAAC,CAAA;AAC3B,IAAM,MAAA,aAAA,GAAgB,GAAI,CAAA,QAAA,CAAS,KAAK,CAAA;AAExC,IAAM,MAAA,YAAA,GAAe,SAAS,MAAM;AAClC,MAAA,MAAM,+BAAkB,IAAA,IAAA,EAAO,EAAA,OAAA,KAAY,sBAAuB,CAAA,KAAA;AAClE,MAAA,aAAA,CAAc,QAAQ,IAAK,CAAA,GAAA,CAAI,0BAA2B,CAAA,KAAA,GAAQ,aAAa,CAAC,CAAA;AAAA,KAC/E,EAAA,EAAE,QAAU,EAAA,EAAA,EAAI,CAAA;AAEnB,IAAA,SAAS,WAAWA,SAAkB,EAAA;AACpC,MAAIA,IAAAA,SAAAA,IAAY,CAAKA,IAAAA,SAAAA,KAAa,MAAO,CAAA,iBAAA;AACvC,QAAA;AAIF,MAAA,IAAI,CAAC,QAAA;AACH,QAAA;AACF,MAAO,MAAA,CAAA,YAAA,CAAa,cAAc,KAAK,CAAA;AACvC,MAAA,sBAAA,CAAuB,KAAQ,GAAA,iBAAA,IAAI,IAAK,EAAA,EAAE,OAAQ,EAAA;AAClD,MAAA,aAAA,CAAc,KAAQ,GAAA,MAAA,CAAO,UAAW,CAAA,WAAA,EAAaA,SAAQ,CAAA;AAAA;AAG/D,IAAA,SAAS,YAAY,KAAsB,EAAA;AACzC,MAAM,MAAA,iBAAA,GAAoB,OAAO,WAAgB,KAAA,EAAA;AAKjD,MAAA,MAAM,cAAiB,GAAA,cAAA,CAAe,KAAO,EAAA,QAAA,CAAS,kBAAkB,CAAA;AACxE,MAAA,IAAI,cAAkB,IAAA,iBAAA;AACpB,QAAgB,eAAA,CAAA,QAAA,CAAS,OAAO,KAAM,EAAA;AAExC,MAAA,IAAI,iBAAmB,EAAA;AAErB,QAAA,eAAA,CAAgB,iBAAiB,KAAQ,GAAA,KAAA;AAAA;AAG3C,MAAA,KAAA,CAAM,OAAO,CAAA;AAAA;AAGf,IAAM,MAAA,mBAAA,GAAsB,SAAS,MAAM,cAAA,CAAe,QAAQ,sBAAuB,CAAA,cAAA,CAAe,KAAK,CAAA,GAAI,IAAI,CAAA;AAErH,IAAI,IAAA,KAAA,CAAM,IAAQ,IAAA,CAAC,CAAC,YAAA,EAAc,YAAY,CAAE,CAAA,QAAA,CAAS,KAAM,CAAA,IAAI,CAAG,EAAA;AACpE,MAAA,MAAM,KAAQ,GAAA,8EAAA;AACd,MAAM,MAAA,IAAI,MAAM,KAAK,CAAA;AAAA;AAGvB,IAAA,WAAA,CAAY,CAAC,SAAc,KAAA;AACzB,MAAM,MAAA,QAAA,GAAW,gBAAgB,QAAS,CAAA,KAAA;AAC1C,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,MAAM,eAAe,MAAM;AACzB,UAAA,UAAA,CAAW,2BAA2B,KAAK,CAAA;AAC3C,UAAA,YAAA,CAAa,MAAO,EAAA;AACpB,UAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,SAChB;AACA,QAAA,MAAM,cAAc,MAAM;AACxB,UAAA,MAAM,+BAAkB,IAAA,IAAA,EAAO,EAAA,OAAA,KAAY,sBAAuB,CAAA,KAAA;AAClE,UAA2B,0BAAA,CAAA,KAAA,GAAQ,2BAA2B,KAAQ,GAAA,WAAA;AACtE,UAAO,MAAA,CAAA,YAAA,CAAa,cAAc,KAAK,CAAA;AACvC,UAAA,YAAA,CAAa,KAAM,EAAA;AACnB,UAAA,KAAA,CAAM,OAAO,CAAA;AAAA,SACf;AACA,QAAS,QAAA,CAAA,gBAAA,CAAiB,gBAAgB,WAAW,CAAA;AACrD,QAAS,QAAA,CAAA,gBAAA,CAAiB,iBAAiB,YAAY,CAAA;AACvD,QAAA,OAAO,MAAM;AACX,UAAS,QAAA,CAAA,mBAAA,CAAoB,gBAAgB,WAAW,CAAA;AACxD,UAAS,QAAA,CAAA,mBAAA,CAAoB,iBAAiB,YAAY,CAAA;AAAA,SAC5D;AAAA;AACF,KACD,CAAA;AAKD,IAAA,KAAA,CAAM,MAAM,CAAC,KAAA,CAAM,MAAM,QAAS,CAAA,KAAK,GAAG,MAAM;AAE9C,MAAA,0BAAA,CAA2B,QAAQ,QAAS,CAAA,KAAA;AAE5C,MAAA,IAAI,KAAM,CAAA,IAAA,IAAQ,CAAC,eAAA,CAAgB,gBAAiB,CAAA,KAAA;AAClD,QAAA,UAAA,CAAW,SAAS,KAAK,CAAA;AAAA,KAC1B,EAAA,EAAE,SAAW,EAAA,IAAA,EAAM,CAAA;AAEtB,IAAY,WAAA,CAAA,QAAA,EAAU,CAAC,KAAU,KAAA;AAC/B,MAAA,KAAA,CAAM,iBAAiB,KAAK,CAAA;AAC5B,MAAI,IAAA,CAAC,MAAM,gBAAkB,EAAA;AAC3B,QAAA,eAAA,CAAgB,+BAA+B,KAAQ,GAAA,IAAA;AACvD,QAAY,WAAA,EAAA;AAAA;AACd,KACD,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,eAAA,CAAgB,UAAW,EAAA;AAAA,KAC5B,CAAA;AACD,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,eAAA,CAAgB,aAAc,EAAA;AAAA,KAC/B,CAAA;AAED,IAAwB,uBAAA,CAAA,EAAE,OAAS,EAAA,WAAA,EAAa,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.cjs CHANGED
@@ -282,6 +282,7 @@ const shared_createContext = require('./shared/createContext.cjs');
282
282
  const Collapsible_CollapsibleRoot = require('./Collapsible/CollapsibleRoot.cjs');
283
283
  const Collapsible_CollapsibleTrigger = require('./Collapsible/CollapsibleTrigger.cjs');
284
284
  const Collapsible_CollapsibleContent = require('./Collapsible/CollapsibleContent.cjs');
285
+ const Listbox_ListboxItem = require('./Listbox/ListboxItem.cjs');
285
286
  const DateRangeField_DateRangeFieldRoot = require('./DateRangeField/DateRangeFieldRoot.cjs');
286
287
  const DateRangeField_DateRangeFieldInput = require('./DateRangeField/DateRangeFieldInput.cjs');
287
288
  const Dialog_DialogRoot = require('./Dialog/DialogRoot.cjs');
@@ -294,7 +295,6 @@ const Dialog_DialogDescription = require('./Dialog/DialogDescription.cjs');
294
295
  const Listbox_ListboxRoot = require('./Listbox/ListboxRoot.cjs');
295
296
  const Listbox_ListboxContent = require('./Listbox/ListboxContent.cjs');
296
297
  const Listbox_ListboxFilter = require('./Listbox/ListboxFilter.cjs');
297
- const Listbox_ListboxItem = require('./Listbox/ListboxItem.cjs');
298
298
  const Listbox_ListboxItemIndicator = require('./Listbox/ListboxItemIndicator.cjs');
299
299
  const Listbox_ListboxVirtualizer = require('./Listbox/ListboxVirtualizer.cjs');
300
300
  const Listbox_ListboxGroup = require('./Listbox/ListboxGroup.cjs');
@@ -395,7 +395,6 @@ exports.ComboboxContent = Combobox_ComboboxContent._sfc_main;
395
395
  exports.ComboboxViewport = Combobox_ComboboxViewport._sfc_main;
396
396
  exports.ComboboxVirtualizer = Combobox_ComboboxVirtualizer._sfc_main;
397
397
  exports.ComboboxItem = Combobox_ComboboxItem._sfc_main;
398
- exports.injectComboboxItemContext = Combobox_ComboboxItem.injectComboboxItemContext;
399
398
  exports.ComboboxItemIndicator = Combobox_ComboboxItemIndicator._sfc_main;
400
399
  exports.ComboboxSeparator = Combobox_ComboboxSeparator._sfc_main;
401
400
  exports.ComboboxArrow = Combobox_ComboboxArrow._sfc_main;
@@ -667,6 +666,9 @@ exports.CollapsibleRoot = Collapsible_CollapsibleRoot._sfc_main;
667
666
  exports.injectCollapsibleRootContext = Collapsible_CollapsibleRoot.injectCollapsibleRootContext;
668
667
  exports.CollapsibleTrigger = Collapsible_CollapsibleTrigger._sfc_main;
669
668
  exports.CollapsibleContent = Collapsible_CollapsibleContent._sfc_main;
669
+ exports.ListboxItem = Listbox_ListboxItem._sfc_main;
670
+ exports.injectComboboxItemContext = Listbox_ListboxItem.injectListboxItemContext;
671
+ exports.injectListboxItemContext = Listbox_ListboxItem.injectListboxItemContext;
670
672
  exports.DateRangeFieldRoot = DateRangeField_DateRangeFieldRoot._sfc_main;
671
673
  exports.injectDateRangeFieldRootContext = DateRangeField_DateRangeFieldRoot.injectDateRangeFieldRootContext;
672
674
  exports.DateRangeFieldInput = DateRangeField_DateRangeFieldInput._sfc_main;
@@ -682,8 +684,6 @@ exports.ListboxRoot = Listbox_ListboxRoot._sfc_main;
682
684
  exports.injectListboxRootContext = Listbox_ListboxRoot.injectListboxRootContext;
683
685
  exports.ListboxContent = Listbox_ListboxContent._sfc_main;
684
686
  exports.ListboxFilter = Listbox_ListboxFilter._sfc_main;
685
- exports.ListboxItem = Listbox_ListboxItem._sfc_main;
686
- exports.injectListboxItemContext = Listbox_ListboxItem.injectListboxItemContext;
687
687
  exports.ListboxItemIndicator = Listbox_ListboxItemIndicator._sfc_main;
688
688
  exports.ListboxVirtualizer = Listbox_ListboxVirtualizer._sfc_main;
689
689
  exports.ListboxGroup = Listbox_ListboxGroup._sfc_main;
package/dist/index.d.ts CHANGED
@@ -2838,10 +2838,6 @@ export declare const ComboboxItem: <T extends AcceptableValue = AcceptableValue>
2838
2838
  } | undefined;
2839
2839
  };
2840
2840
 
2841
- declare interface ComboboxItemContext {
2842
- isSelected: Ref<boolean>;
2843
- }
2844
-
2845
2841
  export declare type ComboboxItemEmits<T = AcceptableValue> = ListboxItemEmits<T>;
2846
2842
 
2847
2843
  export declare const ComboboxItemIndicator: __VLS_WithTemplateSlots_45<DefineComponent<ComboboxItemIndicatorProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ComboboxItemIndicatorProps> & Readonly<{}>, {
@@ -5006,7 +5002,7 @@ export declare const HoverCardRoot: __VLS_WithTemplateSlots_140<DefineComponent<
5006
5002
  }, string, PublicProps, Readonly<HoverCardRootProps> & Readonly<{
5007
5003
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
5008
5004
  }>, {
5009
- defaultOpen: false;
5005
+ defaultOpen: boolean;
5010
5006
  open: boolean;
5011
5007
  openDelay: number;
5012
5008
  closeDelay: number;
@@ -5041,7 +5037,7 @@ export declare type HoverCardRootEmits = {
5041
5037
 
5042
5038
  export declare interface HoverCardRootProps {
5043
5039
  /** The open state of the hover card when it is initially rendered. Use when you do not need to control its open state. */
5044
- defaultOpen?: false;
5040
+ defaultOpen?: boolean;
5045
5041
  /** The controlled open state of the hover card. Can be binded as `v-model:open`. */
5046
5042
  open?: boolean;
5047
5043
  /** The duration from when the mouse enters the trigger until the hover card opens. */
@@ -5079,8 +5075,6 @@ export declare const injectCollapsibleRootContext: <T extends CollapsibleRootCon
5079
5075
 
5080
5076
  export declare const injectComboboxGroupContext: <T extends ComboboxGroupContext | null | undefined = ComboboxGroupContext>(fallback?: T | undefined) => T extends null ? ComboboxGroupContext | null : ComboboxGroupContext;
5081
5077
 
5082
- export declare const injectComboboxItemContext: <T extends ComboboxItemContext | null | undefined = ComboboxItemContext>(fallback?: T | undefined) => T extends null ? ComboboxItemContext | null : ComboboxItemContext;
5083
-
5084
5078
  export declare const injectComboboxRootContext: <T extends ComboboxRootContext<AcceptableValue> | null | undefined = ComboboxRootContext<AcceptableValue>>(fallback?: T | undefined) => T extends null ? ComboboxRootContext<AcceptableValue> | null : ComboboxRootContext<AcceptableValue>;
5085
5079
 
5086
5080
  export declare const injectConfigProviderContext: <T extends ConfigProviderContextValue | null | undefined = ConfigProviderContextValue>(fallback?: T | undefined) => T extends null ? ConfigProviderContextValue | null : ConfigProviderContextValue;
@@ -5105,7 +5099,9 @@ export declare const injectHoverCardRootContext: <T extends HoverCardRootContext
5105
5099
 
5106
5100
  export declare const injectListboxGroupContext: <T extends ListboxGroupContext | null | undefined = ListboxGroupContext>(fallback?: T | undefined) => T extends null ? ListboxGroupContext | null : ListboxGroupContext;
5107
5101
 
5108
- export declare const injectListboxItemContext: <T extends ListboxItemContext | null | undefined = ListboxItemContext>(fallback?: T | undefined) => T extends null ? ListboxItemContext | null : ListboxItemContext;
5102
+ declare const injectListboxItemContext: <T extends ListboxItemContext | null | undefined = ListboxItemContext>(fallback?: T | undefined) => T extends null ? ListboxItemContext | null : ListboxItemContext;
5103
+ export { injectListboxItemContext as injectComboboxItemContext }
5104
+ export { injectListboxItemContext }
5109
5105
 
5110
5106
  export declare const injectListboxRootContext: <T extends ListboxRootContext<AcceptableValue> | null | undefined = ListboxRootContext<AcceptableValue>>(fallback?: T | undefined) => T extends null ? ListboxRootContext<AcceptableValue> | null : ListboxRootContext<AcceptableValue>;
5111
5107
 
@@ -8197,6 +8193,7 @@ onValueCommit?: ((payload: number[]) => any) | undefined;
8197
8193
  }>, {
8198
8194
  defaultValue: number[];
8199
8195
  disabled: boolean;
8196
+ as: AsTag | Component;
8200
8197
  orientation: DataOrientation;
8201
8198
  step: number;
8202
8199
  min: number;
@@ -8271,7 +8268,9 @@ export declare interface SliderRootProps extends PrimitiveProps, FormFieldProps
8271
8268
  thumbAlignment?: ThumbAlignment;
8272
8269
  }
8273
8270
 
8274
- export declare const SliderThumb: __VLS_WithTemplateSlots_236<DefineComponent<SliderThumbProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<SliderThumbProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>, {
8271
+ export declare const SliderThumb: __VLS_WithTemplateSlots_236<DefineComponent<SliderThumbProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<SliderThumbProps> & Readonly<{}>, {
8272
+ as: AsTag | Component;
8273
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>, {
8275
8274
  default?(_: {}): any;
8276
8275
  }>;
8277
8276
 
package/dist/index.js CHANGED
@@ -44,7 +44,7 @@ export { _ as ComboboxLabel } from './Combobox/ComboboxLabel.js';
44
44
  export { _ as ComboboxContent } from './Combobox/ComboboxContent.js';
45
45
  export { _ as ComboboxViewport } from './Combobox/ComboboxViewport.js';
46
46
  export { _ as ComboboxVirtualizer } from './Combobox/ComboboxVirtualizer.js';
47
- export { _ as ComboboxItem, i as injectComboboxItemContext } from './Combobox/ComboboxItem.js';
47
+ export { _ as ComboboxItem } from './Combobox/ComboboxItem.js';
48
48
  export { _ as ComboboxItemIndicator } from './Combobox/ComboboxItemIndicator.js';
49
49
  export { _ as ComboboxSeparator } from './Combobox/ComboboxSeparator.js';
50
50
  export { _ as ComboboxArrow } from './Combobox/ComboboxArrow.js';
@@ -278,6 +278,7 @@ export { c as createContext } from './shared/createContext.js';
278
278
  export { _ as CollapsibleRoot, i as injectCollapsibleRootContext } from './Collapsible/CollapsibleRoot.js';
279
279
  export { _ as CollapsibleTrigger } from './Collapsible/CollapsibleTrigger.js';
280
280
  export { _ as CollapsibleContent } from './Collapsible/CollapsibleContent.js';
281
+ export { _ as ListboxItem, i as injectComboboxItemContext, i as injectListboxItemContext } from './Listbox/ListboxItem.js';
281
282
  export { _ as DateRangeFieldRoot, i as injectDateRangeFieldRootContext } from './DateRangeField/DateRangeFieldRoot.js';
282
283
  export { _ as DateRangeFieldInput } from './DateRangeField/DateRangeFieldInput.js';
283
284
  export { _ as DialogRoot, i as injectDialogRootContext } from './Dialog/DialogRoot.js';
@@ -290,7 +291,6 @@ export { _ as DialogDescription } from './Dialog/DialogDescription.js';
290
291
  export { _ as ListboxRoot, i as injectListboxRootContext } from './Listbox/ListboxRoot.js';
291
292
  export { _ as ListboxContent } from './Listbox/ListboxContent.js';
292
293
  export { _ as ListboxFilter } from './Listbox/ListboxFilter.js';
293
- export { _ as ListboxItem, i as injectListboxItemContext } from './Listbox/ListboxItem.js';
294
294
  export { _ as ListboxItemIndicator } from './Listbox/ListboxItemIndicator.js';
295
295
  export { _ as ListboxVirtualizer } from './Listbox/ListboxVirtualizer.js';
296
296
  export { _ as ListboxGroup, i as injectListboxGroupContext } from './Listbox/ListboxGroup.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "reka-ui",
3
3
  "type": "module",
4
- "version": "2.1.0",
4
+ "version": "2.1.1",
5
5
  "description": "Vue port for Radix UI Primitives.",
6
6
  "author": "UnoVue Contributors (https://github.com/unovue)",
7
7
  "license": "MIT",
@@ -101,7 +101,7 @@
101
101
  "@vueuse/shared": "^12.5.0",
102
102
  "aria-hidden": "^1.2.4",
103
103
  "defu": "^6.1.4",
104
- "ohash": "^1.1.4"
104
+ "ohash": "^2.0.11"
105
105
  },
106
106
  "devDependencies": {
107
107
  "@iconify/vue": "^4.3.0",