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,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 {};
@@ -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
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,12 +6,6 @@ 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
10
  control: import('../../internal/composables/useControlState.js').ControlState;
17
11
  rootClass: import('vue').ComputedRef<string[]>;
@@ -1,4 +1,3 @@
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>;
@@ -11,7 +10,7 @@ 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
  };
@@ -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 {};
@@ -1,59 +1,76 @@
1
- import { ScrollAreaPosition, ScrollAreaProps } from './types.js';
2
- interface UseScrollAreaOptions {
3
- props: Readonly<ScrollAreaProps>;
4
- emitScroll: (event: Event) => void;
5
- emitPositionChange: (position: ScrollAreaPosition) => void;
6
- emitReachTop: (event: Event) => void;
7
- emitReachBottom: (event: Event) => void;
8
- emitReachLeft: (event: Event) => void;
9
- emitReachRight: (event: Event) => void;
1
+ import { ScrollAxis } from '../../utils/dom/scroll.js';
2
+ import { ScrollAreaPosition, ScrollAreaProps, ScrollAreaSlotProps } from './types.js';
3
+ interface ScrollAreaEmit {
4
+ (event: 'scroll', value: Event): void;
5
+ (event: 'scrollPositionChange', value: ScrollAreaPosition): void;
6
+ (event: 'reachTop', value: Event): void;
7
+ (event: 'reachBottom', value: Event): void;
8
+ (event: 'reachLeft', value: Event): void;
9
+ (event: 'reachRight', value: Event): void;
10
10
  }
11
- export declare function useScrollArea(options: UseScrollAreaOptions): {
12
- onScrollbarPointerdown: (axis: import('./scrollAreaCore.js').ScrollAxis, event: PointerEvent) => void;
13
- onThumbPointerdown: (axis: import('./scrollAreaCore.js').ScrollAxis, event: PointerEvent) => void;
14
- onViewportScroll: (event: Event) => void;
15
- onScrollbarKeydown: (axis: import('./scrollAreaCore.js').ScrollAxis, event: KeyboardEvent) => void;
16
- onScrollbarWheel: (axis: import('./scrollAreaCore.js').ScrollAxis, event: WheelEvent) => void;
17
- writeAxisPosition: (axis: import('./scrollAreaCore.js').ScrollAxis, value: number) => void;
18
- scrollTo: (scrollOptions: ScrollToOptions) => void;
19
- scrollBy: (scrollOptions: ScrollToOptions) => void;
11
+ export declare function useScrollArea(props: Readonly<ScrollAreaProps>, emit: ScrollAreaEmit): {
12
+ templateRefs: {
13
+ root: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
14
+ viewport: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
15
+ content: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
16
+ horizontalScrollbar: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
17
+ verticalScrollbar: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
18
+ };
20
19
  renderHorizontalScrollbar: import('vue').ComputedRef<boolean>;
21
20
  renderVerticalScrollbar: import('vue').ComputedRef<boolean>;
22
- horizontalScrollbarActive: import('vue').ComputedRef<boolean>;
23
- verticalScrollbarActive: import('vue').ComputedRef<boolean>;
24
- horizontalScrollbarVisible: import('vue').ComputedRef<boolean>;
25
- verticalScrollbarVisible: import('vue').ComputedRef<boolean>;
26
- showDuringScroll: () => void;
27
- setDraggingAxis: (axis: import('./scrollAreaCore.js').ScrollAxis | null) => void;
28
- onPointerenter: () => void;
29
- onPointerleave: () => void;
30
- onFocusin: () => void;
31
- onFocusout: (event: FocusEvent) => void;
32
- rootRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
33
- viewportRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
34
- contentRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
35
- horizontalScrollbarRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
36
- verticalScrollbarRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
37
- metrics: {
38
- direction: import('./scrollAreaCore.js').ScrollDirection;
39
- clientWidth: number;
40
- clientHeight: number;
41
- scrollWidth: number;
42
- scrollHeight: number;
43
- x: number;
44
- y: number;
45
- overflowX: boolean;
46
- overflowY: boolean;
47
- horizontalThumbSize: number;
48
- horizontalThumbOffset: number;
49
- verticalThumbSize: number;
50
- verticalThumbOffset: number;
51
- };
52
- position: import('vue').ComputedRef<ScrollAreaPosition>;
21
+ rootAttrs: import('vue').ComputedRef<Record<string, unknown>>;
22
+ viewportAttrs: import('vue').ComputedRef<import('vue').HTMLAttributes>;
23
+ contentAttrs: import('vue').ComputedRef<import('vue').HTMLAttributes>;
24
+ horizontalScrollbarAttrs: import('vue').ComputedRef<{
25
+ role: string;
26
+ tabindex: number;
27
+ 'aria-controls': string | undefined;
28
+ 'aria-orientation': import('./types.js').ScrollAreaOrientation;
29
+ 'aria-valuemin': number;
30
+ 'aria-valuemax': number;
31
+ 'aria-valuenow': number;
32
+ 'aria-disabled': true | undefined;
33
+ 'aria-hidden': true | undefined;
34
+ 'data-orientation': string;
35
+ 'data-direction': import('../../utils/dom/scroll.js').ScrollDirection;
36
+ 'data-active': "" | undefined;
37
+ 'data-visible': "" | undefined;
38
+ class?: import('vue').ClassValue;
39
+ style?: import('vue').StyleValue;
40
+ }>;
41
+ verticalScrollbarAttrs: import('vue').ComputedRef<{
42
+ role: string;
43
+ tabindex: number;
44
+ 'aria-controls': string | undefined;
45
+ 'aria-orientation': import('./types.js').ScrollAreaOrientation;
46
+ 'aria-valuemin': number;
47
+ 'aria-valuemax': number;
48
+ 'aria-valuenow': number;
49
+ 'aria-disabled': true | undefined;
50
+ 'aria-hidden': true | undefined;
51
+ 'data-orientation': string;
52
+ 'data-direction': import('../../utils/dom/scroll.js').ScrollDirection;
53
+ 'data-active': "" | undefined;
54
+ 'data-visible': "" | undefined;
55
+ class?: import('vue').ClassValue;
56
+ style?: import('vue').StyleValue;
57
+ }>;
58
+ horizontalThumbAttrs: import('vue').ComputedRef<Pick<import('vue').HTMLAttributes, "class" | "style">>;
59
+ verticalThumbAttrs: import('vue').ComputedRef<Pick<import('vue').HTMLAttributes, "class" | "style">>;
60
+ cornerAttrs: import('vue').ComputedRef<{
61
+ 'aria-hidden': boolean;
62
+ 'data-direction': import('../../utils/dom/scroll.js').ScrollDirection;
63
+ 'data-visible': "" | undefined;
64
+ class?: import('vue').ClassValue;
65
+ style?: import('vue').StyleValue;
66
+ }>;
67
+ slotProps: import('vue').ComputedRef<ScrollAreaSlotProps>;
68
+ onScrollbarKeydown: (axis: ScrollAxis, event: KeyboardEvent) => void;
69
+ onScrollbarWheel: (axis: ScrollAxis, event: WheelEvent) => void;
70
+ onScrollbarPointerdown: (axis: ScrollAxis, event: PointerEvent) => void;
71
+ onThumbPointerdown: (axis: ScrollAxis, event: PointerEvent) => void;
72
+ scrollTo: (scrollOptions: ScrollToOptions) => void;
73
+ scrollBy: (scrollOptions: ScrollToOptions) => void;
53
74
  update: () => void;
54
- getPosition: (axis: import('./scrollAreaCore.js').ScrollAxis) => number;
55
- getMaxPosition: (axis: import('./scrollAreaCore.js').ScrollAxis) => number;
56
- getOverflow: (axis: import('./scrollAreaCore.js').ScrollAxis) => boolean;
57
75
  };
58
- export type ScrollAreaController = ReturnType<typeof useScrollArea>;
59
76
  export {};
@@ -1,10 +1,35 @@
1
- import { HTMLAttributes } from 'vue';
2
- import { ScrollAreaController } from './useScrollArea.js';
3
- import { ScrollAreaOrientation, ScrollAreaProps, ScrollAreaSlotProps } from './types.js';
4
- export declare function useScrollAreaPresentation(props: Readonly<ScrollAreaProps>, scrollArea: ScrollAreaController): {
5
- rootAttrs: import('vue').ComputedRef<Record<string, unknown>>;
6
- viewportAttrs: import('vue').ComputedRef<HTMLAttributes>;
1
+ import { HTMLAttributes, Ref } from 'vue';
2
+ import { ScrollAreaMetrics } from './scrollAreaModel.js';
3
+ import { ScrollAreaOrientation, ScrollAreaProps } from './types.js';
4
+ interface ScrollAreaRootHandlers {
5
+ onFocusin: () => void;
6
+ onFocusout: (event: FocusEvent) => void;
7
+ onPointerenter: () => void;
8
+ onPointerleave: () => void;
9
+ }
10
+ interface ScrollAreaAttributeState {
11
+ horizontalActive: Readonly<Ref<boolean>>;
12
+ horizontalVisible: Readonly<Ref<boolean>>;
13
+ verticalActive: Readonly<Ref<boolean>>;
14
+ verticalVisible: Readonly<Ref<boolean>>;
15
+ }
16
+ interface UseScrollAreaAttributesOptions {
17
+ metrics: ScrollAreaMetrics;
18
+ onViewportScroll: (event: Event) => void;
19
+ props: Readonly<ScrollAreaProps>;
20
+ rootHandlers: ScrollAreaRootHandlers;
21
+ state: ScrollAreaAttributeState;
22
+ viewport: Ref<HTMLElement | null>;
23
+ }
24
+ export declare function useScrollAreaAttributes({ metrics, onViewportScroll, props, rootHandlers, state, viewport, }: UseScrollAreaAttributesOptions): {
7
25
  contentAttrs: import('vue').ComputedRef<HTMLAttributes>;
26
+ cornerAttrs: import('vue').ComputedRef<{
27
+ 'aria-hidden': boolean;
28
+ 'data-direction': import('../../utils/dom/scroll.js').ScrollDirection;
29
+ 'data-visible': "" | undefined;
30
+ class?: import('vue').ClassValue;
31
+ style?: import('vue').StyleValue;
32
+ }>;
8
33
  horizontalScrollbarAttrs: import('vue').ComputedRef<{
9
34
  role: string;
10
35
  tabindex: number;
@@ -16,12 +41,14 @@ export declare function useScrollAreaPresentation(props: Readonly<ScrollAreaProp
16
41
  'aria-disabled': true | undefined;
17
42
  'aria-hidden': true | undefined;
18
43
  'data-orientation': string;
19
- 'data-direction': import('./scrollAreaCore.js').ScrollDirection;
44
+ 'data-direction': import('../../utils/dom/scroll.js').ScrollDirection;
20
45
  'data-active': "" | undefined;
21
46
  'data-visible': "" | undefined;
22
47
  class?: import('vue').ClassValue;
23
48
  style?: import('vue').StyleValue;
24
49
  }>;
50
+ horizontalThumbAttrs: import('vue').ComputedRef<Pick<HTMLAttributes, "class" | "style">>;
51
+ rootAttrs: import('vue').ComputedRef<Record<string, unknown>>;
25
52
  verticalScrollbarAttrs: import('vue').ComputedRef<{
26
53
  role: string;
27
54
  tabindex: number;
@@ -33,20 +60,13 @@ export declare function useScrollAreaPresentation(props: Readonly<ScrollAreaProp
33
60
  'aria-disabled': true | undefined;
34
61
  'aria-hidden': true | undefined;
35
62
  'data-orientation': string;
36
- 'data-direction': import('./scrollAreaCore.js').ScrollDirection;
63
+ 'data-direction': import('../../utils/dom/scroll.js').ScrollDirection;
37
64
  'data-active': "" | undefined;
38
65
  'data-visible': "" | undefined;
39
66
  class?: import('vue').ClassValue;
40
67
  style?: import('vue').StyleValue;
41
68
  }>;
42
- horizontalThumbAttrs: import('vue').ComputedRef<Pick<HTMLAttributes, "class" | "style">>;
43
69
  verticalThumbAttrs: import('vue').ComputedRef<Pick<HTMLAttributes, "class" | "style">>;
44
- cornerAttrs: import('vue').ComputedRef<{
45
- 'aria-hidden': boolean;
46
- 'data-direction': import('./scrollAreaCore.js').ScrollDirection;
47
- 'data-visible': "" | undefined;
48
- class?: import('vue').ClassValue;
49
- style?: import('vue').StyleValue;
50
- }>;
51
- slotProps: import('vue').ComputedRef<ScrollAreaSlotProps>;
70
+ viewportAttrs: import('vue').ComputedRef<HTMLAttributes>;
52
71
  };
72
+ export {};
@@ -0,0 +1,8 @@
1
+ import { ScrollAreaMetrics } from './scrollAreaModel.js';
2
+ import { ScrollAreaProps } from './types.js';
3
+ export declare function useScrollAreaDerivedState(props: Readonly<ScrollAreaProps>, metrics: ScrollAreaMetrics): {
4
+ horizontalScrollbarActive: import('vue').ComputedRef<boolean>;
5
+ renderHorizontalScrollbar: import('vue').ComputedRef<boolean>;
6
+ renderVerticalScrollbar: import('vue').ComputedRef<boolean>;
7
+ verticalScrollbarActive: import('vue').ComputedRef<boolean>;
8
+ };
@@ -0,0 +1,35 @@
1
+ import { Ref } from 'vue';
2
+ import { ScrollAxis } from '../../utils/dom/scroll.js';
3
+ interface ScrollAreaMeasurementElements {
4
+ content: Ref<HTMLElement | null>;
5
+ horizontalScrollbar: Ref<HTMLElement | null>;
6
+ verticalScrollbar: Ref<HTMLElement | null>;
7
+ viewport: Ref<HTMLElement | null>;
8
+ }
9
+ interface UseScrollAreaMeasurementOptions {
10
+ elements: ScrollAreaMeasurementElements;
11
+ isAxisEnabled: (axis: ScrollAxis) => boolean;
12
+ minimumThumbSize: number;
13
+ }
14
+ export declare function useScrollAreaMeasurement({ elements, isAxisEnabled, minimumThumbSize, }: UseScrollAreaMeasurementOptions): {
15
+ metrics: {
16
+ direction: import('../../utils/dom/scroll.js').ScrollDirection;
17
+ clientWidth: number;
18
+ clientHeight: number;
19
+ scrollWidth: number;
20
+ scrollHeight: number;
21
+ x: number;
22
+ y: number;
23
+ overflowX: boolean;
24
+ overflowY: boolean;
25
+ horizontalThumbSize: number;
26
+ horizontalThumbOffset: number;
27
+ verticalThumbSize: number;
28
+ verticalThumbOffset: number;
29
+ };
30
+ schedulePositionUpdate: () => void;
31
+ scheduleUpdate: () => void;
32
+ update: () => void;
33
+ updatePosition: (viewport?: HTMLElement | null) => void;
34
+ };
35
+ export {};
@@ -1,14 +1,16 @@
1
1
  import { Ref } from 'vue';
2
- import { ScrollAxis } from './scrollAreaCore.js';
3
- import { ScrollAreaControlsController } from './useScrollAreaControls.js';
4
- import { ScrollAreaMetricsController } from './useScrollAreaMetrics.js';
2
+ import { ScrollAxis } from '../../utils/dom/scroll.js';
3
+ import { ScrollAreaAxisState } from './scrollAreaModel.js';
4
+ interface ScrollAreaPointerElements {
5
+ horizontalScrollbar: Ref<HTMLElement | null>;
6
+ verticalScrollbar: Ref<HTMLElement | null>;
7
+ }
5
8
  interface UseScrollAreaPointerOptions {
6
- horizontalScrollbarRef: Ref<HTMLElement | null>;
7
- verticalScrollbarRef: Ref<HTMLElement | null>;
8
- metrics: ScrollAreaMetricsController;
9
- controls: ScrollAreaControlsController;
9
+ elements: ScrollAreaPointerElements;
10
+ isEmbedded: () => boolean;
11
+ refreshAxis: (axis: ScrollAxis) => ScrollAreaAxisState;
10
12
  setDraggingAxis: (axis: ScrollAxis | null) => void;
11
- shouldFocusScrollbar: () => boolean;
13
+ writeAxisPosition: (axis: ScrollAxis, position: number) => void;
12
14
  }
13
15
  export declare function useScrollAreaPointer(options: UseScrollAreaPointerOptions): {
14
16
  onScrollbarPointerdown: (axis: ScrollAxis, event: PointerEvent) => void;