@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,91 @@
1
+ # FieldOverlay
2
+
3
+ Switches between `Menu`, `Modal`, and `Drawer` shells for field pickers and listboxes.
4
+ Dialog shells (`modal` / `drawer`) always center the picker and size the drawer
5
+ panel to its content (up to `90dvh`) so dual-month and dual-time pickers are not
6
+ clipped.
7
+
8
+ ## Import
9
+
10
+ ```ts
11
+ import { FieldOverlay } from "@bridge-ui/vue/Components/FieldOverlay";
12
+ ```
13
+
14
+ ## Examples
15
+
16
+ ### Usage
17
+
18
+ ```vue
19
+ <FieldOverlay v-model="open" overlay="menu">
20
+ <PickerContent />
21
+ </FieldOverlay>
22
+ ```
23
+
24
+ ### Overlay modes
25
+
26
+ `overlay` accepts `menu` | `modal` | `drawer` | `auto`. Default is `auto` (`menu` on desktop, bottom `drawer` on mobile).
27
+
28
+ ```vue
29
+ <FieldOverlay v-model="open" overlay="auto">
30
+ <PickerContent />
31
+ </FieldOverlay>
32
+
33
+ <FieldOverlay v-model="open" overlay="drawer">
34
+ <PickerContent />
35
+ </FieldOverlay>
36
+ ```
37
+
38
+ ### customProps
39
+
40
+ Forward props to the active shell via `customProps.menu`, `customProps.modal`, or `customProps.drawer`. Menu-only options such as `anchorEl`, `placement`, `disableAutoFocus`, and `rounded` go through `customProps.menu`.
41
+
42
+ ```vue
43
+ <FieldOverlay
44
+ v-model="open"
45
+ overlay="menu"
46
+ :custom-props="{
47
+ menu: {
48
+ anchorEl,
49
+ rounded: 'lg',
50
+ placement: 'bottom-start',
51
+ },
52
+ }"
53
+ >
54
+ <PickerContent />
55
+ </FieldOverlay>
56
+
57
+ <FieldOverlay
58
+ v-model="open"
59
+ overlay="modal"
60
+ :custom-props="{
61
+ modal: { size: 'sm', transition: 'none' },
62
+ }"
63
+ >
64
+ <PickerContent />
65
+ </FieldOverlay>
66
+ ```
67
+
68
+ ## Props
69
+
70
+ | Prop | Type | Default | Description |
71
+ | ------------- | ------------------------- | -------- | ---------------------------------------------------------- |
72
+ | `customProps` | `FieldOverlayCustomProps` | — | Extra props for nested shells (`menu`, `modal`, `drawer`). |
73
+ | `overlay` | `FieldOverlayMode` | `"auto"` | Overlay shell: `menu`, `modal`, `drawer`, or `auto`. |
74
+
75
+ ### v-model
76
+
77
+ | Prop / Event | Type | Default | Description |
78
+ | ------------------- | -------------------------- | ------- | ---------------------------------------------------------------------------- |
79
+ | `modelValue` | `boolean` | `false` | Whether the overlay is open. Bound with `v-model`. |
80
+ | `update:modelValue` | `(value: boolean) => void` | — | Emitted when `v-model` should update. Listen with `v-on:update:model-value`. |
81
+
82
+ ## Events
83
+
84
+ | Event | Payload | Description |
85
+ | ------------------ | ----------------- | -------------------------------------------- |
86
+ | `v-on:close` | — | Emitted when the user dismisses the overlay. |
87
+ | `v-on:show-change` | `(show: boolean)` | Emitted when open state should change. |
88
+
89
+ ## Related components
90
+
91
+ Menu, Modal, Drawer, Select, Autocomplete, DateField, TimeField, DateTimeField, DateRangeField, TimeRangeField, DateTimeRangeField, Listbox
@@ -0,0 +1,66 @@
1
+ # FormControl
2
+
3
+ > Building block for toggle-row chrome. Prefer `Checkbox`, `Radio`, and `Switch` in apps; FormControl remains exported for advanced composition. Not a registry key — theme chrome via `tokens.formControl` on the public parent (e.g. `components.Checkbox.tokens.formControl`).
4
+
5
+ Low-level form control chrome (labels, description, error) for Checkbox, Radio, and Switch.
6
+
7
+ Control tokens stay on the parent (`tokens.color`, `tokens.invalidated`, …).
8
+
9
+ ## Import
10
+
11
+ ```ts
12
+ import { FormControl } from "@bridge-ui/vue";
13
+ ```
14
+
15
+ ## Examples
16
+
17
+ ### Usage
18
+
19
+ ```vue
20
+ <FormControl
21
+ end-label="Email notifications"
22
+ description="Receive product updates."
23
+ >
24
+ <Checkbox :default-checked="true" />
25
+ </FormControl>
26
+ ```
27
+
28
+ ### customProps
29
+
30
+ ```vue
31
+ <FormControl
32
+ end-label="Email notifications"
33
+ description="Receive product updates."
34
+ :custom-props="{
35
+ root: { id: 'notify-control' },
36
+ endLabel: { id: 'notify-label' },
37
+ description: { id: 'notify-desc', 'aria-live': 'polite' },
38
+ }"
39
+ >
40
+ <Checkbox :default-checked="true" />
41
+ </FormControl>
42
+ ```
43
+
44
+ ## Props
45
+
46
+ | Prop | Type | Default | Description |
47
+ | ------------------ | ------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------ |
48
+ | `classes` | `FormControlClasses` | — | Classes for labels, description, error, and layout chrome. |
49
+ | `controlId` | `string` | — | Associates labels and helper text with a form control. When omitted, an id is generated automatically. |
50
+ | `customProps` | `FormControlCustomProps` | — | Extra props for internal parts (`row`, `endLabel`, `description`, …). |
51
+ | `description` | `string` | — | Helper text below the control row (hidden when invalid). |
52
+ | `disabled` | `boolean` | `false` | Whether the control is disabled. |
53
+ | `endLabel` | `string` | — | Inline-end label after the control (right in LTR, left in RTL). |
54
+ | `error` | `boolean` | `false` | When `true`, applies invalid styling on labels and hides description. |
55
+ | `errorMessage` | `string` | — | Error message below the control row. |
56
+ | `field` | `UseFormControlReturn` | — | Pre-composed form control API from a parent composable. Used by `<FormControl :field="…" />`; not set on Checkbox, Radio, or Switch. |
57
+ | `hideErrorMessage` | `boolean` | `false` | When `true`, does not reserve space below the row for error messages. |
58
+ | `readonly` | `boolean` | `false` | Whether the control is read-only. |
59
+ | `required` | `boolean` | `false` | Sets the native `required` attribute on the control and shows a required asterisk on labels. |
60
+ | `size` | `LabelSize` | "md" | Typography scale for labels, description, and error text (aligned with `FormField` / `Label`). |
61
+ | `slots` | `FormControlSlots` | — | Chrome slots (`startLabel`, `endLabel`, `description`, `errorMessage`, …) and the control. |
62
+ | `startLabel` | `string` | — | Inline-start label before the control (left in LTR, right in RTL). |
63
+
64
+ ## Related components
65
+
66
+ Checkbox, Radio, Switch, Label
@@ -0,0 +1,71 @@
1
+ # FormField
2
+
3
+ > Building block for field chrome. Prefer public fields (`TextField`, `Select`, …) in apps; FormField remains exported for advanced composition. Not a `BridgeUIComponentsConfig` key — theme via the public parent (`components.TextField`, `components.Select`, …).
4
+
5
+ Form field chrome (label, adornments, error) used by TextField, Select, and other inputs.
6
+
7
+ ## Import
8
+
9
+ ```ts
10
+ import { FormField } from "@bridge-ui/vue";
11
+ ```
12
+
13
+ ## Examples
14
+
15
+ ### Usage
16
+
17
+ ```vue
18
+ <FormField label="Email" description="We never share your email.">
19
+ <input type="email" class="w-full rounded border px-3 py-2" />
20
+ </FormField>
21
+ ```
22
+
23
+ ### customProps
24
+
25
+ ```vue
26
+ <FormField
27
+ label="Email"
28
+ description="We never share your email."
29
+ :custom-props="{
30
+ root: { id: 'email-field' },
31
+ description: { id: 'email-desc' },
32
+ label: { id: 'email-label', for: 'email-input' },
33
+ input: { id: 'email-input', autocomplete: 'email', name: 'email' },
34
+ }"
35
+ >
36
+ <input type="email" class="w-full rounded border px-3 py-2" />
37
+ </FormField>
38
+ ```
39
+
40
+ ## Props
41
+
42
+ | Prop | Type | Default | Description |
43
+ | ------------------ | ---------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
44
+ | `classes` | `FormFieldClasses` | — | Classes for the field chrome and the control (includes label, container, adornments). |
45
+ | `color` | `FormFieldColor` | "primary" | The color to apply to the field control. |
46
+ | `controlId` | `string` | — | Associates labels and helper text with a form control. When omitted, an id is generated automatically. |
47
+ | `corner` | `string` | — | Secondary label text at the inline end of the header row. |
48
+ | `customProps` | `FormFieldCustomProps` | — | Extra props for internal parts (`header`, `label`, `input`, `container`, …). |
49
+ | `description` | `string` | — | Helper text below the control (hidden when the field is invalid). |
50
+ | `disabled` | `boolean` | `false` | Whether the control is disabled. |
51
+ | `end` | `string` | — | Inline-end text inside the field (suffix), e.g. `@mail.com`. |
52
+ | `endIcon` | `LucideIcon` | — | Icon at the **inline end** (physical right in `ltr`, physical left in `rtl`). |
53
+ | `error` | `boolean` | `false` | When `true`, applies invalid styling on the label and hides description. |
54
+ | `errorIcon` | `LucideIcon` | CircleAlert | Icon used when `showErrorIcon` is enabled and the field is invalid. |
55
+ | `errorMessage` | `string` | — | Error message below the control. Shown only when set (or via `#errorMessage` slot). |
56
+ | `field` | `UseFormFieldReturn` | — | Pre-composed field API from a parent composable (e.g. `useTextField`). Used by `<FormField :field="…" />`; not set on field wrappers such as TextField. |
57
+ | `hideErrorMessage` | `boolean` | `false` | When `true`, does not reserve space below the control for error messages. |
58
+ | `label` | `string` | — | The primary label text above the control. |
59
+ | `readonly` | `boolean` | `false` | Whether the control is read-only. |
60
+ | `required` | `boolean` | `false` | Shows a red asterisk on the label. |
61
+ | `rounded` | `FormFieldRounded` | "md" | The roundedness of the field control. |
62
+ | `showErrorIcon` | `boolean` | `true` | When `true` and the field is invalid, shows an error icon at the inline end when no `endIcon` or `end` slot is present. |
63
+ | `size` | `FormFieldSize` | "md" | Typography scale for label, corner, description, and error message, and control sizing (input, container, icons). |
64
+ | `slots` | `FormFieldSlots` | — | Chrome slots (`label`, `description`, `errorMessage`, …) via `#slot` or prop; inline adornments use `#start` / `#end`. |
65
+ | `start` | `string` | — | Inline-start text inside the field (prefix), e.g. `https://`. |
66
+ | `startIcon` | `LucideIcon` | — | Icon at the **inline start** (physical left in `ltr`, physical right in `rtl`). |
67
+ | `variant` | `FormFieldVariant` | "outline" | The visual variant of the field shell and control. |
68
+
69
+ ## Related components
70
+
71
+ TextField, Select, NumberField, Textarea, PasswordField
@@ -0,0 +1,125 @@
1
+ # i18n
2
+
3
+ Bridge chrome strings (aria-labels, empty/loading copy) resolve through an optional i18n adapter on `BridgeUIProvider` / `createBridgeUI` (`global.i18n`). Without an adapter, the English source string is returned as-is.
4
+
5
+ Lookup is **gettext-style**: the source English text is the key. Multi-locale
6
+ adapters can keep the active locale internally via optional `setLocale`.
7
+
8
+ ```ts
9
+ const resolveMessage = useResolveMessage();
10
+
11
+ resolveMessage("Hide password");
12
+ ```
13
+
14
+ `useResolveMessage` reads the active adapter from context. **Interpolation and
15
+ pluralization are the adapter’s job** (vue-i18n, i18next, or a custom `t`).
16
+ Bridge `setLocale` updates `global.locale` and calls optional `adapter.setLocale`
17
+ — persistence (localStorage, backend) stays in the app.
18
+
19
+ Implement `I18nAdapter` as a plain object — Bridge only defines the interface.
20
+
21
+ ## Import
22
+
23
+ ```ts
24
+ import { useResolveMessage, type I18nAdapter } from "@bridge-ui/vue";
25
+ ```
26
+
27
+ ## Examples
28
+
29
+ ### Resolve in a component
30
+
31
+ ```vue
32
+ <script setup lang="ts">
33
+ import { useResolveMessage } from "@bridge-ui/vue";
34
+
35
+ const resolveMessage = useResolveMessage();
36
+ </script>
37
+
38
+ <template>
39
+ <button type="button" :aria-label="resolveMessage('Clear selection')">
40
+ Clear
41
+ </button>
42
+ </template>
43
+ ```
44
+
45
+ ### Dictionary adapter
46
+
47
+ Locale-keyed source→string map (no replace/plural). Optional `setLocale`
48
+ updates the active locale used by `t`.
49
+
50
+ ```ts
51
+ import { createBridgeUI } from "@bridge-ui/vue";
52
+ import { createDictionaryI18nAdapter } from "@examples/i18n-dictionary";
53
+
54
+ const i18n = createDictionaryI18nAdapter();
55
+
56
+ const bridge = createBridgeUI({
57
+ global: { i18n, locale: "pt-BR" },
58
+ });
59
+ ```
60
+
61
+ ### Custom adapter
62
+
63
+ ```ts
64
+ import { get } from "es-toolkit/compat";
65
+ import type { I18nAdapter } from "@bridge-ui/vue";
66
+
67
+ const messages: Record<string, Record<string, string>> = {
68
+ "pt-BR": {
69
+ Close: "Fechar",
70
+ "Hide password": "Ocultar senha",
71
+ "Clear selection": "Limpar seleção",
72
+ },
73
+ };
74
+
75
+ let locale = "en-US";
76
+
77
+ const i18n: I18nAdapter = {
78
+ setLocale(next) {
79
+ locale = next;
80
+ },
81
+ t(message) {
82
+ return get(messages, [locale, message], message);
83
+ },
84
+ };
85
+ ```
86
+
87
+ ### vue-i18n (replace & plural)
88
+
89
+ ```ts
90
+ import { createI18n } from "vue-i18n";
91
+ import { createVueI18nAdapter } from "@examples/i18n-vue-i18n";
92
+
93
+ const vueI18n = createI18n({ legacy: false, locale: "en-US", messages: {} });
94
+ const i18n = createVueI18nAdapter(vueI18n.global);
95
+
96
+ const resolveMessage = useResolveMessage();
97
+ resolveMessage("{count} item", { count: 3 });
98
+ // → vue-i18n handles interpolation / plural rules
99
+
100
+ setLocale("pt-BR"); // Bridge locale + i18n.locale via adapter.setLocale
101
+ ```
102
+
103
+ Other ready examples:
104
+
105
+ | File | Library | Replace / plural |
106
+ | -------------------- | -------------------- | ---------------- |
107
+ | `i18n-dictionary.ts` | In-memory dictionary | No (static map) |
108
+ | `i18n-vue-i18n.ts` | vue-i18n | Yes (via lib) |
109
+
110
+ ## Chrome strings
111
+
112
+ | Source (key) |
113
+ | ----------------- |
114
+ | `Close` |
115
+ | `Loading...` |
116
+ | `No options` |
117
+ | `Show password` |
118
+ | `Hide password` |
119
+ | `Clear selection` |
120
+ | `Increment value` |
121
+ | `Decrement value` |
122
+
123
+ ## Related components
124
+
125
+ BridgeUIProvider, PasswordField, NumberField, Select, Listbox, Snackbar
@@ -0,0 +1,88 @@
1
+ # Icon
2
+
3
+ Renders an icon from a semantic name (via the icon adapter) or a concrete icon component, with design-system sizing.
4
+
5
+ Semantic names require an icon adapter on `BridgeUIProvider` / `createBridgeUI` (`global.icons`). Bridge only defines the `IconAdapter` interface — copy an example from `packages/vue/docs/examples/`.
6
+
7
+ ## Import
8
+
9
+ ```ts
10
+ import { Icon } from "@bridge-ui/vue/Components/Icon";
11
+ ```
12
+
13
+ ## Examples
14
+
15
+ ### Icon component
16
+
17
+ ```ts
18
+ import { Info } from "@lucide/vue";
19
+ ```
20
+
21
+ ```vue
22
+ <Icon size="md" :icon="Info" />
23
+ ```
24
+
25
+ ### Semantic name + adapter
26
+
27
+ ```ts
28
+ import { createBridgeUI } from "@bridge-ui/vue";
29
+ import { createLucideIconAdapter } from "@examples/icon-lucide";
30
+
31
+ const icons = createLucideIconAdapter();
32
+
33
+ app.use(
34
+ createBridgeUI({
35
+ global: { icons },
36
+ }),
37
+ );
38
+ ```
39
+
40
+ ```vue
41
+ <Icon size="md" icon="info" />
42
+ ```
43
+
44
+ Other ready examples (same `create*IconAdapter()` shape):
45
+
46
+ | File | Library |
47
+ | --------------------- | --------------------------- |
48
+ | `icon-lucide.ts` | Lucide |
49
+ | `icon-heroicons.ts` | Heroicons (24 outline) |
50
+ | `icon-tabler.ts` | Tabler Icons |
51
+ | `icon-phosphor.ts` | Phosphor Icons |
52
+ | `icon-fontawesome.ts` | Font Awesome 6 (free solid) |
53
+
54
+ ### Font Awesome definitions
55
+
56
+ With the Font Awesome adapter, pass definitions directly — `normalize` wraps them:
57
+
58
+ ```ts
59
+ import { createBridgeUI } from "@bridge-ui/vue";
60
+ import { faCoffee } from "@fortawesome/free-solid-svg-icons";
61
+ import { createFontAwesomeIconAdapter } from "@examples/icon-fontawesome";
62
+
63
+ const icons = createFontAwesomeIconAdapter();
64
+
65
+ app.use(
66
+ createBridgeUI({
67
+ global: { icons },
68
+ }),
69
+ );
70
+ ```
71
+
72
+ ```vue
73
+ <Icon :icon="faCoffee" />
74
+ <Icon icon="info" />
75
+ ```
76
+
77
+ The example also exports `wrapFaIcon` if you need a component outside `<Icon />`.
78
+
79
+ ## Props
80
+
81
+ | Prop | Type | Default | Description |
82
+ | ------ | ------------ | ------- | ---------------------------------------------------------------------------- |
83
+ | `icon` | `IconSource` | — | Semantic name, icon component, or adapter-normalized native value (e.g. FA). |
84
+ | `size` | `IconSize` | "md" | The size of the icon. |
85
+
86
+ ## Related components
87
+
88
+ Button, Alert, TextField, BridgeUIProvider
@@ -0,0 +1,31 @@
1
+ # Label
2
+
3
+ Accessible label element with required and error styling.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { Label } from "@bridge-ui/vue/Components/Label";
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Usage
14
+
15
+ ```vue
16
+ <Label required for="email">Email</Label>
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | Prop | Type | Default | Description |
22
+ | ---------- | -------------- | ------- | --------------------------------------------------- |
23
+ | `classes` | `LabelClasses` | — | The classes to apply to the label. |
24
+ | `error` | `boolean` | `false` | Applies error label colors. |
25
+ | `for` | `string` | — | Associates the label with a form control. |
26
+ | `required` | `boolean` | `false` | Shows a red required asterisk after the label text. |
27
+ | `size` | `LabelSize` | "md" | Typography scale aligned with TextField sizes. |
28
+
29
+ ## Related components
30
+
31
+ FormField, FormControl
@@ -0,0 +1,71 @@
1
+ # Link
2
+
3
+ Styled anchor for in-app and external navigation.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { Link } from "@bridge-ui/vue/Components/Link";
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Usage
14
+
15
+ ```vue
16
+ <Link href="/dashboard">Dashboard</Link>
17
+
18
+ <Link color="primary" underline="hover" href="https://example.com">
19
+ External link
20
+ </Link>
21
+
22
+ <Link href="#" :left-icon="Info">
23
+ With icon
24
+ </Link>
25
+ ```
26
+
27
+ ### States
28
+
29
+ ```vue
30
+ <Link disabled href="/button">
31
+ Disabled
32
+ </Link>
33
+
34
+ <Link external href="https://example.com">
35
+ External
36
+ </Link>
37
+ ```
38
+
39
+ ### customProps
40
+
41
+ ```vue
42
+ <Link
43
+ href="#"
44
+ :left-icon="ExternalLink"
45
+ :custom-props="{
46
+ leftIcon: { 'aria-hidden': true },
47
+ root: { id: 'docs-link', target: '_blank', rel: 'noopener noreferrer' },
48
+ }"
49
+ >
50
+ Open documentation
51
+ </Link>
52
+ ```
53
+
54
+ ## Props
55
+
56
+ | Prop | Type | Default | Description |
57
+ | ------------- | ----------------- | --------- | --------------------------------------------------------------------------------------------------------------------- |
58
+ | `classes` | `LinkClasses` | — | The classes to apply to the link. |
59
+ | `color` | `LinkColor` | "primary" | The color to apply to the link. |
60
+ | `customProps` | `LinkCustomProps` | — | Extra props for internal parts (`leftIcon`, `rightIcon`, etc.). Root HTML attributes stay on the component top level. |
61
+ | `disabled` | `boolean` | `false` | Whether the link is disabled. |
62
+ | `external` | `boolean` | `false` | Whether the link opens in a new tab. |
63
+ | `href` | `string` | — | The URL the link points to. |
64
+ | `leftIcon` | `LucideIcon` | — | The icon to display before the link text. |
65
+ | `rightIcon` | `LucideIcon` | — | The icon to display after the link text. |
66
+ | `size` | `LinkSize` | "md" | The size of the link. |
67
+ | `underline` | `LinkUnderline` | "hover" | The underline behavior of the link. |
68
+
69
+ ## Related components
70
+
71
+ Button