ropav 0.0.6 → 0.0.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 (127) hide show
  1. package/dist/_plugin-vue_export-helper.js +1 -11
  2. package/dist/accordion.css +112 -0
  3. package/dist/accordion.js +360 -0
  4. package/dist/accordion.js.map +1 -0
  5. package/dist/badge.css +169 -0
  6. package/dist/badge.js +103 -0
  7. package/dist/badge.js.map +1 -0
  8. package/dist/bem.js +11 -0
  9. package/dist/bem.js.map +1 -0
  10. package/dist/button-group.css +8 -8
  11. package/dist/button-group.js +2 -1
  12. package/dist/button-group.js.map +1 -1
  13. package/dist/button.js +3 -2
  14. package/dist/button.js.map +1 -1
  15. package/dist/card.js +2 -1
  16. package/dist/card.js.map +1 -1
  17. package/dist/checkbox.js +2 -1
  18. package/dist/checkbox.js.map +1 -1
  19. package/dist/collapse.css +32 -0
  20. package/dist/collapse.js +68 -0
  21. package/dist/collapse.js.map +1 -0
  22. package/dist/components/accordion/accordion-item.d.ts +40 -0
  23. package/dist/components/accordion/accordion.d.ts +23 -0
  24. package/dist/components/accordion/index.d.ts +4 -0
  25. package/dist/components/accordion/index.js +2 -0
  26. package/dist/components/accordion/types.d.ts +100 -0
  27. package/dist/components/accordion/useAccordion.d.ts +3 -0
  28. package/dist/components/badge/badge.d.ts +25 -0
  29. package/dist/components/badge/index.d.ts +3 -0
  30. package/dist/components/badge/index.js +2 -0
  31. package/dist/components/badge/types.d.ts +16 -0
  32. package/dist/components/badge/useBadgeColor.d.ts +8 -0
  33. package/dist/components/collapse/collapse.d.ts +36 -0
  34. package/dist/components/collapse/index.d.ts +3 -0
  35. package/dist/components/collapse/index.js +3 -0
  36. package/dist/components/collapse/types.d.ts +76 -0
  37. package/dist/components/collapse/useCollapse.d.ts +2 -0
  38. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +16 -0
  39. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +23 -0
  40. package/dist/components/dropdown-menu/dropdown-menu.d.ts +26 -0
  41. package/dist/components/dropdown-menu/index.d.ts +3 -0
  42. package/dist/components/dropdown-menu/index.js +2 -0
  43. package/dist/components/dropdown-menu/types.d.ts +104 -0
  44. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +32 -0
  45. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +30 -0
  46. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +28 -0
  47. package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +24 -0
  48. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +51 -0
  49. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +16 -0
  50. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +25 -0
  51. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +18 -0
  52. package/dist/components/field/field.d.ts +2 -2
  53. package/dist/components/field/useField.d.ts +16 -0
  54. package/dist/components/input/useInput.d.ts +8 -0
  55. package/dist/components/modal/index.d.ts +2 -0
  56. package/dist/components/modal/index.js +2 -0
  57. package/dist/components/modal/modal.d.ts +42 -0
  58. package/dist/components/modal/types.d.ts +32 -0
  59. package/dist/components/modal/useModal.d.ts +29 -0
  60. package/dist/components/overlay/index.d.ts +2 -0
  61. package/dist/components/overlay/index.js +2 -0
  62. package/dist/components/overlay/overlay.d.ts +19 -0
  63. package/dist/components/overlay/types.d.ts +12 -0
  64. package/dist/components/overlay/useOverlay.d.ts +7 -0
  65. package/dist/components/popover/index.d.ts +2 -0
  66. package/dist/components/popover/index.js +2 -0
  67. package/dist/components/popover/popover.d.ts +43 -0
  68. package/dist/components/popover/types.d.ts +40 -0
  69. package/dist/components/popover/usePopover.d.ts +20 -0
  70. package/dist/components/tabs/index.d.ts +6 -0
  71. package/dist/components/tabs/index.js +2 -0
  72. package/dist/components/tabs/tabs-content.d.ts +24 -0
  73. package/dist/components/tabs/tabs-list.d.ts +26 -0
  74. package/dist/components/tabs/tabs-trigger.d.ts +29 -0
  75. package/dist/components/tabs/tabs.d.ts +31 -0
  76. package/dist/components/tabs/types.d.ts +160 -0
  77. package/dist/components/tabs/useTabs.d.ts +5 -0
  78. package/dist/dropdown-menu.css +159 -0
  79. package/dist/dropdown-menu.js +903 -0
  80. package/dist/dropdown-menu.js.map +1 -0
  81. package/dist/field.css +8 -8
  82. package/dist/field.js +68 -50
  83. package/dist/field.js.map +1 -1
  84. package/dist/icon-button.css +1 -1
  85. package/dist/icon-button.js +3 -2
  86. package/dist/icon-button.js.map +1 -1
  87. package/dist/index.d.ts +8 -0
  88. package/dist/index.js +12 -1
  89. package/dist/input.css +25 -25
  90. package/dist/input.js +57 -38
  91. package/dist/input.js.map +1 -1
  92. package/dist/modal.css +134 -0
  93. package/dist/modal.js +433 -0
  94. package/dist/modal.js.map +1 -0
  95. package/dist/overlay.css +28 -0
  96. package/dist/overlay.js +84 -0
  97. package/dist/overlay.js.map +1 -0
  98. package/dist/popover.css +75 -0
  99. package/dist/popover.js +367 -0
  100. package/dist/popover.js.map +1 -0
  101. package/dist/progress.js +2 -1
  102. package/dist/progress.js.map +1 -1
  103. package/dist/radio.js +4 -9
  104. package/dist/radio.js.map +1 -1
  105. package/dist/select.js +8 -37
  106. package/dist/select.js.map +1 -1
  107. package/dist/slider.js +2 -1
  108. package/dist/slider.js.map +1 -1
  109. package/dist/switch.js +2 -1
  110. package/dist/switch.js.map +1 -1
  111. package/dist/tabs.css +279 -0
  112. package/dist/tabs.js +515 -0
  113. package/dist/tabs.js.map +1 -0
  114. package/dist/textarea.js +2 -1
  115. package/dist/textarea.js.map +1 -1
  116. package/dist/tooltip.js +2 -1
  117. package/dist/tooltip.js.map +1 -1
  118. package/dist/useClickOutside.js +26 -0
  119. package/dist/useClickOutside.js.map +1 -0
  120. package/dist/useCollapse.js +94 -0
  121. package/dist/useCollapse.js.map +1 -0
  122. package/dist/useRequiredInject.js +11 -0
  123. package/dist/useRequiredInject.js.map +1 -0
  124. package/dist/x.js +14 -0
  125. package/dist/x.js.map +1 -0
  126. package/package.json +35 -3
  127. package/dist/_plugin-vue_export-helper.js.map +0 -1
@@ -0,0 +1,40 @@
1
+ import { AccordionItemProps } from './types';
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<AccordionItemProps> & (typeof globalThis extends {
4
+ __VLS_PROPS_FALLBACK: infer P;
5
+ } ? P : {});
6
+ expose: (exposed: {}) => void;
7
+ attrs: any;
8
+ slots: {
9
+ trigger?: (props: {
10
+ triggerProps: import('./types').AccordionTriggerProps;
11
+ value: import('./types').AccordionItemValue;
12
+ isOpen: boolean;
13
+ disabled: boolean;
14
+ open: () => void;
15
+ close: () => void;
16
+ toggle: () => void;
17
+ }) => any;
18
+ } & {
19
+ title?: (props: {}) => any;
20
+ } & {
21
+ default?: (props: {
22
+ value: import('./types').AccordionItemValue;
23
+ isOpen: boolean;
24
+ disabled: boolean;
25
+ open: () => void;
26
+ close: () => void;
27
+ toggle: () => void;
28
+ }) => any;
29
+ };
30
+ emit: {};
31
+ }>) => import('vue').VNode & {
32
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
33
+ };
34
+ declare const _default: typeof __VLS_export;
35
+ export default _default;
36
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
37
+ [K in keyof T]: T[K];
38
+ } : {
39
+ [K in keyof T as K]: T[K];
40
+ }) & {};
@@ -0,0 +1,23 @@
1
+ import { AccordionModelValue, AccordionProps } from './types';
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<AccordionProps & {
4
+ "onUpdate:modelValue"?: ((value: AccordionModelValue) => any) | undefined;
5
+ }> & (typeof globalThis extends {
6
+ __VLS_PROPS_FALLBACK: infer P;
7
+ } ? P : {});
8
+ expose: (exposed: {}) => void;
9
+ attrs: any;
10
+ slots: {
11
+ default?: (props: {}) => any;
12
+ };
13
+ emit: (evt: "update:modelValue", value: AccordionModelValue) => void;
14
+ }>) => import('vue').VNode & {
15
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
16
+ };
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
19
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
20
+ [K in keyof T]: T[K];
21
+ } : {
22
+ [K in keyof T as K]: T[K];
23
+ }) & {};
@@ -0,0 +1,4 @@
1
+ export { default as Accordion } from './accordion';
2
+ export { default as AccordionItem } from './accordion-item';
3
+ export { useAccordion, useAccordionItem } from './useAccordion';
4
+ export type { AccordionContentProps, AccordionContext, AccordionItemProps, AccordionItemRootProps, AccordionItemSlotProps, AccordionItemTriggerSlotProps, AccordionItemValue, AccordionModelValue, AccordionOrientation, AccordionProps, AccordionRootProps, AccordionState, AccordionTriggerProps, UseAccordionItemReturn, UseAccordionReturn, } from './types';
@@ -0,0 +1,2 @@
1
+ import { i as useAccordionItem, n as accordion_default, r as useAccordion, t as accordion_item_default } from "../../accordion.js";
2
+ export { accordion_default as Accordion, accordion_item_default as AccordionItem, useAccordion, useAccordionItem };
@@ -0,0 +1,100 @@
1
+ import { ComputedRef, InjectionKey } from 'vue';
2
+ import { CollapseContentProps, CollapseContentRole, CollapseTriggerProps } from '../collapse/types';
3
+ export type AccordionItemValue = string | number;
4
+ export type AccordionModelValue = AccordionItemValue | AccordionItemValue[] | null;
5
+ export type AccordionOrientation = 'vertical' | 'horizontal';
6
+ export type AccordionState = 'open' | 'closed';
7
+ export interface AccordionProps {
8
+ id?: string;
9
+ modelValue?: AccordionModelValue;
10
+ defaultValue?: AccordionModelValue;
11
+ multiple?: boolean;
12
+ collapsible?: boolean;
13
+ disabled?: boolean;
14
+ unmountOnExit?: boolean;
15
+ orientation?: AccordionOrientation;
16
+ ariaLabel?: string;
17
+ describedby?: string;
18
+ labelledby?: string;
19
+ }
20
+ export interface AccordionItemProps {
21
+ id?: string;
22
+ value: AccordionItemValue;
23
+ title?: string;
24
+ disabled?: boolean;
25
+ unmountOnExit?: boolean;
26
+ role?: CollapseContentRole;
27
+ ariaLabel?: string;
28
+ ariaDescribedby?: string;
29
+ ariaLabelledby?: string;
30
+ }
31
+ export interface AccordionRootProps {
32
+ id?: string;
33
+ class: string[];
34
+ 'data-disabled'?: boolean;
35
+ 'data-orientation': AccordionOrientation;
36
+ 'aria-label'?: string;
37
+ 'aria-labelledby'?: string;
38
+ 'aria-describedby'?: string;
39
+ onKeydown: (event: KeyboardEvent) => void;
40
+ }
41
+ export interface AccordionItemRootProps {
42
+ id: string;
43
+ class: string[];
44
+ 'data-state': AccordionState;
45
+ 'data-disabled'?: boolean;
46
+ }
47
+ export interface AccordionTriggerProps extends CollapseTriggerProps {
48
+ id: string;
49
+ class: string;
50
+ 'aria-disabled'?: boolean;
51
+ }
52
+ export interface AccordionContentProps extends CollapseContentProps {
53
+ class: string;
54
+ }
55
+ export interface AccordionItemSlotProps {
56
+ value: AccordionItemValue;
57
+ isOpen: boolean;
58
+ disabled: boolean;
59
+ open: () => void;
60
+ close: () => void;
61
+ toggle: () => void;
62
+ }
63
+ export interface AccordionItemTriggerSlotProps extends AccordionItemSlotProps {
64
+ triggerProps: AccordionTriggerProps;
65
+ }
66
+ export interface AccordionContext {
67
+ multiple: boolean;
68
+ collapsible: boolean;
69
+ disabled: boolean;
70
+ unmountOnExit: boolean;
71
+ orientation: AccordionOrientation;
72
+ isItemOpen: (value: AccordionItemValue) => boolean;
73
+ setItemOpen: (value: AccordionItemValue, open: boolean) => void;
74
+ }
75
+ export interface UseAccordionReturn {
76
+ rootClass: ComputedRef<string[]>;
77
+ rootProps: ComputedRef<AccordionRootProps>;
78
+ openValues: ComputedRef<AccordionItemValue[]>;
79
+ setItemOpen: (value: AccordionItemValue, open: boolean) => void;
80
+ }
81
+ export interface UseAccordionItemReturn {
82
+ group: AccordionContext;
83
+ id: ComputedRef<string>;
84
+ triggerId: ComputedRef<string>;
85
+ contentId: ComputedRef<string>;
86
+ state: ComputedRef<AccordionState>;
87
+ isOpen: ComputedRef<boolean>;
88
+ isDisabled: ComputedRef<boolean>;
89
+ shouldRenderContent: ComputedRef<boolean>;
90
+ rootClass: ComputedRef<string[]>;
91
+ rootProps: ComputedRef<AccordionItemRootProps>;
92
+ triggerProps: ComputedRef<AccordionTriggerProps>;
93
+ contentProps: ComputedRef<AccordionContentProps>;
94
+ triggerSlotProps: ComputedRef<AccordionItemTriggerSlotProps>;
95
+ contentSlotProps: ComputedRef<AccordionItemSlotProps>;
96
+ open: () => void;
97
+ close: () => void;
98
+ toggle: () => void;
99
+ }
100
+ export declare const accordionKey: InjectionKey<AccordionContext>;
@@ -0,0 +1,3 @@
1
+ import { AccordionItemProps, AccordionModelValue, AccordionProps, UseAccordionItemReturn, UseAccordionReturn } from './types';
2
+ export declare function useAccordion(props: Readonly<AccordionProps>, emitUpdate: (value: AccordionModelValue) => void): UseAccordionReturn;
3
+ export declare function useAccordionItem(props: Readonly<AccordionItemProps>): UseAccordionItemReturn;
@@ -0,0 +1,25 @@
1
+ import { BadgeProps } from './types';
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<BadgeProps> & (typeof globalThis extends {
4
+ __VLS_PROPS_FALLBACK: infer P;
5
+ } ? P : {});
6
+ expose: (exposed: {}) => void;
7
+ attrs: any;
8
+ slots: {
9
+ left?: (props: {}) => any;
10
+ } & {
11
+ default?: (props: {}) => any;
12
+ } & {
13
+ right?: (props: {}) => any;
14
+ };
15
+ emit: {};
16
+ }>) => import('vue').VNode & {
17
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
18
+ };
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
21
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
22
+ [K in keyof T]: T[K];
23
+ } : {
24
+ [K in keyof T as K]: T[K];
25
+ }) & {};
@@ -0,0 +1,3 @@
1
+ export { default as Badge } from './badge';
2
+ export { badgeColors, badgeRadiuses, badgeSizes, badgeVariants } from './types';
3
+ export type { BadgeColor, BadgeProps, BadgeRadius, BadgeSize, BadgeVariant } from './types';
@@ -0,0 +1,2 @@
1
+ import { a as badge_default, i as badgeVariants, n as badgeRadiuses, r as badgeSizes, t as badgeColors } from "../../badge.js";
2
+ export { badge_default as Badge, badgeColors, badgeRadiuses, badgeSizes, badgeVariants };
@@ -0,0 +1,16 @@
1
+ import { ComponentColorValue } from '../../utils/componentColors';
2
+ export declare const badgeColors: readonly ["primary", "secondary", "success", "warning", "danger", "info", "neutral"];
3
+ export declare const badgeSizes: readonly ["xs", "sm", "md", "lg", "xl"];
4
+ export declare const badgeRadiuses: readonly ["none", "xs", "sm", "md", "lg", "xl", "full"];
5
+ export declare const badgeVariants: readonly ["solid", "subtle", "surface", "outline"];
6
+ export type BadgeColor = ComponentColorValue;
7
+ export type BadgeSize = (typeof badgeSizes)[number];
8
+ export type BadgeRadius = (typeof badgeRadiuses)[number];
9
+ export type BadgeVariant = (typeof badgeVariants)[number];
10
+ export interface BadgeProps {
11
+ variant?: BadgeVariant;
12
+ color?: BadgeColor;
13
+ size?: BadgeSize;
14
+ radius?: BadgeRadius;
15
+ ariaLabel?: string;
16
+ }
@@ -0,0 +1,8 @@
1
+ import { BadgeColor } from './types';
2
+ export declare function getBadgeColorStyle(color: BadgeColor | undefined): {
3
+ '--_rp-badge-custom-color': string & {};
4
+ '--_rp-badge-custom-fg': string & {};
5
+ '--_rp-badge-custom-on': string;
6
+ '--_rp-badge-custom-subtle-bg': string;
7
+ '--_rp-badge-custom-border': string;
8
+ } | undefined;
@@ -0,0 +1,36 @@
1
+ import { CollapseProps } from './types';
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<CollapseProps & {
4
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
5
+ }> & (typeof globalThis extends {
6
+ __VLS_PROPS_FALLBACK: infer P;
7
+ } ? P : {});
8
+ expose: (exposed: {}) => void;
9
+ attrs: any;
10
+ slots: {
11
+ trigger?: (props: {
12
+ triggerProps: import('./types').CollapseTriggerProps;
13
+ isOpen: boolean;
14
+ open: () => void;
15
+ close: () => void;
16
+ toggle: () => void;
17
+ }) => any;
18
+ } & {
19
+ default?: (props: {
20
+ isOpen: boolean;
21
+ open: () => void;
22
+ close: () => void;
23
+ toggle: () => void;
24
+ }) => any;
25
+ };
26
+ emit: (evt: "update:open", value: boolean) => void;
27
+ }>) => import('vue').VNode & {
28
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
29
+ };
30
+ declare const _default: typeof __VLS_export;
31
+ export default _default;
32
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
33
+ [K in keyof T]: T[K];
34
+ } : {
35
+ [K in keyof T as K]: T[K];
36
+ }) & {};
@@ -0,0 +1,3 @@
1
+ export { default as Collapse } from './collapse';
2
+ export { useCollapse } from './useCollapse';
3
+ export type { CollapseContentProps, CollapseContentRole, CollapseOption, CollapseProps, CollapseRootProps, CollapseSlotProps, CollapseState, CollapseTriggerProps, CollapseTriggerSlotProps, UseCollapseOptions, UseCollapseReturn, } from './types';
@@ -0,0 +1,3 @@
1
+ import { t as useCollapse } from "../../useCollapse.js";
2
+ import { t as collapse_default } from "../../collapse.js";
3
+ export { collapse_default as Collapse, useCollapse };
@@ -0,0 +1,76 @@
1
+ import { ComputedRef, MaybeRefOrGetter } from 'vue';
2
+ export type CollapseState = 'open' | 'closed';
3
+ export type CollapseContentRole = 'region' | 'group';
4
+ export type CollapseOption<T> = MaybeRefOrGetter<T>;
5
+ export interface CollapseRootProps {
6
+ class: string[];
7
+ 'data-state': CollapseState;
8
+ 'data-disabled'?: boolean;
9
+ }
10
+ export interface CollapseTriggerProps {
11
+ type: 'button';
12
+ disabled?: boolean;
13
+ 'aria-controls': string;
14
+ 'aria-expanded': boolean;
15
+ 'aria-disabled'?: boolean;
16
+ onClick: (event: MouseEvent) => void;
17
+ }
18
+ export interface CollapseContentProps {
19
+ class: string;
20
+ id: string;
21
+ role: CollapseContentRole;
22
+ 'data-state': CollapseState;
23
+ 'aria-hidden'?: 'true';
24
+ 'aria-label'?: string;
25
+ 'aria-labelledby'?: string;
26
+ 'aria-describedby'?: string;
27
+ }
28
+ export interface CollapseSlotProps {
29
+ isOpen: boolean;
30
+ open: () => void;
31
+ close: () => void;
32
+ toggle: () => void;
33
+ }
34
+ export interface CollapseTriggerSlotProps extends CollapseSlotProps {
35
+ triggerProps: CollapseTriggerProps;
36
+ }
37
+ export interface CollapseProps {
38
+ id?: string;
39
+ open?: boolean;
40
+ defaultOpen?: boolean;
41
+ disabled?: boolean;
42
+ unmountOnExit?: boolean;
43
+ role?: CollapseContentRole;
44
+ ariaLabel?: string;
45
+ ariaDescribedby?: string;
46
+ ariaLabelledby?: string;
47
+ }
48
+ export interface UseCollapseOptions {
49
+ id?: CollapseOption<string | undefined>;
50
+ open?: CollapseOption<boolean | undefined>;
51
+ defaultOpen?: CollapseOption<boolean | undefined>;
52
+ disabled?: CollapseOption<boolean | undefined>;
53
+ unmountOnExit?: CollapseOption<boolean | undefined>;
54
+ role?: CollapseOption<CollapseContentRole | undefined>;
55
+ ariaLabel?: CollapseOption<string | undefined>;
56
+ ariaDescribedby?: CollapseOption<string | undefined>;
57
+ ariaLabelledby?: CollapseOption<string | undefined>;
58
+ onOpenChange?: (open: boolean) => void;
59
+ }
60
+ export interface UseCollapseReturn {
61
+ id: ComputedRef<string>;
62
+ state: ComputedRef<CollapseState>;
63
+ isDisabled: ComputedRef<boolean>;
64
+ isOpen: ComputedRef<boolean>;
65
+ shouldRenderContent: ComputedRef<boolean>;
66
+ rootClass: ComputedRef<string[]>;
67
+ rootProps: ComputedRef<CollapseRootProps>;
68
+ triggerProps: ComputedRef<CollapseTriggerProps>;
69
+ contentProps: ComputedRef<CollapseContentProps>;
70
+ triggerSlotProps: ComputedRef<CollapseTriggerSlotProps>;
71
+ contentSlotProps: ComputedRef<CollapseSlotProps>;
72
+ setOpen: (open: boolean) => void;
73
+ open: () => void;
74
+ close: () => void;
75
+ toggle: () => void;
76
+ }
@@ -0,0 +1,2 @@
1
+ import { UseCollapseOptions, UseCollapseReturn } from './types';
2
+ export declare function useCollapse(options?: Readonly<UseCollapseOptions>, emitOpenChange?: (open: boolean) => void): UseCollapseReturn;
@@ -0,0 +1,16 @@
1
+ import { PropType } from 'vue';
2
+ import { DropdownMenuRenderedItem } from './types';
3
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ items: {
5
+ type: PropType<DropdownMenuRenderedItem[]>;
6
+ required: true;
7
+ };
8
+ }>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
9
+ [key: string]: any;
10
+ }>[], {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
11
+ items: {
12
+ type: PropType<DropdownMenuRenderedItem[]>;
13
+ required: true;
14
+ };
15
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
16
+ export default _default;
@@ -0,0 +1,23 @@
1
+ import { DropdownMenuFocusTarget, DropdownMenuItem, DropdownMenuItemPath, DropdownMenuOpenOptions, DropdownMenuPlacement } from './types';
2
+ export declare const DEFAULT_PLACEMENT: DropdownMenuPlacement;
3
+ export declare const DEFAULT_FOCUS_TARGET: DropdownMenuFocusTarget;
4
+ export type ItemPath = DropdownMenuItemPath;
5
+ export type SubmenuFocusTarget = DropdownMenuFocusTarget | false;
6
+ export type PointerPoint = {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ export declare function getOpenFocusTarget(options: DropdownMenuOpenOptions | DropdownMenuFocusTarget | undefined): DropdownMenuFocusTarget;
11
+ export declare function getItemClass(item: DropdownMenuItem, focused: boolean, disabled: boolean, hasSubmenu: boolean, submenuOpen: boolean): string[];
12
+ export declare function hasItemSubmenu(item: DropdownMenuItem): boolean;
13
+ export declare function hasNestedItems(items: DropdownMenuItem[]): boolean;
14
+ export declare function getPathKey(path: ItemPath): string;
15
+ export declare function getParentPath(path: ItemPath): number[];
16
+ export declare function arePathsEqual(a: ItemPath, b: ItemPath): boolean;
17
+ export declare function isPathPrefix(prefix: ItemPath, path: ItemPath): boolean;
18
+ export declare function normalizePath(indexOrPath: number | ItemPath): ItemPath;
19
+ export declare function getEventPoint(event: MouseEvent): PointerPoint;
20
+ export declare function hasMeasuredRect(rect: DOMRect): boolean;
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;
@@ -0,0 +1,26 @@
1
+ import { DropdownMenuItem, DropdownMenuItemSlotProps, DropdownMenuProps, DropdownMenuSlotProps } from './types';
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<DropdownMenuProps & {
4
+ onSelect?: ((item: DropdownMenuItem) => any) | undefined;
5
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
6
+ }> & (typeof globalThis extends {
7
+ __VLS_PROPS_FALLBACK: infer P;
8
+ } ? P : {});
9
+ expose: (exposed: {}) => void;
10
+ attrs: any;
11
+ slots: {
12
+ default(props: DropdownMenuSlotProps): unknown;
13
+ item?(props: DropdownMenuItemSlotProps): unknown;
14
+ empty?(): unknown;
15
+ };
16
+ emit: ((evt: "select", item: DropdownMenuItem) => void) & ((evt: "update:open", value: boolean) => void);
17
+ }>) => import('vue').VNode & {
18
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
19
+ };
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
22
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
23
+ [K in keyof T]: T[K];
24
+ } : {
25
+ [K in keyof T as K]: T[K];
26
+ }) & {};
@@ -0,0 +1,3 @@
1
+ export { default as DropdownMenu } from './dropdown-menu';
2
+ export { useDropdownMenu } from './useDropdownMenu';
3
+ export type { DropdownMenuCloseOptions, DropdownMenuContentProps, DropdownMenuFocusTarget, DropdownMenuItem, DropdownMenuItemPath, DropdownMenuItemProps, DropdownMenuItemSlotProps, DropdownMenuItemValue, DropdownMenuOpenOptions, DropdownMenuPlacement, DropdownMenuProps, DropdownMenuRenderedItem, DropdownMenuSlotProps, DropdownMenuSubmenuProps, DropdownMenuTriggerProps, } from './types';
@@ -0,0 +1,2 @@
1
+ import { n as useDropdownMenu, t as dropdown_menu_default } from "../../dropdown-menu.js";
2
+ export { dropdown_menu_default as DropdownMenu, useDropdownMenu };
@@ -0,0 +1,104 @@
1
+ export type DropdownMenuPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
2
+ export type DropdownMenuItemValue = string | number;
3
+ export type DropdownMenuFocusTarget = 'first' | 'last';
4
+ export type DropdownMenuItemPath = number[];
5
+ export interface DropdownMenuOpenOptions {
6
+ focus?: DropdownMenuFocusTarget;
7
+ }
8
+ export interface DropdownMenuCloseOptions {
9
+ focusTrigger?: boolean;
10
+ }
11
+ export interface DropdownMenuItem {
12
+ label: string;
13
+ value: DropdownMenuItemValue;
14
+ disabled?: boolean;
15
+ destructive?: boolean;
16
+ shortcut?: string;
17
+ children?: DropdownMenuItem[];
18
+ }
19
+ export interface DropdownMenuTriggerProps {
20
+ 'aria-controls'?: string;
21
+ 'aria-expanded'?: boolean;
22
+ 'aria-haspopup': 'menu';
23
+ disabled?: boolean;
24
+ onClick: (event: MouseEvent) => void;
25
+ onKeydown: (event: KeyboardEvent) => void;
26
+ }
27
+ export interface DropdownMenuContentProps {
28
+ id: string;
29
+ role: 'menu';
30
+ tabindex: -1;
31
+ 'aria-label'?: string;
32
+ 'aria-activedescendant'?: string;
33
+ onKeydown: (event: KeyboardEvent) => void;
34
+ onMousemove: (event: MouseEvent) => void;
35
+ onMouseleave: (event: MouseEvent) => void;
36
+ }
37
+ export interface DropdownMenuSlotProps {
38
+ triggerProps: DropdownMenuTriggerProps;
39
+ isOpen: boolean;
40
+ open: (options?: DropdownMenuOpenOptions | DropdownMenuFocusTarget) => void;
41
+ close: (options?: DropdownMenuCloseOptions) => void;
42
+ toggle: () => void;
43
+ }
44
+ export interface DropdownMenuItemSlotProps {
45
+ item: DropdownMenuItem;
46
+ index: number;
47
+ path: DropdownMenuItemPath;
48
+ level: number;
49
+ focused: boolean;
50
+ disabled: boolean;
51
+ hasSubmenu: boolean;
52
+ isSubmenuOpen: boolean;
53
+ select: () => void;
54
+ openSubmenu: (focus?: DropdownMenuFocusTarget) => void;
55
+ closeSubmenu: () => void;
56
+ close: (options?: DropdownMenuCloseOptions) => void;
57
+ }
58
+ export interface DropdownMenuItemProps {
59
+ id: string;
60
+ type: 'button';
61
+ role: 'menuitem';
62
+ tabindex: -1;
63
+ class: string[];
64
+ 'aria-controls'?: string;
65
+ 'aria-expanded'?: boolean;
66
+ 'aria-haspopup'?: 'menu';
67
+ 'aria-disabled'?: true;
68
+ 'data-disabled'?: true;
69
+ 'data-focused'?: true;
70
+ 'data-submenu'?: true;
71
+ onClick: (event: MouseEvent) => void;
72
+ onMouseenter: (event: MouseEvent) => void;
73
+ }
74
+ export interface DropdownMenuSubmenuProps {
75
+ id: string;
76
+ role: 'menu';
77
+ class: string[];
78
+ 'aria-label'?: string;
79
+ 'aria-activedescendant'?: string;
80
+ }
81
+ export interface DropdownMenuRenderedItem {
82
+ item: DropdownMenuItem;
83
+ index: number;
84
+ key: string;
85
+ path: DropdownMenuItemPath;
86
+ level: number;
87
+ focused: boolean;
88
+ disabled: boolean;
89
+ hasSubmenu: boolean;
90
+ submenuOpen: boolean;
91
+ props: DropdownMenuItemProps;
92
+ submenuProps?: DropdownMenuSubmenuProps;
93
+ slotProps: DropdownMenuItemSlotProps;
94
+ children: DropdownMenuRenderedItem[];
95
+ }
96
+ export interface DropdownMenuProps {
97
+ id?: string;
98
+ items?: DropdownMenuItem[];
99
+ placement?: DropdownMenuPlacement;
100
+ open?: boolean;
101
+ disabled?: boolean;
102
+ closeOnSelect?: boolean;
103
+ ariaLabel?: string;
104
+ }
@@ -0,0 +1,32 @@
1
+ import { DropdownMenuContentProps, DropdownMenuItem, DropdownMenuProps, DropdownMenuSlotProps, DropdownMenuTriggerProps } from './types';
2
+ export declare function useDropdownMenu(props: Readonly<DropdownMenuProps>, emit?: {
3
+ openChange?: (open: boolean) => void;
4
+ select?: (item: DropdownMenuItem) => void;
5
+ }): {
6
+ rootRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
7
+ menuRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
8
+ menuId: import('vue').ComputedRef<string>;
9
+ isVisible: import('vue').ComputedRef<boolean>;
10
+ isEmpty: import('vue').ComputedRef<boolean>;
11
+ visibleItems: import('vue').ComputedRef<DropdownMenuItem[]>;
12
+ renderedItems: import('vue').ComputedRef<import('./types').DropdownMenuRenderedItem[]>;
13
+ focusedIndex: import('vue').ComputedRef<number>;
14
+ focusedPath: import('vue').Ref<number[], import('./types').DropdownMenuItemPath | number[]>;
15
+ activeDescendantId: import('vue').ComputedRef<string | undefined>;
16
+ rootClass: import('vue').ComputedRef<string[]>;
17
+ contentClass: import('vue').ComputedRef<string[]>;
18
+ triggerProps: import('vue').ComputedRef<DropdownMenuTriggerProps>;
19
+ contentProps: import('vue').ComputedRef<DropdownMenuContentProps>;
20
+ slotProps: import('vue').ComputedRef<DropdownMenuSlotProps>;
21
+ open: (options?: import('./types').DropdownMenuOpenOptions | import('./types').DropdownMenuFocusTarget) => void;
22
+ close: (options?: import('./types').DropdownMenuCloseOptions) => void;
23
+ toggle: () => void;
24
+ selectItem: (item: DropdownMenuItem) => void;
25
+ openSubmenu: (path: import('./dropdown-menu-utils').ItemPath, focus?: import('./dropdown-menu-utils').SubmenuFocusTarget, point?: import('./dropdown-menu-utils').PointerPoint) => boolean;
26
+ closeSubmenu: (path: import('./dropdown-menu-utils').ItemPath) => boolean;
27
+ onItemMouseenter: (item: DropdownMenuItem, indexOrPath: number | import('./dropdown-menu-utils').ItemPath, event?: MouseEvent) => void;
28
+ onTriggerKeydown: (event: KeyboardEvent) => void;
29
+ onMenuKeydown: (event: KeyboardEvent) => void;
30
+ getItemProps: (item: DropdownMenuItem, indexOrPath: number | import('./dropdown-menu-utils').ItemPath, focused?: boolean, disabled?: boolean) => import('./types').DropdownMenuItemProps;
31
+ getItemSlotProps: (item: DropdownMenuItem, indexOrPath: number | import('./dropdown-menu-utils').ItemPath, focused?: boolean, disabled?: boolean) => import('./types').DropdownMenuItemSlotProps;
32
+ };
@@ -0,0 +1,30 @@
1
+ import { Ref } from 'vue';
2
+ import { DropdownMenuCloseOptions, DropdownMenuFocusTarget, DropdownMenuItem, DropdownMenuOpenOptions, DropdownMenuProps } from './types';
3
+ import { ItemPath } from './dropdown-menu-utils';
4
+ type BooleanSource = Readonly<Ref<boolean>>;
5
+ type UseDropdownMenuDisclosureOptions = {
6
+ props: Readonly<DropdownMenuProps>;
7
+ emit: {
8
+ openChange?: (open: boolean) => void;
9
+ select?: (item: DropdownMenuItem) => void;
10
+ };
11
+ rootRef: Ref<HTMLElement | null>;
12
+ uncontrolledOpen: Ref<boolean>;
13
+ isDisabled: BooleanSource;
14
+ isOpen: BooleanSource;
15
+ isVisible: BooleanSource;
16
+ focusedPath: Ref<ItemPath>;
17
+ resetFocus: () => void;
18
+ resetSubmenus: () => void;
19
+ resetHoverIntent: () => void;
20
+ focusItem: (target: DropdownMenuFocusTarget, menuPath?: ItemPath) => boolean;
21
+ focusMenu: () => void;
22
+ focusTrigger: () => void;
23
+ };
24
+ export declare function useDropdownMenuDisclosure({ props, emit, rootRef, uncontrolledOpen, isDisabled, isOpen, isVisible, focusedPath, resetFocus, resetSubmenus, resetHoverIntent, focusItem, focusMenu, focusTrigger, }: UseDropdownMenuDisclosureOptions): {
25
+ open: (options?: DropdownMenuOpenOptions | DropdownMenuFocusTarget) => void;
26
+ close: (options?: DropdownMenuCloseOptions) => void;
27
+ toggle: () => void;
28
+ resetMenuFocus: () => void;
29
+ };
30
+ export {};
@@ -0,0 +1,28 @@
1
+ import { Ref } from 'vue';
2
+ import { DropdownMenuPlacement } from './types';
3
+ import { ItemPath } from './dropdown-menu-utils';
4
+ type StringSource = {
5
+ readonly value: string;
6
+ };
7
+ type PlacementSource = {
8
+ readonly value: DropdownMenuPlacement;
9
+ };
10
+ type UseDropdownMenuDomOptions = {
11
+ menuId: StringSource;
12
+ rootRef: Ref<HTMLElement | null>;
13
+ menuRef: Ref<HTMLElement | null>;
14
+ placement: PlacementSource;
15
+ focusedPath: Ref<ItemPath>;
16
+ };
17
+ export declare function useDropdownMenuDom({ menuId, rootRef, menuRef, placement, focusedPath, }: UseDropdownMenuDomOptions): {
18
+ activeDescendantId: import('vue').ComputedRef<string | undefined>;
19
+ focusMenu: () => void;
20
+ focusTrigger: () => void;
21
+ getItemId: (indexOrPath: number | ItemPath) => string;
22
+ getSubmenuId: (path: ItemPath) => string;
23
+ getItemElement: (path: ItemPath) => HTMLElement | null;
24
+ getSubmenuElement: (path: ItemPath) => HTMLElement | null;
25
+ isSubmenuOpeningLeft: (path: ItemPath) => boolean;
26
+ getMenuActiveDescendant: (menuPath: ItemPath) => string | undefined;
27
+ };
28
+ export {};