ropav 0.1.6 → 0.1.8

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 (310) hide show
  1. package/README.md +7 -1
  2. package/dist/accordion.css +17 -17
  3. package/dist/accordion.js +123 -155
  4. package/dist/alert.css +18 -18
  5. package/dist/alert.js +10 -11
  6. package/dist/ancestry.js +136 -0
  7. package/dist/aria.js +14 -0
  8. package/dist/aspect-ratio.js +1 -1
  9. package/dist/attributes.js +9 -0
  10. package/dist/attributes2.js +29 -0
  11. package/dist/avatar.css +19 -19
  12. package/dist/avatar.js +9 -17
  13. package/dist/badge.css +16 -16
  14. package/dist/badge.js +5 -5
  15. package/dist/button-group.js +1 -1
  16. package/dist/button-link.js +4 -3
  17. package/dist/button.js +4 -3
  18. package/dist/button.scss_vue_type_style_index_0_src_true_lang.js +1 -1
  19. package/dist/calendar.css +173 -0
  20. package/dist/calendar.js +714 -0
  21. package/dist/calendar2.js +37 -0
  22. package/dist/card.js +1 -1
  23. package/dist/checkbox.css +32 -32
  24. package/dist/checkbox.js +22 -28
  25. package/dist/chevron-left.js +12 -0
  26. package/dist/collapse.css +6 -6
  27. package/dist/collapse.js +7 -6
  28. package/dist/collectionNavigation.js +2 -99
  29. package/dist/color-input.css +19 -19
  30. package/dist/color-input.js +14 -13
  31. package/dist/color-picker.css +40 -40
  32. package/dist/color-picker.js +247 -276
  33. package/dist/color-picker2.js +1 -9
  34. package/dist/color-swatch.css +4 -4
  35. package/dist/color-swatch.js +6 -8
  36. package/dist/color.js +5 -10
  37. package/dist/combobox.css +251 -0
  38. package/dist/combobox.js +410 -0
  39. package/dist/componentColors.js +125 -84
  40. package/dist/componentRef.js +26 -0
  41. package/dist/components/accordion/accordionContext.d.ts +3 -0
  42. package/dist/components/accordion/accordionModel.d.ts +14 -0
  43. package/dist/components/accordion/index.d.ts +2 -1
  44. package/dist/components/accordion/index.js +1 -1
  45. package/dist/components/accordion/types.d.ts +1 -2
  46. package/dist/components/accordion/useAccordion.d.ts +2 -2
  47. package/dist/components/accordion/useAccordionItem.d.ts +2 -0
  48. package/dist/components/calendar/calendar.d.ts +30 -0
  49. package/dist/components/calendar/calendarBehavior.d.ts +49 -0
  50. package/dist/components/calendar/index.d.ts +3 -0
  51. package/dist/components/calendar/index.js +3 -0
  52. package/dist/components/calendar/types.d.ts +53 -0
  53. package/dist/components/calendar/useCalendar.d.ts +24 -0
  54. package/dist/components/checkbox/useCheckbox.d.ts +1 -2
  55. package/dist/components/color-picker/index.js +2 -2
  56. package/dist/components/color-picker/types.d.ts +2 -2
  57. package/dist/components/color-picker/useColorPickerDrag.d.ts +1 -1
  58. package/dist/components/color-picker/useColorPickerSaturation.d.ts +22 -0
  59. package/dist/components/color-picker/useColorPickerSlider.d.ts +20 -0
  60. package/dist/components/color-picker/useColorPickerValue.d.ts +1 -1
  61. package/dist/components/combobox/combobox.d.ts +29 -0
  62. package/dist/components/combobox/comboboxModel.d.ts +4 -0
  63. package/dist/components/combobox/index.d.ts +3 -0
  64. package/dist/components/combobox/index.js +2 -0
  65. package/dist/components/combobox/types.d.ts +43 -0
  66. package/dist/components/combobox/useCombobox.d.ts +45 -0
  67. package/dist/components/date-picker/date-picker.d.ts +33 -0
  68. package/dist/components/date-picker/datePickerModel.d.ts +10 -0
  69. package/dist/components/date-picker/index.d.ts +4 -0
  70. package/dist/components/date-picker/index.js +2 -0
  71. package/dist/components/date-picker/types.d.ts +57 -0
  72. package/dist/components/date-picker/useDatePicker.d.ts +29 -0
  73. package/dist/components/date-picker/useDatePickerValueState.d.ts +21 -0
  74. package/dist/components/dialog/{dialog-core.d.ts → dialogContext.d.ts} +1 -5
  75. package/dist/components/dialog/useDialogContentInteractions.d.ts +18 -0
  76. package/dist/components/dialog/useDialogRootState.d.ts +19 -0
  77. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  78. package/dist/components/dropdown-menu/dropdown-menu-item-row.d.ts +1 -1
  79. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +1 -1
  80. package/dist/components/dropdown-menu/dropdown-menu-model.d.ts +8 -0
  81. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +2 -2
  82. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  83. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +1 -1
  84. package/dist/components/dropdown-menu/dropdown-menu-sub.d.ts +1 -1
  85. package/dist/components/dropdown-menu/dropdown-menu.d.ts +2 -2
  86. package/dist/components/dropdown-menu/{dropdown-menu-primitive-core.d.ts → dropdownMenuContext.d.ts} +17 -30
  87. package/dist/components/dropdown-menu/dropdownMenuDataModel.d.ts +20 -0
  88. package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -0
  89. package/dist/components/dropdown-menu/dropdownMenuInteractionNavigation.d.ts +24 -0
  90. package/dist/components/dropdown-menu/dropdownMenuInteractionRegistry.d.ts +42 -0
  91. package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +114 -0
  92. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -11
  93. package/dist/components/dropdown-menu/useDropdownMenuContextTrigger.d.ts +9 -0
  94. package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +35 -0
  95. package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +24 -0
  96. package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +6 -5
  97. package/dist/components/dropdown-menu/useDropdownMenuInteractionDismissal.d.ts +17 -0
  98. package/dist/components/dropdown-menu/useDropdownMenuInteractionKeyboard.d.ts +19 -0
  99. package/dist/components/dropdown-menu/useDropdownMenuPortalPosition.d.ts +0 -1
  100. package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +28 -0
  101. package/dist/components/dropdown-menu/useDropdownMenuPrimitiveContent.d.ts +2 -2
  102. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +1 -1
  103. package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +19 -0
  104. package/dist/components/dropzone/dropzone.d.ts +31 -0
  105. package/dist/components/dropzone/dropzoneModel.d.ts +16 -0
  106. package/dist/components/dropzone/index.d.ts +3 -0
  107. package/dist/components/dropzone/index.js +2 -0
  108. package/dist/components/dropzone/types.d.ts +56 -0
  109. package/dist/components/dropzone/useDropzone.d.ts +25 -0
  110. package/dist/components/file-input/file-input.d.ts +29 -0
  111. package/dist/components/file-input/index.d.ts +3 -0
  112. package/dist/components/file-input/index.js +2 -0
  113. package/dist/components/file-input/types.d.ts +37 -0
  114. package/dist/components/file-input/useFileInput.d.ts +15 -0
  115. package/dist/components/floating/index.js +2 -2
  116. package/dist/components/floating/useFloatingPosition.d.ts +1 -14
  117. package/dist/components/floating/useFloatingTargetLifecycle.d.ts +32 -0
  118. package/dist/components/floating/useHoverDisclosure.d.ts +10 -0
  119. package/dist/components/hover-card/hover-card.d.ts +25 -0
  120. package/dist/components/hover-card/index.d.ts +3 -0
  121. package/dist/components/hover-card/index.js +2 -0
  122. package/dist/components/hover-card/types.d.ts +45 -0
  123. package/dist/components/hover-card/useHoverCard.d.ts +22 -0
  124. package/dist/components/hover-card/useHoverCardDisclosure.d.ts +19 -0
  125. package/dist/components/multi-select/index.d.ts +3 -0
  126. package/dist/components/multi-select/index.js +2 -0
  127. package/dist/components/multi-select/multi-select.d.ts +30 -0
  128. package/dist/components/multi-select/multiSelectModel.d.ts +3 -0
  129. package/dist/components/multi-select/types.d.ts +49 -0
  130. package/dist/components/multi-select/useMultiSelect.d.ts +46 -0
  131. package/dist/components/number-input/numberInputModel.d.ts +15 -0
  132. package/dist/components/number-input/useNumberInput.d.ts +3 -19
  133. package/dist/components/pagination/index.d.ts +1 -1
  134. package/dist/components/pagination/index.js +1 -1
  135. package/dist/components/pagination/paginationModel.d.ts +4 -0
  136. package/dist/components/pagination/types.d.ts +15 -0
  137. package/dist/components/pagination/usePagination.d.ts +3 -19
  138. package/dist/components/popover/usePopoverBindings.d.ts +13 -0
  139. package/dist/components/progress/progressModel.d.ts +8 -0
  140. package/dist/components/progress/useProgress.d.ts +0 -6
  141. package/dist/components/radio/useRadio.d.ts +1 -2
  142. package/dist/components/scroll-area/scroll-area.d.ts +1 -1
  143. package/dist/components/scroll-area/scrollAreaModel.d.ts +64 -0
  144. package/dist/components/scroll-area/useScrollArea.d.ts +70 -53
  145. package/dist/components/scroll-area/{useScrollAreaPresentation.d.ts → useScrollAreaAttributes.d.ts} +37 -17
  146. package/dist/components/scroll-area/useScrollAreaDerivedState.d.ts +8 -0
  147. package/dist/components/scroll-area/useScrollAreaMeasurement.d.ts +35 -0
  148. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +11 -9
  149. package/dist/components/scroll-area/useScrollAreaVisibility.d.ts +15 -20
  150. package/dist/components/segmented-control/index.d.ts +3 -0
  151. package/dist/components/segmented-control/index.js +2 -0
  152. package/dist/components/segmented-control/segmented-control.d.ts +26 -0
  153. package/dist/components/segmented-control/types.d.ts +47 -0
  154. package/dist/components/segmented-control/useSegmentedControl.d.ts +15 -0
  155. package/dist/components/select/useSelect.d.ts +31 -19
  156. package/dist/components/slider/rangeSliderModel.d.ts +41 -0
  157. package/dist/components/slider/{sliderCore.d.ts → sliderModel.d.ts} +0 -1
  158. package/dist/components/slider/useRangeSlider.d.ts +9 -17
  159. package/dist/components/slider/useRangeSliderPointer.d.ts +1 -1
  160. package/dist/components/slider/useRangeSliderValueState.d.ts +40 -0
  161. package/dist/components/slider/useSlider.d.ts +7 -13
  162. package/dist/components/slider/useSliderPointerPreview.d.ts +22 -0
  163. package/dist/components/slider/useSliderTooltipState.d.ts +40 -0
  164. package/dist/components/slider/useSliderValueState.d.ts +33 -0
  165. package/dist/components/tags-input/index.d.ts +3 -0
  166. package/dist/components/tags-input/index.js +2 -0
  167. package/dist/components/tags-input/tags-input.d.ts +27 -0
  168. package/dist/components/tags-input/tagsInputModel.d.ts +12 -0
  169. package/dist/components/tags-input/types.d.ts +37 -0
  170. package/dist/components/tags-input/useTagsInput.d.ts +23 -0
  171. package/dist/components/teleport-provider/index.js +1 -1
  172. package/dist/components/teleport-provider/useTeleportTarget.d.ts +1 -2
  173. package/dist/components/toast/useToastLifecycle.d.ts +19 -0
  174. package/dist/components/tooltip/useTooltip.d.ts +1 -2
  175. package/dist/components/tooltip/useTooltipTargetBindings.d.ts +12 -0
  176. package/dist/css.js +12 -0
  177. package/dist/date-picker.css +49 -0
  178. package/dist/date-picker.js +809 -0
  179. package/dist/dialog.js +215 -218
  180. package/dist/direction.js +6 -0
  181. package/dist/dropdown-menu.css +21 -3
  182. package/dist/dropdown-menu.js +1626 -1185
  183. package/dist/dropzone.css +135 -0
  184. package/dist/dropzone.js +431 -0
  185. package/dist/events.js +59 -0
  186. package/dist/field.css +8 -8
  187. package/dist/field.js +13 -25
  188. package/dist/file-input.css +135 -0
  189. package/dist/file-input.js +198 -0
  190. package/dist/floatingOffset.js +11 -0
  191. package/dist/focus-trap.js +7 -5
  192. package/dist/focusNavigation.js +37 -0
  193. package/dist/hover-card.css +80 -0
  194. package/dist/hover-card.js +402 -0
  195. package/dist/icon-button.css +8 -8
  196. package/dist/icon-button.js +7 -6
  197. package/dist/index.d.ts +9 -0
  198. package/dist/index.js +20 -9
  199. package/dist/input.css +24 -24
  200. package/dist/input.js +19 -31
  201. package/dist/interactive.js +18 -0
  202. package/dist/internal/composables/useOverlayLayer.d.ts +12 -0
  203. package/dist/modal.js +2 -2
  204. package/dist/multi-select.css +316 -0
  205. package/dist/multi-select.js +481 -0
  206. package/dist/nativeChoice.js +169 -0
  207. package/dist/number-input.css +18 -18
  208. package/dist/number-input.js +44 -44
  209. package/dist/number.js +22 -0
  210. package/dist/overlay.js +3 -2
  211. package/dist/pagination.css +28 -28
  212. package/dist/pagination.js +66 -73
  213. package/dist/pointerSession.js +130 -0
  214. package/dist/popover.css +55 -37
  215. package/dist/popover.js +75 -101
  216. package/dist/progress.js +10 -13
  217. package/dist/query.js +40 -0
  218. package/dist/radio.css +18 -18
  219. package/dist/radio.js +30 -36
  220. package/dist/rafScheduler.js +34 -0
  221. package/dist/scroll-area.css +28 -28
  222. package/dist/scroll-area.js +540 -554
  223. package/dist/segmented-control.css +176 -0
  224. package/dist/segmented-control.js +382 -0
  225. package/dist/select.css +50 -48
  226. package/dist/select.js +131 -289
  227. package/dist/slider.css +191 -191
  228. package/dist/slider.js +720 -706
  229. package/dist/styles-api.d.ts +0 -1
  230. package/dist/styles-api.js +1 -4
  231. package/dist/switch.css +17 -17
  232. package/dist/switch.js +14 -15
  233. package/dist/tabs.css +43 -43
  234. package/dist/tabs.js +29 -56
  235. package/dist/tags-input.css +197 -0
  236. package/dist/tags-input.js +380 -0
  237. package/dist/text.js +17 -0
  238. package/dist/textarea.css +26 -26
  239. package/dist/textarea.js +21 -32
  240. package/dist/toast.css +26 -26
  241. package/dist/toast.js +141 -118
  242. package/dist/tooltip.css +12 -12
  243. package/dist/tooltip.js +64 -63
  244. package/dist/useCollapse.js +8 -11
  245. package/dist/useControlState.js +3 -6
  246. package/dist/useEditableOptionList.js +216 -0
  247. package/dist/useFlatOptionCollection.js +134 -0
  248. package/dist/useFloatingPosition.js +14 -40
  249. package/dist/useFloatingTargetLifecycle.js +127 -0
  250. package/dist/useFormControl.js +1 -0
  251. package/dist/useHoverDisclosure.js +561 -0
  252. package/dist/useNativeChoiceTransaction.js +46 -0
  253. package/dist/useNativeFileSelection.js +86 -0
  254. package/dist/useOverlayZIndex.js +246 -19
  255. package/dist/useTeleportTarget.js +3 -14
  256. package/dist/useTypeahead.js +94 -0
  257. package/dist/utils/aria.d.ts +3 -0
  258. package/dist/utils/attributes.d.ts +2 -0
  259. package/dist/utils/bem.d.ts +3 -0
  260. package/dist/utils/collectionNavigation.d.ts +2 -0
  261. package/dist/utils/color.d.ts +7 -0
  262. package/dist/{components/color-picker/color-picker-utils.d.ts → utils/colorPicker.d.ts} +5 -4
  263. package/dist/utils/componentColors.d.ts +7 -0
  264. package/dist/utils/css.d.ts +3 -0
  265. package/dist/utils/date.d.ts +13 -0
  266. package/dist/utils/dateAvailability.d.ts +7 -0
  267. package/dist/utils/dom/ancestry.d.ts +8 -0
  268. package/dist/utils/dom/attributes.d.ts +16 -0
  269. package/dist/utils/dom/componentRef.d.ts +4 -0
  270. package/dist/utils/dom/direction.d.ts +2 -0
  271. package/dist/utils/dom/events.d.ts +5 -0
  272. package/dist/utils/dom/files.d.ts +3 -0
  273. package/dist/utils/dom/focusNavigation.d.ts +7 -0
  274. package/dist/utils/dom/interactive.d.ts +2 -0
  275. package/dist/utils/dom/nativeChoice.d.ts +17 -0
  276. package/dist/utils/dom/pointerSession.d.ts +20 -0
  277. package/dist/utils/dom/query.d.ts +4 -0
  278. package/dist/utils/dom/scroll.d.ts +24 -0
  279. package/dist/utils/floatingOffset.d.ts +10 -0
  280. package/dist/utils/geometry.d.ts +14 -0
  281. package/dist/utils/indexPath.d.ts +6 -0
  282. package/dist/utils/number.d.ts +4 -0
  283. package/dist/utils/optionFilter.d.ts +5 -0
  284. package/dist/utils/rafScheduler.d.ts +4 -0
  285. package/dist/utils/text.d.ts +2 -0
  286. package/docs/code-architecture.md +118 -0
  287. package/docs/public-floating-api.md +13 -9
  288. package/docs/public-styles-api.md +25 -12
  289. package/package.json +51 -14
  290. package/src/styles/_mixins.scss +26 -0
  291. package/src/styles/styles-manifest.json +1 -2
  292. package/dist/components/dropdown-menu/dropdown-menu-outside.d.ts +0 -3
  293. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -21
  294. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +0 -36
  295. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +0 -29
  296. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +0 -52
  297. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +0 -17
  298. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +0 -18
  299. package/dist/components/scroll-area/scrollAreaCore.d.ts +0 -30
  300. package/dist/components/scroll-area/useScrollAreaControls.d.ts +0 -25
  301. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +0 -38
  302. package/dist/components/select/useSelectNativeControl.d.ts +0 -9
  303. package/dist/components/select/useSelectNativeValue.d.ts +0 -9
  304. package/dist/floating.js +0 -415
  305. /package/dist/components/alert/{useAlertColor.d.ts → alertColor.d.ts} +0 -0
  306. /package/dist/components/avatar/{useAvatarColor.d.ts → avatarColor.d.ts} +0 -0
  307. /package/dist/components/badge/{useBadgeColor.d.ts → badgeColor.d.ts} +0 -0
  308. /package/dist/components/button/{useButtonColor.d.ts → buttonColor.d.ts} +0 -0
  309. /package/dist/components/color-swatch/{useColorSwatchColor.d.ts → colorSwatchColor.d.ts} +0 -0
  310. /package/dist/components/toast/{useToastColor.d.ts → toastColor.d.ts} +0 -0
@@ -1,4 +1,6 @@
1
- import { computed, isRef, nextTick, onBeforeUnmount, onMounted, readonly, ref, shallowRef, toValue, watch } from "vue";
1
+ import { t as isElement } from "./query.js";
2
+ import { n as observeComposedAncestry } from "./ancestry.js";
3
+ import { nextTick, onBeforeUnmount, readonly, ref, toValue, watch } from "vue";
2
4
  import { arrow, autoUpdate, computePosition, flip, offset, shift } from "@floating-ui/dom";
3
5
  //#region src/components/floating/useFloatingPosition.ts
4
6
  var DEFAULT_ARROW_PADDING = 4;
@@ -6,44 +8,9 @@ var DEFAULT_COLLISION_PADDING = 8;
6
8
  var DEFAULT_OFFSET = 8;
7
9
  var DEFAULT_PLACEMENT = "bottom";
8
10
  var DEFAULT_STRATEGY = "absolute";
9
- function readFloatingTarget(target) {
10
- return isRef(target) ? target.value : target;
11
- }
12
- function isVirtualReference(value) {
13
- if (value == null || typeof value !== "object") return false;
14
- return "getBoundingClientRect" in value && typeof value.getBoundingClientRect === "function";
15
- }
16
- function isElementReference(value) {
17
- return typeof Element !== "undefined" && value instanceof Element;
18
- }
19
- function resolveFloatingTarget(target) {
20
- if (!target) return null;
21
- if (typeof target !== "string") return isVirtualReference(target) ? target : null;
22
- if (typeof document === "undefined") return null;
23
- try {
24
- return document.querySelector(target);
25
- } catch {
26
- return null;
27
- }
28
- }
29
- function useFloatingTarget(getTarget, fallback) {
30
- const resolvedTarget = shallowRef(null);
31
- const isExplicitTarget = computed(() => {
32
- const target = readFloatingTarget(getTarget());
33
- return target != null && target !== "";
34
- });
35
- const reference = computed(() => isExplicitTarget.value ? resolvedTarget.value : fallback.value);
36
- function syncTarget() {
37
- resolvedTarget.value = isExplicitTarget.value ? resolveFloatingTarget(readFloatingTarget(getTarget())) : null;
38
- }
39
- watch(() => readFloatingTarget(getTarget()), syncTarget, { flush: "post" });
40
- onMounted(syncTarget);
41
- return {
42
- isExplicitTarget,
43
- reference,
44
- resolvedTarget,
45
- syncTarget
46
- };
11
+ function getReferenceElement(reference) {
12
+ if (isElement(reference)) return reference;
13
+ return reference && isElement(reference.contextElement) ? reference.contextElement : null;
47
14
  }
48
15
  function useFloatingPosition(options) {
49
16
  const actualPlacement = ref(getPlacement());
@@ -51,6 +18,7 @@ function useFloatingPosition(options) {
51
18
  const floatingStyle = ref(getHiddenStyle());
52
19
  const arrowStyle = ref();
53
20
  let cleanup;
21
+ let cleanupPositioningAncestry;
54
22
  let generation = 0;
55
23
  let request = 0;
56
24
  function getReference() {
@@ -106,9 +74,14 @@ function useFloatingPosition(options) {
106
74
  function stop() {
107
75
  cleanup?.();
108
76
  cleanup = void 0;
77
+ cleanupPositioningAncestry?.();
78
+ cleanupPositioningAncestry = void 0;
109
79
  generation += 1;
110
80
  request += 1;
111
81
  }
82
+ function observePositioningAncestry() {
83
+ cleanupPositioningAncestry = observeComposedAncestry(() => [getReferenceElement(getReference()), getFloating()], start, { deferWhileDisconnected: true });
84
+ }
112
85
  function getMiddleware() {
113
86
  const middleware = [offset(getOffset())];
114
87
  const padding = getCollisionPadding();
@@ -162,6 +135,7 @@ function useFloatingPosition(options) {
162
135
  const updatePosition = () => void update();
163
136
  const animationFrame = getAutoUpdateAnimationFrame();
164
137
  cleanup = animationFrame == null ? autoUpdate(reference, floating, updatePosition) : autoUpdate(reference, floating, updatePosition, { animationFrame });
138
+ observePositioningAncestry();
165
139
  });
166
140
  }
167
141
  watch([
@@ -192,4 +166,4 @@ function useFloatingPosition(options) {
192
166
  };
193
167
  }
194
168
  //#endregion
195
- export { useFloatingPosition as n, useFloatingTarget as r, isElementReference as t };
169
+ export { useFloatingPosition as t };
@@ -0,0 +1,127 @@
1
+ import { i as querySelectorSafe, t as isElement } from "./query.js";
2
+ import { a as snapshotAttributes, i as restoreAttributes } from "./attributes2.js";
3
+ import { computed, isRef, onBeforeUnmount, onMounted, shallowRef, watch, watchEffect } from "vue";
4
+ //#region src/components/floating/useFloatingTargetLifecycle.ts
5
+ var SELECTOR_OBSERVER_OPTIONS = {
6
+ attributes: true,
7
+ childList: true,
8
+ subtree: true
9
+ };
10
+ function readTarget(target) {
11
+ return isRef(target) ? target.value : target;
12
+ }
13
+ function isVirtualReference(value) {
14
+ if (value == null || typeof value !== "object") return false;
15
+ return "getBoundingClientRect" in value && typeof value.getBoundingClientRect === "function";
16
+ }
17
+ function resolveTarget(target) {
18
+ if (!target) return null;
19
+ if (typeof target !== "string") return isVirtualReference(target) ? target : null;
20
+ return querySelectorSafe(target);
21
+ }
22
+ function getMutationObserverConstructor() {
23
+ if (typeof document === "undefined") return void 0;
24
+ return document.defaultView?.MutationObserver ?? globalThis.MutationObserver;
25
+ }
26
+ function useFloatingTargetLifecycle({ target, fallback, getTargetElement }) {
27
+ const resolvedTarget = shallowRef(null);
28
+ const isExplicitTarget = computed(() => {
29
+ const currentTarget = readTarget(target());
30
+ return currentTarget != null && currentTarget !== "";
31
+ });
32
+ const reference = computed(() => isExplicitTarget.value ? resolvedTarget.value : fallback.value);
33
+ const targetElement = computed(() => {
34
+ const currentTarget = resolvedTarget.value;
35
+ if (!currentTarget) return null;
36
+ if (getTargetElement) return getTargetElement(currentTarget);
37
+ return isElement(currentTarget) ? currentTarget : null;
38
+ });
39
+ let selectorObserver;
40
+ let selectorObserverActive = false;
41
+ let ownedAttributeMutationDepth = 0;
42
+ let selectorSyncScheduled = false;
43
+ function syncTarget() {
44
+ resolvedTarget.value = isExplicitTarget.value ? resolveTarget(readTarget(target())) : null;
45
+ }
46
+ function stopObservingSelector() {
47
+ selectorObserverActive = false;
48
+ selectorObserver?.disconnect();
49
+ selectorObserver = void 0;
50
+ }
51
+ function scheduleSelectorSync() {
52
+ if (selectorSyncScheduled) return;
53
+ selectorSyncScheduled = true;
54
+ queueMicrotask(() => {
55
+ selectorSyncScheduled = false;
56
+ if (selectorObserverActive) syncTarget();
57
+ });
58
+ }
59
+ function mutateWithoutSelectorObservation(mutate) {
60
+ const observer = selectorObserver;
61
+ const shouldPause = observer !== void 0 && selectorObserverActive && ownedAttributeMutationDepth === 0;
62
+ ownedAttributeMutationDepth += 1;
63
+ if (shouldPause) {
64
+ if (observer.takeRecords().length > 0) scheduleSelectorSync();
65
+ observer.disconnect();
66
+ }
67
+ try {
68
+ mutate();
69
+ } finally {
70
+ ownedAttributeMutationDepth -= 1;
71
+ if (shouldPause && selectorObserverActive && selectorObserver === observer && typeof document !== "undefined") observer.observe(document, SELECTOR_OBSERVER_OPTIONS);
72
+ }
73
+ }
74
+ function observeSelector() {
75
+ stopObservingSelector();
76
+ const currentTarget = readTarget(target());
77
+ const MutationObserverConstructor = getMutationObserverConstructor();
78
+ if (typeof currentTarget !== "string" || !MutationObserverConstructor || typeof document === "undefined") return;
79
+ const observer = new MutationObserverConstructor(syncTarget);
80
+ selectorObserver = observer;
81
+ selectorObserverActive = true;
82
+ observer.observe(document, SELECTOR_OBSERVER_OPTIONS);
83
+ }
84
+ function syncLifecycle() {
85
+ syncTarget();
86
+ observeSelector();
87
+ }
88
+ function bindTarget(adapter) {
89
+ watchEffect((onCleanup) => {
90
+ const currentTarget = targetElement.value;
91
+ if (!currentTarget) return;
92
+ const disconnect = adapter.connect?.(currentTarget);
93
+ const listeners = adapter.listeners ?? [];
94
+ for (const [type, listener, options] of listeners) currentTarget.addEventListener(type, listener, options);
95
+ onCleanup(() => {
96
+ for (const [type, listener, options] of listeners) currentTarget.removeEventListener(type, listener, options);
97
+ disconnect?.();
98
+ });
99
+ }, { flush: "sync" });
100
+ const attributeAdapter = adapter.attributes;
101
+ if (!attributeAdapter) return;
102
+ watchEffect((onCleanup) => {
103
+ const currentTarget = targetElement.value;
104
+ if (!currentTarget || attributeAdapter.isActive?.() === false) return;
105
+ const snapshot = snapshotAttributes(currentTarget, attributeAdapter.names);
106
+ mutateWithoutSelectorObservation(() => {
107
+ attributeAdapter.apply(currentTarget, snapshot);
108
+ });
109
+ onCleanup(() => {
110
+ mutateWithoutSelectorObservation(() => {
111
+ restoreAttributes(currentTarget, snapshot);
112
+ });
113
+ });
114
+ }, { flush: "sync" });
115
+ }
116
+ watch(() => readTarget(target()), syncLifecycle, { flush: "post" });
117
+ onMounted(syncLifecycle);
118
+ onBeforeUnmount(stopObservingSelector);
119
+ return {
120
+ bindTarget,
121
+ isExplicitTarget,
122
+ reference,
123
+ targetElement
124
+ };
125
+ }
126
+ //#endregion
127
+ export { useFloatingTargetLifecycle as t };
@@ -37,6 +37,7 @@ function useFormControl(options) {
37
37
  const elements = getElements(options).filter((element) => element.form === form);
38
38
  if (elements.length === 0) return;
39
39
  queueMicrotask(() => {
40
+ if (event.defaultPrevented) return;
40
41
  if (options.isControlled()) options.syncControlledValue(elements);
41
42
  else options.readResetValue(elements);
42
43
  });