@bridge-ui/vue 0.3.0 → 0.5.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 (135) hide show
  1. package/ai/skills/bridge-ui-components/SKILL.md +3 -1
  2. package/dist/Components/Accordion/accordionInjectionKey.d.ts +1 -0
  3. package/dist/Components/Accordion/composables/useAccordion.js +3 -2
  4. package/dist/Components/AccordionItem/composables/useAccordionItem.js +1 -0
  5. package/dist/Components/Autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +40 -45
  6. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +1 -0
  7. package/dist/Components/ColorField/ColorField.vue_vue_type_script_setup_true_lang.js +39 -44
  8. package/dist/Components/ColorField/composables/useColorField.d.ts +1 -0
  9. package/dist/Components/DataTable/DataTable.vue.d.ts +4 -4
  10. package/dist/Components/DataTable/DataTable.vue_vue_type_script_setup_true_lang.js +139 -121
  11. package/dist/Components/DataTable/DataTableColumnsMenu.vue.d.ts +9 -3
  12. package/dist/Components/DataTable/DataTableColumnsMenu.vue_vue_type_script_setup_true_lang.js +71 -26
  13. package/dist/Components/DataTable/DataTableFilterMenu.vue.d.ts +5 -2
  14. package/dist/Components/DataTable/DataTableFilterMenu.vue_vue_type_script_setup_true_lang.js +94 -75
  15. package/dist/Components/DataTable/DataTableFilterOptions.vue.d.ts +4 -1
  16. package/dist/Components/DataTable/DataTableFilterOptions.vue_vue_type_script_setup_true_lang.js +12 -4
  17. package/dist/Components/DataTable/DataTableSelection.vue_vue_type_script_setup_true_lang.js +22 -21
  18. package/dist/Components/DataTable/DataTableToolbarButton.vue.d.ts +2 -1
  19. package/dist/Components/DataTable/composables/useDataTable.d.ts +12 -4
  20. package/dist/Components/DataTable/composables/useDataTable.js +255 -223
  21. package/dist/Components/DataTable/composables/useDataTableColumnsMenu.d.ts +27 -0
  22. package/dist/Components/DataTable/composables/useDataTableColumnsMenu.js +54 -0
  23. package/dist/Components/DataTable/dataTable.types.d.ts +26 -9
  24. package/dist/Components/DataTable/index.d.ts +1 -1
  25. package/dist/Components/DateField/DateField.vue_vue_type_script_setup_true_lang.js +52 -57
  26. package/dist/Components/DateField/composables/useDateField.d.ts +1 -0
  27. package/dist/Components/DateRangeField/DateRangeField.vue_vue_type_script_setup_true_lang.js +50 -55
  28. package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +1 -0
  29. package/dist/Components/DateTimeField/DateTimeField.vue_vue_type_script_setup_true_lang.js +56 -61
  30. package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +1 -0
  31. package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue_vue_type_script_setup_true_lang.js +56 -61
  32. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +1 -0
  33. package/dist/Components/EmptyState/EmptyState.js +5 -0
  34. package/dist/Components/EmptyState/EmptyState.vue.d.ts +16 -0
  35. package/dist/Components/EmptyState/EmptyState.vue_vue_type_script_setup_true_lang.js +42 -0
  36. package/dist/Components/EmptyState/composables/useEmptyState.d.ts +24 -0
  37. package/dist/Components/EmptyState/composables/useEmptyState.js +76 -0
  38. package/dist/Components/EmptyState/emptyState.types.d.ts +140 -0
  39. package/dist/Components/EmptyState/index.d.ts +3 -0
  40. package/dist/Components/EmptyState/index.js +3 -0
  41. package/dist/Components/FormField/composables/useFormField.d.ts +1 -0
  42. package/dist/Components/FormField/composables/useFormField.js +80 -75
  43. package/dist/Components/List/composables/useList.d.ts +3 -1
  44. package/dist/Components/List/composables/useList.js +2 -2
  45. package/dist/Components/ListItem/ListItem.vue_vue_type_script_setup_true_lang.js +4 -4
  46. package/dist/Components/ListSection/ListSection.vue_vue_type_script_setup_true_lang.js +4 -4
  47. package/dist/Components/ListSection/composables/useListSection.d.ts +1 -0
  48. package/dist/Components/ListSection/composables/useListSection.js +30 -28
  49. package/dist/Components/ListSection/listSectionInjectionKey.d.ts +5 -0
  50. package/dist/Components/ListSection/listSectionInjectionKey.js +4 -0
  51. package/dist/Components/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js +53 -43
  52. package/dist/Components/NumberField/composables/useNumberField.d.ts +8 -1
  53. package/dist/Components/NumberField/composables/useNumberField.js +49 -36
  54. package/dist/Components/NumberField/index.d.ts +1 -1
  55. package/dist/Components/NumberField/numberField.types.d.ts +13 -1
  56. package/dist/Components/PasswordField/PasswordField.vue_vue_type_script_setup_true_lang.js +28 -33
  57. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +1 -0
  58. package/dist/Components/Select/Select.vue_vue_type_script_setup_true_lang.js +42 -47
  59. package/dist/Components/Select/composables/useSelect.d.ts +1 -0
  60. package/dist/Components/Sidebar/Sidebar.js +5 -0
  61. package/dist/Components/Sidebar/Sidebar.vue.d.ts +16 -0
  62. package/dist/Components/Sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +59 -0
  63. package/dist/Components/Sidebar/SidebarInset.js +5 -0
  64. package/dist/Components/Sidebar/SidebarInset.vue.d.ts +11 -0
  65. package/dist/Components/Sidebar/SidebarInset.vue_vue_type_script_setup_true_lang.js +18 -0
  66. package/dist/Components/Sidebar/SidebarList.js +5 -0
  67. package/dist/Components/Sidebar/SidebarList.vue.d.ts +16 -0
  68. package/dist/Components/Sidebar/SidebarList.vue_vue_type_script_setup_true_lang.js +40 -0
  69. package/dist/Components/Sidebar/SidebarListItem.js +5 -0
  70. package/dist/Components/Sidebar/SidebarListItem.vue.d.ts +13 -0
  71. package/dist/Components/Sidebar/SidebarListItem.vue_vue_type_script_setup_true_lang.js +120 -0
  72. package/dist/Components/Sidebar/SidebarProvider.js +5 -0
  73. package/dist/Components/Sidebar/SidebarProvider.vue.d.ts +24 -0
  74. package/dist/Components/Sidebar/SidebarProvider.vue_vue_type_script_setup_true_lang.js +29 -0
  75. package/dist/Components/Sidebar/SidebarTrigger.js +5 -0
  76. package/dist/Components/Sidebar/SidebarTrigger.vue.d.ts +11 -0
  77. package/dist/Components/Sidebar/SidebarTrigger.vue_vue_type_script_setup_true_lang.js +35 -0
  78. package/dist/Components/Sidebar/composables/useSidebar.d.ts +6 -0
  79. package/dist/Components/Sidebar/composables/useSidebar.js +10 -0
  80. package/dist/Components/Sidebar/composables/useSidebarInset.d.ts +7 -0
  81. package/dist/Components/Sidebar/composables/useSidebarInset.js +32 -0
  82. package/dist/Components/Sidebar/composables/useSidebarList.d.ts +8 -0
  83. package/dist/Components/Sidebar/composables/useSidebarList.js +27 -0
  84. package/dist/Components/Sidebar/composables/useSidebarListItem.d.ts +15 -0
  85. package/dist/Components/Sidebar/composables/useSidebarListItem.js +44 -0
  86. package/dist/Components/Sidebar/composables/useSidebarProvider.d.ts +18 -0
  87. package/dist/Components/Sidebar/composables/useSidebarProvider.js +88 -0
  88. package/dist/Components/Sidebar/composables/useSidebarShell.d.ts +41 -0
  89. package/dist/Components/Sidebar/composables/useSidebarShell.js +116 -0
  90. package/dist/Components/Sidebar/composables/useSidebarTrigger.d.ts +10 -0
  91. package/dist/Components/Sidebar/composables/useSidebarTrigger.js +25 -0
  92. package/dist/Components/Sidebar/index.d.ts +15 -0
  93. package/dist/Components/Sidebar/index.js +15 -0
  94. package/dist/Components/Sidebar/sidebar.types.d.ts +244 -0
  95. package/dist/Components/Sidebar/sidebarInjectionKey.d.ts +80 -0
  96. package/dist/Components/Sidebar/sidebarInjectionKey.js +4 -0
  97. package/dist/Components/Sidebar/sidebarListInjectionKey.d.ts +5 -0
  98. package/dist/Components/Sidebar/sidebarListInjectionKey.js +4 -0
  99. package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +42 -47
  100. package/dist/Components/Slider/composables/useSlider.d.ts +1 -1
  101. package/dist/Components/Table/Table.vue_vue_type_script_setup_true_lang.js +2 -2
  102. package/dist/Components/Table/composables/useTable.d.ts +3 -0
  103. package/dist/Components/Table/composables/useTable.js +1 -0
  104. package/dist/Components/Table/table.types.d.ts +2 -1
  105. package/dist/Components/TextField/TextField.vue_vue_type_script_setup_true_lang.js +11 -16
  106. package/dist/Components/TextField/composables/useTextField.d.ts +1 -0
  107. package/dist/Components/Textarea/Textarea.vue_vue_type_script_setup_true_lang.js +15 -20
  108. package/dist/Components/Textarea/composables/useTextarea.d.ts +1 -0
  109. package/dist/Components/TimeField/TimeField.vue_vue_type_script_setup_true_lang.js +45 -50
  110. package/dist/Components/TimeField/composables/useTimeField.d.ts +1 -0
  111. package/dist/Components/TimeRangeField/TimeRangeField.vue_vue_type_script_setup_true_lang.js +45 -50
  112. package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +1 -0
  113. package/dist/Utils/index.d.ts +1 -0
  114. package/dist/Utils/index.js +28 -27
  115. package/dist/Utils/useOptionalModel.d.ts +6 -0
  116. package/dist/Utils/useOptionalModel.js +13 -0
  117. package/dist/augments.d.ts +11 -1
  118. package/dist/index.d.ts +5 -1
  119. package/dist/index.js +79 -64
  120. package/dist/theme.css +46 -42
  121. package/docs/README.md +2 -0
  122. package/docs/ScrollUtilities.md +1 -1
  123. package/docs/components/DataTable.md +43 -17
  124. package/docs/components/Drawer.md +1 -1
  125. package/docs/components/EmptyState.md +125 -0
  126. package/docs/components/List.md +1 -1
  127. package/docs/components/NumberField.md +17 -6
  128. package/docs/components/Sidebar.md +281 -0
  129. package/docs/examples/i18n-dictionary.ts +6 -0
  130. package/docs/examples/icon-fontawesome.ts +5 -0
  131. package/docs/examples/icon-heroicons.ts +6 -0
  132. package/docs/examples/icon-lucide.ts +6 -0
  133. package/docs/examples/icon-phosphor.ts +6 -0
  134. package/docs/examples/icon-tabler.ts +6 -0
  135. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -88,67 +88,82 @@ import { useDateTimeRangeField as Ue } from "./Components/DateTimeRangeField/com
88
88
  import { useDateTimeRangePicker as We } from "./Components/DateTimeRangePicker/composables/useDateTimeRangePicker.js";
89
89
  import Ge from "./Components/DateTimeRangePicker/DateTimeRangePicker.js";
90
90
  import Ke from "./Components/DateTimeRangeField/DateTimeRangeField.js";
91
- import { useLink as qe } from "./Components/Link/composables/useLink.js";
92
- import Je from "./Components/Link/Link.js";
93
- import { useNumberField as Ye } from "./Components/NumberField/composables/useNumberField.js";
94
- import Xe from "./Components/NumberField/NumberField.js";
95
- import { useOtpField as Ze } from "./Components/OtpField/composables/useOtpField.js";
96
- import Qe from "./Components/OtpField/OtpField.js";
97
- import { usePagination as $e } from "./Components/Pagination/composables/usePagination.js";
98
- import et from "./Components/Pagination/Pagination.js";
99
- import { usePasswordField as tt } from "./Components/PasswordField/composables/usePasswordField.js";
100
- import nt from "./Components/PasswordField/PasswordField.js";
101
- import { useRadio as rt } from "./Components/Radio/composables/useRadio.js";
102
- import it from "./Components/Radio/Radio.js";
103
- import at from "./Components/Select/Select.js";
104
- import ot from "./Components/Select/SelectOption.js";
105
- import { useSkeleton as st } from "./Components/Skeleton/composables/useSkeleton.js";
106
- import ct from "./Components/Skeleton/Skeleton.js";
107
- import { useSlider as lt } from "./Components/Slider/composables/useSlider.js";
108
- import { useTooltip as ut } from "./Components/Tooltip/composables/useTooltip.js";
109
- import dt from "./Components/Tooltip/Tooltip.js";
110
- import ft from "./Components/Slider/Slider.js";
111
- import { useSnackbar as pt } from "./Components/Snackbar/composables/useSnackbar.js";
112
- import mt from "./Components/Snackbar/Snackbar.js";
113
- import { useSpinner as ht } from "./Components/Spinner/composables/useSpinner.js";
114
- import gt from "./Components/Spinner/Spinner.js";
115
- import { useStep as _t } from "./Components/Step/composables/useStep.js";
116
- import vt from "./Components/Step/Step.js";
117
- import { useStepper as yt } from "./Components/Stepper/composables/useStepper.js";
118
- import bt from "./Components/Stepper/Stepper.js";
119
- import { useSwitch as xt } from "./Components/Switch/composables/useSwitch.js";
120
- import St from "./Components/Switch/Switch.js";
121
- import { TABS_INJECTION_KEY as Ct } from "./Components/Tabs/tabsInjectionKey.js";
122
- import { useTab as wt } from "./Components/Tab/composables/useTab.js";
123
- import Tt from "./Components/Tab/Tab.js";
124
- import { useTabItem as Et } from "./Components/TabItem/composables/useTabItem.js";
125
- import Dt from "./Components/TabItem/TabItem.js";
126
- import { useTabList as Ot } from "./Components/TabList/composables/useTabList.js";
127
- import kt from "./Components/TabList/TabList.js";
128
- import { useTabPanel as At } from "./Components/TabPanel/composables/useTabPanel.js";
129
- import jt from "./Components/TabPanel/TabPanel.js";
130
- import { useTabs as Mt } from "./Components/Tabs/composables/useTabs.js";
131
- import Nt from "./Components/Tabs/Tabs.js";
132
- import { useTextarea as Pt } from "./Components/Textarea/composables/useTextarea.js";
133
- import Ft from "./Components/Textarea/Textarea.js";
134
- import { useTextField as It } from "./Components/TextField/composables/useTextField.js";
135
- import Lt from "./Components/TextField/TextField.js";
136
- import { useTimeField as Rt } from "./Components/TimeField/composables/useTimeField.js";
137
- import { useTimePicker as zt } from "./Components/TimePicker/composables/useTimePicker.js";
138
- import Bt from "./Components/TimePicker/TimePicker.js";
139
- import Vt from "./Components/TimeField/TimeField.js";
140
- import { useTimeRangeField as Ht } from "./Components/TimeRangeField/composables/useTimeRangeField.js";
141
- import { useTimeRangePicker as Ut } from "./Components/TimeRangePicker/composables/useTimeRangePicker.js";
142
- import Wt from "./Components/TimeRangePicker/TimeRangePicker.js";
143
- import Gt from "./Components/TimeRangeField/TimeRangeField.js";
144
- import { TOGGLE_GROUP_INJECTION_KEY as Kt } from "./Components/ToggleGroup/toggleGroupInjectionKey.js";
145
- import { useToggleGroup as qt } from "./Components/ToggleGroup/composables/useToggleGroup.js";
146
- import Jt from "./Components/ToggleGroup/ToggleGroup.js";
147
- import { useToggleItem as Yt } from "./Components/ToggleItem/composables/useToggleItem.js";
148
- import Xt from "./Components/ToggleItem/ToggleItem.js";
149
- import Zt from "./Provider/BridgeUIProvider.js";
150
- import { createBridgeUI as Qt } from "./Provider/createBridgeUI.js";
151
- import { SEMANTIC_ICON_NAMES as $t, resolveMessage as en } from "@bridge-ui/core/Adapters";
152
- import { cn as tn } from "@bridge-ui/core/Utils";
153
- import { BRIDGE_UI_DEFAULT_GLOBAL as nn, mergeBridgeUIComponents as rn, mergeBridgeUIGlobal as an, resolveBridgeUIOptions as on } from "@bridge-ui/core/Config";
154
- export { l as ACCORDION_INJECTION_KEY, m as Accordion, _ as AccordionItem, y as Alert, X as Autocomplete, Z as AutocompleteOption, Q as Avatar, nn as BRIDGE_UI_DEFAULT_GLOBAL, ee as Badge, te as BaseField, oe as Breadcrumb, ae as BreadcrumbItem, Zt as BridgeUIProvider, P as Button, me as Calendar, le as CalendarDate, de as CalendarMonth, ve as CalendarRange, pe as CalendarYear, be as Card, we as Checkbox, O as Chip, Oe as ColorField, De as ColorPicker, Me as DateField, je as DatePicker, Ie as DateRangeField, Fe as DateRangePicker, He as DateTimeField, Ve as DateTimePicker, Ke as DateTimeRangeField, Ge as DateTimeRangePicker, _e as Divider, L as Drawer, H as FieldOverlay, Se as FormControl, j as FormField, g as Icon, A as Label, Je as Link, W as List, G as ListItem, K as ListSection, Y as Listbox, z as Menu, V as Modal, Xe as NumberField, Qe as OtpField, et as Pagination, nt as PasswordField, J as Progress, it as Radio, $t as SEMANTIC_ICON_NAMES, at as Select, ot as SelectOption, ct as Skeleton, ft as Slider, mt as Snackbar, gt as Spinner, vt as Step, bt as Stepper, St as Switch, Ct as TABS_INJECTION_KEY, Kt as TOGGLE_GROUP_INJECTION_KEY, Tt as Tab, Dt as TabItem, kt as TabList, jt as TabPanel, Nt as Tabs, Lt as TextField, Ft as Textarea, Vt as TimeField, Be as TimePanel, Bt as TimePicker, Gt as TimeRangeField, Wt as TimeRangePicker, Jt as ToggleGroup, Xt as ToggleItem, dt as Tooltip, tn as cn, Qt as createBridgeUI, x as findFirstEnabledOptionIndex, S as findLastEnabledOptionIndex, C as getListboxActiveDescendantId, w as getListboxOptionId, rn as mergeBridgeUIComponents, an as mergeBridgeUIGlobal, T as moveListboxHighlight, on as resolveBridgeUIOptions, en as resolveMessage, t as setDateAdapterForTests, i as setI18nAdapterForTests, s as setIconAdapterForTests, p as useAccordion, h as useAccordionItem, v as useAlert, $ as useBadge, ne as useBaseField, re as useBreadcrumb, ie as useBreadcrumbItem, u as useBreakpoint, e as useBridgeUI, d as useBridgeUIComponent, f as useBridgeUIMergedRegistryClasses, N as useButton, se as useCalendar, ce as useCalendarDate, ue as useCalendarMonth, he as useCalendarRange, fe as useCalendarYear, ye as useCard, Ce as useCheckbox, D as useChip, Te as useColorField, Ee as useColorPicker, n as useDateAdapter, r as useDateAdapterContext, ke as useDateField, Ae as useDatePicker, Ne as useDateRangeField, Pe as useDateRangePicker, Le as useDateTimeField, Re as useDateTimePicker, Ue as useDateTimeRangeField, We as useDateTimeRangePicker, ge as useDivider, I as useDrawer, F as useFieldOverlay, xe as useFormControl, b as useFormField, a as useI18nAdapter, c as useIconAdapter, k as useLabel, qe as useLink, U as useList, M as useListbox, E as useListboxNavigation, R as useMenu, B as useModal, Ye as useNumberField, Ze as useOtpField, $e as usePagination, tt as usePasswordField, q as useProgress, rt as useRadio, o as useResolveMessage, st as useSkeleton, lt as useSlider, pt as useSnackbar, ht as useSpinner, _t as useStep, yt as useStepper, xt as useSwitch, wt as useTab, Et as useTabItem, Ot as useTabList, At as useTabPanel, Mt as useTabs, It as useTextField, Pt as useTextarea, Rt as useTimeField, ze as useTimePanel, zt as useTimePicker, Ht as useTimeRangeField, Ut as useTimeRangePicker, qt as useToggleGroup, Yt as useToggleItem, ut as useTooltip };
91
+ import { useEmptyState as qe } from "./Components/EmptyState/composables/useEmptyState.js";
92
+ import Je from "./Components/EmptyState/EmptyState.js";
93
+ import { useLink as Ye } from "./Components/Link/composables/useLink.js";
94
+ import Xe from "./Components/Link/Link.js";
95
+ import { useNumberField as Ze } from "./Components/NumberField/composables/useNumberField.js";
96
+ import Qe from "./Components/NumberField/NumberField.js";
97
+ import { useOtpField as $e } from "./Components/OtpField/composables/useOtpField.js";
98
+ import et from "./Components/OtpField/OtpField.js";
99
+ import { usePagination as tt } from "./Components/Pagination/composables/usePagination.js";
100
+ import nt from "./Components/Pagination/Pagination.js";
101
+ import { usePasswordField as rt } from "./Components/PasswordField/composables/usePasswordField.js";
102
+ import it from "./Components/PasswordField/PasswordField.js";
103
+ import { useRadio as at } from "./Components/Radio/composables/useRadio.js";
104
+ import ot from "./Components/Radio/Radio.js";
105
+ import st from "./Components/Select/Select.js";
106
+ import ct from "./Components/Select/SelectOption.js";
107
+ import { useSidebar as lt } from "./Components/Sidebar/composables/useSidebar.js";
108
+ import { useSidebarInset as ut } from "./Components/Sidebar/composables/useSidebarInset.js";
109
+ import { useSidebarList as dt } from "./Components/Sidebar/composables/useSidebarList.js";
110
+ import { useSidebarListItem as ft } from "./Components/Sidebar/composables/useSidebarListItem.js";
111
+ import { useSidebarProvider as pt } from "./Components/Sidebar/composables/useSidebarProvider.js";
112
+ import { useSidebarShell as mt } from "./Components/Sidebar/composables/useSidebarShell.js";
113
+ import { useSidebarTrigger as ht } from "./Components/Sidebar/composables/useSidebarTrigger.js";
114
+ import gt from "./Components/Sidebar/Sidebar.js";
115
+ import _t from "./Components/Sidebar/SidebarInset.js";
116
+ import vt from "./Components/Sidebar/SidebarList.js";
117
+ import { useTooltip as yt } from "./Components/Tooltip/composables/useTooltip.js";
118
+ import bt from "./Components/Tooltip/Tooltip.js";
119
+ import xt from "./Components/Sidebar/SidebarListItem.js";
120
+ import St from "./Components/Sidebar/SidebarProvider.js";
121
+ import Ct from "./Components/Sidebar/SidebarTrigger.js";
122
+ import { useSkeleton as wt } from "./Components/Skeleton/composables/useSkeleton.js";
123
+ import Tt from "./Components/Skeleton/Skeleton.js";
124
+ import { useSlider as Et } from "./Components/Slider/composables/useSlider.js";
125
+ import Dt from "./Components/Slider/Slider.js";
126
+ import { useSnackbar as Ot } from "./Components/Snackbar/composables/useSnackbar.js";
127
+ import kt from "./Components/Snackbar/Snackbar.js";
128
+ import { useSpinner as At } from "./Components/Spinner/composables/useSpinner.js";
129
+ import jt from "./Components/Spinner/Spinner.js";
130
+ import { useStep as Mt } from "./Components/Step/composables/useStep.js";
131
+ import Nt from "./Components/Step/Step.js";
132
+ import { useStepper as Pt } from "./Components/Stepper/composables/useStepper.js";
133
+ import Ft from "./Components/Stepper/Stepper.js";
134
+ import { useSwitch as It } from "./Components/Switch/composables/useSwitch.js";
135
+ import Lt from "./Components/Switch/Switch.js";
136
+ import { TABS_INJECTION_KEY as Rt } from "./Components/Tabs/tabsInjectionKey.js";
137
+ import { useTab as zt } from "./Components/Tab/composables/useTab.js";
138
+ import Bt from "./Components/Tab/Tab.js";
139
+ import { useTabItem as Vt } from "./Components/TabItem/composables/useTabItem.js";
140
+ import Ht from "./Components/TabItem/TabItem.js";
141
+ import { useTabList as Ut } from "./Components/TabList/composables/useTabList.js";
142
+ import Wt from "./Components/TabList/TabList.js";
143
+ import { useTabPanel as Gt } from "./Components/TabPanel/composables/useTabPanel.js";
144
+ import Kt from "./Components/TabPanel/TabPanel.js";
145
+ import { useTabs as qt } from "./Components/Tabs/composables/useTabs.js";
146
+ import Jt from "./Components/Tabs/Tabs.js";
147
+ import { useTextarea as Yt } from "./Components/Textarea/composables/useTextarea.js";
148
+ import Xt from "./Components/Textarea/Textarea.js";
149
+ import { useTextField as Zt } from "./Components/TextField/composables/useTextField.js";
150
+ import Qt from "./Components/TextField/TextField.js";
151
+ import { useTimeField as $t } from "./Components/TimeField/composables/useTimeField.js";
152
+ import { useTimePicker as en } from "./Components/TimePicker/composables/useTimePicker.js";
153
+ import tn from "./Components/TimePicker/TimePicker.js";
154
+ import nn from "./Components/TimeField/TimeField.js";
155
+ import { useTimeRangeField as rn } from "./Components/TimeRangeField/composables/useTimeRangeField.js";
156
+ import { useTimeRangePicker as an } from "./Components/TimeRangePicker/composables/useTimeRangePicker.js";
157
+ import on from "./Components/TimeRangePicker/TimeRangePicker.js";
158
+ import sn from "./Components/TimeRangeField/TimeRangeField.js";
159
+ import { TOGGLE_GROUP_INJECTION_KEY as cn } from "./Components/ToggleGroup/toggleGroupInjectionKey.js";
160
+ import { useToggleGroup as ln } from "./Components/ToggleGroup/composables/useToggleGroup.js";
161
+ import un from "./Components/ToggleGroup/ToggleGroup.js";
162
+ import { useToggleItem as dn } from "./Components/ToggleItem/composables/useToggleItem.js";
163
+ import fn from "./Components/ToggleItem/ToggleItem.js";
164
+ import pn from "./Provider/BridgeUIProvider.js";
165
+ import { createBridgeUI as mn } from "./Provider/createBridgeUI.js";
166
+ import { SEMANTIC_ICON_NAMES as hn, resolveMessage as gn } from "@bridge-ui/core/Adapters";
167
+ import { cn as _n } from "@bridge-ui/core/Utils";
168
+ import { BRIDGE_UI_DEFAULT_GLOBAL as vn, mergeBridgeUIComponents as yn, mergeBridgeUIGlobal as bn, resolveBridgeUIOptions as xn } from "@bridge-ui/core/Config";
169
+ export { l as ACCORDION_INJECTION_KEY, m as Accordion, _ as AccordionItem, y as Alert, X as Autocomplete, Z as AutocompleteOption, Q as Avatar, vn as BRIDGE_UI_DEFAULT_GLOBAL, ee as Badge, te as BaseField, oe as Breadcrumb, ae as BreadcrumbItem, pn as BridgeUIProvider, P as Button, me as Calendar, le as CalendarDate, de as CalendarMonth, ve as CalendarRange, pe as CalendarYear, be as Card, we as Checkbox, O as Chip, Oe as ColorField, De as ColorPicker, Me as DateField, je as DatePicker, Ie as DateRangeField, Fe as DateRangePicker, He as DateTimeField, Ve as DateTimePicker, Ke as DateTimeRangeField, Ge as DateTimeRangePicker, _e as Divider, L as Drawer, Je as EmptyState, H as FieldOverlay, Se as FormControl, j as FormField, g as Icon, A as Label, Xe as Link, W as List, G as ListItem, K as ListSection, Y as Listbox, z as Menu, V as Modal, Qe as NumberField, et as OtpField, nt as Pagination, it as PasswordField, J as Progress, ot as Radio, hn as SEMANTIC_ICON_NAMES, st as Select, ct as SelectOption, gt as Sidebar, _t as SidebarInset, vt as SidebarList, xt as SidebarListItem, St as SidebarProvider, Ct as SidebarTrigger, Tt as Skeleton, Dt as Slider, kt as Snackbar, jt as Spinner, Nt as Step, Ft as Stepper, Lt as Switch, Rt as TABS_INJECTION_KEY, cn as TOGGLE_GROUP_INJECTION_KEY, Bt as Tab, Ht as TabItem, Wt as TabList, Kt as TabPanel, Jt as Tabs, Qt as TextField, Xt as Textarea, nn as TimeField, Be as TimePanel, tn as TimePicker, sn as TimeRangeField, on as TimeRangePicker, un as ToggleGroup, fn as ToggleItem, bt as Tooltip, _n as cn, mn as createBridgeUI, x as findFirstEnabledOptionIndex, S as findLastEnabledOptionIndex, C as getListboxActiveDescendantId, w as getListboxOptionId, yn as mergeBridgeUIComponents, bn as mergeBridgeUIGlobal, T as moveListboxHighlight, xn as resolveBridgeUIOptions, gn as resolveMessage, t as setDateAdapterForTests, i as setI18nAdapterForTests, s as setIconAdapterForTests, p as useAccordion, h as useAccordionItem, v as useAlert, $ as useBadge, ne as useBaseField, re as useBreadcrumb, ie as useBreadcrumbItem, u as useBreakpoint, e as useBridgeUI, d as useBridgeUIComponent, f as useBridgeUIMergedRegistryClasses, N as useButton, se as useCalendar, ce as useCalendarDate, ue as useCalendarMonth, he as useCalendarRange, fe as useCalendarYear, ye as useCard, Ce as useCheckbox, D as useChip, Te as useColorField, Ee as useColorPicker, n as useDateAdapter, r as useDateAdapterContext, ke as useDateField, Ae as useDatePicker, Ne as useDateRangeField, Pe as useDateRangePicker, Le as useDateTimeField, Re as useDateTimePicker, Ue as useDateTimeRangeField, We as useDateTimeRangePicker, ge as useDivider, I as useDrawer, qe as useEmptyState, F as useFieldOverlay, xe as useFormControl, b as useFormField, a as useI18nAdapter, c as useIconAdapter, k as useLabel, Ye as useLink, U as useList, M as useListbox, E as useListboxNavigation, R as useMenu, B as useModal, Ze as useNumberField, $e as useOtpField, tt as usePagination, rt as usePasswordField, q as useProgress, at as useRadio, o as useResolveMessage, lt as useSidebar, ut as useSidebarInset, dt as useSidebarList, ft as useSidebarListItem, pt as useSidebarProvider, mt as useSidebarShell, ht as useSidebarTrigger, wt as useSkeleton, Et as useSlider, Ot as useSnackbar, At as useSpinner, Mt as useStep, Pt as useStepper, It as useSwitch, zt as useTab, Vt as useTabItem, Ut as useTabList, Gt as useTabPanel, qt as useTabs, Zt as useTextField, Yt as useTextarea, $t as useTimeField, ze as useTimePanel, en as useTimePicker, rn as useTimeRangeField, an as useTimeRangePicker, ln as useToggleGroup, dn as useToggleItem, yt as useTooltip };
package/dist/theme.css CHANGED
@@ -170,15 +170,51 @@
170
170
  }
171
171
  }
172
172
 
173
- /**
174
- * FormField slot adornments (`bridge-start-adornment` / `bridge-end-adornment`).
175
- * Parent `.group/field` sets `data-bridge-rounded` from FormField `rounded`.
176
- * Suffix `!` overrides Button/Badge `rounded-*` from the utilities layer.
177
- */
173
+ /* Adornment radius from `data-bridge-rounded`. Underlined: top corner only. */
178
174
  @layer components {
179
175
  .bridge-end-adornment,
180
176
  .bridge-start-adornment {
181
- @apply h-full min-h-0 rounded-none!;
177
+ @apply min-h-0 rounded-none!;
178
+ }
179
+
180
+ [data-bridge-rounded="none"] .bridge-end-adornment {
181
+ @apply rounded-s-none! rounded-e-none!;
182
+ }
183
+
184
+ [data-bridge-rounded="xs"] .bridge-end-adornment {
185
+ @apply rounded-s-none! rounded-e-xs!;
186
+ }
187
+
188
+ [data-bridge-rounded="sm"] .bridge-end-adornment {
189
+ @apply rounded-s-none! rounded-e-sm!;
190
+ }
191
+
192
+ [data-bridge-rounded="md"] .bridge-end-adornment {
193
+ @apply rounded-s-none! rounded-e-md!;
194
+ }
195
+
196
+ [data-bridge-rounded="lg"] .bridge-end-adornment {
197
+ @apply rounded-s-none! rounded-e-lg!;
198
+ }
199
+
200
+ [data-bridge-rounded="xl"] .bridge-end-adornment {
201
+ @apply rounded-s-none! rounded-e-xl!;
202
+ }
203
+
204
+ [data-bridge-rounded="2xl"] .bridge-end-adornment {
205
+ @apply rounded-s-none! rounded-e-2xl!;
206
+ }
207
+
208
+ [data-bridge-rounded="3xl"] .bridge-end-adornment {
209
+ @apply rounded-s-none! rounded-e-3xl!;
210
+ }
211
+
212
+ [data-bridge-rounded="4xl"] .bridge-end-adornment {
213
+ @apply rounded-s-none! rounded-e-4xl!;
214
+ }
215
+
216
+ [data-bridge-rounded="full"] .bridge-end-adornment {
217
+ @apply rounded-s-none! rounded-e-full!;
182
218
  }
183
219
 
184
220
  [data-bridge-rounded="none"] .bridge-start-adornment {
@@ -221,44 +257,12 @@
221
257
  @apply rounded-s-full! rounded-e-none!;
222
258
  }
223
259
 
224
- [data-bridge-rounded="none"] .bridge-end-adornment {
225
- @apply rounded-s-none! rounded-e-none!;
226
- }
227
-
228
- [data-bridge-rounded="xs"] .bridge-end-adornment {
229
- @apply rounded-s-none! rounded-e-xs!;
230
- }
231
-
232
- [data-bridge-rounded="sm"] .bridge-end-adornment {
233
- @apply rounded-s-none! rounded-e-sm!;
234
- }
235
-
236
- [data-bridge-rounded="md"] .bridge-end-adornment {
237
- @apply rounded-s-none! rounded-e-md!;
238
- }
239
-
240
- [data-bridge-rounded="lg"] .bridge-end-adornment {
241
- @apply rounded-s-none! rounded-e-lg!;
242
- }
243
-
244
- [data-bridge-rounded="xl"] .bridge-end-adornment {
245
- @apply rounded-s-none! rounded-e-xl!;
246
- }
247
-
248
- [data-bridge-rounded="2xl"] .bridge-end-adornment {
249
- @apply rounded-s-none! rounded-e-2xl!;
260
+ [data-bridge-variant="underlined"] .bridge-end-adornment {
261
+ @apply rounded-ee-none!;
250
262
  }
251
263
 
252
- [data-bridge-rounded="3xl"] .bridge-end-adornment {
253
- @apply rounded-s-none! rounded-e-3xl!;
254
- }
255
-
256
- [data-bridge-rounded="4xl"] .bridge-end-adornment {
257
- @apply rounded-s-none! rounded-e-4xl!;
258
- }
259
-
260
- [data-bridge-rounded="full"] .bridge-end-adornment {
261
- @apply rounded-s-none! rounded-e-full!;
264
+ [data-bridge-variant="underlined"] .bridge-start-adornment {
265
+ @apply rounded-es-none!;
262
266
  }
263
267
 
264
268
  .bridge-field-adornment-button {
package/docs/README.md CHANGED
@@ -33,6 +33,7 @@ Component reference and adapter samples for **Vue**. This folder ships with the
33
33
  - [DateTimeRangePicker](./components/DateTimeRangePicker.md)
34
34
  - [Divider](./components/Divider.md)
35
35
  - [Drawer](./components/Drawer.md)
36
+ - [EmptyState](./components/EmptyState.md)
36
37
  - [FormControl](./components/FormControl.md)
37
38
  - [FormField](./components/FormField.md)
38
39
  - [I18n](./components/I18n.md)
@@ -49,6 +50,7 @@ Component reference and adapter samples for **Vue**. This folder ships with the
49
50
  - [Progress](./components/Progress.md)
50
51
  - [Radio](./components/Radio.md)
51
52
  - [Select](./components/Select.md)
53
+ - [Sidebar](./components/Sidebar.md)
52
54
  - [Skeleton](./components/Skeleton.md)
53
55
  - [Slider](./components/Slider.md)
54
56
  - [Snackbar](./components/Snackbar.md)
@@ -73,7 +73,7 @@ Put background and border on a wrapper; put `bridge-scroll-fade-*` on the inner
73
73
 
74
74
  - Scroll-aware when the browser supports scroll-driven animations: crisp start edge at rest, both edges mid-scroll, crisp end edge at the end.
75
75
  - If content does not overflow, no fade.
76
- - Without scroll-driven animations, no fade. Wheel / keyboard / programmatic scroll still work.
76
+ - Without scroll-driven animations, both edges fade statically. Wheel / keyboard / programmatic scroll still work.
77
77
  - `bridge-scroll-fade-x` follows reading direction (RTL included).
78
78
 
79
79
  ## TimePanel
@@ -46,7 +46,7 @@ DataTable chrome (`plain` / `ghost` / `bordered`). Built-in `Pagination` follows
46
46
  <DataTable striped :rows="users" :columns="columns" />
47
47
  ```
48
48
 
49
- `:full="false"` sizes columns to content instead of stretching the table:
49
+ `:full="false"` sizes columns to content instead of stretching the table. The bordered wrapper, per-page select, and pagination follow that width. Default `full` stretches the table to the wrapper width:
50
50
 
51
51
  ```vue
52
52
  <DataTable :full="false" :rows="users" :columns="columns" />
@@ -126,18 +126,6 @@ Slot replaces the built-in Pagination and/or per-page Select (`#pagination` / `#
126
126
  </DataTable>
127
127
  ```
128
128
 
129
- Align the built-in Pagination with `pagination-align` (`start` / `center` / `end`, default `end`):
130
-
131
- ```vue
132
- <DataTable
133
- :rows="users"
134
- :columns="columns"
135
- v-model:page="page"
136
- :page-count="pageCount"
137
- pagination-align="start"
138
- />
139
- ```
140
-
141
129
  When `page` and `page-count` (or `total-count`) are set, DataTable does not sort or filter `rows` locally — bind `sorting` / `filters` / `page` / `per-page` and fetch the current page in the app:
142
130
 
143
131
  ```vue
@@ -153,7 +141,7 @@ When `page` and `page-count` (or `total-count`) are set, DataTable does not sort
153
141
 
154
142
  ### Empty, loading, and footer
155
143
 
156
- Empty rows show a default empty state; `#empty` replaces it. `loading` keeps the table visible. `loadingVariant="overlay"` (default) dims the table with a spin; `loadingVariant="bar"` dims the table and draws a progress line under the header. `#loading` replaces the indicator. `#footer` renders below the table, above pagination:
144
+ Empty rows render `EmptyState` at the table `size`, with the i18n title `"No data"`. `#empty` replaces it. `loading` keeps the table visible. `loadingVariant="overlay"` (default) dims the table with a spin; `loadingVariant="bar"` dims the table and draws a progress line under the header. `#loading` replaces the indicator. `#footer` renders below the table, above pagination:
157
145
 
158
146
  ```vue
159
147
  <DataTable :rows="[]" :columns="columns" :loading="isLoading">
@@ -212,7 +200,18 @@ Table-level slots stay `empty` / `expanded` / `footer` / `item.{id}` / `item` /
212
200
 
213
201
  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.
214
202
 
215
- Set `searchable` on a column to add a text field in that same menu. Queries are stored in `columnSearch` (column id → string), not used to filter the option list.
203
+ 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.
204
+
205
+ 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:
206
+
207
+ ```vue
208
+ <DataTable
209
+ :rows="users"
210
+ :columns="columns"
211
+ filter-overlay="drawer"
212
+ v-model:filters="filters"
213
+ />
214
+ ```
216
215
 
217
216
  ```vue
218
217
  <DataTable
@@ -253,7 +252,7 @@ Client-side filtering applies when the table is not server-paged (`page` + `page
253
252
  const columns = [
254
253
  {
255
254
  id: "name",
256
- width: 160,
255
+ width: 120,
257
256
  header: "Name",
258
257
  sticky: "start",
259
258
  cell: (row) => row.name,
@@ -283,12 +282,39 @@ const columns = [
283
282
  ];
284
283
  ```
285
284
 
285
+ ### Column classes
286
+
287
+ `classes.header` and `classes.cell` merge onto that column’s `th` / `td`. Use width utilities for breakpoint-based sizing. Do not set `width` on the same column when the class should control width — inline `width` wins.
288
+
289
+ ```ts
290
+ const columns = [
291
+ {
292
+ id: "name",
293
+ header: "Name",
294
+ cell: (row) => row.name,
295
+ classes: {
296
+ cell: "w-24 sm:w-40",
297
+ header: "w-24 sm:w-40",
298
+ },
299
+ },
300
+ ];
301
+ ```
302
+
286
303
  ### Column visibility
287
304
 
288
305
  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.
289
306
 
307
+ 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.
308
+
309
+ When unset, `columns-show-footer` is `true` for `modal` / `drawer` (`false` for `menu`). Reset restores hideable columns; OK commits and closes. Closing without OK discards.
310
+
290
311
  ```vue
291
- <DataTable :rows="users" :columns="columns" v-model:hidden-columns="hidden" />
312
+ <DataTable
313
+ :rows="users"
314
+ :columns="columns"
315
+ columns-overlay="drawer"
316
+ v-model:hidden-columns="hidden"
317
+ />
292
318
  ```
293
319
 
294
320
  ### Search
@@ -134,4 +134,4 @@ import { Drawer } from "@bridge-ui/vue/Components/Drawer";
134
134
 
135
135
  ## Related components
136
136
 
137
- Card, useDialogAction, useDrawerAction, useModalAction
137
+ Card, Sidebar, useDialogAction, useDrawerAction, useModalAction
@@ -0,0 +1,125 @@
1
+ # EmptyState
2
+
3
+ Placeholder when a list, table, or view has no data. Title, description, optional media, and actions. Pass illustration through the `media` slot or `icon` — Bridge does not ship a stock set.
4
+
5
+ Does not set `role` by default. Pass `role="status"` when the empty state is a live update.
6
+
7
+ ## Import
8
+
9
+ ```ts
10
+ import { EmptyState } from "@bridge-ui/vue/Components/EmptyState";
11
+ ```
12
+
13
+ ## Examples
14
+
15
+ ### Usage
16
+
17
+ ```vue
18
+ <EmptyState
19
+ icon="search"
20
+ title="No projects yet"
21
+ description="Create your first project to get started."
22
+ >
23
+ <template #action>
24
+ <Button color="primary">New project</Button>
25
+ </template>
26
+ </EmptyState>
27
+ ```
28
+
29
+ ### Compact
30
+
31
+ ```vue
32
+ <EmptyState size="sm" title="No results" description="Try another filter." />
33
+ ```
34
+
35
+ ### Alignment
36
+
37
+ ```vue
38
+ <EmptyState
39
+ align="start"
40
+ title="No files"
41
+ description="Drop a file here to get started."
42
+ />
43
+ ```
44
+
45
+ ### Heading
46
+
47
+ Use `title-as` when the page outline needs a heading. The default is `p` so the block is safe inside tables and lists.
48
+
49
+ ```vue
50
+ <EmptyState title-as="h2" title="No projects yet" />
51
+ ```
52
+
53
+ ### Media slot
54
+
55
+ ```vue
56
+ <EmptyState
57
+ title="No projects yet"
58
+ description="Create your first project to get started."
59
+ >
60
+ <template #media>
61
+ <Icon icon="search" />
62
+ </template>
63
+ <template #action>
64
+ <Button color="primary">New project</Button>
65
+ <Button variant="flat">Learn more</Button>
66
+ </template>
67
+ </EmptyState>
68
+ ```
69
+
70
+ ### DataTable
71
+
72
+ Override the DataTable default with a richer `EmptyState` via `#empty`.
73
+
74
+ ```vue
75
+ <DataTable :rows="[]" :columns="columns">
76
+ <template #empty>
77
+ <EmptyState
78
+ size="sm"
79
+ title="No users"
80
+ description="Invite a teammate to get started."
81
+ >
82
+ <template #action>
83
+ <Button size="sm">Invite</Button>
84
+ </template>
85
+ </EmptyState>
86
+ </template>
87
+ </DataTable>
88
+ ```
89
+
90
+ ### customProps
91
+
92
+ ```vue
93
+ <EmptyState
94
+ title="No results"
95
+ description="Try another filter."
96
+ :custom-props="{
97
+ title: { id: 'empty-title' },
98
+ media: { 'aria-hidden': true },
99
+ root: { id: 'empty-root', role: 'status' },
100
+ description: { 'aria-describedby': 'empty-title' },
101
+ }"
102
+ />
103
+ ```
104
+
105
+ ## Props
106
+
107
+ | Prop | Type | Default | Description |
108
+ | ----------------- | ----------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------- |
109
+ | `align` | `EmptyStateAlign` | `"center"` | Horizontal alignment of the stack (`start`, `center`, `end`). |
110
+ | `classes` | `EmptyStateClasses` | — | Part classes (`root`, `media`, `title`, `description`, `actions`, `icon`). |
111
+ | `customProps` | `EmptyStateCustomProps` | — | Extra props for internal parts (`media`, `title`, `description`, etc.). Root HTML attributes stay on the component top level. |
112
+ | `description` | `string` | — | Supporting copy below the title. |
113
+ | `icon` | `IconSource` | — | Default media icon. Use the `media` slot to replace it. |
114
+ | `mediaDecorative` | `boolean` | `true` | When true, the media wrapper is hidden from assistive tech. |
115
+ | `size` | `EmptyStateSize` | `"md"` | Spacing and typography scale (`sm`, `md`, `lg`). |
116
+ | `title` | `string` | — | Primary heading copy. |
117
+ | `titleAs` | `"p" \| "h1"` … `"h6"` | `"p"` | Element used to render `title`. |
118
+
119
+ ## Accessibility
120
+
121
+ Keep default media decorative (`media-decorative`). Set `media-decorative` to `false` when the illustration conveys meaning that is not in the title or description. Use `title-as` with a heading level when the empty state is the main content of the view. For live updates after a filter or fetch, pass `role="status"`.
122
+
123
+ ## Related components
124
+
125
+ Alert, Card, DataTable, Icon, List, Skeleton, Table
@@ -164,4 +164,4 @@ With the default `as="li"`, sticky styles apply on the section root. The list (o
164
164
 
165
165
  ## Related components
166
166
 
167
- Menu, Select
167
+ Menu, Select, Sidebar
@@ -28,6 +28,16 @@ import { NumberField } from "@bridge-ui/vue/Components/NumberField";
28
28
  />
29
29
  ```
30
30
 
31
+ ### Control variants
32
+
33
+ ```vue
34
+ <NumberField label="Stacked" />
35
+
36
+ <NumberField label="Split" control-variant="split" />
37
+
38
+ <NumberField label="Inline" control-variant="inline" />
39
+ ```
40
+
31
41
  ### Min, max, and step
32
42
 
33
43
  ```vue
@@ -51,12 +61,13 @@ import { NumberField } from "@bridge-ui/vue/Components/NumberField";
51
61
 
52
62
  ### NumberField-specific
53
63
 
54
- | Prop | Type | Default | Description |
55
- | --------- | -------------------- | ------- | ----------------------------------------- |
56
- | `classes` | `NumberFieldClasses` | — | The classes to apply to the number field. |
57
- | `max` | `number` | | The maximum value. |
58
- | `min` | `number` | — | The minimum value. |
59
- | `step` | `number` | 1 | The step increment value. |
64
+ | Prop | Type | Default | Description |
65
+ | ---------------- | ---------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------ |
66
+ | `classes` | `NumberFieldClasses` | — | The classes to apply to the number field. |
67
+ | `controlVariant` | `"inline" \| "split" \| "stacked"` | `"stacked"` | Layout of increment and decrement controls. `split` uses minus/plus icons and occupies the start slot. |
68
+ | `max` | `number` | — | The maximum value. |
69
+ | `min` | `number` | | The minimum value. |
70
+ | `step` | `number` | 1 | The step increment value. |
60
71
 
61
72
  ### v-model
62
73