@avenirs-esr/avenirs-dsav 0.1.1 → 0.1.2

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 (160) hide show
  1. package/dist/avenirs-dsav.css +1 -1
  2. package/dist/avenirs-dsav.es.js +7375 -15307
  3. package/dist/avenirs-dsav.umd.js +73 -110
  4. package/dist/src/App.vue.d.ts +2 -0
  5. package/dist/src/components/badges/AvBadge/AvBadge.stories.d.ts +44 -0
  6. package/dist/src/components/badges/AvBadge/AvBadge.stub.d.ts +30 -0
  7. package/dist/src/components/badges/AvBadge/AvBadge.test.d.ts +1 -0
  8. package/dist/src/components/badges/AvBadge/AvBadge.vue.d.ts +44 -0
  9. package/dist/src/components/badges/index.d.ts +1 -0
  10. package/dist/src/components/base/AvIconText/AvIconText.stories.d.ts +36 -0
  11. package/dist/src/components/base/AvIconText/AvIconText.test.d.ts +1 -0
  12. package/dist/src/components/base/AvIconText/AvIconText.vue.d.ts +40 -0
  13. package/dist/src/components/base/AvNotice/AvNotice.stories.d.ts +63 -0
  14. package/dist/src/components/base/AvNotice/AvNotice.test.d.ts +1 -0
  15. package/dist/src/components/base/AvNotice/AvNotice.vue.d.ts +22 -0
  16. package/dist/src/components/base/AvVIcon/AvVIcon.stories.d.ts +47 -0
  17. package/dist/src/components/base/AvVIcon/AvVIcon.stub.d.ts +9 -0
  18. package/dist/src/components/base/AvVIcon/AvVIcon.vue.d.ts +54 -0
  19. package/dist/src/components/base/index.d.ts +2 -0
  20. package/dist/src/components/cards/AvCard/AvCard.stories.d.ts +28 -0
  21. package/dist/src/components/cards/AvCard/AvCard.test.d.ts +1 -0
  22. package/dist/src/components/cards/AvCard/AvCard.vue.d.ts +58 -0
  23. package/dist/src/components/cards/index.d.ts +1 -0
  24. package/dist/src/components/feedback/AvAlert/AvAlert.test.d.ts +1 -0
  25. package/dist/src/components/feedback/AvAlert/AvAlert.vue.d.ts +77 -0
  26. package/dist/src/components/feedback/AvToaster/AvToaster.test.d.ts +1 -0
  27. package/dist/src/components/feedback/AvToaster/AvToaster.vue.d.ts +79 -0
  28. package/dist/src/components/feedback/index.d.ts +2 -0
  29. package/dist/src/components/header/AvHeader/AvHeader.test.d.ts +1 -0
  30. package/dist/src/components/header/AvHeader/AvHeader.vue.d.ts +132 -0
  31. package/dist/src/components/header/AvHeaderMenuLinks/AvHeaderMenuLinks.test.d.ts +1 -0
  32. package/dist/src/components/header/AvHeaderMenuLinks/AvHeaderMenuLinks.vue.d.ts +38 -0
  33. package/dist/src/components/header/AvLogo.vue.d.ts +2 -0
  34. package/dist/src/components/header/EsupLogo.test.d.ts +1 -0
  35. package/dist/src/components/header/EsupLogo.vue.d.ts +7 -0
  36. package/dist/src/components/header/index.d.ts +5 -0
  37. package/dist/src/components/index.d.ts +8 -0
  38. package/dist/src/components/interaction/accordions/AvAccordion/AvAccordion.stories.d.ts +30 -0
  39. package/dist/src/components/interaction/accordions/AvAccordion/AvAccordion.test.d.ts +1 -0
  40. package/dist/src/components/interaction/accordions/AvAccordion/AvAccordion.vue.d.ts +31 -0
  41. package/dist/src/components/interaction/accordions/AvAccordionsGroup/AvAccordionsGroup.stories.d.ts +48 -0
  42. package/dist/src/components/interaction/accordions/AvAccordionsGroup/AvAccordionsGroup.test.d.ts +1 -0
  43. package/dist/src/components/interaction/accordions/AvAccordionsGroup/AvAccordionsGroup.vue.d.ts +36 -0
  44. package/dist/src/components/interaction/accordions/index.d.ts +2 -0
  45. package/dist/src/components/interaction/buttons/AvButton/AvButton.stories.d.ts +75 -0
  46. package/dist/src/components/interaction/buttons/AvButton/AvButton.stub.d.ts +15 -0
  47. package/dist/src/components/interaction/buttons/AvButton/AvButton.test.d.ts +1 -0
  48. package/dist/src/components/interaction/buttons/AvButton/AvButton.vue.d.ts +78 -0
  49. package/dist/src/components/interaction/buttons/AvRichButton/AvRichButton.stories.d.ts +39 -0
  50. package/dist/src/components/interaction/buttons/AvRichButton/AvRichButton.test.d.ts +1 -0
  51. package/dist/src/components/interaction/buttons/AvRichButton/AvRichButton.vue.d.ts +48 -0
  52. package/dist/src/components/interaction/buttons/index.d.ts +2 -0
  53. package/dist/src/components/interaction/files/AvFileUpload/AvFileUpload.stories.d.ts +30 -0
  54. package/dist/src/components/interaction/files/AvFileUpload/AvFileUpload.test.d.ts +1 -0
  55. package/dist/src/components/interaction/files/AvFileUpload/AvFileUpload.vue.d.ts +131 -0
  56. package/dist/src/components/interaction/files/AvFileUpload/AvFileUploadAlert.vue.d.ts +19 -0
  57. package/dist/src/components/interaction/files/index.d.ts +1 -0
  58. package/dist/src/components/interaction/index.d.ts +10 -0
  59. package/dist/src/components/interaction/inputs/AvInput/AvInput.stories.d.ts +71 -0
  60. package/dist/src/components/interaction/inputs/AvInput/AvInput.test.d.ts +1 -0
  61. package/dist/src/components/interaction/inputs/AvInput/AvInput.vue.d.ts +111 -0
  62. package/dist/src/components/interaction/inputs/index.d.ts +1 -0
  63. package/dist/src/components/interaction/lists/AvList/AvList.stories.d.ts +55 -0
  64. package/dist/src/components/interaction/lists/AvList/AvList.stub.d.ts +5 -0
  65. package/dist/src/components/interaction/lists/AvList/AvList.test.d.ts +1 -0
  66. package/dist/src/components/interaction/lists/AvList/AvList.vue.d.ts +74 -0
  67. package/dist/src/components/interaction/lists/AvListItem/AvListItem.stories.d.ts +59 -0
  68. package/dist/src/components/interaction/lists/AvListItem/AvListItem.stub.d.ts +19 -0
  69. package/dist/src/components/interaction/lists/AvListItem/AvListItem.test.d.ts +1 -0
  70. package/dist/src/components/interaction/lists/AvListItem/AvListItem.vue.d.ts +112 -0
  71. package/dist/src/components/interaction/lists/index.d.ts +2 -0
  72. package/dist/src/components/interaction/pickers/AvPageSizePicker/AvPageSizePicker.stories.d.ts +24 -0
  73. package/dist/src/components/interaction/pickers/AvPageSizePicker/AvPageSizePicker.test.d.ts +1 -0
  74. package/dist/src/components/interaction/pickers/AvPageSizePicker/AvPageSizePicker.vue.d.ts +23 -0
  75. package/dist/src/components/interaction/pickers/AvTagPicker/AvTagPicker.stories.d.ts +96 -0
  76. package/dist/src/components/interaction/pickers/AvTagPicker/AvTagPicker.stub.d.ts +11 -0
  77. package/dist/src/components/interaction/pickers/AvTagPicker/AvTagPicker.test.d.ts +1 -0
  78. package/dist/src/components/interaction/pickers/AvTagPicker/AvTagPicker.vue.d.ts +79 -0
  79. package/dist/src/components/interaction/pickers/index.d.ts +2 -0
  80. package/dist/src/components/interaction/radios/AvRadioButton/AvRadioButton.stories.d.ts +34 -0
  81. package/dist/src/components/interaction/radios/AvRadioButton/AvRadioButton.test.d.ts +1 -0
  82. package/dist/src/components/interaction/radios/AvRadioButton/AvRadioButton.vue.d.ts +38 -0
  83. package/dist/src/components/interaction/radios/AvRadioButtonSet/AvRadioButtonSet.stories.d.ts +54 -0
  84. package/dist/src/components/interaction/radios/AvRadioButtonSet/AvRadioButtonSet.test.d.ts +1 -0
  85. package/dist/src/components/interaction/radios/AvRadioButtonSet/AvRadioButtonSet.vue.d.ts +76 -0
  86. package/dist/src/components/interaction/radios/index.d.ts +2 -0
  87. package/dist/src/components/interaction/selects/AvAutocomplete/AvAutocomplete.stories.d.ts +553 -0
  88. package/dist/src/components/interaction/selects/AvAutocomplete/AvAutocomplete.stub.d.ts +28 -0
  89. package/dist/src/components/interaction/selects/AvAutocomplete/AvAutocomplete.test.d.ts +1 -0
  90. package/dist/src/components/interaction/selects/AvAutocomplete/AvAutocomplete.types.d.ts +101 -0
  91. package/dist/src/components/interaction/selects/AvAutocomplete/AvAutocomplete.vue.d.ts +204 -0
  92. package/dist/src/components/interaction/selects/AvAutocomplete/AvAutocompleteContext.d.ts +14 -0
  93. package/dist/src/components/interaction/selects/AvAutocomplete/AvAutocompleteDropdown.vue.d.ts +60 -0
  94. package/dist/src/components/interaction/selects/AvAutocomplete/AvAutocompleteInput.vue.d.ts +309 -0
  95. package/dist/src/components/interaction/selects/AvAutocomplete/AvAutocompleteSelectedTags.vue.d.ts +42 -0
  96. package/dist/src/components/interaction/selects/AvSelect/AvSelect.stories.d.ts +103 -0
  97. package/dist/src/components/interaction/selects/AvSelect/AvSelect.stub.d.ts +15 -0
  98. package/dist/src/components/interaction/selects/AvSelect/AvSelect.test.d.ts +1 -0
  99. package/dist/src/components/interaction/selects/AvSelect/AvSelect.vue.d.ts +63 -0
  100. package/dist/src/components/interaction/selects/index.d.ts +3 -0
  101. package/dist/src/components/interaction/tabs/AvTab/AvTab.stories.d.ts +34 -0
  102. package/dist/src/components/interaction/tabs/AvTab/AvTab.test.d.ts +1 -0
  103. package/dist/src/components/interaction/tabs/AvTab/AvTab.vue.d.ts +31 -0
  104. package/dist/src/components/interaction/tabs/AvTabs/AvTabs.stories.d.ts +51 -0
  105. package/dist/src/components/interaction/tabs/AvTabs/AvTabs.test.d.ts +1 -0
  106. package/dist/src/components/interaction/tabs/AvTabs/AvTabs.vue.d.ts +40 -0
  107. package/dist/src/components/interaction/tabs/index.d.ts +2 -0
  108. package/dist/src/components/interaction/toggles/AvToggle/AvToggle.stories.d.ts +21 -0
  109. package/dist/src/components/interaction/toggles/AvToggle/AvToggle.test.d.ts +1 -0
  110. package/dist/src/components/interaction/toggles/AvToggle/AvToggle.vue.d.ts +46 -0
  111. package/dist/src/components/interaction/toggles/index.d.ts +1 -0
  112. package/dist/src/components/navigation/AvNavigation/AvNavigation.stories.d.ts +34 -0
  113. package/dist/src/components/navigation/AvNavigation/AvNavigation.test.d.ts +1 -0
  114. package/dist/src/components/navigation/AvNavigation/AvNavigation.vue.d.ts +16 -0
  115. package/dist/src/components/navigation/AvNavigation/index.d.ts +1 -0
  116. package/dist/src/components/navigation/AvPagination/AvPagination.test.d.ts +1 -0
  117. package/dist/src/components/navigation/AvPagination/AvPagination.vue.d.ts +57 -0
  118. package/dist/src/components/navigation/AvPagination/utils.d.ts +14 -0
  119. package/dist/src/components/navigation/AvPagination/utils.test.d.ts +1 -0
  120. package/dist/src/components/navigation/AvSideMenu/AvSideMenu.stories.d.ts +55 -0
  121. package/dist/src/components/navigation/AvSideMenu/AvSideMenu.test.d.ts +1 -0
  122. package/dist/src/components/navigation/AvSideMenu/AvSideMenu.vue.d.ts +61 -0
  123. package/dist/src/components/navigation/AvSideNavigation/AvSideNavigation.stories.d.ts +58 -0
  124. package/dist/src/components/navigation/AvSideNavigation/AvSideNavigation.stub.d.ts +16 -0
  125. package/dist/src/components/navigation/AvSideNavigation/AvSideNavigation.test.d.ts +1 -0
  126. package/dist/src/components/navigation/AvSideNavigation/AvSideNavigation.vue.d.ts +38 -0
  127. package/dist/src/components/navigation/index.d.ts +5 -0
  128. package/dist/src/components/overlay/drawers/AvDrawer/AvDrawer.stories.d.ts +53 -0
  129. package/dist/src/components/overlay/drawers/AvDrawer/AvDrawer.stub.d.ts +11 -0
  130. package/dist/src/components/overlay/drawers/AvDrawer/AvDrawer.test.d.ts +1 -0
  131. package/dist/src/components/overlay/drawers/AvDrawer/AvDrawer.vue.d.ts +60 -0
  132. package/dist/src/components/overlay/index.d.ts +3 -0
  133. package/dist/src/components/overlay/modals/AvModal/AvModal.test.d.ts +1 -0
  134. package/dist/src/components/overlay/modals/AvModal/AvModal.vue.d.ts +74 -0
  135. package/dist/src/components/overlay/popovers/AvPopover/AvPopover.stories.d.ts +49 -0
  136. package/dist/src/components/overlay/popovers/AvPopover/AvPopover.test.d.ts +1 -0
  137. package/dist/src/components/overlay/popovers/AvPopover/AvPopover.vue.d.ts +48 -0
  138. package/dist/src/components/overlay/popovers/AvPopover/use-popover.d.ts +41 -0
  139. package/dist/src/components/overlay/popovers/AvPopover/use-popover.test.d.ts +1 -0
  140. package/dist/src/composables/index.d.ts +1 -0
  141. package/dist/src/composables/use-focus-trap/use-focus-trap.d.ts +25 -0
  142. package/dist/src/composables/use-focus-trap/use-focus-trap.test.d.ts +1 -0
  143. package/dist/src/config/index.d.ts +1 -0
  144. package/dist/src/config/page-sizes.d.ts +6 -0
  145. package/dist/src/index.d.ts +5 -0
  146. package/dist/src/main.d.ts +8 -0
  147. package/dist/src/stories/foundations/icons.stories.d.ts +6 -0
  148. package/dist/src/stories/foundations/typography.stories.d.ts +5 -0
  149. package/dist/src/tests/index.d.ts +2 -0
  150. package/dist/src/tests/stubs.d.ts +62 -0
  151. package/dist/src/tests/utils.d.ts +34 -0
  152. package/dist/src/tokens/icons.d.ts +79 -0
  153. package/dist/src/tokens/index.d.ts +1 -0
  154. package/dist/src/utils/array/array.d.ts +8 -0
  155. package/dist/src/utils/forms/form.test.d.ts +1 -0
  156. package/dist/src/utils/forms/forms.d.ts +6 -0
  157. package/dist/src/utils/index.d.ts +3 -0
  158. package/dist/src/utils/string/string.d.ts +21 -0
  159. package/dist/src/utils/string/string.test.d.ts +1 -0
  160. package/package.json +4 -3
@@ -0,0 +1,553 @@
1
+ import type { StoryFn } from '@storybook/vue3';
2
+ import type { AvAutocompleteOption } from './AvAutocomplete.types';
3
+ interface ExtendedOption extends AvAutocompleteOption {
4
+ role?: string;
5
+ department?: string;
6
+ }
7
+ /**
8
+ * <h1 class="n1">Selects - <code>AvAutocomplete</code></h1>
9
+ *
10
+ * <h2 class="n2">🌟 Introduction</h2>
11
+ *
12
+ * <p>
13
+ * <span class="b2-regular">
14
+ * The <code>AvAutocomplete</code> component is a comprehensive autocomplete/select component that provides search-as-you-type functionality with support for both single and multi-selection modes.
15
+ * </span>
16
+ * </p>
17
+ *
18
+ * <p>
19
+ * <span class="b2-regular">
20
+ * It combines an input field with a dropdown containing filterable options, offering a seamless user experience for selecting from large datasets. The component supports customizable option rendering, debounced search, infinite scrolling, and flexible styling options.
21
+ * </span>
22
+ * </p>
23
+ *
24
+ * <p>
25
+ * <span class="b2-regular">
26
+ * This component is designed with accessibility in mind, featuring keyboard navigation, focus management, and proper ARIA attributes.
27
+ * </span>
28
+ * </p>
29
+ *
30
+ * <h2 class="n2">📐 Structure</h2>
31
+ *
32
+ * <p><span class="b2-regular">The autocomplete consists of an input field, dropdown with filterable options, and optional selected items section for multi-select mode.</span></p>
33
+ */
34
+ declare const meta: {
35
+ title: string;
36
+ component: <T extends AvAutocompleteOption = AvAutocompleteOption>(__VLS_props: {
37
+ readonly "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
38
+ readonly onLoadMore?: (() => any) | undefined;
39
+ readonly onSearch?: ((query: string) => any) | undefined;
40
+ readonly onClear?: (() => any) | undefined;
41
+ id?: string | undefined;
42
+ inputOptions?: Omit<import("../..").AvInputProps, "id" | "modelValue"> | undefined;
43
+ options?: T[] | undefined;
44
+ multiSelect?: boolean | undefined;
45
+ getOptionLabel?: ((option: T) => string) | undefined;
46
+ getOptionKey?: ((option: T) => string | number) | undefined;
47
+ filterOptions?: ((options: T[], query: string) => T[]) | undefined;
48
+ dropdownWidth?: string | undefined;
49
+ maxDropdownHeight?: string | undefined;
50
+ listOptions?: import("../../lists/AvList/AvList.vue").AvListProps | undefined;
51
+ scrollbarClass?: string | undefined;
52
+ dropdownClass?: string | undefined;
53
+ loading?: boolean | undefined;
54
+ debounceDelay?: number | undefined;
55
+ maxResults?: number | undefined;
56
+ enableLoadMore?: boolean | undefined;
57
+ showSelectedSection?: boolean | undefined;
58
+ blurCloseDelay?: number | undefined;
59
+ loadMoreThrottleDelay?: number | undefined;
60
+ serverSideFiltering?: boolean | undefined;
61
+ modelValue?: T[] | undefined;
62
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, __VLS_ctx?: {
63
+ slots: {
64
+ requiredTip?: (() => import("vue").Slot) | undefined;
65
+ item?: import("vue").Slot<{
66
+ option: T;
67
+ isSelected: boolean;
68
+ toggle: () => void;
69
+ }> | undefined;
70
+ selectedItem?: import("vue").Slot<{
71
+ option: T;
72
+ remove: () => void;
73
+ }> | undefined;
74
+ empty?: import("vue").Slot | undefined;
75
+ };
76
+ emit: {
77
+ (e: "search", query: string): void;
78
+ (e: "loadMore"): void;
79
+ (e: "clear"): void;
80
+ } & ((evt: "update:modelValue", value: T[]) => void);
81
+ attrs: any;
82
+ } | undefined, __VLS_expose?: ((exposed: import("vue").ShallowUnwrapRef<{}>) => void) | undefined, __VLS_setup?: Promise<{
83
+ props: {
84
+ readonly "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
85
+ readonly onLoadMore?: (() => any) | undefined;
86
+ readonly onSearch?: ((query: string) => any) | undefined;
87
+ readonly onClear?: (() => any) | undefined;
88
+ id?: string | undefined;
89
+ inputOptions?: Omit<import("../..").AvInputProps, "id" | "modelValue"> | undefined;
90
+ options?: T[] | undefined;
91
+ multiSelect?: boolean | undefined;
92
+ getOptionLabel?: ((option: T) => string) | undefined;
93
+ getOptionKey?: ((option: T) => string | number) | undefined;
94
+ filterOptions?: ((options: T[], query: string) => T[]) | undefined;
95
+ dropdownWidth?: string | undefined;
96
+ maxDropdownHeight?: string | undefined;
97
+ listOptions?: import("../../lists/AvList/AvList.vue").AvListProps | undefined;
98
+ scrollbarClass?: string | undefined;
99
+ dropdownClass?: string | undefined;
100
+ loading?: boolean | undefined;
101
+ debounceDelay?: number | undefined;
102
+ maxResults?: number | undefined;
103
+ enableLoadMore?: boolean | undefined;
104
+ showSelectedSection?: boolean | undefined;
105
+ blurCloseDelay?: number | undefined;
106
+ loadMoreThrottleDelay?: number | undefined;
107
+ serverSideFiltering?: boolean | undefined;
108
+ modelValue?: T[] | undefined;
109
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
110
+ expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
111
+ attrs: any;
112
+ slots: {
113
+ requiredTip?: (() => import("vue").Slot) | undefined;
114
+ item?: import("vue").Slot<{
115
+ option: T;
116
+ isSelected: boolean;
117
+ toggle: () => void;
118
+ }> | undefined;
119
+ selectedItem?: import("vue").Slot<{
120
+ option: T;
121
+ remove: () => void;
122
+ }> | undefined;
123
+ empty?: import("vue").Slot | undefined;
124
+ };
125
+ emit: {
126
+ (e: "search", query: string): void;
127
+ (e: "loadMore"): void;
128
+ (e: "clear"): void;
129
+ } & ((evt: "update:modelValue", value: T[]) => void);
130
+ }>) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
131
+ [key: string]: any;
132
+ }> & {
133
+ __ctx?: {
134
+ props: {
135
+ readonly "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
136
+ readonly onLoadMore?: (() => any) | undefined;
137
+ readonly onSearch?: ((query: string) => any) | undefined;
138
+ readonly onClear?: (() => any) | undefined;
139
+ id?: string | undefined;
140
+ inputOptions?: Omit<import("../..").AvInputProps, "id" | "modelValue"> | undefined;
141
+ options?: T[] | undefined;
142
+ multiSelect?: boolean | undefined;
143
+ getOptionLabel?: ((option: T) => string) | undefined;
144
+ getOptionKey?: ((option: T) => string | number) | undefined;
145
+ filterOptions?: ((options: T[], query: string) => T[]) | undefined;
146
+ dropdownWidth?: string | undefined;
147
+ maxDropdownHeight?: string | undefined;
148
+ listOptions?: import("../../lists/AvList/AvList.vue").AvListProps | undefined;
149
+ scrollbarClass?: string | undefined;
150
+ dropdownClass?: string | undefined;
151
+ loading?: boolean | undefined;
152
+ debounceDelay?: number | undefined;
153
+ maxResults?: number | undefined;
154
+ enableLoadMore?: boolean | undefined;
155
+ showSelectedSection?: boolean | undefined;
156
+ blurCloseDelay?: number | undefined;
157
+ loadMoreThrottleDelay?: number | undefined;
158
+ serverSideFiltering?: boolean | undefined;
159
+ modelValue?: T[] | undefined;
160
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
161
+ expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
162
+ attrs: any;
163
+ slots: {
164
+ requiredTip?: (() => import("vue").Slot) | undefined;
165
+ item?: import("vue").Slot<{
166
+ option: T;
167
+ isSelected: boolean;
168
+ toggle: () => void;
169
+ }> | undefined;
170
+ selectedItem?: import("vue").Slot<{
171
+ option: T;
172
+ remove: () => void;
173
+ }> | undefined;
174
+ empty?: import("vue").Slot | undefined;
175
+ };
176
+ emit: {
177
+ (e: "search", query: string): void;
178
+ (e: "loadMore"): void;
179
+ (e: "clear"): void;
180
+ } & ((evt: "update:modelValue", value: T[]) => void);
181
+ } | undefined;
182
+ };
183
+ tags: string[];
184
+ argTypes: {
185
+ id: {
186
+ control: string;
187
+ };
188
+ inputOptions: {
189
+ control: string;
190
+ description: string;
191
+ };
192
+ options: {
193
+ control: string;
194
+ };
195
+ multiSelect: {
196
+ control: string;
197
+ };
198
+ getOptionLabel: {
199
+ control: boolean;
200
+ };
201
+ getOptionKey: {
202
+ control: boolean;
203
+ };
204
+ filterOptions: {
205
+ control: boolean;
206
+ };
207
+ dropdownWidth: {
208
+ control: string;
209
+ };
210
+ maxDropdownHeight: {
211
+ control: string;
212
+ };
213
+ listOptions: {
214
+ control: string;
215
+ };
216
+ scrollbarClass: {
217
+ control: string;
218
+ };
219
+ dropdownClass: {
220
+ control: string;
221
+ };
222
+ loading: {
223
+ control: string;
224
+ };
225
+ debounceDelay: {
226
+ control: string;
227
+ };
228
+ maxResults: {
229
+ control: string;
230
+ };
231
+ enableLoadMore: {
232
+ control: string;
233
+ };
234
+ showSelectedSection: {
235
+ control: string;
236
+ };
237
+ blurCloseDelay: {
238
+ control: string;
239
+ };
240
+ loadMoreThrottleDelay: {
241
+ control: string;
242
+ };
243
+ serverSideFiltering: {
244
+ control: string;
245
+ };
246
+ requiredTip: {
247
+ description: string;
248
+ table: {
249
+ category: string;
250
+ type: {
251
+ summary: string;
252
+ };
253
+ };
254
+ };
255
+ item: {
256
+ description: string;
257
+ table: {
258
+ category: string;
259
+ type: {
260
+ summary: string;
261
+ };
262
+ };
263
+ };
264
+ selectedItem: {
265
+ description: string;
266
+ table: {
267
+ category: string;
268
+ type: {
269
+ summary: string;
270
+ };
271
+ };
272
+ };
273
+ empty: {
274
+ description: string;
275
+ table: {
276
+ category: string;
277
+ type: {
278
+ summary: string;
279
+ };
280
+ };
281
+ };
282
+ };
283
+ args: {
284
+ options: {
285
+ label: string;
286
+ value: string;
287
+ }[];
288
+ inputOptions: {
289
+ label: string;
290
+ placeholder: string;
291
+ };
292
+ multiSelect: boolean;
293
+ dropdownWidth: string;
294
+ maxDropdownHeight: string;
295
+ loading: boolean;
296
+ debounceDelay: number;
297
+ enableLoadMore: boolean;
298
+ showSelectedSection: boolean;
299
+ blurCloseDelay: number;
300
+ loadMoreThrottleDelay: number;
301
+ serverSideFiltering: boolean;
302
+ };
303
+ parameters: {
304
+ docs: {
305
+ story: {
306
+ height: string;
307
+ };
308
+ };
309
+ };
310
+ };
311
+ export default meta;
312
+ export declare const Default: StoryFn;
313
+ export declare const MultiSelect: StoryFn;
314
+ export declare const WithCustomInput: StoryFn;
315
+ export declare const Loading: StoryFn;
316
+ export declare const WithLoadMore: StoryFn;
317
+ export declare const CustomDropdownSize: StoryFn;
318
+ export declare const WithCustomItemSlotExample: {
319
+ render(): {
320
+ components: {
321
+ AvAutocomplete: <T extends AvAutocompleteOption = AvAutocompleteOption>(__VLS_props: {
322
+ readonly "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
323
+ readonly onLoadMore?: (() => any) | undefined;
324
+ readonly onSearch?: ((query: string) => any) | undefined;
325
+ readonly onClear?: (() => any) | undefined;
326
+ id?: string | undefined;
327
+ inputOptions?: Omit<import("../..").AvInputProps, "id" | "modelValue"> | undefined;
328
+ options?: T[] | undefined;
329
+ multiSelect?: boolean | undefined;
330
+ getOptionLabel?: ((option: T) => string) | undefined;
331
+ getOptionKey?: ((option: T) => string | number) | undefined;
332
+ filterOptions?: ((options: T[], query: string) => T[]) | undefined;
333
+ dropdownWidth?: string | undefined;
334
+ maxDropdownHeight?: string | undefined;
335
+ listOptions?: import("../../lists/AvList/AvList.vue").AvListProps | undefined;
336
+ scrollbarClass?: string | undefined;
337
+ dropdownClass?: string | undefined;
338
+ loading?: boolean | undefined;
339
+ debounceDelay?: number | undefined;
340
+ maxResults?: number | undefined;
341
+ enableLoadMore?: boolean | undefined;
342
+ showSelectedSection?: boolean | undefined;
343
+ blurCloseDelay?: number | undefined;
344
+ loadMoreThrottleDelay?: number | undefined;
345
+ serverSideFiltering?: boolean | undefined;
346
+ modelValue?: T[] | undefined;
347
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, __VLS_ctx?: {
348
+ slots: {
349
+ requiredTip?: (() => import("vue").Slot) | undefined;
350
+ item?: import("vue").Slot<{
351
+ option: T;
352
+ isSelected: boolean;
353
+ toggle: () => void;
354
+ }> | undefined;
355
+ selectedItem?: import("vue").Slot<{
356
+ option: T;
357
+ remove: () => void;
358
+ }> | undefined;
359
+ empty?: import("vue").Slot | undefined;
360
+ };
361
+ emit: {
362
+ (e: "search", query: string): void;
363
+ (e: "loadMore"): void;
364
+ (e: "clear"): void;
365
+ } & ((evt: "update:modelValue", value: T[]) => void);
366
+ attrs: any;
367
+ } | undefined, __VLS_expose?: ((exposed: import("vue").ShallowUnwrapRef<{}>) => void) | undefined, __VLS_setup?: Promise<{
368
+ props: {
369
+ readonly "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
370
+ readonly onLoadMore?: (() => any) | undefined;
371
+ readonly onSearch?: ((query: string) => any) | undefined;
372
+ readonly onClear?: (() => any) | undefined;
373
+ id?: string | undefined;
374
+ inputOptions?: Omit<import("../..").AvInputProps, "id" | "modelValue"> | undefined;
375
+ options?: T[] | undefined;
376
+ multiSelect?: boolean | undefined;
377
+ getOptionLabel?: ((option: T) => string) | undefined;
378
+ getOptionKey?: ((option: T) => string | number) | undefined;
379
+ filterOptions?: ((options: T[], query: string) => T[]) | undefined;
380
+ dropdownWidth?: string | undefined;
381
+ maxDropdownHeight?: string | undefined;
382
+ listOptions?: import("../../lists/AvList/AvList.vue").AvListProps | undefined;
383
+ scrollbarClass?: string | undefined;
384
+ dropdownClass?: string | undefined;
385
+ loading?: boolean | undefined;
386
+ debounceDelay?: number | undefined;
387
+ maxResults?: number | undefined;
388
+ enableLoadMore?: boolean | undefined;
389
+ showSelectedSection?: boolean | undefined;
390
+ blurCloseDelay?: number | undefined;
391
+ loadMoreThrottleDelay?: number | undefined;
392
+ serverSideFiltering?: boolean | undefined;
393
+ modelValue?: T[] | undefined;
394
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
395
+ expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
396
+ attrs: any;
397
+ slots: {
398
+ requiredTip?: (() => import("vue").Slot) | undefined;
399
+ item?: import("vue").Slot<{
400
+ option: T;
401
+ isSelected: boolean;
402
+ toggle: () => void;
403
+ }> | undefined;
404
+ selectedItem?: import("vue").Slot<{
405
+ option: T;
406
+ remove: () => void;
407
+ }> | undefined;
408
+ empty?: import("vue").Slot | undefined;
409
+ };
410
+ emit: {
411
+ (e: "search", query: string): void;
412
+ (e: "loadMore"): void;
413
+ (e: "clear"): void;
414
+ } & ((evt: "update:modelValue", value: T[]) => void);
415
+ }>) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
416
+ [key: string]: any;
417
+ }> & {
418
+ __ctx?: {
419
+ props: {
420
+ readonly "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
421
+ readonly onLoadMore?: (() => any) | undefined;
422
+ readonly onSearch?: ((query: string) => any) | undefined;
423
+ readonly onClear?: (() => any) | undefined;
424
+ id?: string | undefined;
425
+ inputOptions?: Omit<import("../..").AvInputProps, "id" | "modelValue"> | undefined;
426
+ options?: T[] | undefined;
427
+ multiSelect?: boolean | undefined;
428
+ getOptionLabel?: ((option: T) => string) | undefined;
429
+ getOptionKey?: ((option: T) => string | number) | undefined;
430
+ filterOptions?: ((options: T[], query: string) => T[]) | undefined;
431
+ dropdownWidth?: string | undefined;
432
+ maxDropdownHeight?: string | undefined;
433
+ listOptions?: import("../../lists/AvList/AvList.vue").AvListProps | undefined;
434
+ scrollbarClass?: string | undefined;
435
+ dropdownClass?: string | undefined;
436
+ loading?: boolean | undefined;
437
+ debounceDelay?: number | undefined;
438
+ maxResults?: number | undefined;
439
+ enableLoadMore?: boolean | undefined;
440
+ showSelectedSection?: boolean | undefined;
441
+ blurCloseDelay?: number | undefined;
442
+ loadMoreThrottleDelay?: number | undefined;
443
+ serverSideFiltering?: boolean | undefined;
444
+ modelValue?: T[] | undefined;
445
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
446
+ expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
447
+ attrs: any;
448
+ slots: {
449
+ requiredTip?: (() => import("vue").Slot) | undefined;
450
+ item?: import("vue").Slot<{
451
+ option: T;
452
+ isSelected: boolean;
453
+ toggle: () => void;
454
+ }> | undefined;
455
+ selectedItem?: import("vue").Slot<{
456
+ option: T;
457
+ remove: () => void;
458
+ }> | undefined;
459
+ empty?: import("vue").Slot | undefined;
460
+ };
461
+ emit: {
462
+ (e: "search", query: string): void;
463
+ (e: "loadMore"): void;
464
+ (e: "clear"): void;
465
+ } & ((evt: "update:modelValue", value: T[]) => void);
466
+ } | undefined;
467
+ };
468
+ AvListItem: {
469
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("@/components/interaction/lists/AvListItem/AvListItem.vue").AvListItemProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
470
+ P: {};
471
+ B: {};
472
+ D: {};
473
+ C: {};
474
+ M: {};
475
+ Defaults: {};
476
+ }, Readonly<import("@/components/interaction/lists/AvListItem/AvListItem.vue").AvListItemProps> & Readonly<{}>, {}, {}, {}, {}, {}>;
477
+ __isFragment?: undefined;
478
+ __isTeleport?: undefined;
479
+ __isSuspense?: undefined;
480
+ } & import("vue").ComponentOptionsBase<Readonly<import("@/components/interaction/lists/AvListItem/AvListItem.vue").AvListItemProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
481
+ $slots: {
482
+ default?: import("vue").Slot | undefined;
483
+ };
484
+ });
485
+ };
486
+ setup(): {
487
+ modelValue: import("vue").Ref<never[], never[]>;
488
+ customOptions: ExtendedOption[];
489
+ MDI_ICONS: {
490
+ ACCOUNT_CIRCLE_OUTLINE: string;
491
+ ACCOUNT_STUDENT_OUTLINE: string;
492
+ ALERT_CIRCLE_OUTLINE: string;
493
+ ARROW_DECISION: string;
494
+ ARROW_LEFT_THIN: string;
495
+ ARROW_RIGHT: string;
496
+ ARROW_RIGHT_THIN: string;
497
+ ARROW_TOP_RIGHT_THICK: string;
498
+ ATTACH_FILE: string;
499
+ ATTACHMENT_PLUS: string;
500
+ BELL_NOTIFICATION: string;
501
+ BOOK_LOCATION_OUTLINE: string;
502
+ BRIEFCASE_VARIANT_OUTLINE: string;
503
+ CALENDAR_MONTH_OUTLINE: string;
504
+ CHAT_BUBBLE_OUTLINE: string;
505
+ CHECK: string;
506
+ CHECK_CIRCLE: string;
507
+ CHECK_CIRCLE_OUTLINE: string;
508
+ CHEVRON_DOUBLE_LEFT: string;
509
+ CHEVRON_DOUBLE_RIGHT: string;
510
+ CLOSE_CIRCLE_OUTLINE: string;
511
+ CONTENT_SAVE_OUTLINE: string;
512
+ DOTS_VERTICAL: string;
513
+ ELECTRON_FRAMEWORK: string;
514
+ FAMILY: string;
515
+ FILE_ACCOUNT_OUTLINE: string;
516
+ FILE_DOCUMENT_BOX_MULTIPLE_OUTLINE: string;
517
+ FILE_DOCUMENT_EDIT_OUTLINE: string;
518
+ FILE_DOCUMENT_MULTIPLE_OUTLINE: string;
519
+ FLAG_VARIANT: string;
520
+ FORMAT_LIST_BULLETED: string;
521
+ HOME_VARIANT_OUTLINE: string;
522
+ HOURGLASS: string;
523
+ IMAGE_FILTER_CENTER_FOCUS_WEAK: string;
524
+ IMAGE_OUTLINE: string;
525
+ INFORMATION_OUTLINE: string;
526
+ LOADING_OUTLINE: string;
527
+ LOGOUT: string;
528
+ NAVIGATE_BEFORE: string;
529
+ NAVIGATE_NEXT: string;
530
+ NOTIFICATIONS_NONE: string;
531
+ PAGE_FIRST: string;
532
+ PAGE_LAST: string;
533
+ PENCIL_OUTLINE: string;
534
+ PLUS_CIRCLE_OUTLINE: string;
535
+ POST_IT_NOTES_OUTLINE: string;
536
+ SCHOOL_OUTLINE: string;
537
+ SHARE_VARIANT_OUTLINE: string;
538
+ STAR_CHECK_OUTLINE: string;
539
+ STAR_SHOOTING_OUTLINE: string;
540
+ STARS: string;
541
+ SWAP_HORIZONTAL: string;
542
+ SWAP_VERTICAL_VARIANT: string;
543
+ TARGET_ARROW: string;
544
+ TEST_TUBE_EMPTY: string;
545
+ TRASH_CAN_OUTLINE: string;
546
+ TRAY_UPLOAD: string;
547
+ VECTOR_POLYGON_VARIANT: string;
548
+ WARNING_OUTLINE: string;
549
+ };
550
+ };
551
+ template: string;
552
+ };
553
+ };
@@ -0,0 +1,28 @@
1
+ export declare const AvAutocompleteStub: import("vue").DefineComponent<{
2
+ modelValue?: any;
3
+ loading?: any;
4
+ inputOptions?: any;
5
+ options?: any;
6
+ multiSelect?: any;
7
+ getOptionLabel?: any;
8
+ getOptionKey?: any;
9
+ maxDropdownHeight?: any;
10
+ enableLoadMore?: any;
11
+ serverSideFiltering?: any;
12
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("search" | "update:modelValue" | "loadMore" | "clear")[], "search" | "update:modelValue" | "loadMore" | "clear", import("vue").PublicProps, Readonly<{
13
+ modelValue?: any;
14
+ loading?: any;
15
+ inputOptions?: any;
16
+ options?: any;
17
+ multiSelect?: any;
18
+ getOptionLabel?: any;
19
+ getOptionKey?: any;
20
+ maxDropdownHeight?: any;
21
+ enableLoadMore?: any;
22
+ serverSideFiltering?: any;
23
+ }> & Readonly<{
24
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
25
+ onLoadMore?: ((...args: any[]) => any) | undefined;
26
+ onSearch?: ((...args: any[]) => any) | undefined;
27
+ onClear?: ((...args: any[]) => any) | undefined;
28
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,101 @@
1
+ import type { AvInputProps } from '@/components/interaction/inputs/AvInput/AvInput.vue';
2
+ import type { AvListProps } from '@/components/interaction/lists/AvList/AvList.vue';
3
+ export interface AvAutocompleteOption {
4
+ label: string;
5
+ value: string | number;
6
+ }
7
+ export interface AvAutocompleteProps<T extends AvAutocompleteOption = AvAutocompleteOption> {
8
+ /**
9
+ * ID of the input element
10
+ */
11
+ id?: string;
12
+ /**
13
+ * Input-related options and configuration
14
+ */
15
+ inputOptions?: Omit<AvInputProps, 'id' | 'modelValue'>;
16
+ /**
17
+ * Options available for selection
18
+ */
19
+ options?: T[];
20
+ /**
21
+ * Whether to allow multi-selection
22
+ * @default true
23
+ */
24
+ multiSelect?: boolean;
25
+ /**
26
+ * Function to get display text from option
27
+ */
28
+ getOptionLabel?: (option: T) => string;
29
+ /**
30
+ * Function to get unique key from option
31
+ */
32
+ getOptionKey?: (option: T) => string | number;
33
+ /**
34
+ * Function to filter options based on query
35
+ */
36
+ filterOptions?: (options: T[], query: string) => T[];
37
+ /**
38
+ * Width of the dropdown
39
+ */
40
+ dropdownWidth?: string;
41
+ /**
42
+ * Maximum height of the dropdown
43
+ */
44
+ maxDropdownHeight?: string;
45
+ /**
46
+ * Props to pass to the AvList component
47
+ */
48
+ listOptions?: AvListProps;
49
+ /**
50
+ * CSS class to apply to the scrollbar
51
+ */
52
+ scrollbarClass?: string;
53
+ /**
54
+ * CSS class to apply to the dropdown
55
+ */
56
+ dropdownClass?: string;
57
+ /**
58
+ * Whether the component is in loading state
59
+ */
60
+ loading?: boolean;
61
+ /**
62
+ * Debounce delay for search input in milliseconds
63
+ * @default 300
64
+ */
65
+ debounceDelay?: number;
66
+ /**
67
+ * Maximum number of results to display
68
+ */
69
+ maxResults?: number;
70
+ /**
71
+ * Whether to enable pagination with scroll-to-bottom loading
72
+ * @default false
73
+ */
74
+ enableLoadMore?: boolean;
75
+ /**
76
+ * Whether to show the selected items section below the input
77
+ * @default false
78
+ */
79
+ showSelectedSection?: boolean;
80
+ /**
81
+ * Delay before closing dropdown when focus is lost (in milliseconds)
82
+ * @default 150
83
+ */
84
+ blurCloseDelay?: number;
85
+ /**
86
+ * Throttle delay for scroll-to-bottom load more (in milliseconds)
87
+ * @default 200
88
+ */
89
+ loadMoreThrottleDelay?: number;
90
+ /**
91
+ * Whether filtering is handled server-side (options prop already contains filtered results)
92
+ * When true, client-side filtering is bypassed and options are used as-is
93
+ * @default false
94
+ */
95
+ serverSideFiltering?: boolean;
96
+ }
97
+ export declare enum DropdownState {
98
+ LOADING = "loading",
99
+ NO_OPTIONS = "no-options",
100
+ HAS_OPTIONS = "has-options"
101
+ }