ropav 0.1.5 → 0.1.7

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 (235) hide show
  1. package/README.md +10 -0
  2. package/dist/accordion.css +17 -17
  3. package/dist/accordion.js +125 -154
  4. package/dist/alert.css +18 -18
  5. package/dist/alert.js +20 -20
  6. package/dist/aria.js +14 -0
  7. package/dist/aspect-ratio.js +1 -1
  8. package/dist/attributes.js +9 -0
  9. package/dist/attributes2.js +29 -0
  10. package/dist/avatar.css +19 -19
  11. package/dist/avatar.js +10 -18
  12. package/dist/badge.css +16 -16
  13. package/dist/badge.js +6 -6
  14. package/dist/base.css +18 -13
  15. package/dist/button-group.js +1 -1
  16. package/dist/button-link.js +13 -14
  17. package/dist/button.css +32 -27
  18. package/dist/button.js +13 -14
  19. package/dist/{useButtonColor.js → button.scss_vue_type_style_index_0_src_true_lang.js} +3 -2
  20. package/dist/card.js +1 -1
  21. package/dist/checkbox.css +32 -32
  22. package/dist/checkbox.js +23 -29
  23. package/dist/collapse.css +6 -6
  24. package/dist/collapse.js +8 -7
  25. package/dist/collectionNavigation.js +2 -99
  26. package/dist/color-input.css +19 -19
  27. package/dist/color-input.js +15 -14
  28. package/dist/color-picker.css +40 -40
  29. package/dist/color-picker.js +222 -202
  30. package/dist/color-picker2.js +1 -9
  31. package/dist/color-swatch.css +4 -4
  32. package/dist/color-swatch.js +7 -9
  33. package/dist/color.js +5 -10
  34. package/dist/componentColors.js +165 -84
  35. package/dist/componentRef.js +26 -0
  36. package/dist/components/accordion/accordionContext.d.ts +3 -0
  37. package/dist/components/accordion/accordionModel.d.ts +14 -0
  38. package/dist/components/accordion/index.d.ts +2 -1
  39. package/dist/components/accordion/index.js +1 -1
  40. package/dist/components/accordion/types.d.ts +1 -2
  41. package/dist/components/accordion/useAccordion.d.ts +2 -2
  42. package/dist/components/accordion/useAccordionItem.d.ts +2 -0
  43. package/dist/components/checkbox/useCheckbox.d.ts +2 -3
  44. package/dist/components/color-input/color-input.d.ts +2 -2
  45. package/dist/components/color-input/useColorInput.d.ts +1 -1
  46. package/dist/components/color-picker/index.js +2 -2
  47. package/dist/components/color-picker/types.d.ts +2 -2
  48. package/dist/components/color-picker/useColorPickerSaturation.d.ts +22 -0
  49. package/dist/components/color-picker/useColorPickerSlider.d.ts +20 -0
  50. package/dist/components/color-picker/useColorPickerValue.d.ts +1 -1
  51. package/dist/components/dialog/{dialog-core.d.ts → dialogContext.d.ts} +2 -6
  52. package/dist/components/dialog/useDialogContentInteractions.d.ts +18 -0
  53. package/dist/components/dialog/useDialogRootState.d.ts +19 -0
  54. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  55. package/dist/components/dropdown-menu/dropdown-menu-item-row.d.ts +1 -1
  56. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +1 -1
  57. package/dist/components/dropdown-menu/dropdown-menu-model.d.ts +8 -0
  58. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +2 -2
  59. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  60. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +1 -1
  61. package/dist/components/dropdown-menu/dropdown-menu-sub.d.ts +1 -1
  62. package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
  63. package/dist/components/dropdown-menu/{dropdown-menu-primitive-core.d.ts → dropdownMenuContext.d.ts} +17 -19
  64. package/dist/components/dropdown-menu/dropdownMenuDataModel.d.ts +20 -0
  65. package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -0
  66. package/dist/components/dropdown-menu/dropdownMenuInteractionNavigation.d.ts +24 -0
  67. package/dist/components/dropdown-menu/dropdownMenuInteractionRegistry.d.ts +42 -0
  68. package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +85 -0
  69. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -11
  70. package/dist/components/dropdown-menu/useDropdownMenuContextTrigger.d.ts +9 -0
  71. package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +34 -0
  72. package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +22 -0
  73. package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +6 -5
  74. package/dist/components/dropdown-menu/useDropdownMenuInteractionDismissal.d.ts +17 -0
  75. package/dist/components/dropdown-menu/useDropdownMenuInteractionKeyboard.d.ts +19 -0
  76. package/dist/components/dropdown-menu/useDropdownMenuPortalPosition.d.ts +0 -1
  77. package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +29 -0
  78. package/dist/components/dropdown-menu/useDropdownMenuPrimitiveContent.d.ts +2 -2
  79. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +1 -1
  80. package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +19 -0
  81. package/dist/components/floating/hoverDisclosureInteractionModel.d.ts +42 -0
  82. package/dist/components/floating/index.js +1 -1
  83. package/dist/components/floating/useFloatingPosition.d.ts +0 -1
  84. package/dist/components/floating/useHoverDisclosureInteractions.d.ts +32 -0
  85. package/dist/components/floating/useHoverDisclosureOpenState.d.ts +25 -0
  86. package/dist/components/floating/useHoverDisclosureTargetBinding.d.ts +27 -0
  87. package/dist/components/input/useInput.d.ts +1 -1
  88. package/dist/components/number-input/numberInputModel.d.ts +15 -0
  89. package/dist/components/number-input/useNumberInput.d.ts +4 -18
  90. package/dist/components/pagination/index.d.ts +1 -1
  91. package/dist/components/pagination/index.js +1 -1
  92. package/dist/components/pagination/paginationModel.d.ts +4 -0
  93. package/dist/components/pagination/types.d.ts +15 -0
  94. package/dist/components/pagination/usePagination.d.ts +3 -19
  95. package/dist/components/popover/usePopoverBindings.d.ts +16 -0
  96. package/dist/components/progress/progressModel.d.ts +8 -0
  97. package/dist/components/progress/useProgress.d.ts +1 -7
  98. package/dist/components/radio/useRadio.d.ts +3 -4
  99. package/dist/components/scroll-area/scroll-area.d.ts +1 -1
  100. package/dist/components/scroll-area/scrollAreaModel.d.ts +64 -0
  101. package/dist/components/scroll-area/types.d.ts +4 -0
  102. package/dist/components/scroll-area/useScrollArea.d.ts +70 -52
  103. package/dist/components/scroll-area/{useScrollAreaPresentation.d.ts → useScrollAreaAttributes.d.ts} +37 -14
  104. package/dist/components/scroll-area/useScrollAreaDerivedState.d.ts +8 -0
  105. package/dist/components/scroll-area/useScrollAreaMeasurement.d.ts +35 -0
  106. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +10 -8
  107. package/dist/components/scroll-area/useScrollAreaVisibility.d.ts +15 -20
  108. package/dist/components/select/useSelect.d.ts +2 -1
  109. package/dist/components/select/useSelectNativeValue.d.ts +1 -7
  110. package/dist/components/slider/rangeSliderModel.d.ts +41 -0
  111. package/dist/components/slider/{sliderCore.d.ts → sliderModel.d.ts} +2 -2
  112. package/dist/components/slider/useRangeSlider.d.ts +9 -17
  113. package/dist/components/slider/useRangeSliderValueState.d.ts +40 -0
  114. package/dist/components/slider/useSlider.d.ts +8 -14
  115. package/dist/components/slider/useSliderPointerPreview.d.ts +22 -0
  116. package/dist/components/slider/useSliderTooltipState.d.ts +40 -0
  117. package/dist/components/slider/useSliderValueState.d.ts +33 -0
  118. package/dist/components/switch/useSwitch.d.ts +1 -1
  119. package/dist/components/teleport-provider/index.js +1 -1
  120. package/dist/components/teleport-provider/useTeleportTarget.d.ts +1 -2
  121. package/dist/components/textarea/useTextarea.d.ts +1 -1
  122. package/dist/components/toast/useToastLifecycle.d.ts +19 -0
  123. package/dist/components/tooltip/useTooltip.d.ts +1 -2
  124. package/dist/composables/index.d.ts +2 -0
  125. package/dist/composables/index.js +2 -0
  126. package/dist/composables/useControllableValue.d.ts +14 -0
  127. package/dist/css.js +12 -0
  128. package/dist/dialog.js +227 -216
  129. package/dist/dropdown-menu.js +1493 -1118
  130. package/dist/events.js +59 -0
  131. package/dist/field.css +8 -8
  132. package/dist/field.js +13 -25
  133. package/dist/floating.js +553 -312
  134. package/dist/floatingOffset.js +11 -0
  135. package/dist/focus-trap.js +7 -5
  136. package/dist/focusNavigation.js +37 -0
  137. package/dist/icon-button.css +12 -173
  138. package/dist/icon-button.js +8 -7
  139. package/dist/index.d.ts +5 -4
  140. package/dist/index.js +13 -11
  141. package/dist/input.css +24 -24
  142. package/dist/input.js +20 -32
  143. package/dist/interactive.js +18 -0
  144. package/dist/modal.js +11 -7
  145. package/dist/number-input.css +18 -18
  146. package/dist/number-input.js +15 -13
  147. package/dist/number.js +22 -0
  148. package/dist/overlay.js +3 -2
  149. package/dist/pagination.css +28 -28
  150. package/dist/pagination.js +67 -65
  151. package/dist/pointer.js +9 -0
  152. package/dist/popover.css +34 -34
  153. package/dist/popover.js +93 -91
  154. package/dist/progress.css +29 -21
  155. package/dist/progress.js +25 -21
  156. package/dist/query.js +40 -0
  157. package/dist/radio.css +18 -18
  158. package/dist/radio.js +31 -37
  159. package/dist/rafScheduler.js +34 -0
  160. package/dist/scroll-area.css +35 -26
  161. package/dist/scroll-area.js +553 -500
  162. package/dist/select.css +45 -45
  163. package/dist/select.js +70 -56
  164. package/dist/slider.css +191 -191
  165. package/dist/slider.js +695 -628
  166. package/dist/styles-api.d.ts +0 -1
  167. package/dist/styles-api.js +1 -4
  168. package/dist/switch.css +17 -17
  169. package/dist/switch.js +15 -16
  170. package/dist/tabs.css +46 -46
  171. package/dist/tabs.js +51 -68
  172. package/dist/text.js +17 -0
  173. package/dist/textarea.css +26 -26
  174. package/dist/textarea.js +22 -33
  175. package/dist/toast.css +26 -26
  176. package/dist/toast.js +157 -129
  177. package/dist/tooltip.css +12 -12
  178. package/dist/tooltip.js +46 -47
  179. package/dist/useCollapse.js +19 -17
  180. package/dist/useControlState.js +4 -7
  181. package/dist/useControllableValue.js +8 -2
  182. package/dist/useFloatingPosition.js +122 -1128
  183. package/dist/useFormControl.js +3 -2
  184. package/dist/useOverlayZIndex.js +2 -6
  185. package/dist/useRequiredInject.js +1 -1
  186. package/dist/useTeleportTarget.js +3 -14
  187. package/dist/useTypeahead.js +94 -0
  188. package/dist/utils/aria.d.ts +3 -0
  189. package/dist/utils/attributes.d.ts +2 -0
  190. package/dist/utils/bem.d.ts +3 -0
  191. package/dist/utils/collectionNavigation.d.ts +2 -0
  192. package/dist/utils/color.d.ts +7 -0
  193. package/dist/{components/color-picker/color-picker-utils.d.ts → utils/colorPicker.d.ts} +5 -4
  194. package/dist/utils/componentColors.d.ts +7 -0
  195. package/dist/utils/css.d.ts +3 -0
  196. package/dist/utils/dom/ancestry.d.ts +7 -0
  197. package/dist/utils/dom/attributes.d.ts +16 -0
  198. package/dist/utils/dom/componentRef.d.ts +4 -0
  199. package/dist/utils/dom/events.d.ts +5 -0
  200. package/dist/utils/dom/focusNavigation.d.ts +7 -0
  201. package/dist/utils/dom/interactive.d.ts +2 -0
  202. package/dist/utils/dom/pointer.d.ts +2 -0
  203. package/dist/utils/dom/query.d.ts +4 -0
  204. package/dist/utils/dom/scroll.d.ts +23 -0
  205. package/dist/utils/floatingOffset.d.ts +10 -0
  206. package/dist/utils/geometry.d.ts +14 -0
  207. package/dist/utils/indexPath.d.ts +6 -0
  208. package/dist/utils/number.d.ts +4 -0
  209. package/dist/utils/rafScheduler.d.ts +4 -0
  210. package/dist/utils/text.d.ts +2 -0
  211. package/docs/code-architecture.md +118 -0
  212. package/docs/public-composables-api.md +52 -0
  213. package/docs/public-floating-api.md +6 -5
  214. package/package.json +54 -46
  215. package/src/styles/_mixins.scss +4 -0
  216. package/src/styles/_tokens.scss +12 -12
  217. package/src/styles/_variables.scss +1 -1
  218. package/dist/button-link.css +0 -167
  219. package/dist/components/dropdown-menu/dropdown-menu-outside.d.ts +0 -3
  220. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -21
  221. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +0 -37
  222. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +0 -29
  223. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +0 -52
  224. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +0 -17
  225. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +0 -18
  226. package/dist/components/scroll-area/scrollAreaCore.d.ts +0 -25
  227. package/dist/components/scroll-area/useScrollAreaControls.d.ts +0 -25
  228. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +0 -35
  229. /package/dist/components/alert/{useAlertColor.d.ts → alertColor.d.ts} +0 -0
  230. /package/dist/components/avatar/{useAvatarColor.d.ts → avatarColor.d.ts} +0 -0
  231. /package/dist/components/badge/{useBadgeColor.d.ts → badgeColor.d.ts} +0 -0
  232. /package/dist/components/button/{useButtonColor.d.ts → buttonColor.d.ts} +0 -0
  233. /package/dist/components/color-swatch/{useColorSwatchColor.d.ts → colorSwatchColor.d.ts} +0 -0
  234. /package/dist/components/toast/{useToastColor.d.ts → toastColor.d.ts} +0 -0
  235. /package/dist/{composables → internal/composables}/useOverlayLayer.d.ts +0 -0
package/dist/radio.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-radio[data-v-0cdcdcfa] {
2
+ .rp-radio[data-v-d1001176] {
3
3
  --_rp-radio-color: var(--rp-color-control-selected-bg);
4
4
  --_rp-radio-on-color: var(--rp-color-control-selected-fg);
5
5
  --_rp-radio-default-size: 24px;
@@ -16,15 +16,15 @@
16
16
  font-family: var(--rp-font-family);
17
17
  user-select: none;
18
18
  }
19
- .rp-radio--disabled[data-v-0cdcdcfa] {
19
+ .rp-radio--disabled[data-v-d1001176] {
20
20
  opacity: var(--rp-opacity-disabled);
21
21
  cursor: not-allowed;
22
22
  }
23
- .rp-radio[data-v-0cdcdcfa] {
23
+ .rp-radio[data-v-d1001176] {
24
24
  gap: var(--rp-spacing-2);
25
25
  font-size: var(--_rp-radio-font-size);
26
26
  }
27
- .rp-radio__native[data-v-0cdcdcfa] {
27
+ .rp-radio__native[data-v-d1001176] {
28
28
  position: absolute;
29
29
  width: 1px;
30
30
  height: 1px;
@@ -36,11 +36,11 @@
36
36
  border-width: 0;
37
37
  pointer-events: none;
38
38
  }
39
- .rp-radio__native:focus-visible + .rp-radio__dot[data-v-0cdcdcfa] {
39
+ .rp-radio__native:focus-visible + .rp-radio__dot[data-v-d1001176] {
40
40
  border-color: var(--rp-color-control-border-focus);
41
41
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
42
42
  }
43
- .rp-radio__dot[data-v-0cdcdcfa] {
43
+ .rp-radio__dot[data-v-d1001176] {
44
44
  display: inline-flex;
45
45
  align-items: center;
46
46
  justify-content: center;
@@ -52,7 +52,7 @@
52
52
  background-color: var(--rp-color-control-bg);
53
53
  transition: background-color var(--rp-transition-fast), border-color var(--rp-transition-fast);
54
54
  }
55
- .rp-radio__dot[data-v-0cdcdcfa]::after {
55
+ .rp-radio__dot[data-v-d1001176]::after {
56
56
  content: "";
57
57
  width: var(--_rp-radio-dot);
58
58
  height: var(--_rp-radio-dot);
@@ -61,55 +61,55 @@
61
61
  transform: scale(0);
62
62
  transition: transform var(--rp-transition-fast);
63
63
  }
64
- .rp-radio--checked .rp-radio__dot[data-v-0cdcdcfa] {
64
+ .rp-radio--checked .rp-radio__dot[data-v-d1001176] {
65
65
  background-color: var(--_rp-radio-checked-bg);
66
66
  border-color: var(--_rp-radio-checked-border);
67
67
  }
68
- .rp-radio--checked .rp-radio__dot[data-v-0cdcdcfa]::after {
68
+ .rp-radio--checked .rp-radio__dot[data-v-d1001176]::after {
69
69
  transform: scale(1);
70
70
  }
71
- .rp-radio__label[data-v-0cdcdcfa] {
71
+ .rp-radio__label[data-v-d1001176] {
72
72
  line-height: var(--rp-line-height-md);
73
73
  color: var(--rp-color-text);
74
74
  }
75
- .rp-radio--outline[data-v-0cdcdcfa] {
75
+ .rp-radio--outline[data-v-d1001176] {
76
76
  --_rp-radio-checked-bg: var(--rp-color-control-bg);
77
77
  --_rp-radio-checked-border: var(--_rp-radio-color);
78
78
  --_rp-radio-checked-dot: var(--_rp-radio-color);
79
79
  }
80
- .rp-radio--size-xs[data-v-0cdcdcfa] {
80
+ .rp-radio--size-xs[data-v-d1001176] {
81
81
  --_rp-radio-default-size: 16px;
82
82
  --_rp-radio-default-dot: 6px;
83
83
  --_rp-radio-font-size: var(--rp-font-size-xs);
84
84
  }
85
- .rp-radio--size-sm[data-v-0cdcdcfa] {
85
+ .rp-radio--size-sm[data-v-d1001176] {
86
86
  --_rp-radio-default-size: 20px;
87
87
  --_rp-radio-default-dot: 8px;
88
88
  --_rp-radio-font-size: var(--rp-font-size-sm);
89
89
  }
90
- .rp-radio--size-md[data-v-0cdcdcfa] {
90
+ .rp-radio--size-md[data-v-d1001176] {
91
91
  --_rp-radio-default-size: 24px;
92
92
  --_rp-radio-default-dot: 10px;
93
93
  --_rp-radio-font-size: var(--rp-font-size-md);
94
94
  }
95
- .rp-radio--size-lg[data-v-0cdcdcfa] {
95
+ .rp-radio--size-lg[data-v-d1001176] {
96
96
  --_rp-radio-default-size: 30px;
97
97
  --_rp-radio-default-dot: 14px;
98
98
  --_rp-radio-font-size: var(--rp-font-size-lg);
99
99
  }
100
- .rp-radio--size-xl[data-v-0cdcdcfa] {
100
+ .rp-radio--size-xl[data-v-d1001176] {
101
101
  --_rp-radio-default-size: 36px;
102
102
  --_rp-radio-default-dot: 16px;
103
103
  --_rp-radio-font-size: var(--rp-font-size-xl);
104
104
  }
105
105
  }@layer ropav.components {
106
- .rp-radio-group[data-v-fc40a22d] {
106
+ .rp-radio-group[data-v-9c16fa9f] {
107
107
  display: flex;
108
108
  flex-direction: column;
109
109
  gap: var(--rp-spacing-3);
110
110
  font-family: var(--rp-font-family);
111
111
  }
112
- .rp-radio-group[data-orientation=horizontal][data-v-fc40a22d] {
112
+ .rp-radio-group[data-orientation=horizontal][data-v-9c16fa9f] {
113
113
  flex-flow: row wrap;
114
114
  }
115
115
  }
package/dist/radio.js CHANGED
@@ -1,10 +1,12 @@
1
1
  import './radio.css';
2
+ import { t as useControllableValue } from "./useControllableValue.js";
3
+ import { t as useStylesApi } from "./styles-api.js";
4
+ import { n as toPresenceAttribute } from "./attributes.js";
2
5
  import { t as bem } from "./bem.js";
3
- import { n as useStylesApi, t as presence } from "./styles-api.js";
4
- import { n as getComponentColorValue, r as getComponentContrastColor } from "./componentColors.js";
5
6
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
- import { t as useControllableValue } from "./useControllableValue.js";
7
+ import { n as getComponentCheckedColorStyle } from "./componentColors.js";
7
8
  import { i as useFormControl } from "./useFormControl.js";
9
+ import { o as splitCompatibilityAttributes, t as composeEventHandlers } from "./attributes2.js";
8
10
  import { t as useControlState } from "./useControlState.js";
9
11
  import { child, computed, createIf, createSlot, defineVaporComponent, inject, next, onBeforeUnmount, onMounted, provide, ref, renderEffect, setDynamicProps, setInsertionState, setStaticTemplateRef, shallowRef, template, unref, useId } from "vue";
10
12
  //#region src/components/radio/types.ts
@@ -18,18 +20,6 @@ var radioGroupParts = ["root"];
18
20
  var radioGroupKey = Symbol("radioGroup");
19
21
  //#endregion
20
22
  //#region src/components/radio/useRadio.ts
21
- function getRadioColorStyle(color, autoContrast, contrastColor) {
22
- const colorValue = getComponentColorValue(color);
23
- if (color && !colorValue) return void 0;
24
- if (!colorValue && autoContrast === false && contrastColor === void 0) return void 0;
25
- const style = {};
26
- if (colorValue) style["--_rp-radio-color"] = colorValue;
27
- if (autoContrast !== false || contrastColor !== void 0) style["--_rp-radio-on-color"] = getComponentContrastColor(color ?? "primary", {
28
- autoContrast,
29
- contrastColor
30
- });
31
- return style;
32
- }
33
23
  function useRadio(props, emitChange) {
34
24
  const inputRef = ref(null);
35
25
  const control = useControlState(props);
@@ -52,7 +42,13 @@ function useRadio(props, emitChange) {
52
42
  [variant.value ?? ""]: Boolean(variant.value),
53
43
  [`size-${size.value}`]: Boolean(size.value)
54
44
  }));
55
- const rootStyle = computed(() => getRadioColorStyle(color.value, autoContrast.value, contrastColor.value));
45
+ const rootStyle = computed(() => getComponentCheckedColorStyle({
46
+ color: color.value,
47
+ autoContrast: autoContrast.value,
48
+ contrastColor: contrastColor.value,
49
+ colorProperty: "--_rp-radio-color",
50
+ checkedColorProperty: "--_rp-radio-on-color"
51
+ }));
56
52
  function onSelect(event) {
57
53
  if (isDisabled.value) return;
58
54
  group?.select(props.value);
@@ -190,8 +186,8 @@ function useRadioGroup(props, emitUpdate) {
190
186
  }
191
187
  //#endregion
192
188
  //#region src/components/radio/radio.vue?vue&type=script&setup=true&vapor=true&lang.ts
193
- var t0$1 = template("<span data-v-0cdcdcfa>");
194
- var t1 = template("<label data-v-0cdcdcfa><input data-v-0cdcdcfa><span data-v-0cdcdcfa></span>", 1);
189
+ var t0$1 = template("<span data-v-d1001176>");
190
+ var t1 = template("<label data-v-d1001176><input data-v-d1001176><span data-v-d1001176></span>", 1);
195
191
  //#endregion
196
192
  //#region src/components/radio/radio.vue
197
193
  var radio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -244,26 +240,24 @@ var radio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
244
240
  const rootAttrs = computed(() => getRootAttrs({
245
241
  class: rootClass.value,
246
242
  style: rootStyle.value,
247
- "data-disabled": presence(isDisabled.value),
248
- "data-invalid": presence(isInvalid.value),
243
+ "data-disabled": toPresenceAttribute(isDisabled.value),
244
+ "data-invalid": toPresenceAttribute(isInvalid.value),
249
245
  "data-state": isChecked.value ? "checked" : "unchecked"
250
246
  }));
251
247
  const nativeInputAttrs = computed(() => {
252
- const { class: groupClass, style: groupStyle, onChange: groupOnChange, ...groupForwardedAttrs } = groupInputAttrs.value ?? {};
253
- const { class: itemClass, style: itemStyle, onChange: itemOnChange, ...itemForwardedAttrs } = props.inputAttrs ?? {};
248
+ const groupAttrs = groupInputAttrs.value ?? {};
249
+ const itemAttrs = props.inputAttrs ?? {};
250
+ const { compatibilityClass: groupClass, compatibilityStyle: groupStyle, forwardedAttributes: groupForwardedAttributes } = splitCompatibilityAttributes(groupAttrs);
251
+ const { compatibilityClass: itemClass, compatibilityStyle: itemStyle, forwardedAttributes: itemForwardedAttributes } = splitCompatibilityAttributes(itemAttrs);
254
252
  return {
255
- ...groupForwardedAttrs,
256
- ...itemForwardedAttrs,
253
+ ...groupForwardedAttributes,
254
+ ...itemForwardedAttributes,
257
255
  ...getPartAttrs("input", {
258
256
  class: "rp-radio__native",
259
257
  compatibilityClass: [groupClass, itemClass],
260
258
  compatibilityStyle: [groupStyle, itemStyle]
261
259
  }),
262
- onChange(event) {
263
- onSelect(event);
264
- groupOnChange?.(event);
265
- itemOnChange?.(event);
266
- }
260
+ onChange: composeEventHandlers(onSelect, groupAttrs.onChange, itemAttrs.onChange)
267
261
  };
268
262
  });
269
263
  __expose({
@@ -280,7 +274,7 @@ var radio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
280
274
  const _isChecked = unref(isChecked);
281
275
  const _isDisabled = unref(isDisabled);
282
276
  const _isInvalid = unref(isInvalid);
283
- const _presence = unref(presence);
277
+ const _toPresenceAttribute = unref(toPresenceAttribute);
284
278
  setDynamicProps(n6, [rootAttrs.value]);
285
279
  setDynamicProps(n0, [_nativeInputAttrs, {
286
280
  id: _control.id,
@@ -296,8 +290,8 @@ var radio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
296
290
  "aria-describedby": _control.ariaDescribedby,
297
291
  "aria-invalid": _isInvalid || void 0,
298
292
  "aria-required": unref(isRequired) || void 0,
299
- "data-disabled": _presence(_isDisabled),
300
- "data-invalid": _presence(_isInvalid),
293
+ "data-disabled": _toPresenceAttribute(_isDisabled),
294
+ "data-invalid": _toPresenceAttribute(_isInvalid),
301
295
  "data-state": _isChecked ? "checked" : "unchecked"
302
296
  }]);
303
297
  setDynamicProps(n1, [unref(getPartAttrs)("indicator", { class: "rp-radio__dot" })]);
@@ -312,10 +306,10 @@ var radio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
312
306
  });
313
307
  return n6;
314
308
  }
315
- }), [["__scopeId", "data-v-0cdcdcfa"]]);
309
+ }), [["__scopeId", "data-v-d1001176"]]);
316
310
  //#endregion
317
311
  //#region src/components/radio/radio-group.vue?vue&type=script&setup=true&vapor=true&lang.ts
318
- var t0 = template("<div data-v-fc40a22d>", 1);
312
+ var t0 = template("<div data-v-9c16fa9f>", 1);
319
313
  //#endregion
320
314
  //#region src/components/radio/radio-group.vue
321
315
  var radio_group_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -370,8 +364,8 @@ var radio_group_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
370
364
  class: rootClass.value,
371
365
  role: "radiogroup",
372
366
  "data-orientation": props.orientation,
373
- "data-disabled": presence(control.disabled),
374
- "data-invalid": presence(control.invalid),
367
+ "data-disabled": toPresenceAttribute(control.disabled),
368
+ "data-invalid": toPresenceAttribute(control.invalid),
375
369
  "aria-label": props.ariaLabel || void 0,
376
370
  "aria-labelledby": control.ariaLabelledby,
377
371
  "aria-describedby": control.ariaDescribedby,
@@ -385,6 +379,6 @@ var radio_group_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
385
379
  createSlot("default", null, null, 1);
386
380
  return n1;
387
381
  }
388
- }), [["__scopeId", "data-v-fc40a22d"]]);
382
+ }), [["__scopeId", "data-v-9c16fa9f"]]);
389
383
  //#endregion
390
384
  export { radioParts as i, radio_default as n, radioGroupParts as r, radio_group_default as t };
@@ -0,0 +1,34 @@
1
+ //#region src/utils/rafScheduler.ts
2
+ function createRafScheduler(callback, getView) {
3
+ let frameId;
4
+ let frameView;
5
+ let generation = 0;
6
+ function cancel() {
7
+ generation += 1;
8
+ if (frameId !== void 0) frameView?.cancelAnimationFrame(frameId);
9
+ frameId = void 0;
10
+ frameView = void 0;
11
+ }
12
+ function schedule() {
13
+ if (frameId !== void 0) return;
14
+ const view = getView();
15
+ if (!view?.requestAnimationFrame) {
16
+ callback();
17
+ return;
18
+ }
19
+ const scheduledGeneration = generation;
20
+ frameView = view;
21
+ frameId = view.requestAnimationFrame(() => {
22
+ if (generation !== scheduledGeneration || frameView !== view) return;
23
+ frameId = void 0;
24
+ frameView = void 0;
25
+ callback();
26
+ });
27
+ }
28
+ return {
29
+ cancel,
30
+ schedule
31
+ };
32
+ }
33
+ //#endregion
34
+ export { createRafScheduler as t };
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-scroll-area[data-v-f5c4e940] {
2
+ .rp-scroll-area[data-v-cd2fe353] {
3
3
  --_rp-scroll-area-scrollbar-size: 10px;
4
4
  --_rp-scroll-area-scrollbar-padding: 2px;
5
5
  --_rp-scroll-area-thumb-bg: var(--rp-color-dimmed);
@@ -11,7 +11,7 @@
11
11
  min-width: 0;
12
12
  overflow: hidden;
13
13
  }
14
- .rp-scroll-area__viewport[data-v-f5c4e940] {
14
+ .rp-scroll-area__viewport[data-v-cd2fe353] {
15
15
  box-sizing: border-box;
16
16
  flex: 1 1 auto;
17
17
  width: 100%;
@@ -22,33 +22,33 @@
22
22
  scrollbar-width: none;
23
23
  outline: none;
24
24
  }
25
- .rp-scroll-area__viewport[data-v-f5c4e940]::-webkit-scrollbar {
25
+ .rp-scroll-area__viewport[data-v-cd2fe353]::-webkit-scrollbar {
26
26
  display: none;
27
27
  }
28
- .rp-scroll-area__viewport[data-v-f5c4e940]:focus-visible {
28
+ .rp-scroll-area__viewport[data-v-cd2fe353]:focus-visible {
29
29
  outline: var(--rp-border-width-medium) solid var(--rp-color-focus-ring);
30
30
  outline-offset: calc(-1 * var(--rp-border-width-medium));
31
31
  }
32
- .rp-scroll-area[data-scrollbars=both] .rp-scroll-area__viewport[data-v-f5c4e940] {
32
+ .rp-scroll-area[data-scrollbars=both] .rp-scroll-area__viewport[data-v-cd2fe353] {
33
33
  overflow: scroll;
34
34
  }
35
- .rp-scroll-area[data-scrollbars=x] .rp-scroll-area__viewport[data-v-f5c4e940] {
35
+ .rp-scroll-area[data-scrollbars=x] .rp-scroll-area__viewport[data-v-cd2fe353] {
36
36
  overflow-x: scroll;
37
37
  overflow-y: hidden;
38
38
  }
39
- .rp-scroll-area[data-scrollbars=y] .rp-scroll-area__viewport[data-v-f5c4e940] {
39
+ .rp-scroll-area[data-scrollbars=y] .rp-scroll-area__viewport[data-v-cd2fe353] {
40
40
  overflow-x: hidden;
41
41
  overflow-y: scroll;
42
42
  }
43
- .rp-scroll-area[data-scrollbars=none] .rp-scroll-area__viewport[data-v-f5c4e940] {
43
+ .rp-scroll-area[data-scrollbars=none] .rp-scroll-area__viewport[data-v-cd2fe353] {
44
44
  overflow: hidden;
45
45
  }
46
- .rp-scroll-area__content[data-v-f5c4e940] {
46
+ .rp-scroll-area__content[data-v-cd2fe353] {
47
47
  display: table;
48
48
  box-sizing: border-box;
49
49
  min-width: 100%;
50
50
  }
51
- .rp-scroll-area__scrollbar[data-v-f5c4e940] {
51
+ .rp-scroll-area__scrollbar[data-v-cd2fe353] {
52
52
  position: absolute;
53
53
  z-index: 1;
54
54
  box-sizing: border-box;
@@ -60,56 +60,62 @@
60
60
  user-select: none;
61
61
  transition: opacity var(--rp-transition-fast);
62
62
  }
63
- .rp-scroll-area__scrollbar[data-visible][data-v-f5c4e940] {
63
+ .rp-scroll-area__scrollbar[data-direction=rtl][data-v-cd2fe353] {
64
+ direction: rtl;
65
+ }
66
+ .rp-scroll-area__scrollbar[data-visible][data-v-cd2fe353] {
64
67
  opacity: 1;
65
68
  pointer-events: auto;
66
69
  }
67
- .rp-scroll-area__scrollbar[data-v-f5c4e940]:focus-visible {
70
+ .rp-scroll-area__scrollbar[data-v-cd2fe353]:focus-visible {
68
71
  outline: var(--rp-border-width-medium) solid var(--rp-color-focus-ring);
69
72
  outline-offset: calc(-1 * var(--rp-border-width-medium));
70
73
  }
71
- .rp-scroll-area__scrollbar--horizontal[data-v-f5c4e940] {
74
+ .rp-scroll-area__scrollbar--horizontal[data-v-cd2fe353] {
72
75
  inset-inline: 0;
73
76
  bottom: 0;
74
77
  align-items: center;
75
78
  width: auto;
76
79
  height: var(--_rp-scroll-area-scrollbar-size);
77
80
  }
78
- .rp-scroll-area__scrollbar--vertical[data-v-f5c4e940] {
81
+ .rp-scroll-area__scrollbar--vertical[data-v-cd2fe353] {
79
82
  inset-block: 0;
80
83
  inset-inline-end: 0;
81
84
  justify-content: center;
82
85
  width: var(--_rp-scroll-area-scrollbar-size);
83
86
  height: auto;
84
87
  }
85
- .rp-scroll-area[data-scrollbar-y-active] .rp-scroll-area__scrollbar--horizontal[data-v-f5c4e940] {
88
+ .rp-scroll-area[data-scrollbar-y-active] .rp-scroll-area__scrollbar--horizontal[data-v-cd2fe353] {
86
89
  inset-inline-end: var(--_rp-scroll-area-scrollbar-size);
87
90
  }
88
- .rp-scroll-area[data-scrollbar-x-active] .rp-scroll-area__scrollbar--vertical[data-v-f5c4e940] {
91
+ .rp-scroll-area[data-scrollbar-x-active] .rp-scroll-area__scrollbar--vertical[data-v-cd2fe353] {
89
92
  inset-block-end: var(--_rp-scroll-area-scrollbar-size);
90
93
  }
91
- .rp-scroll-area__thumb[data-v-f5c4e940] {
94
+ .rp-scroll-area__thumb[data-v-cd2fe353] {
92
95
  flex: 0 0 auto;
93
96
  background: var(--_rp-scroll-area-thumb-bg);
94
97
  border-radius: var(--rp-radius-full);
95
98
  transition: background-color var(--rp-transition-fast);
96
99
  }
97
- .rp-scroll-area__scrollbar:hover .rp-scroll-area__thumb[data-v-f5c4e940], .rp-scroll-area__scrollbar:focus-visible .rp-scroll-area__thumb[data-v-f5c4e940] {
100
+ .rp-scroll-area__scrollbar:hover .rp-scroll-area__thumb[data-v-cd2fe353], .rp-scroll-area__scrollbar:focus-visible .rp-scroll-area__thumb[data-v-cd2fe353] {
98
101
  background: var(--_rp-scroll-area-thumb-bg-hover);
99
102
  }
100
- .rp-scroll-area__scrollbar--horizontal .rp-scroll-area__thumb[data-v-f5c4e940] {
103
+ .rp-scroll-area__scrollbar--horizontal .rp-scroll-area__thumb[data-v-cd2fe353] {
101
104
  width: var(--_rp-scroll-area-thumb-size);
102
105
  height: 100%;
103
106
  transform: translateX(var(--_rp-scroll-area-thumb-offset));
104
107
  }
105
- .rp-scroll-area__scrollbar--vertical .rp-scroll-area__thumb[data-v-f5c4e940] {
108
+ .rp-scroll-area__scrollbar--horizontal[data-direction=rtl] .rp-scroll-area__thumb[data-v-cd2fe353] {
109
+ transform: translateX(calc(-1 * var(--_rp-scroll-area-thumb-offset)));
110
+ }
111
+ .rp-scroll-area__scrollbar--vertical .rp-scroll-area__thumb[data-v-cd2fe353] {
106
112
  width: 100%;
107
113
  height: var(--_rp-scroll-area-thumb-size);
108
114
  transform: translateY(var(--_rp-scroll-area-thumb-offset));
109
115
  }
110
- .rp-scroll-area__corner[data-v-f5c4e940] {
116
+ .rp-scroll-area__corner[data-v-cd2fe353] {
111
117
  position: absolute;
112
- right: 0;
118
+ inset-inline-end: 0;
113
119
  bottom: 0;
114
120
  z-index: 1;
115
121
  width: var(--_rp-scroll-area-scrollbar-size);
@@ -118,13 +124,16 @@
118
124
  pointer-events: none;
119
125
  transition: opacity var(--rp-transition-fast);
120
126
  }
121
- .rp-scroll-area__corner[data-visible][data-v-f5c4e940] {
127
+ .rp-scroll-area__corner[data-direction=rtl][data-v-cd2fe353] {
128
+ direction: rtl;
129
+ }
130
+ .rp-scroll-area__corner[data-visible][data-v-cd2fe353] {
122
131
  opacity: 1;
123
132
  }
124
133
  @media (prefers-reduced-motion: reduce) {
125
- .rp-scroll-area__scrollbar[data-v-f5c4e940],
126
- .rp-scroll-area__corner[data-v-f5c4e940],
127
- .rp-scroll-area__thumb[data-v-f5c4e940] {
134
+ .rp-scroll-area__scrollbar[data-v-cd2fe353],
135
+ .rp-scroll-area__corner[data-v-cd2fe353],
136
+ .rp-scroll-area__thumb[data-v-cd2fe353] {
128
137
  transition: none;
129
138
  }
130
139
  }