@bridge-ui/vue 0.0.7 → 0.0.8

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 (136) hide show
  1. package/ai/AGENTS.md +31 -0
  2. package/ai/README.md +35 -0
  3. package/ai/guidelines/core.md +44 -0
  4. package/ai/llms.txt +38 -0
  5. package/ai/skills/bridge-ui-components/SKILL.md +37 -0
  6. package/ai/skills/bridge-ui-forms/SKILL.md +38 -0
  7. package/ai/skills/bridge-ui-overlays/SKILL.md +37 -0
  8. package/ai/skills/bridge-ui-setup/SKILL.md +38 -0
  9. package/bin/__tests__/ai.test.ts +319 -0
  10. package/bin/ai.mjs +469 -0
  11. package/dist/Adapters/I18n/useI18nAdapter.d.ts +1 -1
  12. package/dist/Adapters/Icon/useIconAdapter.d.ts +1 -1
  13. package/dist/Components/Autocomplete/Autocomplete.vue.d.ts +5 -5
  14. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +3 -2
  15. package/dist/Components/Autocomplete/composables/useAutocomplete.js +6 -2
  16. package/dist/Components/Avatar/composables/useAvatar.d.ts +1 -1
  17. package/dist/Components/BaseField/BaseField.js +5 -0
  18. package/dist/Components/BaseField/BaseField.vue.d.ts +15 -0
  19. package/dist/Components/BaseField/BaseField.vue_vue_type_script_setup_true_lang.js +41 -0
  20. package/dist/Components/BaseField/BaseFieldLabel.js +5 -0
  21. package/dist/Components/{OtpField/OtpFieldLabel.vue.d.ts → BaseField/BaseFieldLabel.vue.d.ts} +2 -2
  22. package/dist/Components/{OtpField/OtpFieldLabel.vue_vue_type_script_setup_true_lang.js → BaseField/BaseFieldLabel.vue_vue_type_script_setup_true_lang.js} +2 -2
  23. package/dist/Components/BaseField/baseField.types.d.ts +222 -0
  24. package/dist/Components/BaseField/composables/useBaseField.d.ts +55 -0
  25. package/dist/Components/BaseField/composables/useBaseField.js +131 -0
  26. package/dist/Components/BaseField/index.d.ts +4 -0
  27. package/dist/Components/BaseField/index.js +3 -0
  28. package/dist/Components/Button/composables/useButton.d.ts +1 -1
  29. package/dist/Components/Checkbox/composables/useCheckbox.d.ts +1 -1
  30. package/dist/Components/Checkbox/composables/useCheckbox.js +1 -1
  31. package/dist/Components/Chip/Chip.vue.d.ts +1 -1
  32. package/dist/Components/Chip/composables/useChip.d.ts +1 -1
  33. package/dist/Components/Drawer/Drawer.vue.d.ts +2 -2
  34. package/dist/Components/Drawer/composables/useDrawer.d.ts +1 -1
  35. package/dist/Components/FormControl/composables/useFormControl.d.ts +11 -2
  36. package/dist/Components/FormControl/composables/useFormControl.js +57 -53
  37. package/dist/Components/FormControl/index.d.ts +1 -1
  38. package/dist/Components/FormField/composables/useFormField.d.ts +5 -1
  39. package/dist/Components/FormField/composables/useFormField.js +1 -1
  40. package/dist/Components/ListItem/ListItem.vue.d.ts +1 -1
  41. package/dist/Components/ListItem/composables/useListItem.d.ts +1 -1
  42. package/dist/Components/Listbox/Listbox.vue.d.ts +3 -3
  43. package/dist/Components/Listbox/Listbox.vue_vue_type_script_setup_true_lang.js +2 -1
  44. package/dist/Components/Listbox/composables/useListbox.d.ts +10 -1
  45. package/dist/Components/Listbox/composables/useListbox.js +20 -20
  46. package/dist/Components/Listbox/index.d.ts +1 -0
  47. package/dist/Components/Listbox/listbox.types.d.ts +6 -0
  48. package/dist/Components/Menu/Menu.vue.d.ts +2 -2
  49. package/dist/Components/Modal/Modal.vue.d.ts +2 -2
  50. package/dist/Components/Modal/composables/useModal.d.ts +1 -1
  51. package/dist/Components/NumberField/NumberField.vue.d.ts +2 -2
  52. package/dist/Components/NumberField/composables/useNumberField.d.ts +2 -2
  53. package/dist/Components/NumberField/composables/useNumberField.js +4 -1
  54. package/dist/Components/OtpField/OtpField.vue.d.ts +3 -3
  55. package/dist/Components/OtpField/OtpField.vue_vue_type_script_setup_true_lang.js +34 -52
  56. package/dist/Components/OtpField/composables/useOtpField.d.ts +40 -213
  57. package/dist/Components/OtpField/composables/useOtpField.js +92 -150
  58. package/dist/Components/OtpField/otpField.types.d.ts +10 -180
  59. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +2 -2
  60. package/dist/Components/PasswordField/composables/usePasswordField.js +4 -1
  61. package/dist/Components/Radio/composables/useRadio.d.ts +1 -1
  62. package/dist/Components/Radio/composables/useRadio.js +1 -1
  63. package/dist/Components/Select/Select.vue.d.ts +4 -4
  64. package/dist/Components/Select/composables/useSelect.d.ts +3 -2
  65. package/dist/Components/Select/composables/useSelect.js +6 -2
  66. package/dist/Components/Slider/Slider.js +5 -0
  67. package/dist/Components/Slider/Slider.vue.d.ts +25 -0
  68. package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +113 -0
  69. package/dist/Components/Slider/composables/useSlider.d.ts +482 -0
  70. package/dist/Components/Slider/composables/useSlider.js +287 -0
  71. package/dist/Components/Slider/index.d.ts +4 -0
  72. package/dist/Components/Slider/index.js +3 -0
  73. package/dist/Components/Slider/slider.types.d.ts +169 -0
  74. package/dist/Components/Snackbar/Snackbar.vue.d.ts +2 -2
  75. package/dist/Components/Switch/composables/useSwitch.d.ts +1 -1
  76. package/dist/Components/Switch/composables/useSwitch.js +1 -1
  77. package/dist/Components/Tabs/Tabs.vue.d.ts +2 -2
  78. package/dist/Components/TextField/composables/useTextField.d.ts +2 -2
  79. package/dist/Components/TextField/composables/useTextField.js +1 -1
  80. package/dist/Components/Textarea/composables/useTextarea.d.ts +2 -2
  81. package/dist/Components/Textarea/composables/useTextarea.js +1 -0
  82. package/dist/Utils/index.d.ts +3 -3
  83. package/dist/Utils/index.js +5 -2
  84. package/dist/augments.d.ts +29 -17
  85. package/dist/index.d.ts +5 -1
  86. package/dist/index.js +59 -55
  87. package/docs/README.md +56 -0
  88. package/docs/components/Alert.md +96 -0
  89. package/docs/components/Autocomplete.md +198 -0
  90. package/docs/components/Avatar.md +60 -0
  91. package/docs/components/Badge.md +47 -0
  92. package/docs/components/BaseField.md +126 -0
  93. package/docs/components/BridgeUIProvider.md +151 -0
  94. package/docs/components/Button.md +93 -0
  95. package/docs/components/Card.md +287 -0
  96. package/docs/components/Checkbox.md +87 -0
  97. package/docs/components/Divider.md +56 -0
  98. package/docs/components/Drawer.md +137 -0
  99. package/docs/components/FormControl.md +66 -0
  100. package/docs/components/FormField.md +71 -0
  101. package/docs/components/I18n.md +125 -0
  102. package/docs/components/Icon.md +88 -0
  103. package/docs/components/Label.md +31 -0
  104. package/docs/components/Link.md +71 -0
  105. package/docs/components/List.md +167 -0
  106. package/docs/components/Menu.md +97 -0
  107. package/docs/components/Modal.md +154 -0
  108. package/docs/components/NumberField.md +80 -0
  109. package/docs/components/OtpField.md +133 -0
  110. package/docs/components/PasswordField.md +82 -0
  111. package/docs/components/Progress.md +68 -0
  112. package/docs/components/Radio.md +91 -0
  113. package/docs/components/Select.md +181 -0
  114. package/docs/components/Skeleton.md +38 -0
  115. package/docs/components/Slider.md +140 -0
  116. package/docs/components/Snackbar.md +99 -0
  117. package/docs/components/Spinner.md +61 -0
  118. package/docs/components/Switch.md +72 -0
  119. package/docs/components/Tabs.md +207 -0
  120. package/docs/components/TextField.md +72 -0
  121. package/docs/components/Textarea.md +80 -0
  122. package/docs/components/Tooltip.md +125 -0
  123. package/docs/components/useBreakpoint.md +100 -0
  124. package/docs/components/useDialogAction.md +97 -0
  125. package/docs/components/useDrawerAction.md +75 -0
  126. package/docs/components/useModalAction.md +75 -0
  127. package/docs/components/useSnackbarAction.md +85 -0
  128. package/docs/examples/i18n-dictionary.ts +48 -0
  129. package/docs/examples/i18n-vue-i18n.ts +34 -0
  130. package/docs/examples/icon-fontawesome.ts +112 -0
  131. package/docs/examples/icon-heroicons.ts +57 -0
  132. package/docs/examples/icon-lucide.ts +57 -0
  133. package/docs/examples/icon-phosphor.ts +57 -0
  134. package/docs/examples/icon-tabler.ts +57 -0
  135. package/package.json +12 -5
  136. package/dist/Components/OtpField/OtpFieldLabel.js +0 -5
@@ -1,4 +1,5 @@
1
1
  import { AlertClasses, AlertProps } from './Components/Alert';
2
+ import { AutocompleteClasses, AutocompleteProps } from './Components/Autocomplete';
2
3
  import { AvatarClasses, AvatarProps } from './Components/Avatar';
3
4
  import { BadgeClasses, BadgeProps } from './Components/Badge';
4
5
  import { ButtonClasses, ButtonProps } from './Components/Button';
@@ -6,8 +7,6 @@ import { CardClasses, CardProps } from './Components/Card';
6
7
  import { CheckboxClasses, CheckboxProps } from './Components/Checkbox';
7
8
  import { ChipClasses, ChipProps } from './Components/Chip';
8
9
  import { DividerClasses, DividerProps } from './Components/Divider';
9
- import { FormControlClasses, FormControlProps } from './Components/FormControl';
10
- import { FormFieldClasses, FormFieldProps } from './Components/FormField';
11
10
  import { IconProps } from './Components/Icon';
12
11
  import { LabelClasses, LabelProps } from './Components/Label';
13
12
  import { LinkClasses, LinkProps } from './Components/Link';
@@ -16,21 +15,28 @@ import { ListItemClasses, ListItemProps } from './Components/ListItem';
16
15
  import { ListSectionClasses } from './Components/ListSection';
17
16
  import { MenuClasses, MenuProps } from './Components/Menu';
18
17
  import { ModalClasses, ModalProps } from './Components/Modal';
19
- import { NumberFieldClasses } from './Components/NumberField';
20
- import { PasswordFieldClasses } from './Components/PasswordField';
18
+ import { NumberFieldClasses, NumberFieldProps } from './Components/NumberField';
19
+ import { OtpFieldClasses, OtpFieldProps } from './Components/OtpField';
20
+ import { PasswordFieldClasses, PasswordFieldProps } from './Components/PasswordField';
21
21
  import { ProgressClasses, ProgressProps } from './Components/Progress';
22
22
  import { RadioClasses, RadioProps } from './Components/Radio';
23
23
  import { SelectClasses, SelectProps } from './Components/Select';
24
24
  import { SkeletonClasses, SkeletonProps } from './Components/Skeleton';
25
+ import { SliderClasses, SliderProps } from './Components/Slider';
25
26
  import { SnackbarClasses, SnackbarProps } from './Components/Snackbar';
26
27
  import { SpinnerClasses, SpinnerProps } from './Components/Spinner';
27
28
  import { SwitchClasses, SwitchProps } from './Components/Switch';
28
29
  import { TextareaClasses, TextareaProps } from './Components/Textarea';
30
+ import { TextFieldClasses, TextFieldProps } from './Components/TextField';
29
31
  declare module "@bridge-ui/core" {
30
32
  interface AlertConfigOverrides {
31
33
  classes: AlertClasses;
32
34
  defaultProps: Partial<Pick<AlertProps, "color" | "shadow" | "padding" | "rounded" | "variant">>;
33
35
  }
36
+ interface AutocompleteConfigOverrides {
37
+ classes: AutocompleteClasses;
38
+ defaultProps: Partial<Pick<AutocompleteProps, "size" | "color" | "rounded" | "variant" | "showErrorIcon" | "hideErrorMessage">>;
39
+ }
34
40
  interface AvatarConfigOverrides {
35
41
  classes: AvatarClasses;
36
42
  defaultProps: Partial<Pick<AvatarProps, "size" | "color" | "rounded">>;
@@ -49,7 +55,7 @@ declare module "@bridge-ui/core" {
49
55
  }
50
56
  interface CheckboxConfigOverrides {
51
57
  classes: CheckboxClasses;
52
- defaultProps: Partial<Pick<CheckboxProps, "size" | "color" | "rounded">>;
58
+ defaultProps: Partial<Pick<CheckboxProps, "size" | "color" | "rounded" | "hideErrorMessage">>;
53
59
  }
54
60
  interface ChipConfigOverrides {
55
61
  classes: ChipClasses;
@@ -59,14 +65,6 @@ declare module "@bridge-ui/core" {
59
65
  classes: DividerClasses;
60
66
  defaultProps: Partial<Pick<DividerProps, "color" | "orientation">>;
61
67
  }
62
- interface FormControlConfigOverrides {
63
- classes: FormControlClasses;
64
- defaultProps: Partial<Pick<FormControlProps, "size" | "error" | "hideErrorMessage">>;
65
- }
66
- interface FormFieldConfigOverrides {
67
- classes: FormFieldClasses;
68
- defaultProps: Partial<Pick<FormFieldProps, "size" | "color" | "rounded" | "variant" | "errorIcon" | "showErrorIcon">>;
69
- }
70
68
  interface IconConfigOverrides {
71
69
  defaultProps: Partial<Pick<IconProps, "size">>;
72
70
  }
@@ -98,9 +96,15 @@ declare module "@bridge-ui/core" {
98
96
  }
99
97
  interface NumberFieldConfigOverrides {
100
98
  classes: NumberFieldClasses;
99
+ defaultProps: Partial<Pick<NumberFieldProps, "size" | "color" | "rounded" | "variant" | "showErrorIcon" | "hideErrorMessage">>;
100
+ }
101
+ interface OtpFieldConfigOverrides {
102
+ classes: OtpFieldClasses;
103
+ defaultProps: Partial<Pick<OtpFieldProps, "size" | "type" | "color" | "length" | "rounded" | "variant" | "hideErrorMessage">>;
101
104
  }
102
105
  interface PasswordFieldConfigOverrides {
103
106
  classes: PasswordFieldClasses;
107
+ defaultProps: Partial<Pick<PasswordFieldProps, "size" | "color" | "rounded" | "variant" | "showErrorIcon" | "hideErrorMessage">>;
104
108
  }
105
109
  interface ProgressConfigOverrides {
106
110
  classes: ProgressClasses;
@@ -108,7 +112,7 @@ declare module "@bridge-ui/core" {
108
112
  }
109
113
  interface RadioConfigOverrides {
110
114
  classes: RadioClasses;
111
- defaultProps: Partial<Pick<RadioProps, "size" | "color" | "rounded">>;
115
+ defaultProps: Partial<Pick<RadioProps, "size" | "color" | "rounded" | "hideErrorMessage">>;
112
116
  }
113
117
  interface SnackbarConfigOverrides {
114
118
  classes: SnackbarClasses;
@@ -116,22 +120,30 @@ declare module "@bridge-ui/core" {
116
120
  }
117
121
  interface SelectConfigOverrides {
118
122
  classes: SelectClasses;
119
- defaultProps: Partial<Pick<SelectProps, "size" | "color" | "rounded" | "variant">>;
123
+ defaultProps: Partial<Pick<SelectProps, "size" | "color" | "rounded" | "variant" | "showErrorIcon" | "hideErrorMessage">>;
120
124
  }
121
125
  interface SkeletonConfigOverrides {
122
126
  classes: SkeletonClasses;
123
127
  defaultProps: Partial<Pick<SkeletonProps, "rounded">>;
124
128
  }
129
+ interface SliderConfigOverrides {
130
+ classes: SliderClasses;
131
+ defaultProps: Partial<Pick<SliderProps, "max" | "min" | "size" | "step" | "color" | "rounded" | "showStops" | "showTooltip" | "hideErrorMessage">>;
132
+ }
125
133
  interface SpinnerConfigOverrides {
126
134
  classes: SpinnerClasses;
127
135
  defaultProps: Partial<Pick<SpinnerProps, "size" | "color" | "variant" | "thickness" | "enableTrack" | "disableShrink">>;
128
136
  }
129
137
  interface SwitchConfigOverrides {
130
138
  classes: SwitchClasses;
131
- defaultProps: Partial<Pick<SwitchProps, "size" | "color" | "rounded">>;
139
+ defaultProps: Partial<Pick<SwitchProps, "size" | "color" | "rounded" | "hideErrorMessage">>;
132
140
  }
133
141
  interface TextareaConfigOverrides {
134
142
  classes: TextareaClasses;
135
- defaultProps: Partial<Pick<TextareaProps, "resize" | "autosize">>;
143
+ defaultProps: Partial<Pick<TextareaProps, "size" | "color" | "resize" | "rounded" | "variant" | "autosize" | "showErrorIcon" | "hideErrorMessage">>;
144
+ }
145
+ interface TextFieldConfigOverrides {
146
+ classes: TextFieldClasses;
147
+ defaultProps: Partial<Pick<TextFieldProps, "size" | "color" | "rounded" | "variant" | "showErrorIcon" | "hideErrorMessage">>;
136
148
  }
137
149
  }
package/dist/index.d.ts CHANGED
@@ -9,6 +9,8 @@ export { Avatar } from './Components/Avatar';
9
9
  export type { AvatarClasses, AvatarColorOverrides, AvatarCustomProps, AvatarProps, AvatarRoundedOverrides, AvatarSizeOverrides, AvatarSlots, } from './Components/Avatar';
10
10
  export { Badge, useBadge } from './Components/Badge';
11
11
  export type { BadgeClasses, BadgeColorOverrides, BadgeDensityOverrides, BadgeOwnProps, BadgeProps, BadgeRoundedOverrides, BadgeSizeOverrides, BadgeSlots, BadgeVariantOverrides, } from './Components/Badge';
12
+ export { BaseField, useBaseField } from './Components/BaseField';
13
+ export type { BaseFieldClasses, BaseFieldCustomProps, BaseFieldOptions, BaseFieldOwnProps, BaseFieldProps, BaseFieldSizeOverrides, BaseFieldSlots, UseBaseFieldReturn, } from './Components/BaseField';
12
14
  export { Button, useButton } from './Components/Button';
13
15
  export type { ButtonClasses, ButtonColorOverrides, ButtonDensityOverrides, ButtonProps, ButtonRoundedOverrides, ButtonSizeOverrides, ButtonSlots, ButtonVariantOverrides, } from './Components/Button';
14
16
  export { Card, useCard } from './Components/Card';
@@ -34,7 +36,7 @@ export type { LinkClasses, LinkColorOverrides, LinkCustomProps, LinkOwnProps, Li
34
36
  export { List, useList } from './Components/List';
35
37
  export type { ListClasses, ListContextValue, ListCustomProps, ListOwnProps, ListProps, } from './Components/List';
36
38
  export { Listbox, findFirstEnabledOptionIndex, findLastEnabledOptionIndex, getListboxActiveDescendantId, getListboxOptionId, moveListboxHighlight, useListbox, useListboxNavigation, } from './Components/Listbox';
37
- export type { ListboxClasses, ListboxColorOverrides, ListboxCustomProps, ListboxEmits, ListboxOption, ListboxOwnProps, ListboxProps, ListboxSlots, ListboxValue, } from './Components/Listbox';
39
+ export type { ListboxClasses, ListboxColorOverrides, ListboxCustomProps, ListboxEmits, ListboxEntry, ListboxOption, ListboxOwnProps, ListboxProps, ListboxSlots, ListboxValue, } from './Components/Listbox';
38
40
  export { ListItem } from './Components/ListItem';
39
41
  export type { ListItemClasses, ListItemCustomProps, ListItemOwnProps, ListItemProps, ListItemSlots, } from './Components/ListItem';
40
42
  export { ListSection } from './Components/ListSection';
@@ -57,6 +59,8 @@ export { Select, SelectOption } from './Components/Select';
57
59
  export type { SelectAsyncData, SelectClasses, SelectEmits, SelectModel, SelectOptionData, SelectOptionProps, SelectProps, SelectSlots, SelectValue, } from './Components/Select';
58
60
  export { Skeleton, useSkeleton } from './Components/Skeleton';
59
61
  export type { SkeletonClasses, SkeletonOwnProps, SkeletonProps, SkeletonRoundedOverrides, } from './Components/Skeleton';
62
+ export { Slider, useSlider } from './Components/Slider';
63
+ export type { SliderClasses, SliderColorOverrides, SliderCustomProps, SliderEmits, SliderOwnProps, SliderProps, SliderRangeValue, SliderRoundedOverrides, SliderSizeOverrides, SliderSlots, SliderStop, SliderStopInput, UseSliderOptions, UseSliderReturn, } from './Components/Slider';
60
64
  export { Snackbar, useSnackbar } from './Components/Snackbar';
61
65
  export type { SnackbarClasses, SnackbarColorOverrides, SnackbarCustomProps, SnackbarEmits, SnackbarOwnProps, SnackbarPaddingOverrides, SnackbarProps, SnackbarSlots, SnackbarTransitionOverrides, } from './Components/Snackbar';
62
66
  export { Spinner, useSpinner } from './Components/Spinner';
package/dist/index.js CHANGED
@@ -28,58 +28,62 @@ import F from "./Components/Autocomplete/AutocompleteOption.js";
28
28
  import I from "./Components/Avatar/Avatar.js";
29
29
  import { useBadge as L } from "./Components/Badge/composables/useBadge.js";
30
30
  import R from "./Components/Badge/Badge.js";
31
- import { useButton as z } from "./Components/Button/composables/useButton.js";
32
- import B from "./Components/Button/Button.js";
33
- import { useCard as V } from "./Components/Card/composables/useCard.js";
34
- import H from "./Components/Card/Card.js";
35
- import { useFormControl as U } from "./Components/FormControl/composables/useFormControl.js";
36
- import W from "./Components/FormControl/FormControl.js";
37
- import { useCheckbox as G } from "./Components/Checkbox/composables/useCheckbox.js";
38
- import K from "./Components/Checkbox/Checkbox.js";
39
- import { useDivider as q } from "./Components/Divider/composables/useDivider.js";
40
- import J from "./Components/Divider/Divider.js";
41
- import { useDrawer as Y } from "./Components/Drawer/composables/useDrawer.js";
42
- import X from "./Components/Drawer/Drawer.js";
43
- import { useLink as Z } from "./Components/Link/composables/useLink.js";
44
- import Q from "./Components/Link/Link.js";
45
- import { useModal as $ } from "./Components/Modal/composables/useModal.js";
46
- import ee from "./Components/Modal/Modal.js";
47
- import { useNumberField as te } from "./Components/NumberField/composables/useNumberField.js";
48
- import ne from "./Components/NumberField/NumberField.js";
49
- import { useOtpField as re } from "./Components/OtpField/composables/useOtpField.js";
50
- import ie from "./Components/OtpField/OtpField.js";
51
- import { usePasswordField as ae } from "./Components/PasswordField/composables/usePasswordField.js";
52
- import oe from "./Components/PasswordField/PasswordField.js";
53
- import { useRadio as se } from "./Components/Radio/composables/useRadio.js";
54
- import ce from "./Components/Radio/Radio.js";
55
- import le from "./Components/Select/Select.js";
56
- import ue from "./Components/Select/SelectOption.js";
57
- import { useSkeleton as de } from "./Components/Skeleton/composables/useSkeleton.js";
58
- import fe from "./Components/Skeleton/Skeleton.js";
59
- import { useSnackbar as pe } from "./Components/Snackbar/composables/useSnackbar.js";
60
- import me from "./Components/Snackbar/Snackbar.js";
61
- import { useSpinner as he } from "./Components/Spinner/composables/useSpinner.js";
62
- import ge from "./Components/Spinner/Spinner.js";
63
- import { useSwitch as _e } from "./Components/Switch/composables/useSwitch.js";
64
- import ve from "./Components/Switch/Switch.js";
65
- import { TABS_INJECTION_KEY as ye } from "./Components/Tabs/tabsInjectionKey.js";
66
- import { useTab as be } from "./Components/Tab/composables/useTab.js";
67
- import xe from "./Components/Tab/Tab.js";
68
- import { useTabItem as Se } from "./Components/TabItem/composables/useTabItem.js";
69
- import Ce from "./Components/TabItem/TabItem.js";
70
- import { useTabList as we } from "./Components/TabList/composables/useTabList.js";
71
- import Te from "./Components/TabList/TabList.js";
72
- import { useTabPanel as Ee } from "./Components/TabPanel/composables/useTabPanel.js";
73
- import De from "./Components/TabPanel/TabPanel.js";
74
- import { useTabs as Oe } from "./Components/Tabs/composables/useTabs.js";
75
- import ke from "./Components/Tabs/Tabs.js";
76
- import { useTextarea as Ae } from "./Components/Textarea/composables/useTextarea.js";
77
- import je from "./Components/Textarea/Textarea.js";
78
- import { useTextField as Me } from "./Components/TextField/composables/useTextField.js";
79
- import Ne from "./Components/TextField/TextField.js";
80
- import { useTooltip as Pe } from "./Components/Tooltip/composables/useTooltip.js";
81
- import Fe from "./Components/Tooltip/Tooltip.js";
82
- import Ie from "./Provider/BridgeUIProvider.js";
83
- import { createBridgeUI as Le } from "./Provider/createBridgeUI.js";
84
- import { BRIDGE_UI_DEFAULT_GLOBAL as Re, SEMANTIC_ICON_NAMES as ze, cn as Be, mergeBridgeUIComponents as Ve, mergeBridgeUIGlobal as He, resolveBridgeUIOptions as Ue, resolveMessage as We } from "@bridge-ui/core";
85
- export { d as Alert, P as Autocomplete, F as AutocompleteOption, I as Avatar, Re as BRIDGE_UI_DEFAULT_GLOBAL, R as Badge, Ie as BridgeUIProvider, B as Button, H as Card, K as Checkbox, b as Chip, J as Divider, X as Drawer, W as FormControl, C as FormField, u as Icon, S as Label, Q as Link, E as List, D as ListItem, O as ListSection, N as Listbox, A as Menu, ee as Modal, ne as NumberField, ie as OtpField, oe as PasswordField, M as Progress, ce as Radio, ze as SEMANTIC_ICON_NAMES, le as Select, ue as SelectOption, fe as Skeleton, me as Snackbar, ge as Spinner, ve as Switch, ye as TABS_INJECTION_KEY, xe as Tab, Ce as TabItem, Te as TabList, De as TabPanel, ke as Tabs, Ne as TextField, je as Textarea, Fe as Tooltip, Be as cn, Le as createBridgeUI, p as findFirstEnabledOptionIndex, m as findLastEnabledOptionIndex, h as getListboxActiveDescendantId, g as getListboxOptionId, Ve as mergeBridgeUIComponents, He as mergeBridgeUIGlobal, _ as moveListboxHighlight, Ue as resolveBridgeUIOptions, We as resolveMessage, t as setI18nAdapterForTests, i as setIconAdapterForTests, l as useAlert, L as useBadge, o as useBreakpoint, e as useBridgeUI, s as useBridgeUIComponent, c as useBridgeUIMergedRegistryClasses, z as useButton, V as useCard, G as useCheckbox, y as useChip, q as useDivider, Y as useDrawer, U as useFormControl, f as useFormField, n as useI18nAdapter, a as useIconAdapter, x as useLabel, Z as useLink, T as useList, w as useListbox, v as useListboxNavigation, k as useMenu, $ as useModal, te as useNumberField, re as useOtpField, ae as usePasswordField, j as useProgress, se as useRadio, r as useResolveMessage, de as useSkeleton, pe as useSnackbar, he as useSpinner, _e as useSwitch, be as useTab, Se as useTabItem, we as useTabList, Ee as useTabPanel, Oe as useTabs, Me as useTextField, Ae as useTextarea, Pe as useTooltip };
31
+ import z from "./Components/BaseField/BaseField.js";
32
+ import { useBaseField as B } from "./Components/BaseField/composables/useBaseField.js";
33
+ import { useButton as V } from "./Components/Button/composables/useButton.js";
34
+ import H from "./Components/Button/Button.js";
35
+ import { useCard as U } from "./Components/Card/composables/useCard.js";
36
+ import W from "./Components/Card/Card.js";
37
+ import { useFormControl as G } from "./Components/FormControl/composables/useFormControl.js";
38
+ import K from "./Components/FormControl/FormControl.js";
39
+ import { useCheckbox as q } from "./Components/Checkbox/composables/useCheckbox.js";
40
+ import J from "./Components/Checkbox/Checkbox.js";
41
+ import { useDivider as Y } from "./Components/Divider/composables/useDivider.js";
42
+ import X from "./Components/Divider/Divider.js";
43
+ import { useDrawer as Z } from "./Components/Drawer/composables/useDrawer.js";
44
+ import Q from "./Components/Drawer/Drawer.js";
45
+ import { useLink as $ } from "./Components/Link/composables/useLink.js";
46
+ import ee from "./Components/Link/Link.js";
47
+ import { useModal as te } from "./Components/Modal/composables/useModal.js";
48
+ import ne from "./Components/Modal/Modal.js";
49
+ import { useNumberField as re } from "./Components/NumberField/composables/useNumberField.js";
50
+ import ie from "./Components/NumberField/NumberField.js";
51
+ import { useOtpField as ae } from "./Components/OtpField/composables/useOtpField.js";
52
+ import oe from "./Components/OtpField/OtpField.js";
53
+ import { usePasswordField as se } from "./Components/PasswordField/composables/usePasswordField.js";
54
+ import ce from "./Components/PasswordField/PasswordField.js";
55
+ import { useRadio as le } from "./Components/Radio/composables/useRadio.js";
56
+ import ue from "./Components/Radio/Radio.js";
57
+ import de from "./Components/Select/Select.js";
58
+ import fe from "./Components/Select/SelectOption.js";
59
+ import { useSkeleton as pe } from "./Components/Skeleton/composables/useSkeleton.js";
60
+ import me from "./Components/Skeleton/Skeleton.js";
61
+ import { useSlider as he } from "./Components/Slider/composables/useSlider.js";
62
+ import { useTooltip as ge } from "./Components/Tooltip/composables/useTooltip.js";
63
+ import _e from "./Components/Tooltip/Tooltip.js";
64
+ import ve from "./Components/Slider/Slider.js";
65
+ import { useSnackbar as ye } from "./Components/Snackbar/composables/useSnackbar.js";
66
+ import be from "./Components/Snackbar/Snackbar.js";
67
+ import { useSpinner as xe } from "./Components/Spinner/composables/useSpinner.js";
68
+ import Se from "./Components/Spinner/Spinner.js";
69
+ import { useSwitch as Ce } from "./Components/Switch/composables/useSwitch.js";
70
+ import we from "./Components/Switch/Switch.js";
71
+ import { TABS_INJECTION_KEY as Te } from "./Components/Tabs/tabsInjectionKey.js";
72
+ import { useTab as Ee } from "./Components/Tab/composables/useTab.js";
73
+ import De from "./Components/Tab/Tab.js";
74
+ import { useTabItem as Oe } from "./Components/TabItem/composables/useTabItem.js";
75
+ import ke from "./Components/TabItem/TabItem.js";
76
+ import { useTabList as Ae } from "./Components/TabList/composables/useTabList.js";
77
+ import je from "./Components/TabList/TabList.js";
78
+ import { useTabPanel as Me } from "./Components/TabPanel/composables/useTabPanel.js";
79
+ import Ne from "./Components/TabPanel/TabPanel.js";
80
+ import { useTabs as Pe } from "./Components/Tabs/composables/useTabs.js";
81
+ import Fe from "./Components/Tabs/Tabs.js";
82
+ import { useTextarea as Ie } from "./Components/Textarea/composables/useTextarea.js";
83
+ import Le from "./Components/Textarea/Textarea.js";
84
+ import { useTextField as Re } from "./Components/TextField/composables/useTextField.js";
85
+ import ze from "./Components/TextField/TextField.js";
86
+ import Be from "./Provider/BridgeUIProvider.js";
87
+ import { createBridgeUI as Ve } from "./Provider/createBridgeUI.js";
88
+ import { BRIDGE_UI_DEFAULT_GLOBAL as He, SEMANTIC_ICON_NAMES as Ue, cn as We, mergeBridgeUIComponents as Ge, mergeBridgeUIGlobal as Ke, resolveBridgeUIOptions as qe, resolveMessage as Je } from "@bridge-ui/core";
89
+ export { d as Alert, P as Autocomplete, F as AutocompleteOption, I as Avatar, He as BRIDGE_UI_DEFAULT_GLOBAL, R as Badge, z as BaseField, Be as BridgeUIProvider, H as Button, W as Card, J as Checkbox, b as Chip, X as Divider, Q as Drawer, K as FormControl, C as FormField, u as Icon, S as Label, ee as Link, E as List, D as ListItem, O as ListSection, N as Listbox, A as Menu, ne as Modal, ie as NumberField, oe as OtpField, ce as PasswordField, M as Progress, ue as Radio, Ue as SEMANTIC_ICON_NAMES, de as Select, fe as SelectOption, me as Skeleton, ve as Slider, be as Snackbar, Se as Spinner, we as Switch, Te as TABS_INJECTION_KEY, De as Tab, ke as TabItem, je as TabList, Ne as TabPanel, Fe as Tabs, ze as TextField, Le as Textarea, _e as Tooltip, We as cn, Ve as createBridgeUI, p as findFirstEnabledOptionIndex, m as findLastEnabledOptionIndex, h as getListboxActiveDescendantId, g as getListboxOptionId, Ge as mergeBridgeUIComponents, Ke as mergeBridgeUIGlobal, _ as moveListboxHighlight, qe as resolveBridgeUIOptions, Je as resolveMessage, t as setI18nAdapterForTests, i as setIconAdapterForTests, l as useAlert, L as useBadge, B as useBaseField, o as useBreakpoint, e as useBridgeUI, s as useBridgeUIComponent, c as useBridgeUIMergedRegistryClasses, V as useButton, U as useCard, q as useCheckbox, y as useChip, Y as useDivider, Z as useDrawer, G as useFormControl, f as useFormField, n as useI18nAdapter, a as useIconAdapter, x as useLabel, $ as useLink, T as useList, w as useListbox, v as useListboxNavigation, k as useMenu, te as useModal, re as useNumberField, ae as useOtpField, se as usePasswordField, j as useProgress, le as useRadio, r as useResolveMessage, pe as useSkeleton, he as useSlider, ye as useSnackbar, xe as useSpinner, Ce as useSwitch, Ee as useTab, Oe as useTabItem, Ae as useTabList, Me as useTabPanel, Pe as useTabs, Re as useTextField, Ie as useTextarea, ge as useTooltip };
package/docs/README.md ADDED
@@ -0,0 +1,56 @@
1
+ # @bridge-ui/vue — docs
2
+
3
+ Component reference and adapter samples for **Vue**. This folder ships with the npm package.
4
+
5
+ ## Components
6
+
7
+ - [Alert](./components/Alert.md)
8
+ - [Autocomplete](./components/Autocomplete.md)
9
+ - [Avatar](./components/Avatar.md)
10
+ - [Badge](./components/Badge.md)
11
+ - [BaseField](./components/BaseField.md)
12
+ - [BridgeUIProvider](./components/BridgeUIProvider.md)
13
+ - [Button](./components/Button.md)
14
+ - [Card](./components/Card.md)
15
+ - [Checkbox](./components/Checkbox.md)
16
+ - [Divider](./components/Divider.md)
17
+ - [Drawer](./components/Drawer.md)
18
+ - [FormControl](./components/FormControl.md)
19
+ - [FormField](./components/FormField.md)
20
+ - [I18n](./components/I18n.md)
21
+ - [Icon](./components/Icon.md)
22
+ - [Label](./components/Label.md)
23
+ - [Link](./components/Link.md)
24
+ - [List](./components/List.md)
25
+ - [Menu](./components/Menu.md)
26
+ - [Modal](./components/Modal.md)
27
+ - [NumberField](./components/NumberField.md)
28
+ - [OtpField](./components/OtpField.md)
29
+ - [PasswordField](./components/PasswordField.md)
30
+ - [Progress](./components/Progress.md)
31
+ - [Radio](./components/Radio.md)
32
+ - [Select](./components/Select.md)
33
+ - [Skeleton](./components/Skeleton.md)
34
+ - [Slider](./components/Slider.md)
35
+ - [Snackbar](./components/Snackbar.md)
36
+ - [Spinner](./components/Spinner.md)
37
+ - [Switch](./components/Switch.md)
38
+ - [Tabs](./components/Tabs.md)
39
+ - [TextField](./components/TextField.md)
40
+ - [Textarea](./components/Textarea.md)
41
+ - [Tooltip](./components/Tooltip.md)
42
+ - [useBreakpoint](./components/useBreakpoint.md)
43
+ - [useDialogAction](./components/useDialogAction.md)
44
+ - [useDrawerAction](./components/useDrawerAction.md)
45
+ - [useModalAction](./components/useModalAction.md)
46
+ - [useSnackbarAction](./components/useSnackbarAction.md)
47
+
48
+ ## Examples (adapters)
49
+
50
+ - [`examples/i18n-dictionary.ts`](./examples/i18n-dictionary.ts)
51
+ - [`examples/i18n-vue-i18n.ts`](./examples/i18n-vue-i18n.ts)
52
+ - [`examples/icon-fontawesome.ts`](./examples/icon-fontawesome.ts)
53
+ - [`examples/icon-heroicons.ts`](./examples/icon-heroicons.ts)
54
+ - [`examples/icon-lucide.ts`](./examples/icon-lucide.ts)
55
+ - [`examples/icon-phosphor.ts`](./examples/icon-phosphor.ts)
56
+ - [`examples/icon-tabler.ts`](./examples/icon-tabler.ts)
@@ -0,0 +1,96 @@
1
+ # Alert
2
+
3
+ Alert banner for feedback messages. Does not set `role` or `aria-live` by default — pass them when the message is urgent or dynamic.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { Alert } from "@bridge-ui/vue/Components/Alert";
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Usage
14
+
15
+ ```vue
16
+ <Alert color="primary" title="Heads up" />
17
+
18
+ <Alert color="error" title="Something went wrong">
19
+ Please try again in a few minutes.
20
+ </Alert>
21
+
22
+ <Alert title="Saved" color="success" variant="outline">
23
+ Your changes were saved successfully.
24
+ </Alert>
25
+ ```
26
+
27
+ ### Customization
28
+
29
+ ```vue
30
+ <Alert
31
+ rounded="2xl"
32
+ variant="flat"
33
+ color="primary"
34
+ title="Alert Message!"
35
+ :classes="{
36
+ title: 'text-2xl italic font-extrabold',
37
+ }"
38
+ />
39
+
40
+ <Alert color="primary" title="Alert Message!">
41
+ <template #action>
42
+ <Button size="sm" variant="flat" color="primary">Dismiss</Button>
43
+ </template>
44
+ </Alert>
45
+ ```
46
+
47
+ ### Footer slot
48
+
49
+ ```vue
50
+ <Alert variant="solid" color="secondary" title="Alert Message!">
51
+ <template #footer>
52
+ <Button size="sm" color="secondary">Cancel</Button>
53
+
54
+ <Button size="sm" color="secondary">Confirm</Button>
55
+ </template>
56
+ </Alert>
57
+ ```
58
+
59
+ ### customProps
60
+
61
+ ```vue
62
+ <Alert
63
+ color="info"
64
+ title="Forwarded part attributes"
65
+ :custom-props="{
66
+ title: { id: 'alert-title' },
67
+ icon: { 'aria-hidden': true },
68
+ body: { 'aria-labelledby': 'alert-title' },
69
+ root: { id: 'alert-root', role: 'status' },
70
+ }"
71
+ >
72
+ Inspect the DOM for ids on each part.
73
+ </Alert>
74
+ ```
75
+
76
+ ## Props
77
+
78
+ | Prop | Type | Default | Description |
79
+ | ------------- | -------------------- | --------- | --------------------------------------------------------------------------------------------------------------------- |
80
+ | `classes` | `AlertClasses` | — | The classes to apply to the alert. |
81
+ | `color` | `AlertColor` | "primary" | The color to apply to the alert. |
82
+ | `customProps` | `AlertCustomProps` | — | Extra props for internal parts (`icon`, `title`, `body`, etc.). Root HTML attributes stay on the component top level. |
83
+ | `icon` | `LucideIcon \| null` | — | The icon to apply to the alert. Use `null` to omit the prop icon. |
84
+ | `padding` | `AlertPadding` | "medium" | The padding to apply to the alert. |
85
+ | `rounded` | `AlertRounded` | "sm" | The roundedness of the alert. |
86
+ | `shadow` | `AlertShadow` | "sm" | The shadow to apply to the alert. |
87
+ | `title` | `string` | — | The title to apply to the alert. |
88
+ | `variant` | `AlertVariant` | "flat" | The variant of the alert. |
89
+
90
+ ## Accessibility
91
+
92
+ For urgent dynamic messages use `role="alert"` and optionally `aria-live="assertive"`. For non-interrupting updates use `role="status"` and `aria-live="polite"`.
93
+
94
+ ## Related components
95
+
96
+ Button, Icon, Snackbar
@@ -0,0 +1,198 @@
1
+ # Autocomplete
2
+
3
+ Combobox with single/multiple value, search, async data, and optional free-solo input.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { Autocomplete } from "@bridge-ui/vue/Components/Autocomplete";
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Usage
14
+
15
+ ```vue
16
+ <Autocomplete
17
+ label="Country"
18
+ :options="countries"
19
+ placeholder="Choose a country"
20
+ />
21
+
22
+ <Autocomplete
23
+ multiple
24
+ searchable
25
+ label="Frameworks"
26
+ v-model="selected"
27
+ :options="frameworks"
28
+ />
29
+
30
+ <Autocomplete
31
+ error
32
+ label="Country"
33
+ error-message="Please select a valid country."
34
+ />
35
+ ```
36
+
37
+ ### Searchable
38
+
39
+ ```vue
40
+ <Autocomplete
41
+ searchable
42
+ label="Country"
43
+ :options="countries"
44
+ placeholder="Type to filter..."
45
+ />
46
+ ```
47
+
48
+ ### Free solo
49
+
50
+ Enabled by default. Type a value that is not in `options` and commit with Enter, Tab, or by closing the menu. Set `:free-solo="false"` to require picking from the list.
51
+
52
+ ```vue
53
+ <Autocomplete label="Tag" :options="tags" placeholder="Pick or type a tag" />
54
+ ```
55
+
56
+ ### Async data
57
+
58
+ ```vue
59
+ <Autocomplete
60
+ label="City (async)"
61
+ placeholder="Type to search cities..."
62
+ :async-data="{
63
+ search: asyncSearch,
64
+ resolve: asyncResolveSelected,
65
+ }"
66
+ />
67
+ ```
68
+
69
+ ### Custom option slot
70
+
71
+ ```vue
72
+ <Autocomplete
73
+ label="Framework"
74
+ :options="frameworks"
75
+ placeholder="Custom rendered options"
76
+ >
77
+ <template #option="{ option, selected }">
78
+ <span class="flex w-full items-center justify-between gap-2">
79
+ <span class="truncate font-medium">{{ option.label }}</span>
80
+
81
+ <span v-if="selected" class="text-primary-600 shrink-0 text-xs font-semibold">
82
+ Selected
83
+ </span>
84
+ </span>
85
+ </template>
86
+ </Autocomplete>
87
+ ```
88
+
89
+ ### Grouped options
90
+
91
+ `options` may mix standalone options and section groups (`{ title, options, sticky? }`). Search filters within sections and drops empty ones.
92
+
93
+ ```vue
94
+ <Autocomplete
95
+ searchable
96
+ label="Produce"
97
+ :options="[
98
+ {
99
+ title: 'Fruits',
100
+ sticky: true,
101
+ options: [
102
+ { label: 'Apple', value: 'apple' },
103
+ { label: 'Banana', value: 'banana' },
104
+ ],
105
+ },
106
+ {
107
+ title: 'Vegetables',
108
+ options: [{ label: 'Carrot', value: 'carrot' }],
109
+ },
110
+ { label: 'Other', value: 'other' },
111
+ ]"
112
+ />
113
+ ```
114
+
115
+ ### Composed list (default slot)
116
+
117
+ Use the default slot with `ListSection` / `ListItem` to build the dropdown list manually. Set `value` on each `ListItem` so it registers as a selectable option. Declarative `AutocompleteOption` children still feed the `options` data path; only `ListSection` / `ListItem` (and similar) count as composed list content. The `#option` slot remains for customizing items rendered from the `options` prop.
118
+
119
+ ```vue
120
+ <Autocomplete label="Status" v-model="status">
121
+ <ListSection sticky title="Workflow" />
122
+ <ListItem value="open" primary="Open" />
123
+ <ListItem value="closed" primary="Closed" />
124
+ </Autocomplete>
125
+ ```
126
+
127
+ ### customProps
128
+
129
+ ```vue
130
+ <Autocomplete
131
+ label="Country"
132
+ :options="countries"
133
+ placeholder="Choose a country"
134
+ :custom-props="{
135
+ root: { id: 'country-field' },
136
+ input: { name: 'country', autocomplete: 'country' },
137
+ }"
138
+ />
139
+ ```
140
+
141
+ ## Props
142
+
143
+ ### Autocomplete-specific
144
+
145
+ | Prop | Type | Default | Description |
146
+ | ------------------- | --------------------- | ------------- | ------------------------------------------------------------------------------------------------------- |
147
+ | `asyncData` | `SelectAsyncData` | — | Remote data source. Implies `searchable`. |
148
+ | `clearable` | `boolean` | `true` | Whether the value can be cleared. |
149
+ | `defaultValue` | `SelectModel` | — | Initial value when uncontrolled. |
150
+ | `disableMaxHeight` | `boolean` | `false` | When true, the dropdown options list is not height-limited. Forwarded to the internal `Listbox`. |
151
+ | `emptyMessage` | `string` | "No options" | Message when the filtered list is empty. |
152
+ | `flipOptions` | `boolean` | `false` | Inverts the visual order of options. |
153
+ | `freeSolo` | `boolean` | `true` | Allows committing typed text that is not in `options` (Enter, Tab, or closing the menu). |
154
+ | `hideEmptyMessage` | `boolean` | `false` | Hides the empty-state message. |
155
+ | `loading` | `boolean` | — | External or async loading state. |
156
+ | `maxHeight` | `string` | "max-h-60" | Tailwind max-height class for the dropdown options area. Forwarded to the internal `Listbox`. |
157
+ | `minItemsForSearch` | `number` | 11 | Minimum option count before search UI is enabled. |
158
+ | `multiple` | `boolean` | `false` | Whether multiple values can be selected. |
159
+ | `optionDescription` | `string` | "description" | Key used to read the description from option objects. |
160
+ | `optionLabel` | `string` | "label" | Key used to read the label from option objects. |
161
+ | `options` | `ListboxOptionsInput` | — | Options to display. May include section groups (`{ title, options, sticky? }`) mixed with flat options. |
162
+ | `optionValue` | `string` | "value" | Key used to read the value from option objects. |
163
+ | `placeholder` | `string` | — | Placeholder shown when no value is selected. |
164
+ | `searchable` | `boolean` | `true` | Whether options can be filtered via the trigger input. |
165
+
166
+ ### v-model
167
+
168
+ | Prop / Event | Type | Default | Description |
169
+ | ------------------- | ------------------------------------------------------- | ------- | ---------------------------------------------------------------------------- |
170
+ | `modelValue` | `SelectValue \| SelectValue[] \| null` | — | Bound with `v-model`. |
171
+ | `update:modelValue` | `(value: SelectValue \| SelectValue[] \| null) => void` | — | Emitted when `v-model` should update. Listen with `v-on:update:model-value`. |
172
+
173
+ ### Inherited from FormField
174
+
175
+ See [FormField](./FormField.md) (building-block chrome). Field tokens live on `components.Autocomplete` (`size`, `color`, `rounded`, `variant`, …). Dropdown option tokens are nested under `components.Autocomplete.tokens.listbox`.
176
+
177
+ ## Slots
178
+
179
+ | Slot | Scope | Description |
180
+ | --------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
181
+ | `default` | — | Composed list content (`ListSection` / `ListItem` with `value`). Replaces mapped `options` in the listbox. |
182
+ | `option` | `{ option: SelectOption; selected: boolean }` | Custom option content when rendering from the `options` prop. |
183
+
184
+ ## Events
185
+
186
+ | Event | Payload | Description |
187
+ | --------------- | ------------------------ | ----------------------------------------------------- |
188
+ | `v-on:change` | `(value: SelectModel)` | Emitted when the selection changes. |
189
+ | `v-on:clear` | — | Emitted when the value is cleared. |
190
+ | `v-on:close` | — | Emitted when the menu closes. |
191
+ | `v-on:deselect` | `(option: SelectOption)` | Emitted when an option is deselected (multiple mode). |
192
+ | `v-on:open` | — | Emitted when the menu opens. |
193
+ | `v-on:search` | `(query: string)` | Emitted when the search query changes. |
194
+ | `v-on:select` | `(option: SelectOption)` | Emitted when an option is selected. |
195
+
196
+ ## Related components
197
+
198
+ Menu, List, ListItem, ListSection, FormField