@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.
- package/ai/skills/bridge-ui-components/SKILL.md +3 -1
- package/dist/Components/Accordion/accordionInjectionKey.d.ts +1 -0
- package/dist/Components/Accordion/composables/useAccordion.js +3 -2
- package/dist/Components/AccordionItem/composables/useAccordionItem.js +1 -0
- package/dist/Components/Autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +40 -45
- package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +1 -0
- package/dist/Components/ColorField/ColorField.vue_vue_type_script_setup_true_lang.js +39 -44
- package/dist/Components/ColorField/composables/useColorField.d.ts +1 -0
- package/dist/Components/DataTable/DataTable.vue.d.ts +4 -4
- package/dist/Components/DataTable/DataTable.vue_vue_type_script_setup_true_lang.js +139 -121
- package/dist/Components/DataTable/DataTableColumnsMenu.vue.d.ts +9 -3
- package/dist/Components/DataTable/DataTableColumnsMenu.vue_vue_type_script_setup_true_lang.js +71 -26
- package/dist/Components/DataTable/DataTableFilterMenu.vue.d.ts +5 -2
- package/dist/Components/DataTable/DataTableFilterMenu.vue_vue_type_script_setup_true_lang.js +94 -75
- package/dist/Components/DataTable/DataTableFilterOptions.vue.d.ts +4 -1
- package/dist/Components/DataTable/DataTableFilterOptions.vue_vue_type_script_setup_true_lang.js +12 -4
- package/dist/Components/DataTable/DataTableSelection.vue_vue_type_script_setup_true_lang.js +22 -21
- package/dist/Components/DataTable/DataTableToolbarButton.vue.d.ts +2 -1
- package/dist/Components/DataTable/composables/useDataTable.d.ts +12 -4
- package/dist/Components/DataTable/composables/useDataTable.js +255 -223
- package/dist/Components/DataTable/composables/useDataTableColumnsMenu.d.ts +27 -0
- package/dist/Components/DataTable/composables/useDataTableColumnsMenu.js +54 -0
- package/dist/Components/DataTable/dataTable.types.d.ts +26 -9
- package/dist/Components/DataTable/index.d.ts +1 -1
- package/dist/Components/DateField/DateField.vue_vue_type_script_setup_true_lang.js +52 -57
- package/dist/Components/DateField/composables/useDateField.d.ts +1 -0
- package/dist/Components/DateRangeField/DateRangeField.vue_vue_type_script_setup_true_lang.js +50 -55
- package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +1 -0
- package/dist/Components/DateTimeField/DateTimeField.vue_vue_type_script_setup_true_lang.js +56 -61
- package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +1 -0
- package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue_vue_type_script_setup_true_lang.js +56 -61
- package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +1 -0
- package/dist/Components/EmptyState/EmptyState.js +5 -0
- package/dist/Components/EmptyState/EmptyState.vue.d.ts +16 -0
- package/dist/Components/EmptyState/EmptyState.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/Components/EmptyState/composables/useEmptyState.d.ts +24 -0
- package/dist/Components/EmptyState/composables/useEmptyState.js +76 -0
- package/dist/Components/EmptyState/emptyState.types.d.ts +140 -0
- package/dist/Components/EmptyState/index.d.ts +3 -0
- package/dist/Components/EmptyState/index.js +3 -0
- package/dist/Components/FormField/composables/useFormField.d.ts +1 -0
- package/dist/Components/FormField/composables/useFormField.js +80 -75
- package/dist/Components/List/composables/useList.d.ts +3 -1
- package/dist/Components/List/composables/useList.js +2 -2
- package/dist/Components/ListItem/ListItem.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/Components/ListSection/ListSection.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/Components/ListSection/composables/useListSection.d.ts +1 -0
- package/dist/Components/ListSection/composables/useListSection.js +30 -28
- package/dist/Components/ListSection/listSectionInjectionKey.d.ts +5 -0
- package/dist/Components/ListSection/listSectionInjectionKey.js +4 -0
- package/dist/Components/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js +53 -43
- package/dist/Components/NumberField/composables/useNumberField.d.ts +8 -1
- package/dist/Components/NumberField/composables/useNumberField.js +49 -36
- package/dist/Components/NumberField/index.d.ts +1 -1
- package/dist/Components/NumberField/numberField.types.d.ts +13 -1
- package/dist/Components/PasswordField/PasswordField.vue_vue_type_script_setup_true_lang.js +28 -33
- package/dist/Components/PasswordField/composables/usePasswordField.d.ts +1 -0
- package/dist/Components/Select/Select.vue_vue_type_script_setup_true_lang.js +42 -47
- package/dist/Components/Select/composables/useSelect.d.ts +1 -0
- package/dist/Components/Sidebar/Sidebar.js +5 -0
- package/dist/Components/Sidebar/Sidebar.vue.d.ts +16 -0
- package/dist/Components/Sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +59 -0
- package/dist/Components/Sidebar/SidebarInset.js +5 -0
- package/dist/Components/Sidebar/SidebarInset.vue.d.ts +11 -0
- package/dist/Components/Sidebar/SidebarInset.vue_vue_type_script_setup_true_lang.js +18 -0
- package/dist/Components/Sidebar/SidebarList.js +5 -0
- package/dist/Components/Sidebar/SidebarList.vue.d.ts +16 -0
- package/dist/Components/Sidebar/SidebarList.vue_vue_type_script_setup_true_lang.js +40 -0
- package/dist/Components/Sidebar/SidebarListItem.js +5 -0
- package/dist/Components/Sidebar/SidebarListItem.vue.d.ts +13 -0
- package/dist/Components/Sidebar/SidebarListItem.vue_vue_type_script_setup_true_lang.js +120 -0
- package/dist/Components/Sidebar/SidebarProvider.js +5 -0
- package/dist/Components/Sidebar/SidebarProvider.vue.d.ts +24 -0
- package/dist/Components/Sidebar/SidebarProvider.vue_vue_type_script_setup_true_lang.js +29 -0
- package/dist/Components/Sidebar/SidebarTrigger.js +5 -0
- package/dist/Components/Sidebar/SidebarTrigger.vue.d.ts +11 -0
- package/dist/Components/Sidebar/SidebarTrigger.vue_vue_type_script_setup_true_lang.js +35 -0
- package/dist/Components/Sidebar/composables/useSidebar.d.ts +6 -0
- package/dist/Components/Sidebar/composables/useSidebar.js +10 -0
- package/dist/Components/Sidebar/composables/useSidebarInset.d.ts +7 -0
- package/dist/Components/Sidebar/composables/useSidebarInset.js +32 -0
- package/dist/Components/Sidebar/composables/useSidebarList.d.ts +8 -0
- package/dist/Components/Sidebar/composables/useSidebarList.js +27 -0
- package/dist/Components/Sidebar/composables/useSidebarListItem.d.ts +15 -0
- package/dist/Components/Sidebar/composables/useSidebarListItem.js +44 -0
- package/dist/Components/Sidebar/composables/useSidebarProvider.d.ts +18 -0
- package/dist/Components/Sidebar/composables/useSidebarProvider.js +88 -0
- package/dist/Components/Sidebar/composables/useSidebarShell.d.ts +41 -0
- package/dist/Components/Sidebar/composables/useSidebarShell.js +116 -0
- package/dist/Components/Sidebar/composables/useSidebarTrigger.d.ts +10 -0
- package/dist/Components/Sidebar/composables/useSidebarTrigger.js +25 -0
- package/dist/Components/Sidebar/index.d.ts +15 -0
- package/dist/Components/Sidebar/index.js +15 -0
- package/dist/Components/Sidebar/sidebar.types.d.ts +244 -0
- package/dist/Components/Sidebar/sidebarInjectionKey.d.ts +80 -0
- package/dist/Components/Sidebar/sidebarInjectionKey.js +4 -0
- package/dist/Components/Sidebar/sidebarListInjectionKey.d.ts +5 -0
- package/dist/Components/Sidebar/sidebarListInjectionKey.js +4 -0
- package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +42 -47
- package/dist/Components/Slider/composables/useSlider.d.ts +1 -1
- package/dist/Components/Table/Table.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/Components/Table/composables/useTable.d.ts +3 -0
- package/dist/Components/Table/composables/useTable.js +1 -0
- package/dist/Components/Table/table.types.d.ts +2 -1
- package/dist/Components/TextField/TextField.vue_vue_type_script_setup_true_lang.js +11 -16
- package/dist/Components/TextField/composables/useTextField.d.ts +1 -0
- package/dist/Components/Textarea/Textarea.vue_vue_type_script_setup_true_lang.js +15 -20
- package/dist/Components/Textarea/composables/useTextarea.d.ts +1 -0
- package/dist/Components/TimeField/TimeField.vue_vue_type_script_setup_true_lang.js +45 -50
- package/dist/Components/TimeField/composables/useTimeField.d.ts +1 -0
- package/dist/Components/TimeRangeField/TimeRangeField.vue_vue_type_script_setup_true_lang.js +45 -50
- package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +1 -0
- package/dist/Utils/index.d.ts +1 -0
- package/dist/Utils/index.js +28 -27
- package/dist/Utils/useOptionalModel.d.ts +6 -0
- package/dist/Utils/useOptionalModel.js +13 -0
- package/dist/augments.d.ts +11 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +79 -64
- package/dist/theme.css +46 -42
- package/docs/README.md +2 -0
- package/docs/ScrollUtilities.md +1 -1
- package/docs/components/DataTable.md +43 -17
- package/docs/components/Drawer.md +1 -1
- package/docs/components/EmptyState.md +125 -0
- package/docs/components/List.md +1 -1
- package/docs/components/NumberField.md +17 -6
- package/docs/components/Sidebar.md +281 -0
- package/docs/examples/i18n-dictionary.ts +6 -0
- package/docs/examples/icon-fontawesome.ts +5 -0
- package/docs/examples/icon-heroicons.ts +6 -0
- package/docs/examples/icon-lucide.ts +6 -0
- package/docs/examples/icon-phosphor.ts +6 -0
- package/docs/examples/icon-tabler.ts +6 -0
- package/package.json +2 -2
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
# Sidebar
|
|
2
|
+
|
|
3
|
+
Persistent app-shell rail. Mount `SidebarProvider` around `Sidebar` and `SidebarInset` as siblings. Put `SidebarList` / `Accordion` in the default slot. On small viewports the panel opens as a `Drawer`.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import {
|
|
9
|
+
Sidebar,
|
|
10
|
+
SidebarInset,
|
|
11
|
+
SidebarList,
|
|
12
|
+
SidebarListItem,
|
|
13
|
+
SidebarProvider,
|
|
14
|
+
SidebarTrigger,
|
|
15
|
+
useSidebar,
|
|
16
|
+
} from "@bridge-ui/vue/Components/Sidebar";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
Mount `SidebarProvider` around the app shell (`Sidebar` and `SidebarInset` as siblings) before using `SidebarTrigger` or `useSidebar`.
|
|
22
|
+
|
|
23
|
+
`BridgeUIProvider` still holds theme, tokens, and `defaultProps`. It does not own instance `open` state.
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
|
|
27
|
+
### Usage
|
|
28
|
+
|
|
29
|
+
```vue
|
|
30
|
+
<SidebarProvider>
|
|
31
|
+
<Sidebar>
|
|
32
|
+
<SidebarList>
|
|
33
|
+
<SidebarListItem interactive primary="Home" />
|
|
34
|
+
<SidebarListItem interactive primary="Settings" />
|
|
35
|
+
</SidebarList>
|
|
36
|
+
</Sidebar>
|
|
37
|
+
<SidebarInset>
|
|
38
|
+
<SidebarTrigger />
|
|
39
|
+
<slot />
|
|
40
|
+
</SidebarInset>
|
|
41
|
+
</SidebarProvider>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Header and footer
|
|
45
|
+
|
|
46
|
+
Put brand and account rows in `#header` / `#footer`. `SidebarList` collapses those rows to the start avatar. The end chevron hides while collapsed. Header and footer lists use `classes.root` `p-0` because those slots are already padded.
|
|
47
|
+
|
|
48
|
+
```vue
|
|
49
|
+
<template>
|
|
50
|
+
<SidebarList :classes="{ root: 'p-0' }">
|
|
51
|
+
<SidebarListItem interactive primary="Acme Inc" secondary="Enterprise">
|
|
52
|
+
<template #end>
|
|
53
|
+
<Icon icon="chevronUpDown" />
|
|
54
|
+
</template>
|
|
55
|
+
<template #start>
|
|
56
|
+
<Avatar size="sm" rounded="lg" fallback="A" color="primary" />
|
|
57
|
+
</template>
|
|
58
|
+
</SidebarListItem>
|
|
59
|
+
</SidebarList>
|
|
60
|
+
</template>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```vue
|
|
64
|
+
<template>
|
|
65
|
+
<SidebarList :classes="{ root: 'p-0' }">
|
|
66
|
+
<SidebarListItem
|
|
67
|
+
interactive
|
|
68
|
+
primary="Ada Lovelace"
|
|
69
|
+
secondary="ada@example.com"
|
|
70
|
+
>
|
|
71
|
+
<template #end>
|
|
72
|
+
<Icon icon="chevronUpDown" />
|
|
73
|
+
</template>
|
|
74
|
+
<template #start>
|
|
75
|
+
<Avatar size="sm" rounded="lg" fallback="AL" />
|
|
76
|
+
</template>
|
|
77
|
+
</SidebarListItem>
|
|
78
|
+
</SidebarList>
|
|
79
|
+
</template>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
```vue
|
|
83
|
+
<SidebarProvider>
|
|
84
|
+
<Sidebar collapsible="icon">
|
|
85
|
+
<template #header>
|
|
86
|
+
<Brand />
|
|
87
|
+
</template>
|
|
88
|
+
<SidebarList>
|
|
89
|
+
<SidebarListItem interactive primary="Home" />
|
|
90
|
+
</SidebarList>
|
|
91
|
+
<template #footer>
|
|
92
|
+
<Account />
|
|
93
|
+
</template>
|
|
94
|
+
</Sidebar>
|
|
95
|
+
<SidebarInset>
|
|
96
|
+
<SidebarTrigger />
|
|
97
|
+
<slot />
|
|
98
|
+
</SidebarInset>
|
|
99
|
+
</SidebarProvider>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Icon collapse
|
|
103
|
+
|
|
104
|
+
Use `SidebarList` / `SidebarListItem` when `collapsible="icon"`. Collapsed items keep `primary` as an `aria-label` and show it in a `Tooltip` on the whole item. Nested `SidebarList` is hidden. The mobile drawer keeps labels.
|
|
105
|
+
|
|
106
|
+
```vue
|
|
107
|
+
<template>
|
|
108
|
+
<SidebarList>
|
|
109
|
+
<ListSection title="Application" />
|
|
110
|
+
<SidebarListItem interactive primary="Home">
|
|
111
|
+
<template #start>
|
|
112
|
+
<Icon icon="user" />
|
|
113
|
+
</template>
|
|
114
|
+
</SidebarListItem>
|
|
115
|
+
</SidebarList>
|
|
116
|
+
</template>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
```vue
|
|
120
|
+
<SidebarProvider>
|
|
121
|
+
<Sidebar collapsible="icon">
|
|
122
|
+
<template #header>
|
|
123
|
+
<Brand />
|
|
124
|
+
</template>
|
|
125
|
+
<Nav />
|
|
126
|
+
<template #footer>
|
|
127
|
+
<Account />
|
|
128
|
+
</template>
|
|
129
|
+
</Sidebar>
|
|
130
|
+
<SidebarInset>
|
|
131
|
+
<SidebarTrigger />
|
|
132
|
+
<slot />
|
|
133
|
+
</SidebarInset>
|
|
134
|
+
</SidebarProvider>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Controlled
|
|
138
|
+
|
|
139
|
+
```vue
|
|
140
|
+
<SidebarProvider v-model="open">
|
|
141
|
+
<Sidebar>
|
|
142
|
+
<SidebarList>
|
|
143
|
+
<SidebarListItem interactive primary="Home" />
|
|
144
|
+
</SidebarList>
|
|
145
|
+
</Sidebar>
|
|
146
|
+
<SidebarInset>
|
|
147
|
+
<SidebarTrigger />
|
|
148
|
+
<slot />
|
|
149
|
+
</SidebarInset>
|
|
150
|
+
</SidebarProvider>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Right side
|
|
154
|
+
|
|
155
|
+
```vue
|
|
156
|
+
<SidebarProvider>
|
|
157
|
+
<Sidebar side="right">
|
|
158
|
+
<SidebarList>
|
|
159
|
+
<SidebarListItem interactive primary="Inbox" />
|
|
160
|
+
</SidebarList>
|
|
161
|
+
</Sidebar>
|
|
162
|
+
<SidebarInset>
|
|
163
|
+
<SidebarTrigger />
|
|
164
|
+
<slot />
|
|
165
|
+
</SidebarInset>
|
|
166
|
+
</SidebarProvider>
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Inset variant
|
|
170
|
+
|
|
171
|
+
```vue
|
|
172
|
+
<SidebarProvider>
|
|
173
|
+
<Sidebar variant="inset">
|
|
174
|
+
<SidebarList>
|
|
175
|
+
<SidebarListItem interactive primary="Home" />
|
|
176
|
+
</SidebarList>
|
|
177
|
+
</Sidebar>
|
|
178
|
+
<SidebarInset>
|
|
179
|
+
<SidebarTrigger />
|
|
180
|
+
<slot />
|
|
181
|
+
</SidebarInset>
|
|
182
|
+
</SidebarProvider>
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Collapsible groups
|
|
186
|
+
|
|
187
|
+
```vue
|
|
188
|
+
<SidebarProvider>
|
|
189
|
+
<Sidebar>
|
|
190
|
+
<Accordion variant="plain">
|
|
191
|
+
<AccordionItem title="Projects" value="projects">
|
|
192
|
+
<SidebarList :classes="{ root: 'p-0' }">
|
|
193
|
+
<SidebarListItem interactive primary="Alpha" />
|
|
194
|
+
<SidebarListItem interactive primary="Beta" />
|
|
195
|
+
</SidebarList>
|
|
196
|
+
</AccordionItem>
|
|
197
|
+
</Accordion>
|
|
198
|
+
</Sidebar>
|
|
199
|
+
<SidebarInset>
|
|
200
|
+
<SidebarTrigger />
|
|
201
|
+
<slot />
|
|
202
|
+
</SidebarInset>
|
|
203
|
+
</SidebarProvider>
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Props (`SidebarProvider`)
|
|
207
|
+
|
|
208
|
+
| Prop | Type | Default | Description |
|
|
209
|
+
| ------------------ | ---------------------------- | ------- | -------------------------------------------- |
|
|
210
|
+
| `classes` | `SidebarProviderClasses` | — | Part classes (`root`). |
|
|
211
|
+
| `customProps` | `SidebarProviderCustomProps` | — | Extra props for the layout wrapper. |
|
|
212
|
+
| `defaultOpen` | `boolean` | `true` | Uncontrolled initial desktop expanded state. |
|
|
213
|
+
| `v-model` | `boolean` | — | Controlled desktop expanded state. |
|
|
214
|
+
| `v-on:open-change` | `(open: boolean)` | — | Emitted when desktop `open` should change. |
|
|
215
|
+
|
|
216
|
+
## Props (`Sidebar`)
|
|
217
|
+
|
|
218
|
+
| Prop | Type | Default | Description |
|
|
219
|
+
| ------------- | --------------------------------- | ------------- | ------------------------------------------------------ |
|
|
220
|
+
| `ariaLabel` | `string` | `"Sidebar"` | Accessible name for the `aside` and the mobile drawer. |
|
|
221
|
+
| `classes` | `SidebarClasses` | — | Part classes (`root`, `header`, `content`, …). |
|
|
222
|
+
| `collapsible` | `"icon" \| "none" \| "offcanvas"` | `"offcanvas"` | How the desktop rail hides. |
|
|
223
|
+
| `customProps` | `SidebarCustomProps` | — | Extra props for internal parts. |
|
|
224
|
+
| `side` | `"left" \| "right"` | `"left"` | Edge the rail docks to. |
|
|
225
|
+
| `variant` | `"inset" \| "sidebar"` | `"sidebar"` | Flush rail or padded main column. |
|
|
226
|
+
|
|
227
|
+
## Slots (`Sidebar`)
|
|
228
|
+
|
|
229
|
+
| Slot | Description |
|
|
230
|
+
| --------- | ------------------------------------------- |
|
|
231
|
+
| `default` | Rail content (`SidebarList` / `Accordion`). |
|
|
232
|
+
| `footer` | Sticky footer. |
|
|
233
|
+
| `header` | Sticky header. |
|
|
234
|
+
|
|
235
|
+
## Props (`SidebarInset`)
|
|
236
|
+
|
|
237
|
+
| Prop | Type | Default | Description |
|
|
238
|
+
| ------------- | ------------------------- | ------- | ------------------------------- |
|
|
239
|
+
| `classes` | `SidebarInsetClasses` | — | Part classes (`root`). |
|
|
240
|
+
| `customProps` | `SidebarInsetCustomProps` | — | Extra props for the inset root. |
|
|
241
|
+
|
|
242
|
+
## Props (`SidebarTrigger`)
|
|
243
|
+
|
|
244
|
+
Renders a `Button`. Forwards native button attributes. Default accessible name is `Toggle sidebar`.
|
|
245
|
+
|
|
246
|
+
## Props (`SidebarList`)
|
|
247
|
+
|
|
248
|
+
Same as `List`, plus `icon-only`. Sets `icon-only` when the icon rail is collapsed on desktop. Applies stacked nav chrome (gap, compact rows, nested guide). Override with `icon-only`. Nested `SidebarList` is hidden while collapsed. `ListSection` labels are hidden while collapsed.
|
|
249
|
+
|
|
250
|
+
## Props (`SidebarListItem`)
|
|
251
|
+
|
|
252
|
+
Same as `ListItem`, plus `tooltip` / `tooltip-placement`. Applies compact nav chrome. Tooltips only show while the icon rail is collapsed (`primary`, or `tooltip` to override).
|
|
253
|
+
|
|
254
|
+
## `useSidebar`
|
|
255
|
+
|
|
256
|
+
Must be called under `SidebarProvider`. Returns a computed context object (`sidebar.value.open`, …).
|
|
257
|
+
|
|
258
|
+
| Field | Type | Description |
|
|
259
|
+
| --------------- | --------------------------------- | ---------------------------------------------- |
|
|
260
|
+
| `collapsible` | `"icon" \| "none" \| "offcanvas"` | Mode from the nearest `Sidebar`. |
|
|
261
|
+
| `isMobile` | `boolean` | Viewport is below `md` (desktop rail CSS). |
|
|
262
|
+
| `open` | `boolean` | Desktop expanded state. |
|
|
263
|
+
| `openMobile` | `boolean` | Mobile drawer visibility. |
|
|
264
|
+
| `setOpen` | `(open: boolean) => void` | Sets desktop `open`. |
|
|
265
|
+
| `setOpenMobile` | `(open: boolean) => void` | Sets mobile drawer visibility. |
|
|
266
|
+
| `side` | `"left" \| "right"` | Dock edge. |
|
|
267
|
+
| `state` | `"collapsed" \| "expanded"` | Desktop visual state. |
|
|
268
|
+
| `toggleSidebar` | `() => void` | Toggles desktop `open` or mobile `openMobile`. |
|
|
269
|
+
| `variant` | `"inset" \| "sidebar"` | Visual variant. |
|
|
270
|
+
|
|
271
|
+
## Accessibility
|
|
272
|
+
|
|
273
|
+
- Desktop panel is an `aside` with `aria-label`
|
|
274
|
+
- Offcanvas collapsed panel is `inert` (out of the tab order)
|
|
275
|
+
- Mobile uses `Drawer` (dialog, overlay, Escape)
|
|
276
|
+
- Trigger sets `aria-expanded` and `aria-controls`
|
|
277
|
+
- `SidebarListItem` copies string `primary` to `aria-label` when collapsed
|
|
278
|
+
|
|
279
|
+
## Related components
|
|
280
|
+
|
|
281
|
+
Accordion, Avatar, Button, Drawer, List, ListItem, ListSection, Tooltip
|
|
@@ -19,18 +19,24 @@ import type { I18nAdapter } from "@bridge-ui/core/Adapters";
|
|
|
19
19
|
const MESSAGES: Record<string, Record<string, string>> = {
|
|
20
20
|
"en-US": {},
|
|
21
21
|
"pt-BR": {
|
|
22
|
+
"OK": "OK",
|
|
22
23
|
"Close": "Fechar",
|
|
24
|
+
"Reset": "Redefinir",
|
|
23
25
|
"Columns": "Colunas",
|
|
24
26
|
"Search": "Pesquisar",
|
|
25
27
|
"No data": "Sem dados",
|
|
26
28
|
"Per page:": "Por página:",
|
|
27
29
|
"Loading...": "Carregando...",
|
|
28
30
|
"No options": "Nenhuma opção",
|
|
31
|
+
"Select row": "Selecionar linha",
|
|
29
32
|
"Hide password": "Ocultar senha",
|
|
30
33
|
"Show password": "Mostrar senha",
|
|
34
|
+
"Filter column": "Filtrar coluna",
|
|
31
35
|
"Clear selection": "Limpar seleção",
|
|
32
36
|
"Decrement value": "Diminuir valor",
|
|
33
37
|
"Increment value": "Aumentar valor",
|
|
38
|
+
"Select all rows": "Selecionar todas as linhas",
|
|
39
|
+
"Select all items": "Selecionar todos os itens",
|
|
34
40
|
},
|
|
35
41
|
};
|
|
36
42
|
|
|
@@ -27,7 +27,9 @@ import {
|
|
|
27
27
|
faEyeSlash,
|
|
28
28
|
faFilter,
|
|
29
29
|
faMagnifyingGlass,
|
|
30
|
+
faMinus,
|
|
30
31
|
faPalette,
|
|
32
|
+
faPlus,
|
|
31
33
|
faSpinner,
|
|
32
34
|
faTableColumns,
|
|
33
35
|
faTriangleExclamation,
|
|
@@ -91,9 +93,11 @@ const icons = {
|
|
|
91
93
|
eye: faEye,
|
|
92
94
|
bell: faBell,
|
|
93
95
|
user: faUser,
|
|
96
|
+
plus: faPlus,
|
|
94
97
|
clear: faXmark,
|
|
95
98
|
check: faCheck,
|
|
96
99
|
clock: faClock,
|
|
100
|
+
minus: faMinus,
|
|
97
101
|
filter: faFilter,
|
|
98
102
|
loader: faSpinner,
|
|
99
103
|
info: faCircleInfo,
|
|
@@ -106,6 +110,7 @@ const icons = {
|
|
|
106
110
|
columns: faTableColumns,
|
|
107
111
|
chevronUpDown: faUpDown,
|
|
108
112
|
calendar: faCalendarDays,
|
|
113
|
+
panelLeft: faTableColumns,
|
|
109
114
|
search: faMagnifyingGlass,
|
|
110
115
|
alert: faCircleExclamation,
|
|
111
116
|
chevronDown: faChevronDown,
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import {
|
|
9
9
|
ArrowDownTrayIcon,
|
|
10
10
|
ArrowPathIcon,
|
|
11
|
+
Bars3Icon,
|
|
11
12
|
BellIcon,
|
|
12
13
|
CalendarDaysIcon,
|
|
13
14
|
CheckCircleIcon,
|
|
@@ -25,6 +26,8 @@ import {
|
|
|
25
26
|
FunnelIcon,
|
|
26
27
|
InformationCircleIcon,
|
|
27
28
|
MagnifyingGlassIcon,
|
|
29
|
+
MinusIcon,
|
|
30
|
+
PlusIcon,
|
|
28
31
|
SwatchIcon,
|
|
29
32
|
UserIcon,
|
|
30
33
|
ViewColumnsIcon,
|
|
@@ -40,13 +43,16 @@ const icons = {
|
|
|
40
43
|
eye: EyeIcon,
|
|
41
44
|
bell: BellIcon,
|
|
42
45
|
user: UserIcon,
|
|
46
|
+
plus: PlusIcon,
|
|
43
47
|
clear: XMarkIcon,
|
|
44
48
|
check: CheckIcon,
|
|
45
49
|
clock: ClockIcon,
|
|
50
|
+
minus: MinusIcon,
|
|
46
51
|
error: XCircleIcon,
|
|
47
52
|
filter: FunnelIcon,
|
|
48
53
|
palette: SwatchIcon,
|
|
49
54
|
eyeOff: EyeSlashIcon,
|
|
55
|
+
panelLeft: Bars3Icon,
|
|
50
56
|
loader: ArrowPathIcon,
|
|
51
57
|
success: CheckCircleIcon,
|
|
52
58
|
chevronUp: ChevronUpIcon,
|
|
@@ -25,7 +25,10 @@ import {
|
|
|
25
25
|
Filter,
|
|
26
26
|
Info,
|
|
27
27
|
Loader2,
|
|
28
|
+
Minus,
|
|
28
29
|
Palette,
|
|
30
|
+
PanelLeft,
|
|
31
|
+
Plus,
|
|
29
32
|
Search,
|
|
30
33
|
TriangleAlert,
|
|
31
34
|
User,
|
|
@@ -42,8 +45,10 @@ const icons = {
|
|
|
42
45
|
bell: Bell,
|
|
43
46
|
info: Info,
|
|
44
47
|
user: User,
|
|
48
|
+
plus: Plus,
|
|
45
49
|
check: Check,
|
|
46
50
|
clock: Clock,
|
|
51
|
+
minus: Minus,
|
|
47
52
|
error: CircleX,
|
|
48
53
|
eyeOff: EyeOff,
|
|
49
54
|
filter: Filter,
|
|
@@ -56,6 +61,7 @@ const icons = {
|
|
|
56
61
|
download: Download,
|
|
57
62
|
success: CircleCheck,
|
|
58
63
|
chevronUp: ChevronUp,
|
|
64
|
+
panelLeft: PanelLeft,
|
|
59
65
|
warning: TriangleAlert,
|
|
60
66
|
chevronDown: ChevronDown,
|
|
61
67
|
chevronLeft: ChevronLeft,
|
|
@@ -23,7 +23,10 @@ import {
|
|
|
23
23
|
PhFunnel,
|
|
24
24
|
PhInfo,
|
|
25
25
|
PhMagnifyingGlass,
|
|
26
|
+
PhMinus,
|
|
26
27
|
PhPalette,
|
|
28
|
+
PhPlus,
|
|
29
|
+
PhSidebar,
|
|
27
30
|
PhSpinnerGap,
|
|
28
31
|
PhUser,
|
|
29
32
|
PhWarning,
|
|
@@ -42,8 +45,10 @@ const icons = {
|
|
|
42
45
|
bell: PhBell,
|
|
43
46
|
info: PhInfo,
|
|
44
47
|
user: PhUser,
|
|
48
|
+
plus: PhPlus,
|
|
45
49
|
check: PhCheck,
|
|
46
50
|
clock: PhClock,
|
|
51
|
+
minus: PhMinus,
|
|
47
52
|
error: PhXCircle,
|
|
48
53
|
filter: PhFunnel,
|
|
49
54
|
columns: PhColumns,
|
|
@@ -52,6 +57,7 @@ const icons = {
|
|
|
52
57
|
warning: PhWarning,
|
|
53
58
|
loader: PhSpinnerGap,
|
|
54
59
|
chevronUp: PhCaretUp,
|
|
60
|
+
panelLeft: PhSidebar,
|
|
55
61
|
alert: PhWarningCircle,
|
|
56
62
|
success: PhCheckCircle,
|
|
57
63
|
chevronDown: PhCaretDown,
|
|
@@ -24,8 +24,11 @@ import {
|
|
|
24
24
|
IconEyeOff,
|
|
25
25
|
IconFilter,
|
|
26
26
|
IconInfoCircle,
|
|
27
|
+
IconLayoutSidebar,
|
|
27
28
|
IconLoader2,
|
|
29
|
+
IconMinus,
|
|
28
30
|
IconPalette,
|
|
31
|
+
IconPlus,
|
|
29
32
|
IconSearch,
|
|
30
33
|
IconSelector,
|
|
31
34
|
IconUser,
|
|
@@ -41,8 +44,10 @@ const icons = {
|
|
|
41
44
|
clear: IconX,
|
|
42
45
|
bell: IconBell,
|
|
43
46
|
user: IconUser,
|
|
47
|
+
plus: IconPlus,
|
|
44
48
|
check: IconCheck,
|
|
45
49
|
clock: IconClock,
|
|
50
|
+
minus: IconMinus,
|
|
46
51
|
error: IconCircleX,
|
|
47
52
|
eyeOff: IconEyeOff,
|
|
48
53
|
filter: IconFilter,
|
|
@@ -58,6 +63,7 @@ const icons = {
|
|
|
58
63
|
warning: IconAlertTriangle,
|
|
59
64
|
chevronUpDown: IconSelector,
|
|
60
65
|
calendar: IconCalendarMonth,
|
|
66
|
+
panelLeft: IconLayoutSidebar,
|
|
61
67
|
chevronDown: IconChevronDown,
|
|
62
68
|
chevronLeft: IconChevronLeft,
|
|
63
69
|
chevronRight: IconChevronRight,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.5.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.
|
|
92
|
+
"@bridge-ui/core": "^0.5.0",
|
|
93
93
|
"clsx": "^2.1.1",
|
|
94
94
|
"es-toolkit": "^1.50.0",
|
|
95
95
|
"tailwind-merge": "^3.6.0"
|