ropav 0.1.4 → 0.1.5

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 (79) hide show
  1. package/README.md +16 -0
  2. package/dist/alert.css +18 -18
  3. package/dist/alert.js +15 -10
  4. package/dist/avatar.css +19 -19
  5. package/dist/avatar.js +14 -9
  6. package/dist/badge.css +16 -16
  7. package/dist/badge.js +12 -7
  8. package/dist/base.css +196 -56
  9. package/dist/button-link.css +32 -28
  10. package/dist/button-link.js +9 -5
  11. package/dist/button.css +32 -28
  12. package/dist/button.js +9 -5
  13. package/dist/checkbox.css +32 -32
  14. package/dist/checkbox.js +17 -9
  15. package/dist/chevron-right.js +12 -0
  16. package/dist/collectionNavigation.js +120 -0
  17. package/dist/color-input.js +2 -1
  18. package/dist/componentColors.js +94 -22
  19. package/dist/components/alert/types.d.ts +1 -0
  20. package/dist/components/alert/useAlertColor.d.ts +1 -1
  21. package/dist/components/avatar/types.d.ts +1 -0
  22. package/dist/components/avatar/useAvatarColor.d.ts +1 -1
  23. package/dist/components/badge/types.d.ts +1 -0
  24. package/dist/components/badge/useBadgeColor.d.ts +1 -1
  25. package/dist/components/button/types.d.ts +1 -0
  26. package/dist/components/button/useButtonColor.d.ts +1 -1
  27. package/dist/components/button-link/types.d.ts +1 -0
  28. package/dist/components/checkbox/types.d.ts +1 -0
  29. package/dist/components/dropdown-menu/dropdown-menu-primitive-core.d.ts +1 -0
  30. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -2
  31. package/dist/components/dropdown-menu/index.d.ts +1 -0
  32. package/dist/components/dropdown-menu/types.d.ts +4 -0
  33. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +2 -1
  34. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +1 -0
  35. package/dist/components/icon-button/types.d.ts +1 -0
  36. package/dist/components/pagination/index.d.ts +4 -0
  37. package/dist/components/pagination/index.js +2 -0
  38. package/dist/components/pagination/pagination.d.ts +49 -0
  39. package/dist/components/pagination/types.d.ts +54 -0
  40. package/dist/components/pagination/usePagination.d.ts +19 -0
  41. package/dist/components/radio/types.d.ts +3 -0
  42. package/dist/components/select/useSelect.d.ts +1 -1
  43. package/dist/components/slider/range-slider-tooltip.d.ts +2 -0
  44. package/dist/components/slider/types.d.ts +1 -1
  45. package/dist/components/slider/useRangeSlider.d.ts +2 -0
  46. package/dist/components/slider/useSlider.d.ts +2 -0
  47. package/dist/components/toast/types.d.ts +2 -0
  48. package/dist/components/toast/useToastColor.d.ts +1 -1
  49. package/dist/components/tooltip/types.d.ts +1 -0
  50. package/dist/components/tooltip/useTooltip.d.ts +1 -1
  51. package/dist/dropdown-menu.js +55 -30
  52. package/dist/icon-button.css +39 -35
  53. package/dist/icon-button.js +9 -5
  54. package/dist/index.d.ts +1 -0
  55. package/dist/index.js +2 -1
  56. package/dist/input.js +2 -1
  57. package/dist/number-input.js +2 -1
  58. package/dist/pagination.css +140 -0
  59. package/dist/pagination.js +442 -0
  60. package/dist/radio.js +15 -5
  61. package/dist/select.js +65 -46
  62. package/dist/slider.css +191 -191
  63. package/dist/slider.js +49 -31
  64. package/dist/switch.js +2 -1
  65. package/dist/textarea.js +2 -1
  66. package/dist/toast.css +26 -26
  67. package/dist/toast.js +16 -9
  68. package/dist/tooltip.css +12 -12
  69. package/dist/tooltip.js +13 -8
  70. package/dist/unplugin-icons.js +38 -25
  71. package/dist/useButtonColor.js +6 -3
  72. package/dist/useControllableValue.js +27 -0
  73. package/dist/useFormControl.js +2 -27
  74. package/dist/utils/componentColors.d.ts +14 -1
  75. package/docs/public-styles-api.md +1 -1
  76. package/docs/public-tokens.md +648 -508
  77. package/package.json +7 -1
  78. package/src/styles/_tokens.scss +459 -319
  79. package/src/styles/styles-manifest.json +1122 -2
@@ -10,7 +10,7 @@ export declare function useSelect(props: Readonly<SelectBehaviorProps>, emitUpda
10
10
  listboxId: string;
11
11
  control: import('../../composables/useControlState.js').ControlState;
12
12
  visibleOptions: import('vue').ComputedRef<SelectOption[]>;
13
- focusedIndex: Ref<number, number>;
13
+ focusedIndex: import('vue').ComputedRef<number>;
14
14
  activeDescendantId: import('vue').ComputedRef<string | undefined>;
15
15
  rootClass: import('vue').ComputedRef<string[]>;
16
16
  hasValue: import('vue').ComputedRef<boolean>;
@@ -5,6 +5,8 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
5
5
  props: import('vue').PublicProps & __VLS_PrettifyLocal<{
6
6
  arrow?: boolean;
7
7
  color?: TooltipColor;
8
+ autoContrast?: boolean;
9
+ contrastColor?: string;
8
10
  content: [string, string];
9
11
  ids: [string | undefined, string | undefined];
10
12
  mergedContent: string;
@@ -23,7 +23,7 @@ export type RangeSliderEndpointValueText = string | SliderValueFormatter;
23
23
  export type RangeSliderAriaValueText = RangeSliderEndpointValueText | [RangeSliderEndpointValueText, RangeSliderEndpointValueText];
24
24
  export type RangeSliderValidationMessage = string | [string | undefined, string | undefined];
25
25
  export type SliderTooltipMode = 'hover' | 'always';
26
- type SliderTooltipBaseOptions = Pick<TooltipProps, 'id' | 'placement' | 'color' | 'offset' | 'openDelay' | 'arrow'>;
26
+ type SliderTooltipBaseOptions = Pick<TooltipProps, 'id' | 'placement' | 'color' | 'autoContrast' | 'contrastColor' | 'offset' | 'openDelay' | 'arrow'>;
27
27
  export type SliderTooltipAnchor = 'thumb' | 'pointer';
28
28
  export type SliderTooltipOptions = (SliderTooltipBaseOptions & {
29
29
  anchor?: 'thumb';
@@ -42,6 +42,8 @@ export declare function useRangeSlider(props: RangeSliderStateProps, emitUpdate:
42
42
  tooltipIds: import('vue').ComputedRef<[string | undefined, string | undefined]>;
43
43
  mergedTooltipId: import('vue').ComputedRef<string | undefined>;
44
44
  tooltipColor: import('vue').ComputedRef<import('../../utils/componentColors.js').ComponentColorValue | undefined>;
45
+ tooltipAutoContrast: import('vue').ComputedRef<boolean | undefined>;
46
+ tooltipContrastColor: import('vue').ComputedRef<string | undefined>;
45
47
  tooltipOffset: import('vue').ComputedRef<import('../floating/index.js').FloatingOffset | undefined>;
46
48
  tooltipOpenDelay: import('vue').ComputedRef<number>;
47
49
  tooltipArrow: import('vue').ComputedRef<boolean>;
@@ -38,6 +38,8 @@ export declare function useSlider(props: SliderStateProps, emitUpdate: (value: n
38
38
  tooltipPlacement: import('vue').ComputedRef<import('../tooltip/index.js').TooltipPlacement>;
39
39
  tooltipId: import('vue').ComputedRef<string | undefined>;
40
40
  tooltipColor: import('vue').ComputedRef<import('../../utils/componentColors.js').ComponentColorValue | undefined>;
41
+ tooltipAutoContrast: import('vue').ComputedRef<boolean | undefined>;
42
+ tooltipContrastColor: import('vue').ComputedRef<string | undefined>;
41
43
  tooltipOffset: import('vue').ComputedRef<import('../floating/index.js').FloatingOffset | undefined>;
42
44
  tooltipOpenDelay: import('vue').ComputedRef<number>;
43
45
  tooltipArrow: import('vue').ComputedRef<boolean>;
@@ -27,6 +27,7 @@ export interface ToastProps extends StylesApiProps<ToastPart> {
27
27
  variant?: ToastVariant;
28
28
  color?: ToastColor;
29
29
  autoContrast?: boolean;
30
+ contrastColor?: string;
30
31
  radius?: ToastRadius;
31
32
  role?: ToastRole;
32
33
  duration?: number;
@@ -61,6 +62,7 @@ export interface ToastStoreOptions {
61
62
  variant?: ToastVariant;
62
63
  color?: ToastColor;
63
64
  autoContrast?: boolean;
65
+ contrastColor?: string;
64
66
  radius?: ToastRadius;
65
67
  role?: ToastRole;
66
68
  pauseOnHover?: boolean;
@@ -1,3 +1,3 @@
1
1
  import { CSSProperties } from 'vue';
2
2
  import { ToastColor, ToastVariant } from './types.js';
3
- export declare function getToastColorStyle(color: ToastColor | undefined, variant: ToastVariant | undefined, autoContrast: boolean | undefined): CSSProperties | undefined;
3
+ export declare function getToastColorStyle(color: ToastColor | undefined, variant: ToastVariant | undefined, autoContrast: boolean | undefined, contrastColor?: string): CSSProperties | undefined;
@@ -25,6 +25,7 @@ export interface TooltipProps extends FloatingPositionProps<TooltipPlacement>, S
25
25
  content?: string;
26
26
  color?: TooltipColor;
27
27
  autoContrast?: boolean;
28
+ contrastColor?: string;
28
29
  open?: boolean;
29
30
  openDelay?: number;
30
31
  disabled?: boolean;
@@ -2,7 +2,7 @@ import { CSSProperties } from 'vue';
2
2
  import { TooltipOffset, TooltipProps, TooltipTriggerProps } from './types.js';
3
3
  type TooltipBehaviorProps = Omit<TooltipProps, 'classNames' | 'styles'>;
4
4
  export declare function resolveTooltipOffsetStyle(offset: TooltipOffset | undefined): CSSProperties | undefined;
5
- export declare function resolveTooltipColorStyleWithContrast(color: TooltipProps['color'], autoContrast: TooltipProps['autoContrast']): CSSProperties | undefined;
5
+ export declare function resolveTooltipColorStyleWithContrast(color: TooltipProps['color'], autoContrast: TooltipProps['autoContrast'], contrastColor?: TooltipProps['contrastColor']): CSSProperties | undefined;
6
6
  export declare function useTooltip(props: Readonly<TooltipBehaviorProps>, emitOpenChange?: (open: boolean) => void): {
7
7
  rootRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
8
8
  contentRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
@@ -5,7 +5,9 @@ import { t as useRequiredInject } from "./useRequiredInject.js";
5
5
  import { n as useOverlayZIndex, r as useOverlayLayer } from "./useOverlayZIndex.js";
6
6
  import { n as useFloatingPosition, r as useFloatingTarget, t as isElementReference } from "./useFloatingPosition.js";
7
7
  import { n as useTeleportPositioningKey, r as useTeleportTarget, t as provideTeleportTarget } from "./useTeleportTarget.js";
8
- import { VaporTeleport, VaporTransition, child, computed, createComponent, createComponentWithFallback, createDynamicComponent, createFor, createIf, createSlot, createTemplateRefSetter, defineVaporComponent, extend, isRef, markRaw, mergeProps, nextTick, onBeforeUnmount, onMounted, onUnmounted, provide, ref, renderEffect, resolveComponent, setAttr, setDynamicProps, setInsertionState, setStaticTemplateRef, setStyle, setTemplateRefBinding, setText, shallowRef, template, toDisplayString, txt, unref, useAttrs, useId, watch } from "vue";
8
+ import { n as getNextEnabledIndex, r as useTypeahead, t as getEnabledIndexes } from "./collectionNavigation.js";
9
+ import { t as chevron_right_default } from "./chevron-right.js";
10
+ import { VaporTeleport, VaporTransition, child, computed, createComponent, createComponentWithFallback, createDynamicComponent, createFor, createIf, createSlot, createTemplateRefSetter, defineVaporComponent, extend, isRef, mergeProps, nextTick, onBeforeUnmount, onMounted, onUnmounted, provide, ref, renderEffect, resolveComponent, setAttr, setDynamicProps, setInsertionState, setStaticTemplateRef, setStyle, setTemplateRefBinding, setText, shallowRef, template, toDisplayString, txt, unref, useAttrs, useId, watch } from "vue";
9
11
  //#region src/components/dropdown-menu/dropdown-menu-primitive-core.ts
10
12
  var rootKey = Symbol("dropdown-menu-root");
11
13
  var menuKey = Symbol("dropdown-menu-content");
@@ -156,6 +158,17 @@ function createMenuContext(options) {
156
158
  const item = enabledItems[((currentIndex < 0 ? direction === 1 ? -1 : 0 : currentIndex) + direction + enabledItems.length) % enabledItems.length];
157
159
  if (item) setActive(item.id);
158
160
  }
161
+ const typeahead = useTypeahead({
162
+ items: () => sortItems(items.value),
163
+ activeIndex: () => sortItems(items.value).findIndex((item) => item.id === activeId.value),
164
+ getKey: (item) => item.id,
165
+ getTextValue: (item) => item.textValue(),
166
+ isDisabled: (item) => item.disabled(),
167
+ onMatch: (item) => setActive(item.id)
168
+ });
169
+ watch(computed(() => options.parentSub?.isOpen.value ?? options.root.isOpen.value), (open) => {
170
+ if (!open) typeahead.reset();
171
+ }, { flush: "sync" });
159
172
  function onHorizontalKeydown(event, active) {
160
173
  if (options.parentSub && event.key === getCloseDirection(context)) {
161
174
  event.preventDefault();
@@ -169,6 +182,10 @@ function createMenuContext(options) {
169
182
  active.submenu.open("first");
170
183
  }
171
184
  function onKeydown(event) {
185
+ if (typeahead.handleKey(event)) {
186
+ event.stopPropagation();
187
+ return;
188
+ }
172
189
  const active = items.value.find((item) => item.id === activeId.value);
173
190
  switch (event.key) {
174
191
  case "ArrowDown":
@@ -249,6 +266,7 @@ function usePrimitiveItem(componentName, props, emitSelect, options) {
249
266
  return id.value;
250
267
  },
251
268
  element: () => element.value,
269
+ textValue: () => props.textValue ?? element.value?.textContent?.trim() ?? "",
252
270
  disabled: () => isDisabled.value,
253
271
  activate
254
272
  };
@@ -302,6 +320,7 @@ var dropdown_menu_checkbox_item_default = /* @__PURE__ */ defineVaporComponent({
302
320
  },
303
321
  id: {},
304
322
  as: { default: "button" },
323
+ textValue: {},
305
324
  disabled: {
306
325
  type: Boolean,
307
326
  default: false
@@ -569,7 +588,7 @@ function useDropdownMenuPrimitiveContent(props, attrs, events, submenu) {
569
588
  }
570
589
  //#endregion
571
590
  //#region src/components/dropdown-menu/dropdown-menu-content.vue?vue&type=script&setup=true&vapor=true&lang.ts
572
- var t0$3 = template("<span class=rp-dropdown-menu__arrow aria-hidden=true>");
591
+ var t0$2 = template("<span class=rp-dropdown-menu__arrow aria-hidden=true>");
573
592
  //#endregion
574
593
  //#region src/components/dropdown-menu/dropdown-menu-content.vue
575
594
  var dropdown_menu_content_default = /* @__PURE__ */ defineVaporComponent({
@@ -625,7 +644,7 @@ var dropdown_menu_content_default = /* @__PURE__ */ defineVaporComponent({
625
644
  return createIf(() => unref(shouldRender), () => {
626
645
  const n6 = createDynamicComponent(() => __props.as, { $: [() => unref(rootAttrs)] }, extend(() => {
627
646
  return [createIf(() => __props.arrow, () => {
628
- const n4 = t0$3();
647
+ const n4 = t0$2();
629
648
  _setTemplateRef(n4, arrowElement, null, "arrowElement");
630
649
  renderEffect(() => {
631
650
  setAttr(n4, "data-side", unref(placementSide));
@@ -781,6 +800,7 @@ var dropdown_menu_item_default = /* @__PURE__ */ defineVaporComponent({
781
800
  id: {},
782
801
  as: { default: "button" },
783
802
  value: {},
803
+ textValue: {},
784
804
  disabled: {
785
805
  type: Boolean,
786
806
  default: false
@@ -970,6 +990,7 @@ var dropdown_menu_radio_item_default = /* @__PURE__ */ defineVaporComponent({
970
990
  value: {},
971
991
  id: {},
972
992
  as: { default: "button" },
993
+ textValue: {},
973
994
  disabled: {
974
995
  type: Boolean,
975
996
  default: false
@@ -1347,6 +1368,7 @@ var dropdown_menu_sub_trigger_default = /* @__PURE__ */ defineVaporComponent({
1347
1368
  props: {
1348
1369
  id: {},
1349
1370
  as: { default: "button" },
1371
+ textValue: {},
1350
1372
  disabled: {
1351
1373
  type: Boolean,
1352
1374
  default: false
@@ -1366,6 +1388,7 @@ var dropdown_menu_sub_trigger_default = /* @__PURE__ */ defineVaporComponent({
1366
1388
  return id.value;
1367
1389
  },
1368
1390
  element: () => sub.trigger.value,
1391
+ textValue: () => props.textValue ?? sub.trigger.value?.textContent?.trim() ?? "",
1369
1392
  disabled: () => isDisabled.value,
1370
1393
  activate: () => sub.open("first"),
1371
1394
  submenu: sub
@@ -1495,16 +1518,6 @@ var dropdown_menu_trigger_default = /* @__PURE__ */ defineVaporComponent({
1495
1518
  return n1;
1496
1519
  }
1497
1520
  });
1498
- //#endregion
1499
- //#region ~icons/lucide/chevron-right
1500
- var t0$2 = template("<svg viewBox=\"0 0 24 24\"width=1.2em height=1.2em><path fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 d=\"m9 18l6-6l-6-6\">", 3, 1);
1501
- function render(_ctx) {
1502
- return t0$2();
1503
- }
1504
- var chevron_right_default = markRaw(defineVaporComponent({
1505
- name: "lucide-chevron-right",
1506
- render
1507
- }));
1508
1521
  var DEFAULT_FOCUS_TARGET = "first";
1509
1522
  function getOpenFocusTarget(options) {
1510
1523
  if (typeof options === "string") return options;
@@ -1552,19 +1565,6 @@ function hasMeasuredRect(rect) {
1552
1565
  function isPointInRect(point, rect, padding = 0) {
1553
1566
  return point.x >= rect.left - padding && point.x <= rect.right + padding && point.y >= rect.top - padding && point.y <= rect.bottom + padding;
1554
1567
  }
1555
- function getEnabledIndexes(items) {
1556
- return items.map((item, index) => item.disabled ? -1 : index).filter((index) => index >= 0);
1557
- }
1558
- function getNextEnabledIndex(items, index, direction) {
1559
- const enabledIndexes = getEnabledIndexes(items);
1560
- if (enabledIndexes.length === 0) return void 0;
1561
- if (direction === 1) return enabledIndexes.find((candidate) => candidate > index) ?? enabledIndexes[0];
1562
- for (let i = enabledIndexes.length - 1; i >= 0; i -= 1) {
1563
- const candidate = enabledIndexes[i];
1564
- if (candidate < index) return candidate;
1565
- }
1566
- return enabledIndexes[enabledIndexes.length - 1];
1567
- }
1568
1568
  //#endregion
1569
1569
  //#region src/components/dropdown-menu/dropdown-menu-item-row.vue?vue&type=script&setup=true&vapor=true&lang.ts
1570
1570
  var t0$1 = template("<div>");
@@ -1979,7 +1979,7 @@ function useDropdownMenuHoverIntent({ openSubmenuPath, getItemElement, getSubmen
1979
1979
  }
1980
1980
  //#endregion
1981
1981
  //#region src/components/dropdown-menu/useDropdownMenuInteractions.ts
1982
- function useDropdownMenuInteractions({ props, emit, isDisabled, focusedPath, openSubmenuPath, getItemAtPath, focusItem, moveFocus, submenus, hoverIntent, disclosure, isSubmenuOpeningLeft }) {
1982
+ function useDropdownMenuInteractions({ props, emit, isDisabled, focusedPath, openSubmenuPath, getItemAtPath, focusItem, moveFocus, handleTypeahead, submenus, hoverIntent, disclosure, isSubmenuOpeningLeft }) {
1983
1983
  function activateItem(item, path, event) {
1984
1984
  if (item.disabled) return;
1985
1985
  if (hasItemSubmenu(item)) {
@@ -2062,6 +2062,7 @@ function useDropdownMenuInteractions({ props, emit, isDisabled, focusedPath, ope
2062
2062
  }
2063
2063
  function onMenuKeydown(event) {
2064
2064
  hoverIntent.resetHoverIntent();
2065
+ if (handleTypeahead(event)) return;
2065
2066
  switch (event.key) {
2066
2067
  case "ArrowDown":
2067
2068
  event.preventDefault();
@@ -2150,7 +2151,7 @@ function useDropdownMenuNavigation(items) {
2150
2151
  return getItemsAtPath(getParentPath(path))[path[path.length - 1]];
2151
2152
  }
2152
2153
  function focusItem(target, menuPath = []) {
2153
- const enabledIndexes = getEnabledIndexes(getItemsAtPath(menuPath));
2154
+ const enabledIndexes = getEnabledIndexes(getItemsAtPath(menuPath), (item) => Boolean(item.disabled));
2154
2155
  const index = target === "last" ? enabledIndexes[enabledIndexes.length - 1] : enabledIndexes[0];
2155
2156
  if (index === void 0) {
2156
2157
  if (menuPath.length === 0) focusedPath.value = [];
@@ -2162,13 +2163,19 @@ function useDropdownMenuNavigation(items) {
2162
2163
  function resetFocus() {
2163
2164
  focusedPath.value = [];
2164
2165
  }
2166
+ function setFocusedIndex(index, menuPath = []) {
2167
+ const item = getItemsAtPath(menuPath)[index];
2168
+ if (!item || item.disabled) return false;
2169
+ focusedPath.value = [...menuPath, index];
2170
+ return true;
2171
+ }
2165
2172
  function isItemFocused(indexOrPath) {
2166
2173
  return arePathsEqual(normalizePath(indexOrPath), focusedPath.value);
2167
2174
  }
2168
2175
  function moveFocus(direction) {
2169
2176
  const menuPath = getParentPath(focusedPath.value);
2170
2177
  const itemsAtPath = getItemsAtPath(menuPath);
2171
- const nextIndex = getNextEnabledIndex(itemsAtPath, focusedPath.value.length === 0 ? direction === 1 ? -1 : itemsAtPath.length : focusedPath.value[focusedPath.value.length - 1], direction);
2178
+ const nextIndex = getNextEnabledIndex(itemsAtPath, focusedPath.value.length === 0 ? direction === 1 ? -1 : itemsAtPath.length : focusedPath.value[focusedPath.value.length - 1], direction, (item) => Boolean(item.disabled));
2172
2179
  if (nextIndex === void 0) {
2173
2180
  focusedPath.value = [];
2174
2181
  return;
@@ -2183,6 +2190,7 @@ function useDropdownMenuNavigation(items) {
2183
2190
  getItemAtPath,
2184
2191
  focusItem,
2185
2192
  resetFocus,
2193
+ setFocusedIndex,
2186
2194
  isItemFocused,
2187
2195
  moveFocus
2188
2196
  };
@@ -2398,13 +2406,26 @@ function useDropdownMenu(props, emit = {}) {
2398
2406
  ]
2399
2407
  });
2400
2408
  const placementSide = computed(() => actualPlacement.value.split("-")[0]);
2401
- const { focusedPath, focusedIndex, getItemAtPath, focusItem, resetFocus, isItemFocused, moveFocus } = useDropdownMenuNavigation(visibleItems);
2409
+ const { focusedPath, focusedIndex, getItemsAtPath, getItemAtPath, focusItem, resetFocus, setFocusedIndex, isItemFocused, moveFocus } = useDropdownMenuNavigation(visibleItems);
2402
2410
  const submenus = useDropdownSubmenus({
2403
2411
  focusedPath,
2404
2412
  getItemAtPath,
2405
2413
  focusItem
2406
2414
  });
2407
2415
  const { openSubmenuPath, isSubmenuOpen } = submenus;
2416
+ const activeMenuPath = computed(() => getParentPath(focusedPath.value));
2417
+ const typeahead = useTypeahead({
2418
+ items: () => getItemsAtPath(activeMenuPath.value),
2419
+ activeIndex: () => focusedPath.value.at(-1) ?? -1,
2420
+ getKey: (item) => item.value,
2421
+ getTextValue: (item) => item.label,
2422
+ isDisabled: (item) => Boolean(item.disabled),
2423
+ scopeKey: () => activeMenuPath.value.join("/"),
2424
+ onMatch(_item, index) {
2425
+ const menuPath = activeMenuPath.value;
2426
+ if (setFocusedIndex(index, menuPath)) submenus.closeSubmenusAfter(menuPath);
2427
+ }
2428
+ });
2408
2429
  const { activeDescendantId, focusMenu, focusTrigger, getItemId, getSubmenuId, getItemElement, getSubmenuElement, isSubmenuOpeningLeft, getMenuActiveDescendant } = useDropdownMenuDom({
2409
2430
  menuId,
2410
2431
  rootRef,
@@ -2447,6 +2468,7 @@ function useDropdownMenu(props, emit = {}) {
2447
2468
  getItemAtPath,
2448
2469
  focusItem,
2449
2470
  moveFocus,
2471
+ handleTypeahead: typeahead.handleKey,
2450
2472
  submenus,
2451
2473
  hoverIntent,
2452
2474
  disclosure,
@@ -2510,6 +2532,9 @@ function useDropdownMenu(props, emit = {}) {
2510
2532
  target.removeEventListener("keydown", onTriggerKeydown);
2511
2533
  });
2512
2534
  }, { flush: "sync" });
2535
+ watch(isVisible, (visible) => {
2536
+ if (!visible) typeahead.reset();
2537
+ }, { flush: "sync" });
2513
2538
  watch([
2514
2539
  isExplicitTarget,
2515
2540
  targetElement,
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-button[data-v-cda9a84b] {
2
+ .rp-button[data-v-5d5bd5fa] {
3
3
  --_rp-button-bg: var(--rp-color-default);
4
4
  --_rp-button-bg-hover: var(--rp-color-default-hover);
5
5
  --_rp-button-bg-active: var(--rp-color-disabled);
@@ -7,6 +7,8 @@
7
7
  --_rp-button-border-hover: var(--_rp-button-border);
8
8
  --_rp-button-border-active: var(--_rp-button-border-hover);
9
9
  --_rp-button-fg: var(--rp-color-default-color);
10
+ --_rp-button-fg-hover: var(--_rp-button-fg);
11
+ --_rp-button-fg-active: var(--_rp-button-fg-hover);
10
12
  --_rp-button-height: var(--rp-size-control-md);
11
13
  --_rp-button-padding-x: 22px;
12
14
  --_rp-button-font-size: var(--rp-font-size-md);
@@ -29,7 +31,7 @@
29
31
  color: var(--_rp-button-fg);
30
32
  cursor: pointer;
31
33
  text-decoration: none;
32
- transition: background-color var(--rp-transition-fast), color var(--rp-transition-fast), border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast), transform var(--rp-transition-fast);
34
+ transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast), transform var(--rp-transition-fast);
33
35
  white-space: nowrap;
34
36
  user-select: none;
35
37
  height: var(--_rp-button-height);
@@ -37,108 +39,110 @@
37
39
  font-size: var(--_rp-button-font-size);
38
40
  border-radius: var(--_rp-button-radius);
39
41
  }
40
- .rp-button[data-v-cda9a84b]:hover:not(:disabled):not(.rp-button--disabled) {
42
+ .rp-button[data-v-5d5bd5fa]:hover:not(:disabled):not(.rp-button--disabled) {
41
43
  background-color: var(--_rp-button-bg-hover);
42
44
  border-color: var(--_rp-button-border-hover);
43
45
  box-shadow: var(--_rp-button-shadow-hover);
46
+ color: var(--_rp-button-fg-hover);
44
47
  }
45
- .rp-button[data-v-cda9a84b]:active:not(:disabled):not(.rp-button--disabled) {
48
+ .rp-button[data-v-5d5bd5fa]:active:not(:disabled):not(.rp-button--disabled) {
46
49
  background-color: var(--_rp-button-bg-active);
47
50
  border-color: var(--_rp-button-border-active);
48
51
  box-shadow: var(--_rp-button-shadow-active);
52
+ color: var(--_rp-button-fg-active);
49
53
  transform: translateY(1px);
50
54
  }
51
- .rp-button--size-xs[data-v-cda9a84b] {
55
+ .rp-button--size-xs[data-v-5d5bd5fa] {
52
56
  --_rp-button-height: var(--rp-size-control-xs);
53
57
  --_rp-button-padding-x: 14px;
54
58
  --_rp-button-font-size: var(--rp-font-size-xs);
55
59
  }
56
- .rp-button--size-sm[data-v-cda9a84b] {
60
+ .rp-button--size-sm[data-v-5d5bd5fa] {
57
61
  --_rp-button-height: var(--rp-size-control-sm);
58
62
  --_rp-button-padding-x: 18px;
59
63
  --_rp-button-font-size: var(--rp-font-size-sm);
60
64
  }
61
- .rp-button--size-md[data-v-cda9a84b] {
65
+ .rp-button--size-md[data-v-5d5bd5fa] {
62
66
  --_rp-button-height: var(--rp-size-control-md);
63
67
  --_rp-button-padding-x: 22px;
64
68
  --_rp-button-font-size: var(--rp-font-size-md);
65
69
  }
66
- .rp-button--size-lg[data-v-cda9a84b] {
70
+ .rp-button--size-lg[data-v-5d5bd5fa] {
67
71
  --_rp-button-height: var(--rp-size-control-lg);
68
72
  --_rp-button-padding-x: 26px;
69
73
  --_rp-button-font-size: var(--rp-font-size-lg);
70
74
  }
71
- .rp-button--size-xl[data-v-cda9a84b] {
75
+ .rp-button--size-xl[data-v-5d5bd5fa] {
72
76
  --_rp-button-height: var(--rp-size-control-xl);
73
77
  --_rp-button-padding-x: 32px;
74
78
  --_rp-button-font-size: var(--rp-font-size-xl);
75
79
  }
76
- .rp-button--radius-xs[data-v-cda9a84b] {
80
+ .rp-button--radius-xs[data-v-5d5bd5fa] {
77
81
  --_rp-button-radius: var(--rp-radius-xs);
78
82
  }
79
- .rp-button--radius-sm[data-v-cda9a84b] {
83
+ .rp-button--radius-sm[data-v-5d5bd5fa] {
80
84
  --_rp-button-radius: var(--rp-radius-sm);
81
85
  }
82
- .rp-button--radius-md[data-v-cda9a84b] {
86
+ .rp-button--radius-md[data-v-5d5bd5fa] {
83
87
  --_rp-button-radius: var(--rp-radius-md);
84
88
  }
85
- .rp-button--radius-lg[data-v-cda9a84b] {
89
+ .rp-button--radius-lg[data-v-5d5bd5fa] {
86
90
  --_rp-button-radius: var(--rp-radius-lg);
87
91
  }
88
- .rp-button--radius-xl[data-v-cda9a84b] {
92
+ .rp-button--radius-xl[data-v-5d5bd5fa] {
89
93
  --_rp-button-radius: var(--rp-radius-xl);
90
94
  }
91
- .rp-button--subtle[data-v-cda9a84b] {
95
+ .rp-button--subtle[data-v-5d5bd5fa] {
92
96
  --_rp-button-shadow: none;
93
97
  --_rp-button-shadow-hover: none;
94
98
  --_rp-button-shadow-active: none;
95
99
  }
96
- .rp-button--surface[data-v-cda9a84b] {
100
+ .rp-button--surface[data-v-5d5bd5fa] {
97
101
  --_rp-button-shadow: none;
98
102
  --_rp-button-shadow-hover: none;
99
103
  --_rp-button-shadow-active: none;
100
104
  }
101
- .rp-button--outline[data-v-cda9a84b] {
105
+ .rp-button--outline[data-v-5d5bd5fa] {
102
106
  --_rp-button-shadow: none;
103
107
  --_rp-button-shadow-hover: none;
104
108
  --_rp-button-shadow-active: none;
105
109
  }
106
- .rp-button--ghost[data-v-cda9a84b] {
110
+ .rp-button--ghost[data-v-5d5bd5fa] {
107
111
  --_rp-button-shadow: none;
108
112
  --_rp-button-shadow-hover: none;
109
113
  --_rp-button-shadow-active: none;
110
114
  }
111
- .rp-button--plain[data-v-cda9a84b] {
115
+ .rp-button--plain[data-v-5d5bd5fa] {
112
116
  --_rp-button-shadow: none;
113
117
  --_rp-button-shadow-hover: none;
114
118
  --_rp-button-shadow-active: none;
115
119
  }
116
- .rp-button[data-v-cda9a84b]:disabled, .rp-button--disabled[data-v-cda9a84b] {
120
+ .rp-button[data-v-5d5bd5fa]:disabled, .rp-button--disabled[data-v-5d5bd5fa] {
117
121
  opacity: var(--rp-opacity-disabled);
118
122
  cursor: not-allowed;
119
123
  box-shadow: none;
120
124
  transform: none;
121
125
  }
122
- .rp-button[data-v-cda9a84b]:focus-visible {
126
+ .rp-button[data-v-5d5bd5fa]:focus-visible {
123
127
  outline: none;
124
128
  border-color: var(--rp-color-control-border-focus);
125
129
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
126
130
  }
127
- .rp-button--loading .rp-button__content[data-v-cda9a84b] {
131
+ .rp-button--loading .rp-button__content[data-v-5d5bd5fa] {
128
132
  opacity: 0;
129
133
  }
130
- .rp-button__content[data-v-cda9a84b] {
134
+ .rp-button__content[data-v-5d5bd5fa] {
131
135
  display: inline-flex;
132
136
  align-items: center;
133
137
  justify-content: center;
134
138
  gap: var(--rp-spacing-2);
135
139
  }
136
- .rp-button__left[data-v-cda9a84b], .rp-button__right[data-v-cda9a84b] {
140
+ .rp-button__left[data-v-5d5bd5fa], .rp-button__right[data-v-5d5bd5fa] {
137
141
  display: inline-flex;
138
142
  align-items: center;
139
143
  flex-shrink: 0;
140
144
  }
141
- .rp-button__loading[data-v-cda9a84b] {
145
+ .rp-button__loading[data-v-5d5bd5fa] {
142
146
  display: inline-flex;
143
147
  align-items: center;
144
148
  justify-content: center;
@@ -147,49 +151,49 @@
147
151
  left: 50%;
148
152
  translate: -50% -50%;
149
153
  }
150
- .rp-button__spinner[data-v-cda9a84b] {
154
+ .rp-button__spinner[data-v-5d5bd5fa] {
151
155
  display: block;
152
156
  width: 1em;
153
157
  height: 1em;
154
158
  flex-shrink: 0;
155
159
  transform-origin: center;
156
- animation: rp-spinner-spin-cda9a84b 700ms linear infinite;
160
+ animation: rp-spinner-spin-5d5bd5fa 700ms linear infinite;
157
161
  }
158
- @keyframes rp-spinner-spin-cda9a84b {
162
+ @keyframes rp-spinner-spin-5d5bd5fa {
159
163
  to {
160
164
  transform: rotate(360deg);
161
165
  }
162
166
  }
163
167
  }@layer ropav.components {
164
- .rp-icon-button[data-v-cda9a84b] {
168
+ .rp-icon-button[data-v-5d5bd5fa] {
165
169
  width: var(--_rp-button-height);
166
170
  padding: 0;
167
171
  }
168
- .rp-icon-button__icon[data-v-cda9a84b] {
172
+ .rp-icon-button__icon[data-v-5d5bd5fa] {
169
173
  width: 1em;
170
174
  height: 1em;
171
175
  flex-shrink: 0;
172
176
  }
173
- .rp-icon-button__icon[data-v-cda9a84b] {
177
+ .rp-icon-button__icon[data-v-5d5bd5fa] {
174
178
  display: inline-flex;
175
179
  align-items: center;
176
180
  justify-content: center;
177
181
  line-height: 0;
178
182
  }
179
- .rp-icon-button__icon[data-v-cda9a84b] > svg {
183
+ .rp-icon-button__icon[data-v-5d5bd5fa] > svg {
180
184
  display: block;
181
185
  width: 1em;
182
186
  height: 1em;
183
187
  }
184
- .rp-icon-button__spinner[data-v-cda9a84b] {
188
+ .rp-icon-button__spinner[data-v-5d5bd5fa] {
185
189
  display: block;
186
190
  width: 1em;
187
191
  height: 1em;
188
192
  flex-shrink: 0;
189
193
  transform-origin: center;
190
- animation: rp-spinner-spin-cda9a84b 700ms linear infinite;
194
+ animation: rp-spinner-spin-5d5bd5fa 700ms linear infinite;
191
195
  }
192
- @keyframes rp-spinner-spin-cda9a84b {
196
+ @keyframes rp-spinner-spin-5d5bd5fa {
193
197
  to {
194
198
  transform: rotate(360deg);
195
199
  }
@@ -5,8 +5,8 @@ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-hel
5
5
  import { n as loader_circle_default, t as getButtonColorStyle } from "./useButtonColor.js";
6
6
  import { computed, createComponent, createIf, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, template, unref } from "vue";
7
7
  //#region src/components/icon-button/icon-button.vue?vue&type=script&setup=true&vapor=true&lang.ts
8
- var t0 = template("<span data-v-cda9a84b>");
9
- var t1 = template("<button data-v-cda9a84b>", 1);
8
+ var t0 = template("<span data-v-5d5bd5fa>");
9
+ var t1 = template("<button data-v-5d5bd5fa>", 1);
10
10
  //#endregion
11
11
  //#region src/components/icon-button/icon-button.vue
12
12
  var icon_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -17,7 +17,11 @@ var icon_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
17
17
  ariaLabel: {},
18
18
  variant: {},
19
19
  color: {},
20
- autoContrast: { type: Boolean },
20
+ autoContrast: {
21
+ type: Boolean,
22
+ default: true
23
+ },
24
+ contrastColor: {},
21
25
  size: {},
22
26
  radius: {},
23
27
  type: { default: "button" },
@@ -39,7 +43,7 @@ var icon_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
39
43
  [`size-${props.size}`]: Boolean(props.size),
40
44
  [`radius-${props.radius}`]: Boolean(props.radius)
41
45
  }), "rp-icon-button"]);
42
- const rootStyle = computed(() => getButtonColorStyle(props.color, props.variant, props.autoContrast));
46
+ const rootStyle = computed(() => getButtonColorStyle(props.color, props.variant, props.autoContrast, props.contrastColor));
43
47
  const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
44
48
  const rootAttrs = computed(() => getRootAttrs({
45
49
  class: rootClass.value,
@@ -65,6 +69,6 @@ var icon_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
65
69
  }, 261);
66
70
  return n6;
67
71
  }
68
- }), [["__scopeId", "data-v-cda9a84b"]]);
72
+ }), [["__scopeId", "data-v-5d5bd5fa"]]);
69
73
  //#endregion
70
74
  export { icon_button_default as t };
package/dist/index.d.ts CHANGED
@@ -23,6 +23,7 @@ export * from './components/input/index.js';
23
23
  export * from './components/modal/index.js';
24
24
  export * from './components/number-input/index.js';
25
25
  export * from './components/overlay/index.js';
26
+ export * from './components/pagination/index.js';
26
27
  export * from './components/popover/index.js';
27
28
  export * from './components/progress/index.js';
28
29
  export * from './components/radio/index.js';
package/dist/index.js CHANGED
@@ -34,6 +34,7 @@ import { t as scroll_area_default } from "./scroll-area.js";
34
34
  import { n as modal_default, t as modalParts } from "./modal.js";
35
35
  import { n as number_input_default, t as numberInputParts } from "./number-input.js";
36
36
  import { n as overlay_layer_provider_default, t as overlayParts } from "./overlay2.js";
37
+ 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";
37
38
  import { n as popoverPlacements, t as popoverParts } from "./popover2.js";
38
39
  import { a as progress_default, i as progressSizes, n as progressParts, r as progressRadiuses, t as progressColors } from "./progress.js";
39
40
  import { i as radioParts, n as radio_default, r as radioGroupParts, t as radio_group_default } from "./radio.js";
@@ -47,4 +48,4 @@ import { t as teleport_provider_default } from "./teleport-provider.js";
47
48
  import { n as textarea_default, t as textareaParts } from "./textarea.js";
48
49
  import { a as toastColors, c as toastRadiuses, d as toastViewportParts, f as createToastStore, i as useToast, l as toastTypes, n as toast_viewport_default, o as toastParts, p as toast_default, r as toast_provider_default, s as toastPositions, t as useToastState, u as toastVariants } from "./toast.js";
49
50
  import { t as tooltipParts } from "./tooltip2.js";
50
- export { accordion_default as Accordion, accordion_item_default as AccordionItem, alert_default as Alert, aspect_ratio_default as AspectRatio, avatar_default as Avatar, badge_default as Badge, button_default as Button, button_group_default as ButtonGroup, button_link_default as ButtonLink, card_default as Card, checkbox_default as Checkbox, collapse_default as Collapse, color_input_default as ColorInput, color_picker_default as ColorPicker, color_swatch_default as ColorSwatch, dialog_close_default as DialogClose, dialog_content_default as DialogContent, dialog_description_default as DialogDescription, dialog_overlay_default as DialogOverlay, dialog_portal_default as DialogPortal, dialog_root_default as DialogRoot, dialog_title_default as DialogTitle, dialog_trigger_default as DialogTrigger, dropdown_menu_default as DropdownMenu, dropdown_menu_checkbox_item_default as DropdownMenuCheckboxItem, dropdown_menu_content_default as DropdownMenuContent, dropdown_menu_context_trigger_default as DropdownMenuContextTrigger, DropdownMenuItem, dropdown_menu_item_indicator_default as DropdownMenuItemIndicator, dropdown_menu_label_default as DropdownMenuLabel, dropdown_menu_portal_default as DropdownMenuPortal, dropdown_menu_radio_group_default as DropdownMenuRadioGroup, dropdown_menu_radio_item_default as DropdownMenuRadioItem, dropdown_menu_root_default as DropdownMenuRoot, dropdown_menu_separator_default as DropdownMenuSeparator, dropdown_menu_sub_default as DropdownMenuSub, dropdown_menu_sub_content_default as DropdownMenuSubContent, dropdown_menu_sub_trigger_default as DropdownMenuSubTrigger, dropdown_menu_trigger_default as DropdownMenuTrigger, field_default as Field, focus_trap_default as FocusTrap, icon_button_default as IconButton, input_default as Input, modal_default as Modal, number_input_default as NumberInput, overlay_default as Overlay, overlay_layer_provider_default as OverlayLayerProvider, popover_default as Popover, progress_default as Progress, radio_default as Radio, radio_group_default as RadioGroup, range_slider_default as RangeSlider, scroll_area_default as ScrollArea, select_default as Select, slider_default as Slider, switch_default as Switch, tabs_default as Tabs, tabs_content_default as TabsContent, tabs_list_default as TabsList, tabs_trigger_default as TabsTrigger, teleport_provider_default as TeleportProvider, textarea_default as Textarea, toast_default as Toast, toast_provider_default as ToastProvider, toast_viewport_default as ToastViewport, tooltip_default as Tooltip, accordionItemParts, accordionParts, alertColors, alertParts, alertRadiuses, alertVariants, aspectRatioParts, avatarColors, avatarParts, avatarRadiuses, avatarSizes, avatarVariants, badgeColors, badgeParts, badgeRadiuses, badgeSizes, badgeVariants, buttonGroupParts, buttonLinkParts, buttonParts, cardParts, checkboxParts, collapseParts, colorInputParts, colorPickerFormats, colorPickerParts, colorPickerSizes, colorSwatchParts, createToastStore, dropdownMenuParts, fieldParts, focusTrapParts, iconButtonParts, inputParts, modalParts, numberInputParts, overlayParts, popoverParts, popoverPlacements, progressColors, progressParts, progressRadiuses, progressSizes, radioGroupParts, radioParts, rangeSliderParts, scrollAreaParts, scrollAreaScrollbars, scrollAreaTypes, selectParts, sliderColors, sliderOrientations, sliderParts, sliderSizes, switchParts, tabsContentParts, tabsListParts, tabsParts, tabsTriggerParts, textareaParts, toastColors, toastParts, toastPositions, toastRadiuses, toastTypes, toastVariants, toastViewportParts, tooltipParts, useAccordion, useAccordionItem, useCollapse, useDropdownMenu, useFloatingPosition, useFocusTrap, useHoverDisclosure, useOverlayZIndex, useTabs, useTabsContent, useTabsList, useTabsTrigger, useTeleportTarget, useToast, useToastState };
51
+ export { accordion_default as Accordion, accordion_item_default as AccordionItem, alert_default as Alert, aspect_ratio_default as AspectRatio, avatar_default as Avatar, badge_default as Badge, button_default as Button, button_group_default as ButtonGroup, button_link_default as ButtonLink, card_default as Card, checkbox_default as Checkbox, collapse_default as Collapse, color_input_default as ColorInput, color_picker_default as ColorPicker, color_swatch_default as ColorSwatch, dialog_close_default as DialogClose, dialog_content_default as DialogContent, dialog_description_default as DialogDescription, dialog_overlay_default as DialogOverlay, dialog_portal_default as DialogPortal, dialog_root_default as DialogRoot, dialog_title_default as DialogTitle, dialog_trigger_default as DialogTrigger, dropdown_menu_default as DropdownMenu, dropdown_menu_checkbox_item_default as DropdownMenuCheckboxItem, dropdown_menu_content_default as DropdownMenuContent, dropdown_menu_context_trigger_default as DropdownMenuContextTrigger, DropdownMenuItem, dropdown_menu_item_indicator_default as DropdownMenuItemIndicator, dropdown_menu_label_default as DropdownMenuLabel, dropdown_menu_portal_default as DropdownMenuPortal, dropdown_menu_radio_group_default as DropdownMenuRadioGroup, dropdown_menu_radio_item_default as DropdownMenuRadioItem, dropdown_menu_root_default as DropdownMenuRoot, dropdown_menu_separator_default as DropdownMenuSeparator, dropdown_menu_sub_default as DropdownMenuSub, dropdown_menu_sub_content_default as DropdownMenuSubContent, dropdown_menu_sub_trigger_default as DropdownMenuSubTrigger, dropdown_menu_trigger_default as DropdownMenuTrigger, field_default as Field, focus_trap_default as FocusTrap, icon_button_default as IconButton, input_default as Input, modal_default as Modal, number_input_default as NumberInput, overlay_default as Overlay, overlay_layer_provider_default as OverlayLayerProvider, pagination_default as Pagination, popover_default as Popover, progress_default as Progress, radio_default as Radio, radio_group_default as RadioGroup, range_slider_default as RangeSlider, scroll_area_default as ScrollArea, select_default as Select, slider_default as Slider, switch_default as Switch, tabs_default as Tabs, tabs_content_default as TabsContent, tabs_list_default as TabsList, tabs_trigger_default as TabsTrigger, teleport_provider_default as TeleportProvider, textarea_default as Textarea, toast_default as Toast, toast_provider_default as ToastProvider, toast_viewport_default as ToastViewport, tooltip_default as Tooltip, accordionItemParts, accordionParts, alertColors, alertParts, alertRadiuses, alertVariants, aspectRatioParts, avatarColors, avatarParts, avatarRadiuses, avatarSizes, avatarVariants, badgeColors, badgeParts, badgeRadiuses, badgeSizes, badgeVariants, buttonGroupParts, buttonLinkParts, buttonParts, cardParts, checkboxParts, collapseParts, colorInputParts, colorPickerFormats, colorPickerParts, colorPickerSizes, colorSwatchParts, createToastStore, dropdownMenuParts, fieldParts, focusTrapParts, getPaginationItems, iconButtonParts, inputParts, modalParts, normalizePaginationPage, normalizePaginationTotal, numberInputParts, overlayParts, paginationColors, paginationParts, paginationRadiuses, paginationSizes, popoverParts, popoverPlacements, progressColors, progressParts, progressRadiuses, progressSizes, radioGroupParts, radioParts, rangeSliderParts, scrollAreaParts, scrollAreaScrollbars, scrollAreaTypes, selectParts, sliderColors, sliderOrientations, sliderParts, sliderSizes, switchParts, tabsContentParts, tabsListParts, tabsParts, tabsTriggerParts, textareaParts, toastColors, toastParts, toastPositions, toastRadiuses, toastTypes, toastVariants, toastViewportParts, tooltipParts, useAccordion, useAccordionItem, useCollapse, useDropdownMenu, useFloatingPosition, useFocusTrap, useHoverDisclosure, useOverlayZIndex, usePagination, useTabs, useTabsContent, useTabsList, useTabsTrigger, useTeleportTarget, useToast, useToastState };
package/dist/input.js CHANGED
@@ -2,7 +2,8 @@ import './input.css';
2
2
  import { t as bem } from "./bem.js";
3
3
  import { n as useStylesApi, t as presence } from "./styles-api.js";
4
4
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
- import { a as useTextFormControl, o as useControllableValue, t as claimNestedFormControlOwner } from "./useFormControl.js";
5
+ import { t as useControllableValue } from "./useControllableValue.js";
6
+ import { a as useTextFormControl, t as claimNestedFormControlOwner } from "./useFormControl.js";
6
7
  import { t as useControlState } from "./useControlState.js";
7
8
  import { child, computed, createIf, createSlot, defineVaporComponent, ref, renderEffect, setDynamicProps, setInsertionState, setStaticTemplateRef, template, unref } from "vue";
8
9
  //#region src/components/input/useInput.ts
@@ -3,7 +3,8 @@ import { t as bem } from "./bem.js";
3
3
  import { n as useStylesApi, t as presence } from "./styles-api.js";
4
4
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
5
  import { t as minus_default } from "./minus.js";
6
- import { i as useFormControl, n as provideNestedFormControlOwner, o as useControllableValue } from "./useFormControl.js";
6
+ import { t as useControllableValue } from "./useControllableValue.js";
7
+ import { i as useFormControl, n as provideNestedFormControlOwner } from "./useFormControl.js";
7
8
  import { t as useControlState } from "./useControlState.js";
8
9
  import { t as input_default } from "./input.js";
9
10
  import { child, computed, createComponent, createFor, createIf, createSlot, defineVaporComponent, delegateEvents, markRaw, on, ref, renderEffect, setDynamicProps, setInsertionState, setStaticTemplateRef, template, unref, withModifiers, withVaporModifiers } from "vue";