@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,212 @@
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
+ ### Overlay
128
+
129
+ ```vue
130
+ <Autocomplete overlay="auto" label="Country" :options="countries" />
131
+
132
+ <Autocomplete label="Country" overlay="drawer" :options="countries" />
133
+ ```
134
+
135
+ Default `overlay` is `auto`: `menu` on desktop and bottom `drawer` on mobile.
136
+ When unset, `showFooter` defaults to `true` on mobile (`false` on desktop). Selection stays draft until Apply.
137
+
138
+ ### customProps
139
+
140
+ ```vue
141
+ <Autocomplete
142
+ label="Country"
143
+ :options="countries"
144
+ placeholder="Choose a country"
145
+ :custom-props="{
146
+ root: { id: 'country-field' },
147
+ input: { name: 'country', autocomplete: 'country' },
148
+ }"
149
+ />
150
+ ```
151
+
152
+ ## Props
153
+
154
+ ### Autocomplete-specific
155
+
156
+ | Prop | Type | Default | Description |
157
+ | ------------------- | --------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------- |
158
+ | `asyncData` | `SelectAsyncData` | — | Remote data source. Implies `searchable`. |
159
+ | `clearable` | `boolean` | `true` | Whether the value can be cleared. |
160
+ | `defaultValue` | `SelectModel` | — | Initial value when uncontrolled. |
161
+ | `disableMaxHeight` | `boolean` | `false` | When true, the dropdown options list is not height-limited. Forwarded to the internal `Listbox`. |
162
+ | `emptyMessage` | `string` | "No options" | Message when the filtered list is empty. |
163
+ | `flipOptions` | `boolean` | `false` | Inverts the visual order of options. |
164
+ | `freeSolo` | `boolean` | `true` | Allows committing typed text that is not in `options` (Enter, Tab, or closing the menu). |
165
+ | `hideEmptyMessage` | `boolean` | `false` | Hides the empty-state message. |
166
+ | `loading` | `boolean` | — | External or async loading state. |
167
+ | `maxHeight` | `string` | "max-h-60" | Tailwind max-height class for the dropdown options area. Forwarded to the internal `Listbox`. |
168
+ | `minItemsForSearch` | `number` | 11 | Minimum option count before search UI is enabled. |
169
+ | `multiple` | `boolean` | `false` | Whether multiple values can be selected. |
170
+ | `optionDescription` | `string` | "description" | Key used to read the description from option objects. |
171
+ | `optionLabel` | `string` | "label" | Key used to read the label from option objects. |
172
+ | `options` | `ListboxOptionsInput` | — | Options to display. May include section groups (`{ title, options, sticky? }`) mixed with flat options. |
173
+ | `optionValue` | `string` | "value" | Key used to read the value from option objects. |
174
+ | `overlay` | `FieldOverlayMode` | `"auto"` | Overlay shell: `menu`, `modal`, `drawer`, or `auto`. |
175
+ | `placeholder` | `string` | — | Placeholder shown when no value is selected. |
176
+ | `searchable` | `boolean` | `true` | Whether options can be filtered via the trigger input. |
177
+ | `showFooter` | `boolean` | `false` (`true` on mobile when unset) | Shows Cancel / Apply on the nested listbox. Selection stays draft until Apply. |
178
+
179
+ ### v-model
180
+
181
+ | Prop / Event | Type | Default | Description |
182
+ | ------------------- | ------------------------------------------------------- | ------- | ---------------------------------------------------------------------------- |
183
+ | `modelValue` | `SelectValue \| SelectValue[] \| null` | — | Bound with `v-model`. |
184
+ | `update:modelValue` | `(value: SelectValue \| SelectValue[] \| null) => void` | — | Emitted when `v-model` should update. Listen with `v-on:update:model-value`. |
185
+
186
+ ### Inherited from FormField
187
+
188
+ 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`.
189
+
190
+ ## Slots
191
+
192
+ | Slot | Scope | Description |
193
+ | --------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
194
+ | `default` | — | Composed list content (`ListSection` / `ListItem` with `value`). Replaces mapped `options` in the listbox. |
195
+ | `option` | `{ option: SelectOption; selected: boolean }` | Custom option content when rendering from the `options` prop. |
196
+
197
+ ## Events
198
+
199
+ | Event | Payload | Description |
200
+ | --------------- | ------------------------ | -------------------------------------------------------------------- |
201
+ | `v-on:cancel` | — | Emitted when Cancel is pressed on the listbox footer (`showFooter`). |
202
+ | `v-on:change` | `(value: SelectModel)` | Emitted when the selection changes. |
203
+ | `v-on:clear` | — | Emitted when the value is cleared. |
204
+ | `v-on:close` | — | Emitted when the menu closes. |
205
+ | `v-on:deselect` | `(option: SelectOption)` | Emitted when an option is deselected (multiple mode). |
206
+ | `v-on:open` | — | Emitted when the menu opens. |
207
+ | `v-on:search` | `(query: string)` | Emitted when the search query changes. |
208
+ | `v-on:select` | `(option: SelectOption)` | Emitted when an option is selected. |
209
+
210
+ ## Related components
211
+
212
+ Menu, Modal, Drawer, FieldOverlay, List, ListItem, ListSection, FormField
@@ -0,0 +1,60 @@
1
+ # Avatar
2
+
3
+ Displays a user image, initials fallback, or icon.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { Avatar } from "@bridge-ui/vue/Components/Avatar";
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Usage
14
+
15
+ ```vue
16
+ <Avatar fallback="JD" />
17
+
18
+ <Avatar :icon="User" color="primary" />
19
+
20
+ <Avatar alt="Jane Doe" :src="avatarSrc" />
21
+ ```
22
+
23
+ ### Classes
24
+
25
+ ```vue
26
+ <Avatar
27
+ fallback="JP"
28
+ :classes="{
29
+ root: 'ring-2 ring-info-500',
30
+ fallback: 'font-bold tracking-widest',
31
+ }"
32
+ />
33
+ ```
34
+
35
+ ### Fallback slot
36
+
37
+ ```vue
38
+ <Avatar>
39
+ <template #fallback>
40
+ <span class="text-xs font-semibold">Slot</span>
41
+ </template>
42
+ </Avatar>
43
+ ```
44
+
45
+ ## Props
46
+
47
+ | Prop | Type | Default | Description |
48
+ | ---------- | --------------- | --------- | -------------------------------------------------------- |
49
+ | `alt` | `string` | — | The alt text for the avatar image. |
50
+ | `classes` | `AvatarClasses` | — | The classes to apply to the avatar. |
51
+ | `color` | `AvatarColor` | "primary" | The color to apply to the avatar fallback. |
52
+ | `fallback` | `string` | — | The fallback text to display when no image is available. |
53
+ | `icon` | `LucideIcon` | — | The icon to display as fallback. |
54
+ | `rounded` | `AvatarRounded` | "full" | The roundedness of the avatar. |
55
+ | `size` | `AvatarSize` | "md" | The size of the avatar. |
56
+ | `src` | `string` | — | The source URL for the avatar image. |
57
+
58
+ ## Related components
59
+
60
+ Badge
@@ -0,0 +1,47 @@
1
+ # Badge
2
+
3
+ Small label for counts, status, or tags.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { Badge } from "@bridge-ui/vue/Components/Badge";
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Usage
14
+
15
+ ```vue
16
+ <Badge>New</Badge>
17
+
18
+ <Badge density="mini">3</Badge>
19
+
20
+ <Badge variant="flat" color="success">
21
+ Active
22
+ </Badge>
23
+ ```
24
+
25
+ ### Custom classes
26
+
27
+ ```vue
28
+ <Badge color="primary" class="tracking-widest uppercase shadow-md">
29
+ Styled
30
+ </Badge>
31
+ ```
32
+
33
+ ## Props
34
+
35
+ | Prop | Type | Default | Description |
36
+ | --------- | -------------- | --------- | ---------------------------------- |
37
+ | `classes` | `BadgeClasses` | — | The classes to apply to the badge. |
38
+ | `color` | `BadgeColor` | "primary" | The color to apply to the badge. |
39
+ | `density` | `BadgeDensity` | "default" | The density of the badge. |
40
+ | `full` | `boolean` | `false` | Whether the badge is full width. |
41
+ | `rounded` | `BadgeRounded` | "md" | The roundedness of the badge. |
42
+ | `size` | `BadgeSize` | "sm" | The size of the badge. |
43
+ | `variant` | `BadgeVariant` | "flat" | The variant of the badge. |
44
+
45
+ ## Related components
46
+
47
+ Button
@@ -0,0 +1,126 @@
1
+ # BaseField
2
+
3
+ > Building block for composite field chrome. Prefer `OtpField` / `Slider` in apps; BaseField remains exported for advanced composition. Not a registry key — theme chrome via `tokens.baseField` on the public parent (e.g. `components.Slider.tokens.baseField`).
4
+
5
+ Shared vertical field chrome (label, corner, start/end slots, description,
6
+ error message) for OtpField, Slider, and similar controls.
7
+
8
+ Control tokens stay on the parent (`tokens.size`, `tokens.invalidated`, …).
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { BaseField, useBaseField } from "@bridge-ui/vue";
14
+ ```
15
+
16
+ ## Examples
17
+
18
+ ### Usage
19
+
20
+ Compose with `useBaseField` and pass the returned API as `:field`:
21
+
22
+ ```vue
23
+ <script setup lang="ts">
24
+ import { BaseField, useBaseField } from "@bridge-ui/vue";
25
+
26
+ const field = useBaseField(() => ({
27
+ label: "Verification code",
28
+ description: "Enter the code from your email.",
29
+ }));
30
+ </script>
31
+
32
+ <template>
33
+ <BaseField :field="field">
34
+ <input type="text" aria-label="Code" />
35
+ </BaseField>
36
+ </template>
37
+ ```
38
+
39
+ ### Label and corner
40
+
41
+ ```vue
42
+ <BaseField
43
+ :field="
44
+ useBaseField(() => ({
45
+ label: 'Amount',
46
+ corner: 'Optional',
47
+ }))
48
+ "
49
+ >
50
+ <input type="number" aria-label="Amount" />
51
+ </BaseField>
52
+ ```
53
+
54
+ ### Adornment slots
55
+
56
+ ```vue
57
+ <BaseField :field="useBaseField(() => ({ label: 'Code' }))">
58
+ <template #start>
59
+ <Lock aria-hidden="true" />
60
+ </template>
61
+
62
+ <input type="text" aria-label="Code" />
63
+
64
+ <template #end>
65
+ <button type="button">Resend</button>
66
+ </template>
67
+ </BaseField>
68
+ ```
69
+
70
+ ### Error state
71
+
72
+ ```vue
73
+ <BaseField
74
+ :field="
75
+ useBaseField(() => ({
76
+ error: true,
77
+ label: 'Email',
78
+ errorMessage: 'Invalid email address.',
79
+ }))
80
+ "
81
+ >
82
+ <input type="email" aria-label="Email" />
83
+ </BaseField>
84
+ ```
85
+
86
+ ### customProps
87
+
88
+ ```vue
89
+ <BaseField
90
+ :field="
91
+ useBaseField(() => ({
92
+ label: 'Email',
93
+ description: 'We never share your email.',
94
+ customProps: {
95
+ group: { 'data-testid': 'email-group' },
96
+ },
97
+ }))
98
+ "
99
+ >
100
+ <input type="email" aria-label="Email" />
101
+ </BaseField>
102
+ ```
103
+
104
+ ## Props
105
+
106
+ | Prop | Type | Default | Description |
107
+ | ------------------ | ---------------------- | ------- | -------------------------------------------------------------------------------------------- |
108
+ | `classes` | `BaseFieldClasses` | — | Classes for the field chrome and control group layout. |
109
+ | `controlId` | `string` | auto | Id for the control group and related labels. |
110
+ | `corner` | `string` | — | Secondary header text at the inline end. |
111
+ | `customProps` | `BaseFieldCustomProps` | — | Extra props for internal parts (`root`, `group`, `label`, …). |
112
+ | `description` | `string` | — | Helper text below the control group (hidden when invalid). |
113
+ | `disabled` | `boolean` | `false` | Disables the field control group. |
114
+ | `error` | `boolean` | `false` | Invalid styling on the label and control group. |
115
+ | `errorMessage` | `string` | — | Error message below the control group. |
116
+ | `field` | `UseBaseFieldReturn` | — | Pre-composed field chrome API from `useBaseField`. Used by `<BaseField :field="…" />`. |
117
+ | `hideErrorMessage` | `boolean` | `false` | Hides the error message row and reserved space. |
118
+ | `label` | `string` | — | Primary label above the control group. |
119
+ | `readonly` | `boolean` | `false` | Read-only field control group. |
120
+ | `required` | `boolean` | `false` | Shows a required asterisk on the label. |
121
+ | `size` | `BaseFieldSize` | `"md"` | Label typography and control group gap scale. |
122
+ | `slots` | `BaseFieldSlots` | — | `#label`, `#corner`, `#description`, `#errorMessage`, `#start`, `#end`, and default control. |
123
+
124
+ ## Related components
125
+
126
+ OtpField, Slider, Label
@@ -0,0 +1,168 @@
1
+ # BridgeUIProvider
2
+
3
+ Root provider for theme, locale, direction, breakpoints, icon/i18n/date adapters, and component registry defaults.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { BridgeUIProvider, useBridgeUI } from "@bridge-ui/vue";
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Usage
14
+
15
+ ```vue
16
+ <BridgeUIProvider
17
+ :global="{
18
+ theme: 'light',
19
+ locale: 'en-US',
20
+ breakpoints: {},
21
+ direction: 'ltr',
22
+ mobileBreakpoint: 'sm',
23
+ }"
24
+ >
25
+ <App />
26
+ </BridgeUIProvider>
27
+ ```
28
+
29
+ ### Icon adapter
30
+
31
+ Provide `global.icons` when using semantic icon names (`"clear"`, `"check"`, …). Optional `normalize` converts library-native values (e.g. Font Awesome definitions) so `<Icon :icon="faCoffee" />` works. Ready samples in `packages/vue/docs/examples/` (Lucide, Heroicons, Tabler, Phosphor, Font Awesome).
32
+
33
+ ```ts
34
+ import { createBridgeUI } from "@bridge-ui/vue";
35
+ import { createLucideIconAdapter } from "@examples/icon-lucide";
36
+
37
+ const icons = createLucideIconAdapter();
38
+
39
+ app.use(
40
+ createBridgeUI({
41
+ global: { icons },
42
+ }),
43
+ );
44
+ ```
45
+
46
+ ### i18n adapter
47
+
48
+ Provide `global.i18n` to translate Bridge chrome strings (`"Close"`, `"Hide password"`, …). Lookup is gettext-style (source English text is the key). Without an adapter, the source string is used. `setLocale` updates Bridge `locale` and calls optional `i18n.setLocale` (vue-i18n / i18next / dictionary). Persistence (localStorage, backend) stays in the app. Ready samples in `packages/vue/docs/examples/` (dictionary, vue-i18n). See [I18n](./I18n.md).
49
+
50
+ ```ts
51
+ import { createBridgeUI } from "@bridge-ui/vue";
52
+ import { createDictionaryI18nAdapter } from "@examples/i18n-dictionary";
53
+
54
+ const i18n = createDictionaryI18nAdapter();
55
+
56
+ app.use(
57
+ createBridgeUI({
58
+ global: { i18n },
59
+ }),
60
+ );
61
+ ```
62
+
63
+ ### Date adapter
64
+
65
+ Provide `global.dates` to replace the native `Date` adapter used by calendars and pickers. Without one, Bridge uses `createNativeDateAdapter`. Ready samples in `packages/vue/docs/examples/` (Day.js, date-fns, Luxon, Moment).
66
+
67
+ ```ts
68
+ import { createBridgeUI } from "@bridge-ui/vue";
69
+ import { createDayjsDateAdapter } from "@examples/date-dayjs";
70
+
71
+ const dates = createDayjsDateAdapter();
72
+
73
+ app.use(
74
+ createBridgeUI({
75
+ global: { dates },
76
+ }),
77
+ );
78
+ ```
79
+
80
+ ### Form density defaults
81
+
82
+ Set `global.formDefaults` to apply shared `size` / `rounded` to form controls (TextField, Select, Checkbox, Slider, OtpField, …). Does not affect Button, Progress, Modal, etc.
83
+
84
+ Merge order: instance props → `components.{Name}.defaultProps` → `formDefaults` → library defaults.
85
+
86
+ Radio and Switch receive `size` only — their `rounded` stays shape-driven (`full`) unless overridden per component.
87
+
88
+ ```ts
89
+ import { createBridgeUI } from "@bridge-ui/vue";
90
+
91
+ app.use(
92
+ createBridgeUI({
93
+ global: {
94
+ formDefaults: { size: "lg", rounded: "md" },
95
+ },
96
+ }),
97
+ );
98
+ ```
99
+
100
+ ### Nested chrome tokens
101
+
102
+ Building blocks (`FormField`, `FormControl`, `BaseField`, `Listbox`) are not registry keys. Theme chrome under the public parent:
103
+
104
+ ```ts
105
+ app.use(
106
+ createBridgeUI({
107
+ components: {
108
+ Slider: {
109
+ tokens: {
110
+ baseField: {
111
+ size: { md: { text: "text-base", group: "gap-3" } },
112
+ },
113
+ },
114
+ },
115
+ Checkbox: {
116
+ tokens: {
117
+ formControl: {
118
+ invalidated: {
119
+ errorMessage: "text-error-700 dark:text-error-300",
120
+ },
121
+ },
122
+ },
123
+ },
124
+ Select: {
125
+ tokens: {
126
+ listbox: {
127
+ size: {
128
+ md: {
129
+ option: "px-3 py-2 text-sm",
130
+ check: "size-4",
131
+ message: "text-xs",
132
+ primary: "font-medium",
133
+ secondary: "text-xs opacity-70",
134
+ },
135
+ },
136
+ },
137
+ },
138
+ },
139
+ },
140
+ }),
141
+ );
142
+ ```
143
+
144
+ ### Runtime updates
145
+
146
+ ```ts
147
+ const { setLocale, setTheme, setDirection, setGlobal } = useBridgeUI()!;
148
+
149
+ setTheme("dark");
150
+ setLocale("pt-BR"); // also calls global.i18n.setLocale when present
151
+ setDirection("rtl");
152
+ setGlobal({ mobileBreakpoint: "md" });
153
+ ```
154
+
155
+ ## Props
156
+
157
+ | Prop | Type | Default | Description |
158
+ | ------------ | -------------------------- | ------- | ----------------------------------------------------------------------------------------------------------- |
159
+ | `components` | `BridgeUIComponentsConfig` | — | Per-component defaults |
160
+ | `global` | `Partial<BridgeUIGlobal>` | — | `theme`, `locale`, `direction`, `mobileBreakpoint`, `breakpoints`, `icons`, `i18n`, `dates`, `formDefaults` |
161
+
162
+ App content is passed via the **default slot** (see Usage above).
163
+
164
+ **useBridgeUI():** `global`, `components`, `setGlobal`, `setComponents`, `setLocale`, `setTheme`, `setDirection`
165
+
166
+ ## Related components
167
+
168
+ All components