@bridge-ui/vue 0.0.7 → 0.0.9

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 (401) 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 +48 -0
  6. package/ai/skills/bridge-ui-forms/SKILL.md +46 -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/Actions/BridgeUIHosts.vue_vue_type_script_setup_true_lang.js +1 -1
  12. package/dist/Actions/Dialog/BridgeDialogAction.vue_vue_type_script_setup_true_lang.js +1 -1
  13. package/dist/Actions/Dialog/BridgeDialogHost.vue_vue_type_script_setup_true_lang.js +1 -1
  14. package/dist/Actions/Dialog/BridgeDialogItem.vue_vue_type_script_setup_true_lang.js +5 -5
  15. package/dist/Actions/Dialog/ResolveBridgeDialogFooter.vue_vue_type_script_setup_true_lang.js +1 -1
  16. package/dist/Actions/Drawer/BridgeDrawerHost.vue_vue_type_script_setup_true_lang.js +1 -1
  17. package/dist/Actions/Modal/BridgeModalHost.vue_vue_type_script_setup_true_lang.js +1 -1
  18. package/dist/Actions/Snackbar/BridgeSnackbarAction.vue_vue_type_script_setup_true_lang.js +8 -8
  19. package/dist/Actions/Snackbar/BridgeSnackbarHost.vue_vue_type_script_setup_true_lang.js +5 -2
  20. package/dist/Actions/Snackbar/BridgeSnackbarItem.vue_vue_type_script_setup_true_lang.js +1 -1
  21. package/dist/Adapters/Date/index.d.ts +1 -0
  22. package/dist/Adapters/Date/index.js +2 -0
  23. package/dist/Adapters/Date/useDateAdapter.d.ts +17 -0
  24. package/dist/Adapters/Date/useDateAdapter.js +21 -0
  25. package/dist/Adapters/I18n/useI18nAdapter.d.ts +1 -1
  26. package/dist/Adapters/Icon/useIconAdapter.d.ts +1 -1
  27. package/dist/Adapters/index.d.ts +1 -0
  28. package/dist/Adapters/index.js +4 -3
  29. package/dist/Components/Alert/Alert.vue_vue_type_script_setup_true_lang.js +1 -1
  30. package/dist/Components/Alert/composables/useAlert.js +13 -1
  31. package/dist/Components/Autocomplete/Autocomplete.vue.d.ts +7 -5
  32. package/dist/Components/Autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +17 -10
  33. package/dist/Components/Autocomplete/AutocompleteOption.vue_vue_type_script_setup_true_lang.js +1 -1
  34. package/dist/Components/Autocomplete/autocomplete.types.d.ts +19 -1
  35. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +8 -2
  36. package/dist/Components/Autocomplete/composables/useAutocomplete.js +213 -181
  37. package/dist/Components/Avatar/Avatar.vue_vue_type_script_setup_true_lang.js +1 -1
  38. package/dist/Components/Avatar/composables/useAvatar.d.ts +1 -1
  39. package/dist/Components/Avatar/composables/useAvatar.js +13 -1
  40. package/dist/Components/Badge/Badge.vue_vue_type_script_setup_true_lang.js +1 -1
  41. package/dist/Components/Badge/composables/useBadge.js +10 -1
  42. package/dist/Components/BaseField/BaseField.js +5 -0
  43. package/dist/Components/BaseField/BaseField.vue.d.ts +15 -0
  44. package/dist/Components/BaseField/BaseField.vue_vue_type_script_setup_true_lang.js +41 -0
  45. package/dist/Components/BaseField/BaseFieldLabel.js +5 -0
  46. package/dist/Components/{OtpField/OtpFieldLabel.vue.d.ts → BaseField/BaseFieldLabel.vue.d.ts} +2 -2
  47. package/dist/Components/{OtpField/OtpFieldLabel.vue_vue_type_script_setup_true_lang.js → BaseField/BaseFieldLabel.vue_vue_type_script_setup_true_lang.js} +3 -3
  48. package/dist/Components/BaseField/baseField.types.d.ts +222 -0
  49. package/dist/Components/BaseField/composables/useBaseField.d.ts +55 -0
  50. package/dist/Components/BaseField/composables/useBaseField.js +134 -0
  51. package/dist/Components/BaseField/index.d.ts +4 -0
  52. package/dist/Components/BaseField/index.js +3 -0
  53. package/dist/Components/Button/Button.vue_vue_type_script_setup_true_lang.js +1 -1
  54. package/dist/Components/Button/composables/useButton.d.ts +1 -1
  55. package/dist/Components/Button/composables/useButton.js +10 -1
  56. package/dist/Components/Calendar/Calendar.js +5 -0
  57. package/dist/Components/Calendar/Calendar.vue.d.ts +21 -0
  58. package/dist/Components/Calendar/Calendar.vue_vue_type_script_setup_true_lang.js +139 -0
  59. package/dist/Components/Calendar/calendar.types.d.ts +287 -0
  60. package/dist/Components/Calendar/composables/useCalendar.d.ts +875 -0
  61. package/dist/Components/Calendar/composables/useCalendar.js +173 -0
  62. package/dist/Components/Calendar/index.d.ts +3 -0
  63. package/dist/Components/Calendar/index.js +3 -0
  64. package/dist/Components/CalendarDate/CalendarDate.js +5 -0
  65. package/dist/Components/CalendarDate/CalendarDate.vue.d.ts +19 -0
  66. package/dist/Components/CalendarDate/CalendarDate.vue_vue_type_script_setup_true_lang.js +56 -0
  67. package/dist/Components/CalendarDate/calendarDate.types.d.ts +257 -0
  68. package/dist/Components/CalendarDate/composables/useCalendarDate.d.ts +39 -0
  69. package/dist/Components/CalendarDate/composables/useCalendarDate.js +181 -0
  70. package/dist/Components/CalendarDate/index.d.ts +3 -0
  71. package/dist/Components/CalendarDate/index.js +3 -0
  72. package/dist/Components/CalendarMonth/CalendarMonth.js +5 -0
  73. package/dist/Components/CalendarMonth/CalendarMonth.vue.d.ts +8 -0
  74. package/dist/Components/CalendarMonth/CalendarMonth.vue_vue_type_script_setup_true_lang.js +32 -0
  75. package/dist/Components/CalendarMonth/calendarMonth.types.d.ts +135 -0
  76. package/dist/Components/CalendarMonth/composables/useCalendarMonth.d.ts +29 -0
  77. package/dist/Components/CalendarMonth/composables/useCalendarMonth.js +104 -0
  78. package/dist/Components/CalendarMonth/index.d.ts +3 -0
  79. package/dist/Components/CalendarMonth/index.js +3 -0
  80. package/dist/Components/CalendarRange/CalendarRange.js +5 -0
  81. package/dist/Components/CalendarRange/CalendarRange.vue.d.ts +19 -0
  82. package/dist/Components/CalendarRange/CalendarRange.vue_vue_type_script_setup_true_lang.js +187 -0
  83. package/dist/Components/CalendarRange/calendarRange.types.d.ts +333 -0
  84. package/dist/Components/CalendarRange/composables/useCalendarRange.d.ts +1891 -0
  85. package/dist/Components/CalendarRange/composables/useCalendarRange.js +253 -0
  86. package/dist/Components/CalendarRange/index.d.ts +3 -0
  87. package/dist/Components/CalendarRange/index.js +3 -0
  88. package/dist/Components/CalendarYear/CalendarYear.js +5 -0
  89. package/dist/Components/CalendarYear/CalendarYear.vue.d.ts +8 -0
  90. package/dist/Components/CalendarYear/CalendarYear.vue_vue_type_script_setup_true_lang.js +34 -0
  91. package/dist/Components/CalendarYear/calendarYear.types.d.ts +141 -0
  92. package/dist/Components/CalendarYear/composables/useCalendarYear.d.ts +30 -0
  93. package/dist/Components/CalendarYear/composables/useCalendarYear.js +108 -0
  94. package/dist/Components/CalendarYear/index.d.ts +3 -0
  95. package/dist/Components/CalendarYear/index.js +3 -0
  96. package/dist/Components/Card/Card.vue_vue_type_script_setup_true_lang.js +1 -1
  97. package/dist/Components/Card/composables/useCard.js +14 -3
  98. package/dist/Components/Checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +2 -2
  99. package/dist/Components/Checkbox/composables/useCheckbox.d.ts +1 -1
  100. package/dist/Components/Checkbox/composables/useCheckbox.js +11 -2
  101. package/dist/Components/Chip/Chip.vue.d.ts +1 -1
  102. package/dist/Components/Chip/Chip.vue_vue_type_script_setup_true_lang.js +1 -1
  103. package/dist/Components/Chip/composables/useChip.d.ts +1 -1
  104. package/dist/Components/Chip/composables/useChip.js +7 -4
  105. package/dist/Components/DateField/DateField.js +5 -0
  106. package/dist/Components/DateField/DateField.vue.d.ts +32 -0
  107. package/dist/Components/DateField/DateField.vue_vue_type_script_setup_true_lang.js +158 -0
  108. package/dist/Components/DateField/composables/useDateField.d.ts +725 -0
  109. package/dist/Components/DateField/composables/useDateField.js +169 -0
  110. package/dist/Components/DateField/dateField.types.d.ts +206 -0
  111. package/dist/Components/DateField/index.d.ts +3 -0
  112. package/dist/Components/DateField/index.js +3 -0
  113. package/dist/Components/DatePicker/DatePicker.js +5 -0
  114. package/dist/Components/DatePicker/DatePicker.vue.d.ts +17 -0
  115. package/dist/Components/DatePicker/DatePicker.vue_vue_type_script_setup_true_lang.js +104 -0
  116. package/dist/Components/DatePicker/composables/useDatePicker.d.ts +28 -0
  117. package/dist/Components/DatePicker/composables/useDatePicker.js +91 -0
  118. package/dist/Components/DatePicker/datePicker.types.d.ts +233 -0
  119. package/dist/Components/DatePicker/index.d.ts +3 -0
  120. package/dist/Components/DatePicker/index.js +3 -0
  121. package/dist/Components/DateRangeField/DateRangeField.js +5 -0
  122. package/dist/Components/DateRangeField/DateRangeField.vue.d.ts +32 -0
  123. package/dist/Components/DateRangeField/DateRangeField.vue_vue_type_script_setup_true_lang.js +152 -0
  124. package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +723 -0
  125. package/dist/Components/DateRangeField/composables/useDateRangeField.js +143 -0
  126. package/dist/Components/DateRangeField/dateRangeField.types.d.ts +195 -0
  127. package/dist/Components/DateRangeField/index.d.ts +3 -0
  128. package/dist/Components/DateRangeField/index.js +3 -0
  129. package/dist/Components/DateRangePicker/DateRangePicker.js +5 -0
  130. package/dist/Components/DateRangePicker/DateRangePicker.vue.d.ts +17 -0
  131. package/dist/Components/DateRangePicker/DateRangePicker.vue_vue_type_script_setup_true_lang.js +99 -0
  132. package/dist/Components/DateRangePicker/composables/useDateRangePicker.d.ts +28 -0
  133. package/dist/Components/DateRangePicker/composables/useDateRangePicker.js +89 -0
  134. package/dist/Components/DateRangePicker/dateRangePicker.types.d.ts +218 -0
  135. package/dist/Components/DateRangePicker/index.d.ts +3 -0
  136. package/dist/Components/DateRangePicker/index.js +3 -0
  137. package/dist/Components/DateTimeField/DateTimeField.js +5 -0
  138. package/dist/Components/DateTimeField/DateTimeField.vue.d.ts +31 -0
  139. package/dist/Components/DateTimeField/DateTimeField.vue_vue_type_script_setup_true_lang.js +141 -0
  140. package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +724 -0
  141. package/dist/Components/DateTimeField/composables/useDateTimeField.js +151 -0
  142. package/dist/Components/DateTimeField/dateTimeField.types.d.ts +230 -0
  143. package/dist/Components/DateTimeField/index.d.ts +3 -0
  144. package/dist/Components/DateTimeField/index.js +3 -0
  145. package/dist/Components/DateTimePicker/DateTimePicker.js +5 -0
  146. package/dist/Components/DateTimePicker/DateTimePicker.vue.d.ts +17 -0
  147. package/dist/Components/DateTimePicker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +156 -0
  148. package/dist/Components/DateTimePicker/composables/useDateTimePicker.d.ts +46 -0
  149. package/dist/Components/DateTimePicker/composables/useDateTimePicker.js +98 -0
  150. package/dist/Components/DateTimePicker/dateTimePicker.types.d.ts +272 -0
  151. package/dist/Components/DateTimePicker/index.d.ts +3 -0
  152. package/dist/Components/DateTimePicker/index.js +3 -0
  153. package/dist/Components/DateTimeRangeField/DateTimeRangeField.js +5 -0
  154. package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue.d.ts +32 -0
  155. package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue_vue_type_script_setup_true_lang.js +141 -0
  156. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +726 -0
  157. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.js +155 -0
  158. package/dist/Components/DateTimeRangeField/dateTimeRangeField.types.d.ts +231 -0
  159. package/dist/Components/DateTimeRangeField/index.d.ts +3 -0
  160. package/dist/Components/DateTimeRangeField/index.js +3 -0
  161. package/dist/Components/DateTimeRangePicker/DateTimeRangePicker.js +5 -0
  162. package/dist/Components/DateTimeRangePicker/DateTimeRangePicker.vue.d.ts +17 -0
  163. package/dist/Components/DateTimeRangePicker/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js +209 -0
  164. package/dist/Components/DateTimeRangePicker/composables/useDateTimeRangePicker.d.ts +49 -0
  165. package/dist/Components/DateTimeRangePicker/composables/useDateTimeRangePicker.js +112 -0
  166. package/dist/Components/DateTimeRangePicker/dateTimeRangePicker.types.d.ts +272 -0
  167. package/dist/Components/DateTimeRangePicker/index.d.ts +3 -0
  168. package/dist/Components/DateTimeRangePicker/index.js +3 -0
  169. package/dist/Components/Divider/Divider.vue_vue_type_script_setup_true_lang.js +1 -1
  170. package/dist/Components/Divider/composables/useDivider.js +7 -1
  171. package/dist/Components/Drawer/Drawer.vue.d.ts +8 -8
  172. package/dist/Components/Drawer/Drawer.vue_vue_type_script_setup_true_lang.js +11 -11
  173. package/dist/Components/Drawer/composables/useDrawer.d.ts +1 -1
  174. package/dist/Components/Drawer/composables/useDrawer.js +11 -2
  175. package/dist/Components/FieldOverlay/FieldOverlay.js +5 -0
  176. package/dist/Components/FieldOverlay/FieldOverlay.vue.d.ts +26 -0
  177. package/dist/Components/FieldOverlay/FieldOverlay.vue_vue_type_script_setup_true_lang.js +63 -0
  178. package/dist/Components/FieldOverlay/composables/useFieldOverlay.d.ts +15 -0
  179. package/dist/Components/FieldOverlay/composables/useFieldOverlay.js +36 -0
  180. package/dist/Components/FieldOverlay/fieldOverlay.types.d.ts +63 -0
  181. package/dist/Components/FieldOverlay/index.d.ts +4 -0
  182. package/dist/Components/FieldOverlay/index.js +3 -0
  183. package/dist/Components/FormControl/FormControl.vue_vue_type_script_setup_true_lang.js +2 -2
  184. package/dist/Components/FormControl/FormControlLabel.vue_vue_type_script_setup_true_lang.js +1 -1
  185. package/dist/Components/FormControl/composables/useFormControl.d.ts +11 -2
  186. package/dist/Components/FormControl/composables/useFormControl.js +58 -54
  187. package/dist/Components/FormControl/index.d.ts +1 -1
  188. package/dist/Components/FormField/FilledFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  189. package/dist/Components/FormField/FormField.vue_vue_type_script_setup_true_lang.js +1 -1
  190. package/dist/Components/FormField/FormFieldLabel.vue_vue_type_script_setup_true_lang.js +1 -1
  191. package/dist/Components/FormField/NotchedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  192. package/dist/Components/FormField/OutlinedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  193. package/dist/Components/FormField/StackedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  194. package/dist/Components/FormField/UnderlinedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  195. package/dist/Components/FormField/composables/useFormField.d.ts +5 -1
  196. package/dist/Components/FormField/composables/useFormField.js +20 -8
  197. package/dist/Components/Icon/Icon.vue_vue_type_script_setup_true_lang.js +1 -1
  198. package/dist/Components/Icon/composables/useIcon.js +4 -1
  199. package/dist/Components/Label/Label.vue_vue_type_script_setup_true_lang.js +1 -1
  200. package/dist/Components/Label/composables/useLabel.js +5 -2
  201. package/dist/Components/Link/Link.vue_vue_type_script_setup_true_lang.js +1 -1
  202. package/dist/Components/Link/composables/useLink.js +10 -1
  203. package/dist/Components/List/List.vue_vue_type_script_setup_true_lang.js +1 -1
  204. package/dist/Components/List/composables/useList.js +4 -4
  205. package/dist/Components/ListItem/ListItem.vue.d.ts +1 -1
  206. package/dist/Components/ListItem/ListItem.vue_vue_type_script_setup_true_lang.js +1 -1
  207. package/dist/Components/ListItem/composables/useListItem.d.ts +1 -1
  208. package/dist/Components/ListSection/ListSection.vue_vue_type_script_setup_true_lang.js +4 -4
  209. package/dist/Components/Listbox/Listbox.vue.d.ts +7 -2
  210. package/dist/Components/Listbox/Listbox.vue_vue_type_script_setup_true_lang.js +93 -71
  211. package/dist/Components/Listbox/composables/useListbox.d.ts +18 -2
  212. package/dist/Components/Listbox/composables/useListbox.js +59 -37
  213. package/dist/Components/Listbox/index.d.ts +1 -0
  214. package/dist/Components/Listbox/listbox.types.d.ts +74 -4
  215. package/dist/Components/Menu/Menu.vue.d.ts +6 -6
  216. package/dist/Components/Menu/Menu.vue_vue_type_script_setup_true_lang.js +12 -12
  217. package/dist/Components/Menu/composables/useMenu.d.ts +1 -1
  218. package/dist/Components/Menu/composables/useMenu.js +9 -5
  219. package/dist/Components/Modal/Modal.vue.d.ts +8 -8
  220. package/dist/Components/Modal/Modal.vue_vue_type_script_setup_true_lang.js +11 -11
  221. package/dist/Components/Modal/composables/useModal.d.ts +1 -1
  222. package/dist/Components/Modal/composables/useModal.js +11 -2
  223. package/dist/Components/NumberField/NumberField.vue.d.ts +2 -2
  224. package/dist/Components/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js +3 -3
  225. package/dist/Components/NumberField/composables/useNumberField.d.ts +2 -2
  226. package/dist/Components/NumberField/composables/useNumberField.js +4 -1
  227. package/dist/Components/OtpField/OtpField.vue.d.ts +3 -3
  228. package/dist/Components/OtpField/OtpField.vue_vue_type_script_setup_true_lang.js +34 -52
  229. package/dist/Components/OtpField/composables/useOtpField.d.ts +40 -213
  230. package/dist/Components/OtpField/composables/useOtpField.js +105 -151
  231. package/dist/Components/OtpField/otpField.types.d.ts +10 -180
  232. package/dist/Components/PasswordField/PasswordField.vue_vue_type_script_setup_true_lang.js +3 -3
  233. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +2 -2
  234. package/dist/Components/PasswordField/composables/usePasswordField.js +4 -1
  235. package/dist/Components/Progress/Progress.vue_vue_type_script_setup_true_lang.js +1 -1
  236. package/dist/Components/Progress/composables/useProgress.js +13 -1
  237. package/dist/Components/Radio/Radio.vue_vue_type_script_setup_true_lang.js +11 -11
  238. package/dist/Components/Radio/composables/useRadio.d.ts +1 -1
  239. package/dist/Components/Radio/composables/useRadio.js +11 -2
  240. package/dist/Components/Select/Select.vue.d.ts +6 -4
  241. package/dist/Components/Select/Select.vue_vue_type_script_setup_true_lang.js +17 -10
  242. package/dist/Components/Select/SelectOption.vue_vue_type_script_setup_true_lang.js +1 -1
  243. package/dist/Components/Select/composables/useSelect.d.ts +8 -2
  244. package/dist/Components/Select/composables/useSelect.js +226 -194
  245. package/dist/Components/Select/select.types.d.ts +19 -1
  246. package/dist/Components/Skeleton/Skeleton.vue_vue_type_script_setup_true_lang.js +1 -1
  247. package/dist/Components/Skeleton/composables/useSkeleton.js +5 -2
  248. package/dist/Components/Slider/Slider.js +5 -0
  249. package/dist/Components/Slider/Slider.vue.d.ts +25 -0
  250. package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +113 -0
  251. package/dist/Components/Slider/composables/useSlider.d.ts +485 -0
  252. package/dist/Components/Slider/composables/useSlider.js +292 -0
  253. package/dist/Components/Slider/index.d.ts +4 -0
  254. package/dist/Components/Slider/index.js +3 -0
  255. package/dist/Components/Slider/slider.types.d.ts +177 -0
  256. package/dist/Components/Snackbar/Snackbar.vue.d.ts +2 -2
  257. package/dist/Components/Snackbar/Snackbar.vue_vue_type_script_setup_true_lang.js +42 -42
  258. package/dist/Components/Snackbar/composables/useSnackbar.js +16 -3
  259. package/dist/Components/Spinner/Spinner.vue_vue_type_script_setup_true_lang.js +1 -1
  260. package/dist/Components/Spinner/composables/useSpinner.js +10 -1
  261. package/dist/Components/Switch/Switch.vue_vue_type_script_setup_true_lang.js +12 -12
  262. package/dist/Components/Switch/composables/useSwitch.d.ts +1 -1
  263. package/dist/Components/Switch/composables/useSwitch.js +11 -2
  264. package/dist/Components/Tab/Tab.vue_vue_type_script_setup_true_lang.js +1 -1
  265. package/dist/Components/TabItem/TabItem.vue_vue_type_script_setup_true_lang.js +3 -2
  266. package/dist/Components/TabList/TabList.vue_vue_type_script_setup_true_lang.js +1 -1
  267. package/dist/Components/TabPanel/TabPanel.vue_vue_type_script_setup_true_lang.js +1 -1
  268. package/dist/Components/Tabs/Tabs.vue.d.ts +2 -2
  269. package/dist/Components/Tabs/Tabs.vue_vue_type_script_setup_true_lang.js +8 -8
  270. package/dist/Components/TextField/TextField.vue_vue_type_script_setup_true_lang.js +2 -2
  271. package/dist/Components/TextField/composables/useTextField.d.ts +2 -2
  272. package/dist/Components/TextField/composables/useTextField.js +1 -1
  273. package/dist/Components/Textarea/Textarea.vue_vue_type_script_setup_true_lang.js +2 -2
  274. package/dist/Components/Textarea/composables/useTextarea.d.ts +2 -2
  275. package/dist/Components/Textarea/composables/useTextarea.js +5 -1
  276. package/dist/Components/TimeField/TimeField.js +5 -0
  277. package/dist/Components/TimeField/TimeField.vue.d.ts +32 -0
  278. package/dist/Components/TimeField/TimeField.vue_vue_type_script_setup_true_lang.js +134 -0
  279. package/dist/Components/TimeField/composables/useTimeField.d.ts +733 -0
  280. package/dist/Components/TimeField/composables/useTimeField.js +147 -0
  281. package/dist/Components/TimeField/index.d.ts +3 -0
  282. package/dist/Components/TimeField/index.js +3 -0
  283. package/dist/Components/TimeField/timeField.types.d.ts +155 -0
  284. package/dist/Components/TimePanel/TimePanel.js +5 -0
  285. package/dist/Components/TimePanel/TimePanel.vue.d.ts +8 -0
  286. package/dist/Components/TimePanel/TimePanel.vue_vue_type_script_setup_true_lang.js +62 -0
  287. package/dist/Components/TimePanel/composables/useTimePanel.d.ts +58 -0
  288. package/dist/Components/TimePanel/composables/useTimePanel.js +180 -0
  289. package/dist/Components/TimePanel/index.d.ts +3 -0
  290. package/dist/Components/TimePanel/index.js +3 -0
  291. package/dist/Components/TimePanel/timePanel.types.d.ts +147 -0
  292. package/dist/Components/TimePicker/TimePicker.js +5 -0
  293. package/dist/Components/TimePicker/TimePicker.vue.d.ts +10 -0
  294. package/dist/Components/TimePicker/TimePicker.vue_vue_type_script_setup_true_lang.js +82 -0
  295. package/dist/Components/TimePicker/composables/useTimePicker.d.ts +31 -0
  296. package/dist/Components/TimePicker/composables/useTimePicker.js +84 -0
  297. package/dist/Components/TimePicker/index.d.ts +3 -0
  298. package/dist/Components/TimePicker/index.js +3 -0
  299. package/dist/Components/TimePicker/timePicker.types.d.ts +176 -0
  300. package/dist/Components/TimeRangeField/TimeRangeField.js +5 -0
  301. package/dist/Components/TimeRangeField/TimeRangeField.vue.d.ts +32 -0
  302. package/dist/Components/TimeRangeField/TimeRangeField.vue_vue_type_script_setup_true_lang.js +134 -0
  303. package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +725 -0
  304. package/dist/Components/TimeRangeField/composables/useTimeRangeField.js +143 -0
  305. package/dist/Components/TimeRangeField/index.d.ts +3 -0
  306. package/dist/Components/TimeRangeField/index.js +3 -0
  307. package/dist/Components/TimeRangeField/timeRangeField.types.d.ts +155 -0
  308. package/dist/Components/TimeRangePicker/TimeRangePicker.js +5 -0
  309. package/dist/Components/TimeRangePicker/TimeRangePicker.vue.d.ts +10 -0
  310. package/dist/Components/TimeRangePicker/TimeRangePicker.vue_vue_type_script_setup_true_lang.js +116 -0
  311. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.d.ts +40 -0
  312. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.js +123 -0
  313. package/dist/Components/TimeRangePicker/index.d.ts +3 -0
  314. package/dist/Components/TimeRangePicker/index.js +3 -0
  315. package/dist/Components/TimeRangePicker/timeRangePicker.types.d.ts +232 -0
  316. package/dist/Components/Tooltip/Tooltip.vue.d.ts +2 -2
  317. package/dist/Components/Tooltip/Tooltip.vue_vue_type_script_setup_true_lang.js +14 -14
  318. package/dist/Components/Tooltip/composables/useTooltip.d.ts +1 -1
  319. package/dist/Components/Tooltip/composables/useTooltip.js +10 -1
  320. package/dist/Provider/BridgeUIProvider.vue_vue_type_script_setup_true_lang.js +4 -4
  321. package/dist/Provider/createBridgeUI.js +3 -3
  322. package/dist/Utils/index.d.ts +3 -3
  323. package/dist/Utils/index.js +5 -2
  324. package/dist/Utils/slotOrProp.js +1 -1
  325. package/dist/augments.d.ts +29 -17
  326. package/dist/index.d.ts +44 -1
  327. package/dist/index.js +127 -84
  328. package/dist/theme.css +8 -8
  329. package/docs/README.md +74 -0
  330. package/docs/components/Alert.md +96 -0
  331. package/docs/components/Autocomplete.md +212 -0
  332. package/docs/components/Avatar.md +60 -0
  333. package/docs/components/Badge.md +47 -0
  334. package/docs/components/BaseField.md +126 -0
  335. package/docs/components/BridgeUIProvider.md +168 -0
  336. package/docs/components/Button.md +93 -0
  337. package/docs/components/Calendar.md +96 -0
  338. package/docs/components/CalendarDate.md +71 -0
  339. package/docs/components/CalendarMonth.md +52 -0
  340. package/docs/components/CalendarRange.md +83 -0
  341. package/docs/components/CalendarYear.md +53 -0
  342. package/docs/components/Card.md +287 -0
  343. package/docs/components/Checkbox.md +87 -0
  344. package/docs/components/DateField.md +103 -0
  345. package/docs/components/DatePicker.md +80 -0
  346. package/docs/components/DateRangeField.md +88 -0
  347. package/docs/components/DateRangePicker.md +70 -0
  348. package/docs/components/DateTimeField.md +92 -0
  349. package/docs/components/DateTimePicker.md +74 -0
  350. package/docs/components/DateTimeRangeField.md +90 -0
  351. package/docs/components/DateTimeRangePicker.md +74 -0
  352. package/docs/components/Divider.md +56 -0
  353. package/docs/components/Drawer.md +137 -0
  354. package/docs/components/FieldOverlay.md +91 -0
  355. package/docs/components/FormControl.md +66 -0
  356. package/docs/components/FormField.md +71 -0
  357. package/docs/components/I18n.md +125 -0
  358. package/docs/components/Icon.md +88 -0
  359. package/docs/components/Label.md +31 -0
  360. package/docs/components/Link.md +71 -0
  361. package/docs/components/List.md +167 -0
  362. package/docs/components/Menu.md +97 -0
  363. package/docs/components/Modal.md +154 -0
  364. package/docs/components/NumberField.md +80 -0
  365. package/docs/components/OtpField.md +133 -0
  366. package/docs/components/PasswordField.md +82 -0
  367. package/docs/components/Progress.md +68 -0
  368. package/docs/components/Radio.md +91 -0
  369. package/docs/components/Select.md +195 -0
  370. package/docs/components/Skeleton.md +38 -0
  371. package/docs/components/Slider.md +140 -0
  372. package/docs/components/Snackbar.md +99 -0
  373. package/docs/components/Spinner.md +61 -0
  374. package/docs/components/Switch.md +72 -0
  375. package/docs/components/Tabs.md +207 -0
  376. package/docs/components/TextField.md +72 -0
  377. package/docs/components/Textarea.md +80 -0
  378. package/docs/components/TimeField.md +81 -0
  379. package/docs/components/TimePanel.md +56 -0
  380. package/docs/components/TimePicker.md +61 -0
  381. package/docs/components/TimeRangeField.md +79 -0
  382. package/docs/components/TimeRangePicker.md +64 -0
  383. package/docs/components/Tooltip.md +125 -0
  384. package/docs/components/useBreakpoint.md +100 -0
  385. package/docs/components/useDialogAction.md +97 -0
  386. package/docs/components/useDrawerAction.md +75 -0
  387. package/docs/components/useModalAction.md +75 -0
  388. package/docs/components/useSnackbarAction.md +85 -0
  389. package/docs/examples/date-date-fns.ts +286 -0
  390. package/docs/examples/date-dayjs.ts +327 -0
  391. package/docs/examples/date-luxon.ts +332 -0
  392. package/docs/examples/date-moment.ts +334 -0
  393. package/docs/examples/i18n-dictionary.ts +48 -0
  394. package/docs/examples/i18n-vue-i18n.ts +34 -0
  395. package/docs/examples/icon-fontawesome.ts +120 -0
  396. package/docs/examples/icon-heroicons.ts +65 -0
  397. package/docs/examples/icon-lucide.ts +65 -0
  398. package/docs/examples/icon-phosphor.ts +65 -0
  399. package/docs/examples/icon-tabler.ts +65 -0
  400. package/package.json +28 -15
  401. package/dist/Components/OtpField/OtpFieldLabel.js +0 -5
@@ -0,0 +1,167 @@
1
+ # List
2
+
3
+ Vertical list container. Use with `ListItem` and `ListSection`.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { List } from "@bridge-ui/vue/Components/List";
9
+ import { ListItem } from "@bridge-ui/vue/Components/ListItem";
10
+ import { ListSection } from "@bridge-ui/vue/Components/ListSection";
11
+ ```
12
+
13
+ ## Examples
14
+
15
+ ### Usage
16
+
17
+ ```vue
18
+ <List>
19
+ <ListItem primary="Inbox" secondary="12 messages" />
20
+ <ListItem primary="Drafts" secondary="3 items" />
21
+ <ListItem primary="Sent" />
22
+ </List>
23
+ ```
24
+
25
+ ### Sections
26
+
27
+ ```vue
28
+ <List>
29
+ <ListSection title="Folders" />
30
+ <ListItem primary="Inbox" />
31
+ <ListItem primary="Drafts" />
32
+ <ListSection title="Labels" />
33
+ <ListItem primary="Important" />
34
+ </List>
35
+ ```
36
+
37
+ ### Interactive
38
+
39
+ ```vue
40
+ <List role="menu">
41
+ <ListItem
42
+ interactive
43
+ role="menuitem"
44
+ primary="Profile"
45
+ v-on:click="selected = 'profile'"
46
+ :selected="selected === 'profile'"
47
+ />
48
+ <ListItem
49
+ interactive
50
+ role="menuitem"
51
+ primary="Settings"
52
+ v-on:click="selected = 'settings'"
53
+ :selected="selected === 'settings'"
54
+ />
55
+ </List>
56
+ ```
57
+
58
+ ### Start and end slots
59
+
60
+ ```vue
61
+ <ListItem interactive primary="Inbox" secondary="12 unread messages">
62
+ <template #start>
63
+ <Mail class="text-secondary-500 size-5" />
64
+ </template>
65
+
66
+ <template #end>
67
+ <span class="text-secondary-400 text-xs">12</span>
68
+ </template>
69
+ </ListItem>
70
+ ```
71
+
72
+ ### Selected icon
73
+
74
+ Selected rows show a check icon by default. Customize it with `selectedIcon` on `ListItem`, or pass `null` to hide it. Providing the `#end` slot replaces the selected icon.
75
+
76
+ ```vue
77
+ <List>
78
+ <ListItem selected interactive primary="Inbox" />
79
+ <ListItem selected interactive primary="Starred" :selected-icon="Star" />
80
+ <ListItem selected interactive primary="No icon" :selected-icon="null" />
81
+ </List>
82
+ ```
83
+
84
+ ### Disabled and divider
85
+
86
+ ```vue
87
+ <ListItem interactive primary="Available action" />
88
+ <ListItem disabled interactive primary="Disabled action" />
89
+ <ListItem divider primary="With divider" />
90
+ ```
91
+
92
+ ### Nested
93
+
94
+ ```vue
95
+ <List>
96
+ <ListItem primary="Documents" />
97
+ <List nested>
98
+ <ListItem primary="Reports" />
99
+ <ListItem primary="Invoices" />
100
+ </List>
101
+ <ListItem primary="Settings" />
102
+ </List>
103
+ ```
104
+
105
+ ### Sticky section
106
+
107
+ With the default `as="li"`, sticky styles apply on the section root. The list (or a parent) needs a scroll container with a constrained height.
108
+
109
+ ```vue
110
+ <div class="max-h-48 overflow-y-auto">
111
+ <List>
112
+ <ListSection sticky title="Section A" />
113
+ <ListItem primary="Item A1" />
114
+ <ListSection sticky title="Section B" />
115
+ <ListItem primary="Item B1" />
116
+ </List>
117
+ </div>
118
+ ```
119
+
120
+ ### Inset section
121
+
122
+ ```vue
123
+ <ListSection inset title="With icons below" />
124
+ ```
125
+
126
+ ## Props (`List`)
127
+
128
+ | Prop | Type | Default | Description |
129
+ | ------------- | ----------------------- | ------- | ---------------------------------------------------------------------------------- |
130
+ | `as` | `"nav" \| "ol" \| "ul"` | "ul" | The element to render as. |
131
+ | `classes` | `ListClasses` | — | The classes to apply to the list. |
132
+ | `customProps` | `ListCustomProps` | — | Props forwarded to each list part. |
133
+ | `dense` | `boolean` | `false` | Compact vertical spacing on items (`ListItem` / `ListSection`), not the list root. |
134
+ | `nested` | `boolean` | `false` | When true, indents the list for nested navigation/submenus. |
135
+
136
+ ## Props (`ListItem`)
137
+
138
+ | Prop | Type | Default | Description |
139
+ | -------------- | ------------------------------------ | -------- | ---------------------------------------------------------------------------------- |
140
+ | `as` | `"div" \| "li"` | "li" | The element to render as. |
141
+ | `classes` | `ListItemClasses` | — | The classes to apply to the item. |
142
+ | `customProps` | `ListItemCustomProps` | — | Props forwarded to each item part. |
143
+ | `dense` | `boolean` | — | Compact vertical padding. Inherits `dense` from parent `List` when omitted. |
144
+ | `disabled` | `boolean` | `false` | When true, the item is not interactive and appears muted. |
145
+ | `divider` | `boolean` | `false` | When true, renders a bottom divider on the item. |
146
+ | `interactive` | `boolean` | `false` | When true, applies hover/focus styles and `tabIndex={0}` on the inner wrapper. |
147
+ | `primary` | `string` | — | Primary label text. |
148
+ | `role` | `"button" \| "menuitem" \| "option"` | "button" | ARIA role for the interactive wrapper. |
149
+ | `secondary` | `string` | — | Secondary/description text below the primary line. |
150
+ | `selected` | `boolean` | `false` | When true, highlights the item as selected. |
151
+ | `selectedIcon` | `null \| LucideIcon` | `Check` | Icon shown when `selected` is true. Use `null` to hide it. Replaced by `#end`. |
152
+ | `value` | `ListboxValue` | — | When set inside a `Select` / `Listbox`, registers this row as a selectable option. |
153
+
154
+ ## Props (`ListSection`)
155
+
156
+ | Prop | Type | Default | Description |
157
+ | ------------- | ------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
158
+ | `as` | `"div" \| "li"` | "li" | The element to render as. |
159
+ | `classes` | `ListSectionClasses` | — | The classes to apply to the section. |
160
+ | `customProps` | `ListSectionCustomProps` | — | Props forwarded to each section part. |
161
+ | `inset` | `boolean` | `false` | When true, adds left padding to align with items that have leading icons. |
162
+ | `sticky` | `boolean` | `false` | When true, sticks the heading while scrolling. On `as="li"` (default), sticky + opaque background apply to the root; on `as="div"`, they apply to the title. |
163
+ | `title` | `string` | — | Section label text. |
164
+
165
+ ## Related components
166
+
167
+ Menu, Select
@@ -0,0 +1,97 @@
1
+ # Menu
2
+
3
+ Anchored floating panel for actions and dropdowns. Control with `v-model` / `show`.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { Menu } from "@bridge-ui/vue/Components/Menu";
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Usage
14
+
15
+ ```vue
16
+ <Menu v-model="open">
17
+ <template #trigger>
18
+ <Button v-on:click="open = true">Open menu</Button>
19
+ </template>
20
+
21
+ <MenuContent v-on:action="open = false" />
22
+ </Menu>
23
+ ```
24
+
25
+ ### Placement
26
+
27
+ ```vue
28
+ <Menu v-model="open" placement="bottom-end">
29
+ <template #trigger>
30
+ <Button v-on:click="open = true">Open menu</Button>
31
+ </template>
32
+
33
+ <MenuContent />
34
+ </Menu>
35
+ ```
36
+
37
+ ### Persistent
38
+
39
+ ```vue
40
+ <Menu persistent v-model="open">
41
+ <template #trigger>
42
+ <Button v-on:click="open = true">Open persistent</Button>
43
+ </template>
44
+
45
+ <MenuContent />
46
+ </Menu>
47
+ ```
48
+
49
+ ### anchorEl
50
+
51
+ ```vue
52
+ <div ref="anchorRef">
53
+ <Button v-on:click="open = true">External anchor</Button>
54
+ </div>
55
+
56
+ <Menu v-model="open" :anchor-el="anchorRef">
57
+ <MenuContent />
58
+ </Menu>
59
+ ```
60
+
61
+ ## Props
62
+
63
+ | Prop | Type | Default | Description |
64
+ | ------------------- | ------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
65
+ | `anchorEl` | `HTMLElement \| null` | — | Element that anchors the menu panel. When set, it is used for positioning and click-away instead of the `trigger` slot wrapper. Prefer this when the opener lives outside the `Menu` or is controlled manually. Not merged into Bridge defaults (DOM nodes must not be deep-merged). |
66
+ | `classes` | `MenuClasses` | — | The classes to apply to the menu. |
67
+ | `closeOnClickAway` | `boolean` | `true` | Whether the menu closes when clicking outside the trigger and panel. |
68
+ | `closeOnEscape` | `boolean` | `true` | Whether the menu closes on escape key press. |
69
+ | `customProps` | `MenuCustomProps` | — | Props forwarded to each menu part. |
70
+ | `disableAutoFocus` | `boolean` | `false` | When true, the menu does not auto-focus the first focusable item on open. |
71
+ | `disableScrollLock` | `boolean` | `true` | When true, body scroll is not locked while the menu is open. |
72
+ | `keepMounted` | `boolean` | `false` | When true, the menu stays mounted in the DOM after closing (hidden). |
73
+ | `offset` | `number` | 4 | Gap between the trigger and the menu panel (px). |
74
+ | `onShowChange` | `(show: boolean) => void` | — | Called when `show` should change (controlled state without `v-model`). |
75
+ | `persistent` | `boolean` | `false` | When true, escape and click-away do not close the menu. |
76
+ | `placement` | `PositionPlacement` | "bottom-start" | Preferred placement of the menu relative to the anchor (Floating UI). |
77
+ | `rounded` | `MenuRounded` | "md" | The roundedness of the menu panel. |
78
+ | `shadow` | `MenuShadow` | "md" | The shadow to apply to the menu panel. |
79
+ | `strategy` | `PositionStrategy` | "fixed" | CSS position strategy for the floating panel. |
80
+ | `teleportTo` | `string \| false` | "body" | Where to portal the menu panel. Pass `false` to render in place. |
81
+
82
+ ### v-model
83
+
84
+ | Prop / Event | Type | Default | Description |
85
+ | ------------------- | -------------------------- | ------- | ---------------------------------------------------------------------------- |
86
+ | `modelValue` | `boolean` | `false` | Whether the menu is open. Bound with `v-model`. |
87
+ | `update:modelValue` | `(value: boolean) => void` | — | Emitted when `v-model` should update. Listen with `v-on:update:model-value`. |
88
+
89
+ ## Events
90
+
91
+ | Event | Payload | Description |
92
+ | ------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------- |
93
+ | `v-on:close` | — | Emitted when the user dismisses the menu (Escape or click-away). Not emitted when the parent sets `v-model` to `false` directly. |
94
+
95
+ ## Related components
96
+
97
+ List, ListItem, Select, Button
@@ -0,0 +1,154 @@
1
+ # Modal
2
+
3
+ Modal overlay with portal, backdrop, and focus management. Put `Card` or any content inside.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { Modal } from "@bridge-ui/vue/Components/Modal";
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Usage
14
+
15
+ ```vue
16
+ <Button v-on:click="open = true">Open modal</Button>
17
+
18
+ <Modal v-model="open">
19
+ <Card title="Confirm action" :on-close="() => (open = false)">
20
+ Are you sure you want to continue?
21
+ </Card>
22
+ </Modal>
23
+ ```
24
+
25
+ ### Persistent
26
+
27
+ ```vue
28
+ <Modal persistent v-model="open">
29
+ <Card title="Persistent modal" :on-close="() => (open = false)">
30
+ Clicking the backdrop or pressing Escape has no effect.
31
+ </Card>
32
+ </Modal>
33
+ ```
34
+
35
+ ### Responsive align
36
+
37
+ ```vue
38
+ <script setup>
39
+ import { useBreakpoint } from "@bridge-ui/vue";
40
+
41
+ const breakpoint = useBreakpoint();
42
+ </script>
43
+
44
+ <template>
45
+ <Modal
46
+ v-model="open"
47
+ :align="breakpoint.mobile ? 'bottom-center' : 'middle-center'"
48
+ >
49
+ <Card title="Responsive" :on-close="() => (open = false)">
50
+ Bottom sheet on mobile, centered from `sm` up.
51
+ </Card>
52
+ </Modal>
53
+ </template>
54
+ ```
55
+
56
+ > **Breaking:** `align` now applies on all breakpoints. Mobile no longer forces a bottom sheet — use `useBreakpoint` (as above) to restore that pattern.
57
+
58
+ ### Nested modals
59
+
60
+ ```vue
61
+ <Modal size="lg" v-model="outerOpen">
62
+ <Card title="Outer modal" :on-close="() => (outerOpen = false)">
63
+ <Button size="sm" v-on:click="innerOpen = true">Open nested modal</Button>
64
+ </Card>
65
+
66
+ <Modal size="sm" v-model="innerOpen">
67
+ <Card title="Nested confirmation" :on-close="() => (innerOpen = false)">
68
+ Press Escape to close only this layer.
69
+ </Card>
70
+ </Modal>
71
+ </Modal>
72
+ ```
73
+
74
+ ### Full composition (Card)
75
+
76
+ ```vue
77
+ <Modal blur="md" size="lg" v-model="open" transition="slide-up">
78
+ <Card
79
+ borderless
80
+ shadow="lg"
81
+ rounded="2xl"
82
+ padding="large"
83
+ variant="elevated"
84
+ title="Edit profile"
85
+ >
86
+ Large modal with Card title, body, and footer slots.
87
+
88
+ <template #footer>
89
+ <Button size="sm" color="error" variant="flat" v-on:click="open = false">
90
+ Discard
91
+ </Button>
92
+
93
+ <Button size="sm" color="primary" v-on:click="open = false">Save</Button>
94
+ </template>
95
+ </Card>
96
+ </Modal>
97
+ ```
98
+
99
+ ### customProps
100
+
101
+ ```vue
102
+ <Modal
103
+ v-model="open"
104
+ :custom-props="{
105
+ root: { id: 'modal-root' },
106
+ panel: { id: 'modal-panel' },
107
+ overlay: { id: 'modal-overlay' },
108
+ }"
109
+ >
110
+ <Card title="customProps" :on-close="() => (open = false)">
111
+ Inspect the DOM for ids on each modal part.
112
+ </Card>
113
+ </Modal>
114
+ ```
115
+
116
+ ## Props
117
+
118
+ | Prop | Type | Default | Description |
119
+ | --------------------- | ------------------ | --------------- | ------------------------------------------------------------------------------------------------------------------ |
120
+ | `align` | `ModalAlign` | "middle-center" | Panel position on all breakpoints (`{row}-{column}` grid). Use `useBreakpoint` for a different align per viewport. |
121
+ | `autoFocus` | `boolean` | `false` | When true, focuses the first focusable element inside the dialog on open. |
122
+ | `blur` | `ModalBlur` | "none" | Backdrop blur on the overlay. |
123
+ | `classes` | `ModalClasses` | — | The classes to apply to the modal. |
124
+ | `closeOnEscape` | `boolean` | `true` | Whether the modal closes on escape key press. |
125
+ | `closeOnOverlay` | `boolean` | `true` | Whether the modal closes on overlay click. |
126
+ | `customProps` | `ModalCustomProps` | — | Props forwarded to each modal part. |
127
+ | `disableEnforceFocus` | `boolean` | `false` | When true, focus is not trapped inside the modal while open. |
128
+ | `disableRestoreFocus` | `boolean` | `false` | When true, focus is not restored to the previously focused element on close. |
129
+ | `disableScrollLock` | `boolean` | `false` | When true, body scroll is not locked while the modal is open. |
130
+ | `hideBackdrop` | `boolean` | `false` | When true, the backdrop overlay is not rendered. |
131
+ | `keepMounted` | `boolean` | `false` | When true, the modal stays mounted in the DOM after closing (hidden). |
132
+ | `persistent` | `boolean` | `false` | When true, escape and overlay clicks do not close the modal. |
133
+ | `scroll` | `ModalScroll` | "body" | Where scroll happens: the page (`body`) or the dialog panel (`paper`). |
134
+ | `size` | `ModalSize` | "md" | Max width of the dialog from the `sm` breakpoint up (`sm:max-w-*`). |
135
+ | `teleportTo` | `string \| false` | "body" | Where to teleport the modal. Pass `false` to render in place. |
136
+ | `transition` | `ModalTransition` | "fade" | Enter/leave animation for overlay and panel. |
137
+
138
+ ### v-model
139
+
140
+ | Prop / Event | Type | Default | Description |
141
+ | ------------------- | -------------------------- | ------- | ---------------------------------------------------------------------------- |
142
+ | `modelValue` | `boolean` | `false` | Whether the modal is visible. Bound with `v-model`. |
143
+ | `update:modelValue` | `(value: boolean) => void` | — | Emitted when `v-model` should update. Listen with `v-on:update:model-value`. |
144
+
145
+ ## Events
146
+
147
+ | Event | Payload | Description |
148
+ | ------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------ |
149
+ | `v-on:close` | — | Emitted when the user dismisses the modal (overlay or Escape). Not emitted when the parent sets `v-model` to `false` directly. |
150
+ | `v-on:show-change` | `(show: boolean)` | Emitted when visibility should change (controlled state). Listen with `v-on:show-change`. |
151
+
152
+ ## Related components
153
+
154
+ Card, useDialogAction, useModalAction
@@ -0,0 +1,80 @@
1
+ # NumberField
2
+
3
+ Numeric input with increment/decrement controls. Extends FormField props.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { NumberField } from "@bridge-ui/vue/Components/NumberField";
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Usage
14
+
15
+ ```vue
16
+ <NumberField :min="0" :max="20" :step="1" placeholder="0" label="Quantity" />
17
+
18
+ <NumberField
19
+ label="Units"
20
+ v-model="quantity"
21
+ description="Use the stepper or type a value."
22
+ />
23
+
24
+ <NumberField
25
+ error
26
+ label="Amount"
27
+ error-message="Value must be between 0 and 100."
28
+ />
29
+ ```
30
+
31
+ ### Min, max, and step
32
+
33
+ ```vue
34
+ <NumberField :min="1" :max="99" :step="5" label="Items" placeholder="0" />
35
+ ```
36
+
37
+ ### customProps
38
+
39
+ ```vue
40
+ <NumberField
41
+ placeholder="0"
42
+ label="Quantity"
43
+ description="Input uses name via customProps."
44
+ :custom-props="{
45
+ input: { name: 'demo-quantity' },
46
+ }"
47
+ />
48
+ ```
49
+
50
+ ## Props
51
+
52
+ ### NumberField-specific
53
+
54
+ | Prop | Type | Default | Description |
55
+ | --------- | -------------------- | ------- | ----------------------------------------- |
56
+ | `classes` | `NumberFieldClasses` | — | The classes to apply to the number field. |
57
+ | `max` | `number` | — | The maximum value. |
58
+ | `min` | `number` | — | The minimum value. |
59
+ | `step` | `number` | 1 | The step increment value. |
60
+
61
+ ### v-model
62
+
63
+ | Prop / Event | Type | Default | Description |
64
+ | ------------------- | --------------------------------- | ------- | ---------------------------------------------------------------------------- |
65
+ | `modelValue` | `number \| null` | — | Bound with `v-model`. |
66
+ | `update:modelValue` | `(value: number \| null) => void` | — | Emitted when `v-model` should update. Listen with `v-on:update:model-value`. |
67
+
68
+ ### Inherited from FormField
69
+
70
+ See [FormField](./FormField.md).
71
+
72
+ ## Events
73
+
74
+ | Event | Payload | Description |
75
+ | ------------- | ----------------- | ----------------------------------------------- |
76
+ | `v-on:change` | `(value: number)` | Emitted with the numeric value when it changes. |
77
+
78
+ ## Related components
79
+
80
+ TextField, FormField
@@ -0,0 +1,133 @@
1
+ # OtpField
2
+
3
+ One-time password / PIN input with individual pin cells. Label, description, and
4
+ error chrome are rendered via the shared `BaseField` layout; variants style each
5
+ pin.
6
+
7
+ ## Import
8
+
9
+ ```ts
10
+ import { OtpField } from "@bridge-ui/vue/Components/OtpField";
11
+ ```
12
+
13
+ ## Examples
14
+
15
+ ### Usage
16
+
17
+ ```vue
18
+ <OtpField label="Verification code" />
19
+
20
+ <OtpField
21
+ v-model="code"
22
+ :length="4"
23
+ label="PIN"
24
+ description="Enter the 4-digit code from your email."
25
+ />
26
+
27
+ <OtpField error label="Code" error-message="Invalid or expired code." />
28
+ ```
29
+
30
+ ### Length and type
31
+
32
+ ```vue
33
+ <OtpField :length="4" label="PIN" />
34
+
35
+ <OtpField :length="8" type="alphanumeric" label="Backup code" />
36
+ ```
37
+
38
+ ### Variants
39
+
40
+ ```vue
41
+ <OtpField variant="outline" label="Outline" />
42
+ <OtpField variant="filled" label="Filled" />
43
+ <OtpField variant="underlined" label="Underlined" />
44
+ <OtpField variant="stacked" label="Stacked" />
45
+ <OtpField variant="notched" label="Notched" />
46
+ ```
47
+
48
+ ### Masked
49
+
50
+ ```vue
51
+ <OtpField mask label="Secure code" />
52
+ ```
53
+
54
+ ### Adornment slots
55
+
56
+ ```vue
57
+ <OtpField label="Code">
58
+ <template #start>
59
+ <Lock aria-hidden="true" />
60
+ </template>
61
+ <template #end>
62
+ <button type="button">Resend</button>
63
+ </template>
64
+ </OtpField>
65
+ ```
66
+
67
+ ### customProps
68
+
69
+ ```vue
70
+ <OtpField
71
+ label="Code"
72
+ description="Pins use name via customProps."
73
+ :custom-props="{
74
+ input: { name: 'demo-otp' },
75
+ }"
76
+ />
77
+ ```
78
+
79
+ ## Props
80
+
81
+ ### OtpField-specific
82
+
83
+ | Prop | Type | Default | Description |
84
+ | -------------- | ----------------------------- | ----------- | ------------------------------------------- |
85
+ | `autoFocus` | `boolean` | `false` | Focus the first empty pin on mount. |
86
+ | `classes` | `OtpFieldClasses` | — | Classes for the field chrome and pin cells. |
87
+ | `defaultValue` | `string` | — | Initial value when `v-model` is unbound. |
88
+ | `length` | `number` | `6` | Number of pin slots. |
89
+ | `mask` | `boolean` | `false` | Mask pin values (password-style). |
90
+ | `placeholder` | `string` | — | Placeholder character in empty pins. |
91
+ | `type` | `"numeric" \| "alphanumeric"` | `"numeric"` | Character set accepted by each pin. |
92
+ | `variant` | `OtpFieldVariant` | `"outline"` | Visual variant applied to each pin cell. |
93
+
94
+ ### Binding
95
+
96
+ | Prop | Type | Default | Description |
97
+ | ------------ | -------- | ------- | ----------------------------------- |
98
+ | `modelValue` | `string` | — | Concatenated OTP value (`v-model`). |
99
+
100
+ ### Field chrome
101
+
102
+ Label, corner, description, error message, and start/end adornment slots use the
103
+ same `BaseField` layout as other field components. Pin-specific props (`length`,
104
+ `mask`, `variant`, …) apply only to the pin row.
105
+
106
+ | Prop | Type | Default | Description |
107
+ | ------------------ | --------- | ----------- | ----------------------------------------------------------------------- |
108
+ | `color` | token | `"primary"` | Focus color on each pin. |
109
+ | `controlId` | `string` | auto | Id for the pin group and related labels. |
110
+ | `corner` | `string` | — | Secondary header text. |
111
+ | `customProps` | object | — | Extra props for internal parts. |
112
+ | `description` | `string` | — | Helper text below the pins. |
113
+ | `disabled` | `boolean` | `false` | Disables all pins. |
114
+ | `error` | `boolean` | `false` | Invalid styling. |
115
+ | `errorMessage` | `string` | — | Error message below the pins. |
116
+ | `hideErrorMessage` | `boolean` | `false` | Hides the error message row. |
117
+ | `label` | `string` | — | Primary label above the pins. |
118
+ | `readonly` | `boolean` | `false` | Makes all pins read-only. |
119
+ | `required` | `boolean` | `false` | Shows a required asterisk on the label. |
120
+ | `rounded` | token | `"md"` | Border radius of each pin. |
121
+ | `size` | token | `"md"` | Pin size and label typography (`2xs` … `2xl`). |
122
+ | `slots` | — | — | `#label`, `#corner`, `#description`, `#errorMessage`, `#start`, `#end`. |
123
+
124
+ ## Events
125
+
126
+ | Event | Payload | Description |
127
+ | ---------- | -------- | ------------------------------------ |
128
+ | `change` | `string` | Emitted when the OTP string changes. |
129
+ | `complete` | `string` | Emitted when every pin is filled. |
130
+
131
+ ## Related components
132
+
133
+ BaseField, TextField, FormField, NumberField