@bridge-ui/vue 0.7.0 → 0.9.0

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 (173) hide show
  1. package/ai/skills/bridge-ui-components/SKILL.md +2 -1
  2. package/ai/skills/bridge-ui-forms/SKILL.md +1 -1
  3. package/dist/Components/Accordion/composables/useAccordion.d.ts +1 -1
  4. package/dist/Components/ActionFooter/ActionFooter.js +5 -0
  5. package/dist/Components/ActionFooter/ActionFooter.vue.d.ts +10 -0
  6. package/dist/Components/ActionFooter/ActionFooter.vue_vue_type_script_setup_true_lang.js +35 -0
  7. package/dist/Components/ActionFooter/actionFooter.types.d.ts +107 -0
  8. package/dist/Components/ActionFooter/composables/useActionFooter.d.ts +35 -0
  9. package/dist/Components/ActionFooter/composables/useActionFooter.js +53 -0
  10. package/dist/Components/ActionFooter/index.d.ts +3 -0
  11. package/dist/Components/ActionFooter/index.js +3 -0
  12. package/dist/Components/Alert/Alert.vue_vue_type_script_setup_true_lang.js +13 -13
  13. package/dist/Components/Alert/alert.types.d.ts +7 -4
  14. package/dist/Components/Alert/composables/useAlert.d.ts +2 -1
  15. package/dist/Components/Alert/composables/useAlert.js +60 -57
  16. package/dist/Components/Autocomplete/Autocomplete.vue.d.ts +3 -3
  17. package/dist/Components/Autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +2 -1
  18. package/dist/Components/Autocomplete/autocomplete.types.d.ts +1 -1
  19. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +5 -3
  20. package/dist/Components/Autocomplete/composables/useAutocomplete.js +1 -1
  21. package/dist/Components/Badge/composables/useBadge.d.ts +1 -1
  22. package/dist/Components/BaseField/BaseField.vue_vue_type_script_setup_true_lang.js +9 -9
  23. package/dist/Components/BaseField/baseField.types.d.ts +15 -4
  24. package/dist/Components/BaseField/composables/useBaseField.d.ts +6 -2
  25. package/dist/Components/BaseField/composables/useBaseField.js +67 -67
  26. package/dist/Components/BreadcrumbItem/composables/useBreadcrumbItem.d.ts +3 -3
  27. package/dist/Components/Button/Button.vue_vue_type_script_setup_true_lang.js +24 -25
  28. package/dist/Components/Button/composables/useButton.d.ts +4 -2
  29. package/dist/Components/Button/composables/useButton.js +46 -40
  30. package/dist/Components/ButtonGroup/composables/useButtonGroup.d.ts +1 -1
  31. package/dist/Components/Calendar/composables/useCalendar.d.ts +1 -1
  32. package/dist/Components/CalendarDate/composables/useCalendarDate.d.ts +1 -1
  33. package/dist/Components/CalendarMonth/composables/useCalendarMonth.d.ts +1 -1
  34. package/dist/Components/CalendarRange/composables/useCalendarRange.d.ts +1 -1
  35. package/dist/Components/CalendarYear/composables/useCalendarYear.d.ts +1 -1
  36. package/dist/Components/Card/composables/useCard.d.ts +1 -1
  37. package/dist/Components/Chip/Chip.vue.d.ts +1 -1
  38. package/dist/Components/Chip/composables/useChip.d.ts +1 -1
  39. package/dist/Components/ColorField/ColorField.vue.d.ts +1 -1
  40. package/dist/Components/ColorField/ColorField.vue_vue_type_script_setup_true_lang.js +2 -1
  41. package/dist/Components/ColorField/colorField.types.d.ts +1 -1
  42. package/dist/Components/ColorField/composables/useColorField.d.ts +5 -3
  43. package/dist/Components/ColorField/composables/useColorField.js +1 -1
  44. package/dist/Components/ColorPicker/ColorPicker.vue_vue_type_script_setup_true_lang.js +41 -40
  45. package/dist/Components/ColorPicker/composables/useColorPicker.d.ts +1 -3
  46. package/dist/Components/ColorPicker/composables/useColorPicker.js +0 -2
  47. package/dist/Components/DataTable/DataTable.vue_vue_type_script_setup_true_lang.js +8 -0
  48. package/dist/Components/DataTable/DataTableFilterMenu.vue_vue_type_script_setup_true_lang.js +1 -1
  49. package/dist/Components/DataTable/composables/useDataTable.d.ts +1 -1
  50. package/dist/Components/DataTable/composables/useDataTable.js +86 -86
  51. package/dist/Components/DataTable/composables/useDataTablePagination.d.ts +1 -1
  52. package/dist/Components/DataTable/dataTable.types.d.ts +22 -4
  53. package/dist/Components/DateField/DateField.vue_vue_type_script_setup_true_lang.js +2 -1
  54. package/dist/Components/DateField/composables/useDateField.d.ts +5 -3
  55. package/dist/Components/DateField/composables/useDateField.js +1 -1
  56. package/dist/Components/DateField/dateField.types.d.ts +1 -1
  57. package/dist/Components/DatePicker/DatePicker.vue_vue_type_script_setup_true_lang.js +18 -17
  58. package/dist/Components/DatePicker/composables/useDatePicker.d.ts +1 -3
  59. package/dist/Components/DatePicker/composables/useDatePicker.js +45 -48
  60. package/dist/Components/DateRangeField/DateRangeField.vue_vue_type_script_setup_true_lang.js +2 -1
  61. package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +5 -3
  62. package/dist/Components/DateRangeField/composables/useDateRangeField.js +1 -1
  63. package/dist/Components/DateRangeField/dateRangeField.types.d.ts +1 -1
  64. package/dist/Components/DateRangePicker/DateRangePicker.vue_vue_type_script_setup_true_lang.js +18 -17
  65. package/dist/Components/DateRangePicker/composables/useDateRangePicker.d.ts +1 -3
  66. package/dist/Components/DateRangePicker/composables/useDateRangePicker.js +45 -48
  67. package/dist/Components/DateTimeField/DateTimeField.vue_vue_type_script_setup_true_lang.js +2 -1
  68. package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +5 -3
  69. package/dist/Components/DateTimeField/composables/useDateTimeField.js +1 -1
  70. package/dist/Components/DateTimeField/dateTimeField.types.d.ts +1 -1
  71. package/dist/Components/DateTimePicker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +25 -24
  72. package/dist/Components/DateTimePicker/composables/useDateTimePicker.d.ts +1 -3
  73. package/dist/Components/DateTimePicker/composables/useDateTimePicker.js +75 -78
  74. package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue_vue_type_script_setup_true_lang.js +2 -1
  75. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +5 -3
  76. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.js +1 -1
  77. package/dist/Components/DateTimeRangeField/dateTimeRangeField.types.d.ts +1 -1
  78. package/dist/Components/DateTimeRangePicker/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js +29 -28
  79. package/dist/Components/DateTimeRangePicker/composables/useDateTimeRangePicker.d.ts +1 -3
  80. package/dist/Components/DateTimeRangePicker/composables/useDateTimeRangePicker.js +84 -87
  81. package/dist/Components/Drawer/composables/useDrawer.js +75 -72
  82. package/dist/Components/FormControl/composables/useFormControl.d.ts +3 -1
  83. package/dist/Components/FormControl/composables/useFormControl.js +39 -38
  84. package/dist/Components/FormField/FilledFormField.vue_vue_type_script_setup_true_lang.js +3 -3
  85. package/dist/Components/FormField/NotchedFormField.vue_vue_type_script_setup_true_lang.js +31 -31
  86. package/dist/Components/FormField/OutlinedFormField.vue_vue_type_script_setup_true_lang.js +3 -3
  87. package/dist/Components/FormField/StackedFormField.vue_vue_type_script_setup_true_lang.js +34 -34
  88. package/dist/Components/FormField/UnderlinedFormField.vue_vue_type_script_setup_true_lang.js +3 -3
  89. package/dist/Components/FormField/composables/useFormField.d.ts +7 -3
  90. package/dist/Components/FormField/composables/useFormField.js +148 -144
  91. package/dist/Components/FormField/formField.types.d.ts +14 -4
  92. package/dist/Components/ListItem/ListItem.vue.d.ts +1 -1
  93. package/dist/Components/ListItem/composables/useListItem.d.ts +1 -1
  94. package/dist/Components/Listbox/Listbox.vue.d.ts +4 -4
  95. package/dist/Components/Listbox/Listbox.vue_vue_type_script_setup_true_lang.js +69 -71
  96. package/dist/Components/Listbox/composables/useListbox.d.ts +0 -2
  97. package/dist/Components/Listbox/composables/useListbox.js +63 -66
  98. package/dist/Components/Menu/composables/useMenu.js +125 -121
  99. package/dist/Components/Modal/composables/useModal.js +117 -114
  100. package/dist/Components/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js +1 -0
  101. package/dist/Components/NumberField/composables/useNumberField.d.ts +4 -2
  102. package/dist/Components/OtpField/OtpField.vue.d.ts +1 -8
  103. package/dist/Components/OtpField/OtpField.vue_vue_type_script_setup_true_lang.js +7 -6
  104. package/dist/Components/OtpField/composables/useOtpField.d.ts +3 -1
  105. package/dist/Components/Pagination/composables/usePagination.d.ts +1 -1
  106. package/dist/Components/PasswordField/PasswordField.vue_vue_type_script_setup_true_lang.js +1 -0
  107. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +4 -2
  108. package/dist/Components/Select/Select.vue.d.ts +2 -2
  109. package/dist/Components/Select/Select.vue_vue_type_script_setup_true_lang.js +2 -1
  110. package/dist/Components/Select/composables/useSelect.d.ts +5 -3
  111. package/dist/Components/Select/composables/useSelect.js +1 -1
  112. package/dist/Components/Select/select.types.d.ts +1 -1
  113. package/dist/Components/Sidebar/composables/useSidebarList.js +1 -1
  114. package/dist/Components/Sidebar/composables/useSidebarShell.js +1 -1
  115. package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +1 -0
  116. package/dist/Components/Slider/composables/useSlider.d.ts +5 -3
  117. package/dist/Components/Snackbar/Snackbar.vue_vue_type_script_setup_true_lang.js +31 -28
  118. package/dist/Components/Snackbar/composables/useSnackbar.d.ts +2 -1
  119. package/dist/Components/Snackbar/composables/useSnackbar.js +135 -128
  120. package/dist/Components/Step/composables/useStep.d.ts +1 -1
  121. package/dist/Components/TextField/TextField.vue_vue_type_script_setup_true_lang.js +1 -0
  122. package/dist/Components/TextField/composables/useTextField.d.ts +4 -2
  123. package/dist/Components/Textarea/Textarea.vue_vue_type_script_setup_true_lang.js +1 -0
  124. package/dist/Components/Textarea/composables/useTextarea.d.ts +4 -2
  125. package/dist/Components/TimeField/TimeField.vue_vue_type_script_setup_true_lang.js +2 -1
  126. package/dist/Components/TimeField/composables/useTimeField.d.ts +5 -3
  127. package/dist/Components/TimeField/composables/useTimeField.js +1 -1
  128. package/dist/Components/TimeField/timeField.types.d.ts +1 -1
  129. package/dist/Components/TimePanel/composables/useTimePanel.d.ts +1 -1
  130. package/dist/Components/TimePicker/TimePicker.vue_vue_type_script_setup_true_lang.js +38 -37
  131. package/dist/Components/TimePicker/composables/useTimePicker.d.ts +1 -3
  132. package/dist/Components/TimePicker/composables/useTimePicker.js +54 -57
  133. package/dist/Components/TimeRangeField/TimeRangeField.vue_vue_type_script_setup_true_lang.js +2 -1
  134. package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +5 -3
  135. package/dist/Components/TimeRangeField/composables/useTimeRangeField.js +1 -1
  136. package/dist/Components/TimeRangeField/timeRangeField.types.d.ts +1 -1
  137. package/dist/Components/TimeRangePicker/TimeRangePicker.vue_vue_type_script_setup_true_lang.js +61 -60
  138. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.d.ts +1 -3
  139. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.js +41 -43
  140. package/dist/Components/ToggleGroup/composables/useToggleGroup.d.ts +1 -1
  141. package/dist/Components/Tooltip/Tooltip.vue.d.ts +1 -1
  142. package/dist/Components/Tooltip/composables/useTooltip.d.ts +1 -1
  143. package/dist/Components/Tooltip/composables/useTooltip.js +6 -1
  144. package/dist/Utils/index.d.ts +11 -2
  145. package/dist/Utils/index.js +31 -27
  146. package/dist/augments.d.ts +13 -8
  147. package/dist/index.d.ts +2 -0
  148. package/dist/index.js +162 -160
  149. package/docs/README.md +1 -0
  150. package/docs/components/ActionFooter.md +85 -0
  151. package/docs/components/Alert.md +4 -2
  152. package/docs/components/Autocomplete.md +2 -2
  153. package/docs/components/BaseField.md +19 -18
  154. package/docs/components/BridgeUIProvider.md +30 -7
  155. package/docs/components/ColorField.md +1 -1
  156. package/docs/components/ColorPicker.md +1 -1
  157. package/docs/components/DataTable.md +16 -4
  158. package/docs/components/DateField.md +1 -1
  159. package/docs/components/DatePicker.md +1 -1
  160. package/docs/components/DateRangeField.md +1 -1
  161. package/docs/components/DateRangePicker.md +1 -1
  162. package/docs/components/DateTimeField.md +1 -1
  163. package/docs/components/DateTimePicker.md +1 -1
  164. package/docs/components/DateTimeRangeField.md +1 -1
  165. package/docs/components/DateTimeRangePicker.md +1 -1
  166. package/docs/components/FormControl.md +1 -1
  167. package/docs/components/FormField.md +28 -27
  168. package/docs/components/Select.md +2 -2
  169. package/docs/components/TimeField.md +1 -1
  170. package/docs/components/TimePicker.md +1 -1
  171. package/docs/components/TimeRangeField.md +1 -1
  172. package/docs/components/TimeRangePicker.md +1 -1
  173. package/package.json +2 -2
@@ -81,7 +81,7 @@ app.use(
81
81
 
82
82
  Set `global.formDefaults` to apply shared `size` / `rounded` to form controls (TextField, Select, Checkbox, Slider, OtpField, …). Does not affect Button, Progress, Modal, etc.
83
83
 
84
- Merge order: instance props → `components.{Name}.defaultProps` → `formDefaults` → library defaults.
84
+ Merge order: instance props → `components.{Name}.defaultProps` → chrome (`FormField` / `FormControl` / `BaseField` / `TimePanel`) → `formDefaults` → library defaults.
85
85
 
86
86
  Radio and Switch receive `size` only — their `rounded` stays shape-driven (`full`) unless overridden per component.
87
87
 
@@ -97,19 +97,26 @@ app.use(
97
97
  );
98
98
  ```
99
99
 
100
- ### Nested chrome tokens
100
+ ### Shared chrome
101
101
 
102
- Building blocks (`FormField`, `FormControl`, `BaseField`) are not registry keys. Theme chrome under the public parent. Dropdown tokens live on `components.Listbox`:
102
+ `FormField`, `FormControl`, `BaseField`, and `TimePanel` are registry keys. Set them once to theme a family; a public entry still overrides `defaultProps`. Chrome tokens live on the shared key (`components.FormField.tokens`, `components.BaseField.tokens`). Dropdown tokens live on `components.Listbox`. Cancel / Apply in pickers and listboxes live on `components.ActionFooter`.
103
103
 
104
104
  ```ts
105
105
  app.use(
106
106
  createBridgeUI({
107
107
  components: {
108
- Slider: {
108
+ FormField: {
109
+ defaultProps: {
110
+ variant: "filled",
111
+ color: "secondary",
112
+ },
113
+ },
114
+ TextField: {
115
+ defaultProps: { variant: "outline" },
116
+ },
117
+ BaseField: {
109
118
  tokens: {
110
- baseField: {
111
- size: { md: { text: "text-base", group: "gap-3" } },
112
- },
119
+ size: { md: { text: "text-base", group: "gap-3" } },
113
120
  },
114
121
  },
115
122
  Checkbox: {
@@ -139,6 +146,22 @@ app.use(
139
146
  );
140
147
  ```
141
148
 
149
+ ```ts
150
+ app.use(
151
+ createBridgeUI({
152
+ components: {
153
+ ActionFooter: {
154
+ defaultProps: {
155
+ applyColor: "info",
156
+ cancelVariant: "flat",
157
+ cancelColor: "secondary",
158
+ },
159
+ },
160
+ },
161
+ }),
162
+ );
163
+ ```
164
+
142
165
  ### Runtime updates
143
166
 
144
167
  ```ts
@@ -55,7 +55,7 @@ The input is read-only by default (picker only). Set `editable` to unlock typing
55
55
  | -------------- | ----------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------- |
56
56
  | `alpha` | `boolean` | — | Shows the alpha slider. Unset: `true` for `hexa` / `rgba` / `hsla`. |
57
57
  | `classes` | `ColorFieldClasses` | — | Classes for field / input regions. |
58
- | `clearable` | `boolean` | `true` | Whether the value can be cleared. |
58
+ | `clearable` | `boolean` | `false` | Whether the value can be cleared. |
59
59
  | `customProps` | `ColorFieldCustomProps` | — | Extra props for internal parts. |
60
60
  | `defaultValue` | `string \| null` | `null` | Uncontrolled initial value. |
61
61
  | `editable` | `boolean` | `false` | Unlocks the input. Typed text is parsed on blur or Enter. |
@@ -75,4 +75,4 @@ Picker tokens live on `components.ColorPicker` (`rounded`, `size`).
75
75
 
76
76
  ## Related components
77
77
 
78
- ColorField, FormField, FieldOverlay
78
+ ColorField, FormField, FieldOverlay, ActionFooter
@@ -198,7 +198,7 @@ Set `sortable` on a column to show a sort button in that header, matching the fi
198
198
 
199
199
  Set `filters` on a column to show a funnel in that header. The panel uses checkboxes (`filterMultiple`, default) or radios (`:filter-multiple="false"`), and **Select all items** for multiple filters. Nested `children` render as a group in the same panel. **OK** commits; **Reset** clears the draft (commit on **OK**); closing without **OK** discards it.
200
200
 
201
- Set `searchable` on a column to add a text field in that same overlay. Queries are stored in `columnSearch` (column id → string), not used to filter the option list.
201
+ Set `searchable` on a column to add a text field in that same overlay, and to include the column in the toolbar search. Queries are stored in `columnSearch` (column id → string), not used to filter the option list.
202
202
 
203
203
  Column filters open in a `FieldOverlay`. Default `filter-overlay` is `auto` (`menu` on desktop, `drawer` on mobile). Pass `menu`, `modal`, or `drawer` to pin a shell:
204
204
 
@@ -300,7 +300,7 @@ const columns = [
300
300
 
301
301
  ### Column visibility
302
302
 
303
- Pass `hiddenColumns` and/or listen to `update:hiddenColumns` to show a **Columns** icon in the toolbar. `hideable: false` keeps a column out of the toggle (or disabled). At least one column stays visible.
303
+ The toolbar **Columns** icon is hidden by default. Pass `show-column-visibility` to show it with internal state, or bind `hiddenColumns` when the app needs the ids. `hideable: false` keeps a column out of the toggle (or disabled). At least one column stays visible.
304
304
 
305
305
  The panel opens in a `FieldOverlay`. Default `columns-overlay` is `auto` (`menu` on desktop, `drawer` on mobile). Pass `menu`, `modal`, or `drawer` to pin a shell.
306
306
 
@@ -310,14 +310,26 @@ When unset, `columns-show-footer` is `true` for `modal` / `drawer` (`false` for
310
310
  <DataTable
311
311
  :rows="users"
312
312
  :columns="columns"
313
+ show-column-visibility
313
314
  columns-overlay="drawer"
314
- v-model:hidden-columns="hidden"
315
315
  />
316
316
  ```
317
317
 
318
+ Bind the ids when the app needs them:
319
+
320
+ ```vue
321
+ <DataTable :rows="users" :columns="columns" v-model:hidden-columns="hidden" />
322
+ ```
323
+
318
324
  ### Search
319
325
 
320
- Pass `search` and/or listen to `update:search` to show a search field in the toolbar. Client-side tables filter visible columns; server-paged tables emit the query only.
326
+ The toolbar search field is hidden by default. Pass `show-search` to show it with internal state, or bind `search` when the app needs the query. Client-side tables filter columns with `searchable`; if none are set, every visible column is matched. Server-paged tables emit the query only.
327
+
328
+ ```vue
329
+ <DataTable show-search :rows="users" :columns="columns" />
330
+ ```
331
+
332
+ Bind the query when the app needs it:
321
333
 
322
334
  ```vue
323
335
  <DataTable :rows="users" :columns="columns" v-model:search="search" />
@@ -77,7 +77,7 @@ Replaces Cancel / Apply on the nested picker. `apply()` commits and closes; `can
77
77
  | Prop | Type | Default | Description |
78
78
  | ----------------- | ---------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------- |
79
79
  | `classes` | `DateFieldClasses` | — | Classes for field / input regions. |
80
- | `clearable` | `boolean` | `true` | Whether the value can be cleared. |
80
+ | `clearable` | `boolean` | `false` | Whether the value can be cleared. |
81
81
  | `customProps` | `DateFieldCustomProps` | — | Extra props for internal parts (`input`, `menu`, `modal`, `drawer`, `datePicker`, …). |
82
82
  | `defaultValue` | `DatePickerModel` | `null` | Uncontrolled initial value. |
83
83
  | `defaultView` | `CalendarView` | `"date"` | Initial calendar panel view. |
@@ -94,4 +94,4 @@ Calendar tokens live on `components.Calendar` (`color`, `day`, `rounded`).
94
94
 
95
95
  ## Related components
96
96
 
97
- Calendar, DateField, DateRangePicker
97
+ Calendar, DateField, DateRangePicker, ActionFooter
@@ -49,7 +49,7 @@ The input is read-only by default (picker only). Set `editable` to unlock typing
49
49
  | Prop | Type | Default | Description |
50
50
  | ----------------- | ---------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------- |
51
51
  | `classes` | `DateRangeFieldClasses` | — | Classes for field / input regions. |
52
- | `clearable` | `boolean` | `true` | Whether the value can be cleared. |
52
+ | `clearable` | `boolean` | `false` | Whether the value can be cleared. |
53
53
  | `customProps` | `DateRangeFieldCustomProps` | — | Extra props for internal parts. |
54
54
  | `defaultValue` | `DateRangeValue \| null` | `null` | Uncontrolled initial value. |
55
55
  | `disableDates` | `Date[]` | — | Dates that cannot be selected. |
@@ -72,4 +72,4 @@ Calendar tokens live on `components.Calendar` (`color`, `day`, `rounded`).
72
72
 
73
73
  ## Related components
74
74
 
75
- CalendarRange, DateRangeField, DatePicker
75
+ CalendarRange, DateRangeField, DatePicker, ActionFooter
@@ -47,7 +47,7 @@ The input is read-only by default (picker only). Set `editable` to unlock typing
47
47
  | ----------------- | -------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------- |
48
48
  | `ampm` | `boolean` | `false` | Uses a 12-hour clock with an AM/PM column. |
49
49
  | `classes` | `DateTimeFieldClasses` | — | Classes for field / input regions. |
50
- | `clearable` | `boolean` | `true` | Whether the value can be cleared. |
50
+ | `clearable` | `boolean` | `false` | Whether the value can be cleared. |
51
51
  | `customProps` | `DateTimeFieldCustomProps` | — | Extra props for internal parts. |
52
52
  | `defaultValue` | `Date \| null` | `null` | Uncontrolled initial value. |
53
53
  | `defaultView` | `CalendarView` | `"date"` | Initial calendar panel view. |
@@ -75,4 +75,4 @@ Calendar tokens live on `components.Calendar`. Time panel tokens live on `compon
75
75
 
76
76
  ## Related components
77
77
 
78
- Calendar, TimePanel, DateTimeField, DatePicker
78
+ Calendar, TimePanel, DateTimeField, DatePicker, ActionFooter
@@ -46,7 +46,7 @@ The input is read-only by default (picker only). Set `editable` to unlock typing
46
46
  | ----------------- | ------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------- |
47
47
  | `ampm` | `boolean` | `false` | Uses a 12-hour clock with an AM/PM column. |
48
48
  | `classes` | `DateTimeRangeFieldClasses` | — | Classes for field / input regions. |
49
- | `clearable` | `boolean` | `true` | Whether the value can be cleared. |
49
+ | `clearable` | `boolean` | `false` | Whether the value can be cleared. |
50
50
  | `customProps` | `DateTimeRangeFieldCustomProps` | — | Extra props for internal parts. |
51
51
  | `defaultValue` | `DateRangeValue \| null` | `null` | Uncontrolled initial value. |
52
52
  | `disableDates` | `Date[]` | — | Dates that cannot be selected. |
@@ -75,4 +75,4 @@ Calendar tokens live on `components.Calendar`. Time panel tokens live on `compon
75
75
 
76
76
  ## Related components
77
77
 
78
- CalendarRange, TimePanel, DateTimeRangeField, DateRangePicker
78
+ CalendarRange, TimePanel, DateTimeRangeField, DateRangePicker, ActionFooter
@@ -1,6 +1,6 @@
1
1
  # FormControl
2
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`).
3
+ > Building block for toggle-row chrome. Prefer `Checkbox`, `Radio`, and `Switch` in apps; FormControl remains exported for advanced composition. Theme shared chrome via `components.FormControl`; override per public control (`components.Checkbox`, …).
4
4
 
5
5
  Low-level form control chrome (labels, description, error) for Checkbox, Radio, and Switch.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # FormField
2
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`, …).
3
+ > Building block for field chrome. Prefer public fields (`TextField`, `Select`, …) in apps; FormField remains exported for advanced composition. Theme all fields via `components.FormField`; override per public field (`components.TextField`, …).
4
4
 
5
5
  Form field chrome (label, adornments, error) used by TextField, Select, and other inputs.
6
6
 
@@ -39,32 +39,33 @@ import { FormField } from "@bridge-ui/vue";
39
39
 
40
40
  ## Props
41
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. |
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 `error` and an error message are set, unless `showDescriptionOnError`. |
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. Hides description when an error message is shown, unless `showDescriptionOnError`. |
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 the error row. That row is also omitted while a description is shown. |
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
+ | `showDescriptionOnError` | `boolean` | `false` | When `true`, keeps the description visible while the field is invalid. |
63
+ | `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. |
64
+ | `size` | `FormFieldSize` | "md" | Typography scale for label, corner, description, and error message, and control sizing (input, container, icons). |
65
+ | `slots` | `FormFieldSlots` | — | Chrome slots (`label`, `description`, `errorMessage`, ) via `#slot` or prop; inline adornments use `#start` / `#end`. |
66
+ | `start` | `string` | — | Inline-start text inside the field (prefix), e.g. `https://`. |
67
+ | `startIcon` | `LucideIcon` | | Icon at the **inline start** (physical left in `ltr`, physical right in `rtl`). |
68
+ | `variant` | `FormFieldVariant` | "outline" | The visual variant of the field shell and control. |
68
69
 
69
70
  ## Related components
70
71
 
@@ -144,7 +144,7 @@ When unset, `showFooter` defaults to `true` for `modal` / `drawer` overlays (`fa
144
144
  | Prop | Type | Default | Description |
145
145
  | ------------------- | --------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
146
146
  | `asyncData` | `SelectAsyncData` | — | Remote data source. Implies `searchable`. |
147
- | `clearable` | `boolean` | `true` | Whether the value can be cleared. |
147
+ | `clearable` | `boolean` | `false` | Whether the value can be cleared. |
148
148
  | `defaultValue` | `SelectModel` | — | Initial value when uncontrolled. |
149
149
  | `disableMaxHeight` | `boolean` | `false` | When true, the dropdown options list is not height-limited. Forwarded to the internal `Listbox`. |
150
150
  | `emptyMessage` | `string` | "No options" | Message when the filtered list is empty. |
@@ -198,4 +198,4 @@ See [FormField](./FormField.md) (building-block chrome). Field tokens live on `c
198
198
 
199
199
  ## Related components
200
200
 
201
- Menu, Modal, Drawer, FieldOverlay, List, ListItem, ListSection, FormField
201
+ Menu, Modal, Drawer, FieldOverlay, List, ListItem, ListSection, FormField, ActionFooter
@@ -47,7 +47,7 @@ The input is read-only by default (picker only). Set `editable` to unlock typing
47
47
  | -------------- | ---------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------- |
48
48
  | `ampm` | `boolean` | `false` | Uses a 12-hour clock with an AM/PM column. |
49
49
  | `classes` | `TimeFieldClasses` | — | Classes for field / input regions. |
50
- | `clearable` | `boolean` | `true` | Whether the value can be cleared. |
50
+ | `clearable` | `boolean` | `false` | Whether the value can be cleared. |
51
51
  | `customProps` | `TimeFieldCustomProps` | — | Extra props for internal parts. |
52
52
  | `defaultValue` | `Date \| null` | `null` | Uncontrolled initial value. |
53
53
  | `disableTimes` | `Date[]` | — | Times that cannot be selected. |
@@ -63,4 +63,4 @@ Time panel tokens live on `components.TimePanel` (`color`, `rounded`).
63
63
 
64
64
  ## Related components
65
65
 
66
- TimePanel, TimeField, DateTimePicker
66
+ TimePanel, TimeField, DateTimePicker, ActionFooter
@@ -46,7 +46,7 @@ The input is read-only by default (picker only). Set `editable` to unlock typing
46
46
  | -------------- | --------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------- |
47
47
  | `ampm` | `boolean` | `false` | Uses a 12-hour clock with an AM/PM column. |
48
48
  | `classes` | `TimeRangeFieldClasses` | — | Classes for field / input regions. |
49
- | `clearable` | `boolean` | `true` | Whether the value can be cleared. |
49
+ | `clearable` | `boolean` | `false` | Whether the value can be cleared. |
50
50
  | `customProps` | `TimeRangeFieldCustomProps` | — | Extra props for internal parts. |
51
51
  | `defaultValue` | `TimeRangeValue \| null` | `null` | Uncontrolled initial value. |
52
52
  | `disableTimes` | `Date[]` | — | Times that cannot be selected. |
@@ -65,4 +65,4 @@ Time panel tokens live on `components.TimePanel` (`color`, `rounded`).
65
65
 
66
66
  ## Related components
67
67
 
68
- TimePanel, TimeRangeField, TimePicker
68
+ TimePanel, TimeRangeField, TimePicker, ActionFooter
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "license": "MIT",
4
- "version": "0.7.0",
4
+ "version": "0.9.0",
5
5
  "author": "BridgeUI",
6
6
  "sideEffects": false,
7
7
  "name": "@bridge-ui/vue",
@@ -89,7 +89,7 @@
89
89
  }
90
90
  },
91
91
  "dependencies": {
92
- "@bridge-ui/core": "^0.7.0",
92
+ "@bridge-ui/core": "^0.9.0",
93
93
  "clsx": "^2.1.1",
94
94
  "es-toolkit": "^1.50.0",
95
95
  "tailwind-merge": "^3.6.0"