@bridge-ui/vue 0.0.8 → 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 (313) hide show
  1. package/ai/skills/bridge-ui-components/SKILL.md +26 -15
  2. package/ai/skills/bridge-ui-forms/SKILL.md +22 -14
  3. package/ai/skills/bridge-ui-setup/SKILL.md +9 -9
  4. package/dist/Actions/BridgeUIHosts.vue_vue_type_script_setup_true_lang.js +1 -1
  5. package/dist/Actions/Dialog/BridgeDialogAction.vue_vue_type_script_setup_true_lang.js +1 -1
  6. package/dist/Actions/Dialog/BridgeDialogHost.vue_vue_type_script_setup_true_lang.js +1 -1
  7. package/dist/Actions/Dialog/BridgeDialogItem.vue_vue_type_script_setup_true_lang.js +5 -5
  8. package/dist/Actions/Dialog/ResolveBridgeDialogFooter.vue_vue_type_script_setup_true_lang.js +1 -1
  9. package/dist/Actions/Drawer/BridgeDrawerHost.vue_vue_type_script_setup_true_lang.js +1 -1
  10. package/dist/Actions/Modal/BridgeModalHost.vue_vue_type_script_setup_true_lang.js +1 -1
  11. package/dist/Actions/Snackbar/BridgeSnackbarAction.vue_vue_type_script_setup_true_lang.js +8 -8
  12. package/dist/Actions/Snackbar/BridgeSnackbarHost.vue_vue_type_script_setup_true_lang.js +5 -2
  13. package/dist/Actions/Snackbar/BridgeSnackbarItem.vue_vue_type_script_setup_true_lang.js +1 -1
  14. package/dist/Adapters/Date/index.d.ts +1 -0
  15. package/dist/Adapters/Date/index.js +2 -0
  16. package/dist/Adapters/Date/useDateAdapter.d.ts +17 -0
  17. package/dist/Adapters/Date/useDateAdapter.js +21 -0
  18. package/dist/Adapters/index.d.ts +1 -0
  19. package/dist/Adapters/index.js +4 -3
  20. package/dist/Components/Alert/Alert.vue_vue_type_script_setup_true_lang.js +1 -1
  21. package/dist/Components/Alert/composables/useAlert.js +13 -1
  22. package/dist/Components/Autocomplete/Autocomplete.vue.d.ts +2 -0
  23. package/dist/Components/Autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +17 -10
  24. package/dist/Components/Autocomplete/AutocompleteOption.vue_vue_type_script_setup_true_lang.js +1 -1
  25. package/dist/Components/Autocomplete/autocomplete.types.d.ts +19 -1
  26. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +5 -0
  27. package/dist/Components/Autocomplete/composables/useAutocomplete.js +207 -179
  28. package/dist/Components/Avatar/Avatar.vue_vue_type_script_setup_true_lang.js +1 -1
  29. package/dist/Components/Avatar/composables/useAvatar.js +13 -1
  30. package/dist/Components/Badge/Badge.vue_vue_type_script_setup_true_lang.js +1 -1
  31. package/dist/Components/Badge/composables/useBadge.js +10 -1
  32. package/dist/Components/BaseField/BaseField.vue_vue_type_script_setup_true_lang.js +2 -2
  33. package/dist/Components/BaseField/BaseFieldLabel.vue_vue_type_script_setup_true_lang.js +1 -1
  34. package/dist/Components/BaseField/composables/useBaseField.js +10 -7
  35. package/dist/Components/Button/Button.vue_vue_type_script_setup_true_lang.js +1 -1
  36. package/dist/Components/Button/composables/useButton.d.ts +1 -1
  37. package/dist/Components/Button/composables/useButton.js +10 -1
  38. package/dist/Components/Calendar/Calendar.js +5 -0
  39. package/dist/Components/Calendar/Calendar.vue.d.ts +21 -0
  40. package/dist/Components/Calendar/Calendar.vue_vue_type_script_setup_true_lang.js +139 -0
  41. package/dist/Components/Calendar/calendar.types.d.ts +287 -0
  42. package/dist/Components/Calendar/composables/useCalendar.d.ts +875 -0
  43. package/dist/Components/Calendar/composables/useCalendar.js +173 -0
  44. package/dist/Components/Calendar/index.d.ts +3 -0
  45. package/dist/Components/Calendar/index.js +3 -0
  46. package/dist/Components/CalendarDate/CalendarDate.js +5 -0
  47. package/dist/Components/CalendarDate/CalendarDate.vue.d.ts +19 -0
  48. package/dist/Components/CalendarDate/CalendarDate.vue_vue_type_script_setup_true_lang.js +56 -0
  49. package/dist/Components/CalendarDate/calendarDate.types.d.ts +257 -0
  50. package/dist/Components/CalendarDate/composables/useCalendarDate.d.ts +39 -0
  51. package/dist/Components/CalendarDate/composables/useCalendarDate.js +181 -0
  52. package/dist/Components/CalendarDate/index.d.ts +3 -0
  53. package/dist/Components/CalendarDate/index.js +3 -0
  54. package/dist/Components/CalendarMonth/CalendarMonth.js +5 -0
  55. package/dist/Components/CalendarMonth/CalendarMonth.vue.d.ts +8 -0
  56. package/dist/Components/CalendarMonth/CalendarMonth.vue_vue_type_script_setup_true_lang.js +32 -0
  57. package/dist/Components/CalendarMonth/calendarMonth.types.d.ts +135 -0
  58. package/dist/Components/CalendarMonth/composables/useCalendarMonth.d.ts +29 -0
  59. package/dist/Components/CalendarMonth/composables/useCalendarMonth.js +104 -0
  60. package/dist/Components/CalendarMonth/index.d.ts +3 -0
  61. package/dist/Components/CalendarMonth/index.js +3 -0
  62. package/dist/Components/CalendarRange/CalendarRange.js +5 -0
  63. package/dist/Components/CalendarRange/CalendarRange.vue.d.ts +19 -0
  64. package/dist/Components/CalendarRange/CalendarRange.vue_vue_type_script_setup_true_lang.js +187 -0
  65. package/dist/Components/CalendarRange/calendarRange.types.d.ts +333 -0
  66. package/dist/Components/CalendarRange/composables/useCalendarRange.d.ts +1891 -0
  67. package/dist/Components/CalendarRange/composables/useCalendarRange.js +253 -0
  68. package/dist/Components/CalendarRange/index.d.ts +3 -0
  69. package/dist/Components/CalendarRange/index.js +3 -0
  70. package/dist/Components/CalendarYear/CalendarYear.js +5 -0
  71. package/dist/Components/CalendarYear/CalendarYear.vue.d.ts +8 -0
  72. package/dist/Components/CalendarYear/CalendarYear.vue_vue_type_script_setup_true_lang.js +34 -0
  73. package/dist/Components/CalendarYear/calendarYear.types.d.ts +141 -0
  74. package/dist/Components/CalendarYear/composables/useCalendarYear.d.ts +30 -0
  75. package/dist/Components/CalendarYear/composables/useCalendarYear.js +108 -0
  76. package/dist/Components/CalendarYear/index.d.ts +3 -0
  77. package/dist/Components/CalendarYear/index.js +3 -0
  78. package/dist/Components/Card/Card.vue_vue_type_script_setup_true_lang.js +1 -1
  79. package/dist/Components/Card/composables/useCard.js +14 -3
  80. package/dist/Components/Checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +2 -2
  81. package/dist/Components/Checkbox/composables/useCheckbox.js +10 -1
  82. package/dist/Components/Chip/Chip.vue_vue_type_script_setup_true_lang.js +1 -1
  83. package/dist/Components/Chip/composables/useChip.js +7 -4
  84. package/dist/Components/DateField/DateField.js +5 -0
  85. package/dist/Components/DateField/DateField.vue.d.ts +32 -0
  86. package/dist/Components/DateField/DateField.vue_vue_type_script_setup_true_lang.js +158 -0
  87. package/dist/Components/DateField/composables/useDateField.d.ts +725 -0
  88. package/dist/Components/DateField/composables/useDateField.js +169 -0
  89. package/dist/Components/DateField/dateField.types.d.ts +206 -0
  90. package/dist/Components/DateField/index.d.ts +3 -0
  91. package/dist/Components/DateField/index.js +3 -0
  92. package/dist/Components/DatePicker/DatePicker.js +5 -0
  93. package/dist/Components/DatePicker/DatePicker.vue.d.ts +17 -0
  94. package/dist/Components/DatePicker/DatePicker.vue_vue_type_script_setup_true_lang.js +104 -0
  95. package/dist/Components/DatePicker/composables/useDatePicker.d.ts +28 -0
  96. package/dist/Components/DatePicker/composables/useDatePicker.js +91 -0
  97. package/dist/Components/DatePicker/datePicker.types.d.ts +233 -0
  98. package/dist/Components/DatePicker/index.d.ts +3 -0
  99. package/dist/Components/DatePicker/index.js +3 -0
  100. package/dist/Components/DateRangeField/DateRangeField.js +5 -0
  101. package/dist/Components/DateRangeField/DateRangeField.vue.d.ts +32 -0
  102. package/dist/Components/DateRangeField/DateRangeField.vue_vue_type_script_setup_true_lang.js +152 -0
  103. package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +723 -0
  104. package/dist/Components/DateRangeField/composables/useDateRangeField.js +143 -0
  105. package/dist/Components/DateRangeField/dateRangeField.types.d.ts +195 -0
  106. package/dist/Components/DateRangeField/index.d.ts +3 -0
  107. package/dist/Components/DateRangeField/index.js +3 -0
  108. package/dist/Components/DateRangePicker/DateRangePicker.js +5 -0
  109. package/dist/Components/DateRangePicker/DateRangePicker.vue.d.ts +17 -0
  110. package/dist/Components/DateRangePicker/DateRangePicker.vue_vue_type_script_setup_true_lang.js +99 -0
  111. package/dist/Components/DateRangePicker/composables/useDateRangePicker.d.ts +28 -0
  112. package/dist/Components/DateRangePicker/composables/useDateRangePicker.js +89 -0
  113. package/dist/Components/DateRangePicker/dateRangePicker.types.d.ts +218 -0
  114. package/dist/Components/DateRangePicker/index.d.ts +3 -0
  115. package/dist/Components/DateRangePicker/index.js +3 -0
  116. package/dist/Components/DateTimeField/DateTimeField.js +5 -0
  117. package/dist/Components/DateTimeField/DateTimeField.vue.d.ts +31 -0
  118. package/dist/Components/DateTimeField/DateTimeField.vue_vue_type_script_setup_true_lang.js +141 -0
  119. package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +724 -0
  120. package/dist/Components/DateTimeField/composables/useDateTimeField.js +151 -0
  121. package/dist/Components/DateTimeField/dateTimeField.types.d.ts +230 -0
  122. package/dist/Components/DateTimeField/index.d.ts +3 -0
  123. package/dist/Components/DateTimeField/index.js +3 -0
  124. package/dist/Components/DateTimePicker/DateTimePicker.js +5 -0
  125. package/dist/Components/DateTimePicker/DateTimePicker.vue.d.ts +17 -0
  126. package/dist/Components/DateTimePicker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +156 -0
  127. package/dist/Components/DateTimePicker/composables/useDateTimePicker.d.ts +46 -0
  128. package/dist/Components/DateTimePicker/composables/useDateTimePicker.js +98 -0
  129. package/dist/Components/DateTimePicker/dateTimePicker.types.d.ts +272 -0
  130. package/dist/Components/DateTimePicker/index.d.ts +3 -0
  131. package/dist/Components/DateTimePicker/index.js +3 -0
  132. package/dist/Components/DateTimeRangeField/DateTimeRangeField.js +5 -0
  133. package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue.d.ts +32 -0
  134. package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue_vue_type_script_setup_true_lang.js +141 -0
  135. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +726 -0
  136. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.js +155 -0
  137. package/dist/Components/DateTimeRangeField/dateTimeRangeField.types.d.ts +231 -0
  138. package/dist/Components/DateTimeRangeField/index.d.ts +3 -0
  139. package/dist/Components/DateTimeRangeField/index.js +3 -0
  140. package/dist/Components/DateTimeRangePicker/DateTimeRangePicker.js +5 -0
  141. package/dist/Components/DateTimeRangePicker/DateTimeRangePicker.vue.d.ts +17 -0
  142. package/dist/Components/DateTimeRangePicker/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js +209 -0
  143. package/dist/Components/DateTimeRangePicker/composables/useDateTimeRangePicker.d.ts +49 -0
  144. package/dist/Components/DateTimeRangePicker/composables/useDateTimeRangePicker.js +112 -0
  145. package/dist/Components/DateTimeRangePicker/dateTimeRangePicker.types.d.ts +272 -0
  146. package/dist/Components/DateTimeRangePicker/index.d.ts +3 -0
  147. package/dist/Components/DateTimeRangePicker/index.js +3 -0
  148. package/dist/Components/Divider/Divider.vue_vue_type_script_setup_true_lang.js +1 -1
  149. package/dist/Components/Divider/composables/useDivider.js +7 -1
  150. package/dist/Components/Drawer/Drawer.vue.d.ts +6 -6
  151. package/dist/Components/Drawer/Drawer.vue_vue_type_script_setup_true_lang.js +11 -11
  152. package/dist/Components/Drawer/composables/useDrawer.d.ts +1 -1
  153. package/dist/Components/Drawer/composables/useDrawer.js +11 -2
  154. package/dist/Components/FieldOverlay/FieldOverlay.js +5 -0
  155. package/dist/Components/FieldOverlay/FieldOverlay.vue.d.ts +26 -0
  156. package/dist/Components/FieldOverlay/FieldOverlay.vue_vue_type_script_setup_true_lang.js +63 -0
  157. package/dist/Components/FieldOverlay/composables/useFieldOverlay.d.ts +15 -0
  158. package/dist/Components/FieldOverlay/composables/useFieldOverlay.js +36 -0
  159. package/dist/Components/FieldOverlay/fieldOverlay.types.d.ts +63 -0
  160. package/dist/Components/FieldOverlay/index.d.ts +4 -0
  161. package/dist/Components/FieldOverlay/index.js +3 -0
  162. package/dist/Components/FormControl/FormControl.vue_vue_type_script_setup_true_lang.js +2 -2
  163. package/dist/Components/FormControl/FormControlLabel.vue_vue_type_script_setup_true_lang.js +1 -1
  164. package/dist/Components/FormControl/composables/useFormControl.js +1 -1
  165. package/dist/Components/FormField/FilledFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  166. package/dist/Components/FormField/FormField.vue_vue_type_script_setup_true_lang.js +1 -1
  167. package/dist/Components/FormField/FormFieldLabel.vue_vue_type_script_setup_true_lang.js +1 -1
  168. package/dist/Components/FormField/NotchedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  169. package/dist/Components/FormField/OutlinedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  170. package/dist/Components/FormField/StackedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  171. package/dist/Components/FormField/UnderlinedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  172. package/dist/Components/FormField/composables/useFormField.d.ts +1 -1
  173. package/dist/Components/FormField/composables/useFormField.js +19 -7
  174. package/dist/Components/Icon/Icon.vue_vue_type_script_setup_true_lang.js +1 -1
  175. package/dist/Components/Icon/composables/useIcon.js +4 -1
  176. package/dist/Components/Label/Label.vue_vue_type_script_setup_true_lang.js +1 -1
  177. package/dist/Components/Label/composables/useLabel.js +5 -2
  178. package/dist/Components/Link/Link.vue_vue_type_script_setup_true_lang.js +1 -1
  179. package/dist/Components/Link/composables/useLink.js +10 -1
  180. package/dist/Components/List/List.vue_vue_type_script_setup_true_lang.js +1 -1
  181. package/dist/Components/List/composables/useList.js +4 -4
  182. package/dist/Components/ListItem/ListItem.vue_vue_type_script_setup_true_lang.js +1 -1
  183. package/dist/Components/ListSection/ListSection.vue_vue_type_script_setup_true_lang.js +4 -4
  184. package/dist/Components/Listbox/Listbox.vue.d.ts +9 -4
  185. package/dist/Components/Listbox/Listbox.vue_vue_type_script_setup_true_lang.js +92 -71
  186. package/dist/Components/Listbox/composables/useListbox.d.ts +8 -1
  187. package/dist/Components/Listbox/composables/useListbox.js +59 -37
  188. package/dist/Components/Listbox/listbox.types.d.ts +68 -4
  189. package/dist/Components/Menu/Menu.vue.d.ts +4 -4
  190. package/dist/Components/Menu/Menu.vue_vue_type_script_setup_true_lang.js +12 -12
  191. package/dist/Components/Menu/composables/useMenu.d.ts +1 -1
  192. package/dist/Components/Menu/composables/useMenu.js +9 -5
  193. package/dist/Components/Modal/Modal.vue.d.ts +6 -6
  194. package/dist/Components/Modal/Modal.vue_vue_type_script_setup_true_lang.js +11 -11
  195. package/dist/Components/Modal/composables/useModal.d.ts +1 -1
  196. package/dist/Components/Modal/composables/useModal.js +11 -2
  197. package/dist/Components/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js +3 -3
  198. package/dist/Components/OtpField/OtpField.vue_vue_type_script_setup_true_lang.js +11 -11
  199. package/dist/Components/OtpField/composables/useOtpField.js +33 -21
  200. package/dist/Components/PasswordField/PasswordField.vue_vue_type_script_setup_true_lang.js +3 -3
  201. package/dist/Components/Progress/Progress.vue_vue_type_script_setup_true_lang.js +1 -1
  202. package/dist/Components/Progress/composables/useProgress.js +13 -1
  203. package/dist/Components/Radio/Radio.vue_vue_type_script_setup_true_lang.js +11 -11
  204. package/dist/Components/Radio/composables/useRadio.js +10 -1
  205. package/dist/Components/Select/Select.vue.d.ts +2 -0
  206. package/dist/Components/Select/Select.vue_vue_type_script_setup_true_lang.js +17 -10
  207. package/dist/Components/Select/SelectOption.vue_vue_type_script_setup_true_lang.js +1 -1
  208. package/dist/Components/Select/composables/useSelect.d.ts +5 -0
  209. package/dist/Components/Select/composables/useSelect.js +220 -192
  210. package/dist/Components/Select/select.types.d.ts +19 -1
  211. package/dist/Components/Skeleton/Skeleton.vue_vue_type_script_setup_true_lang.js +1 -1
  212. package/dist/Components/Skeleton/composables/useSkeleton.js +5 -2
  213. package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +13 -13
  214. package/dist/Components/Slider/composables/useSlider.d.ts +4 -1
  215. package/dist/Components/Slider/composables/useSlider.js +192 -187
  216. package/dist/Components/Slider/slider.types.d.ts +8 -0
  217. package/dist/Components/Snackbar/Snackbar.vue_vue_type_script_setup_true_lang.js +42 -42
  218. package/dist/Components/Snackbar/composables/useSnackbar.js +16 -3
  219. package/dist/Components/Spinner/Spinner.vue_vue_type_script_setup_true_lang.js +1 -1
  220. package/dist/Components/Spinner/composables/useSpinner.js +10 -1
  221. package/dist/Components/Switch/Switch.vue_vue_type_script_setup_true_lang.js +12 -12
  222. package/dist/Components/Switch/composables/useSwitch.js +10 -1
  223. package/dist/Components/Tab/Tab.vue_vue_type_script_setup_true_lang.js +1 -1
  224. package/dist/Components/TabItem/TabItem.vue_vue_type_script_setup_true_lang.js +3 -2
  225. package/dist/Components/TabList/TabList.vue_vue_type_script_setup_true_lang.js +1 -1
  226. package/dist/Components/TabPanel/TabPanel.vue_vue_type_script_setup_true_lang.js +1 -1
  227. package/dist/Components/Tabs/Tabs.vue_vue_type_script_setup_true_lang.js +8 -8
  228. package/dist/Components/TextField/TextField.vue_vue_type_script_setup_true_lang.js +2 -2
  229. package/dist/Components/Textarea/Textarea.vue_vue_type_script_setup_true_lang.js +2 -2
  230. package/dist/Components/Textarea/composables/useTextarea.js +4 -1
  231. package/dist/Components/TimeField/TimeField.js +5 -0
  232. package/dist/Components/TimeField/TimeField.vue.d.ts +32 -0
  233. package/dist/Components/TimeField/TimeField.vue_vue_type_script_setup_true_lang.js +134 -0
  234. package/dist/Components/TimeField/composables/useTimeField.d.ts +733 -0
  235. package/dist/Components/TimeField/composables/useTimeField.js +147 -0
  236. package/dist/Components/TimeField/index.d.ts +3 -0
  237. package/dist/Components/TimeField/index.js +3 -0
  238. package/dist/Components/TimeField/timeField.types.d.ts +155 -0
  239. package/dist/Components/TimePanel/TimePanel.js +5 -0
  240. package/dist/Components/TimePanel/TimePanel.vue.d.ts +8 -0
  241. package/dist/Components/TimePanel/TimePanel.vue_vue_type_script_setup_true_lang.js +62 -0
  242. package/dist/Components/TimePanel/composables/useTimePanel.d.ts +58 -0
  243. package/dist/Components/TimePanel/composables/useTimePanel.js +180 -0
  244. package/dist/Components/TimePanel/index.d.ts +3 -0
  245. package/dist/Components/TimePanel/index.js +3 -0
  246. package/dist/Components/TimePanel/timePanel.types.d.ts +147 -0
  247. package/dist/Components/TimePicker/TimePicker.js +5 -0
  248. package/dist/Components/TimePicker/TimePicker.vue.d.ts +10 -0
  249. package/dist/Components/TimePicker/TimePicker.vue_vue_type_script_setup_true_lang.js +82 -0
  250. package/dist/Components/TimePicker/composables/useTimePicker.d.ts +31 -0
  251. package/dist/Components/TimePicker/composables/useTimePicker.js +84 -0
  252. package/dist/Components/TimePicker/index.d.ts +3 -0
  253. package/dist/Components/TimePicker/index.js +3 -0
  254. package/dist/Components/TimePicker/timePicker.types.d.ts +176 -0
  255. package/dist/Components/TimeRangeField/TimeRangeField.js +5 -0
  256. package/dist/Components/TimeRangeField/TimeRangeField.vue.d.ts +32 -0
  257. package/dist/Components/TimeRangeField/TimeRangeField.vue_vue_type_script_setup_true_lang.js +134 -0
  258. package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +725 -0
  259. package/dist/Components/TimeRangeField/composables/useTimeRangeField.js +143 -0
  260. package/dist/Components/TimeRangeField/index.d.ts +3 -0
  261. package/dist/Components/TimeRangeField/index.js +3 -0
  262. package/dist/Components/TimeRangeField/timeRangeField.types.d.ts +155 -0
  263. package/dist/Components/TimeRangePicker/TimeRangePicker.js +5 -0
  264. package/dist/Components/TimeRangePicker/TimeRangePicker.vue.d.ts +10 -0
  265. package/dist/Components/TimeRangePicker/TimeRangePicker.vue_vue_type_script_setup_true_lang.js +116 -0
  266. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.d.ts +40 -0
  267. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.js +123 -0
  268. package/dist/Components/TimeRangePicker/index.d.ts +3 -0
  269. package/dist/Components/TimeRangePicker/index.js +3 -0
  270. package/dist/Components/TimeRangePicker/timeRangePicker.types.d.ts +232 -0
  271. package/dist/Components/Tooltip/Tooltip.vue.d.ts +2 -2
  272. package/dist/Components/Tooltip/Tooltip.vue_vue_type_script_setup_true_lang.js +14 -14
  273. package/dist/Components/Tooltip/composables/useTooltip.d.ts +1 -1
  274. package/dist/Components/Tooltip/composables/useTooltip.js +10 -1
  275. package/dist/Provider/BridgeUIProvider.vue_vue_type_script_setup_true_lang.js +4 -4
  276. package/dist/Provider/createBridgeUI.js +3 -3
  277. package/dist/Utils/slotOrProp.js +1 -1
  278. package/dist/index.d.ts +39 -0
  279. package/dist/index.js +127 -88
  280. package/dist/theme.css +8 -8
  281. package/docs/README.md +19 -1
  282. package/docs/components/Autocomplete.md +44 -30
  283. package/docs/components/BridgeUIProvider.md +22 -5
  284. package/docs/components/Calendar.md +96 -0
  285. package/docs/components/CalendarDate.md +71 -0
  286. package/docs/components/CalendarMonth.md +52 -0
  287. package/docs/components/CalendarRange.md +83 -0
  288. package/docs/components/CalendarYear.md +53 -0
  289. package/docs/components/DateField.md +103 -0
  290. package/docs/components/DatePicker.md +80 -0
  291. package/docs/components/DateRangeField.md +88 -0
  292. package/docs/components/DateRangePicker.md +70 -0
  293. package/docs/components/DateTimeField.md +92 -0
  294. package/docs/components/DateTimePicker.md +74 -0
  295. package/docs/components/DateTimeRangeField.md +90 -0
  296. package/docs/components/DateTimeRangePicker.md +74 -0
  297. package/docs/components/FieldOverlay.md +91 -0
  298. package/docs/components/Select.md +43 -29
  299. package/docs/components/TimeField.md +81 -0
  300. package/docs/components/TimePanel.md +56 -0
  301. package/docs/components/TimePicker.md +61 -0
  302. package/docs/components/TimeRangeField.md +79 -0
  303. package/docs/components/TimeRangePicker.md +64 -0
  304. package/docs/examples/date-date-fns.ts +286 -0
  305. package/docs/examples/date-dayjs.ts +327 -0
  306. package/docs/examples/date-luxon.ts +332 -0
  307. package/docs/examples/date-moment.ts +334 -0
  308. package/docs/examples/icon-fontawesome.ts +8 -0
  309. package/docs/examples/icon-heroicons.ts +8 -0
  310. package/docs/examples/icon-lucide.ts +8 -0
  311. package/docs/examples/icon-phosphor.ts +8 -0
  312. package/docs/examples/icon-tabler.ts +8 -0
  313. package/package.json +18 -12
@@ -2,19 +2,20 @@ import { useResolveMessage as e } from "../../Adapters/I18n/useI18nAdapter.js";
2
2
  import { hasNamedSlot as t, resolveNamedSlot as n } from "../../Utils/slotOrProp.js";
3
3
  import { mergeNestedComponentProps as r } from "../../Utils/index.js";
4
4
  import { useListbox as ee } from "./composables/useListbox.js";
5
- import te from "../List/List.js";
6
- import { LISTBOX_INJECTION_KEY as i } from "./listboxInjectionKey.js";
7
- import a from "../ListItem/ListItem.js";
8
- import o from "../ListSection/ListSection.js";
9
- import s from "../Menu/Menu.js";
10
- import ne from "../Progress/Progress.js";
11
- import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createSlots as m, createVNode as h, defineComponent as g, guardReactiveProps as _, mergeModels as v, mergeProps as y, normalizeProps as b, openBlock as x, provide as S, ref as C, renderList as w, renderSlot as T, resolveDynamicComponent as E, toDisplayString as D, unref as O, useModel as re, useSlots as ie, watch as k, withCtx as A } from "vue";
12
- import { cn as ae, entriesFromListboxOptions as oe, flattenListboxOptions as j, mapListboxEntriesToRows as M } from "@bridge-ui/core";
13
- import { isNil as N } from "es-toolkit/compat";
5
+ import i from "../Button/Button.js";
6
+ import te from "../FieldOverlay/FieldOverlay.js";
7
+ import ne from "../List/List.js";
8
+ import { LISTBOX_INJECTION_KEY as re } from "./listboxInjectionKey.js";
9
+ import ie from "../ListItem/ListItem.js";
10
+ import a from "../ListSection/ListSection.js";
11
+ import o from "../Progress/Progress.js";
12
+ import { Fragment as s, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createSlots as p, createTextVNode as m, createVNode as h, defineComponent as g, guardReactiveProps as _, mergeModels as v, mergeProps as y, normalizeClass as b, normalizeProps as x, openBlock as S, provide as C, ref as w, renderList as T, renderSlot as E, resolveDynamicComponent as D, toDisplayString as O, unref as k, useModel as ae, useSlots as oe, watch as A, withCtx as j } from "vue";
13
+ import { cn as se, entriesFromListboxOptions as ce, flattenListboxOptions as M, mapListboxEntriesToRows as N } from "@bridge-ui/core";
14
+ import { isNil as P } from "es-toolkit/compat";
14
15
  //#region src/Components/Listbox/Listbox.vue?vue&type=script&setup=true&lang.ts
15
- var P = { key: 1 }, F = /* @__PURE__ */ g({
16
+ var F = { key: 1 }, I = /*@__PURE__*/ g({
16
17
  __name: "Listbox",
17
- props: /* @__PURE__ */ v({
18
+ props: /*@__PURE__*/ v({
18
19
  anchorEl: {},
19
20
  classes: {},
20
21
  color: { default: "primary" },
@@ -47,12 +48,14 @@ var P = { key: 1 }, F = /* @__PURE__ */ g({
47
48
  default: !1
48
49
  },
49
50
  options: {},
51
+ overlay: { default: "auto" },
50
52
  placement: { default: "bottom-start" },
51
53
  rounded: {},
52
54
  showCheckmark: {
53
55
  type: Boolean,
54
56
  default: !0
55
57
  },
58
+ showFooter: { type: Boolean },
56
59
  size: { default: "md" }
57
60
  }, {
58
61
  modelValue: {
@@ -61,97 +64,106 @@ var P = { key: 1 }, F = /* @__PURE__ */ g({
61
64
  },
62
65
  modelModifiers: {}
63
66
  }),
64
- emits: /* @__PURE__ */ v([
67
+ emits: /*@__PURE__*/ v([
68
+ "apply",
69
+ "cancel",
65
70
  "registered-options-change",
66
71
  "select",
67
72
  "show-change"
68
73
  ], ["update:modelValue"]),
69
74
  setup(g, { emit: v }) {
70
- let F = ie(), I = v, L = re(g, "modelValue");
71
- k(L, (e) => {
72
- I("show-change", e);
75
+ let I = oe(), L = v, R = ae(g, "modelValue");
76
+ A(R, (e) => {
77
+ L("show-change", e);
73
78
  });
74
- let R = g, z = e(), B = l(() => R.emptyMessage ?? z("No options")), V = l(() => R.loadingMessage ?? z("Loading...")), { merged: H, checkClass: U, scrollBind: W, messageBind: G, sizeClasses: K, mergedClasses: q, optionSelectedClass: se, optionHighlightedClass: ce } = ee(R, {
79
+ let z = g, B = e(), V = c(() => z.emptyMessage ?? B("No options")), H = c(() => z.loadingMessage ?? B("Loading...")), { merged: U, checkClass: W, scrollBind: G, footerBind: le, showFooter: ue, applyLabel: de, cancelLabel: fe, messageBind: K, surfaceBind: pe, sizeClasses: me, mergedClasses: q, applyButtonProps: he, cancelButtonProps: ge, optionSelectedClass: _e, optionHighlightedClass: ve } = ee(z, {
75
80
  size: "md",
76
81
  color: "primary"
77
- }, { componentName: R.componentName }), le = l(() => R.options ?? []), J = l(() => R.entries ? R.entries : oe(le.value)), Y = l(() => j(J.value)), X = l(() => t(F, "default")), Z = l(() => !R.loading && !X.value && Y.value.length === 0 && R.hideEmptyMessage !== !0), ue = l(() => ae(U.value, q.value.check)), Q = C([]);
82
+ }, { componentName: z.componentName }), ye = c(() => z.options ?? []), J = c(() => z.entries ? z.entries : ce(ye.value)), Y = c(() => M(J.value)), X = c(() => t(I, "default")), Z = c(() => !z.loading && !X.value && Y.value.length === 0 && z.hideEmptyMessage !== !0), be = c(() => se(W.value, q.value.check)), Q = w([]);
78
83
  function $(e) {
79
- return R.isSelected?.(e) ?? !1;
84
+ return z.isSelected?.(e) ?? !1;
80
85
  }
81
- function de(e) {
82
- e.disabled || I("select", e);
86
+ function xe(e) {
87
+ e.disabled || L("select", e);
83
88
  }
84
- function fe(e) {
89
+ function Se(e) {
85
90
  return Q.value.some((t) => String(t.value) === String(e.value)) || (Q.value = [...Q.value, e]), () => {
86
91
  Q.value = Q.value.filter((t) => String(t.value) !== String(e.value));
87
92
  };
88
93
  }
89
- function pe(e) {
94
+ function Ce(e) {
90
95
  return (X.value ? Q.value : Y.value).findIndex((t) => String(t.value) === String(e));
91
96
  }
92
- k(Q, (e) => {
93
- X.value && I("registered-options-change", e);
94
- }, { deep: !0 }), S(i, l(() => ({
95
- getOptionIndex: pe,
96
- registerOption: fe,
97
- onSelect: de,
98
- listboxId: R.listboxId,
97
+ A(Q, (e) => {
98
+ X.value && L("registered-options-change", e);
99
+ }, { deep: !0 });
100
+ let we = c(() => ({
101
+ getOptionIndex: Ce,
102
+ registerOption: Se,
103
+ onSelect: xe,
104
+ listboxId: z.listboxId,
99
105
  isSelected: $,
100
- sizeClasses: K.value,
101
- showCheckmark: R.showCheckmark,
102
- checkClass: ue.value,
103
- highlightedIndex: R.highlightedIndex,
104
- optionSelectedClass: se.value,
105
- optionHighlightedClass: ce.value,
106
+ sizeClasses: me.value,
107
+ showCheckmark: z.showCheckmark,
108
+ checkClass: be.value,
109
+ highlightedIndex: z.highlightedIndex,
110
+ optionSelectedClass: _e.value,
111
+ optionHighlightedClass: ve.value,
106
112
  mergedClasses: {
107
113
  optionSelected: q.value.optionSelected,
108
114
  optionHighlighted: q.value.optionHighlighted
109
115
  }
110
- })));
111
- let me = l(() => M(J.value, $)), he = l(() => H.value.customProps?.menu), ge = l(() => H.value.customProps?.list), _e = l(() => H.value.customProps?.listItem), ve = l(() => H.value.customProps?.progress), ye = l(() => H.value.customProps?.listSection), be = l(() => ({
112
- ...N(R.rounded) ? {} : { rounded: R.rounded },
113
- ...he.value
114
- })), xe = l(() => ({
116
+ }));
117
+ C(re, we);
118
+ let Te = c(() => N(J.value, $)), Ee = c(() => U.value.customProps?.menu), De = c(() => U.value.customProps?.modal), Oe = c(() => U.value.customProps?.drawer), ke = c(() => U.value.customProps?.list), Ae = c(() => U.value.customProps?.listItem), je = c(() => U.value.customProps?.progress), Me = c(() => U.value.customProps?.listSection), Ne = c(() => ({
119
+ modal: De.value,
120
+ drawer: Oe.value,
121
+ menu: {
122
+ anchorEl: z.anchorEl,
123
+ placement: z.placement,
124
+ disableAutoFocus: z.disableAutoFocus,
125
+ ...P(z.rounded) ? {} : { rounded: z.rounded },
126
+ ...Ee.value
127
+ }
128
+ })), Pe = c(() => ({
115
129
  size: "xs",
116
130
  "aria-hidden": !0,
117
- color: H.value.color,
118
- ...r(ve.value, {
131
+ color: U.value.color,
132
+ ...r(je.value, {
119
133
  class: "shrink-0",
120
134
  classes: { bar: q.value.loading }
121
135
  })
122
- })), Se = l(() => ({
136
+ })), Fe = c(() => ({
123
137
  dense: !0,
124
138
  role: "listbox",
125
- id: R.listboxId,
126
- "aria-labelledby": R.labelledBy,
127
- "aria-multiselectable": R.multiple || void 0,
128
- ...r(ge.value, { class: "p-0" })
139
+ id: z.listboxId,
140
+ "aria-labelledby": z.labelledBy,
141
+ "aria-multiselectable": z.multiple || void 0,
142
+ ...r(ke.value, { class: "p-0" })
129
143
  }));
130
- return (e, r) => (x(), u(O(s), y({
131
- modelValue: L.value,
132
- "onUpdate:modelValue": r[0] ||= (e) => L.value = e,
133
- "anchor-el": g.anchorEl,
134
- placement: g.placement,
135
- "close-on-click-away": !0,
136
- "disable-auto-focus": g.disableAutoFocus
137
- }, be.value), {
138
- default: A(() => [
139
- O(t)(O(F), "beforeOptions") ? (x(), u(E(O(n)(O(F), "beforeOptions")), { key: 0 })) : d("", !0),
140
- g.loading ? (x(), f(c, { key: 1 }, [h(O(ne), b(_(xe.value)), null, 16), p("div", b(_(O(G))), [O(t)(O(F), "loading") ? (x(), u(E(O(n)(O(F), "loading")), { key: 0 })) : (x(), f("span", P, D(V.value), 1))], 16)], 64)) : (x(), f("div", b(y({ key: 2 }, O(W))), [h(O(te), b(_(Se.value)), {
141
- default: A(() => [X.value ? T(e.$slots, "default", { key: 0 }) : (x(!0), f(c, { key: 1 }, w(me.value, (n) => (x(), f(c, { key: n.key }, [n.kind === "section" ? (x(), u(O(o), y({
144
+ return (e, r) => (S(), l(k(te), {
145
+ modelValue: R.value,
146
+ "onUpdate:modelValue": r[2] ||= (e) => R.value = e,
147
+ overlay: g.overlay,
148
+ "custom-props": Ne.value
149
+ }, {
150
+ default: j(() => [f("div", { class: b(k(pe)) }, [
151
+ k(t)(k(I), "beforeOptions") ? (S(), l(D(k(n)(k(I), "beforeOptions")), { key: 0 })) : u("", !0),
152
+ g.loading ? (S(), d(s, { key: 1 }, [h(k(o), x(_(Pe.value)), null, 16), f("div", x(_(k(K))), [k(t)(k(I), "loading") ? (S(), l(D(k(n)(k(I), "loading")), { key: 0 })) : (S(), d("span", F, O(H.value), 1))], 16)], 64)) : (S(), d("div", x(y({ key: 2 }, k(G))), [h(k(ne), x(_(Fe.value)), {
153
+ default: j(() => [X.value ? E(e.$slots, "default", {}, void 0, void 0, 0) : (S(!0), d(s, { key: 1 }, T(Te.value, (n) => (S(), d(s, { key: n.key }, [n.kind === "section" ? (S(), l(k(a), y({
142
154
  key: 0,
143
155
  title: n.title,
144
156
  sticky: n.sticky
145
- }, { ref_for: !0 }, ye.value), null, 16, ["title", "sticky"])) : (x(), u(O(a), y({
157
+ }, { ref_for: !0 }, Me.value), null, 16, ["title", "sticky"])) : (S(), l(k(ie), y({
146
158
  key: 1,
147
159
  interactive: "",
148
160
  value: n.option.value,
149
161
  disabled: n.option.disabled,
150
162
  secondary: n.option.description,
151
- primary: O(t)(O(F), "option") ? void 0 : n.option.label
152
- }, { ref_for: !0 }, _e.value), m({ _: 2 }, [O(t)(O(F), "option") ? {
163
+ primary: k(t)(k(I), "option") ? void 0 : n.option.label
164
+ }, { ref_for: !0 }, Ae.value), p({ _: 2 }, [k(t)(k(I), "option") ? {
153
165
  name: "default",
154
- fn: A(() => [T(e.$slots, "option", {
166
+ fn: j(() => [E(e.$slots, "option", {
155
167
  option: n.option,
156
168
  selected: n.selected
157
169
  })]),
@@ -164,17 +176,26 @@ var P = { key: 1 }, F = /* @__PURE__ */ g({
164
176
  ]))], 64))), 128))]),
165
177
  _: 3
166
178
  }, 16)], 16)),
167
- Z.value && !O(t)(O(F), "empty") ? (x(), f("div", b(y({ key: 3 }, O(G))), D(B.value), 17)) : Z.value && O(t)(O(F), "empty") ? (x(), u(E(O(n)(O(F), "empty")), { key: 4 })) : d("", !0),
168
- O(t)(O(F), "afterOptions") ? (x(), u(E(O(n)(O(F), "afterOptions")), { key: 5 })) : d("", !0)
169
- ]),
179
+ Z.value && !k(t)(k(I), "empty") ? (S(), d("div", x(y({ key: 3 }, k(K))), O(V.value), 17)) : Z.value && k(t)(k(I), "empty") ? (S(), l(D(k(n)(k(I), "empty")), { key: 4 })) : u("", !0),
180
+ k(t)(k(I), "afterOptions") ? (S(), l(D(k(n)(k(I), "afterOptions")), { key: 5 })) : u("", !0),
181
+ k(ue) ? (S(), d("div", x(y({ key: 6 }, k(le))), [h(k(i), y({
182
+ variant: "flat",
183
+ color: "secondary"
184
+ }, k(ge), { onClick: r[0] ||= (e) => L("cancel") }), {
185
+ default: j(() => [m(O(k(fe)), 1)]),
186
+ _: 1
187
+ }, 16), h(k(i), y({ color: "primary" }, k(he), { onClick: r[1] ||= (e) => L("apply") }), {
188
+ default: j(() => [m(O(k(de)), 1)]),
189
+ _: 1
190
+ }, 16)], 16)) : u("", !0)
191
+ ], 2)]),
170
192
  _: 3
171
- }, 16, [
193
+ }, 8, [
172
194
  "modelValue",
173
- "anchor-el",
174
- "placement",
175
- "disable-auto-focus"
195
+ "overlay",
196
+ "custom-props"
176
197
  ]));
177
198
  }
178
199
  });
179
200
  //#endregion
180
- export { F as default };
201
+ export { I as default };
@@ -1,6 +1,6 @@
1
1
  import { LibDefaultsShape, MergeLibDefaults } from '@bridge-ui/core';
2
2
  import { ListboxClasses, ListboxOwnProps } from '../listbox.types';
3
- export declare const listboxBridgeKeys: readonly ["size", "color", "classes", "maxHeight", "customProps", "invalidated", "disableMaxHeight"];
3
+ export declare const listboxBridgeKeys: readonly ["size", "color", "classes", "maxHeight", "showFooter", "customProps", "invalidated", "disableMaxHeight"];
4
4
  type ListboxLibDefaults = LibDefaultsShape<ListboxOwnProps, "size" | "color">;
5
5
  type ListboxMerged = MergeLibDefaults<ListboxOwnProps, ListboxLibDefaults>;
6
6
  /**
@@ -16,9 +16,16 @@ export declare function useListbox(props: ListboxOwnProps, libDefaults: ListboxL
16
16
  merged: import('vue').ComputedRef<ListboxMerged>;
17
17
  checkClass: import('vue').ComputedRef<string>;
18
18
  scrollBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
19
+ footerBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
20
+ showFooter: import('vue').ComputedRef<boolean>;
21
+ applyLabel: import('vue').ComputedRef<string>;
22
+ cancelLabel: import('vue').ComputedRef<string>;
19
23
  messageBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", {}, {}>>;
24
+ surfaceBind: import('vue').ComputedRef<string>;
20
25
  sizeClasses: import('vue').ComputedRef<import('@bridge-ui/core').ListboxSizeItem | undefined>;
21
26
  mergedClasses: import('vue').ComputedRef<Partial<ListboxClasses>>;
27
+ applyButtonProps: import('vue').ComputedRef<Partial<import('@bridge-ui/core').MergeHtmlProps<Omit<import('../../Button').ButtonOwnProps, "as">, import('vue').ButtonHTMLAttributes>> | undefined>;
28
+ cancelButtonProps: import('vue').ComputedRef<Partial<import('@bridge-ui/core').MergeHtmlProps<Omit<import('../../Button').ButtonOwnProps, "as">, import('vue').ButtonHTMLAttributes>> | undefined>;
22
29
  optionSelectedClass: import('vue').ComputedRef<string | undefined>;
23
30
  optionHighlightedClass: import('vue').ComputedRef<string | undefined>;
24
31
  };
@@ -1,53 +1,75 @@
1
- import { mergePartBind as e, useBridgeUIComponent as t, useBridgeUIMergedRegistryClasses as n } from "../../../Utils/index.js";
2
- import { computed as r, useAttrs as i } from "vue";
3
- import { cn as a, mergeBridgeUILayeredClasses as o, splitComponentProps as s } from "@bridge-ui/core";
4
- import { get as c } from "es-toolkit/compat";
5
- import { colorProps as l, invalidatedProps as u, sizeProps as d } from "@bridge-ui/core/Tokens/Listbox";
1
+ import { useResolveMessage as e } from "../../../Adapters/I18n/useI18nAdapter.js";
2
+ import { useBreakpoint as t } from "../../../Utils/useBreakpoint.js";
3
+ import { mergePartBind as n, useBridgeUIComponent as r, useBridgeUIMergedRegistryClasses as i } from "../../../Utils/index.js";
4
+ import { computed as a, useAttrs as o } from "vue";
5
+ import { cn as s, isFieldOverlayDialog as c, mergeBridgeUILayeredClasses as l, resolveFieldOverlay as u, resolveFieldShowFooter as d, splitComponentProps as f } from "@bridge-ui/core";
6
+ import { get as p } from "es-toolkit/compat";
7
+ import { colorProps as m, invalidatedProps as h, sizeProps as g } from "@bridge-ui/core/Tokens/Listbox";
6
8
  //#region src/Components/Listbox/composables/useListbox.ts
7
- var f = [
9
+ var _ = [
8
10
  "size",
9
11
  "color",
10
12
  "classes",
11
13
  "maxHeight",
14
+ "showFooter",
12
15
  "customProps",
13
16
  "invalidated",
14
17
  "disableMaxHeight"
15
18
  ];
16
- function p(p, m, h = {}) {
17
- let g = i(), _ = r(() => s({
19
+ function v(v, y, b = {}) {
20
+ let x = o(), S = t(), C = e(), w = a(() => f({
18
21
  props: {
19
- ...g,
20
- ...p
22
+ ...x,
23
+ ...v
21
24
  },
22
- bridgeKeys: f
23
- })), { merged: v, entry: y } = t({
24
- libDefaults: m,
25
- componentName: h.componentName,
26
- props: () => _.value.componentProps
27
- }), b = n({
28
- entry: y,
29
- props: () => _.value.componentProps
30
- }), x = r(() => c(y.value, ["tokens", "listbox"])), S = r(() => c(o(l, x.value?.color), v.value.color ?? "primary")), C = r(() => o(u, x.value?.invalidated)), w = r(() => v.value.invalidated ? C.value : S.value), T = r(() => c(o(d, x.value?.size), v.value.size ?? "md")), E = r(() => w.value?.selected), D = r(() => w.value?.highlighted);
25
+ bridgeKeys: _
26
+ })), { merged: T, entry: E } = r({
27
+ libDefaults: y,
28
+ componentName: b.componentName,
29
+ props: () => w.value.componentProps
30
+ }), D = i({
31
+ entry: E,
32
+ props: () => w.value.componentProps
33
+ }), O = a(() => T.value.customProps), k = a(() => d(T.value.showFooter, S.mobile)), A = a(() => c(u(v.overlay, S.mobile))), j = a(() => p(E.value, ["tokens", "listbox"])), M = a(() => {
34
+ let e = l(m, j.value?.color);
35
+ return p(e, T.value.color ?? "primary");
36
+ }), N = a(() => l(h, j.value?.invalidated)), P = a(() => T.value.invalidated ? N.value : M.value), F = a(() => {
37
+ let e = l(g, j.value?.size);
38
+ return p(e, T.value.size ?? "md");
39
+ }), I = a(() => P.value?.selected), L = a(() => P.value?.highlighted), R = a(() => s(F.value?.check, P.value?.check)), z = a(() => {
40
+ let e = T.value.maxHeight ?? "max-h-60", t = T.value.disableMaxHeight === !0;
41
+ return n(T.value.customProps?.scroll, {}, s({
42
+ "overflow-y-auto overscroll-contain": !t,
43
+ [e]: !t,
44
+ [D.value.scroll ?? ""]: !0
45
+ }));
46
+ }), B = a(() => n({}, {}, s({
47
+ "text-dark-500": !0,
48
+ [F.value?.message ?? ""]: !0
49
+ }))), V = a(() => s({
50
+ "overflow-hidden ring-1 ring-black/5 outline-hidden dark:ring-white/10": A.value,
51
+ "w-full rounded-lg bg-white text-dark-900 shadow-lg dark:bg-dark-800 dark:text-dark-100": A.value
52
+ }));
31
53
  return {
32
- merged: v,
33
- checkClass: r(() => a(T.value?.check, w.value?.check)),
34
- scrollBind: r(() => {
35
- let t = v.value.maxHeight ?? "max-h-60", n = v.value.disableMaxHeight === !0;
36
- return e(v.value.customProps?.scroll, {}, a({
37
- "overflow-y-auto overscroll-contain": !n,
38
- [t]: !n,
39
- [b.value.scroll ?? ""]: !0
40
- }));
41
- }),
42
- messageBind: r(() => e({}, {}, a({
43
- "text-gray-500": !0,
44
- [T.value?.message ?? ""]: !0
54
+ merged: T,
55
+ checkClass: R,
56
+ scrollBind: z,
57
+ footerBind: a(() => n(O.value?.footer, {}, s({
58
+ "flex items-center justify-end gap-2 border-t border-dark-100 bg-dark-50 px-3 py-2 dark:border-dark-800 dark:bg-dark-950/40": !0,
59
+ [D.value.footer ?? ""]: !0
45
60
  }))),
46
- sizeClasses: T,
47
- mergedClasses: b,
48
- optionSelectedClass: E,
49
- optionHighlightedClass: D
61
+ showFooter: k,
62
+ applyLabel: a(() => C("Apply")),
63
+ cancelLabel: a(() => C("Cancel")),
64
+ messageBind: B,
65
+ surfaceBind: V,
66
+ sizeClasses: F,
67
+ mergedClasses: D,
68
+ applyButtonProps: a(() => O.value?.applyButton),
69
+ cancelButtonProps: a(() => O.value?.cancelButton),
70
+ optionSelectedClass: I,
71
+ optionHighlightedClass: L
50
72
  };
51
73
  }
52
74
  //#endregion
53
- export { p as useListbox };
75
+ export { _ as listboxBridgeKeys, v as useListbox };
@@ -1,18 +1,29 @@
1
- import { HTMLAttributes, Slot } from 'vue';
2
- import { ListboxColor, ListboxEntry, ListboxOption, ListboxSize, ListboxValue, MenuRounded, MergeHtmlProps, MergeProps, PositionPlacement } from '@bridge-ui/core';
1
+ import { ButtonHTMLAttributes, HTMLAttributes, Slot } from 'vue';
2
+ import { FieldOverlayMode, ListboxColor, ListboxEntry, ListboxOption, ListboxSize, ListboxValue, MenuRounded, MergeHtmlProps, MergeProps, PositionPlacement } from '@bridge-ui/core';
3
+ import { ButtonOwnProps } from '../Button';
4
+ import { DrawerOwnProps } from '../Drawer/drawer.types';
3
5
  import { ListOwnProps } from '../List/list.types';
4
6
  import { ListItemOwnProps } from '../ListItem/listItem.types';
5
7
  import { ListSectionOwnProps } from '../ListSection/listSection.types';
6
8
  import { MenuOwnProps } from '../Menu/menu.types';
9
+ import { ModalOwnProps } from '../Modal/modal.types';
7
10
  import { ProgressOwnProps } from '../Progress/progress.types';
8
11
  export interface ListboxSizeOverrides {}
9
12
  export interface ListboxColorOverrides {}
10
13
  export interface ListboxRoundedOverrides {}
14
+ /**
15
+ * Props accepted by the footer buttons, pinned to the native `button` element.
16
+ */
17
+ type ListboxFooterButtonProps = Partial<MergeHtmlProps<Omit<ButtonOwnProps, "as">, ButtonHTMLAttributes>>;
11
18
  export interface ListboxClasses {
12
19
  /**
13
20
  * Classes merged onto the check icon.
14
21
  */
15
22
  check?: string;
23
+ /**
24
+ * Classes merged onto the Cancel / Apply footer.
25
+ */
26
+ footer?: string;
16
27
  /**
17
28
  * Classes forwarded to the loading `Progress` bar.
18
29
  */
@@ -31,6 +42,30 @@ export interface ListboxClasses {
31
42
  scroll?: string;
32
43
  }
33
44
  export interface ListboxCustomProps {
45
+ /**
46
+ * Props forwarded to the Apply button.
47
+ *
48
+ * @default undefined
49
+ */
50
+ applyButton?: ListboxFooterButtonProps;
51
+ /**
52
+ * Props forwarded to the Cancel button.
53
+ *
54
+ * @default undefined
55
+ */
56
+ cancelButton?: ListboxFooterButtonProps;
57
+ /**
58
+ * Props forwarded to the nested `Drawer` when `overlay` resolves to `drawer`.
59
+ *
60
+ * @default undefined
61
+ */
62
+ drawer?: Partial<DrawerOwnProps>;
63
+ /**
64
+ * Props forwarded to the Cancel / Apply footer.
65
+ *
66
+ * @default undefined
67
+ */
68
+ footer?: HTMLAttributes;
34
69
  /**
35
70
  * Props forwarded to the internal `List`.
36
71
  *
@@ -51,12 +86,18 @@ export interface ListboxCustomProps {
51
86
  */
52
87
  listSection?: Partial<Omit<ListSectionOwnProps, "title">>;
53
88
  /**
54
- * Props forwarded to the floating `Menu`.
89
+ * Props forwarded to the floating `Menu` when `overlay` resolves to `menu`.
55
90
  * Merged last so they override Listbox defaults.
56
91
  *
57
92
  * @default undefined
58
93
  */
59
94
  menu?: Partial<MenuOwnProps>;
95
+ /**
96
+ * Props forwarded to the nested `Modal` when `overlay` resolves to `modal`.
97
+ *
98
+ * @default undefined
99
+ */
100
+ modal?: Partial<ModalOwnProps>;
60
101
  /**
61
102
  * Props forwarded to the loading `Progress`.
62
103
  *
@@ -72,6 +113,14 @@ export interface ListboxCustomProps {
72
113
  }
73
114
  export type { ListboxEntry, ListboxOption, ListboxValue, } from '@bridge-ui/core';
74
115
  export interface ListboxEmits {
116
+ /**
117
+ * Emitted when Apply is pressed (`showFooter`).
118
+ */
119
+ apply: [];
120
+ /**
121
+ * Emitted when Cancel is pressed (`showFooter`).
122
+ */
123
+ cancel: [];
75
124
  /**
76
125
  * Emitted when composed `ListItem` options register or unregister.
77
126
  */
@@ -109,7 +158,8 @@ export interface ListboxOwnProps {
109
158
  componentName?: "Select" | "Autocomplete";
110
159
  /**
111
160
  * Extra props for internal parts (`list`, `listItem`, `listSection`, `menu`,
112
- * `progress`, `scroll`).
161
+ * `modal`, `drawer`, `progress`, `scroll`, `footer`, `applyButton`,
162
+ * `cancelButton`).
113
163
  *
114
164
  * @default undefined
115
165
  */
@@ -200,6 +250,13 @@ export interface ListboxOwnProps {
200
250
  * @default []
201
251
  */
202
252
  options?: ListboxOption[];
253
+ /**
254
+ * Which overlay shell opens the options panel. `auto` uses `menu` on desktop
255
+ * and `drawer` (bottom) on mobile.
256
+ *
257
+ * @default "auto"
258
+ */
259
+ overlay?: FieldOverlayMode;
203
260
  /**
204
261
  * Preferred placement of the panel relative to the anchor.
205
262
  *
@@ -220,6 +277,13 @@ export interface ListboxOwnProps {
220
277
  * @default true
221
278
  */
222
279
  showCheckmark?: boolean;
280
+ /**
281
+ * Shows Cancel / Apply footer. When unset, defaults to `true` on mobile.
282
+ * Parents (e.g. Select) typically keep selection as draft until Apply.
283
+ *
284
+ * @default false
285
+ */
286
+ showFooter?: boolean;
223
287
  /**
224
288
  * Typography and option padding scale, aligned with `FormField` / `Select`.
225
289
  *
@@ -15,16 +15,16 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {}, {
15
15
  offset: number;
16
16
  rounded: import('@bridge-ui/core').MergeProps<import('@bridge-ui/core').MenuRounded, import('./menu.types').MenuRoundedOverrides>;
17
17
  shadow: import('@bridge-ui/core').MergeProps<import('@bridge-ui/core').MenuShadow, import('./menu.types').MenuShadowOverrides>;
18
- anchorEl: null | HTMLElement;
19
- closeOnClickAway: boolean;
20
18
  closeOnEscape: boolean;
21
- disableAutoFocus: boolean;
22
19
  disableScrollLock: boolean;
23
20
  keepMounted: boolean;
24
21
  persistent: boolean;
25
22
  placement: import('@floating-ui/utils').Placement;
26
- strategy: import('@bridge-ui/core').PositionStrategy;
27
23
  teleportTo: false | string;
24
+ anchorEl: null | HTMLElement;
25
+ closeOnClickAway: boolean;
26
+ disableAutoFocus: boolean;
27
+ strategy: import('@bridge-ui/core').PositionStrategy;
28
28
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
29
29
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
30
30
  declare const _default: typeof __VLS_export;
@@ -2,10 +2,10 @@ import { hasNamedSlot as e, resolveNamedSlot as t } from "../../Utils/slotOrProp
2
2
  import { useMenu as n } from "./composables/useMenu.js";
3
3
  import { Fragment as r, Teleport as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, defineComponent as u, mergeModels as d, mergeProps as f, normalizeProps as p, openBlock as m, resolveDynamicComponent as h, unref as g, useModel as _, useSlots as v } from "vue";
4
4
  //#region src/Components/Menu/Menu.vue?vue&type=script&setup=true&lang.ts
5
- var y = /* @__PURE__ */ u({
5
+ var y = /*@__PURE__*/ u({
6
6
  inheritAttrs: !1,
7
7
  __name: "Menu",
8
- props: /* @__PURE__ */ d({
8
+ props: /*@__PURE__*/ d({
9
9
  anchorEl: { default: null },
10
10
  classes: {},
11
11
  closeOnClickAway: {
@@ -50,9 +50,9 @@ var y = /* @__PURE__ */ u({
50
50
  },
51
51
  modelModifiers: {}
52
52
  }),
53
- emits: /* @__PURE__ */ d(["close"], ["update:modelValue"]),
53
+ emits: /*@__PURE__*/ d(["close"], ["update:modelValue"]),
54
54
  setup(u, { emit: d }) {
55
- let y = v(), b = d, x = u, { merged: S, mounted: C, rootBind: w, triggerBind: T, contentBind: E, setTriggerRef: D, setContentRef: O } = n(x, {
55
+ let y = v(), b = d, x = u, S = _(u, "modelValue"), { merged: C, mounted: w, rootBind: T, triggerBind: E, contentBind: D, setTriggerRef: O, setContentRef: k } = n(x, {
56
56
  offset: 4,
57
57
  shadow: "md",
58
58
  rounded: "md",
@@ -63,17 +63,17 @@ var y = /* @__PURE__ */ u({
63
63
  disableScrollLock: !0,
64
64
  placement: "bottom-start"
65
65
  }, {
66
- show: _(u, "modelValue"),
66
+ show: S,
67
67
  onClose: () => b("close"),
68
68
  onShowChange: (e) => x.onShowChange?.(e)
69
- }), k = a(() => e(y, "trigger")), A = a(() => S.value.teleportTo === !1), j = a(() => S.value.teleportTo === !1 ? "body" : S.value.teleportTo);
70
- return (e, n) => (m(), c(r, null, [k.value ? (m(), c("div", p(f({ key: 0 }, g(w))), [l("div", f({ ref: g(D) }, g(T)), [(m(), o(h(g(t)(g(y), "trigger"))))], 16)], 16)) : s("", !0), (m(), o(i, {
71
- to: j.value,
72
- disabled: A.value
73
- }, [g(C) ? (m(), c("div", f({
69
+ }), A = a(() => e(y, "trigger")), j = a(() => C.value.teleportTo === !1), M = a(() => C.value.teleportTo === !1 ? "body" : C.value.teleportTo);
70
+ return (e, n) => (m(), c(r, null, [A.value ? (m(), c("div", p(f({ key: 0 }, g(T))), [l("div", f({ ref: g(O) }, g(E)), [(m(), o(h(g(t)(g(y), "trigger"))))], 16)], 16)) : s("", !0), (m(), o(i, {
71
+ to: M.value,
72
+ disabled: j.value
73
+ }, [g(w) ? (m(), c("div", f({
74
74
  key: 0,
75
- ref: g(O)
76
- }, g(E)), [(m(), o(h(g(t)(g(y), "default"))))], 16)) : s("", !0)], 8, ["to", "disabled"]))], 64));
75
+ ref: g(k)
76
+ }, g(D)), [(m(), o(h(g(t)(g(y), "default"))))], 16)) : s("", !0)], 8, ["to", "disabled"]))], 64));
77
77
  }
78
78
  });
79
79
  //#endregion
@@ -24,7 +24,7 @@ export declare function useMenu(props: MenuOwnProps, libDefaults: MenuLibDefault
24
24
  merged: import('vue').ComputedRef<MenuMerged>;
25
25
  menuId: string;
26
26
  mounted: Ref<boolean, boolean>;
27
- rootBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Omit<Omit<MenuProps, "offset" | "classes" | "customProps" | "rounded" | "shadow" | "closeOnClickAway" | "closeOnEscape" | "disableAutoFocus" | "disableScrollLock" | "keepMounted" | "persistent" | "placement" | "strategy" | "teleportTo">, "anchorEl" | "onShowChange">>>;
27
+ rootBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Omit<Omit<MenuProps, "offset" | "classes" | "customProps" | "rounded" | "shadow" | "closeOnEscape" | "disableScrollLock" | "keepMounted" | "persistent" | "placement" | "teleportTo" | "closeOnClickAway" | "disableAutoFocus" | "strategy">, "anchorEl" | "onShowChange">>>;
28
28
  isPortaled: import('vue').ComputedRef<boolean>;
29
29
  triggerBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<{
30
30
  tabindex: number;
@@ -38,7 +38,13 @@ function y(y, le, b = {}) {
38
38
  }), z = r(() => L.value.customProps), B = ee({
39
39
  entry: R,
40
40
  props: () => I.value.componentProps
41
- }), V = r(() => L.value.keepMounted && !P.value), H = r(() => L.value.teleportTo !== !1), de = r(() => g(h(v, R.value?.tokens?.rounded), L.value.rounded)), fe = r(() => g(h(se, R.value?.tokens?.shadow), L.value.shadow)), U = r(() => !L.value.persistent), W = r(() => _(I.value.inheritedAttrs, ["anchorEl", "onShowChange"]));
41
+ }), V = r(() => L.value.keepMounted && !P.value), H = r(() => L.value.teleportTo !== !1), de = r(() => {
42
+ let e = h(v, R.value?.tokens?.rounded);
43
+ return g(e, L.value.rounded);
44
+ }), fe = r(() => {
45
+ let e = h(se, R.value?.tokens?.shadow);
46
+ return g(e, L.value.shadow);
47
+ }), U = r(() => !L.value.persistent), W = r(() => _(I.value.inheritedAttrs, ["anchorEl", "onShowChange"]));
42
48
  function G() {
43
49
  return y.anchorEl ?? w.value;
44
50
  }
@@ -58,7 +64,7 @@ function y(y, le, b = {}) {
58
64
  L.value.persistent && P.value || F(!P.value);
59
65
  }
60
66
  function he(e) {
61
- e.key !== "ArrowDown" && e.key !== "Enter" && e.key !== " " || (e.preventDefault(), P.value || F(!0));
67
+ (e.key === "ArrowDown" || e.key === "Enter" || e.key === " ") && (e.preventDefault(), P.value || F(!0));
62
68
  }
63
69
  function ge(e) {
64
70
  let t = T.value;
@@ -77,9 +83,7 @@ function y(y, le, b = {}) {
77
83
  case "Home":
78
84
  e.preventDefault(), n.focusFirst();
79
85
  break;
80
- case "End":
81
- e.preventDefault(), n.focusLast();
82
- break;
86
+ case "End": e.preventDefault(), n.focusLast();
83
87
  }
84
88
  }
85
89
  function Y() {