ropav 0.1.6 → 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 (208) hide show
  1. package/README.md +6 -0
  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/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 +9 -17
  12. package/dist/badge.css +16 -16
  13. package/dist/badge.js +5 -5
  14. package/dist/button-group.js +1 -1
  15. package/dist/button-link.js +4 -3
  16. package/dist/button.js +4 -3
  17. package/dist/button.scss_vue_type_style_index_0_src_true_lang.js +1 -1
  18. package/dist/card.js +1 -1
  19. package/dist/checkbox.css +32 -32
  20. package/dist/checkbox.js +22 -28
  21. package/dist/collapse.css +6 -6
  22. package/dist/collapse.js +7 -6
  23. package/dist/collectionNavigation.js +2 -99
  24. package/dist/color-input.css +19 -19
  25. package/dist/color-input.js +14 -13
  26. package/dist/color-picker.css +40 -40
  27. package/dist/color-picker.js +221 -200
  28. package/dist/color-picker2.js +1 -9
  29. package/dist/color-swatch.css +4 -4
  30. package/dist/color-swatch.js +6 -8
  31. package/dist/color.js +5 -10
  32. package/dist/componentColors.js +125 -84
  33. package/dist/componentRef.js +26 -0
  34. package/dist/components/accordion/accordionContext.d.ts +3 -0
  35. package/dist/components/accordion/accordionModel.d.ts +14 -0
  36. package/dist/components/accordion/index.d.ts +2 -1
  37. package/dist/components/accordion/index.js +1 -1
  38. package/dist/components/accordion/types.d.ts +1 -2
  39. package/dist/components/accordion/useAccordion.d.ts +2 -2
  40. package/dist/components/accordion/useAccordionItem.d.ts +2 -0
  41. package/dist/components/checkbox/useCheckbox.d.ts +1 -2
  42. package/dist/components/color-picker/index.js +2 -2
  43. package/dist/components/color-picker/types.d.ts +2 -2
  44. package/dist/components/color-picker/useColorPickerSaturation.d.ts +22 -0
  45. package/dist/components/color-picker/useColorPickerSlider.d.ts +20 -0
  46. package/dist/components/color-picker/useColorPickerValue.d.ts +1 -1
  47. package/dist/components/dialog/{dialog-core.d.ts → dialogContext.d.ts} +1 -5
  48. package/dist/components/dialog/useDialogContentInteractions.d.ts +18 -0
  49. package/dist/components/dialog/useDialogRootState.d.ts +19 -0
  50. package/dist/components/dropdown-menu/dropdown-menu-item-row.d.ts +1 -1
  51. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +1 -1
  52. package/dist/components/dropdown-menu/dropdown-menu-model.d.ts +8 -0
  53. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +2 -2
  54. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +1 -1
  55. package/dist/components/dropdown-menu/dropdown-menu-sub.d.ts +1 -1
  56. package/dist/components/dropdown-menu/{dropdown-menu-primitive-core.d.ts → dropdownMenuContext.d.ts} +16 -18
  57. package/dist/components/dropdown-menu/dropdownMenuDataModel.d.ts +20 -0
  58. package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -0
  59. package/dist/components/dropdown-menu/dropdownMenuInteractionNavigation.d.ts +24 -0
  60. package/dist/components/dropdown-menu/dropdownMenuInteractionRegistry.d.ts +42 -0
  61. package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +85 -0
  62. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -11
  63. package/dist/components/dropdown-menu/useDropdownMenuContextTrigger.d.ts +9 -0
  64. package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +34 -0
  65. package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +22 -0
  66. package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +6 -5
  67. package/dist/components/dropdown-menu/useDropdownMenuInteractionDismissal.d.ts +17 -0
  68. package/dist/components/dropdown-menu/useDropdownMenuInteractionKeyboard.d.ts +19 -0
  69. package/dist/components/dropdown-menu/useDropdownMenuPortalPosition.d.ts +0 -1
  70. package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +29 -0
  71. package/dist/components/dropdown-menu/useDropdownMenuPrimitiveContent.d.ts +2 -2
  72. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +1 -1
  73. package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +19 -0
  74. package/dist/components/floating/hoverDisclosureInteractionModel.d.ts +42 -0
  75. package/dist/components/floating/index.js +1 -1
  76. package/dist/components/floating/useFloatingPosition.d.ts +0 -1
  77. package/dist/components/floating/useHoverDisclosureInteractions.d.ts +32 -0
  78. package/dist/components/floating/useHoverDisclosureOpenState.d.ts +25 -0
  79. package/dist/components/floating/useHoverDisclosureTargetBinding.d.ts +27 -0
  80. package/dist/components/number-input/numberInputModel.d.ts +15 -0
  81. package/dist/components/number-input/useNumberInput.d.ts +3 -17
  82. package/dist/components/pagination/index.d.ts +1 -1
  83. package/dist/components/pagination/index.js +1 -1
  84. package/dist/components/pagination/paginationModel.d.ts +4 -0
  85. package/dist/components/pagination/types.d.ts +15 -0
  86. package/dist/components/pagination/usePagination.d.ts +3 -19
  87. package/dist/components/popover/usePopoverBindings.d.ts +16 -0
  88. package/dist/components/progress/progressModel.d.ts +8 -0
  89. package/dist/components/progress/useProgress.d.ts +0 -6
  90. package/dist/components/radio/useRadio.d.ts +1 -2
  91. package/dist/components/scroll-area/scroll-area.d.ts +1 -1
  92. package/dist/components/scroll-area/scrollAreaModel.d.ts +64 -0
  93. package/dist/components/scroll-area/useScrollArea.d.ts +70 -53
  94. package/dist/components/scroll-area/{useScrollAreaPresentation.d.ts → useScrollAreaAttributes.d.ts} +37 -17
  95. package/dist/components/scroll-area/useScrollAreaDerivedState.d.ts +8 -0
  96. package/dist/components/scroll-area/useScrollAreaMeasurement.d.ts +35 -0
  97. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +10 -8
  98. package/dist/components/scroll-area/useScrollAreaVisibility.d.ts +15 -20
  99. package/dist/components/slider/rangeSliderModel.d.ts +41 -0
  100. package/dist/components/slider/{sliderCore.d.ts → sliderModel.d.ts} +0 -1
  101. package/dist/components/slider/useRangeSlider.d.ts +8 -16
  102. package/dist/components/slider/useRangeSliderValueState.d.ts +40 -0
  103. package/dist/components/slider/useSlider.d.ts +7 -13
  104. package/dist/components/slider/useSliderPointerPreview.d.ts +22 -0
  105. package/dist/components/slider/useSliderTooltipState.d.ts +40 -0
  106. package/dist/components/slider/useSliderValueState.d.ts +33 -0
  107. package/dist/components/teleport-provider/index.js +1 -1
  108. package/dist/components/teleport-provider/useTeleportTarget.d.ts +1 -2
  109. package/dist/components/toast/useToastLifecycle.d.ts +19 -0
  110. package/dist/components/tooltip/useTooltip.d.ts +1 -2
  111. package/dist/css.js +12 -0
  112. package/dist/dialog.js +226 -218
  113. package/dist/dropdown-menu.js +1458 -1097
  114. package/dist/events.js +59 -0
  115. package/dist/field.css +8 -8
  116. package/dist/field.js +13 -25
  117. package/dist/floating.js +548 -319
  118. package/dist/floatingOffset.js +11 -0
  119. package/dist/focus-trap.js +7 -5
  120. package/dist/focusNavigation.js +37 -0
  121. package/dist/icon-button.css +8 -8
  122. package/dist/icon-button.js +7 -6
  123. package/dist/index.js +6 -6
  124. package/dist/input.css +24 -24
  125. package/dist/input.js +19 -31
  126. package/dist/interactive.js +18 -0
  127. package/dist/modal.js +1 -1
  128. package/dist/number-input.css +18 -18
  129. package/dist/number-input.js +14 -12
  130. package/dist/number.js +22 -0
  131. package/dist/overlay.js +3 -2
  132. package/dist/pagination.css +28 -28
  133. package/dist/pagination.js +65 -63
  134. package/dist/pointer.js +9 -0
  135. package/dist/popover.css +34 -34
  136. package/dist/popover.js +85 -86
  137. package/dist/progress.js +10 -13
  138. package/dist/query.js +40 -0
  139. package/dist/radio.css +18 -18
  140. package/dist/radio.js +30 -36
  141. package/dist/rafScheduler.js +34 -0
  142. package/dist/scroll-area.css +28 -28
  143. package/dist/scroll-area.js +512 -516
  144. package/dist/select.css +45 -45
  145. package/dist/select.js +36 -44
  146. package/dist/slider.css +191 -191
  147. package/dist/slider.js +691 -618
  148. package/dist/styles-api.d.ts +0 -1
  149. package/dist/styles-api.js +1 -4
  150. package/dist/switch.css +17 -17
  151. package/dist/switch.js +14 -15
  152. package/dist/tabs.css +43 -43
  153. package/dist/tabs.js +29 -56
  154. package/dist/text.js +17 -0
  155. package/dist/textarea.css +26 -26
  156. package/dist/textarea.js +21 -32
  157. package/dist/toast.css +26 -26
  158. package/dist/toast.js +141 -118
  159. package/dist/tooltip.css +12 -12
  160. package/dist/tooltip.js +36 -40
  161. package/dist/useCollapse.js +8 -11
  162. package/dist/useControlState.js +3 -6
  163. package/dist/useFloatingPosition.js +140 -10
  164. package/dist/useOverlayZIndex.js +1 -5
  165. package/dist/useTeleportTarget.js +3 -14
  166. package/dist/useTypeahead.js +94 -0
  167. package/dist/utils/aria.d.ts +3 -0
  168. package/dist/utils/attributes.d.ts +2 -0
  169. package/dist/utils/bem.d.ts +3 -0
  170. package/dist/utils/collectionNavigation.d.ts +2 -0
  171. package/dist/utils/color.d.ts +7 -0
  172. package/dist/{components/color-picker/color-picker-utils.d.ts → utils/colorPicker.d.ts} +5 -4
  173. package/dist/utils/componentColors.d.ts +7 -0
  174. package/dist/utils/css.d.ts +3 -0
  175. package/dist/utils/dom/ancestry.d.ts +7 -0
  176. package/dist/utils/dom/attributes.d.ts +16 -0
  177. package/dist/utils/dom/componentRef.d.ts +4 -0
  178. package/dist/utils/dom/events.d.ts +5 -0
  179. package/dist/utils/dom/focusNavigation.d.ts +7 -0
  180. package/dist/utils/dom/interactive.d.ts +2 -0
  181. package/dist/utils/dom/pointer.d.ts +2 -0
  182. package/dist/utils/dom/query.d.ts +4 -0
  183. package/dist/utils/dom/scroll.d.ts +23 -0
  184. package/dist/utils/floatingOffset.d.ts +10 -0
  185. package/dist/utils/geometry.d.ts +14 -0
  186. package/dist/utils/indexPath.d.ts +6 -0
  187. package/dist/utils/number.d.ts +4 -0
  188. package/dist/utils/rafScheduler.d.ts +4 -0
  189. package/dist/utils/text.d.ts +2 -0
  190. package/docs/code-architecture.md +118 -0
  191. package/docs/public-floating-api.md +6 -5
  192. package/package.json +13 -12
  193. package/dist/components/dropdown-menu/dropdown-menu-outside.d.ts +0 -3
  194. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -21
  195. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +0 -36
  196. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +0 -29
  197. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +0 -52
  198. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +0 -17
  199. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +0 -18
  200. package/dist/components/scroll-area/scrollAreaCore.d.ts +0 -30
  201. package/dist/components/scroll-area/useScrollAreaControls.d.ts +0 -25
  202. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +0 -38
  203. /package/dist/components/alert/{useAlertColor.d.ts → alertColor.d.ts} +0 -0
  204. /package/dist/components/avatar/{useAvatarColor.d.ts → avatarColor.d.ts} +0 -0
  205. /package/dist/components/badge/{useBadgeColor.d.ts → badgeColor.d.ts} +0 -0
  206. /package/dist/components/button/{useButtonColor.d.ts → buttonColor.d.ts} +0 -0
  207. /package/dist/components/color-swatch/{useColorSwatchColor.d.ts → colorSwatchColor.d.ts} +0 -0
  208. /package/dist/components/toast/{useToastColor.d.ts → toastColor.d.ts} +0 -0
@@ -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 };
@@ -1,38 +1,38 @@
1
1
  @layer ropav.components {
2
- .rp-icon-button[data-v-135bc879] {
2
+ .rp-icon-button[data-v-91d51d1d] {
3
3
  width: var(--_rp-button-height);
4
4
  padding: 0;
5
5
  }
6
- .rp-icon-button__icon[data-v-135bc879] {
6
+ .rp-icon-button__icon[data-v-91d51d1d] {
7
7
  width: 1em;
8
8
  height: 1em;
9
9
  flex-shrink: 0;
10
10
  }
11
- .rp-icon-button__icon[data-v-135bc879] {
11
+ .rp-icon-button__icon[data-v-91d51d1d] {
12
12
  display: inline-flex;
13
13
  align-items: center;
14
14
  justify-content: center;
15
15
  line-height: 0;
16
16
  }
17
- .rp-icon-button__icon[data-v-135bc879] > svg {
17
+ .rp-icon-button__icon[data-v-91d51d1d] > svg {
18
18
  display: block;
19
19
  width: 1em;
20
20
  height: 1em;
21
21
  }
22
- .rp-icon-button__spinner[data-v-135bc879] {
22
+ .rp-icon-button__spinner[data-v-91d51d1d] {
23
23
  display: block;
24
24
  width: 1em;
25
25
  height: 1em;
26
26
  flex-shrink: 0;
27
27
  transform-origin: center;
28
- animation: rp-spinner-spin-135bc879 700ms linear infinite;
28
+ animation: rp-spinner-spin-91d51d1d 700ms linear infinite;
29
29
  }
30
30
  @media (prefers-reduced-motion: reduce) {
31
- .rp-icon-button__spinner[data-v-135bc879] {
31
+ .rp-icon-button__spinner[data-v-91d51d1d] {
32
32
  animation: none;
33
33
  }
34
34
  }
35
- @keyframes rp-spinner-spin-135bc879 {
35
+ @keyframes rp-spinner-spin-91d51d1d {
36
36
  to {
37
37
  transform: rotate(360deg);
38
38
  }
@@ -1,12 +1,13 @@
1
1
  import './icon-button.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
6
  import { n as loader_circle_default, t as getButtonColorStyle } from "./button.scss_vue_type_style_index_0_src_true_lang.js";
6
7
  import { computed, createComponent, createIf, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, template, unref } from "vue";
7
8
  //#region src/components/icon-button/icon-button.vue?vue&type=script&setup=true&vapor=true&lang.ts
8
- var t0 = template("<span data-v-135bc879>");
9
- var t1 = template("<button data-v-135bc879>", 1);
9
+ var t0 = template("<span data-v-91d51d1d>");
10
+ var t1 = template("<button data-v-91d51d1d>", 1);
10
11
  //#endregion
11
12
  //#region src/components/icon-button/icon-button.vue
12
13
  var icon_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -52,8 +53,8 @@ var icon_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
52
53
  type: props.type,
53
54
  "aria-label": props.ariaLabel || void 0,
54
55
  "aria-busy": props.loading || void 0,
55
- "data-disabled": presence(props.disabled || props.loading),
56
- "data-loading": presence(props.loading)
56
+ "data-disabled": toPresenceAttribute(props.disabled || props.loading),
57
+ "data-loading": toPresenceAttribute(props.loading)
57
58
  }));
58
59
  const n6 = t1();
59
60
  renderEffect(() => setDynamicProps(n6, [rootAttrs.value]));
@@ -69,6 +70,6 @@ var icon_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
69
70
  }, 261);
70
71
  return n6;
71
72
  }
72
- }), [["__scopeId", "data-v-135bc879"]]);
73
+ }), [["__scopeId", "data-v-91d51d1d"]]);
73
74
  //#endregion
74
75
  export { icon_button_default as t };
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { t as useControllableValue } from "./useControllableValue.js";
2
2
  import "./composables/index.js";
3
+ import { a as useAccordion, i as accordion_default, n as accordionParts, o as useAccordionItem, r as accordion_item_default, t as accordionItemParts } from "./accordion.js";
3
4
  import { t as useCollapse } from "./useCollapse.js";
4
- import { a as accordionItemParts, i as useAccordionItem, n as accordion_default, o as accordionParts, r as useAccordion, t as accordion_item_default } from "./accordion.js";
5
5
  import { a as alert_default, i as alertVariants, n as alertParts, r as alertRadiuses, t as alertColors } from "./alert.js";
6
6
  import { n as aspect_ratio_default, t as aspectRatioParts } from "./aspect-ratio.js";
7
7
  import { a as avatarVariants, i as avatarSizes, n as avatarParts, o as avatar_default, r as avatarRadiuses, t as avatarColors } from "./avatar.js";
@@ -14,14 +14,14 @@ import { n as checkbox_default, t as checkboxParts } from "./checkbox.js";
14
14
  import { n as collapse_default, t as collapseParts } from "./collapse.js";
15
15
  import { n as color_input_default, t as colorInputParts } from "./color-input.js";
16
16
  import { t as color_swatch_default } from "./color-swatch.js";
17
- import { t as color_picker_default } from "./color-picker.js";
17
+ import { n as colorPickerFormats, t as color_picker_default } from "./color-picker.js";
18
18
  import { t as input_default } from "./input.js";
19
19
  import { n as useOverlayZIndex } from "./useOverlayZIndex.js";
20
20
  import { t as useFocusTrap } from "./useFocusTrap.js";
21
- import { n as useFloatingPosition } from "./useFloatingPosition.js";
22
- import { r as useTeleportTarget } from "./useTeleportTarget.js";
21
+ import { t as useFloatingPosition } from "./useFloatingPosition.js";
22
+ import { n as useTeleportTarget } from "./useTeleportTarget.js";
23
23
  import { t as popover_default } from "./popover.js";
24
- import { n as colorPickerParts, r as colorPickerSizes, t as colorPickerFormats } from "./color-picker2.js";
24
+ import { n as colorPickerSizes, t as colorPickerParts } from "./color-picker2.js";
25
25
  import { t as colorSwatchParts } from "./color-swatch2.js";
26
26
  import { a as dialog_overlay_default, c as dialog_close_default, i as dialog_portal_default, n as dialog_title_default, o as dialog_description_default, r as dialog_root_default, s as dialog_content_default, t as dialog_trigger_default } from "./dialog.js";
27
27
  import { _ as dropdown_menu_content_default, a as dropdown_menu_trigger_default, c as dropdown_menu_sub_default, d as dropdown_menu_radio_item_default, f as dropdown_menu_radio_group_default, g as dropdown_menu_context_trigger_default, h as dropdown_menu_item_indicator_default, i as useDropdownMenu, l as dropdown_menu_separator_default, m as dropdown_menu_label_default, n as dropdownMenuParts, o as dropdown_menu_sub_trigger_default, p as dropdown_menu_portal_default, r as dropdown_menu_default, s as dropdown_menu_sub_content_default, t as DropdownMenuItem, u as dropdown_menu_root_default, v as dropdown_menu_checkbox_item_default } from "./dropdown-menu.js";
@@ -36,7 +36,7 @@ import { t as scroll_area_default } from "./scroll-area.js";
36
36
  import { n as modal_default, t as modalParts } from "./modal.js";
37
37
  import { n as number_input_default, t as numberInputParts } from "./number-input.js";
38
38
  import { n as overlay_layer_provider_default, t as overlayParts } from "./overlay2.js";
39
- import { a as pagination_default, c as normalizePaginationTotal, i as paginationSizes, l as usePagination, n as paginationParts, o as getPaginationItems, r as paginationRadiuses, s as normalizePaginationPage, t as paginationColors } from "./pagination.js";
39
+ import { a as pagination_default, c as normalizePaginationPage, i as paginationSizes, l as normalizePaginationTotal, n as paginationParts, o as usePagination, r as paginationRadiuses, s as getPaginationItems, t as paginationColors } from "./pagination.js";
40
40
  import { n as popoverPlacements, t as popoverParts } from "./popover2.js";
41
41
  import { a as progress_default, i as progressSizes, n as progressParts, r as progressRadiuses, t as progressColors } from "./progress.js";
42
42
  import { i as radioParts, n as radio_default, r as radioGroupParts, t as radio_group_default } from "./radio.js";
package/dist/input.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-input[data-v-51eae1ef] {
2
+ .rp-input[data-v-803913b6] {
3
3
  --_rp-input-height: var(--rp-size-control-md);
4
4
  --_rp-input-padding-x: calc(var(--rp-size-control-md) / 3);
5
5
  --_rp-input-font-size: var(--rp-font-size-md);
@@ -20,81 +20,81 @@
20
20
  cursor: text;
21
21
  transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
22
22
  }
23
- .rp-input[data-v-51eae1ef]:hover:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
23
+ .rp-input[data-v-803913b6]:hover:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
24
24
  border-color: var(--rp-color-control-border-hover);
25
25
  }
26
- .rp-input[data-v-51eae1ef]:focus-within:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
26
+ .rp-input[data-v-803913b6]:focus-within:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
27
27
  border-color: var(--rp-color-control-border-focus);
28
28
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
29
29
  }
30
- .rp-input[data-v-51eae1ef] {
30
+ .rp-input[data-v-803913b6] {
31
31
  height: var(--_rp-input-height);
32
32
  padding: 0 var(--_rp-input-padding-x);
33
33
  font-size: var(--_rp-input-font-size);
34
34
  border-radius: var(--_rp-input-radius);
35
35
  }
36
- .rp-input--size-xs[data-v-51eae1ef] {
36
+ .rp-input--size-xs[data-v-803913b6] {
37
37
  --_rp-input-height: var(--rp-size-control-xs);
38
38
  --_rp-input-padding-x: calc(var(--rp-size-control-xs) / 3);
39
39
  --_rp-input-font-size: var(--rp-font-size-xs);
40
40
  }
41
- .rp-input--size-sm[data-v-51eae1ef] {
41
+ .rp-input--size-sm[data-v-803913b6] {
42
42
  --_rp-input-height: var(--rp-size-control-sm);
43
43
  --_rp-input-padding-x: calc(var(--rp-size-control-sm) / 3);
44
44
  --_rp-input-font-size: var(--rp-font-size-sm);
45
45
  }
46
- .rp-input--size-md[data-v-51eae1ef] {
46
+ .rp-input--size-md[data-v-803913b6] {
47
47
  --_rp-input-height: var(--rp-size-control-md);
48
48
  --_rp-input-padding-x: calc(var(--rp-size-control-md) / 3);
49
49
  --_rp-input-font-size: var(--rp-font-size-md);
50
50
  }
51
- .rp-input--size-lg[data-v-51eae1ef] {
51
+ .rp-input--size-lg[data-v-803913b6] {
52
52
  --_rp-input-height: var(--rp-size-control-lg);
53
53
  --_rp-input-padding-x: calc(var(--rp-size-control-lg) / 3);
54
54
  --_rp-input-font-size: var(--rp-font-size-lg);
55
55
  }
56
- .rp-input--size-xl[data-v-51eae1ef] {
56
+ .rp-input--size-xl[data-v-803913b6] {
57
57
  --_rp-input-height: var(--rp-size-control-xl);
58
58
  --_rp-input-padding-x: calc(var(--rp-size-control-xl) / 3);
59
59
  --_rp-input-font-size: var(--rp-font-size-xl);
60
60
  }
61
- .rp-input--radius-xs[data-v-51eae1ef] {
61
+ .rp-input--radius-xs[data-v-803913b6] {
62
62
  --_rp-input-radius: var(--rp-radius-xs);
63
63
  }
64
- .rp-input--radius-sm[data-v-51eae1ef] {
64
+ .rp-input--radius-sm[data-v-803913b6] {
65
65
  --_rp-input-radius: var(--rp-radius-sm);
66
66
  }
67
- .rp-input--radius-md[data-v-51eae1ef] {
67
+ .rp-input--radius-md[data-v-803913b6] {
68
68
  --_rp-input-radius: var(--rp-radius-md);
69
69
  }
70
- .rp-input--radius-lg[data-v-51eae1ef] {
70
+ .rp-input--radius-lg[data-v-803913b6] {
71
71
  --_rp-input-radius: var(--rp-radius-lg);
72
72
  }
73
- .rp-input--radius-xl[data-v-51eae1ef] {
73
+ .rp-input--radius-xl[data-v-803913b6] {
74
74
  --_rp-input-radius: var(--rp-radius-xl);
75
75
  }
76
- .rp-input--disabled[data-v-51eae1ef] {
76
+ .rp-input--disabled[data-v-803913b6] {
77
77
  opacity: var(--rp-opacity-disabled);
78
78
  cursor: not-allowed;
79
79
  }
80
- .rp-input--valid[data-v-51eae1ef] {
80
+ .rp-input--valid[data-v-803913b6] {
81
81
  border-color: var(--_rp-input-valid-border);
82
82
  }
83
- .rp-input--valid[data-v-51eae1ef]:focus-within:not(.rp-input--disabled) {
83
+ .rp-input--valid[data-v-803913b6]:focus-within:not(.rp-input--disabled) {
84
84
  border-color: var(--_rp-input-valid-border);
85
85
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-input-valid-ring);
86
86
  }
87
- .rp-input--invalid[data-v-51eae1ef] {
87
+ .rp-input--invalid[data-v-803913b6] {
88
88
  border-color: var(--_rp-input-invalid-border);
89
89
  }
90
- .rp-input--invalid[data-v-51eae1ef]:focus-within:not(.rp-input--disabled) {
90
+ .rp-input--invalid[data-v-803913b6]:focus-within:not(.rp-input--disabled) {
91
91
  border-color: var(--_rp-input-invalid-border);
92
92
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-input-invalid-ring);
93
93
  }
94
- .rp-input--readonly[data-v-51eae1ef] {
94
+ .rp-input--readonly[data-v-803913b6] {
95
95
  background-color: var(--rp-color-control-readonly-bg);
96
96
  }
97
- .rp-input__native[data-v-51eae1ef] {
97
+ .rp-input__native[data-v-803913b6] {
98
98
  box-sizing: border-box;
99
99
  flex: 1;
100
100
  width: 100%;
@@ -108,13 +108,13 @@
108
108
  color: var(--rp-color-control-fg);
109
109
  line-height: 1;
110
110
  }
111
- .rp-input__native[data-v-51eae1ef]::placeholder {
111
+ .rp-input__native[data-v-803913b6]::placeholder {
112
112
  color: var(--rp-color-control-placeholder);
113
113
  }
114
- .rp-input__native[data-v-51eae1ef]:disabled {
114
+ .rp-input__native[data-v-803913b6]:disabled {
115
115
  cursor: not-allowed;
116
116
  }
117
- .rp-input__left[data-v-51eae1ef], .rp-input__right[data-v-51eae1ef] {
117
+ .rp-input__left[data-v-803913b6], .rp-input__right[data-v-803913b6] {
118
118
  display: inline-flex;
119
119
  align-items: center;
120
120
  flex-shrink: 0;
package/dist/input.js CHANGED
@@ -1,24 +1,16 @@
1
1
  import './input.css';
2
2
  import { t as useControllableValue } from "./useControllableValue.js";
3
- import { n as useStylesApi, t as presence } from "./styles-api.js";
3
+ import { t as useStylesApi } from "./styles-api.js";
4
+ import { n as toPresenceAttribute } from "./attributes.js";
4
5
  import { t as bem } from "./bem.js";
5
6
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
7
  import { a as useTextFormControl, t as claimNestedFormControlOwner } from "./useFormControl.js";
8
+ import { o as splitCompatibilityAttributes, t as composeEventHandlers } from "./attributes2.js";
7
9
  import { t as useControlState } from "./useControlState.js";
10
+ import { t as isInteractiveElement } from "./interactive.js";
8
11
  import { child, computed, createIf, createSlot, defineVaporComponent, ref, renderEffect, setDynamicProps, setInsertionState, setStaticTemplateRef, template, unref } from "vue";
9
12
  //#region src/components/input/useInput.ts
10
- var INTERACTIVE_SELECTOR = [
11
- "button",
12
- "a[href]",
13
- `input:not(.rp-input__native)`,
14
- "select",
15
- "textarea",
16
- "[contenteditable=\"true\"]",
17
- "[tabindex]:not([tabindex=\"-1\"])"
18
- ].join(",");
19
- function isInteractiveElement(target) {
20
- return Boolean(target.closest(INTERACTIVE_SELECTOR));
21
- }
13
+ var NATIVE_INPUT_SELECTOR = ".rp-input__native";
22
14
  function useInput(props, emitUpdate) {
23
15
  const inputRef = ref(null);
24
16
  const control = useControlState(props);
@@ -35,8 +27,7 @@ function useInput(props, emitUpdate) {
35
27
  }
36
28
  function focusInput(e) {
37
29
  if (control.disabled) return;
38
- const target = e.target;
39
- if (target instanceof Element && isInteractiveElement(target)) return;
30
+ if (isInteractiveElement(e.target, NATIVE_INPUT_SELECTOR)) return;
40
31
  inputRef.value?.focus();
41
32
  }
42
33
  return {
@@ -49,8 +40,8 @@ function useInput(props, emitUpdate) {
49
40
  }
50
41
  //#endregion
51
42
  //#region src/components/input/input.vue?vue&type=script&setup=true&vapor=true&lang.ts
52
- var t0 = template("<span data-v-51eae1ef>");
53
- var t1 = template("<div data-v-51eae1ef><input data-v-51eae1ef>", 1);
43
+ var t0 = template("<span data-v-803913b6>");
44
+ var t1 = template("<div data-v-803913b6><input data-v-803913b6>", 1);
54
45
  //#endregion
55
46
  //#region src/components/input/input.vue
56
47
  var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -112,15 +103,15 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
112
103
  const rootAttrs = computed(() => getRootAttrs({
113
104
  class: rootClass.value,
114
105
  onMousedown: focusInput,
115
- "data-disabled": presence(control.disabled),
116
- "data-readonly": presence(props.readonly),
117
- "data-invalid": presence(control.invalid)
106
+ "data-disabled": toPresenceAttribute(control.disabled),
107
+ "data-readonly": toPresenceAttribute(props.readonly),
108
+ "data-invalid": toPresenceAttribute(control.invalid)
118
109
  }));
119
110
  const nativeInputAttrs = computed(() => {
120
111
  const attrs = props.inputAttrs ?? {};
121
- const { class: compatibilityClass, style: compatibilityStyle, ...forwardedAttrs } = attrs;
112
+ const { compatibilityClass, compatibilityStyle, forwardedAttributes } = splitCompatibilityAttributes(attrs);
122
113
  return {
123
- ...forwardedAttrs,
114
+ ...forwardedAttributes,
124
115
  ...getPartAttrs("input", {
125
116
  class: "rp-input__native",
126
117
  compatibilityClass,
@@ -128,7 +119,7 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
128
119
  }),
129
120
  id: control.id,
130
121
  name: props.name,
131
- form: control.form ?? forwardedAttrs.form,
122
+ form: control.form ?? forwardedAttributes.form,
132
123
  type: props.type,
133
124
  value: controllable.value.value,
134
125
  placeholder: props.placeholder,
@@ -140,13 +131,10 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
140
131
  "aria-describedby": control.ariaDescribedby,
141
132
  "aria-invalid": control.invalid || void 0,
142
133
  "aria-required": control.required || void 0,
143
- "data-disabled": presence(control.disabled),
144
- "data-readonly": presence(props.readonly),
145
- "data-invalid": presence(control.invalid),
146
- onInput(event) {
147
- onInput(event);
148
- attrs.onInput?.(event);
149
- }
134
+ "data-disabled": toPresenceAttribute(control.disabled),
135
+ "data-readonly": toPresenceAttribute(props.readonly),
136
+ "data-invalid": toPresenceAttribute(control.invalid),
137
+ onInput: composeEventHandlers(onInput, attrs.onInput)
150
138
  };
151
139
  });
152
140
  __expose({
@@ -176,6 +164,6 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
176
164
  });
177
165
  return n9;
178
166
  }
179
- }), [["__scopeId", "data-v-51eae1ef"]]);
167
+ }), [["__scopeId", "data-v-803913b6"]]);
180
168
  //#endregion
181
169
  export { input_default as t };
@@ -0,0 +1,18 @@
1
+ import { t as isElement } from "./query.js";
2
+ //#region src/utils/dom/interactive.ts
3
+ var INTERACTIVE_ELEMENT_SELECTOR = [
4
+ "button",
5
+ "a[href]",
6
+ "input",
7
+ "select",
8
+ "textarea",
9
+ "[contenteditable=\"true\"]",
10
+ "[tabindex]:not([tabindex=\"-1\"])"
11
+ ].join(",");
12
+ function isInteractiveElement(target, ignoredSelector) {
13
+ if (!isElement(target)) return false;
14
+ const interactiveElement = target.closest(INTERACTIVE_ELEMENT_SELECTOR);
15
+ return Boolean(interactiveElement && (!ignoredSelector || !interactiveElement.matches(ignoredSelector)));
16
+ }
17
+ //#endregion
18
+ export { isInteractiveElement as t };
package/dist/modal.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import './modal.css';
2
2
  import { t as useControllableValue } from "./useControllableValue.js";
3
- import { n as useStylesApi } from "./styles-api.js";
3
+ import { t as useStylesApi } from "./styles-api.js";
4
4
  import { t as bem } from "./bem.js";
5
5
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
6
  import { t as x_default } from "./x.js";
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-number-input[data-v-988300ea] {
2
+ .rp-number-input[data-v-1c3d99ad] {
3
3
  --_rp-number-input-control-size: var(--_rp-input-height);
4
4
  --_rp-number-input-text-align: left;
5
5
  overflow: hidden;
@@ -7,39 +7,39 @@
7
7
  padding-inline: 0;
8
8
  vertical-align: middle;
9
9
  }
10
- .rp-number-input[data-v-988300ea] .rp-input__native {
10
+ .rp-number-input[data-v-1c3d99ad] .rp-input__native {
11
11
  appearance: textfield;
12
12
  padding-inline: var(--_rp-input-padding-x);
13
13
  text-align: var(--_rp-number-input-text-align);
14
14
  }
15
- .rp-number-input--text-align-center[data-v-988300ea] {
15
+ .rp-number-input--text-align-center[data-v-1c3d99ad] {
16
16
  --_rp-number-input-text-align: center;
17
17
  }
18
- .rp-number-input--text-align-right[data-v-988300ea] {
18
+ .rp-number-input--text-align-right[data-v-1c3d99ad] {
19
19
  --_rp-number-input-text-align: right;
20
20
  }
21
- .rp-number-input[data-v-988300ea] .rp-input__native::-webkit-inner-spin-button,
22
- .rp-number-input[data-v-988300ea] .rp-input__native::-webkit-outer-spin-button {
21
+ .rp-number-input[data-v-1c3d99ad] .rp-input__native::-webkit-inner-spin-button,
22
+ .rp-number-input[data-v-1c3d99ad] .rp-input__native::-webkit-outer-spin-button {
23
23
  margin: 0;
24
24
  appearance: none;
25
25
  }
26
- .rp-number-input[data-v-988300ea] .rp-input__left,
27
- .rp-number-input[data-v-988300ea] .rp-input__right {
26
+ .rp-number-input[data-v-1c3d99ad] .rp-input__left,
27
+ .rp-number-input[data-v-1c3d99ad] .rp-input__right {
28
28
  align-self: stretch;
29
29
  margin-block: calc(-1 * var(--rp-border-width-thin));
30
30
  }
31
- .rp-number-input__controls[data-v-988300ea] {
31
+ .rp-number-input__controls[data-v-1c3d99ad] {
32
32
  display: inline-flex;
33
33
  height: var(--_rp-input-height);
34
34
  flex-shrink: 0;
35
35
  }
36
- .rp-number-input__controls--left[data-v-988300ea] {
36
+ .rp-number-input__controls--left[data-v-1c3d99ad] {
37
37
  border-inline-end: var(--rp-border-width-thin) solid var(--rp-color-control-border);
38
38
  }
39
- .rp-number-input__controls--right[data-v-988300ea] {
39
+ .rp-number-input__controls--right[data-v-1c3d99ad] {
40
40
  border-inline-start: var(--rp-border-width-thin) solid var(--rp-color-control-border);
41
41
  }
42
- .rp-number-input__control[data-v-988300ea] {
42
+ .rp-number-input__control[data-v-1c3d99ad] {
43
43
  padding: 0;
44
44
  font: inherit;
45
45
  background: none;
@@ -55,29 +55,29 @@
55
55
  color: var(--rp-color-control-icon);
56
56
  transition: color var(--rp-transition-fast), background-color var(--rp-transition-fast), opacity var(--rp-transition-fast);
57
57
  }
58
- .rp-number-input__control + .rp-number-input__control[data-v-988300ea] {
58
+ .rp-number-input__control + .rp-number-input__control[data-v-1c3d99ad] {
59
59
  border-inline-start: var(--rp-border-width-thin) solid var(--rp-color-control-border);
60
60
  }
61
- .rp-number-input__control[data-v-988300ea]:hover:not(:disabled) {
61
+ .rp-number-input__control[data-v-1c3d99ad]:hover:not(:disabled) {
62
62
  color: var(--rp-color-control-fg);
63
63
  background-color: var(--rp-color-default-hover);
64
64
  }
65
- .rp-number-input__control[data-v-988300ea]:disabled {
65
+ .rp-number-input__control[data-v-1c3d99ad]:disabled {
66
66
  cursor: not-allowed;
67
67
  opacity: var(--rp-opacity-disabled);
68
68
  }
69
- .rp-number-input__control-icon[data-v-988300ea] {
69
+ .rp-number-input__control-icon[data-v-1c3d99ad] {
70
70
  display: inline-flex;
71
71
  align-items: center;
72
72
  width: 0.875em;
73
73
  height: 0.875em;
74
74
  flex-shrink: 0;
75
75
  }
76
- .rp-number-input__control-icon svg[data-v-988300ea] {
76
+ .rp-number-input__control-icon svg[data-v-1c3d99ad] {
77
77
  width: 100%;
78
78
  height: 100%;
79
79
  }
80
- .rp-number-input__control-icon[data-v-988300ea] > svg {
80
+ .rp-number-input__control-icon[data-v-1c3d99ad] > svg {
81
81
  display: block;
82
82
  width: 100%;
83
83
  height: 100%;
@@ -1,13 +1,14 @@
1
1
  import './number-input.css';
2
2
  import { t as useControllableValue } from "./useControllableValue.js";
3
- import { n as useStylesApi, t as presence } from "./styles-api.js";
3
+ import { t as useStylesApi } from "./styles-api.js";
4
+ import { n as toPresenceAttribute } from "./attributes.js";
4
5
  import { t as bem } from "./bem.js";
5
6
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
7
  import { t as minus_default } from "./minus.js";
7
8
  import { i as useFormControl, n as provideNestedFormControlOwner } from "./useFormControl.js";
8
9
  import { t as useControlState } from "./useControlState.js";
9
10
  import { t as input_default } from "./input.js";
10
- import { child, computed, createComponent, createFor, createIf, createSlot, defineVaporComponent, delegateEvents, markRaw, on, ref, renderEffect, setDynamicProps, setInsertionState, setStaticTemplateRef, template, unref, withModifiers, withVaporModifiers } from "vue";
11
+ import { child, computed, createComponent, createFor, createIf, createSlot, defineVaporComponent, markRaw, on, ref, renderEffect, setDynamicProps, setInsertionState, setStaticTemplateRef, template, unref, withModifiers } from "vue";
11
12
  //#region ~icons/lucide/plus
12
13
  var t0$1 = template("<svg viewBox=\"0 0 24 24\"width=1.2em height=1.2em><path fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 d=\"M5 12h14m-7-7v14\">", 3, 1);
13
14
  function render(_ctx) {
@@ -18,7 +19,7 @@ var plus_default = markRaw(defineVaporComponent({
18
19
  render
19
20
  }));
20
21
  //#endregion
21
- //#region src/components/number-input/useNumberInput.ts
22
+ //#region src/components/number-input/numberInputModel.ts
22
23
  function finiteOrUndefined(value) {
23
24
  return value !== void 0 && Number.isFinite(value) ? value : void 0;
24
25
  }
@@ -78,6 +79,8 @@ function normalizeNumberInputTextAlign(textAlign) {
78
79
  function getModelInputValue(value) {
79
80
  return value !== null && Number.isFinite(value) ? String(normalizeZero(value)) : "";
80
81
  }
82
+ //#endregion
83
+ //#region src/components/number-input/useNumberInput.ts
81
84
  function useNumberInput(props, emitUpdate, getValue = () => props.modelValue ?? null) {
82
85
  const control = useControlState(props);
83
86
  const bounds = computed(() => normalizeNumberInputBounds(props.min, props.max));
@@ -190,11 +193,10 @@ function useNumberInput(props, emitUpdate, getValue = () => props.modelValue ??
190
193
  }
191
194
  //#endregion
192
195
  //#region src/components/number-input/number-input.vue?vue&type=script&setup=true&vapor=true&lang.ts
193
- var t0 = template("<button data-v-988300ea><span data-v-988300ea class=rp-number-input__control-icon aria-hidden=true></button>");
194
- var t1 = template("<span data-v-988300ea class=\"rp-number-input__controls rp-number-input__controls--left\">");
195
- var t2 = template("<button data-v-988300ea><span data-v-988300ea class=rp-number-input__control-icon aria-hidden=true>");
196
- var t3 = template("<span data-v-988300ea class=\"rp-number-input__controls rp-number-input__controls--right\">");
197
- delegateEvents("mousedown");
196
+ var t0 = template("<button data-v-1c3d99ad><span data-v-1c3d99ad class=rp-number-input__control-icon aria-hidden=true></button>");
197
+ var t1 = template("<span data-v-1c3d99ad class=\"rp-number-input__controls rp-number-input__controls--left\">");
198
+ var t2 = template("<button data-v-1c3d99ad><span data-v-1c3d99ad class=rp-number-input__control-icon aria-hidden=true>");
199
+ var t3 = template("<span data-v-1c3d99ad class=\"rp-number-input__controls rp-number-input__controls--right\">");
198
200
  //#endregion
199
201
  //#region src/components/number-input/number-input.vue
200
202
  var number_input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -292,7 +294,7 @@ var number_input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
292
294
  return {
293
295
  ...getPartAttrs("control", { class: ["rp-number-input__control", `rp-number-input__control--${controlType}`] }),
294
296
  "data-control": controlType,
295
- "data-disabled": presence(isControlDisabled(controlType))
297
+ "data-disabled": toPresenceAttribute(isControlDisabled(controlType))
296
298
  };
297
299
  }
298
300
  function focusNativeInput(event) {
@@ -363,7 +365,7 @@ var number_input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
363
365
  return createComponent(unref(minus_default));
364
366
  }, 1);
365
367
  }, 261);
366
- n12.$evtmousedown = withVaporModifiers(() => {}, ["prevent"]);
368
+ on(n12, "mousedown", withModifiers(() => {}, ["prevent"]));
367
369
  on(n12, "click", withModifiers(($event) => onControlClick($event, _for_item0.value), ["stop"]));
368
370
  return n12;
369
371
  }, (controlType) => controlType, 9);
@@ -401,7 +403,7 @@ var number_input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
401
403
  return createComponent(unref(minus_default));
402
404
  }, 1);
403
405
  }, 517);
404
- n27.$evtmousedown = withVaporModifiers(() => {}, ["prevent"]);
406
+ on(n27, "mousedown", withModifiers(() => {}, ["prevent"]));
405
407
  on(n27, "click", withModifiers(($event) => onControlClick($event, _for_item0.value), ["stop"]));
406
408
  return n27;
407
409
  }, (controlType) => controlType, 9);
@@ -411,7 +413,7 @@ var number_input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
411
413
  setStaticTemplateRef(n30, inputComponentRef, null, "inputComponentRef");
412
414
  return n30;
413
415
  }
414
- }), [["__scopeId", "data-v-988300ea"]]);
416
+ }), [["__scopeId", "data-v-1c3d99ad"]]);
415
417
  //#endregion
416
418
  //#region src/components/number-input/types.ts
417
419
  var numberInputParts = [