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
package/dist/field.js CHANGED
@@ -1,21 +1,11 @@
1
1
  import './field.css';
2
- import { n as useStylesApi, t as presence } from "./styles-api.js";
2
+ import { t as useStylesApi } from "./styles-api.js";
3
+ import { n as toPresenceAttribute } from "./attributes.js";
3
4
  import { t as bem } from "./bem.js";
4
5
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
- import { child, computed, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, unref, useId, useSlots } from "vue";
6
+ import { t as isInteractiveElement } from "./interactive.js";
7
+ import { child, computed, createIf, createSlot, defineVaporComponent, on, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, unref, useId, useSlots } from "vue";
6
8
  //#region src/components/field/useField.ts
7
- var INTERACTIVE_LABEL_SELECTOR = [
8
- "button",
9
- "a[href]",
10
- "input",
11
- "select",
12
- "textarea",
13
- "[contenteditable=\"true\"]",
14
- "[tabindex]:not([tabindex=\"-1\"])"
15
- ].join(",");
16
- function isInteractiveLabelTarget(target) {
17
- return Boolean(target.closest(INTERACTIVE_LABEL_SELECTOR));
18
- }
19
9
  function useField(props) {
20
10
  const slots = useSlots();
21
11
  const generatedId = useId();
@@ -43,8 +33,7 @@ function useField(props) {
43
33
  }));
44
34
  function focusControl(e) {
45
35
  if (props.disabled) return;
46
- const target = e.target;
47
- if (target instanceof Element && isInteractiveLabelTarget(target)) return;
36
+ if (isInteractiveElement(e.target)) return;
48
37
  const label = e.currentTarget;
49
38
  const control = label instanceof HTMLLabelElement ? label.control ?? label.ownerDocument.getElementById(controlId.value) : void 0;
50
39
  if (control instanceof HTMLElement) control.focus();
@@ -67,11 +56,10 @@ function useField(props) {
67
56
  //#endregion
68
57
  //#region src/components/field/field.vue?vue&type=script&setup=true&vapor=true&lang.ts
69
58
  var t0 = template(" ");
70
- var t1 = template("<span data-v-cbd66c2e>*");
71
- var t2 = template("<label data-v-cbd66c2e>");
72
- var t3 = template("<p data-v-cbd66c2e>");
73
- var t4 = template("<div data-v-cbd66c2e><div data-v-cbd66c2e></div>", 1);
74
- delegateEvents("mousedown");
59
+ var t1 = template("<span data-v-babf7642>*");
60
+ var t2 = template("<label data-v-babf7642>");
61
+ var t3 = template("<p data-v-babf7642>");
62
+ var t4 = template("<div data-v-babf7642><div data-v-babf7642></div>", 1);
75
63
  //#endregion
76
64
  //#region src/components/field/field.vue
77
65
  var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -103,8 +91,8 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
103
91
  const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
104
92
  const rootAttrs = computed(() => getRootAttrs({
105
93
  class: rootClass.value,
106
- "data-disabled": presence(props.disabled),
107
- "data-invalid": presence(isInvalid.value)
94
+ "data-disabled": toPresenceAttribute(props.disabled),
95
+ "data-invalid": toPresenceAttribute(isInvalid.value)
108
96
  }));
109
97
  const n20 = t4();
110
98
  const n10 = child(n20, 1);
@@ -129,7 +117,7 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
129
117
  renderEffect(() => setDynamicProps(n7, [unref(getPartAttrs)("required", { class: "rp-field__required" }), { "aria-hidden": "true" }]));
130
118
  return n7;
131
119
  });
132
- n8.$evtmousedown = createInvoker((e) => unref(focusControl)(e));
120
+ on(n8, "mousedown", (e) => unref(focusControl)(e));
133
121
  return n8;
134
122
  });
135
123
  renderEffect(() => setDynamicProps(n10, [unref(getPartAttrs)("control", { class: "rp-field__control" })]));
@@ -161,7 +149,7 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
161
149
  });
162
150
  return n20;
163
151
  }
164
- }), [["__scopeId", "data-v-cbd66c2e"]]);
152
+ }), [["__scopeId", "data-v-babf7642"]]);
165
153
  //#endregion
166
154
  //#region src/components/field/types.ts
167
155
  var fieldParts = [
@@ -0,0 +1,135 @@
1
+ @layer ropav.components {
2
+ .rp-file-input[data-v-c2dff394] {
3
+ --_rp-file-input-height: var(--rp-size-control-md);
4
+ --_rp-file-input-padding-x: calc(var(--rp-size-control-md) / 3);
5
+ --_rp-file-input-font-size: var(--rp-font-size-md);
6
+ --_rp-file-input-radius: var(--rp-radius-sm);
7
+ --_rp-file-input-valid-border: var(--rp-color-green-outline);
8
+ --_rp-file-input-valid-ring: color-mix(in srgb, var(--rp-color-green-outline) 32%, transparent);
9
+ --_rp-file-input-invalid-border: var(--rp-color-red-outline);
10
+ --_rp-file-input-invalid-ring: color-mix(in srgb, var(--rp-color-red-outline) 32%, transparent);
11
+ position: relative;
12
+ display: inline-flex;
13
+ box-sizing: border-box;
14
+ align-items: stretch;
15
+ width: 100%;
16
+ height: var(--_rp-file-input-height);
17
+ overflow: hidden;
18
+ font-family: var(--rp-font-family);
19
+ font-size: var(--_rp-file-input-font-size);
20
+ font-weight: var(--rp-font-weight-normal);
21
+ line-height: 1;
22
+ background-color: var(--rp-color-control-bg);
23
+ border: var(--rp-border-width-thin) solid var(--rp-color-control-border);
24
+ border-radius: var(--_rp-file-input-radius);
25
+ cursor: pointer;
26
+ transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
27
+ }
28
+ .rp-file-input[data-v-c2dff394]:hover:not(.rp-file-input--disabled):not(.rp-file-input--invalid):not(.rp-file-input--valid) {
29
+ border-color: var(--rp-color-control-border-hover);
30
+ }
31
+ .rp-file-input[data-v-c2dff394]:focus-within:not(.rp-file-input--disabled):not(.rp-file-input--invalid):not(.rp-file-input--valid) {
32
+ border-color: var(--rp-color-control-border-focus);
33
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
34
+ }
35
+ .rp-file-input--size-xs[data-v-c2dff394] {
36
+ --_rp-file-input-height: var(--rp-size-control-xs);
37
+ --_rp-file-input-padding-x: calc(var(--rp-size-control-xs) / 3);
38
+ --_rp-file-input-font-size: var(--rp-font-size-xs);
39
+ }
40
+ .rp-file-input--size-sm[data-v-c2dff394] {
41
+ --_rp-file-input-height: var(--rp-size-control-sm);
42
+ --_rp-file-input-padding-x: calc(var(--rp-size-control-sm) / 3);
43
+ --_rp-file-input-font-size: var(--rp-font-size-sm);
44
+ }
45
+ .rp-file-input--size-md[data-v-c2dff394] {
46
+ --_rp-file-input-height: var(--rp-size-control-md);
47
+ --_rp-file-input-padding-x: calc(var(--rp-size-control-md) / 3);
48
+ --_rp-file-input-font-size: var(--rp-font-size-md);
49
+ }
50
+ .rp-file-input--size-lg[data-v-c2dff394] {
51
+ --_rp-file-input-height: var(--rp-size-control-lg);
52
+ --_rp-file-input-padding-x: calc(var(--rp-size-control-lg) / 3);
53
+ --_rp-file-input-font-size: var(--rp-font-size-lg);
54
+ }
55
+ .rp-file-input--size-xl[data-v-c2dff394] {
56
+ --_rp-file-input-height: var(--rp-size-control-xl);
57
+ --_rp-file-input-padding-x: calc(var(--rp-size-control-xl) / 3);
58
+ --_rp-file-input-font-size: var(--rp-font-size-xl);
59
+ }
60
+ .rp-file-input--radius-xs[data-v-c2dff394] {
61
+ --_rp-file-input-radius: var(--rp-radius-xs);
62
+ }
63
+ .rp-file-input--radius-sm[data-v-c2dff394] {
64
+ --_rp-file-input-radius: var(--rp-radius-sm);
65
+ }
66
+ .rp-file-input--radius-md[data-v-c2dff394] {
67
+ --_rp-file-input-radius: var(--rp-radius-md);
68
+ }
69
+ .rp-file-input--radius-lg[data-v-c2dff394] {
70
+ --_rp-file-input-radius: var(--rp-radius-lg);
71
+ }
72
+ .rp-file-input--radius-xl[data-v-c2dff394] {
73
+ --_rp-file-input-radius: var(--rp-radius-xl);
74
+ }
75
+ .rp-file-input--disabled[data-v-c2dff394] {
76
+ background-color: var(--rp-color-disabled);
77
+ border-color: var(--rp-color-disabled-border);
78
+ cursor: not-allowed;
79
+ }
80
+ .rp-file-input--disabled .rp-file-input__trigger[data-v-c2dff394] {
81
+ background-color: var(--rp-color-disabled);
82
+ border-right-color: var(--rp-color-disabled-border);
83
+ }
84
+ .rp-file-input--valid[data-v-c2dff394] {
85
+ border-color: var(--_rp-file-input-valid-border);
86
+ }
87
+ .rp-file-input--valid[data-v-c2dff394]:focus-within:not(.rp-file-input--disabled) {
88
+ border-color: var(--_rp-file-input-valid-border);
89
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-file-input-valid-ring);
90
+ }
91
+ .rp-file-input--invalid[data-v-c2dff394] {
92
+ border-color: var(--_rp-file-input-invalid-border);
93
+ }
94
+ .rp-file-input--invalid[data-v-c2dff394]:focus-within:not(.rp-file-input--disabled) {
95
+ border-color: var(--_rp-file-input-invalid-border);
96
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-file-input-invalid-ring);
97
+ }
98
+ .rp-file-input__native[data-v-c2dff394] {
99
+ position: absolute;
100
+ inset: 0;
101
+ z-index: 1;
102
+ width: 100%;
103
+ height: 100%;
104
+ opacity: 0;
105
+ cursor: pointer;
106
+ }
107
+ .rp-file-input__native[data-v-c2dff394]:disabled {
108
+ cursor: not-allowed;
109
+ }
110
+ .rp-file-input__trigger[data-v-c2dff394] {
111
+ display: inline-flex;
112
+ align-items: center;
113
+ flex-shrink: 0;
114
+ padding: 0 var(--_rp-file-input-padding-x);
115
+ color: var(--rp-color-control-fg);
116
+ background-color: var(--rp-color-control-readonly-bg);
117
+ border-right: var(--rp-border-width-thin) solid var(--rp-color-control-border);
118
+ font-weight: var(--rp-font-weight-medium);
119
+ white-space: nowrap;
120
+ }
121
+ .rp-file-input__value[data-v-c2dff394] {
122
+ display: flex;
123
+ align-items: center;
124
+ flex: 1;
125
+ min-width: 0;
126
+ overflow: hidden;
127
+ padding: 0 var(--_rp-file-input-padding-x);
128
+ color: var(--rp-color-control-fg);
129
+ text-overflow: ellipsis;
130
+ white-space: nowrap;
131
+ }
132
+ .rp-file-input__value--placeholder[data-v-c2dff394] {
133
+ color: var(--rp-color-control-placeholder);
134
+ }
135
+ }
@@ -0,0 +1,198 @@
1
+ import './file-input.css';
2
+ import { t as useStylesApi } from "./styles-api.js";
3
+ import { n as toPresenceAttribute } from "./attributes.js";
4
+ import { t as bem } from "./bem.js";
5
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
+ import { o as splitCompatibilityAttributes, t as composeEventHandlers } from "./attributes2.js";
7
+ import { t as useControlState } from "./useControlState.js";
8
+ import { t as useNativeFileSelection } from "./useNativeFileSelection.js";
9
+ import { child, computed, createSlot, defineVaporComponent, next, renderEffect, setDynamicProps, setInsertionState, setStaticTemplateRef, setText, template, toDisplayString, unref } from "vue";
10
+ //#region src/components/file-input/useFileInput.ts
11
+ function useFileInput(props, emitUpdate) {
12
+ const control = useControlState(props);
13
+ const { inputRef, files, settleSelection, clear, focus, open } = useNativeFileSelection({
14
+ modelValue: () => props.modelValue,
15
+ multiple: () => props.multiple ?? false,
16
+ disabled: () => control.disabled,
17
+ validationMessage: () => props.validationMessage,
18
+ onChange: emitUpdate
19
+ });
20
+ const fileNames = computed(() => files.value.map((file) => file.name));
21
+ const hasFiles = computed(() => files.value.length > 0);
22
+ const rootClass = computed(() => bem("rp-file-input", {
23
+ [`size-${props.size}`]: Boolean(props.size),
24
+ [`radius-${props.radius}`]: Boolean(props.radius),
25
+ disabled: control.disabled,
26
+ invalid: control.invalid,
27
+ valid: control.valid && !control.invalid,
28
+ filled: hasFiles.value
29
+ }));
30
+ const buttonText = computed(() => props.buttonLabel ?? (props.multiple ? "Choose files" : "Choose file"));
31
+ const displayValue = computed(() => {
32
+ if (hasFiles.value) return fileNames.value.join(", ");
33
+ return props.placeholder ?? (props.multiple ? "No files selected" : "No file selected");
34
+ });
35
+ function onChange(event) {
36
+ const input = event.target;
37
+ settleSelection({
38
+ status: "accepted",
39
+ files: input.files ?? []
40
+ });
41
+ }
42
+ return {
43
+ inputRef,
44
+ control,
45
+ files,
46
+ fileNames,
47
+ hasFiles,
48
+ rootClass,
49
+ buttonText,
50
+ displayValue,
51
+ onChange,
52
+ clear,
53
+ focus,
54
+ open
55
+ };
56
+ }
57
+ //#endregion
58
+ //#region src/components/file-input/file-input.vue?vue&type=script&setup=true&vapor=true&lang.ts
59
+ var t0 = template(" ");
60
+ var t1 = template("<div data-v-c2dff394><input data-v-c2dff394><span data-v-c2dff394></span><span data-v-c2dff394>", 1);
61
+ //#endregion
62
+ //#region src/components/file-input/file-input.vue
63
+ var file_input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
64
+ name: "RpFileInput",
65
+ inheritAttrs: false,
66
+ __name: "file-input",
67
+ props: {
68
+ id: {},
69
+ name: {},
70
+ form: {},
71
+ modelValue: { default: void 0 },
72
+ accept: { default: void 0 },
73
+ capture: {
74
+ type: [Boolean, String],
75
+ default: void 0
76
+ },
77
+ multiple: {
78
+ type: Boolean,
79
+ default: false
80
+ },
81
+ size: {},
82
+ radius: {},
83
+ buttonLabel: { default: void 0 },
84
+ placeholder: { default: void 0 },
85
+ disabled: {
86
+ type: Boolean,
87
+ default: void 0
88
+ },
89
+ required: {
90
+ type: Boolean,
91
+ default: void 0
92
+ },
93
+ invalid: {
94
+ type: Boolean,
95
+ default: void 0
96
+ },
97
+ valid: {
98
+ type: Boolean,
99
+ default: void 0
100
+ },
101
+ ariaLabel: {},
102
+ describedby: {},
103
+ labelledby: {},
104
+ inputAttrs: {},
105
+ validationMessage: {},
106
+ classNames: {},
107
+ styles: {}
108
+ },
109
+ emits: ["update:modelValue"],
110
+ setup(__props, { expose: __expose, emit: __emit }) {
111
+ const props = __props;
112
+ const emit = __emit;
113
+ const { inputRef, control, files, fileNames, hasFiles, rootClass, buttonText, displayValue, onChange, clear, focus, open } = useFileInput(props, (value) => emit("update:modelValue", value));
114
+ const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
115
+ const rootAttrs = computed(() => getRootAttrs({
116
+ class: rootClass.value,
117
+ "data-disabled": toPresenceAttribute(control.disabled),
118
+ "data-invalid": toPresenceAttribute(control.invalid)
119
+ }));
120
+ const nativeInputAttrs = computed(() => {
121
+ const attrs = props.inputAttrs ?? {};
122
+ const { compatibilityClass, compatibilityStyle, forwardedAttributes } = splitCompatibilityAttributes(attrs);
123
+ return {
124
+ ...forwardedAttributes,
125
+ ...getPartAttrs("input", {
126
+ class: "rp-file-input__native",
127
+ compatibilityClass,
128
+ compatibilityStyle
129
+ }),
130
+ id: control.id,
131
+ name: props.name,
132
+ form: control.form ?? forwardedAttributes.form,
133
+ type: "file",
134
+ value: void 0,
135
+ accept: props.accept,
136
+ capture: props.capture,
137
+ multiple: props.multiple || void 0,
138
+ disabled: control.disabled || void 0,
139
+ required: control.required || void 0,
140
+ "aria-label": props.ariaLabel || void 0,
141
+ "aria-labelledby": control.ariaLabelledby,
142
+ "aria-describedby": control.ariaDescribedby,
143
+ "aria-invalid": control.invalid || void 0,
144
+ "aria-required": control.required || void 0,
145
+ "data-disabled": toPresenceAttribute(control.disabled),
146
+ "data-invalid": toPresenceAttribute(control.invalid),
147
+ onChange: composeEventHandlers(onChange, attrs.onChange)
148
+ };
149
+ });
150
+ __expose({
151
+ nativeElement: inputRef,
152
+ clear,
153
+ focus,
154
+ open
155
+ });
156
+ const n9 = t1();
157
+ const n0 = child(n9);
158
+ const n4 = next(n0, 1);
159
+ const n8 = next(n4, 2);
160
+ setStaticTemplateRef(n0, inputRef, null, "inputRef");
161
+ renderEffect(() => {
162
+ setDynamicProps(n9, [rootAttrs.value]);
163
+ setDynamicProps(n0, [nativeInputAttrs.value]);
164
+ setDynamicProps(n4, [unref(getPartAttrs)("trigger", { class: "rp-file-input__trigger" }), { "aria-hidden": "true" }]);
165
+ });
166
+ setInsertionState(n4, null, 0);
167
+ createSlot("trigger", {
168
+ files: () => unref(files),
169
+ multiple: () => __props.multiple
170
+ }, () => {
171
+ const n3 = t0();
172
+ renderEffect(() => setText(n3, toDisplayString(unref(buttonText))));
173
+ return n3;
174
+ }, 1);
175
+ renderEffect(() => setDynamicProps(n8, [unref(getPartAttrs)("value", { class: ["rp-file-input__value", { "rp-file-input__value--placeholder": !unref(hasFiles) }] }), { "aria-hidden": "true" }]));
176
+ setInsertionState(n8, null, 0);
177
+ createSlot("value", {
178
+ files: () => unref(files),
179
+ fileNames: () => unref(fileNames),
180
+ hasFiles: () => unref(hasFiles)
181
+ }, () => {
182
+ const n7 = t0();
183
+ renderEffect(() => setText(n7, toDisplayString(unref(displayValue))));
184
+ return n7;
185
+ }, 1);
186
+ return n9;
187
+ }
188
+ }), [["__scopeId", "data-v-c2dff394"]]);
189
+ //#endregion
190
+ //#region src/components/file-input/types.ts
191
+ var fileInputParts = [
192
+ "root",
193
+ "input",
194
+ "trigger",
195
+ "value"
196
+ ];
197
+ //#endregion
198
+ export { file_input_default as n, fileInputParts as t };
@@ -0,0 +1,11 @@
1
+ //#region src/utils/floatingOffset.ts
2
+ function getFloatingOffsetStyle(offset, properties) {
3
+ if (offset == null) return void 0;
4
+ if (typeof offset === "number") return { [properties.mainAxis]: `${offset}px` };
5
+ const style = {};
6
+ if (offset.mainAxis != null) style[properties.mainAxis] = `${offset.mainAxis}px`;
7
+ if (offset.crossAxis != null) style[properties.crossAxis] = `${offset.crossAxis}px`;
8
+ return Object.keys(style).length > 0 ? style : void 0;
9
+ }
10
+ //#endregion
11
+ export { getFloatingOffsetStyle as t };
@@ -1,6 +1,7 @@
1
- import { n as useStylesApi, t as presence } from "./styles-api.js";
1
+ import { t as useStylesApi } from "./styles-api.js";
2
+ import { n as toPresenceAttribute } from "./attributes.js";
2
3
  import { t as useFocusTrap } from "./useFocusTrap.js";
3
- import { computed, createDynamicComponent, createSlot, defineVaporComponent, extend, ref, setStaticTemplateRef, watch } from "vue";
4
+ import { computed, createDynamicComponent, createSlot, defineVaporComponent, extend, ref, setTemplateRefBinding, watch } from "vue";
4
5
  //#endregion
5
6
  //#region src/components/focus-trap/focus-trap.vue
6
7
  var focus_trap_default = /* @__PURE__ */ defineVaporComponent({
@@ -27,6 +28,7 @@ var focus_trap_default = /* @__PURE__ */ defineVaporComponent({
27
28
  const emit = __emit;
28
29
  const containerRef = ref(null);
29
30
  const { isActive, isPaused, activate, deactivate, pause, unpause } = useFocusTrap(containerRef, props.options);
31
+ const templateRefs = { container: containerRef };
30
32
  const slotProps = computed(() => ({
31
33
  active: isActive.value,
32
34
  paused: isPaused.value,
@@ -38,8 +40,8 @@ var focus_trap_default = /* @__PURE__ */ defineVaporComponent({
38
40
  const { getRootAttrs } = useStylesApi(props, "root");
39
41
  const rootAttrs = computed(() => getRootAttrs({
40
42
  class: "rp-focus-trap",
41
- "data-active": presence(isActive.value),
42
- "data-paused": presence(isPaused.value)
43
+ "data-active": toPresenceAttribute(isActive.value),
44
+ "data-paused": toPresenceAttribute(isPaused.value)
43
45
  }));
44
46
  function pauseTrap(options) {
45
47
  pause(options);
@@ -69,7 +71,7 @@ var focus_trap_default = /* @__PURE__ */ defineVaporComponent({
69
71
  const n1 = createDynamicComponent(() => __props.as, { $: [() => rootAttrs.value] }, extend(() => {
70
72
  return createSlot("default", { $: [() => slotProps.value] });
71
73
  }, { _: 8 }), 1);
72
- setStaticTemplateRef(n1, containerRef, null, "containerRef");
74
+ setTemplateRefBinding(n1, () => templateRefs.container);
73
75
  return n1;
74
76
  }
75
77
  });
@@ -0,0 +1,37 @@
1
+ import { n as getNextEnabledIndex, t as getEnabledIndexes } from "./collectionNavigation.js";
2
+ import { t as isElement } from "./query.js";
3
+ //#region src/utils/dom/focusNavigation.ts
4
+ function isDisabled(element) {
5
+ return element.matches(":disabled");
6
+ }
7
+ function getDirection(key, orientation) {
8
+ if (orientation === "vertical") {
9
+ if (key === "ArrowDown") return 1;
10
+ if (key === "ArrowUp") return -1;
11
+ return;
12
+ }
13
+ if (key === "ArrowRight") return 1;
14
+ if (key === "ArrowLeft") return -1;
15
+ }
16
+ function getScopedItems(collection, options) {
17
+ return Array.from(collection.querySelectorAll(options.itemSelector)).filter((item) => item.closest(options.collectionSelector) === collection);
18
+ }
19
+ function getFocusNavigationTarget(event, collection, options) {
20
+ if (!isElement(event.target)) return void 0;
21
+ const currentItem = event.target.closest(options.itemSelector);
22
+ if (!currentItem || currentItem.closest(options.collectionSelector) !== collection || isDisabled(currentItem)) return;
23
+ const items = getScopedItems(collection, options);
24
+ const currentIndex = items.indexOf(currentItem);
25
+ if (currentIndex < 0) return void 0;
26
+ const enabledIndexes = getEnabledIndexes(items, isDisabled);
27
+ if (enabledIndexes.length === 0) return void 0;
28
+ if (event.key === "Home") return items[enabledIndexes[0]];
29
+ if (event.key === "End") return items[enabledIndexes[enabledIndexes.length - 1]];
30
+ let direction = getDirection(event.key, options.orientation);
31
+ if (!direction) return void 0;
32
+ if (options.orientation === "horizontal" && collection.ownerDocument.defaultView?.getComputedStyle(collection).direction === "rtl") direction = direction === 1 ? -1 : 1;
33
+ const nextIndex = getNextEnabledIndex(items, currentIndex, direction, isDisabled);
34
+ return nextIndex === void 0 ? void 0 : items[nextIndex];
35
+ }
36
+ //#endregion
37
+ export { getFocusNavigationTarget as t };
@@ -0,0 +1,80 @@
1
+ @layer ropav.components {
2
+ .rp-hover-card[data-v-55e74041] {
3
+ position: relative;
4
+ display: inline-flex;
5
+ font-family: var(--rp-font-family);
6
+ vertical-align: middle;
7
+ }
8
+ .rp-hover-card__content[data-v-55e74041] {
9
+ --_rp-hover-card-main-axis-offset: var(--rp-spacing-2);
10
+ --_rp-hover-card-cross-axis-offset: 0px;
11
+ --_rp-hover-card-radius: var(--rp-radius-sm);
12
+ --_rp-hover-card-arrow-size: 0.5rem;
13
+ position: absolute;
14
+ z-index: 100;
15
+ box-sizing: border-box;
16
+ width: max-content;
17
+ max-width: min(22rem, 100vw - var(--rp-spacing-6));
18
+ padding: var(--rp-spacing-4);
19
+ color: var(--rp-color-text);
20
+ font-family: var(--rp-font-family);
21
+ font-size: var(--rp-font-size-md);
22
+ line-height: var(--rp-line-height-md);
23
+ overflow-wrap: anywhere;
24
+ background-color: var(--rp-color-default);
25
+ border: var(--rp-border-width-thin) solid var(--rp-color-default-border);
26
+ border-radius: var(--_rp-hover-card-radius);
27
+ box-shadow: var(--rp-shadow-base);
28
+ }
29
+ .rp-hover-card--target[data-v-55e74041] {
30
+ display: contents;
31
+ }
32
+ .rp-hover-card__arrow[data-v-55e74041] {
33
+ background-color: inherit;
34
+ border: inherit;
35
+ rotate: 45deg;
36
+ }
37
+ .rp-hover-card__arrow[data-side=top][data-v-55e74041] {
38
+ border-top-color: transparent;
39
+ border-left-color: transparent;
40
+ }
41
+ .rp-hover-card__arrow[data-side=right][data-v-55e74041] {
42
+ border-top-color: transparent;
43
+ border-right-color: transparent;
44
+ }
45
+ .rp-hover-card__arrow[data-side=bottom][data-v-55e74041] {
46
+ border-right-color: transparent;
47
+ border-bottom-color: transparent;
48
+ }
49
+ .rp-hover-card__arrow[data-side=left][data-v-55e74041] {
50
+ border-bottom-color: transparent;
51
+ border-left-color: transparent;
52
+ }
53
+ .rp-hover-card__arrow[data-v-55e74041] {
54
+ position: absolute;
55
+ box-sizing: border-box;
56
+ width: var(--_rp-hover-card-arrow-size);
57
+ height: var(--_rp-hover-card-arrow-size);
58
+ pointer-events: none;
59
+ }
60
+ .rp-hover-card__arrow[data-side=top][data-v-55e74041] {
61
+ bottom: calc(-1 * var(--_rp-hover-card-arrow-size) / 2);
62
+ }
63
+ .rp-hover-card__arrow[data-side=right][data-v-55e74041] {
64
+ left: calc(-1 * var(--_rp-hover-card-arrow-size) / 2);
65
+ }
66
+ .rp-hover-card__arrow[data-side=bottom][data-v-55e74041] {
67
+ top: calc(-1 * var(--_rp-hover-card-arrow-size) / 2);
68
+ }
69
+ .rp-hover-card__arrow[data-side=left][data-v-55e74041] {
70
+ right: calc(-1 * var(--_rp-hover-card-arrow-size) / 2);
71
+ }
72
+ .rp-hover-card-content-enter-active[data-v-55e74041],
73
+ .rp-hover-card-content-leave-active[data-v-55e74041] {
74
+ transition: opacity var(--rp-transition-fast);
75
+ }
76
+ .rp-hover-card-content-enter-from[data-v-55e74041],
77
+ .rp-hover-card-content-leave-to[data-v-55e74041] {
78
+ opacity: 0;
79
+ }
80
+ }