@thebase/ui 1.1.3 → 1.1.5

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 (95) hide show
  1. package/CHANGELOG.md +37 -18
  2. package/README.md +26 -22
  3. package/bin/create-baseui-app.mjs +7 -7
  4. package/dist/baseui.apidoc.esm.js +949 -0
  5. package/dist/baseui.apidoc.min.js +950 -0
  6. package/dist/baseui.esm.js +31 -31
  7. package/dist/baseui.min.css +1 -1
  8. package/dist/baseui.min.js +31 -31
  9. package/dist/baseui.registry.json +5 -5
  10. package/dist/baseui.templates.xml +60 -31
  11. package/dist/types/apidoc.d.ts +27 -0
  12. package/docs/analytics.md +5 -5
  13. package/docs/blocks.md +5 -5
  14. package/docs/components/accordion.md +3 -3
  15. package/docs/components/alert-dialog.md +2 -2
  16. package/docs/components/alert.md +2 -2
  17. package/docs/components/apidoc.md +17 -4
  18. package/docs/components/aspect-ratio.md +2 -2
  19. package/docs/components/attachment.md +3 -3
  20. package/docs/components/avatar.md +5 -5
  21. package/docs/components/badge.md +2 -2
  22. package/docs/components/block-viewer.md +4 -4
  23. package/docs/components/breadcrumb.md +3 -3
  24. package/docs/components/bubble.md +2 -2
  25. package/docs/components/button-group.md +2 -2
  26. package/docs/components/button.md +2 -2
  27. package/docs/components/calendar.md +5 -5
  28. package/docs/components/card.md +2 -2
  29. package/docs/components/carousel.md +5 -5
  30. package/docs/components/chart.md +5 -5
  31. package/docs/components/checkbox.md +2 -2
  32. package/docs/components/clipboard-button.md +2 -2
  33. package/docs/components/collapsible.md +2 -2
  34. package/docs/components/combobox.md +7 -6
  35. package/docs/components/command.md +5 -5
  36. package/docs/components/context-menu.md +5 -5
  37. package/docs/components/data-table.md +6 -6
  38. package/docs/components/date-picker.md +9 -8
  39. package/docs/components/dialog.md +4 -4
  40. package/docs/components/direction.md +2 -2
  41. package/docs/components/drawer.md +3 -3
  42. package/docs/components/dropdown-menu.md +3 -3
  43. package/docs/components/empty.md +3 -3
  44. package/docs/components/field.md +23 -17
  45. package/docs/components/form.md +3 -3
  46. package/docs/components/hover-card.md +5 -8
  47. package/docs/components/icon.md +3 -3
  48. package/docs/components/input-group.md +8 -7
  49. package/docs/components/input-otp.md +5 -5
  50. package/docs/components/input.md +6 -5
  51. package/docs/components/item.md +2 -2
  52. package/docs/components/kbd.md +2 -2
  53. package/docs/components/label.md +2 -2
  54. package/docs/components/markdown.md +3 -3
  55. package/docs/components/marker.md +2 -2
  56. package/docs/components/menubar.md +2 -2
  57. package/docs/components/message-scroller.md +5 -5
  58. package/docs/components/message.md +5 -5
  59. package/docs/components/native-select.md +4 -4
  60. package/docs/components/navigation-menu.md +3 -3
  61. package/docs/components/pagination.md +3 -3
  62. package/docs/components/popover.md +7 -7
  63. package/docs/components/progress.md +2 -2
  64. package/docs/components/pwa.md +2 -2
  65. package/docs/components/questionnaire.md +5 -5
  66. package/docs/components/radio-group.md +2 -2
  67. package/docs/components/resizable.md +5 -5
  68. package/docs/components/scroll-area.md +5 -5
  69. package/docs/components/select.md +6 -5
  70. package/docs/components/separator.md +2 -2
  71. package/docs/components/sheet.md +3 -3
  72. package/docs/components/shell.md +2 -2
  73. package/docs/components/sidebar.md +2 -2
  74. package/docs/components/skeleton.md +2 -2
  75. package/docs/components/slider.md +2 -2
  76. package/docs/components/spinner.md +3 -3
  77. package/docs/components/switch.md +2 -2
  78. package/docs/components/table.md +2 -2
  79. package/docs/components/tabs.md +4 -4
  80. package/docs/components/text-editor.md +2 -2
  81. package/docs/components/textarea.md +11 -15
  82. package/docs/components/theme-button.md +4 -4
  83. package/docs/components/toast.md +3 -3
  84. package/docs/components/toggle-group.md +5 -5
  85. package/docs/components/toggle.md +5 -5
  86. package/docs/components/tooltip.md +7 -7
  87. package/docs/components/typography.md +3 -3
  88. package/docs/icons.md +7 -7
  89. package/docs/installation.md +14 -13
  90. package/docs/owl-components.md +17 -17
  91. package/docs/registry.md +8 -8
  92. package/docs/runtime-api.md +3 -3
  93. package/docs/theming.md +5 -5
  94. package/docs/usage-guide.md +26 -26
  95. package/package.json +9 -2
@@ -2,7 +2,7 @@
2
2
 
3
3
  Combine labels, controls, and help text to compose accessible form fields and grouped inputs.
4
4
 
5
- ## Pure Owl component
5
+ ## Base component
6
6
 
7
7
  ```js
8
8
  import {
@@ -25,37 +25,31 @@ import {
25
25
  <FieldLegend>Payment Method</FieldLegend>
26
26
  <FieldDescription>All transactions are secure and encrypted</FieldDescription>
27
27
  <FieldGroup className="'mt-3 gap-3 d-flex flex-column'">
28
- <Field>
29
- <FieldLabel for="'card-name'">Name on Card</FieldLabel>
28
+ <Field label="'Name on Card'">
30
29
  <Input id="'card-name'" value="'Evil Rabbit'"/>
31
30
  </Field>
32
31
 
33
- <Field>
34
- <FieldLabel for="'card-number'">Card Number</FieldLabel>
35
- <Input id="'card-number'" value="'1234 5678 9012 3456'"/>
36
- <FieldDescription>Enter your 16-digit card number</FieldDescription>
32
+ <Field label="'Card Number'" description="'Enter your 16-digit card number'">
33
+ <Input id="'card-number'" value="'1234 5678 9012 3456'" leadingIcon="'credit-card'"/>
37
34
  </Field>
38
35
 
39
36
  <div class="row g-3">
40
37
  <div class="col-4">
41
- <Field>
42
- <FieldLabel for="'expiry-month'">Month</FieldLabel>
43
- <NativeSelect id="'expiry-month'" ariaLabel="'Month'">
38
+ <Field label="'Month'">
39
+ <NativeSelect id="'expiry-month'">
44
40
  <option>MM</option>
45
41
  </NativeSelect>
46
42
  </Field>
47
43
  </div>
48
44
  <div class="col-4">
49
- <Field>
50
- <FieldLabel for="'expiry-year'">Year</FieldLabel>
51
- <NativeSelect id="'expiry-year'" ariaLabel="'Year'">
45
+ <Field label="'Year'">
46
+ <NativeSelect id="'expiry-year'">
52
47
  <option>YYYY</option>
53
48
  </NativeSelect>
54
49
  </Field>
55
50
  </div>
56
51
  <div class="col-4">
57
- <Field>
58
- <FieldLabel for="'card-cvv'">CVV</FieldLabel>
52
+ <Field label="'CVV'">
59
53
  <Input id="'card-cvv'" value="'123'"/>
60
54
  </Field>
61
55
  </div>
@@ -72,8 +66,7 @@ import {
72
66
  </Field>
73
67
  </FieldSet>
74
68
 
75
- <Field>
76
- <FieldLabel for="'comments'">Comments</FieldLabel>
69
+ <Field label="'Comments'">
77
70
  <Textarea id="'comments'" placeholder="'Add any additional comments'" rows="3"/>
78
71
  </Field>
79
72
  </FieldGroup>
@@ -86,6 +79,19 @@ import {
86
79
  </form>
87
80
  ```
88
81
 
82
+ ### Outlined controls
83
+
84
+ `Field` accepts `label`, `labelBackground`, `description`, `error` and `invalid`, and hands them to the control inside it. `Input`, `Textarea`, `NativeSelect`, `Select`, `Combobox` and `DatePicker` draw them in the Material outlined style (floating label, helper text, error text and icon). A control's own `label`/`supportingText`/`errorText` props win over the `Field` values.
85
+
86
+ ```base-ui
87
+ <div class="d-grid gap-4" style="max-width: 28rem; width: 100%">
88
+ <Field label="'Email'" description="'We never share it'"><Input leadingIcon="'mail'"/></Field>
89
+ <Field label="'Bio'" error="'Too short'"><Textarea/></Field>
90
+ </div>
91
+ ```
92
+
93
+ Use one control per labelled `Field`. For checkboxes, radios and switches keep `FieldLabel` and `FieldDescription`; `Field`'s `label` prop no longer renders a standalone label.
94
+
89
95
  ## Static component
90
96
 
91
97
  ```base-ui
@@ -1,8 +1,8 @@
1
1
  # Form
2
2
 
3
- Build an accessible Bug Report form with BaseUI `Field` layout, BaseUI `Button` actions, and Owl `t-model` input bindings.
3
+ Build an accessible Bug Report form with Base UI `Field` layout, the Base UI `Button` actions, and Owl `t-model` input bindings.
4
4
 
5
- ## Pure Owl component
5
+ ## Base component
6
6
 
7
7
  ```js
8
8
  import { Component, useState, xml } from "@base/owl";
@@ -144,7 +144,7 @@ class BugReportExample extends Component {
144
144
  </form>
145
145
  ```
146
146
 
147
- This is the same Bug Report form converted from static `b-ui` markup to pure Owl composition: `FieldGroup`, `Field`, `FieldLabel`, `FieldDescription`, and `Button` replace the static adapters, while `t-model` owns the input state.
147
+ This is the same Bug Report form converted from base static markup (`b-ui`) to pure Base composition: `FieldGroup`, `Field`, `FieldLabel`, `FieldDescription`, and `Button` replace the static adapters, while `t-model` owns the input state.
148
148
 
149
149
  ## State
150
150
 
@@ -1,6 +1,6 @@
1
1
  # Hover Card
2
2
 
3
- ## Pure Owl component
3
+ ## Base component
4
4
 
5
5
  ```js
6
6
  import { HoverCard, HoverCardContent, HoverCardTrigger } from "@thebase/ui";
@@ -10,15 +10,12 @@ import { HoverCard, HoverCardContent, HoverCardTrigger } from "@thebase/ui";
10
10
  <div style="max-width: 28rem">
11
11
  <HoverCard>
12
12
  <HoverCardTrigger>
13
- <a href="https://twitter.com/shadcn" class="text-decoration-underline">@shadcn</a>
13
+ <a href="https://thebase.vn" class="text-decoration-underline">@thebase</a>
14
14
  </HoverCardTrigger>
15
15
  <HoverCardContent className="'w-auto'">
16
16
  <div class="d-flex justify-content-between gap-3" style="width: 20rem">
17
- <Avatar src="'https://github.com/shadcn.png'" alt="'@shadcn'">
18
- <t t-set-slot="fallback">SC</t>
19
- </Avatar>
20
- <div class="d-flex flex-column gap-1">
21
- <h4 class="small fw-semibold mb-0">@shadcn</h4>
17
+ <div class="d-flex flex-column gap-1" style="min-width: 0">
18
+ <h4 class="small fw-semibold mb-0">@thebase</h4>
22
19
  <p class="small mb-0">The React Framework – created and maintained by @vercel.</p>
23
20
  <div class="d-flex align-items-center pt-2">
24
21
  <span class="small text-muted">Joined December 2021</span>
@@ -36,7 +33,7 @@ import { HoverCard, HoverCardContent, HoverCardTrigger } from "@thebase/ui";
36
33
  | `HoverCardContent` | `className` | `String` | optional |
37
34
  | `HoverCardTrigger` | `className` | `String` | optional |
38
35
 
39
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
36
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
40
37
 
41
38
  ## Static component
42
39
 
@@ -1,8 +1,8 @@
1
1
  # Icon
2
2
 
3
- BaseUI includes the full Lucide SVG icon set as a built-in CDN icon library.
3
+ The Base UI includes the full Lucide SVG icon set as a built-in CDN icon library.
4
4
 
5
- ## Pure Owl component
5
+ ## Base component
6
6
 
7
7
  ```js
8
8
  import { Icon } from "@thebase/ui";
@@ -21,7 +21,7 @@ import { Icon } from "@thebase/ui";
21
21
  | `Icon` | `baseUrl` | `String` | optional |
22
22
  | `Icon` | `className` | `String` | optional |
23
23
 
24
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
24
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
25
25
 
26
26
  ## Static component
27
27
 
@@ -1,6 +1,6 @@
1
1
  # Input Group
2
2
 
3
- ## Pure Owl component
3
+ ## Base component
4
4
 
5
5
  ```js
6
6
  import {
@@ -15,22 +15,22 @@ import {
15
15
 
16
16
  ```base-ui
17
17
  <div class="d-flex flex-column gap-4 w-100" style="max-width: 28rem">
18
- <InputGroup>
19
- <InputGroupInput placeholder="'Search...'"/>
18
+ <InputGroup label="'Search'" supportingText="'Search the docs'">
19
+ <InputGroupInput/>
20
20
  <InputGroupAddon align="'inline-end'">
21
21
  <Icon name="'search'"/>
22
22
  </InputGroupAddon>
23
23
  </InputGroup>
24
24
 
25
- <InputGroup>
25
+ <InputGroup label="'Website'">
26
26
  <InputGroupInput placeholder="'https://'"/>
27
27
  <InputGroupAddon align="'inline-end'">
28
28
  <InputGroupButton>Search</InputGroupButton>
29
29
  </InputGroupAddon>
30
30
  </InputGroup>
31
31
 
32
- <InputGroup>
33
- <InputGroupTextarea placeholder="'Enter message...'" rows="3"/>
32
+ <InputGroup label="'Message'">
33
+ <InputGroupTextarea rows="3"/>
34
34
  <InputGroupAddon align="'block-end'">
35
35
  <InputGroupText>0/280</InputGroupText>
36
36
  <InputGroupButton variant="'default'" className="'ms-auto'">Send</InputGroupButton>
@@ -42,6 +42,7 @@ import {
42
42
  | Component | Prop | Type | Notes |
43
43
  | --- | --- | --- | --- |
44
44
  | `InputGroup` | `className` | `String` | optional |
45
+ | `InputGroup` | `label`, `labelBackground`, `supportingText`, `errorText`, `invalid` | `String` / `Boolean` | Material-style outlined group, same label as [Input](/examples/blocks.html#/docs/components/input): the label floats onto the border once the control is focused or filled. Also inherited from a parent `Field`. |
45
46
  | `InputGroupAddon` | `align` | `String` | `inline-start` (default), `inline-end`, `block-start`, `block-end` |
46
47
  | `InputGroupButton` | `variant` | `String` | `default`, `destructive`, `outline`, `secondary`, `ghost` (default), `link` |
47
48
  | `InputGroupButton` | `size` | `String` | `xs` (default), `icon-xs`, `sm`, `icon-sm` |
@@ -49,7 +50,7 @@ import {
49
50
  | `InputGroupInput` | `type`, `value`, `placeholder`, `disabled`, `readonly`, `invalid` | mixed | input control |
50
51
  | `InputGroupTextarea` | `value`, `placeholder`, `rows`, `disabled`, `readonly`, `invalid`, `resize` | mixed | textarea control |
51
52
 
52
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
53
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
53
54
 
54
55
  ## Static component
55
56
 
@@ -4,9 +4,9 @@ Use `b-ui="input-otp"` for a CDN-ready input otp component.
4
4
 
5
5
  ## CDN install requirements
6
6
 
7
- Load the pinned BaseUI CSS and JavaScript files; no extra dependency is required for this component.
7
+ Load the pinned the Base UI CSS and JavaScript files; no extra dependency is required for this component.
8
8
 
9
- ## Pure Owl component
9
+ ## Base component
10
10
 
11
11
  ```js
12
12
  import { InputOtp } from "@thebase/ui";
@@ -26,7 +26,7 @@ import { InputOtp } from "@thebase/ui";
26
26
  | `InputOtp` | `className` | `String` | optional |
27
27
  | `InputOtp` | `onChange` | `Function` | optional |
28
28
 
29
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
29
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
30
30
 
31
31
  ## Static component
32
32
 
@@ -52,7 +52,7 @@ Interactive components emit documented `baseui:*` events from their root element
52
52
 
53
53
  ## CSS variables
54
54
 
55
- The component inherits BaseUI semantic tokens such as `--b-surface`, `--b-border`, `--b-primary`, and `--b-radius`.
55
+ The component inherits the Base UI semantic tokens such as `--b-surface`, `--b-border`, `--b-primary`, and `--b-radius`.
56
56
 
57
57
  ## Accessibility behavior
58
58
 
@@ -64,7 +64,7 @@ See `examples/index.html` for a working CDN-style page.
64
64
 
65
65
  ## Browser support
66
66
 
67
- BaseUI targets modern evergreen browsers that support ES modules, CSS variables, and Bootstrap 5.3.
67
+ The Base UI targets modern evergreen browsers that support ES modules, CSS variables, and Bootstrap 5.3.
68
68
 
69
69
  ## Test checklist
70
70
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Use `b-ui="input"` on a native input element.
4
4
 
5
- ## Pure Owl component
5
+ ## Base component
6
6
 
7
7
  ```js
8
8
  import { Input } from "@thebase/ui";
@@ -30,6 +30,7 @@ import { Input } from "@thebase/ui";
30
30
  | --- | --- | --- |
31
31
  | `value` | `String` | controlled value; the component never mutates it itself |
32
32
  | `label` | `String` | Material-style outlined field: label rests inside, floats onto the border when focused/filled (or when `placeholder` is set) |
33
+ | `labelBackground` | `String` | any CSS colour for the floated label's background (default matches the field, `--bu-field-bg`); use it when the field sits on a surface of a different colour |
33
34
  | `supportingText` | `String` | helper line under the field, linked via `aria-describedby` |
34
35
  | `errorText` | `String` | marks the field invalid, replaces `supportingText`, swaps the trailing icon for an error icon, sets `aria-invalid` |
35
36
  | `leadingIcon` / `trailingIcon` | `String` | Lucide icon names (outlined mode only) |
@@ -48,7 +49,7 @@ import { Input } from "@thebase/ui";
48
49
  | `onInput` | `Function` | called as `(value, event)` on the native `input` event |
49
50
  | `onChange` | `Function` | called as `(value, event)` on the native `change` event |
50
51
 
51
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
52
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
52
53
 
53
54
  ## Static component
54
55
 
@@ -74,15 +75,15 @@ Use the global runtime methods: `thebase.mount()`, `thebase.mountAll()`, and `th
74
75
 
75
76
  ## Events
76
77
 
77
- Input does not emit custom BaseUI events. Use native `input` and `change` events.
78
+ Input does not emit custom the Base UI events. Use native `input` and `change` events.
78
79
 
79
80
  ## CSS variables
80
81
 
81
- The component inherits BaseUI semantic tokens such as `--b-input`, `--b-border`, `--b-ring`, and `--b-radius`.
82
+ The component inherits the Base UI semantic tokens such as `--b-input`, `--b-border`, `--b-ring`, and `--b-radius`.
82
83
 
83
84
  ## Browser support
84
85
 
85
- BaseUI targets modern evergreen browsers that support ES modules, CSS variables, and Bootstrap 5.3.
86
+ The Base UI targets modern evergreen browsers that support ES modules, CSS variables, and Bootstrap 5.3.
86
87
 
87
88
  ## Test checklist
88
89
 
@@ -1,6 +1,6 @@
1
1
  # Item
2
2
 
3
- ## Pure Owl component
3
+ ## Base component
4
4
 
5
5
  ```js
6
6
  import { Item } from "@thebase/ui";
@@ -54,7 +54,7 @@ import { Item } from "@thebase/ui";
54
54
  | --- | --- | --- | --- |
55
55
  | `Item` | `className` | `String` | optional |
56
56
 
57
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
57
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
58
58
 
59
59
  ## Static component
60
60
 
@@ -1,6 +1,6 @@
1
1
  # Kbd
2
2
 
3
- ## Pure Owl component
3
+ ## Base component
4
4
 
5
5
  ```js
6
6
  import { Kbd } from "@thebase/ui";
@@ -35,7 +35,7 @@ import { Kbd } from "@thebase/ui";
35
35
  | --- | --- | --- | --- |
36
36
  | `Kbd` | `className` | `String` | optional |
37
37
 
38
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
38
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
39
39
 
40
40
  ## Static component
41
41
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Form label with consistent spacing and optional required marker.
4
4
 
5
- ## Pure Owl component
5
+ ## Base component
6
6
 
7
7
  ```js
8
8
  import { Label } from "@thebase/ui";
@@ -23,7 +23,7 @@ import { Label } from "@thebase/ui";
23
23
  | `Label` | `required` | `Boolean` | optional |
24
24
  | `Label` | `className` | `String` | optional |
25
25
 
26
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
26
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
27
27
 
28
28
  ## Static component
29
29
 
@@ -1,14 +1,14 @@
1
1
  # Markdown
2
2
 
3
- Use `b-ui="markdown"` (or the pure Owl `Markdown` component) to render Markdown or mount an editable Markdown document. Read-only parsing uses the vendored `src/runtime/marked/marked.min.js` (marked v15). Fenced ` ```mermaid ` code blocks render as inline SVG via `src/runtime/mermaid/mermaid.esm.min.mjs`. Fenced ` ```base-ui ` code blocks render as a live BaseUI preview through the page's global static runtime (`window.thebase`, e.g. `dist/baseui.min.js`).
3
+ Use `b-ui="markdown"` (or the pure Base `Markdown` component) to render Markdown or mount an editable Markdown document. Read-only parsing uses the vendored `src/runtime/marked/marked.min.js` (marked v15). Fenced ` ```mermaid ` code blocks render as inline SVG via `src/runtime/mermaid/mermaid.esm.min.mjs`. Fenced ` ```base-ui ` code blocks render as a live the Base UI preview through the page's global static runtime (`window.thebase`, e.g. `dist/baseui.min.js`).
4
4
 
5
5
  Editable mode lazy-loads `dist/runtime/milkdown/milkdown-editor.js`, which bundles Milkdown, Yjs, and y-webrtc only when `b-att-editable="true"` / `editable="true"` is used. The editor runtime enables CommonMark, GFM, history, clipboard, cursor, listener, indent, upload, block handle, tooltip, slash, streaming, and diff plugins. Collaborative mode uses Milkdown's Yjs-aware collab undo/redo instead of the plain history stack.
6
6
 
7
7
  ## CDN install requirements
8
8
 
9
- Load the pinned BaseUI CSS and JavaScript files. No extra `<script>` tag, npm install, or CDN reference is required for Markdown parsing, mermaid diagrams, or the Milkdown editor runtime — each lazy asset is emitted under `dist/runtime/` and fetched only when needed. Live ` ```base-ui ` previews reuse the same static runtime the rest of the page already loads (`dist/baseui.min.js`) — if that script isn't on the page, the block renders an inline error instead of a live preview.
9
+ Load the pinned the Base UI CSS and JavaScript files. No extra `<script>` tag, npm install, or CDN reference is required for Markdown parsing, mermaid diagrams, or the Milkdown editor runtime — each lazy asset is emitted under `dist/runtime/` and fetched only when needed. Live ` ```base-ui ` previews reuse the same static runtime the rest of the page already loads (`dist/baseui.min.js`) — if that script isn't on the page, the block renders an inline error instead of a live preview.
10
10
 
11
- ## Pure Owl component
11
+ ## Base component
12
12
 
13
13
  ```js
14
14
  import { Markdown } from "@base/component";
@@ -1,6 +1,6 @@
1
1
  # Marker
2
2
 
3
- ## Pure Owl component
3
+ ## Base component
4
4
 
5
5
  ```js
6
6
  import { Marker } from "@thebase/ui";
@@ -19,7 +19,7 @@ import { Marker } from "@thebase/ui";
19
19
  | --- | --- | --- | --- |
20
20
  | `Marker` | `className` | `String` | optional |
21
21
 
22
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
22
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
23
23
 
24
24
  ## Static component
25
25
 
@@ -1,6 +1,6 @@
1
1
  # Menubar
2
2
 
3
- ## Pure Owl component
3
+ ## Base component
4
4
 
5
5
  ```js
6
6
  import { Menubar } from "@thebase/ui";
@@ -91,7 +91,7 @@ import { Menubar } from "@thebase/ui";
91
91
  | --- | --- | --- | --- |
92
92
  | `Menubar` | `className` | `String` | optional |
93
93
 
94
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
94
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
95
95
 
96
96
  ## Static component
97
97
 
@@ -4,9 +4,9 @@ Use `b-ui="message-scroller"` for a CDN-ready message scroller component.
4
4
 
5
5
  ## CDN install requirements
6
6
 
7
- Load the pinned BaseUI CSS and JavaScript files; no extra dependency is required for this component.
7
+ Load the pinned the Base UI CSS and JavaScript files; no extra dependency is required for this component.
8
8
 
9
- ## Pure Owl component
9
+ ## Base component
10
10
 
11
11
  ```js
12
12
  import { MessageScroller } from "@thebase/ui";
@@ -48,7 +48,7 @@ import { MessageScroller } from "@thebase/ui";
48
48
  | `MessageScroller` | `autoscroll` | `Boolean` | optional |
49
49
  | `MessageScroller` | `className` | `String` | optional |
50
50
 
51
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
51
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
52
52
 
53
53
  ## Static component
54
54
 
@@ -74,7 +74,7 @@ Interactive components emit documented `baseui:*` events from their root element
74
74
 
75
75
  ## CSS variables
76
76
 
77
- The component inherits BaseUI semantic tokens such as `--b-surface`, `--b-border`, `--b-primary`, and `--b-radius`.
77
+ The component inherits the Base UI semantic tokens such as `--b-surface`, `--b-border`, `--b-primary`, and `--b-radius`.
78
78
 
79
79
  ## Accessibility behavior
80
80
 
@@ -86,7 +86,7 @@ See `examples/index.html` for a working CDN-style page.
86
86
 
87
87
  ## Browser support
88
88
 
89
- BaseUI targets modern evergreen browsers that support ES modules, CSS variables, and Bootstrap 5.3.
89
+ The Base UI targets modern evergreen browsers that support ES modules, CSS variables, and Bootstrap 5.3.
90
90
 
91
91
  ## Test checklist
92
92
 
@@ -4,9 +4,9 @@ Use `b-ui="message"` for a CDN-ready message component.
4
4
 
5
5
  ## CDN install requirements
6
6
 
7
- Load the pinned BaseUI CSS and JavaScript files; no extra dependency is required for this component.
7
+ Load the pinned the Base UI CSS and JavaScript files; no extra dependency is required for this component.
8
8
 
9
- ## Pure Owl component
9
+ ## Base component
10
10
 
11
11
  ```js
12
12
  import { Message } from "@thebase/ui";
@@ -41,7 +41,7 @@ import { Message } from "@thebase/ui";
41
41
  | `Message` | `side` | `String` | optional |
42
42
  | `Message` | `className` | `String` | optional |
43
43
 
44
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
44
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
45
45
 
46
46
  ## Static component
47
47
 
@@ -67,7 +67,7 @@ Interactive components emit documented `baseui:*` events from their root element
67
67
 
68
68
  ## CSS variables
69
69
 
70
- The component inherits BaseUI semantic tokens such as `--b-surface`, `--b-border`, `--b-primary`, and `--b-radius`.
70
+ The component inherits the Base UI semantic tokens such as `--b-surface`, `--b-border`, `--b-primary`, and `--b-radius`.
71
71
 
72
72
  ## Accessibility behavior
73
73
 
@@ -79,7 +79,7 @@ See `examples/index.html` for a working CDN-style page.
79
79
 
80
80
  ## Browser support
81
81
 
82
- BaseUI targets modern evergreen browsers that support ES modules, CSS variables, and Bootstrap 5.3.
82
+ The Base UI targets modern evergreen browsers that support ES modules, CSS variables, and Bootstrap 5.3.
83
83
 
84
84
  ## Test checklist
85
85
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Browser-native select control with Bootstrap-compatible styling.
4
4
 
5
- ## Pure Owl component
5
+ ## Base component
6
6
 
7
7
  ```js
8
8
  import { NativeSelect } from "@thebase/ui";
@@ -10,8 +10,7 @@ import { NativeSelect } from "@thebase/ui";
10
10
 
11
11
  ```base-ui
12
12
  <div class="d-grid w-100 gap-2" style="max-width: 24rem">
13
- <Label for="'fruit'">Fruit</Label>
14
- <NativeSelect>
13
+ <NativeSelect label="'Fruit'">
15
14
  <option value="'apple'">Apple</option>
16
15
  <option value="'banana'">Banana</option>
17
16
  <option value="'blueberry'">Blueberry</option>
@@ -29,8 +28,9 @@ import { NativeSelect } from "@thebase/ui";
29
28
  | `NativeSelect` | `ariaLabel` / `aria-label` | `String` | optional, accessible name for the control |
30
29
  | `NativeSelect` | `id` | `String` | optional, e.g. for `Label`'s `for` |
31
30
  | `NativeSelect` | `onChange` | `Function` | optional |
31
+ | `NativeSelect` | `label`, `labelBackground`, `supportingText`, `errorText`, `invalid` | `String` / `Boolean` | Material-style outlined field, same behaviour as [Input](/examples/blocks.html#/docs/components/input): the label floats onto the border, `errorText` replaces `supportingText`. Also inherited from a parent `Field`. |
32
32
 
33
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
33
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
34
34
 
35
35
  ## Static component
36
36
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Use `b-ui="navigation-menu"` for horizontal site or app navigation.
4
4
 
5
- ## Pure Owl component
5
+ ## Base component
6
6
 
7
7
  ```js
8
8
  import { NavigationMenu, NavigationMenuItem } from "@thebase/ui";
@@ -27,7 +27,7 @@ import { NavigationMenu, NavigationMenuItem } from "@thebase/ui";
27
27
  | `NavigationMenuItem` | `href` | `String` | optional |
28
28
  | `NavigationMenuItem` | `className` | `String` | optional |
29
29
 
30
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
30
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
31
31
 
32
32
  ## Static component
33
33
 
@@ -38,4 +38,4 @@ See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for
38
38
  </nav>
39
39
  ```
40
40
 
41
- BaseUI adds `menubar`/`menuitem` roles and Left/Right arrow focus movement.
41
+ The Base UI adds `menubar`/`menuitem` roles and Left/Right arrow focus movement.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Use `b-ui="pagination"` on a `nav` containing a list of links or buttons.
4
4
 
5
- ## Pure Owl component
5
+ ## Base component
6
6
 
7
7
  ```js
8
8
  import { Pagination, PaginationItem } from "@thebase/ui";
@@ -34,7 +34,7 @@ import { Pagination, PaginationItem } from "@thebase/ui";
34
34
  | `PaginationItem` | `disabled` | `Boolean` | optional |
35
35
  | `PaginationItem` | `onClick` | `Function` | optional |
36
36
 
37
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
37
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
38
38
 
39
39
  ## Static component
40
40
 
@@ -47,4 +47,4 @@ See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for
47
47
  </nav>
48
48
  ```
49
49
 
50
- BaseUI adds Bootstrap pagination classes, active states, and disabled item styling.
50
+ The Base UI adds Bootstrap pagination classes, active states, and disabled item styling.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Use `b-ui="popover"` with trigger and content nodes.
4
4
 
5
- ## Pure Owl component
5
+ ## Base component
6
6
 
7
7
  ```js
8
8
  import { Popover, PopoverContent, PopoverTrigger } from "@thebase/ui";
@@ -32,13 +32,13 @@ import { Popover, PopoverContent, PopoverTrigger } from "@thebase/ui";
32
32
  | `PopoverContent` | `className` | `String` | optional |
33
33
  | `PopoverTrigger` | `className` | `String` | optional |
34
34
 
35
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
35
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
36
36
 
37
- Both the pure Owl and static forms are driven by a live `bootstrap.Popover` instance owned on the trigger element — **the visible popup is Bootstrap's own generated DOM (a `.popover`/`.popover-arrow`/`.popover-body` node, positioned via Popper), appended to `document.body`, not rendered inline where you authored the popover.** Don't query for it as a descendant of the trigger or root; query `document.body.querySelector(".popover .popover-body")` instead. There's no separate heading/title concept in the current API — only body content (`.popover-body`); no `.popover-header` is generated.
37
+ Both the pure Base and static forms are driven by a live `bootstrap.Popover` instance owned on the trigger element — **the visible popup is Bootstrap's own generated DOM (a `.popover`/`.popover-arrow`/`.popover-body` node, positioned via Popper), appended to `document.body`, not rendered inline where you authored the popover.** Don't query for it as a descendant of the trigger or root; query `document.body.querySelector(".popover .popover-body")` instead. There's no separate heading/title concept in the current API — only body content (`.popover-body`); no `.popover-header` is generated.
38
38
 
39
39
  The default slot's rendered markup is captured into an HTML string for Bootstrap's `content`/`html: true` options (Bootstrap can't consume live vnodes): `PopoverContent` renders the slot into a hidden buffer element internal to its own template (it is no longer a visibly-toggled popup itself), `PopoverTrigger` reads that buffer's `innerHTML` on mount to seed the bootstrap instance, and re-syncs the live popup via `.setContent({'.popover-body': html})` whenever that HTML changes on a later render.
40
40
 
41
- Unlike `Tooltip`/hover-driven components, Bootstrap's own `trigger: "click"` option would bind its own click listener directly on the trigger element, independent of `PopoverTrigger`'s own `t-on-click`. To avoid double-toggling on a single click, the pure Owl `PopoverTrigger` constructs its `bootstrap.Popover` instance with `trigger: "manual"` and calls `.toggle()` itself from `onClick` — `shown.bs.popover`/`hidden.bs.popover` still fire from `.toggle()` regardless of the `trigger` option, since that option only gates Bootstrap's own auto-binding, not event dispatch. The static adapter, which has no competing click handler of its own, passes `trigger: "click"` and relies on Bootstrap's built-in binding instead.
41
+ Unlike `Tooltip`/hover-driven components, Bootstrap's own `trigger: "click"` option would bind its own click listener directly on the trigger element, independent of `PopoverTrigger`'s own `t-on-click`. To avoid double-toggling on a single click, the pure Base `PopoverTrigger` constructs its `bootstrap.Popover` instance with `trigger: "manual"` and calls `.toggle()` itself from `onClick` — `shown.bs.popover`/`hidden.bs.popover` still fire from `.toggle()` regardless of the `trigger` option, since that option only gates Bootstrap's own auto-binding, not event dispatch. The static adapter, which has no competing click handler of its own, passes `trigger: "click"` and relies on Bootstrap's built-in binding instead.
42
42
 
43
43
  ## Static component
44
44
 
@@ -65,11 +65,11 @@ Use the global runtime methods: `thebase.mount()`, `thebase.mountAll()`, and `th
65
65
 
66
66
  ## Events
67
67
 
68
- Interactive components emit documented `baseui:*` events from their root element. Listen for Bootstrap's own `shown.bs.popover`/`hidden.bs.popover` on the trigger element to react to show/hide; BaseUI mirrors those into `b-att-state` (`open`/`closed`) and `aria-expanded` on the static trigger, and `this.env.popover.open`-equivalent reactive state on the pure Owl components.
68
+ Interactive components emit documented `baseui:*` events from their root element. Listen for Bootstrap's own `shown.bs.popover`/`hidden.bs.popover` on the trigger element to react to show/hide; the Base UI mirrors those into `b-att-state` (`open`/`closed`) and `aria-expanded` on the static trigger, and `this.env.popover.open`-equivalent reactive state on the Base components.
69
69
 
70
70
  ## CSS variables
71
71
 
72
- The component inherits BaseUI semantic tokens such as `--b-surface`, `--b-border`, `--b-primary`, and `--b-radius`. The popup itself is styled by Bootstrap's own bundled `.popover`/`.popover-arrow`/`.popover-body` CSS (loaded via `dist/baseui.min.css`), not BaseUI's own classes.
72
+ The component inherits the Base UI semantic tokens such as `--b-surface`, `--b-border`, `--b-primary`, and `--b-radius`. The popup itself is styled by Bootstrap's own bundled `.popover`/`.popover-arrow`/`.popover-body` CSS (loaded via `dist/baseui.min.css`), not the Base UI's own classes.
73
73
 
74
74
  ## Accessibility behavior
75
75
 
@@ -81,7 +81,7 @@ See `examples/index.html` for a working CDN-style page.
81
81
 
82
82
  ## Browser support
83
83
 
84
- BaseUI targets modern evergreen browsers that support ES modules, CSS variables, and Bootstrap 5.3.
84
+ The Base UI targets modern evergreen browsers that support ES modules, CSS variables, and Bootstrap 5.3.
85
85
 
86
86
  ## Test checklist
87
87
 
@@ -1,6 +1,6 @@
1
1
  # Progress
2
2
 
3
- ## Pure Owl component
3
+ ## Base component
4
4
 
5
5
  ```js
6
6
  import { Progress } from "@thebase/ui";
@@ -18,7 +18,7 @@ import { Progress } from "@thebase/ui";
18
18
  | `Progress` | `max` | `Number` | optional |
19
19
  | `Progress` | `className` | `String` | optional |
20
20
 
21
- See [Pure Owl Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
21
+ See [Base Components](/examples/blocks.html#/docs/guide/owl-components) for how to load `@base/owl` and `dist/baseui.templates.xml`.
22
22
 
23
23
  ## Static component
24
24