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
@@ -0,0 +1,29 @@
1
+ import { Ref } from 'vue';
2
+ import { DropdownMenuInteractionRuntime } from './dropdownMenuInteraction.js';
3
+ import { DropdownMenuCloseOptions, DropdownMenuContentProps, DropdownMenuFocusTarget, DropdownMenuOpenOptions, DropdownMenuPlacement, DropdownMenuProps, DropdownMenuSlotProps, DropdownMenuTriggerProps } from './types.js';
4
+ interface UseDropdownMenuPresentationOptions {
5
+ props: Readonly<DropdownMenuProps>;
6
+ rootMenuId: string;
7
+ menuId: Readonly<Ref<string>>;
8
+ isDisabled: Readonly<Ref<boolean>>;
9
+ isVisible: Readonly<Ref<boolean>>;
10
+ isExplicitTarget: Readonly<Ref<boolean>>;
11
+ actualPlacement: Readonly<Ref<DropdownMenuPlacement>>;
12
+ contentHasSubmenu: Readonly<Ref<boolean>>;
13
+ activeDescendantId: Readonly<Ref<string | undefined>>;
14
+ interaction: DropdownMenuInteractionRuntime;
15
+ resetHoverIntent: () => void;
16
+ onMenuMousemove: (event: MouseEvent) => void;
17
+ open: (options?: DropdownMenuOpenOptions | DropdownMenuFocusTarget) => void;
18
+ close: (options?: DropdownMenuCloseOptions) => void;
19
+ toggle: () => void;
20
+ }
21
+ export declare function useDropdownMenuPresentation({ props, rootMenuId, menuId, isDisabled, isVisible, isExplicitTarget, actualPlacement, contentHasSubmenu, activeDescendantId, interaction, resetHoverIntent, onMenuMousemove, open, close, toggle, }: UseDropdownMenuPresentationOptions): {
22
+ rootClass: import('vue').ComputedRef<string[]>;
23
+ contentClass: import('vue').ComputedRef<string[]>;
24
+ triggerProps: import('vue').ComputedRef<DropdownMenuTriggerProps>;
25
+ contentProps: import('vue').ComputedRef<DropdownMenuContentProps>;
26
+ slotProps: import('vue').ComputedRef<DropdownMenuSlotProps>;
27
+ onMenuKeydown: (event: KeyboardEvent) => void;
28
+ };
29
+ export {};
@@ -1,4 +1,4 @@
1
- import { ComponentRefValue } from './dropdown-menu-primitive-core.js';
1
+ import { ComponentElementRef } from '../../utils/dom/componentRef.js';
2
2
  import { DropdownMenuContentPrimitiveProps, DropdownMenuInteractOutsideEvent, DropdownMenuPlacement } from './types.js';
3
3
  type ContentProps = Readonly<DropdownMenuContentPrimitiveProps>;
4
4
  type ContentEvents = {
@@ -21,7 +21,7 @@ export declare function useDropdownMenuPrimitiveContent(props: ContentProps, att
21
21
  [x: string]: unknown;
22
22
  }>;
23
23
  floating: import('../floating/index.js').UseFloatingPositionReturn;
24
- setElement: (value: ComponentRefValue) => void;
24
+ setElement: (value: ComponentElementRef) => void;
25
25
  close: () => void;
26
26
  };
27
27
  export {};
@@ -1,7 +1,7 @@
1
1
  import { Ref } from 'vue';
2
2
  import { StylesApiPartOptions } from '../../styles-api.js';
3
3
  import { DropdownMenuCloseOptions, DropdownMenuFocusTarget, DropdownMenuItem, DropdownMenuItemProps, DropdownMenuItemSlotProps, DropdownMenuRenderedItem, DropdownMenuPlacement, DropdownMenuPart, DropdownMenuProps, DropdownMenuSubmenuProps } from './types.js';
4
- import { ItemPath } from './dropdown-menu-utils.js';
4
+ import { ItemPath } from './dropdown-menu-model.js';
5
5
  type DropdownMenuItemsSource = {
6
6
  readonly value: DropdownMenuItem[];
7
7
  };
@@ -0,0 +1,19 @@
1
+ import { Ref } from 'vue';
2
+ import { DropdownMenuInteractOutsideEvent, DropdownMenuInteractOutsideTarget } from './types.js';
3
+ import { DropdownMenuInteractionRuntime } from './dropdownMenuInteraction.js';
4
+ interface UseDropdownMenuTargetBindingsOptions {
5
+ interaction: DropdownMenuInteractionRuntime;
6
+ rootRef: Readonly<Ref<HTMLElement | null>>;
7
+ menuRef: Readonly<Ref<HTMLElement | null>>;
8
+ targetElement: Readonly<Ref<Element | null>>;
9
+ isExplicitTarget: Readonly<Ref<boolean>>;
10
+ menuId: Readonly<Ref<string>>;
11
+ isVisible: Readonly<Ref<boolean>>;
12
+ isDisabled: Readonly<Ref<boolean>>;
13
+ ignoredTargets: () => readonly DropdownMenuInteractOutsideTarget[];
14
+ pointerDownOutside?: (event: DropdownMenuInteractOutsideEvent) => void;
15
+ focusOutside?: (event: DropdownMenuInteractOutsideEvent) => void;
16
+ interactOutside?: (event: DropdownMenuInteractOutsideEvent) => void;
17
+ }
18
+ export declare function useDropdownMenuTargetBindings({ interaction, rootRef, menuRef, targetElement, isExplicitTarget, menuId, isVisible, isDisabled, ignoredTargets, pointerDownOutside, focusOutside, interactOutside, }: UseDropdownMenuTargetBindingsOptions): void;
19
+ export {};
@@ -0,0 +1,42 @@
1
+ export type HoverDisclosureInteractionPart = 'trigger' | 'content';
2
+ export interface HoverDisclosureInteractionState {
3
+ contentFocused: boolean;
4
+ contentHovered: boolean;
5
+ touchClickPending: boolean;
6
+ touchPinned: boolean;
7
+ touchPointerActive: boolean;
8
+ triggerFocused: boolean;
9
+ triggerHovered: boolean;
10
+ }
11
+ export type HoverDisclosureInteractionAction = {
12
+ type: 'hover';
13
+ part: HoverDisclosureInteractionPart;
14
+ active: boolean;
15
+ } | {
16
+ type: 'focus';
17
+ part: HoverDisclosureInteractionPart;
18
+ active: boolean;
19
+ } | {
20
+ type: 'pointer-down';
21
+ touch: boolean;
22
+ } | {
23
+ type: 'pointer-up';
24
+ touch: boolean;
25
+ } | {
26
+ type: 'pointer-cancel';
27
+ } | {
28
+ type: 'consume-touch-click';
29
+ } | {
30
+ type: 'set-touch-pinned';
31
+ pinned: boolean;
32
+ } | {
33
+ type: 'reset';
34
+ part: HoverDisclosureInteractionPart | 'all';
35
+ };
36
+ export interface HoverDisclosureInteractionModel {
37
+ read: () => Readonly<HoverDisclosureInteractionState>;
38
+ send: (action: HoverDisclosureInteractionAction) => Readonly<HoverDisclosureInteractionState>;
39
+ }
40
+ export declare function createHoverDisclosureInteractionModel(): HoverDisclosureInteractionModel;
41
+ export declare function hasActiveHoverDisclosureInteraction(state: Readonly<HoverDisclosureInteractionState>): boolean;
42
+ export declare function reduceHoverDisclosureInteraction(state: Readonly<HoverDisclosureInteractionState>, action: HoverDisclosureInteractionAction): HoverDisclosureInteractionState;
@@ -1,3 +1,3 @@
1
- import { n as useFloatingPosition } from "../../useFloatingPosition.js";
1
+ import { t as useFloatingPosition } from "../../useFloatingPosition.js";
2
2
  import { t as useHoverDisclosure } from "../../floating.js";
3
3
  export { useFloatingPosition, useHoverDisclosure };
@@ -3,7 +3,6 @@ import { FloatingReference, FloatingTarget, UseFloatingPositionOptions, UseFloat
3
3
  type Source<T> = () => T;
4
4
  export declare function readFloatingTarget(target: FloatingTarget | null | undefined): string | FloatingReference | null | undefined;
5
5
  export declare function isVirtualReference(value: unknown): value is FloatingReference;
6
- export declare function isElementReference(value: unknown): value is Element;
7
6
  export declare function resolveFloatingTarget(target: string | FloatingReference | null | undefined): FloatingReference | null;
8
7
  export declare function useFloatingTarget(getTarget: Source<FloatingTarget | null | undefined>, fallback: Readonly<Ref<Element | null>>): {
9
8
  isExplicitTarget: import('vue').ComputedRef<boolean>;
@@ -0,0 +1,32 @@
1
+ import { ComputedRef } from 'vue';
2
+ import { HoverDisclosureInteractionModel, HoverDisclosureInteractionPart } from './hoverDisclosureInteractionModel.js';
3
+ import { HoverDisclosureChangeRequest } from './useHoverDisclosureOpenState.js';
4
+ import { HoverDisclosureTargetState } from './useHoverDisclosureTargetBinding.js';
5
+ import { HoverDisclosureContentProps, HoverDisclosureState, HoverDisclosureTriggerProps, UseHoverDisclosureOptions } from './types.js';
6
+ interface HoverDisclosureInteractionCommands {
7
+ cancelScheduledClose: () => void;
8
+ isDisabled: ComputedRef<boolean>;
9
+ isOpen: ComputedRef<boolean>;
10
+ isRequestedOpen: () => boolean;
11
+ request: (change: HoverDisclosureChangeRequest) => void;
12
+ }
13
+ interface UseHoverDisclosureInteractionsOptions {
14
+ commands: HoverDisclosureInteractionCommands;
15
+ interaction: HoverDisclosureInteractionModel;
16
+ options: Readonly<UseHoverDisclosureOptions>;
17
+ state: ComputedRef<HoverDisclosureState>;
18
+ targets: HoverDisclosureTargetState;
19
+ }
20
+ export declare function useHoverDisclosureInteractions({ commands, interaction, options, state, targets, }: UseHoverDisclosureInteractionsOptions): {
21
+ bindingAdapter: {
22
+ contentListeners: readonly [readonly ["pointerenter", EventListener], readonly ["pointerleave", EventListener], readonly ["pointerdown", EventListener], readonly ["focusin", EventListener], readonly ["focusout", EventListener], readonly ["keydown", EventListener]];
23
+ isOutsideDismissalActive: () => boolean;
24
+ onDocumentKeydown: (event: KeyboardEvent) => void;
25
+ onOutsidePointerdown: (event: PointerEvent) => void;
26
+ onTargetDetached: (part: HoverDisclosureInteractionPart) => void;
27
+ triggerListeners: readonly [readonly ["pointerenter", EventListener], readonly ["pointerleave", EventListener], readonly ["pointerdown", EventListener], readonly ["pointerup", EventListener], readonly ["pointercancel", EventListener], readonly ["click", EventListener], readonly ["focusin", EventListener], readonly ["focusout", EventListener], readonly ["keydown", EventListener]];
28
+ };
29
+ contentProps: ComputedRef<HoverDisclosureContentProps>;
30
+ triggerProps: ComputedRef<HoverDisclosureTriggerProps>;
31
+ };
32
+ export {};
@@ -0,0 +1,25 @@
1
+ import { HoverDisclosureInteractionModel } from './hoverDisclosureInteractionModel.js';
2
+ import { HoverDisclosureOpenChangeReason, HoverDisclosureState, UseHoverDisclosureOptions } from './types.js';
3
+ export interface HoverDisclosureChangeRequest {
4
+ event?: Event;
5
+ open: boolean;
6
+ reason: HoverDisclosureOpenChangeReason;
7
+ timing: 'delayed' | 'immediate';
8
+ }
9
+ interface UseHoverDisclosureOpenStateOptions {
10
+ interaction: HoverDisclosureInteractionModel;
11
+ onContentClosed: () => void;
12
+ options: Readonly<UseHoverDisclosureOptions>;
13
+ }
14
+ export declare function useHoverDisclosureOpenState({ interaction, onContentClosed, options, }: UseHoverDisclosureOpenStateOptions): {
15
+ cancelScheduledClose: () => void;
16
+ close: () => void;
17
+ isDisabled: import('vue').ComputedRef<boolean>;
18
+ isOpen: import('vue').ComputedRef<boolean>;
19
+ isRequestedOpen: () => boolean;
20
+ open: () => void;
21
+ request: (change: HoverDisclosureChangeRequest) => void;
22
+ state: import('vue').ComputedRef<HoverDisclosureState>;
23
+ toggle: () => void;
24
+ };
25
+ export {};
@@ -0,0 +1,27 @@
1
+ import { shallowRef, ComputedRef } from 'vue';
2
+ import { UseHoverDisclosureOptions } from './types.js';
3
+ import { HoverDisclosureInteractionPart } from './hoverDisclosureInteractionModel.js';
4
+ export type HoverDisclosureTargetListener = readonly [type: string, listener: EventListener];
5
+ export interface HoverDisclosureTargetState {
6
+ contentElement: Element | null;
7
+ resolvedContentTarget: ReturnType<typeof shallowRef<Element | null>>;
8
+ resolvedInteractionTarget: ReturnType<typeof shallowRef<Element | null>>;
9
+ triggerElement: Element | null;
10
+ }
11
+ interface HoverDisclosureBindingAdapter {
12
+ contentListeners: readonly HoverDisclosureTargetListener[];
13
+ isOutsideDismissalActive: () => boolean;
14
+ onDocumentKeydown: (event: KeyboardEvent) => void;
15
+ onOutsidePointerdown: (event: PointerEvent) => void;
16
+ onTargetDetached: (part: HoverDisclosureInteractionPart) => void;
17
+ triggerListeners: readonly HoverDisclosureTargetListener[];
18
+ }
19
+ interface UseHoverDisclosureTargetBindingOptions {
20
+ adapter: HoverDisclosureBindingAdapter;
21
+ isOpen: ComputedRef<boolean>;
22
+ options: Readonly<UseHoverDisclosureOptions>;
23
+ targets: HoverDisclosureTargetState;
24
+ }
25
+ export declare function createHoverDisclosureTargetState(): HoverDisclosureTargetState;
26
+ export declare function useHoverDisclosureTargetBinding({ adapter, isOpen, options, targets, }: UseHoverDisclosureTargetBindingOptions): void;
27
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { InputProps } from './types.js';
2
2
  export declare function useInput(props: Readonly<InputProps>, emitUpdate: (value: string) => void): {
3
3
  inputRef: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
4
- control: import('../../composables/useControlState.js').ControlState;
4
+ control: import('../../internal/composables/useControlState.js').ControlState;
5
5
  rootClass: import('vue').ComputedRef<string[]>;
6
6
  onInput: (e: Event) => void;
7
7
  focusInput: (e: MouseEvent) => void;
@@ -0,0 +1,15 @@
1
+ import { NumberInputControlsPosition, NumberInputTextAlign, NumberInputValue } from './types.js';
2
+ export interface NumberInputBounds {
3
+ min: number | undefined;
4
+ max: number | undefined;
5
+ }
6
+ export type NumberInputControl = 'decrement' | 'increment';
7
+ export type NumberInputStepDirection = -1 | 1;
8
+ export declare function normalizeNumberInputBounds(min: number | undefined, max: number | undefined): NumberInputBounds;
9
+ export declare function normalizeNumberInputStep(step: number | undefined): number;
10
+ export declare function clampNumberInputValue(value: number, bounds: NumberInputBounds): number;
11
+ export declare function stepNumberInputValue(value: NumberInputValue, direction: NumberInputStepDirection, step: number, bounds: NumberInputBounds): number;
12
+ export declare function parseNumberInputValue(value: string): NumberInputValue;
13
+ export declare function normalizeNumberInputControlsPosition(position: NumberInputControlsPosition | undefined): NumberInputControlsPosition;
14
+ export declare function normalizeNumberInputTextAlign(textAlign: NumberInputTextAlign | undefined): NumberInputTextAlign;
15
+ export declare function getModelInputValue(value: NumberInputValue): string;
@@ -1,23 +1,10 @@
1
1
  import { InputHTMLAttributes } from 'vue';
2
- import { NumberInputControlsPosition, NumberInputProps, NumberInputTextAlign, NumberInputValue } from './types.js';
3
- export interface NumberInputBounds {
4
- min: number | undefined;
5
- max: number | undefined;
6
- }
7
- type StepDirection = -1 | 1;
8
- export type NumberInputControl = 'decrement' | 'increment';
9
- export declare function normalizeNumberInputBounds(min: number | undefined, max: number | undefined): NumberInputBounds;
10
- export declare function normalizeNumberInputStep(step: number | undefined): number;
11
- export declare function clampNumberInputValue(value: number, bounds: NumberInputBounds): number;
12
- export declare function stepNumberInputValue(value: NumberInputValue, direction: StepDirection, step: number, bounds: NumberInputBounds): number;
13
- export declare function parseNumberInputValue(value: string): NumberInputValue;
14
- export declare function normalizeNumberInputControlsPosition(position: NumberInputControlsPosition | undefined): NumberInputControlsPosition;
15
- export declare function normalizeNumberInputTextAlign(textAlign: NumberInputTextAlign | undefined): NumberInputTextAlign;
16
- export declare function getModelInputValue(value: NumberInputValue): string;
2
+ import { NumberInputControl } from './numberInputModel.js';
3
+ import { NumberInputProps, NumberInputValue } from './types.js';
17
4
  export declare function useNumberInput(props: Readonly<NumberInputProps>, emitUpdate: (value: NumberInputValue) => void, getValue?: () => NumberInputValue): {
18
- control: import('../../composables/useControlState.js').ControlState;
5
+ control: import('../../internal/composables/useControlState.js').ControlState;
19
6
  rootClass: import('vue').ComputedRef<string[]>;
20
- bounds: import('vue').ComputedRef<NumberInputBounds>;
7
+ bounds: import('vue').ComputedRef<import('./numberInputModel.js').NumberInputBounds>;
21
8
  nativeStep: import('vue').ComputedRef<number>;
22
9
  nativeInputAttrs: import('vue').ComputedRef<InputHTMLAttributes>;
23
10
  modelInputValue: import('vue').ComputedRef<string>;
@@ -29,4 +16,3 @@ export declare function useNumberInput(props: Readonly<NumberInputProps>, emitUp
29
16
  decrement: () => boolean;
30
17
  onInputUpdate: (value: string) => void;
31
18
  };
32
- export {};
@@ -1,4 +1,4 @@
1
1
  export { default as Pagination } from './pagination.js';
2
2
  export { paginationColors, paginationParts, paginationRadiuses, paginationSizes } from './types.js';
3
- export type { PaginationColor, PaginationControl, PaginationControlSlotProps, PaginationEllipsisItem, PaginationGetPageAriaLabel, PaginationItem, PaginationPageItem, PaginationPageSlotProps, PaginationPart, PaginationProps, PaginationRadius, PaginationSize, } from './types.js';
3
+ export type { PaginationColor, PaginationControl, PaginationControlSlotProps, PaginationEllipsisItem, PaginationGetPageAriaLabel, PaginationItem, PaginationPageItem, PaginationPageSlotProps, PaginationPart, PaginationProps, PaginationRadius, PaginationSize, UsePaginationReturn, } from './types.js';
4
4
  export { getPaginationItems, normalizePaginationPage, normalizePaginationTotal, usePagination, } from './usePagination.js';
@@ -1,2 +1,2 @@
1
- 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";
1
+ 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";
2
2
  export { pagination_default as Pagination, getPaginationItems, normalizePaginationPage, normalizePaginationTotal, paginationColors, paginationParts, paginationRadiuses, paginationSizes, usePagination };
@@ -0,0 +1,4 @@
1
+ import { PaginationItem } from './types.js';
2
+ export declare function normalizePaginationTotal(total: number): number;
3
+ export declare function normalizePaginationPage(page: number, total: number): number;
4
+ export declare function getPaginationItems(total: number, page: number, siblings?: number, boundaries?: number): PaginationItem[];
@@ -1,5 +1,6 @@
1
1
  import { ComponentColorValue } from '../../utils/componentColors.js';
2
2
  import { StylesApiProps } from '../../styles-api.js';
3
+ import { ComputedRef, CSSProperties } from 'vue';
3
4
  export declare const paginationParts: readonly ["root", "items", "control", "page", "ellipsis"];
4
5
  export type PaginationPart = (typeof paginationParts)[number];
5
6
  export declare const paginationColors: readonly ["dark", "gray", "red", "pink", "grape", "violet", "indigo", "blue", "cyan", "teal", "green", "lime", "yellow", "orange"];
@@ -52,3 +53,17 @@ export interface PaginationProps extends StylesApiProps<PaginationPart> {
52
53
  lastLabel?: string;
53
54
  getPageAriaLabel?: PaginationGetPageAriaLabel;
54
55
  }
56
+ export interface UsePaginationReturn {
57
+ totalPages: ComputedRef<number>;
58
+ currentPage: ComputedRef<number>;
59
+ items: ComputedRef<PaginationItem[]>;
60
+ rootClass: ComputedRef<string[]>;
61
+ rootStyle: ComputedRef<CSSProperties | undefined>;
62
+ firstPage: ComputedRef<number>;
63
+ previousPage: ComputedRef<number>;
64
+ nextPage: ComputedRef<number>;
65
+ lastPage: ComputedRef<number>;
66
+ isFirstDisabled: ComputedRef<boolean>;
67
+ isLastDisabled: ComputedRef<boolean>;
68
+ selectPage: (page: number) => boolean;
69
+ }
@@ -1,19 +1,3 @@
1
- import { CSSProperties } from 'vue';
2
- import { PaginationItem, PaginationProps } from './types.js';
3
- export declare function normalizePaginationTotal(total: number): number;
4
- export declare function normalizePaginationPage(page: number, total: number): number;
5
- export declare function getPaginationItems(total: number, page: number, siblings?: number, boundaries?: number): PaginationItem[];
6
- export declare function usePagination(props: Readonly<PaginationProps>, getCurrentValue: () => number, onChange: (page: number) => void): {
7
- totalPages: import('vue').ComputedRef<number>;
8
- currentPage: import('vue').ComputedRef<number>;
9
- items: import('vue').ComputedRef<PaginationItem[]>;
10
- rootClass: import('vue').ComputedRef<string[]>;
11
- rootStyle: import('vue').ComputedRef<CSSProperties | undefined>;
12
- firstPage: import('vue').ComputedRef<number>;
13
- previousPage: import('vue').ComputedRef<number>;
14
- nextPage: import('vue').ComputedRef<number>;
15
- lastPage: import('vue').ComputedRef<number>;
16
- isFirstDisabled: import('vue').ComputedRef<boolean>;
17
- isLastDisabled: import('vue').ComputedRef<boolean>;
18
- selectPage: (page: number) => boolean;
19
- };
1
+ import { PaginationProps, UsePaginationReturn } from './types.js';
2
+ export { getPaginationItems, normalizePaginationPage, normalizePaginationTotal, } from './paginationModel.js';
3
+ export declare function usePagination(props: Readonly<PaginationProps>, getCurrentValue: () => number, onChange: (page: number) => void): UsePaginationReturn;
@@ -0,0 +1,16 @@
1
+ import { Ref } from 'vue';
2
+ import { PopoverRole } from './types.js';
3
+ interface UsePopoverBindingsOptions {
4
+ isExplicitTarget: Readonly<Ref<boolean>>;
5
+ targetElement: Readonly<Ref<Element | null>>;
6
+ popoverId: Readonly<Ref<string>>;
7
+ popoverRole: Readonly<Ref<PopoverRole>>;
8
+ isVisible: Readonly<Ref<boolean>>;
9
+ isDisabled: Readonly<Ref<boolean>>;
10
+ onTriggerClick: () => void;
11
+ onDocumentClick: (event: MouseEvent) => void;
12
+ onDocumentPointerDown: (event: MouseEvent | TouchEvent) => void;
13
+ onDocumentKeydown: (event: KeyboardEvent) => void;
14
+ }
15
+ export declare function usePopoverBindings({ isExplicitTarget, targetElement, popoverId, popoverRole, isVisible, isDisabled, onTriggerClick, onDocumentClick, onDocumentPointerDown, onDocumentKeydown, }: UsePopoverBindingsOptions): void;
16
+ export {};
@@ -0,0 +1,8 @@
1
+ import { ProgressProps } from './types.js';
2
+ export declare function normalizeProgressBounds(min: number, max: number): {
3
+ min: number;
4
+ max: number;
5
+ };
6
+ export declare function normalizeProgressValue(value: number | null | undefined, min: number, max: number): number;
7
+ export declare function formatProgressValue(value: number, percent: number, formatter: ProgressProps['formatValue']): string | number;
8
+ export declare function getProgressAriaValueText(value: number, percent: number, ariaValueText: ProgressProps['ariaValueText'], formatter: ProgressProps['formatValue']): string | undefined;
@@ -6,14 +6,8 @@ type ProgressStateProps = Readonly<ProgressProps & {
6
6
  indeterminate: boolean;
7
7
  showValue: boolean;
8
8
  }>;
9
- export declare function normalizeProgressBounds(min: number, max: number): {
10
- min: number;
11
- max: number;
12
- };
13
- export declare function normalizeProgressValue(value: number | null | undefined, min: number, max: number): number;
14
- export declare function getProgressValuePercent(value: number, min: number, max: number): number;
15
9
  export declare function useProgress(props: ProgressStateProps): {
16
- control: import('../../composables/useControlState.js').ControlState;
10
+ control: import('../../internal/composables/useControlState.js').ControlState;
17
11
  rootClass: import('vue').ComputedRef<string[]>;
18
12
  rootStyle: import('vue').ComputedRef<CSSProperties>;
19
13
  isIndeterminate: import('vue').ComputedRef<boolean>;
@@ -1,8 +1,7 @@
1
- import { CSSProperties } from 'vue';
2
1
  import { RadioGroupProps, RadioProps } from './types.js';
3
2
  export declare function useRadio(props: Readonly<RadioProps>, emitChange: (event: Event) => void): {
4
3
  inputRef: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
5
- control: import('../../composables/useControlState.js').ControlState;
4
+ control: import('../../internal/composables/useControlState.js').ControlState;
6
5
  name: import('vue').ComputedRef<string | undefined>;
7
6
  form: import('vue').ComputedRef<string | undefined>;
8
7
  groupInputAttrs: import('vue').ComputedRef<import('vue').InputHTMLAttributes | undefined>;
@@ -11,12 +10,12 @@ export declare function useRadio(props: Readonly<RadioProps>, emitChange: (event
11
10
  isRequired: import('vue').ComputedRef<boolean>;
12
11
  isInvalid: import('vue').ComputedRef<boolean>;
13
12
  rootClass: import('vue').ComputedRef<string[]>;
14
- rootStyle: import('vue').ComputedRef<CSSProperties | undefined>;
13
+ rootStyle: import('vue').ComputedRef<Record<string, string> | undefined>;
15
14
  onSelect: (event: Event) => void;
16
15
  focus: (options?: FocusOptions) => void;
17
16
  };
18
17
  export declare function useRadioGroup(props: Readonly<RadioGroupProps>, emitUpdate: (value: string | number | null) => void): {
19
- control: import('../../composables/useControlState.js').ControlState;
18
+ control: import('../../internal/composables/useControlState.js').ControlState;
20
19
  rootClass: import('vue').ComputedRef<string[]>;
21
20
  value: import('vue').ComputedRef<string | number | null>;
22
21
  };
@@ -16,7 +16,7 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
16
16
  default: string;
17
17
  };
18
18
  scrollbarSize: {
19
- type: (StringConstructor | NumberConstructor)[];
19
+ type: (NumberConstructor | StringConstructor)[];
20
20
  default: number;
21
21
  };
22
22
  scrollHideDelay: {
@@ -0,0 +1,64 @@
1
+ import { CSSProperties } from 'vue';
2
+ import { ScrollAxis, ScrollDirection } from '../../utils/dom/scroll.js';
3
+ import { ScrollAreaPosition, ScrollAreaScrollbars, ScrollAreaType } from './types.js';
4
+ export type ScrollBoundary = 'top' | 'bottom' | 'left' | 'right';
5
+ export interface ScrollAreaMetrics {
6
+ direction: ScrollDirection;
7
+ clientWidth: number;
8
+ clientHeight: number;
9
+ scrollWidth: number;
10
+ scrollHeight: number;
11
+ x: number;
12
+ y: number;
13
+ overflowX: boolean;
14
+ overflowY: boolean;
15
+ horizontalThumbSize: number;
16
+ horizontalThumbOffset: number;
17
+ verticalThumbSize: number;
18
+ verticalThumbOffset: number;
19
+ }
20
+ export interface ScrollAreaAxisState {
21
+ direction: ScrollDirection;
22
+ maxPosition: number;
23
+ overflow: boolean;
24
+ position: number;
25
+ }
26
+ interface ScrollbarVisibilityOptions {
27
+ active: boolean;
28
+ axis: ScrollAxis;
29
+ draggingAxis: ScrollAxis | null;
30
+ focusWithin: boolean;
31
+ hovered: boolean;
32
+ scrolling: boolean;
33
+ type: ScrollAreaType;
34
+ }
35
+ interface TrackPositionOptions {
36
+ axis: ScrollAxis;
37
+ coordinate: number;
38
+ direction: ScrollDirection;
39
+ maxPosition: number;
40
+ thumbSize: number;
41
+ trackSize: number;
42
+ trackStart: number;
43
+ }
44
+ interface DragPositionOptions {
45
+ coordinate: number;
46
+ coordinateDirection: 1 | -1;
47
+ maxPosition: number;
48
+ startCoordinate: number;
49
+ startPosition: number;
50
+ travel: number;
51
+ }
52
+ export declare function createScrollAreaMetrics(): ScrollAreaMetrics;
53
+ export declare function isScrollAreaAxisEnabled(scrollbars: ScrollAreaScrollbars | false | undefined, axis: ScrollAxis): boolean;
54
+ export declare function isScrollAreaScrollbarActive(type: ScrollAreaType, enabled: boolean, overflowing: boolean): boolean;
55
+ export declare function isScrollAreaScrollbarVisible({ active, axis, draggingAxis, focusWithin, hovered, scrolling, type, }: ScrollbarVisibilityOptions): boolean;
56
+ export declare function getScrollAreaAxisPosition(metrics: ScrollAreaMetrics, axis: ScrollAxis): number;
57
+ export declare function getScrollAreaMaxPosition(metrics: ScrollAreaMetrics, axis: ScrollAxis): number;
58
+ export declare function getScrollAreaOverflow(metrics: ScrollAreaMetrics, axis: ScrollAxis): boolean;
59
+ export declare function getScrollAreaAxisState(metrics: ScrollAreaMetrics, axis: ScrollAxis): ScrollAreaAxisState;
60
+ export declare function getReachedScrollAreaBoundaries(position: ScrollAreaPosition, previousPosition: ScrollAreaPosition, metrics: ScrollAreaMetrics): ScrollBoundary[];
61
+ export declare function getScrollAreaTrackPosition({ axis, coordinate, direction, maxPosition, thumbSize, trackSize, trackStart, }: TrackPositionOptions): number | undefined;
62
+ export declare function getScrollAreaDragPosition({ coordinate, coordinateDirection, maxPosition, startCoordinate, startPosition, travel, }: DragPositionOptions): number;
63
+ export declare function getScrollAreaRootStyle(scrollbarSize: number | string | undefined): CSSProperties;
64
+ export {};
@@ -8,14 +8,18 @@ export declare const scrollAreaScrollbars: readonly ["x", "y", "both"];
8
8
  export type ScrollAreaScrollbars = (typeof scrollAreaScrollbars)[number];
9
9
  export type ScrollAreaOrientation = 'horizontal' | 'vertical';
10
10
  export interface ScrollAreaPosition {
11
+ /** Logical horizontal offset: zero at inline-start and increasing toward inline-end. */
11
12
  x: number;
13
+ /** Vertical offset from the top edge. */
12
14
  y: number;
13
15
  }
14
16
  export interface ScrollAreaSlotProps {
15
17
  position: ScrollAreaPosition;
16
18
  overflowX: boolean;
17
19
  overflowY: boolean;
20
+ /** Uses the native `Element.scrollTo()` coordinate semantics. */
18
21
  scrollTo: (options: ScrollToOptions) => void;
22
+ /** Uses the native `Element.scrollBy()` coordinate semantics. */
19
23
  scrollBy: (options: ScrollToOptions) => void;
20
24
  update: () => void;
21
25
  }