ropav 0.1.4 → 0.1.6

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 (138) hide show
  1. package/README.md +20 -0
  2. package/dist/accordion.js +11 -8
  3. package/dist/alert.css +18 -18
  4. package/dist/alert.js +27 -21
  5. package/dist/avatar.css +19 -19
  6. package/dist/avatar.js +16 -11
  7. package/dist/badge.css +16 -16
  8. package/dist/badge.js +14 -9
  9. package/dist/base.css +214 -69
  10. package/dist/button-group.js +1 -1
  11. package/dist/button-link.js +16 -14
  12. package/dist/button.css +37 -28
  13. package/dist/button.js +16 -14
  14. package/dist/{useButtonColor.js → button.scss_vue_type_style_index_0_src_true_lang.js} +8 -4
  15. package/dist/card.js +1 -1
  16. package/dist/checkbox.css +32 -32
  17. package/dist/checkbox.js +19 -11
  18. package/dist/chevron-right.js +12 -0
  19. package/dist/collapse.css +6 -6
  20. package/dist/collapse.js +4 -4
  21. package/dist/collectionNavigation.js +120 -0
  22. package/dist/color-input.css +19 -19
  23. package/dist/color-input.js +6 -5
  24. package/dist/color-picker.css +7 -7
  25. package/dist/color-picker.js +4 -5
  26. package/dist/color-swatch.js +1 -1
  27. package/dist/componentColors.js +135 -23
  28. package/dist/components/alert/types.d.ts +1 -0
  29. package/dist/components/alert/useAlertColor.d.ts +1 -1
  30. package/dist/components/avatar/types.d.ts +1 -0
  31. package/dist/components/avatar/useAvatarColor.d.ts +1 -1
  32. package/dist/components/badge/types.d.ts +1 -0
  33. package/dist/components/badge/useBadgeColor.d.ts +1 -1
  34. package/dist/components/button/types.d.ts +1 -0
  35. package/dist/components/button/useButtonColor.d.ts +1 -1
  36. package/dist/components/button-link/types.d.ts +1 -0
  37. package/dist/components/checkbox/types.d.ts +1 -0
  38. package/dist/components/checkbox/useCheckbox.d.ts +1 -1
  39. package/dist/components/color-input/color-input.d.ts +2 -2
  40. package/dist/components/color-input/useColorInput.d.ts +1 -1
  41. package/dist/components/dialog/dialog-core.d.ts +1 -1
  42. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  43. package/dist/components/dropdown-menu/dropdown-menu-primitive-core.d.ts +2 -1
  44. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  45. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -2
  46. package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
  47. package/dist/components/dropdown-menu/index.d.ts +1 -0
  48. package/dist/components/dropdown-menu/types.d.ts +4 -0
  49. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +3 -4
  50. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +2 -1
  51. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +1 -0
  52. package/dist/components/icon-button/types.d.ts +1 -0
  53. package/dist/components/input/useInput.d.ts +1 -1
  54. package/dist/components/number-input/useNumberInput.d.ts +1 -1
  55. package/dist/components/pagination/index.d.ts +4 -0
  56. package/dist/components/pagination/index.js +2 -0
  57. package/dist/components/pagination/pagination.d.ts +49 -0
  58. package/dist/components/pagination/types.d.ts +54 -0
  59. package/dist/components/pagination/usePagination.d.ts +19 -0
  60. package/dist/components/progress/useProgress.d.ts +1 -1
  61. package/dist/components/radio/types.d.ts +3 -0
  62. package/dist/components/radio/useRadio.d.ts +2 -2
  63. package/dist/components/scroll-area/scrollAreaCore.d.ts +5 -0
  64. package/dist/components/scroll-area/types.d.ts +4 -0
  65. package/dist/components/scroll-area/useScrollArea.d.ts +1 -0
  66. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +3 -0
  67. package/dist/components/scroll-area/useScrollAreaPresentation.d.ts +3 -0
  68. package/dist/components/select/useSelect.d.ts +3 -2
  69. package/dist/components/select/useSelectNativeValue.d.ts +1 -7
  70. package/dist/components/slider/range-slider-tooltip.d.ts +2 -0
  71. package/dist/components/slider/sliderCore.d.ts +2 -1
  72. package/dist/components/slider/types.d.ts +1 -1
  73. package/dist/components/slider/useRangeSlider.d.ts +3 -1
  74. package/dist/components/slider/useSlider.d.ts +3 -1
  75. package/dist/components/switch/useSwitch.d.ts +1 -1
  76. package/dist/components/textarea/useTextarea.d.ts +1 -1
  77. package/dist/components/toast/types.d.ts +2 -0
  78. package/dist/components/toast/useToastColor.d.ts +1 -1
  79. package/dist/components/tooltip/types.d.ts +1 -0
  80. package/dist/components/tooltip/useTooltip.d.ts +1 -1
  81. package/dist/composables/index.d.ts +2 -0
  82. package/dist/composables/index.js +2 -0
  83. package/dist/composables/useControllableValue.d.ts +14 -0
  84. package/dist/dialog.js +8 -5
  85. package/dist/dropdown-menu.js +98 -59
  86. package/dist/field.js +1 -1
  87. package/dist/floating.js +19 -7
  88. package/dist/icon-button.css +12 -169
  89. package/dist/icon-button.js +11 -7
  90. package/dist/index.d.ts +6 -4
  91. package/dist/index.js +8 -5
  92. package/dist/input.css +24 -24
  93. package/dist/input.js +6 -5
  94. package/dist/modal.js +11 -7
  95. package/dist/number-input.css +18 -18
  96. package/dist/number-input.js +8 -7
  97. package/dist/overlay.js +1 -1
  98. package/dist/pagination.css +140 -0
  99. package/dist/pagination.js +442 -0
  100. package/dist/popover.js +9 -6
  101. package/dist/progress.css +29 -21
  102. package/dist/progress.js +17 -10
  103. package/dist/radio.js +17 -7
  104. package/dist/scroll-area.css +10 -1
  105. package/dist/scroll-area.js +82 -25
  106. package/dist/select.css +45 -45
  107. package/dist/select.js +111 -70
  108. package/dist/slider.css +191 -191
  109. package/dist/slider.js +58 -46
  110. package/dist/switch.css +17 -17
  111. package/dist/switch.js +7 -6
  112. package/dist/tabs.css +3 -3
  113. package/dist/tabs.js +25 -15
  114. package/dist/textarea.css +26 -26
  115. package/dist/textarea.js +5 -4
  116. package/dist/toast.css +26 -26
  117. package/dist/toast.js +35 -23
  118. package/dist/tooltip.css +12 -12
  119. package/dist/tooltip.js +24 -16
  120. package/dist/unplugin-icons.js +38 -25
  121. package/dist/useCollapse.js +12 -7
  122. package/dist/useControlState.js +1 -1
  123. package/dist/useControllableValue.js +33 -0
  124. package/dist/useFloatingPosition.js +4 -1140
  125. package/dist/useFormControl.js +5 -29
  126. package/dist/useOverlayZIndex.js +1 -1
  127. package/dist/useRequiredInject.js +1 -1
  128. package/dist/utils/componentColors.d.ts +14 -1
  129. package/docs/public-composables-api.md +52 -0
  130. package/docs/public-styles-api.md +1 -1
  131. package/docs/public-tokens.md +648 -508
  132. package/package.json +49 -36
  133. package/src/styles/_mixins.scss +4 -0
  134. package/src/styles/_tokens.scss +460 -320
  135. package/src/styles/_variables.scss +1 -1
  136. package/src/styles/styles-manifest.json +1122 -2
  137. package/dist/button-link.css +0 -163
  138. /package/dist/{composables → internal/composables}/useOverlayLayer.d.ts +0 -0
@@ -14,6 +14,7 @@ export interface BadgeProps extends StylesApiProps<BadgePart> {
14
14
  variant?: BadgeVariant;
15
15
  color?: BadgeColor;
16
16
  autoContrast?: boolean;
17
+ contrastColor?: string;
17
18
  size?: BadgeSize;
18
19
  radius?: BadgeRadius;
19
20
  ariaLabel?: string;
@@ -1,3 +1,3 @@
1
1
  import { CSSProperties } from 'vue';
2
2
  import { BadgeColor, BadgeVariant } from './types.js';
3
- export declare function getBadgeColorStyle(color: BadgeColor | undefined, variant: BadgeVariant | undefined, autoContrast: boolean | undefined): CSSProperties | undefined;
3
+ export declare function getBadgeColorStyle(color: BadgeColor | undefined, variant: BadgeVariant | undefined, autoContrast: boolean | undefined, contrastColor?: string): CSSProperties | undefined;
@@ -10,6 +10,7 @@ export interface ButtonProps extends StylesApiProps<ButtonPart> {
10
10
  variant?: ButtonVariant;
11
11
  color?: ButtonColor;
12
12
  autoContrast?: boolean;
13
+ contrastColor?: string;
13
14
  size?: ButtonSize;
14
15
  radius?: ButtonRadius;
15
16
  type?: 'button' | 'submit' | 'reset';
@@ -1,3 +1,3 @@
1
1
  import { CSSProperties } from 'vue';
2
2
  import { ButtonColor, ButtonVariant } from './types.js';
3
- export declare function getButtonColorStyle(color: ButtonColor | undefined, variant: ButtonVariant | undefined, autoContrast: boolean | undefined): CSSProperties | undefined;
3
+ export declare function getButtonColorStyle(color: ButtonColor | undefined, variant: ButtonVariant | undefined, autoContrast: boolean | undefined, contrastColor?: string): CSSProperties | undefined;
@@ -16,6 +16,7 @@ export interface ButtonLinkProps extends StylesApiProps<ButtonLinkPart> {
16
16
  variant?: ButtonLinkVariant;
17
17
  color?: ButtonLinkColor;
18
18
  autoContrast?: boolean;
19
+ contrastColor?: string;
19
20
  size?: ButtonLinkSize;
20
21
  radius?: ButtonLinkRadius;
21
22
  disabled?: boolean;
@@ -17,6 +17,7 @@ export interface CheckboxProps extends StylesApiProps<CheckboxPart> {
17
17
  variant?: CheckboxVariant;
18
18
  color?: CheckboxColor;
19
19
  autoContrast?: boolean;
20
+ contrastColor?: string;
20
21
  size?: CheckboxSize;
21
22
  radius?: CheckboxRadius;
22
23
  disabled?: boolean;
@@ -2,7 +2,7 @@ import { CSSProperties } from 'vue';
2
2
  import { CheckboxProps } from './types.js';
3
3
  export declare function useCheckbox(props: Readonly<CheckboxProps>, emitUpdate: (value: boolean) => void, getValue?: () => boolean): {
4
4
  inputRef: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
5
- control: import('../../composables/useControlState.js').ControlState;
5
+ control: import('../../internal/composables/useControlState.js').ControlState;
6
6
  rootClass: import('vue').ComputedRef<string[]>;
7
7
  rootStyle: import('vue').ComputedRef<CSSProperties | undefined>;
8
8
  onChange: (e: Event) => void;
@@ -1,8 +1,8 @@
1
1
  import { ColorInputProps } from './types.js';
2
2
  declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
3
  props: import('vue').PublicProps & __VLS_PrettifyLocal<ColorInputProps & {
4
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
5
4
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
5
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
6
6
  }> & (typeof globalThis extends {
7
7
  __VLS_PROPS_FALLBACK: infer P;
8
8
  } ? P : {});
@@ -16,7 +16,7 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
16
16
  } & {
17
17
  'eye-dropper-icon'?: (props: {}) => any;
18
18
  };
19
- emit: ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: string) => void);
19
+ emit: ((evt: "update:modelValue", value: string) => void) & ((evt: "update:open", value: boolean) => void);
20
20
  }>) => import('vue').VNode & {
21
21
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
22
22
  };
@@ -20,7 +20,7 @@ export declare function useColorInput(props: Readonly<ColorInputProps>, emit: Us
20
20
  hasInvalidColor: import('vue').ComputedRef<boolean | undefined>;
21
21
  isInvalid: import('vue').ComputedRef<boolean | undefined>;
22
22
  colorValidationMessage: import('vue').ComputedRef<string | undefined>;
23
- control: import('../../composables/useControlState.js').ControlState;
23
+ control: import('../../internal/composables/useControlState.js').ControlState;
24
24
  rootClass: import('vue').ComputedRef<string[]>;
25
25
  popoverDisabled: import('vue').ComputedRef<boolean>;
26
26
  };
@@ -1,5 +1,5 @@
1
1
  import { ComponentPublicInstance, ComputedRef, InjectionKey, Ref, VaporComponentInstance } from 'vue';
2
- import { OverlayLayerContext } from '../../composables/useOverlayLayer.js';
2
+ import { OverlayLayerContext } from '../../internal/composables/useOverlayLayer.js';
3
3
  import { DialogCloseReason } from './types.js';
4
4
  export interface DialogRootContext {
5
5
  isOpen: ComputedRef<boolean>;
@@ -5,8 +5,8 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
5
5
  originalEvent: KeyboardEvent;
6
6
  }>) => any) | undefined;
7
7
  onPointerDownOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
8
- onFocusOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
9
8
  onInteractOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
9
+ onFocusOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
10
10
  }> & (typeof globalThis extends {
11
11
  __VLS_PROPS_FALLBACK: infer P;
12
12
  } ? P : {});
@@ -21,7 +21,7 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
21
21
  };
22
22
  emit: ((evt: "escapeKeyDown", event: CustomEvent<{
23
23
  originalEvent: KeyboardEvent;
24
- }>) => void) & ((evt: "pointerDownOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "focusOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "interactOutside", event: DropdownMenuInteractOutsideEvent) => void);
24
+ }>) => void) & ((evt: "pointerDownOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "interactOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "focusOutside", event: DropdownMenuInteractOutsideEvent) => void);
25
25
  }>) => import('vue').VNode & {
26
26
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
27
27
  };
@@ -1,5 +1,5 @@
1
1
  import { ComponentPublicInstance, ComputedRef, InjectionKey, Ref, VaporComponentInstance } from 'vue';
2
- import { OverlayLayerContext } from '../../composables/useOverlayLayer.js';
2
+ import { OverlayLayerContext } from '../../internal/composables/useOverlayLayer.js';
3
3
  import { FloatingReference } from '../floating/types.js';
4
4
  import { DropdownMenuCloseOptions, DropdownMenuFocusTarget, DropdownMenuInteractOutsideEvent, DropdownMenuItemPrimitiveProps, DropdownMenuItemValue, DropdownMenuOpenOptions, DropdownMenuPlacement, DropdownMenuPoint, DropdownMenuSelectEvent, DropdownMenuVirtualAnchor } from './types.js';
5
5
  export type ElementReference = FloatingReference;
@@ -8,6 +8,7 @@ export type ComponentRefValue = Element | ComponentPublicInstance | VaporCompone
8
8
  export interface MenuItemRegistration {
9
9
  id: string;
10
10
  element: () => HTMLElement | null;
11
+ textValue: () => string;
11
12
  disabled: () => boolean;
12
13
  activate: (event: Event) => void;
13
14
  submenu?: DropdownMenuSubContext;
@@ -5,8 +5,8 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
5
5
  originalEvent: KeyboardEvent;
6
6
  }>) => any) | undefined;
7
7
  onPointerDownOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
8
- onFocusOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
9
8
  onInteractOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
9
+ onFocusOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
10
10
  }> & (typeof globalThis extends {
11
11
  __VLS_PROPS_FALLBACK: infer P;
12
12
  } ? P : {});
@@ -21,7 +21,7 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
21
21
  };
22
22
  emit: ((evt: "escapeKeyDown", event: CustomEvent<{
23
23
  originalEvent: KeyboardEvent;
24
- }>) => void) & ((evt: "pointerDownOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "focusOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "interactOutside", event: DropdownMenuInteractOutsideEvent) => void);
24
+ }>) => void) & ((evt: "pointerDownOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "interactOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "focusOutside", event: DropdownMenuInteractOutsideEvent) => void);
25
25
  }>) => import('vue').VNode & {
26
26
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
27
27
  };
@@ -19,5 +19,3 @@ export declare function normalizePath(indexOrPath: number | ItemPath): ItemPath;
19
19
  export declare function getEventPoint(event: MouseEvent): PointerPoint;
20
20
  export declare function hasMeasuredRect(rect: DOMRect): boolean;
21
21
  export declare function isPointInRect(point: PointerPoint, rect: DOMRect, padding?: number): boolean;
22
- export declare function getEnabledIndexes(items: DropdownMenuItem[]): number[];
23
- export declare function getNextEnabledIndex(items: DropdownMenuItem[], index: number, direction: 1 | -1): number | undefined;
@@ -1,11 +1,11 @@
1
1
  import { DropdownMenuItem, DropdownMenuItemSlotProps, DropdownMenuInteractOutsideEvent, DropdownMenuProps, DropdownMenuSelectEvent, DropdownMenuSlotProps } from './types.js';
2
2
  declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
3
  props: import('vue').PublicProps & __VLS_PrettifyLocal<DropdownMenuProps & {
4
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
5
4
  onSelect?: ((item: DropdownMenuItem, event: DropdownMenuSelectEvent) => any) | undefined;
5
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
6
6
  onPointerDownOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
7
- onFocusOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
8
7
  onInteractOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
8
+ onFocusOutside?: ((event: DropdownMenuInteractOutsideEvent) => any) | undefined;
9
9
  }> & (typeof globalThis extends {
10
10
  __VLS_PROPS_FALLBACK: infer P;
11
11
  } ? P : {});
@@ -16,7 +16,7 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
16
16
  item?(props: DropdownMenuItemSlotProps): unknown;
17
17
  empty?(): unknown;
18
18
  };
19
- emit: ((evt: "update:open", value: boolean) => void) & ((evt: "select", item: DropdownMenuItem, event: DropdownMenuSelectEvent) => void) & ((evt: "pointerDownOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "focusOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "interactOutside", event: DropdownMenuInteractOutsideEvent) => void);
19
+ emit: ((evt: "select", item: DropdownMenuItem, event: DropdownMenuSelectEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "pointerDownOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "interactOutside", event: DropdownMenuInteractOutsideEvent) => void) & ((evt: "focusOutside", event: DropdownMenuInteractOutsideEvent) => void);
20
20
  }>) => import('vue').VNode & {
21
21
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
22
22
  };
@@ -13,6 +13,7 @@ export declare const DropdownMenuItem: (__VLS_props: NonNullable<Awaited<typeof
13
13
  id?: string | undefined;
14
14
  as?: import('./types.js').DropdownMenuAs | undefined;
15
15
  value?: import('./types.js').DropdownMenuItemValue | undefined;
16
+ textValue?: string | undefined;
16
17
  disabled?: boolean | undefined;
17
18
  destructive?: boolean | undefined;
18
19
  closeOnSelect?: boolean | undefined;
@@ -190,6 +190,8 @@ export interface DropdownMenuItemPrimitiveProps {
190
190
  id?: string;
191
191
  as?: DropdownMenuAs;
192
192
  value?: DropdownMenuItemValue;
193
+ /** Text used for keyboard typeahead. Falls back to the rendered text content. */
194
+ textValue?: string;
193
195
  disabled?: boolean;
194
196
  destructive?: boolean;
195
197
  closeOnSelect?: boolean;
@@ -234,6 +236,8 @@ export interface DropdownMenuSubPrimitiveProps {
234
236
  export interface DropdownMenuSubTriggerPrimitiveProps {
235
237
  id?: string;
236
238
  as?: DropdownMenuAs;
239
+ /** Text used for keyboard typeahead. Falls back to the rendered text content. */
240
+ textValue?: string;
237
241
  disabled?: boolean;
238
242
  }
239
243
  export interface DropdownMenuSubContentPrimitiveProps extends Omit<DropdownMenuContentPrimitiveProps, 'arrow' | 'ignore' | 'placement'> {
@@ -1,12 +1,11 @@
1
1
  import { Ref } from 'vue';
2
- import { OverlayLayerContext } from '../../composables/useOverlayLayer.js';
2
+ import { OverlayLayerContext } from '../../internal/composables/useOverlayLayer.js';
3
3
  import { DropdownMenuCloseOptions, DropdownMenuFocusTarget, DropdownMenuInteractOutsideEvent, DropdownMenuItem, DropdownMenuOpenOptions, DropdownMenuProps, DropdownMenuSelectEvent } from './types.js';
4
4
  import { ItemPath } from './dropdown-menu-utils.js';
5
5
  type BooleanSource = Readonly<Ref<boolean>>;
6
6
  type UseDropdownMenuDisclosureOptions = {
7
7
  props: Readonly<DropdownMenuProps>;
8
8
  emit: {
9
- openChange?: (open: boolean) => void;
10
9
  select?: (item: DropdownMenuItem, event: DropdownMenuSelectEvent) => void;
11
10
  pointerDownOutside?: (event: DropdownMenuInteractOutsideEvent) => void;
12
11
  focusOutside?: (event: DropdownMenuInteractOutsideEvent) => void;
@@ -15,7 +14,7 @@ type UseDropdownMenuDisclosureOptions = {
15
14
  rootRef: Ref<HTMLElement | null>;
16
15
  menuRef: Ref<HTMLElement | null>;
17
16
  targetRef: Readonly<Ref<Element | null>>;
18
- uncontrolledOpen: Ref<boolean>;
17
+ setControllableOpen: (open: boolean) => void;
19
18
  isDisabled: BooleanSource;
20
19
  isOpen: BooleanSource;
21
20
  isVisible: BooleanSource;
@@ -28,7 +27,7 @@ type UseDropdownMenuDisclosureOptions = {
28
27
  focusTrigger: () => void;
29
28
  layer: OverlayLayerContext;
30
29
  };
31
- export declare function useDropdownMenuDisclosure({ props, emit, rootRef, menuRef, targetRef, uncontrolledOpen, isDisabled, isOpen, isVisible, focusedPath, resetFocus, resetSubmenus, resetHoverIntent, focusItem, focusMenu, focusTrigger, layer, }: UseDropdownMenuDisclosureOptions): {
30
+ export declare function useDropdownMenuDisclosure({ props, emit, rootRef, menuRef, targetRef, setControllableOpen, isDisabled, isOpen, isVisible, focusedPath, resetFocus, resetSubmenus, resetHoverIntent, focusItem, focusMenu, focusTrigger, layer, }: UseDropdownMenuDisclosureOptions): {
32
31
  open: (options?: DropdownMenuOpenOptions | DropdownMenuFocusTarget) => void;
33
32
  close: (options?: DropdownMenuCloseOptions) => void;
34
33
  toggle: () => void;
@@ -31,12 +31,13 @@ type UseDropdownMenuInteractionsOptions = {
31
31
  getItemAtPath: (path: ItemPath) => DropdownMenuItem | undefined;
32
32
  focusItem: (target: DropdownMenuFocusTarget, menuPath?: ItemPath) => boolean;
33
33
  moveFocus: (direction: 1 | -1) => ItemPath | undefined;
34
+ handleTypeahead: (event: KeyboardEvent) => boolean;
34
35
  submenus: SubmenuControls;
35
36
  hoverIntent: HoverIntentControls;
36
37
  disclosure: DisclosureControls;
37
38
  isSubmenuOpeningLeft: (path: ItemPath) => boolean;
38
39
  };
39
- export declare function useDropdownMenuInteractions({ props, emit, isDisabled, focusedPath, openSubmenuPath, getItemAtPath, focusItem, moveFocus, submenus, hoverIntent, disclosure, isSubmenuOpeningLeft, }: UseDropdownMenuInteractionsOptions): {
40
+ export declare function useDropdownMenuInteractions({ props, emit, isDisabled, focusedPath, openSubmenuPath, getItemAtPath, focusItem, moveFocus, handleTypeahead, submenus, hoverIntent, disclosure, isSubmenuOpeningLeft, }: UseDropdownMenuInteractionsOptions): {
40
41
  activateItem: (item: DropdownMenuItem, path: ItemPath, event?: MouseEvent | KeyboardEvent) => void;
41
42
  selectItem: (item: DropdownMenuItem, originalEvent?: Event) => void;
42
43
  openSubmenu: (path: ItemPath, focus?: SubmenuFocusTarget, point?: PointerPoint) => boolean;
@@ -10,6 +10,7 @@ export declare function useDropdownMenuNavigation(items: DropdownMenuItemsSource
10
10
  getItemAtPath: (path: ItemPath) => DropdownMenuItem | undefined;
11
11
  focusItem: (target: DropdownMenuFocusTarget, menuPath?: ItemPath) => boolean;
12
12
  resetFocus: () => void;
13
+ setFocusedIndex: (index: number, menuPath?: ItemPath) => boolean;
13
14
  isItemFocused: (indexOrPath: number | ItemPath) => boolean;
14
15
  moveFocus: (direction: 1 | -1) => number[] | undefined;
15
16
  };
@@ -11,6 +11,7 @@ export interface IconButtonProps extends StylesApiProps<IconButtonPart> {
11
11
  variant?: IconButtonVariant;
12
12
  color?: IconButtonColor;
13
13
  autoContrast?: boolean;
14
+ contrastColor?: string;
14
15
  size?: IconButtonSize;
15
16
  radius?: IconButtonRadius;
16
17
  type?: 'button' | 'submit' | 'reset';
@@ -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;
@@ -15,7 +15,7 @@ export declare function normalizeNumberInputControlsPosition(position: NumberInp
15
15
  export declare function normalizeNumberInputTextAlign(textAlign: NumberInputTextAlign | undefined): NumberInputTextAlign;
16
16
  export declare function getModelInputValue(value: NumberInputValue): string;
17
17
  export declare function useNumberInput(props: Readonly<NumberInputProps>, emitUpdate: (value: NumberInputValue) => void, getValue?: () => NumberInputValue): {
18
- control: import('../../composables/useControlState.js').ControlState;
18
+ control: import('../../internal/composables/useControlState.js').ControlState;
19
19
  rootClass: import('vue').ComputedRef<string[]>;
20
20
  bounds: import('vue').ComputedRef<NumberInputBounds>;
21
21
  nativeStep: import('vue').ComputedRef<number>;
@@ -0,0 +1,4 @@
1
+ export { default as Pagination } from './pagination.js';
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';
4
+ export { getPaginationItems, normalizePaginationPage, normalizePaginationTotal, usePagination, } from './usePagination.js';
@@ -0,0 +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";
2
+ export { pagination_default as Pagination, getPaginationItems, normalizePaginationPage, normalizePaginationTotal, paginationColors, paginationParts, paginationRadiuses, paginationSizes, usePagination };
@@ -0,0 +1,49 @@
1
+ import { PaginationProps } from './types.js';
2
+ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
+ props: import('vue').PublicProps & __VLS_PrettifyLocal<PaginationProps & {
4
+ "onUpdate:modelValue"?: ((page: number) => any) | undefined;
5
+ onChange?: ((page: number) => any) | undefined;
6
+ }> & (typeof globalThis extends {
7
+ __VLS_PROPS_FALLBACK: infer P;
8
+ } ? P : {});
9
+ expose: (exposed: {}) => void;
10
+ attrs: any;
11
+ slots: {
12
+ first?: (props: {
13
+ page: number;
14
+ disabled: boolean;
15
+ }) => any;
16
+ } & {
17
+ previous?: (props: {
18
+ page: number;
19
+ disabled: boolean;
20
+ }) => any;
21
+ } & {
22
+ page?: (props: {
23
+ page: number;
24
+ active: boolean;
25
+ }) => any;
26
+ } & {
27
+ ellipsis?: (props: {}) => any;
28
+ } & {
29
+ next?: (props: {
30
+ page: number;
31
+ disabled: boolean;
32
+ }) => any;
33
+ } & {
34
+ last?: (props: {
35
+ page: number;
36
+ disabled: boolean;
37
+ }) => any;
38
+ };
39
+ emit: ((evt: "update:modelValue", page: number) => void) & ((evt: "change", page: number) => void);
40
+ }>) => import('vue').VNode & {
41
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
42
+ };
43
+ declare const _default: typeof __VLS_export;
44
+ export default _default;
45
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
46
+ [K in keyof T]: T[K];
47
+ } : {
48
+ [K in keyof T as K]: T[K];
49
+ }) & {};
@@ -0,0 +1,54 @@
1
+ import { ComponentColorValue } from '../../utils/componentColors.js';
2
+ import { StylesApiProps } from '../../styles-api.js';
3
+ export declare const paginationParts: readonly ["root", "items", "control", "page", "ellipsis"];
4
+ export type PaginationPart = (typeof paginationParts)[number];
5
+ export declare const paginationColors: readonly ["dark", "gray", "red", "pink", "grape", "violet", "indigo", "blue", "cyan", "teal", "green", "lime", "yellow", "orange"];
6
+ export declare const paginationSizes: readonly ["xs", "sm", "md", "lg", "xl"];
7
+ export declare const paginationRadiuses: readonly ["none", "xs", "sm", "md", "lg", "xl", "full"];
8
+ export type PaginationColor = ComponentColorValue;
9
+ export type PaginationSize = (typeof paginationSizes)[number];
10
+ export type PaginationRadius = (typeof paginationRadiuses)[number];
11
+ export type PaginationControl = 'first' | 'previous' | 'next' | 'last';
12
+ export type PaginationGetPageAriaLabel = (page: number, active: boolean) => string;
13
+ export interface PaginationPageItem {
14
+ type: 'page';
15
+ key: string;
16
+ page: number;
17
+ }
18
+ export interface PaginationEllipsisItem {
19
+ type: 'ellipsis';
20
+ key: string;
21
+ }
22
+ export type PaginationItem = PaginationPageItem | PaginationEllipsisItem;
23
+ export interface PaginationPageSlotProps {
24
+ page: number;
25
+ active: boolean;
26
+ }
27
+ export interface PaginationControlSlotProps {
28
+ page: number;
29
+ disabled: boolean;
30
+ }
31
+ export interface PaginationProps extends StylesApiProps<PaginationPart> {
32
+ id?: string;
33
+ modelValue?: number;
34
+ defaultValue?: number;
35
+ total: number;
36
+ siblings?: number;
37
+ boundaries?: number;
38
+ withControls?: boolean;
39
+ withEdges?: boolean;
40
+ disabled?: boolean;
41
+ color?: PaginationColor;
42
+ autoContrast?: boolean;
43
+ contrastColor?: string;
44
+ size?: PaginationSize;
45
+ radius?: PaginationRadius;
46
+ ariaLabel?: string;
47
+ labelledby?: string;
48
+ describedby?: string;
49
+ firstLabel?: string;
50
+ previousLabel?: string;
51
+ nextLabel?: string;
52
+ lastLabel?: string;
53
+ getPageAriaLabel?: PaginationGetPageAriaLabel;
54
+ }
@@ -0,0 +1,19 @@
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
+ };
@@ -13,7 +13,7 @@ export declare function normalizeProgressBounds(min: number, max: number): {
13
13
  export declare function normalizeProgressValue(value: number | null | undefined, min: number, max: number): number;
14
14
  export declare function getProgressValuePercent(value: number, min: number, max: number): number;
15
15
  export declare function useProgress(props: ProgressStateProps): {
16
- control: import('../../composables/useControlState.js').ControlState;
16
+ control: import('../../internal/composables/useControlState.js').ControlState;
17
17
  rootClass: import('vue').ComputedRef<string[]>;
18
18
  rootStyle: import('vue').ComputedRef<CSSProperties>;
19
19
  isIndeterminate: import('vue').ComputedRef<boolean>;
@@ -18,6 +18,7 @@ export interface RadioProps extends StylesApiProps<RadioPart> {
18
18
  variant?: RadioVariant;
19
19
  color?: RadioColor;
20
20
  autoContrast?: boolean;
21
+ contrastColor?: string;
21
22
  size?: RadioSize;
22
23
  disabled?: boolean;
23
24
  required?: boolean;
@@ -37,6 +38,7 @@ export interface RadioGroupProps extends StylesApiProps<RadioGroupPart> {
37
38
  variant?: RadioVariant;
38
39
  color?: RadioColor;
39
40
  autoContrast?: boolean;
41
+ contrastColor?: string;
40
42
  size?: RadioSize;
41
43
  orientation?: RadioGroupOrientation;
42
44
  disabled?: boolean;
@@ -65,6 +67,7 @@ export interface RadioGroupContext {
65
67
  variant?: RadioVariant;
66
68
  color?: RadioColor;
67
69
  autoContrast?: boolean;
70
+ contrastColor?: string;
68
71
  size?: RadioSize;
69
72
  inputAttrs: InputHTMLAttributes | undefined;
70
73
  select: (value: string | number) => void;
@@ -2,7 +2,7 @@ import { CSSProperties } from 'vue';
2
2
  import { RadioGroupProps, RadioProps } from './types.js';
3
3
  export declare function useRadio(props: Readonly<RadioProps>, emitChange: (event: Event) => void): {
4
4
  inputRef: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
5
- control: import('../../composables/useControlState.js').ControlState;
5
+ control: import('../../internal/composables/useControlState.js').ControlState;
6
6
  name: import('vue').ComputedRef<string | undefined>;
7
7
  form: import('vue').ComputedRef<string | undefined>;
8
8
  groupInputAttrs: import('vue').ComputedRef<import('vue').InputHTMLAttributes | undefined>;
@@ -16,7 +16,7 @@ export declare function useRadio(props: Readonly<RadioProps>, emitChange: (event
16
16
  focus: (options?: FocusOptions) => void;
17
17
  };
18
18
  export declare function useRadioGroup(props: Readonly<RadioGroupProps>, emitUpdate: (value: string | number | null) => void): {
19
- control: import('../../composables/useControlState.js').ControlState;
19
+ control: import('../../internal/composables/useControlState.js').ControlState;
20
20
  rootClass: import('vue').ComputedRef<string[]>;
21
21
  value: import('vue').ComputedRef<string | number | null>;
22
22
  };
@@ -1,6 +1,8 @@
1
1
  import { ScrollAreaScrollbars, ScrollAreaType } from './types.js';
2
2
  export type ScrollAxis = 'x' | 'y';
3
+ export type ScrollDirection = 'ltr' | 'rtl';
3
4
  export interface ScrollAreaMetrics {
5
+ direction: ScrollDirection;
4
6
  clientWidth: number;
5
7
  clientHeight: number;
6
8
  scrollWidth: number;
@@ -15,6 +17,9 @@ export interface ScrollAreaMetrics {
15
17
  verticalThumbOffset: number;
16
18
  }
17
19
  export declare function clamp(value: number, min: number, max: number): number;
20
+ export declare function getScrollDirection(viewport: HTMLElement): ScrollDirection;
21
+ export declare function getLogicalHorizontalPosition(scrollLeft: number, maxPosition: number, direction: ScrollDirection): number;
22
+ export declare function getRawHorizontalPosition(position: number, maxPosition: number, direction: ScrollDirection): number;
18
23
  export declare function isAxisEnabled(scrollbars: ScrollAreaScrollbars | false | undefined, axis: ScrollAxis): boolean;
19
24
  export declare function isScrollbarActive(type: ScrollAreaType, enabled: boolean, overflowing: boolean): boolean;
20
25
  export declare function getThumbGeometry(trackSize: number, viewportSize: number, scrollSize: number): {
@@ -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
  }
@@ -35,6 +35,7 @@ export declare function useScrollArea(options: UseScrollAreaOptions): {
35
35
  horizontalScrollbarRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
36
36
  verticalScrollbarRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
37
37
  metrics: {
38
+ direction: import('./scrollAreaCore.js').ScrollDirection;
38
39
  clientWidth: number;
39
40
  clientHeight: number;
40
41
  scrollWidth: number;
@@ -11,6 +11,7 @@ interface UseScrollAreaMetricsOptions {
11
11
  }
12
12
  export declare function useScrollAreaMetrics(options: UseScrollAreaMetricsOptions): {
13
13
  metrics: {
14
+ direction: import('./scrollAreaCore.js').ScrollDirection;
14
15
  clientWidth: number;
15
16
  clientHeight: number;
16
17
  scrollWidth: number;
@@ -26,7 +27,9 @@ export declare function useScrollAreaMetrics(options: UseScrollAreaMetricsOption
26
27
  };
27
28
  position: import('vue').ComputedRef<ScrollAreaPosition>;
28
29
  update: () => void;
30
+ updatePosition: (viewport?: HTMLElement | null) => void;
29
31
  scheduleUpdate: () => void;
32
+ schedulePositionUpdate: () => void;
30
33
  getPosition: (axis: ScrollAxis) => number;
31
34
  getMaxPosition: (axis: ScrollAxis) => number;
32
35
  getOverflow: (axis: ScrollAxis) => boolean;
@@ -16,6 +16,7 @@ export declare function useScrollAreaPresentation(props: Readonly<ScrollAreaProp
16
16
  'aria-disabled': true | undefined;
17
17
  'aria-hidden': true | undefined;
18
18
  'data-orientation': string;
19
+ 'data-direction': import('./scrollAreaCore.js').ScrollDirection;
19
20
  'data-active': "" | undefined;
20
21
  'data-visible': "" | undefined;
21
22
  class?: import('vue').ClassValue;
@@ -32,6 +33,7 @@ export declare function useScrollAreaPresentation(props: Readonly<ScrollAreaProp
32
33
  'aria-disabled': true | undefined;
33
34
  'aria-hidden': true | undefined;
34
35
  'data-orientation': string;
36
+ 'data-direction': import('./scrollAreaCore.js').ScrollDirection;
35
37
  'data-active': "" | undefined;
36
38
  'data-visible': "" | undefined;
37
39
  class?: import('vue').ClassValue;
@@ -41,6 +43,7 @@ export declare function useScrollAreaPresentation(props: Readonly<ScrollAreaProp
41
43
  verticalThumbAttrs: import('vue').ComputedRef<Pick<HTMLAttributes, "class" | "style">>;
42
44
  cornerAttrs: import('vue').ComputedRef<{
43
45
  'aria-hidden': boolean;
46
+ 'data-direction': import('./scrollAreaCore.js').ScrollDirection;
44
47
  'data-visible': "" | undefined;
45
48
  class?: import('vue').ClassValue;
46
49
  style?: import('vue').StyleValue;
@@ -7,10 +7,11 @@ export declare function useSelect(props: Readonly<SelectBehaviorProps>, emitUpda
7
7
  triggerRef: Ref<HTMLElement | null, HTMLElement | null>;
8
8
  isOpen: Ref<boolean, boolean>;
9
9
  selectId: string;
10
+ popupId: string;
10
11
  listboxId: string;
11
- control: import('../../composables/useControlState.js').ControlState;
12
+ control: import('../../internal/composables/useControlState.js').ControlState;
12
13
  visibleOptions: import('vue').ComputedRef<SelectOption[]>;
13
- focusedIndex: Ref<number, number>;
14
+ focusedIndex: import('vue').ComputedRef<number>;
14
15
  activeDescendantId: import('vue').ComputedRef<string | undefined>;
15
16
  rootClass: import('vue').ComputedRef<string[]>;
16
17
  hasValue: import('vue').ComputedRef<boolean>;
@@ -2,13 +2,7 @@ import { SelectProps } from './types.js';
2
2
  export type SelectValue = string | number | null;
3
3
  export declare function useSelectNativeValue(props: Readonly<SelectProps>, emitUpdate: (value: SelectValue) => void): {
4
4
  nativeSelectRef: import('vue').Ref<HTMLSelectElement | null, HTMLSelectElement | null>;
5
- controllable: {
6
- initialValue: SelectValue;
7
- isControlled: import('vue').ComputedRef<boolean>;
8
- value: import('vue').ComputedRef<SelectValue>;
9
- setValue: (nextValue: SelectValue) => void;
10
- resetValue: (nextValue?: SelectValue) => void;
11
- };
5
+ controllable: import('../../composables/useControllableValue.js').UseControllableValueReturn<SelectValue>;
12
6
  getNativeValue: (select: HTMLSelectElement) => string | number | null;
13
7
  syncNativeSelection: (value: SelectValue) => void;
14
8
  requestValueUpdate: (value: SelectValue) => void;