@thebase/ui 0.0.10 → 0.0.12

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 (48) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +3 -3
  3. package/dist/baseui.esm.js +24 -24
  4. package/dist/baseui.icons.esm.js +1 -1
  5. package/dist/baseui.min.css +1 -1
  6. package/dist/baseui.min.js +24 -24
  7. package/dist/baseui.registry.json +10 -9
  8. package/dist/baseui.templates.xml +460 -478
  9. package/dist/runtime/milkdown/milkdown-editor.js +1 -1
  10. package/dist/runtime/milkdown/milkdown-text-editor.js +1 -1
  11. package/dist/themes/baseui-dark.css +1 -1
  12. package/dist/themes/baseui-light.css +1 -1
  13. package/docs/components/accordion.md +4 -4
  14. package/docs/components/avatar.md +1 -1
  15. package/docs/components/block-viewer.md +1 -1
  16. package/docs/components/breadcrumb.md +1 -1
  17. package/docs/components/calendar.md +1 -1
  18. package/docs/components/carousel.md +1 -1
  19. package/docs/components/chart.md +3 -3
  20. package/docs/components/combobox.md +1 -1
  21. package/docs/components/command.md +1 -1
  22. package/docs/components/context-menu.md +1 -1
  23. package/docs/components/data-table.md +3 -3
  24. package/docs/components/date-picker.md +1 -1
  25. package/docs/components/dialog.md +5 -5
  26. package/docs/components/form.md +29 -29
  27. package/docs/components/input-otp.md +1 -1
  28. package/docs/components/input.md +1 -1
  29. package/docs/components/markdown.md +1 -1
  30. package/docs/components/message-scroller.md +1 -1
  31. package/docs/components/message.md +1 -1
  32. package/docs/components/popover.md +1 -1
  33. package/docs/components/pwa.md +1 -1
  34. package/docs/components/questionnaire.md +1 -1
  35. package/docs/components/resizable.md +1 -1
  36. package/docs/components/scroll-area.md +1 -1
  37. package/docs/components/shell.md +2 -2
  38. package/docs/components/sidebar.md +15 -15
  39. package/docs/components/tabs.md +34 -1
  40. package/docs/components/text-editor.md +1 -1
  41. package/docs/components/theme-button.md +2 -2
  42. package/docs/components/toast.md +37 -7
  43. package/docs/components/toggle-group.md +1 -1
  44. package/docs/components/toggle.md +1 -1
  45. package/docs/components/tooltip.md +1 -1
  46. package/docs/runtime-api.md +26 -0
  47. package/docs/theming.md +3 -3
  48. package/package.json +1 -1
@@ -11,109 +11,109 @@
11
11
  </t>
12
12
  <t t-name="AlertDialog" t-call="baseui.AlertDialog"/>
13
13
  <t t-name="baseui.AlertDialogTrigger">
14
- <button type="button" data-slot="alert-dialog-trigger" class="btn baseui-button btn-outline-secondary baseui-alert-dialog-trigger" t-att-style="props.style" t-on-click="onClick">
14
+ <Button variant="'outline'" attrs="attrs" className="'bu-alert-dialog-trigger'" style="props.style" onClick="() => this.onClick()">
15
15
  <t t-slot="default"/>
16
- </button>
16
+ </Button>
17
17
  </t>
18
18
  <t t-name="AlertDialogTrigger" t-call="baseui.AlertDialogTrigger"/>
19
19
  <t t-name="baseui.AlertDialogContent">
20
- <div t-if="open" data-slot="alert-dialog-overlay" class="baseui-dialog-backdrop" t-ref="root" role="alertdialog" aria-modal="true" tabindex="-1" t-on-keydown="onKeyDown">
21
- <div data-slot="alert-dialog-content" t-att-data-size="size" t-att-class="'baseui-dialog-panel baseui-alert-dialog-panel' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
20
+ <div t-if="open" data-slot="alert-dialog-overlay" class="bu-dialog-backdrop" t-ref="root" role="alertdialog" aria-modal="true" tabindex="-1" t-on-keydown="onKeyDown">
21
+ <div data-slot="alert-dialog-content" t-att-data-size="size" t-att-class="'bu-dialog-panel bu-alert-dialog-panel' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
22
22
  <t t-slot="default"/>
23
23
  </div>
24
24
  </div>
25
25
  </t>
26
26
  <t t-name="AlertDialogContent" t-call="baseui.AlertDialogContent"/>
27
27
  <t t-name="baseui.AlertDialogHeader">
28
- <div data-slot="alert-dialog-header" class="baseui-dialog-header baseui-alert-dialog-header" t-att-style="props.style">
28
+ <div data-slot="alert-dialog-header" class="bu-dialog-header bu-alert-dialog-header" t-att-style="props.style">
29
29
  <t t-slot="default"/>
30
30
  </div>
31
31
  </t>
32
32
  <t t-name="AlertDialogHeader" t-call="baseui.AlertDialogHeader"/>
33
33
  <t t-name="baseui.AlertDialogFooter">
34
- <div data-slot="alert-dialog-footer" class="baseui-dialog-footer baseui-alert-dialog-footer" t-att-style="props.style">
34
+ <div data-slot="alert-dialog-footer" class="bu-dialog-footer bu-alert-dialog-footer" t-att-style="props.style">
35
35
  <t t-slot="default"/>
36
36
  </div>
37
37
  </t>
38
38
  <t t-name="AlertDialogFooter" t-call="baseui.AlertDialogFooter"/>
39
39
  <t t-name="baseui.AlertDialogMedia">
40
- <div data-slot="alert-dialog-media" class="baseui-alert-dialog-media" t-att-style="props.style">
40
+ <div data-slot="alert-dialog-media" class="bu-alert-dialog-media" t-att-style="props.style">
41
41
  <t t-slot="default"/>
42
42
  </div>
43
43
  </t>
44
44
  <t t-name="AlertDialogMedia" t-call="baseui.AlertDialogMedia"/>
45
45
  <t t-name="baseui.AlertDialogTitle">
46
- <h2 data-slot="alert-dialog-title" class="baseui-dialog-title baseui-alert-dialog-title" t-att-style="props.style">
46
+ <h2 data-slot="alert-dialog-title" class="bu-dialog-title bu-alert-dialog-title" t-att-style="props.style">
47
47
  <t t-slot="default"/>
48
48
  </h2>
49
49
  </t>
50
50
  <t t-name="AlertDialogTitle" t-call="baseui.AlertDialogTitle"/>
51
51
  <t t-name="baseui.AlertDialogDescription">
52
- <p data-slot="alert-dialog-description" class="baseui-dialog-description baseui-alert-dialog-description" t-att-style="props.style">
52
+ <p data-slot="alert-dialog-description" class="bu-dialog-description bu-alert-dialog-description" t-att-style="props.style">
53
53
  <t t-slot="default"/>
54
54
  </p>
55
55
  </t>
56
56
  <t t-name="AlertDialogDescription" t-call="baseui.AlertDialogDescription"/>
57
57
 
58
58
  <t t-name="baseui.AlertDialogCancel">
59
- <button type="button" data-slot="alert-dialog-cancel" class="btn baseui-button btn-outline-secondary baseui-alert-dialog-cancel" t-att-style="props.style" t-on-click="onClick">
59
+ <Button variant="'outline'" attrs="attrs" className="'bu-alert-dialog-cancel'" style="props.style" onClick="() => this.onClick()">
60
60
  <t t-slot="default"/>
61
- </button>
61
+ </Button>
62
62
  </t>
63
63
  <t t-name="AlertDialogCancel" t-call="baseui.AlertDialogCancel"/>
64
64
  <t t-name="baseui.AlertDialogAction">
65
- <button type="button" data-slot="alert-dialog-action" class="btn baseui-button btn-primary baseui-alert-dialog-action" t-att-style="props.style" t-on-click="onClick">
65
+ <Button attrs="attrs" className="'bu-alert-dialog-action'" style="props.style" onClick="() => this.onClick()">
66
66
  <t t-slot="default"/>
67
- </button>
67
+ </Button>
68
68
  </t>
69
69
  <t t-name="AlertDialogAction" t-call="baseui.AlertDialogAction"/>
70
70
  <t t-name="baseui.alert">
71
- <div class="alert baseui-alert baseui-alert-default" role="alert"><t t-esc="props.message"/></div>
71
+ <div class="alert bu-alert bu-alert-default" role="alert"><t t-esc="props.message"/></div>
72
72
  </t>
73
73
  <t t-name="baseui.Alert">
74
74
  <div data-slot="alert" t-att-class="classNames" t-att-style="props.style" role="alert" t-ref="root">
75
75
  <t t-slot="default"/>
76
- <button t-if="props.dismissible" type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"/>
76
+ <Button t-if="props.dismissible" unstyled="true" className="'btn-close'" attrs="{ 'data-bs-dismiss': 'alert', 'aria-label': 'Close' }"/>
77
77
  </div>
78
78
  </t>
79
79
  <t t-name="Alert" t-call="baseui.Alert"/>
80
80
  <t t-name="baseui.AlertTitle">
81
- <div data-slot="alert-title" t-att-class="'baseui-alert-title' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
81
+ <div data-slot="alert-title" t-att-class="'bu-alert-title' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
82
82
  </t>
83
83
  <t t-name="AlertTitle" t-call="baseui.AlertTitle"/>
84
84
  <t t-name="baseui.AlertDescription">
85
- <div data-slot="alert-description" t-att-class="'baseui-alert-description' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
85
+ <div data-slot="alert-description" t-att-class="'bu-alert-description' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
86
86
  </t>
87
87
  <t t-name="AlertDescription" t-call="baseui.AlertDescription"/>
88
88
  <t t-name="baseui.AlertAction">
89
- <div data-slot="alert-action" t-att-class="'baseui-alert-action' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
89
+ <div data-slot="alert-action" t-att-class="'bu-alert-action' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
90
90
  </t>
91
91
  <t t-name="AlertAction" t-call="baseui.AlertAction"/>
92
92
  <t t-name="baseui.accordion">
93
93
  <div b-ui="accordion"><t t-slot="default"/></div>
94
94
  </t>
95
95
  <t t-name="baseui.Accordion">
96
- <div data-slot="accordion" t-att-class="'baseui-accordion' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="presentation">
96
+ <div data-slot="accordion" t-att-class="'bu-accordion' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="presentation">
97
97
  <t t-slot="default"/>
98
98
  </div>
99
99
  </t>
100
100
  <t t-name="Accordion" t-call="baseui.Accordion"/>
101
101
  <t t-name="baseui.AccordionItem">
102
- <div data-slot="accordion-item" class="baseui-accordion-item" t-att-style="props.style"><t t-slot="default"/></div>
102
+ <div data-slot="accordion-item" class="bu-accordion-item" t-att-style="props.style"><t t-slot="default"/></div>
103
103
  </t>
104
104
  <t t-name="AccordionItem" t-call="baseui.AccordionItem"/>
105
105
  <t t-name="baseui.AccordionTrigger">
106
- <div class="baseui-accordion-header" t-att-style="props.style">
107
- <button type="button" data-slot="accordion-trigger" class="baseui-accordion-trigger" t-att-aria-expanded="open ? 'true' : 'false'" t-on-click="onClick">
106
+ <div class="bu-accordion-header" t-att-style="props.style">
107
+ <Button unstyled="true" className="'bu-accordion-trigger'" attrs="triggerAttrs" onClick="() => this.onClick()">
108
108
  <t t-slot="default"/>
109
- <Icon name="'chevron-down'" className="'baseui-accordion-trigger-icon'"/>
110
- </button>
109
+ <Icon name="'chevron-down'" className="'bu-accordion-trigger-icon'"/>
110
+ </Button>
111
111
  </div>
112
112
  </t>
113
113
  <t t-name="AccordionTrigger" t-call="baseui.AccordionTrigger"/>
114
114
  <t t-name="baseui.AccordionContent">
115
- <div t-ref="root" data-slot="accordion-content" t-att-class="'collapse baseui-accordion-content' + (initialOpen ? ' show' : '')" t-att-style="props.style" t-att-aria-hidden="open ? undefined : 'true'">
116
- <div class="baseui-accordion-content-inner"><t t-slot="default"/></div>
115
+ <div t-ref="root" data-slot="accordion-content" t-att-class="'collapse bu-accordion-content' + (initialOpen ? ' show' : '')" t-att-style="props.style" t-att-aria-hidden="open ? undefined : 'true'">
116
+ <div class="bu-accordion-content-inner"><t t-slot="default"/></div>
117
117
  </div>
118
118
  </t>
119
119
  <t t-name="AccordionContent" t-call="baseui.AccordionContent"/>
@@ -125,7 +125,7 @@
125
125
  </t>
126
126
  <t t-name="AspectRatio" t-call="baseui.AspectRatio"/>
127
127
  <t t-name="baseui.attachment">
128
- <div class="baseui-attachment"/>
128
+ <div class="bu-attachment"/>
129
129
  </t>
130
130
  <t t-name="baseui.Attachment">
131
131
  <div
@@ -144,49 +144,42 @@
144
144
  <div t-att-class="classNames" t-att-data-variant="variant" data-slot="attachment-media" t-att-style="props.style"><t t-slot="default"/></div>
145
145
  </t>
146
146
  <t t-name="baseui.AttachmentContent">
147
- <div t-att-class="'baseui-attachment-content' + (props.className ? ' ' + props.className : '')" data-slot="attachment-content" t-att-style="props.style"><t t-slot="default"/></div>
147
+ <div t-att-class="'bu-attachment-content' + (props.className ? ' ' + props.className : '')" data-slot="attachment-content" t-att-style="props.style"><t t-slot="default"/></div>
148
148
  </t>
149
149
  <t t-name="baseui.AttachmentTitle">
150
- <div t-att-class="'baseui-attachment-title' + (props.className ? ' ' + props.className : '')" data-slot="attachment-title" t-att-style="props.style"><t t-slot="default"/></div>
150
+ <div t-att-class="'bu-attachment-title' + (props.className ? ' ' + props.className : '')" data-slot="attachment-title" t-att-style="props.style"><t t-slot="default"/></div>
151
151
  </t>
152
152
  <t t-name="baseui.AttachmentDescription">
153
- <div t-att-class="'baseui-attachment-description' + (props.className ? ' ' + props.className : '')" data-slot="attachment-description" t-att-style="props.style"><t t-slot="default"/></div>
153
+ <div t-att-class="'bu-attachment-description' + (props.className ? ' ' + props.className : '')" data-slot="attachment-description" t-att-style="props.style"><t t-slot="default"/></div>
154
154
  </t>
155
155
  <t t-name="baseui.AttachmentActions">
156
- <div t-att-class="'baseui-attachment-actions' + (props.className ? ' ' + props.className : '')" data-slot="attachment-actions" t-att-style="props.style"><t t-slot="default"/></div>
156
+ <div t-att-class="'bu-attachment-actions' + (props.className ? ' ' + props.className : '')" data-slot="attachment-actions" t-att-style="props.style"><t t-slot="default"/></div>
157
157
  </t>
158
158
  <t t-name="baseui.AttachmentAction">
159
- <button
160
- t-att-class="classNames"
161
- t-att-type="props.type || 'button'"
162
- t-att-disabled="props.disabled"
163
- t-att-aria-label="ariaLabel"
164
- data-slot="attachment-action"
165
- t-att-style="props.style"
166
- t-on-click="onClick"
167
- ><t t-if="props.label" t-esc="props.label"/><t t-else="" t-slot="default"/></button>
159
+ <Button
160
+ variant="variant"
161
+ size="size"
162
+ type="props.type || 'button'"
163
+ disabled="props.disabled"
164
+ label="props.label"
165
+ className="className"
166
+ aria-label="ariaLabel"
167
+ style="props.style"
168
+ attrs="{'data-slot': 'attachment-action'}"
169
+ onClick="(event) => this.onClick(event)"
170
+ ><t t-slot="default"/></Button>
168
171
  </t>
169
172
  <t t-name="baseui.AttachmentTrigger">
170
- <a
171
- t-if="props.href"
172
- t-att-class="classNames"
173
- t-att-href="props.href"
174
- t-att-target="props.target"
175
- t-att-rel="props.rel || (props.target === '_blank' ? 'noreferrer' : undefined)"
176
- t-att-aria-label="ariaLabel"
177
- data-slot="attachment-trigger"
178
- t-att-style="props.style"
179
- t-on-click="onClick"
180
- ></a>
181
- <button
182
- t-else=""
183
- t-att-class="classNames"
184
- t-att-type="props.type || 'button'"
185
- t-att-aria-label="ariaLabel"
186
- data-slot="attachment-trigger"
187
- t-att-style="props.style"
188
- t-on-click="onClick"
189
- ></button>
173
+ <Button
174
+ unstyled="true"
175
+ href="props.href"
176
+ type="props.type || 'button'"
177
+ className="classNames"
178
+ aria-label="ariaLabel"
179
+ style="props.style"
180
+ attrs="{'data-slot': 'attachment-trigger', 'target': props.target, 'rel': props.rel || (props.target === '_blank' ? 'noreferrer' : undefined)}"
181
+ onClick="(event) => this.onClick(event)"
182
+ />
190
183
  </t>
191
184
  <t t-name="baseui.AttachmentGroup">
192
185
  <div t-att-class="classNames" data-slot="attachment-group" t-att-style="props.style"><t t-slot="default"/></div>
@@ -212,7 +205,7 @@
212
205
  />
213
206
  <t t-if="hasContent" t-slot="default"/>
214
207
  <t t-else="">
215
- <p class="baseui-attachment-dropzone-hint">Drag and drop a file here, or click to browse.</p>
208
+ <p class="bu-attachment-dropzone-hint">Drag and drop a file here, or click to browse.</p>
216
209
  </t>
217
210
  </div>
218
211
  </t>
@@ -227,10 +220,10 @@
227
220
  <t t-name="AttachmentGroup" t-call="baseui.AttachmentGroup"/>
228
221
  <t t-name="AttachmentDropzone" t-call="baseui.AttachmentDropzone"/>
229
222
  <t t-name="baseui.avatar">
230
- <span class="baseui-avatar"><t t-out="props.content"/></span>
223
+ <span class="bu-avatar"><t t-out="props.content"/></span>
231
224
  </t>
232
225
  <t t-name="baseui.Avatar">
233
- <span t-att-class="'baseui-avatar' + (props.className ? ' ' + props.className : '')" t-att-title="props.title" t-att-style="props.style">
226
+ <span t-att-class="'bu-avatar' + (props.className ? ' ' + props.className : '')" t-att-title="props.title" t-att-style="props.style">
234
227
  <img t-if="showImage" t-att-src="props.src" t-att-alt="props.alt" t-on-error="onError"/>
235
228
  <t t-if="!showImage" t-slot="fallback"/>
236
229
  </span>
@@ -245,19 +238,19 @@
245
238
  <t t-name="Badge" t-call="baseui.Badge"/>
246
239
  <t t-name="baseui.BlockViewer">
247
240
  <t t-if="state.embed">
248
- <div class="baseui-block-embed-root" t-ref="embedRoot"></div>
241
+ <div class="bu-block-embed-root" t-ref="embedRoot"></div>
249
242
  </t>
250
243
  <t t-else="">
251
- <div class="baseui-block-viewer">
244
+ <div class="bu-block-viewer">
252
245
  <t t-call="baseui.BlockViewerNav"/>
253
- <div class="baseui-block-viewer-shell">
254
- <header class="baseui-block-viewer-header">
255
- <div class="baseui-block-viewer-title">
256
- <a href="/blocks" class="baseui-block-muted">Blocks</a>
246
+ <div class="bu-block-viewer-shell">
247
+ <header class="bu-block-viewer-header">
248
+ <div class="bu-block-viewer-title">
249
+ <a href="/blocks" class="bu-block-muted">Blocks</a>
257
250
  <h1 t-esc="title"/>
258
251
  <p t-esc="description"/>
259
252
  </div>
260
- <div class="baseui-block-viewer-actions">
253
+ <div class="bu-block-viewer-actions">
261
254
  <Button variant="'outline'" type="'button'" ariaPressed="state.mode === 'preview' ? 'true' : 'false'" onClick="() => this.setMode('preview')">
262
255
  <Icon name="'eye'"/>
263
256
  Preview
@@ -266,13 +259,13 @@
266
259
  <Icon name="'code'"/>
267
260
  Code
268
261
  </Button>
269
- <Button variant="'ghost'" type="'button'" className="'baseui-icon-button'" ariaLabel="'Desktop preview'" ariaPressed="state.viewport === 'desktop' ? 'true' : 'false'" onClick="() => this.setViewport('desktop')">
262
+ <Button variant="'ghost'" type="'button'" className="'bu-icon-button'" ariaLabel="'Desktop preview'" ariaPressed="state.viewport === 'desktop' ? 'true' : 'false'" onClick="() => this.setViewport('desktop')">
270
263
  <Icon name="'monitor'"/>
271
264
  </Button>
272
- <Button variant="'ghost'" type="'button'" className="'baseui-icon-button'" ariaLabel="'Tablet preview'" ariaPressed="state.viewport === 'tablet' ? 'true' : 'false'" onClick="() => this.setViewport('tablet')">
265
+ <Button variant="'ghost'" type="'button'" className="'bu-icon-button'" ariaLabel="'Tablet preview'" ariaPressed="state.viewport === 'tablet' ? 'true' : 'false'" onClick="() => this.setViewport('tablet')">
273
266
  <Icon name="'tablet'"/>
274
267
  </Button>
275
- <Button variant="'ghost'" type="'button'" className="'baseui-icon-button'" ariaLabel="'Mobile preview'" ariaPressed="state.viewport === 'mobile' ? 'true' : 'false'" onClick="() => this.setViewport('mobile')">
268
+ <Button variant="'ghost'" type="'button'" className="'bu-icon-button'" ariaLabel="'Mobile preview'" ariaPressed="state.viewport === 'mobile' ? 'true' : 'false'" onClick="() => this.setViewport('mobile')">
276
269
  <Icon name="'smartphone'"/>
277
270
  </Button>
278
271
  <Button variant="'outline'" type="'button'" onClick="() => this.copyCode()">
@@ -281,12 +274,12 @@
281
274
  </Button>
282
275
  </div>
283
276
  </header>
284
- <main class="baseui-block-viewer-main">
285
- <section t-att-class="state.mode === 'code' ? 'baseui-block-preview-panel is-hidden' : 'baseui-block-preview-panel'">
286
- <div class="baseui-block-preview-frame" t-att-style="previewStyle" t-ref="previewFrame"></div>
277
+ <main class="bu-block-viewer-main">
278
+ <section t-att-class="state.mode === 'code' ? 'bu-block-preview-panel is-hidden' : 'bu-block-preview-panel'">
279
+ <div class="bu-block-preview-frame" t-att-style="previewStyle" t-ref="previewFrame"></div>
287
280
  </section>
288
- <section t-att-class="state.mode === 'code' ? 'baseui-block-code-panel is-active' : 'baseui-block-code-panel'">
289
- <div class="baseui-block-code-toolbar" role="group" aria-label="Code source">
281
+ <section t-att-class="state.mode === 'code' ? 'bu-block-code-panel is-active' : 'bu-block-code-panel'">
282
+ <div class="bu-block-code-toolbar" role="group" aria-label="Code source">
290
283
  <Button variant="'ghost'" type="'button'" ariaPressed="state.codeVariant === 'owl' ? 'true' : 'false'" onClick="() => this.setCodeVariant('owl')">
291
284
  Pure Owl Component
292
285
  </Button>
@@ -294,7 +287,7 @@
294
287
  Template
295
288
  </Button>
296
289
  </div>
297
- <pre class="baseui-block-code" t-esc="activeCode"/>
290
+ <pre class="bu-block-code" t-esc="activeCode"/>
298
291
  </section>
299
292
  </main>
300
293
  </div>
@@ -303,15 +296,15 @@
303
296
  </t>
304
297
 
305
298
  <t t-name="baseui.BlockViewerNav">
306
- <header class="baseui-example-header">
307
- <nav class="container baseui-example-nav" aria-label="BaseUI pages">
308
- <a class="navbar-brand fw-semibold text-decoration-none baseui-example-brand" href="/docs">BaseUI</a>
309
- <div class="baseui-example-nav-menu" aria-label="BaseUI pages">
299
+ <header class="bu-example-header">
300
+ <nav class="container bu-example-nav" aria-label="BaseUI pages">
301
+ <a class="navbar-brand fw-semibold text-decoration-none bu-example-brand" href="/docs">BaseUI</a>
302
+ <div class="bu-example-nav-menu" aria-label="BaseUI pages">
310
303
  <a t-foreach="navItems" t-as="item" t-key="item.key" t-att-href="item.href" t-att-class="item.key === 'blocks' ? 'is-active' : ''" t-att-aria-current="item.key === 'blocks' ? 'page' : undefined">
311
304
  <t t-esc="item.label"/>
312
305
  </a>
313
306
  </div>
314
- <ThemeButton variant="'outline'" storageKey="'baseui-example-theme'"/>
307
+ <ThemeButton variant="'outline'" storageKey="'bu-example-theme'"/>
315
308
  </nav>
316
309
  </header>
317
310
  </t>
@@ -323,7 +316,7 @@
323
316
  <t t-name="baseui.Breadcrumb">
324
317
  <nav
325
318
  data-slot="breadcrumb"
326
- t-att-class="'baseui-breadcrumb' + (props.className ? ' ' + props.className : '')"
319
+ t-att-class="'bu-breadcrumb' + (props.className ? ' ' + props.className : '')"
327
320
  aria-label="breadcrumb"
328
321
  t-att-style="props.style"
329
322
  >
@@ -334,7 +327,7 @@
334
327
  <t t-name="baseui.BreadcrumbList">
335
328
  <ol
336
329
  data-slot="breadcrumb-list"
337
- t-att-class="'breadcrumb baseui-breadcrumb-list' + (props.className ? ' ' + props.className : '')"
330
+ t-att-class="'breadcrumb bu-breadcrumb-list' + (props.className ? ' ' + props.className : '')"
338
331
  t-att-style="props.style"
339
332
  >
340
333
  <t t-slot="default"/>
@@ -383,7 +376,7 @@
383
376
  t-att-style="props.style"
384
377
  >
385
378
  <t t-if="hasCustomContent" t-slot="default"/>
386
- <Icon t-else="" name="'chevron-right'" className="'baseui-breadcrumb-separator-icon'"/>
379
+ <Icon t-else="" name="'chevron-right'" className="'bu-breadcrumb-separator-icon'"/>
387
380
  </li>
388
381
  </t>
389
382
  <t t-name="BreadcrumbSeparator" t-call="baseui.BreadcrumbSeparator"/>
@@ -396,7 +389,7 @@
396
389
  t-att-style="props.style"
397
390
  >
398
391
  <t t-if="hasCustomContent" t-slot="default"/>
399
- <Icon t-else="" name="'ellipsis'" className="'baseui-breadcrumb-ellipsis-icon'"/>
392
+ <Icon t-else="" name="'ellipsis'" className="'bu-breadcrumb-ellipsis-icon'"/>
400
393
  <span class="visually-hidden">More</span>
401
394
  </span>
402
395
  </t>
@@ -409,6 +402,7 @@
409
402
  <t t-name="baseui.Button">
410
403
  <a
411
404
  t-if="props.href"
405
+ t-ref="root"
412
406
  t-att-class="classNames"
413
407
  t-att-href="props.href"
414
408
  data-slot="button"
@@ -421,6 +415,7 @@
421
415
  t-att-data-icon-only="isIconOnly ? 'true' : undefined"
422
416
  t-att-data-icon="props.icon ? 'inline-' + iconPosition : undefined"
423
417
  t-att-style="props.style"
418
+ t-att="props.attrs || {}"
424
419
  t-on-click="onClick"
425
420
  >
426
421
  <Icon t-if="props.icon &amp;&amp; iconPosition !== 'end'" name="props.icon"/>
@@ -430,6 +425,7 @@
430
425
  </a>
431
426
  <button
432
427
  t-else=""
428
+ t-ref="root"
433
429
  t-att-class="classNames"
434
430
  t-att-type="props.type || 'button'"
435
431
  data-slot="button"
@@ -442,6 +438,7 @@
442
438
  t-att-data-icon-only="isIconOnly ? 'true' : undefined"
443
439
  t-att-data-icon="props.icon ? 'inline-' + iconPosition : undefined"
444
440
  t-att-style="props.style"
441
+ t-att="props.attrs || {}"
445
442
  t-on-click="onClick"
446
443
  >
447
444
  <Icon t-if="props.icon &amp;&amp; iconPosition !== 'end'" name="props.icon"/>
@@ -478,32 +475,32 @@
478
475
  <t t-name="ButtonGroupSeparator" t-call="baseui.ButtonGroupSeparator"/>
479
476
  <t t-name="ButtonGroupText" t-call="baseui.ButtonGroupText"/>
480
477
  <t t-name="baseui.calendar">
481
- <div class="baseui-calendar"/>
478
+ <div class="bu-calendar"/>
482
479
  </t>
483
480
  <t t-name="baseui.Calendar">
484
- <div t-att-class="'baseui-calendar' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
485
- <div class="baseui-calendar__header"><t t-esc="headerLabel"/></div>
486
- <div class="baseui-calendar__weekdays">
481
+ <div t-att-class="'bu-calendar' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
482
+ <div class="bu-calendar__header"><t t-esc="headerLabel"/></div>
483
+ <div class="bu-calendar__weekdays">
487
484
  <span t-foreach="weekdays" t-as="weekday" t-key="weekday" t-esc="weekday"/>
488
485
  </div>
489
- <div class="baseui-calendar__grid">
486
+ <div class="bu-calendar__grid">
490
487
  <t t-foreach="days" t-as="cell" t-key="cell_index">
491
488
  <span t-if="!cell"/>
492
- <button
489
+ <Button
493
490
  t-else=""
494
- type="button"
495
- t-att-aria-pressed="cell.selected ? 'true' : 'false'"
496
- t-on-click="() => this.onSelect(cell.value)"
491
+ unstyled="true"
492
+ attrs="{ 'aria-pressed': cell.selected ? 'true' : 'false' }"
493
+ onClick="() => this.onSelect(cell.value)"
497
494
  >
498
495
  <t t-esc="cell.day"/>
499
- </button>
496
+ </Button>
500
497
  </t>
501
498
  </div>
502
499
  </div>
503
500
  </t>
504
501
  <t t-name="Calendar" t-call="baseui.Calendar"/>
505
502
  <t t-name="baseui.Card">
506
- <div t-tag="tag" t-att-class="'card baseui-card' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
503
+ <div t-tag="tag" t-att-class="'card bu-card' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
507
504
  <t t-slot="default"/>
508
505
  </div>
509
506
  </t>
@@ -544,10 +541,10 @@
544
541
  </t>
545
542
  <t t-name="CardDescription" t-call="baseui.CardDescription"/>
546
543
  <t t-name="baseui.carousel">
547
- <div class="baseui-carousel"/>
544
+ <div class="bu-carousel"/>
548
545
  </t>
549
546
  <t t-name="baseui.Carousel">
550
- <div t-ref="root" t-att-class="'baseui-carousel carousel slide' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
547
+ <div t-ref="root" t-att-class="'bu-carousel carousel slide' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
551
548
  <div class="carousel-inner">
552
549
  <t t-slot="default"/>
553
550
  </div>
@@ -555,19 +552,19 @@
555
552
  </t>
556
553
  <t t-name="Carousel" t-call="baseui.Carousel"/>
557
554
  <t t-name="baseui.CarouselSlide">
558
- <div t-ref="root" t-att-class="'baseui-carousel-slide carousel-item' + (initialActive ? ' active' : '')" t-att-style="props.style"><t t-slot="default"/></div>
555
+ <div t-ref="root" t-att-class="'bu-carousel-slide carousel-item' + (initialActive ? ' active' : '')" t-att-style="props.style"><t t-slot="default"/></div>
559
556
  </t>
560
557
  <t t-name="CarouselSlide" t-call="baseui.CarouselSlide"/>
561
558
  <t t-name="baseui.CarouselPrevious">
562
- <button type="button" class="baseui-carousel-prev" t-att-style="props.style" t-on-click="onClick"><t t-slot="default"/></button>
559
+ <Button unstyled="true" className="'bu-carousel-prev'" style="props.style" onClick="() => this.onClick()"><t t-slot="default"/></Button>
563
560
  </t>
564
561
  <t t-name="CarouselPrevious" t-call="baseui.CarouselPrevious"/>
565
562
  <t t-name="baseui.CarouselNext">
566
- <button type="button" class="baseui-carousel-next" t-att-style="props.style" t-on-click="onClick"><t t-slot="default"/></button>
563
+ <Button unstyled="true" className="'bu-carousel-next'" style="props.style" onClick="() => this.onClick()"><t t-slot="default"/></Button>
567
564
  </t>
568
565
  <t t-name="CarouselNext" t-call="baseui.CarouselNext"/>
569
566
  <t t-name="baseui.chart">
570
- <div class="baseui-chart"/>
567
+ <div class="bu-chart"/>
571
568
  </t>
572
569
  <t t-name="baseui.Chart">
573
570
  <div
@@ -583,7 +580,7 @@
583
580
  <label b-ui="checkbox"><input type="checkbox"/><t t-slot="default"/></label>
584
581
  </t>
585
582
  <t t-name="baseui.Checkbox">
586
- <label t-att-class="'form-check baseui-check ' + (props.className || '')" t-att-style="props.style">
583
+ <label t-att-class="'form-check bu-check ' + (props.className || '')" t-att-style="props.style">
587
584
  <input
588
585
  type="checkbox"
589
586
  class="form-check-input"
@@ -597,48 +594,47 @@
597
594
  </t>
598
595
  <t t-name="Checkbox" t-call="baseui.Checkbox"/>
599
596
  <t t-name="baseui.ClipboardButton">
600
- <button
601
- t-att-class="classNames"
602
- type="button"
603
- t-att-style="props.style"
604
- t-att-disabled="props.disabled"
605
- t-att-aria-label="ariaLabel"
606
- t-att-data-icon-only="isIconOnly ? 'true' : undefined"
607
- t-att-data-copied="state.copied ? 'true' : undefined"
608
- t-on-click="onClick"
597
+ <Button
598
+ unstyled="true"
599
+ className="classNames"
600
+ style="props.style"
601
+ disabled="props.disabled"
602
+ ariaLabel="ariaLabel"
603
+ attrs="attrs"
604
+ icon="iconName"
605
+ label="label"
606
+ onClick="(event) => this.onClick(event)"
609
607
  >
610
- <Icon name="iconName"/>
611
- <t t-if="label" t-esc="label"/>
612
- <t t-else="" t-slot="default"/>
613
- </button>
608
+ <t t-slot="default"/>
609
+ </Button>
614
610
  </t>
615
611
  <t t-name="ClipboardButton" t-call="baseui.ClipboardButton"/>
616
612
  <t t-name="baseui.collapsible">
617
613
  <div b-ui="collapsible"><t t-slot="default"/></div>
618
614
  </t>
619
615
  <t t-name="baseui.Collapsible">
620
- <div t-att-class="'baseui-collapsible' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
616
+ <div t-att-class="'bu-collapsible' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
621
617
  <t t-slot="default"/>
622
618
  </div>
623
619
  </t>
624
620
  <t t-name="Collapsible" t-call="baseui.Collapsible"/>
625
621
  <t t-name="baseui.CollapsibleTrigger">
626
- <button type="button" class="baseui-collapsible-trigger" t-att-style="props.style" t-att-aria-expanded="env.collapsible.open ? 'true' : 'false'" t-on-click="onClick">
622
+ <Button unstyled="true" className="'bu-collapsible-trigger'" style="props.style" attrs="attrs" onClick="() => this.onClick()">
627
623
  <t t-slot="default"/>
628
- </button>
624
+ </Button>
629
625
  </t>
630
626
  <t t-name="CollapsibleTrigger" t-call="baseui.CollapsibleTrigger"/>
631
627
  <t t-name="baseui.CollapsibleContent">
632
- <div t-ref="root" t-att-class="'collapse baseui-collapsible-content' + (initialOpen ? ' show' : '')" t-att-style="props.style" t-att-aria-hidden="open ? undefined : 'true'">
628
+ <div t-ref="root" t-att-class="'collapse bu-collapsible-content' + (initialOpen ? ' show' : '')" t-att-style="props.style" t-att-aria-hidden="open ? undefined : 'true'">
633
629
  <t t-slot="default"/>
634
630
  </div>
635
631
  </t>
636
632
  <t t-name="CollapsibleContent" t-call="baseui.CollapsibleContent"/>
637
633
  <t t-name="baseui.combobox">
638
- <div class="baseui-combobox"/>
634
+ <div class="bu-combobox"/>
639
635
  </t>
640
636
  <t t-name="baseui.Combobox">
641
- <div t-att-class="'baseui-combobox' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" t-ref="root">
637
+ <div t-att-class="'bu-combobox' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" t-ref="root">
642
638
  <input
643
639
  class="form-control"
644
640
  role="combobox"
@@ -649,13 +645,13 @@
649
645
  t-on-input="onInput"
650
646
  t-on-focus="onFocus"
651
647
  />
652
- <div t-if="disclosure.open" class="baseui-combobox-list" role="listbox">
648
+ <div t-if="disclosure.open" class="bu-combobox-list" role="listbox">
653
649
  <div
654
650
  t-foreach="filteredOptions"
655
651
  t-as="option"
656
652
  t-key="option.value"
657
653
  role="option"
658
- class="baseui-combobox-option"
654
+ class="bu-combobox-option"
659
655
  t-on-click="() => this.choose(option)"
660
656
  >
661
657
  <t t-esc="option.label"/>
@@ -665,17 +661,17 @@
665
661
  </t>
666
662
  <t t-name="Combobox" t-call="baseui.Combobox"/>
667
663
  <t t-name="baseui.command">
668
- <div b-ui="command" class="baseui-command"/>
664
+ <div b-ui="command" class="bu-command"/>
669
665
  </t>
670
666
  <t t-name="baseui.Command">
671
- <div t-att-class="'baseui-command' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="dialog">
667
+ <div t-att-class="'bu-command' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="dialog">
672
668
  <input class="form-control" t-att-placeholder="props.placeholder" t-on-input="onInput"/>
673
- <div class="baseui-command-list">
669
+ <div class="bu-command-list">
674
670
  <div
675
671
  t-foreach="filteredItems"
676
672
  t-as="item"
677
673
  t-key="item.value"
678
- class="baseui-command-item"
674
+ class="bu-command-item"
679
675
  t-on-click="() => this.select(item)"
680
676
  >
681
677
  <t t-esc="item.label"/>
@@ -685,39 +681,39 @@
685
681
  </t>
686
682
  <t t-name="Command" t-call="baseui.Command"/>
687
683
  <t t-name="baseui.context-menu">
688
- <div class="baseui-context-menu"/>
684
+ <div class="bu-context-menu"/>
689
685
  </t>
690
686
  <t t-name="baseui.ContextMenu">
691
687
  <t t-slot="default"/>
692
688
  </t>
693
689
  <t t-name="ContextMenu" t-call="baseui.ContextMenu"/>
694
690
  <t t-name="baseui.ContextMenuTrigger">
695
- <div class="baseui-context-menu-trigger" t-on-contextmenu="onContextMenu">
691
+ <div class="bu-context-menu-trigger" t-on-contextmenu="onContextMenu">
696
692
  <t t-slot="default"/>
697
693
  </div>
698
694
  </t>
699
695
  <t t-name="ContextMenuTrigger" t-call="baseui.ContextMenuTrigger"/>
700
696
  <t t-name="baseui.ContextMenuContent">
701
- <div t-if="open" class="baseui-context-menu-content" role="menu" t-att-style="style" t-ref="root">
697
+ <div t-if="open" class="bu-context-menu-content" role="menu" t-att-style="style" t-ref="root">
702
698
  <t t-slot="default"/>
703
699
  </div>
704
700
  </t>
705
701
  <t t-name="ContextMenuContent" t-call="baseui.ContextMenuContent"/>
706
702
  <t t-name="baseui.ContextMenuItem">
707
- <div class="baseui-context-menu-item" role="menuitem" tabindex="0" t-on-click="onClick">
703
+ <div class="bu-context-menu-item" role="menuitem" tabindex="0" t-on-click="onClick">
708
704
  <t t-slot="default"/>
709
705
  </div>
710
706
  </t>
711
707
  <t t-name="ContextMenuItem" t-call="baseui.ContextMenuItem"/>
712
708
  <t t-name="baseui.data-table">
713
- <div class="baseui-data-table"/>
709
+ <div class="bu-data-table"/>
714
710
  </t>
715
711
  <t t-name="baseui.DataTable.Table">
716
- <div class="baseui-data-table__viewport" t-att-style="viewportStyle">
717
- <table class="table baseui-data-table__table">
712
+ <div class="bu-data-table__viewport" t-att-style="viewportStyle">
713
+ <table class="table bu-data-table__table">
718
714
  <thead>
719
715
  <tr>
720
- <th t-if="hasSelection" class="baseui-data-table__selection-cell">
716
+ <th t-if="hasSelection" class="bu-data-table__selection-cell">
721
717
  <input
722
718
  type="checkbox"
723
719
  class="form-check-input"
@@ -733,23 +729,23 @@
733
729
  t-att-class="column.align === 'right' ? 'text-end' : column.align === 'center' ? 'text-center' : ''"
734
730
  t-att-b-att-sort="state.sortKey === column.key ? (state.sortDir === 1 ? 'asc' : 'desc') : undefined"
735
731
  >
736
- <button
732
+ <Button
737
733
  t-if="isColumnSortable(column)"
738
- type="button"
739
- class="baseui-data-table__header-button"
740
- t-on-click="() => this.sortBy(column.key)"
734
+ unstyled="true"
735
+ className="'bu-data-table__header-button'"
736
+ onClick="() => this.sortBy(column.key)"
741
737
  >
742
738
  <span><t t-esc="columnLabel(column)"/></span>
743
- <span class="baseui-data-table__sort-icon" t-att-data-icon="sortIcon(column.key)" aria-hidden="true"></span>
744
- </button>
739
+ <span class="bu-data-table__sort-icon" t-att-data-icon="sortIcon(column.key)" aria-hidden="true"></span>
740
+ </Button>
745
741
  <t t-else="" t-esc="columnLabel(column)"/>
746
742
  </th>
747
- <th t-if="rowActions.length" class="baseui-data-table__actions-cell"><span class="visually-hidden">Actions</span></th>
743
+ <th t-if="rowActions.length" class="bu-data-table__actions-cell"><span class="visually-hidden">Actions</span></th>
748
744
  </tr>
749
745
  </thead>
750
746
  <tbody>
751
747
  <tr t-if="!pageRows.length">
752
- <td t-att-colspan="visibleColumns.length + (hasSelection ? 1 : 0) + (rowActions.length ? 1 : 0)" class="baseui-data-table__empty">
748
+ <td t-att-colspan="visibleColumns.length + (hasSelection ? 1 : 0) + (rowActions.length ? 1 : 0)" class="bu-data-table__empty">
753
749
  <t t-esc="emptyLabel"/>
754
750
  </td>
755
751
  </tr>
@@ -759,7 +755,7 @@
759
755
  t-key="rowKey(row, row_index)"
760
756
  t-att-data-state="isSelected(row, row_index) ? 'selected' : undefined"
761
757
  >
762
- <td t-if="hasSelection" class="baseui-data-table__selection-cell">
758
+ <td t-if="hasSelection" class="bu-data-table__selection-cell">
763
759
  <input
764
760
  type="checkbox"
765
761
  class="form-check-input"
@@ -777,10 +773,10 @@
777
773
  <t t-if="column.component">
778
774
  <t t-component="column.component" t-props="cellComponentProps(row, column)"/>
779
775
  </t>
780
- <span t-else="" t-att-class="column.format === 'currency' ? 'baseui-data-table__money' : ''"><t t-esc="cellValue(row, column)"/></span>
776
+ <span t-else="" t-att-class="column.format === 'currency' ? 'bu-data-table__money' : ''"><t t-esc="cellValue(row, column)"/></span>
781
777
  </td>
782
- <td t-if="rowActions.length" class="baseui-data-table__actions-cell">
783
- <div class="baseui-data-table__actions">
778
+ <td t-if="rowActions.length" class="bu-data-table__actions-cell">
779
+ <div class="bu-data-table__actions">
784
780
  <Button variant="'ghost'" size="'icon'" icon="'ellipsis'" aria-label="'Open menu'" onClick="(event) => this.toggleRowActions(row, row_index, event)"/>
785
781
  </div>
786
782
  </td>
@@ -791,25 +787,25 @@
791
787
  </t>
792
788
  <t t-name="baseui.DataTable">
793
789
  <div t-att-class="classNames" t-att-style="props.style" data-slot="data-table">
794
- <div class="baseui-data-table__toolbar" t-if="hasSearch || hasColumnToggle || hasToolbarActions">
790
+ <div class="bu-data-table__toolbar" t-if="hasSearch || hasColumnToggle || hasToolbarActions">
795
791
  <input
796
792
  t-if="hasSearch"
797
793
  type="search"
798
- class="form-control baseui-data-table__search"
794
+ class="form-control bu-data-table__search"
799
795
  t-att-placeholder="filterPlaceholder"
800
796
  t-att-value="state.query"
801
797
  t-on-input="onSearchInput"
802
798
  />
803
- <div t-if="hasColumnToggle || hasToolbarActions" class="baseui-data-table__toolbar-end">
799
+ <div t-if="hasColumnToggle || hasToolbarActions" class="bu-data-table__toolbar-end">
804
800
  <t t-if="hasToolbarActions" t-slot="toolbarActions"/>
805
- <div t-if="hasColumnToggle" class="baseui-data-table__columns">
801
+ <div t-if="hasColumnToggle" class="bu-data-table__columns">
806
802
  <Button variant="'outline'" label="'Columns'" icon="'chevron-down'" iconPosition="'end'" aria-label="'Toggle columns'" onClick="() => this.toggleColumnsMenu()"/>
807
- <div t-if="state.columnsOpen" class="baseui-data-table__columns-menu" role="menu" data-state="open">
803
+ <div t-if="state.columnsOpen" class="bu-data-table__columns-menu" role="menu" data-state="open">
808
804
  <label
809
805
  t-foreach="columns.filter((column) => column.hideable !== false)"
810
806
  t-as="column"
811
807
  t-key="column.key"
812
- class="baseui-data-table__columns-item"
808
+ class="bu-data-table__columns-item"
813
809
  >
814
810
  <input
815
811
  type="checkbox"
@@ -825,51 +821,51 @@
825
821
  </div>
826
822
  <t t-call="baseui.DataTable.Table"/>
827
823
  <t t-call="baseui.DataTable.Cards"/>
828
- <div class="baseui-data-table__pagination" t-if="hasPagination">
829
- <div class="baseui-data-table__selection-summary">
824
+ <div class="bu-data-table__pagination" t-if="hasPagination">
825
+ <div class="bu-data-table__selection-summary">
830
826
  <t t-esc="selectionLabel"/>
831
827
  </div>
832
- <div class="baseui-data-table__pager">
833
- <div t-if="pageSizeOptions.length" class="baseui-data-table__page-size">
828
+ <div class="bu-data-table__pager">
829
+ <div t-if="pageSizeOptions.length" class="bu-data-table__page-size">
834
830
  <span>Rows per page</span>
835
831
  <select class="form-select form-select-sm" t-on-change="(event) => this.setPageSize(event.target.value)">
836
832
  <option t-foreach="pageSizeOptions" t-as="option" t-key="option" t-att-value="optionValue(option)" t-att-selected="option === state.pageSize"><t t-esc="option"/></option>
837
833
  </select>
838
834
  </div>
839
- <div class="baseui-data-table__page-label"><t t-esc="pageLabel"/></div>
835
+ <div class="bu-data-table__page-label"><t t-esc="pageLabel"/></div>
840
836
  <Button variant="'outline'" size="'sm'" label="'Previous'" aria-label="'Go to previous page'" disabled="!canPreviousPage" onClick="() => this.setPage(state.page - 1)"/>
841
837
  <Button variant="'outline'" size="'sm'" label="'Next'" aria-label="'Go to next page'" disabled="!canNextPage" onClick="() => this.setPage(state.page + 1)"/>
842
838
  </div>
843
839
  </div>
844
- <div t-if="openRowAction" t-portal="'body'" class="baseui-data-table__actions-menu" role="menu" data-state="open" t-att-style="state.actionMenuStyle" t-ref="actionsMenu">
845
- <button
840
+ <div t-if="openRowAction" t-portal="'body'" class="bu-data-table__actions-menu" role="menu" data-state="open" t-att-style="state.actionMenuStyle" t-ref="actionsMenu">
841
+ <Button
846
842
  t-foreach="rowActions"
847
843
  t-as="action"
848
844
  t-key="action.label"
849
- type="button"
850
- class="baseui-data-table__actions-item"
851
- role="menuitem"
852
- t-on-click="() => this.onAction(action, openRowAction.row, openRowAction.index)"
845
+ unstyled="true"
846
+ className="'bu-data-table__actions-item'"
847
+ attrs="{ role: 'menuitem' }"
848
+ onClick="() => this.onAction(action, openRowAction.row, openRowAction.index)"
853
849
  >
854
850
  <t t-esc="action.label"/>
855
- </button>
851
+ </Button>
856
852
  </div>
857
853
  </div>
858
854
  </t>
859
855
  <t t-name="DataTable" t-call="baseui.DataTable"/>
860
856
  <t t-name="baseui.DataTable.Cards">
861
- <div class="baseui-data-table__cards">
862
- <div t-if="!pageRows.length" class="baseui-data-table__empty-card">
857
+ <div class="bu-data-table__cards">
858
+ <div t-if="!pageRows.length" class="bu-data-table__empty-card">
863
859
  <t t-esc="emptyLabel"/>
864
860
  </div>
865
861
  <div
866
862
  t-foreach="pageRows"
867
863
  t-as="row"
868
864
  t-key="rowKey(row, row_index)"
869
- class="baseui-data-table__card"
865
+ class="bu-data-table__card"
870
866
  t-att-data-state="isSelected(row, row_index) ? 'selected' : undefined"
871
867
  >
872
- <div class="baseui-data-table__card-header" t-if="hasSelection || rowActions.length">
868
+ <div class="bu-data-table__card-header" t-if="hasSelection || rowActions.length">
873
869
  <input
874
870
  t-if="hasSelection"
875
871
  type="checkbox"
@@ -878,17 +874,17 @@
878
874
  t-att-checked="isSelected(row, row_index)"
879
875
  t-on-change="(event) => this.toggleRow(row, row_index, event.target.checked)"
880
876
  />
881
- <div t-if="rowActions.length" class="baseui-data-table__actions">
877
+ <div t-if="rowActions.length" class="bu-data-table__actions">
882
878
  <Button variant="'ghost'" size="'icon'" icon="'ellipsis'" aria-label="'Open menu'" onClick="(event) => this.toggleRowActions(row, row_index, event)"/>
883
879
  </div>
884
880
  </div>
885
- <div class="baseui-data-table__card-field" t-foreach="visibleColumns" t-as="column" t-key="column.key">
886
- <span class="baseui-data-table__card-label"><t t-esc="columnLabel(column)"/></span>
887
- <span class="baseui-data-table__card-value">
881
+ <div class="bu-data-table__card-field" t-foreach="visibleColumns" t-as="column" t-key="column.key">
882
+ <span class="bu-data-table__card-label"><t t-esc="columnLabel(column)"/></span>
883
+ <span class="bu-data-table__card-value">
888
884
  <t t-if="column.component">
889
885
  <t t-component="column.component" t-props="cellComponentProps(row, column)"/>
890
886
  </t>
891
- <span t-else="" t-att-class="column.format === 'currency' ? 'baseui-data-table__money' : ''"><t t-esc="cellValue(row, column)"/></span>
887
+ <span t-else="" t-att-class="column.format === 'currency' ? 'bu-data-table__money' : ''"><t t-esc="cellValue(row, column)"/></span>
892
888
  </span>
893
889
  </div>
894
890
  </div>
@@ -916,21 +912,28 @@
916
912
  <t t-name="Dialog" t-call="baseui.Dialog"/>
917
913
 
918
914
  <t t-name="baseui.DialogTrigger">
919
- <span class="baseui-dialog-trigger" data-slot="dialog-trigger" t-att-style="props.style" t-on-click="onClick">
915
+ <span class="bu-dialog-trigger" data-slot="dialog-trigger" t-att-style="props.style" t-on-click="onClick">
920
916
  <t t-slot="default"/>
921
917
  </span>
922
918
  </t>
923
919
  <t t-name="DialogTrigger" t-call="baseui.DialogTrigger"/>
924
920
 
925
921
  <t t-name="baseui.DialogContent">
926
- <div t-ref="root" class="modal fade baseui-dialog-backdrop" data-slot="dialog-overlay" tabindex="-1" aria-hidden="true" t-att-style="props.style">
922
+ <div t-ref="root" class="modal fade bu-dialog-backdrop" data-slot="dialog-overlay" tabindex="-1" aria-hidden="true" t-att-style="props.style">
927
923
  <div class="modal-dialog modal-dialog-centered">
928
- <div t-att-class="'modal-content baseui-dialog-panel' + (props.className ? ' ' + props.className : '')" data-slot="dialog-content">
924
+ <div t-att-class="'modal-content bu-dialog-panel' + (props.className ? ' ' + props.className : '')" data-slot="dialog-content">
929
925
  <t t-slot="default"/>
930
- <button t-if="showCloseButton" type="button" class="btn baseui-button btn-light btn-icon-sm baseui-dialog-close baseui-dialog-close-control" data-slot="dialog-close" aria-label="Close" data-bs-dismiss="modal">
931
- <Icon name="'x'"/>
926
+ <Button
927
+ t-if="showCloseButton"
928
+ variant="'ghost'"
929
+ size="'icon-sm'"
930
+ className="'bu-dialog-close bu-dialog-close-control'"
931
+ aria-label="'Close'"
932
+ icon="'x'"
933
+ attrs="{'data-slot': 'dialog-close', 'data-bs-dismiss': 'modal'}"
934
+ >
932
935
  <span class="visually-hidden">Close</span>
933
- </button>
936
+ </Button>
934
937
  </div>
935
938
  </div>
936
939
  </div>
@@ -938,69 +941,74 @@
938
941
  <t t-name="DialogContent" t-call="baseui.DialogContent"/>
939
942
 
940
943
  <t t-name="baseui.DialogHeader">
941
- <div t-att-class="'baseui-dialog-header' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-header">
944
+ <div t-att-class="'bu-dialog-header' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-header">
942
945
  <t t-slot="default"/>
943
946
  </div>
944
947
  </t>
945
948
  <t t-name="DialogHeader" t-call="baseui.DialogHeader"/>
946
949
 
947
950
  <t t-name="baseui.DialogFooter">
948
- <div t-att-class="'baseui-dialog-footer' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-footer">
951
+ <div t-att-class="'bu-dialog-footer' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-footer">
949
952
  <t t-slot="default"/>
950
953
  </div>
951
954
  </t>
952
955
  <t t-name="DialogFooter" t-call="baseui.DialogFooter"/>
953
956
 
954
957
  <t t-name="baseui.DialogTitle">
955
- <h2 t-att-class="'baseui-dialog-title' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-title">
958
+ <h2 t-att-class="'bu-dialog-title' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-title">
956
959
  <t t-slot="default"/>
957
960
  </h2>
958
961
  </t>
959
962
  <t t-name="DialogTitle" t-call="baseui.DialogTitle"/>
960
963
 
961
964
  <t t-name="baseui.DialogDescription">
962
- <p t-att-class="'baseui-dialog-description' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-description">
965
+ <p t-att-class="'bu-dialog-description' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-description">
963
966
  <t t-slot="default"/>
964
967
  </p>
965
968
  </t>
966
969
  <t t-name="DialogDescription" t-call="baseui.DialogDescription"/>
967
970
 
968
971
  <t t-name="baseui.DialogClose">
969
- <button type="button" t-att-class="'btn baseui-button btn-outline-secondary baseui-dialog-close' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-close" data-bs-dismiss="modal">
972
+ <Button
973
+ variant="'outline'"
974
+ className="'bu-dialog-close' + (props.className ? ' ' + props.className : '')"
975
+ style="props.style"
976
+ attrs="{'data-slot': 'dialog-close', 'data-bs-dismiss': 'modal'}"
977
+ >
970
978
  <t t-slot="default"/>
971
- </button>
979
+ </Button>
972
980
  </t>
973
981
  <t t-name="DialogClose" t-call="baseui.DialogClose"/>
974
982
  <t t-name="baseui.direction"><div b-ui="direction"><t t-esc="props.content"/></div></t>
975
983
  <t t-name="baseui.Direction">
976
- <div t-att-class="'baseui-direction' + (props.className ? ' ' + props.className : '')" t-att-dir="dir" t-att-style="props.style"><t t-slot="default"/></div>
984
+ <div t-att-class="'bu-direction' + (props.className ? ' ' + props.className : '')" t-att-dir="dir" t-att-style="props.style"><t t-slot="default"/></div>
977
985
  </t>
978
986
  <t t-name="Direction" t-call="baseui.Direction"/>
979
987
  <t t-name="baseui.drawer"><div b-ui="drawer"><div b-drawer-panel=""><t t-esc="props.content"/></div></div></t>
980
988
  <t t-name="baseui.Drawer"><t t-slot="default"/></t>
981
989
  <t t-name="Drawer" t-call="baseui.Drawer"/>
982
990
  <t t-name="baseui.DrawerTrigger">
983
- <button type="button" class="btn baseui-button btn-outline-secondary baseui-drawer-trigger" t-att-style="props.style" t-on-click="onClick"><t t-slot="default"/></button>
991
+ <Button variant="'outline'" className="'bu-drawer-trigger'" style="props.style" onClick="() => this.onClick()"><t t-slot="default"/></Button>
984
992
  </t>
985
993
  <t t-name="DrawerTrigger" t-call="baseui.DrawerTrigger"/>
986
994
  <t t-name="baseui.DrawerContent">
987
- <div t-ref="root" class="offcanvas offcanvas-bottom baseui-drawer-overlay" tabindex="-1" t-att-style="props.style">
988
- <div class="baseui-drawer-panel">
995
+ <div t-ref="root" class="offcanvas offcanvas-bottom bu-drawer-overlay" tabindex="-1" t-att-style="props.style">
996
+ <div class="bu-drawer-panel">
989
997
  <t t-slot="default"/>
990
998
  </div>
991
999
  </div>
992
1000
  </t>
993
1001
  <t t-name="DrawerContent" t-call="baseui.DrawerContent"/>
994
- <t t-name="baseui.DrawerHeader"><div class="baseui-drawer-header" t-att-style="props.style"><t t-slot="default"/></div></t>
1002
+ <t t-name="baseui.DrawerHeader"><div class="bu-drawer-header" t-att-style="props.style"><t t-slot="default"/></div></t>
995
1003
  <t t-name="DrawerHeader" t-call="baseui.DrawerHeader"/>
996
- <t t-name="baseui.DrawerFooter"><div class="baseui-drawer-footer" t-att-style="props.style"><t t-slot="default"/></div></t>
1004
+ <t t-name="baseui.DrawerFooter"><div class="bu-drawer-footer" t-att-style="props.style"><t t-slot="default"/></div></t>
997
1005
  <t t-name="DrawerFooter" t-call="baseui.DrawerFooter"/>
998
- <t t-name="baseui.DrawerTitle"><h2 class="baseui-drawer-title" t-att-style="props.style"><t t-slot="default"/></h2></t>
1006
+ <t t-name="baseui.DrawerTitle"><h2 class="bu-drawer-title" t-att-style="props.style"><t t-slot="default"/></h2></t>
999
1007
  <t t-name="DrawerTitle" t-call="baseui.DrawerTitle"/>
1000
- <t t-name="baseui.DrawerDescription"><p class="baseui-drawer-description" t-att-style="props.style"><t t-slot="default"/></p></t>
1008
+ <t t-name="baseui.DrawerDescription"><p class="bu-drawer-description" t-att-style="props.style"><t t-slot="default"/></p></t>
1001
1009
  <t t-name="DrawerDescription" t-call="baseui.DrawerDescription"/>
1002
1010
  <t t-name="baseui.DrawerClose">
1003
- <button type="button" class="btn baseui-button btn-outline-secondary baseui-drawer-close" t-att-style="props.style" data-bs-dismiss="offcanvas"><t t-slot="default"/></button>
1011
+ <Button variant="'outline'" attrs="attrs" className="'bu-drawer-close'" style="props.style"><t t-slot="default"/></Button>
1004
1012
  </t>
1005
1013
  <t t-name="DrawerClose" t-call="baseui.DrawerClose"/>
1006
1014
  <t t-name="baseui.dropdown-menu">
@@ -1010,15 +1018,15 @@
1010
1018
  </div>
1011
1019
  </t>
1012
1020
  <t t-name="baseui.DropdownMenu">
1013
- <div data-slot="dropdown-menu" t-att-class="'baseui-dropdown-menu dropdown' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" t-ref="root">
1021
+ <div data-slot="dropdown-menu" t-att-class="'bu-dropdown-menu dropdown' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" t-ref="root">
1014
1022
  <t t-slot="default"/>
1015
1023
  </div>
1016
1024
  </t>
1017
1025
  <t t-name="DropdownMenu" t-call="baseui.DropdownMenu"/>
1018
1026
  <t t-name="baseui.DropdownMenuTrigger">
1019
- <button t-ref="root" type="button" data-slot="dropdown-menu-trigger" t-att-class="classNames" t-att-style="props.style" aria-haspopup="menu" t-att-aria-expanded="env.dropdownMenu.open ? 'true' : 'false'" t-on-click="onClick">
1027
+ <Button unstyled="true" getRef="getRef" className="classNames" style="props.style" attrs="attrs" onClick="() => this.onClick()">
1020
1028
  <t t-slot="default"/>
1021
- </button>
1029
+ </Button>
1022
1030
  </t>
1023
1031
  <t t-name="DropdownMenuTrigger" t-call="baseui.DropdownMenuTrigger"/>
1024
1032
  <t t-name="baseui.DropdownMenuContent">
@@ -1034,20 +1042,20 @@
1034
1042
  </t>
1035
1043
  <t t-name="DropdownMenuGroup" t-call="baseui.DropdownMenuGroup"/>
1036
1044
  <t t-name="baseui.DropdownMenuLabel">
1037
- <div data-slot="dropdown-menu-label" t-att-data-inset="props.inset ? '' : undefined" t-att-class="'baseui-dropdown-menu-label' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1045
+ <div data-slot="dropdown-menu-label" t-att-data-inset="props.inset ? '' : undefined" t-att-class="'bu-dropdown-menu-label' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1038
1046
  <t t-slot="default"/>
1039
1047
  </div>
1040
1048
  </t>
1041
1049
  <t t-name="DropdownMenuLabel" t-call="baseui.DropdownMenuLabel"/>
1042
1050
  <t t-name="baseui.DropdownMenuItem">
1043
- <div data-slot="dropdown-menu-item" t-att-data-inset="props.inset ? '' : undefined" t-att-data-variant="variant" t-att-aria-disabled="props.disabled ? 'true' : undefined" t-att-class="'baseui-dropdown-menu-item' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="menuitem" tabindex="0" t-on-click="onClick">
1051
+ <div data-slot="dropdown-menu-item" t-att-data-inset="props.inset ? '' : undefined" t-att-data-variant="variant" t-att-aria-disabled="props.disabled ? 'true' : undefined" t-att-class="'bu-dropdown-menu-item' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="menuitem" tabindex="0" t-on-click="onClick">
1044
1052
  <t t-slot="default"/>
1045
1053
  </div>
1046
1054
  </t>
1047
1055
  <t t-name="DropdownMenuItem" t-call="baseui.DropdownMenuItem"/>
1048
1056
  <t t-name="baseui.DropdownMenuCheckboxItem">
1049
- <div data-slot="dropdown-menu-checkbox-item" t-att-data-inset="props.inset ? '' : undefined" t-att-data-checked="props.checked ? '' : undefined" t-att-aria-checked="props.checked ? 'true' : 'false'" t-att-aria-disabled="props.disabled ? 'true' : undefined" t-att-class="'baseui-dropdown-menu-checkbox-item' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="menuitemcheckbox" tabindex="0" t-on-click="onClick">
1050
- <span data-slot="dropdown-menu-checkbox-item-indicator" class="baseui-dropdown-menu-item-indicator">
1057
+ <div data-slot="dropdown-menu-checkbox-item" t-att-data-inset="props.inset ? '' : undefined" t-att-data-checked="props.checked ? '' : undefined" t-att-aria-checked="props.checked ? 'true' : 'false'" t-att-aria-disabled="props.disabled ? 'true' : undefined" t-att-class="'bu-dropdown-menu-checkbox-item' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="menuitemcheckbox" tabindex="0" t-on-click="onClick">
1058
+ <span data-slot="dropdown-menu-checkbox-item-indicator" class="bu-dropdown-menu-item-indicator">
1051
1059
  <Icon t-if="props.checked" name="'check'"/>
1052
1060
  </span>
1053
1061
  <t t-slot="default"/>
@@ -1061,8 +1069,8 @@
1061
1069
  </t>
1062
1070
  <t t-name="DropdownMenuRadioGroup" t-call="baseui.DropdownMenuRadioGroup"/>
1063
1071
  <t t-name="baseui.DropdownMenuRadioItem">
1064
- <div data-slot="dropdown-menu-radio-item" t-att-data-inset="props.inset ? '' : undefined" t-att-data-checked="checked ? '' : undefined" t-att-aria-checked="checked ? 'true' : 'false'" t-att-aria-disabled="props.disabled ? 'true' : undefined" t-att-class="'baseui-dropdown-menu-radio-item' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="menuitemradio" tabindex="0" t-on-click="onClick">
1065
- <span data-slot="dropdown-menu-radio-item-indicator" class="baseui-dropdown-menu-item-indicator">
1072
+ <div data-slot="dropdown-menu-radio-item" t-att-data-inset="props.inset ? '' : undefined" t-att-data-checked="checked ? '' : undefined" t-att-aria-checked="checked ? 'true' : 'false'" t-att-aria-disabled="props.disabled ? 'true' : undefined" t-att-class="'bu-dropdown-menu-radio-item' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="menuitemradio" tabindex="0" t-on-click="onClick">
1073
+ <span data-slot="dropdown-menu-radio-item-indicator" class="bu-dropdown-menu-item-indicator">
1066
1074
  <Icon t-if="checked" name="'check'"/>
1067
1075
  </span>
1068
1076
  <t t-slot="default"/>
@@ -1070,30 +1078,30 @@
1070
1078
  </t>
1071
1079
  <t t-name="DropdownMenuRadioItem" t-call="baseui.DropdownMenuRadioItem"/>
1072
1080
  <t t-name="baseui.DropdownMenuSeparator">
1073
- <div data-slot="dropdown-menu-separator" class="baseui-dropdown-menu-separator" t-att-style="props.style" role="separator"/>
1081
+ <div data-slot="dropdown-menu-separator" class="bu-dropdown-menu-separator" t-att-style="props.style" role="separator"/>
1074
1082
  </t>
1075
1083
  <t t-name="DropdownMenuSeparator" t-call="baseui.DropdownMenuSeparator"/>
1076
1084
  <t t-name="baseui.DropdownMenuShortcut">
1077
- <span data-slot="dropdown-menu-shortcut" t-att-class="'baseui-dropdown-menu-shortcut' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1085
+ <span data-slot="dropdown-menu-shortcut" t-att-class="'bu-dropdown-menu-shortcut' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1078
1086
  <t t-slot="default"/>
1079
1087
  </span>
1080
1088
  </t>
1081
1089
  <t t-name="DropdownMenuShortcut" t-call="baseui.DropdownMenuShortcut"/>
1082
1090
  <t t-name="baseui.DropdownMenuSub">
1083
- <div data-slot="dropdown-menu-sub" class="baseui-dropdown-menu-sub" t-att-style="props.style" t-ref="root" t-on-mouseleave="env.dropdownSubClose">
1091
+ <div data-slot="dropdown-menu-sub" class="bu-dropdown-menu-sub" t-att-style="props.style" t-ref="root" t-on-mouseleave="env.dropdownSubClose">
1084
1092
  <t t-slot="default"/>
1085
1093
  </div>
1086
1094
  </t>
1087
1095
  <t t-name="DropdownMenuSub" t-call="baseui.DropdownMenuSub"/>
1088
1096
  <t t-name="baseui.DropdownMenuSubTrigger">
1089
- <div data-slot="dropdown-menu-sub-trigger" t-att-data-inset="props.inset ? '' : undefined" t-att-data-state="env.dropdownSub.open ? 'open' : 'closed'" t-att-aria-expanded="env.dropdownSub.open ? 'true' : 'false'" t-att-aria-disabled="props.disabled ? 'true' : undefined" t-att-class="'baseui-dropdown-menu-sub-trigger' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="menuitem" tabindex="0" aria-haspopup="menu" t-on-mouseenter="onMouseEnter" t-on-focus="onMouseEnter" t-on-click="onClick">
1097
+ <div data-slot="dropdown-menu-sub-trigger" t-att-data-inset="props.inset ? '' : undefined" t-att-data-state="env.dropdownSub.open ? 'open' : 'closed'" t-att-aria-expanded="env.dropdownSub.open ? 'true' : 'false'" t-att-aria-disabled="props.disabled ? 'true' : undefined" t-att-class="'bu-dropdown-menu-sub-trigger' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="menuitem" tabindex="0" aria-haspopup="menu" t-on-mouseenter="onMouseEnter" t-on-focus="onMouseEnter" t-on-click="onClick">
1090
1098
  <t t-slot="default"/>
1091
- <Icon name="'chevron-right'" className="'baseui-dropdown-menu-sub-trigger-icon'"/>
1099
+ <Icon name="'chevron-right'" className="'bu-dropdown-menu-sub-trigger-icon'"/>
1092
1100
  </div>
1093
1101
  </t>
1094
1102
  <t t-name="DropdownMenuSubTrigger" t-call="baseui.DropdownMenuSubTrigger"/>
1095
1103
  <t t-name="baseui.DropdownMenuSubContent">
1096
- <div t-if="open" data-slot="dropdown-menu-sub-content" t-att-class="'baseui-dropdown-menu-sub-content' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="menu" data-state="open" data-side="right" tabindex="-1">
1104
+ <div t-if="open" data-slot="dropdown-menu-sub-content" t-att-class="'bu-dropdown-menu-sub-content' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" role="menu" data-state="open" data-side="right" tabindex="-1">
1097
1105
  <t t-slot="default"/>
1098
1106
  </div>
1099
1107
  </t>
@@ -1105,19 +1113,19 @@
1105
1113
  <div t-att-class="classNames" t-att-style="props.style" role="status"><t t-slot="default"/></div>
1106
1114
  </t>
1107
1115
  <t t-name="baseui.EmptyHeader">
1108
- <div t-att-class="'baseui-empty-header' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
1116
+ <div t-att-class="'bu-empty-header' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
1109
1117
  </t>
1110
1118
  <t t-name="baseui.EmptyMedia">
1111
1119
  <div t-att-class="classNames" t-att-data-variant="variant" t-att-style="props.style"><t t-slot="default"/></div>
1112
1120
  </t>
1113
1121
  <t t-name="baseui.EmptyTitle">
1114
- <div t-att-class="'baseui-empty-title' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
1122
+ <div t-att-class="'bu-empty-title' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
1115
1123
  </t>
1116
1124
  <t t-name="baseui.EmptyDescription">
1117
- <div t-att-class="'baseui-empty-description' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
1125
+ <div t-att-class="'bu-empty-description' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
1118
1126
  </t>
1119
1127
  <t t-name="baseui.EmptyContent">
1120
- <div t-att-class="'baseui-empty-content' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
1128
+ <div t-att-class="'bu-empty-content' + (props.className ? ' ' + props.className : '')" t-att-style="props.style"><t t-slot="default"/></div>
1121
1129
  </t>
1122
1130
  <t t-name="Empty" t-call="baseui.Empty"/>
1123
1131
  <t t-name="EmptyHeader" t-call="baseui.EmptyHeader"/>
@@ -1126,7 +1134,7 @@
1126
1134
  <t t-name="EmptyDescription" t-call="baseui.EmptyDescription"/>
1127
1135
  <t t-name="EmptyContent" t-call="baseui.EmptyContent"/>
1128
1136
  <t t-name="baseui.field">
1129
- <div b-ui="field" class="baseui-field" role="group"><t t-slot="default"/></div>
1137
+ <div b-ui="field" class="bu-field" role="group"><t t-slot="default"/></div>
1130
1138
  </t>
1131
1139
  <t t-name="baseui.FieldSet">
1132
1140
  <fieldset t-att-class="classNames" t-att-style="props.style" data-slot="field-set">
@@ -1158,11 +1166,11 @@
1158
1166
  t-att-class="classNames"
1159
1167
  t-att-style="props.style"
1160
1168
  >
1161
- <label t-if="props.label" class="baseui-field-label" data-slot="field-label">
1169
+ <label t-if="props.label" class="bu-field-label" data-slot="field-label">
1162
1170
  <t t-esc="props.label"/>
1163
1171
  </label>
1164
1172
  <t t-slot="default"/>
1165
- <div t-if="props.error" role="alert" class="baseui-field-error" data-slot="field-error">
1173
+ <div t-if="props.error" role="alert" class="bu-field-error" data-slot="field-error">
1166
1174
  <t t-esc="props.error"/>
1167
1175
  </div>
1168
1176
  </div>
@@ -1199,8 +1207,8 @@
1199
1207
 
1200
1208
  <t t-name="baseui.FieldSeparator">
1201
1209
  <div t-att-class="classNames" t-att-style="props.style" data-slot="field-separator" t-att-data-content="hasContent ? 'true' : 'false'">
1202
- <span class="baseui-field-separator-line" aria-hidden="true"></span>
1203
- <span t-if="hasContent" class="baseui-field-separator-content" data-slot="field-separator-content">
1210
+ <span class="bu-field-separator-line" aria-hidden="true"></span>
1211
+ <span t-if="hasContent" class="bu-field-separator-content" data-slot="field-separator-content">
1204
1212
  <t t-slot="default"/>
1205
1213
  </span>
1206
1214
  </div>
@@ -1216,18 +1224,18 @@
1216
1224
  <t t-name="FieldError" t-call="baseui.FieldError"/>
1217
1225
  <t t-name="baseui.Form">
1218
1226
  <form t-att-class="classNames" t-att-style="props.style" data-slot="form" novalidate="novalidate" t-on-submit="submit">
1219
- <div class="baseui-form-header">
1220
- <h3 class="baseui-form-title">Bug Report</h3>
1221
- <p class="baseui-form-description">Help us improve by reporting bugs you encounter.</p>
1227
+ <div class="bu-form-header">
1228
+ <h3 class="bu-form-title">Bug Report</h3>
1229
+ <p class="bu-form-description">Help us improve by reporting bugs you encounter.</p>
1222
1230
  </div>
1223
1231
 
1224
- <FieldGroup className="'baseui-form-fields'">
1232
+ <FieldGroup className="'bu-form-fields'">
1225
1233
  <Field invalid="titleInvalid">
1226
- <FieldLabel for="'baseui-form-title'">Bug Title</FieldLabel>
1234
+ <FieldLabel for="'bu-form-title'">Bug Title</FieldLabel>
1227
1235
  <input
1228
- id="baseui-form-title"
1236
+ id="bu-form-title"
1229
1237
  name="title"
1230
- class="form-control baseui-form-control"
1238
+ class="form-control bu-form-control"
1231
1239
  type="text"
1232
1240
  t-att-placeholder="titlePlaceholder"
1233
1241
  t-model="state.title"
@@ -1238,20 +1246,20 @@
1238
1246
  </Field>
1239
1247
 
1240
1248
  <Field invalid="descriptionInvalid">
1241
- <FieldLabel for="'baseui-form-description'">Description</FieldLabel>
1242
- <div class="baseui-form-input-group" data-slot="input-group" role="group">
1249
+ <FieldLabel for="'bu-form-description'">Description</FieldLabel>
1250
+ <div class="bu-form-input-group" data-slot="input-group" role="group">
1243
1251
  <textarea
1244
- id="baseui-form-description"
1252
+ id="bu-form-description"
1245
1253
  name="description"
1246
- class="form-control baseui-form-textarea"
1254
+ class="form-control bu-form-textarea"
1247
1255
  rows="6"
1248
1256
  t-att-placeholder="descriptionPlaceholder"
1249
1257
  t-att-maxlength="maxDescriptionLength"
1250
1258
  t-model="state.description"
1251
1259
  t-att-aria-invalid="descriptionInvalid ? 'true' : undefined"
1252
1260
  ></textarea>
1253
- <div class="baseui-form-counter" data-slot="input-group-addon" data-align="block-end">
1254
- <span class="baseui-form-counter-text">
1261
+ <div class="bu-form-counter" data-slot="input-group-addon" data-align="block-end">
1262
+ <span class="bu-form-counter-text">
1255
1263
  <t t-esc="descriptionLength"/>/<t t-esc="maxDescriptionLength"/> characters
1256
1264
  </span>
1257
1265
  </div>
@@ -1261,7 +1269,7 @@
1261
1269
  </Field>
1262
1270
  </FieldGroup>
1263
1271
 
1264
- <Field orientation="'horizontal'" className="'baseui-form-actions'">
1272
+ <Field orientation="'horizontal'" className="'bu-form-actions'">
1265
1273
  <Button type="'button'" variant="'outline'" onClick="() => this.reset()">Reset</Button>
1266
1274
  <Button type="'submit'">Submit</Button>
1267
1275
  </Field>
@@ -1271,7 +1279,7 @@
1271
1279
  <t t-name="baseui.hover-card"><span b-ui="hover-card"><t t-esc="props.content"/></span></t>
1272
1280
  <t t-name="baseui.HoverCard">
1273
1281
  <span
1274
- t-att-class="'baseui-hover-card' + (props.className ? ' ' + props.className : '')"
1282
+ t-att-class="'bu-hover-card' + (props.className ? ' ' + props.className : '')"
1275
1283
  t-att-style="props.style"
1276
1284
  t-on-mouseenter="() => this.open()"
1277
1285
  t-on-mouseleave="() => this.close()"
@@ -1284,11 +1292,11 @@
1284
1292
  </t>
1285
1293
  <t t-name="HoverCard" t-call="baseui.HoverCard"/>
1286
1294
  <t t-name="baseui.HoverCardTrigger">
1287
- <span class="baseui-hover-card-trigger" t-att-style="props.style" aria-haspopup="dialog"><t t-slot="default"/></span>
1295
+ <span class="bu-hover-card-trigger" t-att-style="props.style" aria-haspopup="dialog"><t t-slot="default"/></span>
1288
1296
  </t>
1289
1297
  <t t-name="HoverCardTrigger" t-call="baseui.HoverCardTrigger"/>
1290
1298
  <t t-name="baseui.HoverCardContent">
1291
- <span t-if="open" class="baseui-hover-card-content" t-att-style="props.style" role="dialog"><t t-slot="default"/></span>
1299
+ <span t-if="open" class="bu-hover-card-content" t-att-style="props.style" role="dialog"><t t-slot="default"/></span>
1292
1300
  </t>
1293
1301
  <t t-name="HoverCardContent" t-call="baseui.HoverCardContent"/>
1294
1302
  <t t-name="baseui.Icon">
@@ -1339,16 +1347,16 @@
1339
1347
  ><t t-slot="default"/></div>
1340
1348
  </t>
1341
1349
  <t t-name="baseui.InputGroupButton">
1342
- <button
1343
- t-att-class="classNames"
1344
- t-att-style="props.style"
1345
- t-att-type="props.type || 'button'"
1346
- t-att-disabled="props.disabled"
1347
- t-att-data-size="size"
1348
- t-att-aria-label="ariaLabel"
1349
- data-slot="input-group-button"
1350
- t-on-click="onClick"
1351
- ><t t-if="props.label" t-esc="props.label"/><t t-else="" t-slot="default"/></button>
1350
+ <Button
1351
+ unstyled="true"
1352
+ className="classNames"
1353
+ style="props.style"
1354
+ type="props.type"
1355
+ disabled="props.disabled"
1356
+ label="props.label"
1357
+ attrs="buttonAttrs"
1358
+ onClick="(event) => this.onClick(event)"
1359
+ ><t t-slot="default"/></Button>
1352
1360
  </t>
1353
1361
  <t t-name="baseui.InputGroupText">
1354
1362
  <span t-att-class="classNames" t-att-style="props.style" data-slot="input-group-text"><t t-slot="default"/></span>
@@ -1393,7 +1401,7 @@
1393
1401
  <t t-name="InputGroupInput" t-call="baseui.InputGroupInput"/>
1394
1402
  <t t-name="InputGroupTextarea" t-call="baseui.InputGroupTextarea"/>
1395
1403
  <t t-name="baseui.input-otp">
1396
- <div class="baseui-input-otp"/>
1404
+ <div class="bu-input-otp"/>
1397
1405
  </t>
1398
1406
  <t t-name="baseui.InputOtp">
1399
1407
  <div t-att-class="classNames" t-att-style="props.style" t-ref="root" t-on-paste="onPaste">
@@ -1432,28 +1440,28 @@
1432
1440
  <t t-name="baseui.Marker"><span t-att-class="classNames" t-att-data-variant="variant" t-att-style="props.style"><t t-slot="default"/></span></t>
1433
1441
  <t t-name="Marker" t-call="baseui.Marker"/>
1434
1442
  <t t-name="baseui.markdown">
1435
- <div class="baseui-markdown"/>
1443
+ <div class="bu-markdown"/>
1436
1444
  </t>
1437
1445
  <t t-name="baseui.Markdown">
1438
1446
  <div t-ref="root" t-att-class="classNames" t-att-style="props.style" data-slot="markdown" t-att-data-status="state.status">
1439
- <div t-if="state.status === 'loading'" class="baseui-markdown-loading" role="status">Loading…</div>
1440
- <div t-elif="state.status === 'error'" class="baseui-markdown-error" role="alert">
1447
+ <div t-if="state.status === 'loading'" class="bu-markdown-loading" role="status">Loading…</div>
1448
+ <div t-elif="state.status === 'error'" class="bu-markdown-error" role="alert">
1441
1449
  <t t-esc="state.error"/>
1442
1450
  </div>
1443
1451
  <div
1444
1452
  t-elif="props.editable"
1445
1453
  t-ref="editor"
1446
- class="baseui-markdown-editor"
1454
+ class="bu-markdown-editor"
1447
1455
  data-slot="markdown-editor"
1448
1456
  role="group"
1449
1457
  t-att-aria-label="editorLabel"
1450
1458
  />
1451
1459
  <t t-else="">
1452
- <div t-if="hasFrontmatterMeta" class="baseui-markdown-meta">
1453
- <div t-if="state.frontmatter.authors and state.frontmatter.authors.length" class="baseui-markdown-meta-authors">
1460
+ <div t-if="hasFrontmatterMeta" class="bu-markdown-meta">
1461
+ <div t-if="state.frontmatter.authors and state.frontmatter.authors.length" class="bu-markdown-meta-authors">
1454
1462
  By <t t-esc="state.frontmatter.authors.join(', ')"/>
1455
1463
  </div>
1456
- <div t-if="state.frontmatter.tags and state.frontmatter.tags.length" class="baseui-markdown-meta-tags">
1464
+ <div t-if="state.frontmatter.tags and state.frontmatter.tags.length" class="bu-markdown-meta-tags">
1457
1465
  <Badge t-foreach="state.frontmatter.tags" t-as="tag" t-key="tag" variant="'secondary'" pill="true"><t t-esc="tag"/></Badge>
1458
1466
  </div>
1459
1467
  </div>
@@ -1464,9 +1472,9 @@
1464
1472
  <t t-name="Markdown" t-call="baseui.Markdown"/>
1465
1473
 
1466
1474
  <t t-name="baseui.MarkdownTree">
1467
- <div t-att-class="'baseui-markdown-tree' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="markdown-tree">
1468
- <div t-if="state.status === 'loading'" class="baseui-markdown-tree-loading" role="status">Loading…</div>
1469
- <div t-elif="state.status === 'error'" class="baseui-markdown-tree-error" role="alert">
1475
+ <div t-att-class="'bu-markdown-tree' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="markdown-tree">
1476
+ <div t-if="state.status === 'loading'" class="bu-markdown-tree-loading" role="status">Loading…</div>
1477
+ <div t-elif="state.status === 'error'" class="bu-markdown-tree-error" role="alert">
1470
1478
  <t t-esc="state.error"/>
1471
1479
  </div>
1472
1480
  <SidebarGroup t-else="">
@@ -1509,7 +1517,7 @@
1509
1517
  <t t-else="">
1510
1518
  <SidebarMenuItem>
1511
1519
  <DropdownMenu>
1512
- <DropdownMenuTrigger className="'baseui-sidebar-menu-button baseui-markdown-tree-folder-trigger'"><Icon name="'folder'" className="'baseui-sidebar-menu-icon'"/><span class="baseui-sidebar-menu-label"><t t-esc="label"/></span><Icon name="'chevron-right'" className="'baseui-markdown-tree-folder-trigger-icon'"/></DropdownMenuTrigger>
1520
+ <DropdownMenuTrigger className="'bu-sidebar-menu-button bu-markdown-tree-folder-trigger'"><Icon name="'folder'" className="'bu-sidebar-menu-icon'"/><span class="bu-sidebar-menu-label"><t t-esc="label"/></span><Icon name="'chevron-right'" className="'bu-markdown-tree-folder-trigger-icon'"/></DropdownMenuTrigger>
1513
1521
  <DropdownMenuContent>
1514
1522
  <t t-foreach="props.node.children" t-as="child" t-key="child.path || child.name">
1515
1523
  <MarkdownTreeNode node="child" activePath="props.activePath" onSelect="props.onSelect" nested="true"/>
@@ -1531,7 +1539,7 @@
1531
1539
  </DropdownMenuSub>
1532
1540
  </t>
1533
1541
  <t t-else="">
1534
- <div class="baseui-markdown-tree-group">
1542
+ <div class="bu-markdown-tree-group">
1535
1543
  <SidebarGroupLabel><t t-esc="label"/></SidebarGroupLabel>
1536
1544
  <SidebarMenu>
1537
1545
  <t t-foreach="props.node.children" t-as="child" t-key="child.path || child.name">
@@ -1544,7 +1552,7 @@
1544
1552
  </t>
1545
1553
  <t t-name="MarkdownTreeNode" t-call="baseui.MarkdownTreeNode"/>
1546
1554
  <t t-name="baseui.message">
1547
- <article class="baseui-message"/>
1555
+ <article class="bu-message"/>
1548
1556
  </t>
1549
1557
  <t t-name="baseui.Message">
1550
1558
  <article t-att-class="classNames" t-att-data-side="side" role="listitem" t-att-style="props.style">
@@ -1553,10 +1561,10 @@
1553
1561
  </t>
1554
1562
  <t t-name="Message" t-call="baseui.Message"/>
1555
1563
  <t t-name="baseui.message-scroller">
1556
- <div class="baseui-message-scroller"/>
1564
+ <div class="bu-message-scroller"/>
1557
1565
  </t>
1558
1566
  <t t-name="baseui.MessageScroller">
1559
- <div t-att-class="'baseui-message-scroller' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" t-ref="root">
1567
+ <div t-att-class="'bu-message-scroller' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" t-ref="root">
1560
1568
  <t t-slot="default"/>
1561
1569
  </div>
1562
1570
  </t>
@@ -1579,7 +1587,7 @@
1579
1587
  </t>
1580
1588
  <t t-name="baseui.NavigationMenu">
1581
1589
  <nav
1582
- t-att-class="'baseui-navigation-menu' + (props.className ? ' ' + props.className : '')"
1590
+ t-att-class="'bu-navigation-menu' + (props.className ? ' ' + props.className : '')"
1583
1591
  role="menubar"
1584
1592
  t-ref="root"
1585
1593
  t-att-style="props.style"
@@ -1617,15 +1625,15 @@
1617
1625
  </span>
1618
1626
  </t>
1619
1627
  <t t-name="baseui.Popover">
1620
- <span t-att-class="'baseui-popover' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1628
+ <span t-att-class="'bu-popover' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1621
1629
  <t t-slot="default"/>
1622
1630
  </span>
1623
1631
  </t>
1624
1632
  <t t-name="Popover" t-call="baseui.Popover"/>
1625
1633
  <t t-name="baseui.PopoverTrigger">
1626
- <button t-ref="root" type="button" class="btn baseui-button btn-outline-secondary baseui-popover-trigger" aria-haspopup="dialog" t-att-aria-expanded="env.popover.open ? 'true' : 'false'" t-att-style="props.style" t-on-click="onClick">
1634
+ <Button unstyled="true" getRef="getRef" className="'btn bu-button btn-outline-secondary bu-popover-trigger'" attrs="attrs" style="props.style" onClick="() => this.onClick()">
1627
1635
  <t t-slot="default"/>
1628
- </button>
1636
+ </Button>
1629
1637
  </t>
1630
1638
  <t t-name="PopoverTrigger" t-call="baseui.PopoverTrigger"/>
1631
1639
  <!-- Rendered but never shown: Owl keeps this reactive so PopoverTrigger
@@ -1633,7 +1641,7 @@
1633
1641
  popover.component.js). Bootstrap renders the actual visible popup
1634
1642
  itself, appended to document.body. -->
1635
1643
  <t t-name="baseui.PopoverContent">
1636
- <span t-ref="buffer" class="baseui-popover-content" t-att-style="style" aria-hidden="true">
1644
+ <span t-ref="buffer" class="bu-popover-content" t-att-style="style" aria-hidden="true">
1637
1645
  <t t-if="props.content" t-esc="props.content"/>
1638
1646
  <t t-else="" t-slot="default"/>
1639
1647
  </span>
@@ -1649,7 +1657,7 @@
1649
1657
  t-att-aria-valuenow="value"
1650
1658
  t-att-style="style"
1651
1659
  >
1652
- <span class="baseui-progress-indicator"></span>
1660
+ <span class="bu-progress-indicator"></span>
1653
1661
  </div>
1654
1662
  </t>
1655
1663
  <t t-name="Progress" t-call="baseui.Progress"/>
@@ -1663,72 +1671,72 @@
1663
1671
  <t t-name="baseui.Pwa"><t t-slot="default"/></t>
1664
1672
  <t t-name="Pwa" t-call="baseui.Pwa"/>
1665
1673
  <t t-name="baseui.PwaTrigger">
1666
- <button type="button" class="btn baseui-button btn-primary baseui-pwa-trigger" t-att-style="props.style" t-on-click="onClick"><t t-slot="default"/></button>
1674
+ <Button variant="'default'" className="'bu-pwa-trigger'" style="props.style" onClick="() => this.onClick()"><t t-slot="default"/></Button>
1667
1675
  </t>
1668
1676
  <t t-name="PwaTrigger" t-call="baseui.PwaTrigger"/>
1669
1677
  <t t-name="baseui.PwaContent">
1670
1678
  <div
1671
1679
  t-if="open"
1672
- class="baseui-pwa-overlay"
1680
+ class="bu-pwa-overlay"
1673
1681
  t-ref="root"
1674
1682
  t-att-style="props.style"
1675
1683
  t-on-keydown="onKeyDown"
1676
1684
  t-on-click="onBackdropClick"
1677
1685
  >
1678
- <div class="baseui-pwa-panel" role="dialog" aria-modal="true">
1686
+ <div class="bu-pwa-panel" role="dialog" aria-modal="true">
1679
1687
  <t t-slot="default"/>
1680
1688
  </div>
1681
1689
  </div>
1682
1690
  </t>
1683
1691
  <t t-name="PwaContent" t-call="baseui.PwaContent"/>
1684
- <t t-name="baseui.PwaHeader"><div class="baseui-pwa-header" t-att-style="props.style"><t t-slot="default"/></div></t>
1692
+ <t t-name="baseui.PwaHeader"><div class="bu-pwa-header" t-att-style="props.style"><t t-slot="default"/></div></t>
1685
1693
  <t t-name="PwaHeader" t-call="baseui.PwaHeader"/>
1686
- <t t-name="baseui.PwaTitle"><h2 class="baseui-pwa-title" t-att-style="props.style"><t t-slot="default"/></h2></t>
1694
+ <t t-name="baseui.PwaTitle"><h2 class="bu-pwa-title" t-att-style="props.style"><t t-slot="default"/></h2></t>
1687
1695
  <t t-name="PwaTitle" t-call="baseui.PwaTitle"/>
1688
- <t t-name="baseui.PwaDescription"><p class="baseui-pwa-description" t-att-style="props.style"><t t-slot="default"/></p></t>
1696
+ <t t-name="baseui.PwaDescription"><p class="bu-pwa-description" t-att-style="props.style"><t t-slot="default"/></p></t>
1689
1697
  <t t-name="PwaDescription" t-call="baseui.PwaDescription"/>
1690
- <t t-name="baseui.PwaBody"><div class="baseui-pwa-body" t-att-style="props.style"><t t-slot="default"/></div></t>
1698
+ <t t-name="baseui.PwaBody"><div class="bu-pwa-body" t-att-style="props.style"><t t-slot="default"/></div></t>
1691
1699
  <t t-name="PwaBody" t-call="baseui.PwaBody"/>
1692
1700
  <t t-name="baseui.PwaSteps">
1693
- <ol class="baseui-pwa-steps" t-att-style="props.style">
1701
+ <ol class="bu-pwa-steps" t-att-style="props.style">
1694
1702
  <t t-foreach="steps" t-as="step" t-key="step_index">
1695
1703
  <li>
1696
- <span class="baseui-pwa-step-index" t-esc="step_index + 1"/>
1704
+ <span class="bu-pwa-step-index" t-esc="step_index + 1"/>
1697
1705
  <span t-esc="step"/>
1698
1706
  </li>
1699
1707
  </t>
1700
1708
  </ol>
1701
1709
  </t>
1702
1710
  <t t-name="PwaSteps" t-call="baseui.PwaSteps"/>
1703
- <t t-name="baseui.PwaFooter"><div class="baseui-pwa-footer" t-att-style="props.style"><t t-slot="default"/></div></t>
1711
+ <t t-name="baseui.PwaFooter"><div class="bu-pwa-footer" t-att-style="props.style"><t t-slot="default"/></div></t>
1704
1712
  <t t-name="PwaFooter" t-call="baseui.PwaFooter"/>
1705
1713
  <t t-name="baseui.PwaClose">
1706
- <button type="button" class="btn baseui-button btn-outline-secondary baseui-pwa-close" t-att-style="props.style" t-on-click="onClick"><t t-slot="default"/></button>
1714
+ <Button variant="'outline'" className="'bu-pwa-close'" style="props.style" onClick="() => this.onClick()"><t t-slot="default"/></Button>
1707
1715
  </t>
1708
1716
  <t t-name="PwaClose" t-call="baseui.PwaClose"/>
1709
1717
  <t t-name="baseui.questionnaire">
1710
- <form class="baseui-questionnaire"/>
1718
+ <form class="bu-questionnaire"/>
1711
1719
  </t>
1712
1720
  <t t-name="baseui.Questionnaire">
1713
- <form t-att-class="'baseui-questionnaire' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" t-on-submit.prevent="">
1721
+ <form t-att-class="'bu-questionnaire' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" t-on-submit.prevent="">
1714
1722
  <t t-slot="default"/>
1715
1723
  </form>
1716
1724
  </t>
1717
1725
  <t t-name="Questionnaire" t-call="baseui.Questionnaire"/>
1718
1726
  <t t-name="baseui.QuestionnaireStep">
1719
- <div t-if="active" class="baseui-questionnaire-step" t-att-style="props.style"><t t-slot="default"/></div>
1727
+ <div t-if="active" class="bu-questionnaire-step" t-att-style="props.style"><t t-slot="default"/></div>
1720
1728
  </t>
1721
1729
  <t t-name="QuestionnaireStep" t-call="baseui.QuestionnaireStep"/>
1722
1730
  <t t-name="baseui.QuestionnairePrevious">
1723
- <button type="button" class="baseui-questionnaire-prev" t-att-style="props.style" t-att-disabled="disabled" t-on-click="onClick">
1731
+ <Button unstyled="true" className="'bu-questionnaire-prev'" style="props.style" disabled="disabled" onClick="() => this.onClick()">
1724
1732
  <t t-slot="default"/>
1725
- </button>
1733
+ </Button>
1726
1734
  </t>
1727
1735
  <t t-name="QuestionnairePrevious" t-call="baseui.QuestionnairePrevious"/>
1728
1736
  <t t-name="baseui.QuestionnaireNext">
1729
- <button type="button" class="baseui-questionnaire-next" t-att-style="props.style" t-on-click="onClick">
1737
+ <Button unstyled="true" className="'bu-questionnaire-next'" style="props.style" onClick="() => this.onClick()">
1730
1738
  <t t-slot="default"/>
1731
- </button>
1739
+ </Button>
1732
1740
  </t>
1733
1741
  <t t-name="QuestionnaireNext" t-call="baseui.QuestionnaireNext"/>
1734
1742
  <t t-name="baseui.radio-group">
@@ -1739,7 +1747,7 @@
1739
1747
  </t>
1740
1748
  <t t-name="RadioGroup" t-call="baseui.RadioGroup"/>
1741
1749
  <t t-name="baseui.RadioGroupItem">
1742
- <label t-att-class="'form-check baseui-check ' + (props.className || '')" t-att-style="props.style">
1750
+ <label t-att-class="'form-check bu-check ' + (props.className || '')" t-att-style="props.style">
1743
1751
  <input
1744
1752
  type="radio"
1745
1753
  class="form-check-input"
@@ -1753,19 +1761,19 @@
1753
1761
  </t>
1754
1762
  <t t-name="RadioGroupItem" t-call="baseui.RadioGroupItem"/>
1755
1763
  <t t-name="baseui.resizable">
1756
- <div class="baseui-resizable"/>
1764
+ <div class="bu-resizable"/>
1757
1765
  </t>
1758
1766
  <t t-name="baseui.Resizable">
1759
- <div t-att-class="'baseui-resizable' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1760
- <div class="baseui-resizable-panel" t-ref="panel" t-att-style="panelStyle">
1767
+ <div t-att-class="'bu-resizable' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1768
+ <div class="bu-resizable-panel" t-ref="panel" t-att-style="panelStyle">
1761
1769
  <t t-slot="default"/>
1762
1770
  </div>
1763
- <div class="baseui-resizable-handle" t-on-pointerdown="onPointerDown"></div>
1771
+ <div class="bu-resizable-handle" t-on-pointerdown="onPointerDown"></div>
1764
1772
  </div>
1765
1773
  </t>
1766
1774
  <t t-name="Resizable" t-call="baseui.Resizable"/>
1767
1775
  <t t-name="baseui.scroll-area">
1768
- <div class="baseui-scroll-area"/>
1776
+ <div class="bu-scroll-area"/>
1769
1777
  </t>
1770
1778
  <t t-name="baseui.ScrollArea">
1771
1779
  <div t-att-class="classNames" t-att-style="props.style" role="region" tabindex="0"><t t-slot="default"/></div>
@@ -1784,27 +1792,26 @@
1784
1792
  </t>
1785
1793
  <t t-name="Select" t-call="baseui.Select"/>
1786
1794
  <t t-name="baseui.SelectTrigger">
1787
- <button
1788
- type="button"
1789
- class="baseui-select-trigger"
1790
- aria-haspopup="listbox"
1791
- t-att-aria-expanded="env.select.open ? 'true' : 'false'"
1792
- t-att-style="props.style"
1793
- t-on-click="onClick"
1795
+ <Button
1796
+ unstyled="true"
1797
+ className="'bu-select-trigger'"
1798
+ attrs="attrs"
1799
+ style="props.style"
1800
+ onClick="() => this.onClick()"
1794
1801
  >
1795
1802
  <t t-slot="default"/>
1796
- </button>
1803
+ </Button>
1797
1804
  </t>
1798
1805
  <t t-name="SelectTrigger" t-call="baseui.SelectTrigger"/>
1799
1806
  <t t-name="baseui.SelectContent">
1800
- <div t-if="open" class="baseui-select-content" t-att-style="props.style" role="listbox">
1807
+ <div t-if="open" class="bu-select-content" t-att-style="props.style" role="listbox">
1801
1808
  <t t-slot="default"/>
1802
1809
  </div>
1803
1810
  </t>
1804
1811
  <t t-name="SelectContent" t-call="baseui.SelectContent"/>
1805
1812
  <t t-name="baseui.SelectItem">
1806
1813
  <div
1807
- class="baseui-select-item"
1814
+ class="bu-select-item"
1808
1815
  role="option"
1809
1816
  t-att-aria-selected="selected ? 'true' : 'false'"
1810
1817
  t-att-style="props.style"
@@ -1819,7 +1826,7 @@
1819
1826
  </t>
1820
1827
 
1821
1828
  <t t-name="baseui.Shell">
1822
- <div t-att-class="'baseui-shell' + (props.className ? ' ' + props.className : '')"
1829
+ <div t-att-class="'bu-shell' + (props.className ? ' ' + props.className : '')"
1823
1830
  t-att-style="props.style"
1824
1831
  t-att-b-att-collapsed="state.collapsed ? 'true' : 'false'">
1825
1832
  <Sidebar open="props.open" defaultOpen="props.defaultOpen" onOpenChange="props.onOpenChange">
@@ -1829,12 +1836,14 @@
1829
1836
  <t t-if="props.toast">
1830
1837
  <Toast open="!!props.toast" variant="props.toast.variant or 'info'"
1831
1838
  delay="props.toast.persistent ? 0 : (props.toast.delay or 4000)"
1832
- className="'baseui-shell-toast' + (props.toast.className ? ' ' + props.toast.className : '')"
1839
+ className="'bu-shell-toast' + (props.toast.className ? ' ' + props.toast.className : '')"
1833
1840
  onOpenChange="(open) => !open and this.dismissToast()">
1834
1841
  <div t-esc="props.toast.message"/>
1835
1842
  <t t-if="props.toast.actionLabel">
1836
- <Button variant="'outline'" size="'sm'" className="'ms-2'"
1837
- label="props.toast.actionLabel" onClick="() => this.runToastAction()"/>
1843
+ <t t-set-slot="action">
1844
+ <Button variant="'outline'" size="'sm'"
1845
+ label="props.toast.actionLabel" onClick="() => this.runToastAction()"/>
1846
+ </t>
1838
1847
  </t>
1839
1848
  </Toast>
1840
1849
  </t>
@@ -1858,41 +1867,41 @@
1858
1867
  <t t-name="ShellSidebar" t-call="baseui.ShellSidebar"/>
1859
1868
 
1860
1869
  <t t-name="baseui.ShellSidebarHeader">
1861
- <div t-att-class="'baseui-shell-sidebar-header' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1870
+ <div t-att-class="'bu-shell-sidebar-header' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1862
1871
  <t t-slot="default"/>
1863
1872
  </div>
1864
1873
  </t>
1865
1874
  <t t-name="ShellSidebarHeader" t-call="baseui.ShellSidebarHeader"/>
1866
1875
 
1867
1876
  <t t-name="baseui.ShellNav">
1868
- <nav t-att-class="'baseui-shell-nav' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1877
+ <nav t-att-class="'bu-shell-nav' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1869
1878
  <t t-slot="default"/>
1870
1879
  </nav>
1871
1880
  </t>
1872
1881
  <t t-name="ShellNav" t-call="baseui.ShellNav"/>
1873
1882
 
1874
1883
  <t t-name="baseui.ShellMain">
1875
- <div t-att-class="'baseui-shell-main' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1884
+ <div t-att-class="'bu-shell-main' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1876
1885
  <t t-slot="default"/>
1877
1886
  </div>
1878
1887
  </t>
1879
1888
  <t t-name="ShellMain" t-call="baseui.ShellMain"/>
1880
1889
 
1881
1890
  <t t-name="baseui.ShellHeader">
1882
- <header t-att-class="'baseui-shell-header' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1891
+ <header t-att-class="'bu-shell-header' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1883
1892
  <t t-slot="default"/>
1884
1893
  </header>
1885
1894
  </t>
1886
1895
  <t t-name="ShellHeader" t-call="baseui.ShellHeader"/>
1887
1896
 
1888
1897
  <t t-name="baseui.ShellContent">
1889
- <main t-att-class="'baseui-shell-content' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1898
+ <main t-att-class="'bu-shell-content' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1890
1899
  <t t-if="props.loading">
1891
- <div class="baseui-shell-content-skeleton" aria-busy="true" aria-live="polite">
1892
- <Skeleton className="'baseui-shell-content-skeleton-bar baseui-shell-content-skeleton-title'"/>
1893
- <Skeleton className="'baseui-shell-content-skeleton-bar'"/>
1894
- <Skeleton className="'baseui-shell-content-skeleton-bar'"/>
1895
- <Skeleton className="'baseui-shell-content-skeleton-bar baseui-shell-content-skeleton-short'"/>
1900
+ <div class="bu-shell-content-skeleton" aria-busy="true" aria-live="polite">
1901
+ <Skeleton className="'bu-shell-content-skeleton-bar bu-shell-content-skeleton-title'"/>
1902
+ <Skeleton className="'bu-shell-content-skeleton-bar'"/>
1903
+ <Skeleton className="'bu-shell-content-skeleton-bar'"/>
1904
+ <Skeleton className="'bu-shell-content-skeleton-bar bu-shell-content-skeleton-short'"/>
1896
1905
  </div>
1897
1906
  </t>
1898
1907
  <t t-else="">
@@ -1903,10 +1912,10 @@
1903
1912
  <t t-name="ShellContent" t-call="baseui.ShellContent"/>
1904
1913
 
1905
1914
  <t t-name="baseui.ShellUserMenu">
1906
- <div t-if="authState" t-att-class="'baseui-shell-user' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1915
+ <div t-if="authState" t-att-class="'bu-shell-user' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
1907
1916
  <t t-slot="default">
1908
- <span class="baseui-shell-user-name" t-esc="authState.username"/>
1909
- <button type="button" class="btn baseui-button btn-outline-secondary btn-sm" t-on-click="logout">Logout</button>
1917
+ <span class="bu-shell-user-name" t-esc="authState.username"/>
1918
+ <Button variant="'outline'" size="'sm'" label="'Logout'" onClick="() => this.logout()"/>
1910
1919
  </t>
1911
1920
  </div>
1912
1921
  </t>
@@ -1928,27 +1937,27 @@
1928
1937
  <t t-name="baseui.Sheet"><t t-slot="default"/></t>
1929
1938
  <t t-name="Sheet" t-call="baseui.Sheet"/>
1930
1939
  <t t-name="baseui.SheetTrigger">
1931
- <button type="button" class="btn baseui-button btn-outline-secondary baseui-sheet-trigger" t-att-style="props.style" t-on-click="onClick"><t t-slot="default"/></button>
1940
+ <Button variant="'outline'" className="'bu-sheet-trigger'" style="props.style" onClick="() => this.onClick()"><t t-slot="default"/></Button>
1932
1941
  </t>
1933
1942
  <t t-name="SheetTrigger" t-call="baseui.SheetTrigger"/>
1934
1943
  <t t-name="baseui.SheetContent">
1935
- <div t-ref="root" t-att-class="'offcanvas ' + placementClass + ' baseui-sheet-overlay'" t-att-style="props.style" tabindex="-1">
1936
- <aside class="baseui-sheet-panel">
1944
+ <div t-ref="root" t-att-class="'offcanvas ' + placementClass + ' bu-sheet-overlay'" t-att-style="props.style" tabindex="-1">
1945
+ <aside class="bu-sheet-panel">
1937
1946
  <t t-slot="default"/>
1938
1947
  </aside>
1939
1948
  </div>
1940
1949
  </t>
1941
1950
  <t t-name="SheetContent" t-call="baseui.SheetContent"/>
1942
- <t t-name="baseui.SheetHeader"><div class="baseui-sheet-header" t-att-style="props.style"><t t-slot="default"/></div></t>
1951
+ <t t-name="baseui.SheetHeader"><div class="bu-sheet-header" t-att-style="props.style"><t t-slot="default"/></div></t>
1943
1952
  <t t-name="SheetHeader" t-call="baseui.SheetHeader"/>
1944
- <t t-name="baseui.SheetFooter"><div class="baseui-sheet-footer" t-att-style="props.style"><t t-slot="default"/></div></t>
1953
+ <t t-name="baseui.SheetFooter"><div class="bu-sheet-footer" t-att-style="props.style"><t t-slot="default"/></div></t>
1945
1954
  <t t-name="SheetFooter" t-call="baseui.SheetFooter"/>
1946
- <t t-name="baseui.SheetTitle"><h2 class="baseui-sheet-title" t-att-style="props.style"><t t-slot="default"/></h2></t>
1955
+ <t t-name="baseui.SheetTitle"><h2 class="bu-sheet-title" t-att-style="props.style"><t t-slot="default"/></h2></t>
1947
1956
  <t t-name="SheetTitle" t-call="baseui.SheetTitle"/>
1948
- <t t-name="baseui.SheetDescription"><p class="baseui-sheet-description" t-att-style="props.style"><t t-slot="default"/></p></t>
1957
+ <t t-name="baseui.SheetDescription"><p class="bu-sheet-description" t-att-style="props.style"><t t-slot="default"/></p></t>
1949
1958
  <t t-name="SheetDescription" t-call="baseui.SheetDescription"/>
1950
1959
  <t t-name="baseui.SheetClose">
1951
- <button type="button" class="btn baseui-button btn-outline-secondary baseui-sheet-close" t-att-style="props.style" data-bs-dismiss="offcanvas"><t t-slot="default"/></button>
1960
+ <Button variant="'outline'" className="'bu-sheet-close'" style="props.style" attrs="{'data-bs-dismiss': 'offcanvas'}"><t t-slot="default"/></Button>
1952
1961
  </t>
1953
1962
  <t t-name="SheetClose" t-call="baseui.SheetClose"/>
1954
1963
  <t t-name="baseui.sidebar">
@@ -1963,14 +1972,14 @@
1963
1972
  t-att-data-variant="variant"
1964
1973
  t-att-data-side="side"
1965
1974
  t-on-keydown="onKeyDown">
1966
- <div t-if="state.open" class="baseui-sidebar-backdrop" data-slot="sidebar-backdrop" t-on-click="() => this.setOpen(false)"></div>
1975
+ <div t-if="state.open" class="bu-sidebar-backdrop" data-slot="sidebar-backdrop" t-on-click="() => this.setOpen(false)"></div>
1967
1976
  <t t-slot="default"/>
1968
1977
  </div>
1969
1978
  </t>
1970
1979
  <t t-name="Sidebar" t-call="baseui.Sidebar"/>
1971
1980
  <t t-name="SidebarProvider" t-call="baseui.Sidebar"/>
1972
1981
  <t t-name="baseui.SidebarContent">
1973
- <aside t-att-class="'baseui-sidebar' + (open ? ' is-open' : '') + (props.className ? ' ' + props.className : '')"
1982
+ <aside t-att-class="'bu-sidebar' + (open ? ' is-open' : '') + (props.className ? ' ' + props.className : '')"
1974
1983
  t-att-style="props.style"
1975
1984
  data-sidebar="sidebar"
1976
1985
  data-slot="sidebar"
@@ -1980,37 +1989,35 @@
1980
1989
  </t>
1981
1990
  <t t-name="SidebarContent" t-call="baseui.SidebarContent"/>
1982
1991
  <t t-name="baseui.SidebarHeader">
1983
- <div t-att-class="'baseui-sidebar-header' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="header" data-slot="sidebar-header">
1992
+ <div t-att-class="'bu-sidebar-header' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="header" data-slot="sidebar-header">
1984
1993
  <t t-slot="default"/>
1985
1994
  </div>
1986
1995
  </t>
1987
1996
  <t t-name="SidebarHeader" t-call="baseui.SidebarHeader"/>
1988
1997
  <t t-name="baseui.SidebarFooter">
1989
- <div t-att-class="'baseui-sidebar-footer' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="footer" data-slot="sidebar-footer">
1998
+ <div t-att-class="'bu-sidebar-footer' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="footer" data-slot="sidebar-footer">
1990
1999
  <t t-slot="default"/>
1991
2000
  </div>
1992
2001
  </t>
1993
2002
  <t t-name="SidebarFooter" t-call="baseui.SidebarFooter"/>
1994
2003
  <t t-name="baseui.SidebarInset">
1995
- <main t-att-class="'baseui-sidebar-inset' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="sidebar-inset">
2004
+ <main t-att-class="'bu-sidebar-inset' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="sidebar-inset">
1996
2005
  <t t-slot="default"/>
1997
2006
  </main>
1998
2007
  </t>
1999
2008
  <t t-name="SidebarInset" t-call="baseui.SidebarInset"/>
2000
2009
  <t t-name="baseui.SidebarRail">
2001
- <button type="button"
2002
- t-att-class="'baseui-sidebar-rail' + (props.className ? ' ' + props.className : '')"
2003
- t-att-style="props.style"
2004
- data-sidebar="rail"
2005
- data-slot="sidebar-rail"
2006
- aria-label="Toggle Sidebar"
2007
- title="Toggle Sidebar"
2008
- tabindex="-1"
2009
- t-on-click="onClick"/>
2010
+ <Button type="'button'" unstyled="true"
2011
+ className="'bu-sidebar-rail' + (props.className ? ' ' + props.className : '')"
2012
+ style="props.style"
2013
+ attrs="{ 'data-sidebar': 'rail', 'data-slot': 'sidebar-rail', tabindex: '-1' }"
2014
+ ariaLabel="'Toggle Sidebar'"
2015
+ title="'Toggle Sidebar'"
2016
+ onClick="() => this.onClick()"/>
2010
2017
  </t>
2011
2018
  <t t-name="SidebarRail" t-call="baseui.SidebarRail"/>
2012
2019
  <t t-name="baseui.SidebarInput">
2013
- <input t-att-class="'baseui-sidebar-input' + (props.className ? ' ' + props.className : '')"
2020
+ <input t-att-class="'bu-sidebar-input' + (props.className ? ' ' + props.className : '')"
2014
2021
  t-att-style="props.style"
2015
2022
  data-sidebar="input"
2016
2023
  data-slot="sidebar-input"
@@ -2020,178 +2027,154 @@
2020
2027
  </t>
2021
2028
  <t t-name="SidebarInput" t-call="baseui.SidebarInput"/>
2022
2029
  <t t-name="baseui.SidebarSeparator">
2023
- <div t-att-class="'baseui-sidebar-separator' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="separator" data-slot="sidebar-separator"/>
2030
+ <div t-att-class="'bu-sidebar-separator' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="separator" data-slot="sidebar-separator"/>
2024
2031
  </t>
2025
2032
  <t t-name="SidebarSeparator" t-call="baseui.SidebarSeparator"/>
2026
2033
  <t t-name="baseui.SidebarClose">
2027
- <button type="button"
2028
- t-att-class="'baseui-sidebar-close' + (props.className ? ' ' + props.className : '')"
2029
- t-att-style="props.style"
2030
- data-sidebar="close"
2031
- data-slot="sidebar-close"
2032
- aria-label="props.label || 'Close Sidebar'"
2033
- t-on-click="onClick">
2034
- <Icon name="props.icon || 'x'" className="'baseui-sidebar-close-icon'"/>
2034
+ <Button type="'button'" unstyled="true"
2035
+ className="'bu-sidebar-close' + (props.className ? ' ' + props.className : '')"
2036
+ style="props.style"
2037
+ attrs="{ 'data-sidebar': 'close', 'data-slot': 'sidebar-close' }"
2038
+ ariaLabel="props.label || 'Close Sidebar'"
2039
+ onClick="() => this.onClick()">
2040
+ <Icon name="props.icon || 'x'" className="'bu-sidebar-close-icon'"/>
2035
2041
  <span t-if="props.label"><t t-esc="props.label"/></span>
2036
2042
  <span t-else="" class="visually-hidden">Close Sidebar</span>
2037
2043
  <t t-slot="default"/>
2038
- </button>
2044
+ </Button>
2039
2045
  </t>
2040
2046
  <t t-name="SidebarClose" t-call="baseui.SidebarClose"/>
2041
2047
  <t t-name="baseui.SidebarGroup">
2042
- <div t-att-class="'baseui-sidebar-group' + (props.muted ? ' is-muted' : '') + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="group" data-slot="sidebar-group">
2048
+ <div t-att-class="'bu-sidebar-group' + (props.muted ? ' is-muted' : '') + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="group" data-slot="sidebar-group">
2043
2049
  <t t-slot="default"/>
2044
2050
  </div>
2045
2051
  </t>
2046
2052
  <t t-name="SidebarGroup" t-call="baseui.SidebarGroup"/>
2047
2053
  <t t-name="baseui.SidebarGroupLabel">
2048
- <a t-if="props.href" t-att-href="props.href" t-att-class="'baseui-sidebar-group-label' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="group-label" data-slot="sidebar-group-label">
2054
+ <a t-if="props.href" t-att-href="props.href" t-att-class="'bu-sidebar-group-label' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="group-label" data-slot="sidebar-group-label">
2049
2055
  <t t-slot="default"/>
2050
2056
  </a>
2051
- <div t-else="" t-att-class="'baseui-sidebar-group-label' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="group-label" data-slot="sidebar-group-label">
2057
+ <div t-else="" t-att-class="'bu-sidebar-group-label' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="group-label" data-slot="sidebar-group-label">
2052
2058
  <t t-slot="default"/>
2053
2059
  </div>
2054
2060
  </t>
2055
2061
  <t t-name="SidebarGroupLabel" t-call="baseui.SidebarGroupLabel"/>
2056
2062
  <t t-name="baseui.SidebarGroupAction">
2057
- <button type="button"
2058
- t-att-class="'baseui-sidebar-group-action' + (props.className ? ' ' + props.className : '')"
2059
- t-att-style="props.style"
2060
- data-sidebar="group-action"
2061
- data-slot="sidebar-group-action"
2062
- t-att-aria-label="ariaLabel"
2063
- t-on-click="onClick">
2064
- <Icon t-if="props.icon" name="props.icon"/>
2063
+ <Button type="'button'" unstyled="true"
2064
+ className="'bu-sidebar-group-action' + (props.className ? ' ' + props.className : '')"
2065
+ style="props.style"
2066
+ attrs="{ 'data-sidebar': 'group-action', 'data-slot': 'sidebar-group-action' }"
2067
+ ariaLabel="ariaLabel"
2068
+ icon="props.icon"
2069
+ onClick="(event) => this.onClick(event)">
2065
2070
  <t t-slot="default"/>
2066
- </button>
2071
+ </Button>
2067
2072
  </t>
2068
2073
  <t t-name="SidebarGroupAction" t-call="baseui.SidebarGroupAction"/>
2069
2074
  <t t-name="baseui.SidebarGroupContent">
2070
- <div t-att-class="'baseui-sidebar-group-content' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="group-content" data-slot="sidebar-group-content">
2075
+ <div t-att-class="'bu-sidebar-group-content' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="group-content" data-slot="sidebar-group-content">
2071
2076
  <t t-slot="default"/>
2072
2077
  </div>
2073
2078
  </t>
2074
2079
  <t t-name="SidebarGroupContent" t-call="baseui.SidebarGroupContent"/>
2075
2080
  <t t-name="baseui.SidebarGroupCollapsible">
2076
- <div t-att-class="'baseui-sidebar-group' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
2077
- <button type="button"
2078
- t-att-class="'baseui-sidebar-group-trigger'"
2079
- data-sidebar="group-label"
2080
- data-slot="sidebar-group-label"
2081
- t-att-aria-expanded="open ? 'true' : 'false'"
2082
- t-on-click="toggle">
2081
+ <div t-att-class="'bu-sidebar-group' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
2082
+ <Button type="'button'" unstyled="true"
2083
+ className="'bu-sidebar-group-trigger'"
2084
+ attrs="{ 'data-sidebar': 'group-label', 'data-slot': 'sidebar-group-label', 'aria-expanded': open ? 'true' : 'false' }"
2085
+ onClick="() => this.toggle()">
2083
2086
  <t t-esc="props.label"/>
2084
- <Icon name="'chevron-down'" className="'baseui-sidebar-group-chevron' + (open ? ' is-open' : '')"/>
2085
- </button>
2086
- <div t-if="open" class="baseui-sidebar-group-content">
2087
+ <Icon name="'chevron-down'" className="'bu-sidebar-group-chevron' + (open ? ' is-open' : '')"/>
2088
+ </Button>
2089
+ <div t-if="open" class="bu-sidebar-group-content">
2087
2090
  <t t-slot="default"/>
2088
2091
  </div>
2089
2092
  </div>
2090
2093
  </t>
2091
2094
  <t t-name="SidebarGroupCollapsible" t-call="baseui.SidebarGroupCollapsible"/>
2092
2095
  <t t-name="baseui.SidebarMenu">
2093
- <ul t-att-class="'baseui-sidebar-menu' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="menu" data-slot="sidebar-menu">
2096
+ <ul t-att-class="'bu-sidebar-menu' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="menu" data-slot="sidebar-menu">
2094
2097
  <t t-slot="default"/>
2095
2098
  </ul>
2096
2099
  </t>
2097
2100
  <t t-name="SidebarMenu" t-call="baseui.SidebarMenu"/>
2098
2101
  <t t-name="baseui.SidebarMenuItem">
2099
- <li t-att-class="'baseui-sidebar-menu-item' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="menu-item" data-slot="sidebar-menu-item">
2102
+ <li t-att-class="'bu-sidebar-menu-item' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="menu-item" data-slot="sidebar-menu-item">
2100
2103
  <t t-slot="default"/>
2101
2104
  </li>
2102
2105
  </t>
2103
2106
  <t t-name="SidebarMenuItem" t-call="baseui.SidebarMenuItem"/>
2104
2107
  <t t-name="baseui.SidebarMenuButton">
2105
- <a t-if="props.href"
2106
- t-att-href="props.href"
2107
- t-att-class="classNames"
2108
- t-att-style="props.style"
2109
- data-sidebar="menu-button"
2110
- data-slot="sidebar-menu-button"
2111
- t-att-data-active="isActive ? 'true' : undefined"
2112
- t-att-data-size="props.size || 'default'"
2113
- t-att-aria-current="isActive ? 'page' : undefined"
2114
- t-att-aria-disabled="props.disabled ? 'true' : undefined"
2115
- t-on-click="onClick">
2116
- <Icon t-if="props.icon" name="props.icon" className="'baseui-sidebar-menu-icon'"/>
2117
- <span class="baseui-sidebar-menu-label"><t t-slot="default"/></span>
2118
- </a>
2119
- <button t-else=""
2120
- type="button"
2121
- t-att-class="classNames"
2122
- t-att-style="props.style"
2123
- data-sidebar="menu-button"
2124
- data-slot="sidebar-menu-button"
2125
- t-att-data-active="isActive ? 'true' : undefined"
2126
- t-att-data-size="props.size || 'default'"
2127
- t-att-aria-current="isActive ? 'page' : undefined"
2128
- t-att-disabled="props.disabled"
2129
- t-on-click="onClick">
2130
- <Icon t-if="props.icon" name="props.icon" className="'baseui-sidebar-menu-icon'"/>
2131
- <span class="baseui-sidebar-menu-label"><t t-slot="default"/></span>
2132
- </button>
2108
+ <Button href="props.href" unstyled="true"
2109
+ className="classNames"
2110
+ style="props.style"
2111
+ attrs="{ 'data-sidebar': 'menu-button', 'data-slot': 'sidebar-menu-button', 'data-active': isActive ? 'true' : undefined, 'data-size': props.size || 'default', 'aria-current': isActive ? 'page' : undefined }"
2112
+ disabled="props.disabled"
2113
+ onClick="(event) => this.onClick(event)">
2114
+ <Icon t-if="props.icon" name="props.icon" className="'bu-sidebar-menu-icon'"/>
2115
+ <span class="bu-sidebar-menu-label"><t t-slot="default"/></span>
2116
+ </Button>
2133
2117
  </t>
2134
2118
  <t t-name="SidebarMenuButton" t-call="baseui.SidebarMenuButton"/>
2135
2119
  <t t-name="baseui.SidebarMenuAction">
2136
- <button type="button"
2137
- t-att-class="'baseui-sidebar-menu-action' + (props.showOnHover ? ' show-on-hover' : '') + (props.className ? ' ' + props.className : '')"
2138
- t-att-style="props.style"
2139
- data-sidebar="menu-action"
2140
- data-slot="sidebar-menu-action"
2141
- t-att-aria-label="ariaLabel"
2142
- t-on-click="onClick">
2143
- <Icon t-if="props.icon" name="props.icon"/>
2120
+ <Button type="'button'" unstyled="true"
2121
+ className="'bu-sidebar-menu-action' + (props.showOnHover ? ' show-on-hover' : '') + (props.className ? ' ' + props.className : '')"
2122
+ style="props.style"
2123
+ attrs="{ 'data-sidebar': 'menu-action', 'data-slot': 'sidebar-menu-action' }"
2124
+ ariaLabel="ariaLabel"
2125
+ icon="props.icon"
2126
+ onClick="(event) => this.onClick(event)">
2144
2127
  <t t-slot="default"/>
2145
- </button>
2128
+ </Button>
2146
2129
  </t>
2147
2130
  <t t-name="SidebarMenuAction" t-call="baseui.SidebarMenuAction"/>
2148
2131
  <t t-name="baseui.SidebarMenuSub">
2149
- <ul t-att-class="'baseui-sidebar-menu-sub' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="menu-sub" data-slot="sidebar-menu-sub">
2132
+ <ul t-att-class="'bu-sidebar-menu-sub' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="menu-sub" data-slot="sidebar-menu-sub">
2150
2133
  <t t-slot="default"/>
2151
2134
  </ul>
2152
2135
  </t>
2153
2136
  <t t-name="SidebarMenuSub" t-call="baseui.SidebarMenuSub"/>
2154
2137
  <t t-name="baseui.SidebarMenuBadge">
2155
- <div t-att-class="'baseui-sidebar-menu-badge' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="menu-badge" data-slot="sidebar-menu-badge">
2138
+ <div t-att-class="'bu-sidebar-menu-badge' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="menu-badge" data-slot="sidebar-menu-badge">
2156
2139
  <t t-slot="default"/>
2157
2140
  </div>
2158
2141
  </t>
2159
2142
  <t t-name="SidebarMenuBadge" t-call="baseui.SidebarMenuBadge"/>
2160
2143
  <t t-name="baseui.SidebarMenuSkeleton">
2161
- <div t-att-class="'baseui-sidebar-menu-skeleton' + (props.className ? ' ' + props.className : '')" t-att-style="style" data-sidebar="menu-skeleton" data-slot="sidebar-menu-skeleton">
2162
- <span t-if="props.showIcon" class="baseui-sidebar-menu-skeleton-icon" data-sidebar="menu-skeleton-icon"></span>
2163
- <span class="baseui-sidebar-menu-skeleton-text" data-sidebar="menu-skeleton-text"></span>
2144
+ <div t-att-class="'bu-sidebar-menu-skeleton' + (props.className ? ' ' + props.className : '')" t-att-style="style" data-sidebar="menu-skeleton" data-slot="sidebar-menu-skeleton">
2145
+ <span t-if="props.showIcon" class="bu-sidebar-menu-skeleton-icon" data-sidebar="menu-skeleton-icon"></span>
2146
+ <span class="bu-sidebar-menu-skeleton-text" data-sidebar="menu-skeleton-text"></span>
2164
2147
  </div>
2165
2148
  </t>
2166
2149
  <t t-name="SidebarMenuSkeleton" t-call="baseui.SidebarMenuSkeleton"/>
2167
2150
  <t t-name="baseui.SidebarMenuSubItem">
2168
- <li t-att-class="'baseui-sidebar-menu-sub-item' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="menu-sub-item" data-slot="sidebar-menu-sub-item">
2151
+ <li t-att-class="'bu-sidebar-menu-sub-item' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-sidebar="menu-sub-item" data-slot="sidebar-menu-sub-item">
2169
2152
  <t t-slot="default"/>
2170
2153
  </li>
2171
2154
  </t>
2172
2155
  <t t-name="SidebarMenuSubItem" t-call="baseui.SidebarMenuSubItem"/>
2173
2156
  <t t-name="baseui.SidebarMenuSubButton">
2174
- <a t-if="props.href" t-att-href="props.href" t-att-class="classNames" t-att-style="props.style" data-sidebar="menu-sub-button" data-slot="sidebar-menu-sub-button" t-att-data-active="(props.active || props.isActive) ? 'true' : undefined" t-on-click="onClick">
2175
- <t t-slot="default"/>
2176
- </a>
2177
- <button t-else="" type="button" t-att-class="classNames" t-att-style="props.style" data-sidebar="menu-sub-button" data-slot="sidebar-menu-sub-button" t-att-data-active="(props.active || props.isActive) ? 'true' : undefined" t-on-click="onClick">
2157
+ <Button href="props.href" unstyled="true"
2158
+ className="classNames"
2159
+ style="props.style"
2160
+ attrs="{ 'data-sidebar': 'menu-sub-button', 'data-slot': 'sidebar-menu-sub-button', 'data-active': (props.active || props.isActive) ? 'true' : undefined }"
2161
+ onClick="(event) => this.onClick(event)">
2178
2162
  <t t-slot="default"/>
2179
- </button>
2163
+ </Button>
2180
2164
  </t>
2181
2165
  <t t-name="SidebarMenuSubButton" t-call="baseui.SidebarMenuSubButton"/>
2182
2166
  <t t-name="baseui.SidebarTrigger">
2183
- <button type="button"
2184
- t-att-class="'baseui-sidebar-trigger' + (props.className ? ' ' + props.className : '')"
2185
- t-att-style="props.style"
2186
- data-sidebar="trigger"
2187
- data-slot="sidebar-trigger"
2188
- aria-label="Toggle Sidebar"
2189
- t-on-click="onClick">
2190
- <Icon name="props.icon || 'panel-left'" className="'baseui-sidebar-trigger-icon'"/>
2167
+ <Button type="'button'" unstyled="true"
2168
+ className="'bu-sidebar-trigger' + (props.className ? ' ' + props.className : '')"
2169
+ style="props.style"
2170
+ attrs="{ 'data-sidebar': 'trigger', 'data-slot': 'sidebar-trigger' }"
2171
+ ariaLabel="'Toggle Sidebar'"
2172
+ onClick="() => this.onClick()">
2173
+ <Icon name="props.icon || 'panel-left'" className="'bu-sidebar-trigger-icon'"/>
2191
2174
  <span t-if="props.label"><t t-esc="props.label"/></span>
2192
2175
  <span t-else="" class="visually-hidden">Toggle Sidebar</span>
2193
2176
  <t t-slot="default"/>
2194
- </button>
2177
+ </Button>
2195
2178
  </t>
2196
2179
  <t t-name="SidebarTrigger" t-call="baseui.SidebarTrigger"/>
2197
2180
  <t t-name="baseui.slider"><input b-ui="slider" type="range"/></t>
@@ -2222,7 +2205,7 @@
2222
2205
  <label b-ui="switch"><input type="checkbox" role="switch"/><t t-slot="default"/></label>
2223
2206
  </t>
2224
2207
  <t t-name="baseui.Switch">
2225
- <label t-att-class="'form-check form-switch baseui-switch ' + (props.className || '')" t-att-style="props.style">
2208
+ <label t-att-class="'form-check form-switch bu-switch ' + (props.className || '')" t-att-style="props.style">
2226
2209
  <input
2227
2210
  type="checkbox"
2228
2211
  role="switch"
@@ -2244,40 +2227,36 @@
2244
2227
  </t>
2245
2228
  <t t-name="Table" t-call="baseui.Table"/>
2246
2229
  <t t-name="baseui.Tabs">
2247
- <div t-att-class="'baseui-tabs' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
2230
+ <div t-att-class="classNames" t-att-data-orientation="orientation" t-att-style="props.style">
2248
2231
  <t t-slot="default"/>
2249
2232
  </div>
2250
2233
  </t>
2251
2234
  <t t-name="Tabs" t-call="baseui.Tabs"/>
2252
2235
 
2253
2236
  <t t-name="baseui.TabsList">
2254
- <div t-ref="list" role="tablist" t-att-class="'nav nav-tabs' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" t-on-keydown="onKeyDown">
2237
+ <div t-ref="list" role="tablist" t-att-class="classNames" t-att-style="props.style" t-on-keydown="onKeyDown">
2255
2238
  <t t-slot="default"/>
2256
2239
  </div>
2257
2240
  </t>
2258
2241
  <t t-name="TabsList" t-call="baseui.TabsList"/>
2259
2242
 
2260
2243
  <t t-name="baseui.TabTrigger">
2261
- <button t-ref="root" type="button" role="tab" t-att-class="'rounded-0 rounded-top-1 ' + classNames" t-att-style="props.style" t-att-data-bs-target="'#' + panelId" t-att-aria-selected="isActive ? 'true' : 'false'" t-att-tabindex="isActive ? 0 : -1" t-att-disabled="props.disabled" t-on-click="onClick">
2244
+ <Button unstyled="true" className="classNames" style="props.style" disabled="props.disabled" attrs="tabAttrs" getRef="(el) => this.onRootRef(el)" onClick="() => this.onClick()">
2262
2245
  <t t-slot="default"/>
2263
- </button>
2246
+ </Button>
2264
2247
  </t>
2265
2248
  <t t-name="TabTrigger" t-call="baseui.TabTrigger"/>
2266
2249
 
2267
2250
  <t t-name="baseui.TabsContainer">
2268
- <div t-att-class="'tab-content baseui-tabs-contents' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
2251
+ <div t-att-class="'tab-content bu-tabs-contents' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
2269
2252
  <t t-slot="default"/>
2270
2253
  </div>
2271
2254
  </t>
2272
2255
  <t t-name="TabsContainer" t-call="baseui.TabsContainer"/>
2273
2256
 
2274
2257
  <t t-name="baseui.TabContent">
2275
- <div t-att-id="panelId" role="tabpanel" t-att-class="'tab-pane fade baseui-tabs-panel' + (initialActive ? ' show active' : '') + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
2276
- <Card className="'baseui-tabs-panel-card rounded-0 '" style="'border-end-start-radius: 8px !important; border-end-end-radius: 4px !important;'">
2277
- <CardBody>
2278
- <t t-slot="default"/>
2279
- </CardBody>
2280
- </Card>
2258
+ <div t-att-id="panelId" role="tabpanel" t-att-class="'tab-pane fade bu-tabs-panel' + (initialActive ? ' show active' : '') + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
2259
+ <t t-slot="default"/>
2281
2260
  </div>
2282
2261
  </t>
2283
2262
  <t t-name="TabContent" t-call="baseui.TabContent"/>
@@ -2300,18 +2279,18 @@
2300
2279
  </t>
2301
2280
  <t t-name="Textarea" t-call="baseui.Textarea"/>
2302
2281
  <t t-name="baseui.text-editor">
2303
- <div class="baseui-text-editor"/>
2282
+ <div class="bu-text-editor"/>
2304
2283
  </t>
2305
2284
  <t t-name="baseui.TextEditor">
2306
2285
  <div t-att-class="classNames" t-att-style="props.style" data-slot="text-editor" t-att-data-status="state.status">
2307
- <div t-if="state.status === 'loading'" class="baseui-text-editor-loading" role="status">Loading…</div>
2308
- <div t-elif="state.status === 'error'" class="baseui-text-editor-error" role="alert">
2286
+ <div t-if="state.status === 'loading'" class="bu-text-editor-loading" role="status">Loading…</div>
2287
+ <div t-elif="state.status === 'error'" class="bu-text-editor-error" role="alert">
2309
2288
  <t t-esc="state.error"/>
2310
2289
  </div>
2311
2290
  <div
2312
2291
  t-else=""
2313
2292
  t-ref="editor"
2314
- class="baseui-text-editor-shell"
2293
+ class="bu-text-editor-shell"
2315
2294
  data-slot="text-editor-shell"
2316
2295
  role="group"
2317
2296
  t-att-aria-label="editorLabel"
@@ -2320,19 +2299,19 @@
2320
2299
  </t>
2321
2300
  <t t-name="TextEditor" t-call="baseui.TextEditor"/>
2322
2301
  <t t-name="baseui.ThemeButton">
2323
- <button
2324
- t-att-class="classNames"
2325
- t-att-style="props.style"
2326
- type="button"
2327
- b-theme-button=""
2328
- t-att-aria-label="label"
2329
- t-att-title="label"
2330
- t-att-aria-pressed="pressed"
2331
- t-on-click="onClick"
2302
+ <Button
2303
+ unstyled="true"
2304
+ className="classNames"
2305
+ style="props.style"
2306
+ attrs="attrs"
2307
+ ariaLabel="label"
2308
+ title="label"
2309
+ ariaPressed="pressed"
2310
+ onClick="() => this.onClick()"
2332
2311
  >
2333
2312
  <Icon name="iconName" base-url="baseUrl"/>
2334
2313
  <span class="visually-hidden" b-theme-button-label="" t-esc="label"/>
2335
- </button>
2314
+ </Button>
2336
2315
  </t>
2337
2316
  <t t-name="ThemeButton" t-call="baseui.ThemeButton"/>
2338
2317
  <t t-name="baseui.toast">
@@ -2340,8 +2319,11 @@
2340
2319
  </t>
2341
2320
  <t t-name="baseui.Toast">
2342
2321
  <div t-ref="root" t-att-class="classNames" t-att-style="props.style" t-att-role="role">
2343
- <t t-slot="default"/>
2344
- <button type="button" class="btn baseui-button btn-light btn-icon-sm baseui-toast-close" data-bs-dismiss="toast" aria-label="Close">x</button>
2322
+ <div class="bu-toast-content"><t t-slot="default"/></div>
2323
+ <div class="bu-toast-actions">
2324
+ <t t-if="hasActionSlot" t-slot="action"/>
2325
+ <Button variant="'ghost'" size="'icon-sm'" className="'bu-toast-close'" aria-label="'Close'" onClick="() => this.close()">x</Button>
2326
+ </div>
2345
2327
  </div>
2346
2328
  </t>
2347
2329
  <t t-name="Toast" t-call="baseui.Toast"/>
@@ -2352,8 +2334,8 @@
2352
2334
  </span>
2353
2335
  </t>
2354
2336
  <t t-name="baseui.Tooltip">
2355
- <span t-att-class="'baseui-tooltip' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
2356
- <span t-ref="trigger" class="baseui-tooltip-trigger">
2337
+ <span t-att-class="'bu-tooltip' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
2338
+ <span t-ref="trigger" class="bu-tooltip-trigger">
2357
2339
  <t t-slot="trigger"/>
2358
2340
  </span>
2359
2341
  <!-- Rendered but never shown: Owl keeps this reactive so the component
@@ -2371,9 +2353,9 @@
2371
2353
  <button type="button"><t t-out="props.label"/></button>
2372
2354
  </t>
2373
2355
  <t t-name="baseui.Toggle">
2374
- <button type="button" t-att-class="classNames" t-att-style="props.style" t-att-aria-pressed="pressed ? 'true' : 'false'" t-on-click="onClick">
2356
+ <Button unstyled="true" className="classNames" style="props.style" aria-pressed="pressed ? 'true' : 'false'" onClick="() => this.onClick()">
2375
2357
  <t t-slot="default"/>
2376
- </button>
2358
+ </Button>
2377
2359
  </t>
2378
2360
  <t t-name="Toggle" t-call="baseui.Toggle"/>
2379
2361
  <t t-name="baseui.toggle-group">
@@ -2381,7 +2363,7 @@
2381
2363
  </t>
2382
2364
  <t t-name="baseui.ToggleGroup">
2383
2365
  <div
2384
- t-att-class="'btn-group baseui-toggle-group' + (props.className ? ' ' + props.className : '')"
2366
+ t-att-class="'btn-group bu-toggle-group' + (props.className ? ' ' + props.className : '')"
2385
2367
  t-att-style="props.style"
2386
2368
  t-att-role="props.multiple ? 'group' : 'radiogroup'"
2387
2369
  >
@@ -2390,15 +2372,15 @@
2390
2372
  </t>
2391
2373
  <t t-name="ToggleGroup" t-call="baseui.ToggleGroup"/>
2392
2374
  <t t-name="baseui.ToggleGroupItem">
2393
- <button
2394
- type="button"
2395
- class="btn btn-outline-secondary"
2396
- t-att-style="props.style"
2397
- t-att-aria-pressed="pressed ? 'true' : 'false'"
2398
- t-on-click="onClick"
2375
+ <Button
2376
+ unstyled="true"
2377
+ className="'btn btn-outline-secondary'"
2378
+ style="props.style"
2379
+ ariaPressed="pressed ? 'true' : 'false'"
2380
+ onClick="() => this.onClick()"
2399
2381
  >
2400
2382
  <t t-slot="default"/>
2401
- </button>
2383
+ </Button>
2402
2384
  </t>
2403
2385
  <t t-name="ToggleGroupItem" t-call="baseui.ToggleGroupItem"/>
2404
2386
  <t t-name="baseui.typography">