@appsbd/vue3-appsbd-ui 1.0.0 → 1.0.2

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 (69) hide show
  1. package/.ai/ai_ref_AbAvatar.md +9 -1
  2. package/.ai/ai_ref_AbBadge.md +6 -5
  3. package/.ai/ai_ref_AbButton.md +8 -9
  4. package/.ai/ai_ref_AbCard.md +70 -53
  5. package/.ai/ai_ref_AbCarousel.md +47 -47
  6. package/.ai/ai_ref_AbChart.md +87 -0
  7. package/.ai/ai_ref_AbConfirmPopover.md +59 -59
  8. package/.ai/ai_ref_AbDarkModeToggler.md +42 -42
  9. package/.ai/ai_ref_AbDateTimePicker.md +3 -0
  10. package/.ai/ai_ref_AbEasyModal.md +62 -62
  11. package/.ai/ai_ref_AbField.md +96 -93
  12. package/.ai/ai_ref_AbFileUploader.md +63 -63
  13. package/.ai/ai_ref_AbFilterPanel.md +71 -71
  14. package/.ai/ai_ref_AbFormCheck.md +75 -75
  15. package/.ai/ai_ref_AbImageRadioInput.md +63 -63
  16. package/.ai/ai_ref_AbInputField.md +74 -71
  17. package/.ai/ai_ref_AbInputTag.md +3 -0
  18. package/.ai/ai_ref_AbKbd.md +35 -35
  19. package/.ai/ai_ref_AbKbdGroup.md +33 -33
  20. package/.ai/ai_ref_AbModal.md +103 -103
  21. package/.ai/ai_ref_AbMultiSelect.md +4 -0
  22. package/.ai/ai_ref_AbNumberField.md +84 -84
  23. package/.ai/ai_ref_AbPopover.md +64 -64
  24. package/.ai/ai_ref_AbPricingCard.md +64 -64
  25. package/.ai/ai_ref_AbPricingContainer.md +49 -49
  26. package/.ai/ai_ref_AbPricingTable.md +72 -72
  27. package/.ai/ai_ref_AbProgressbar.md +44 -37
  28. package/.ai/ai_ref_AbScrollbar.md +48 -48
  29. package/.ai/ai_ref_AbSettingsForm.md +54 -54
  30. package/.ai/ai_ref_AbSideMenuItem.md +58 -58
  31. package/.ai/ai_ref_AbSidebar.md +70 -70
  32. package/.ai/ai_ref_AbSkeleton.md +41 -41
  33. package/.ai/ai_ref_AbSlider.md +71 -71
  34. package/.ai/ai_ref_AbTab.md +38 -38
  35. package/.ai/ai_ref_AbTable.md +59 -59
  36. package/.ai/ai_ref_AbTabs.md +47 -47
  37. package/.ai/ai_ref_AbToggle.md +65 -65
  38. package/.ai/ai_ref_AbTooltip.md +53 -53
  39. package/.ai/ai_ref_AbWizard.md +77 -77
  40. package/.ai/ai_ref_AbWizardStep.md +48 -48
  41. package/.ai/ai_ref_abEventBus.md +94 -0
  42. package/.ai/ai_ref_abRequestParam.md +55 -0
  43. package/.ai/ai_ref_abTranslate.md +33 -0
  44. package/.ai/ai_ref_abVeeRules.md +42 -0
  45. package/.ai/ai_ref_useAlert.md +63 -0
  46. package/.ai/ai_ref_useFileValidator.md +46 -0
  47. package/.ai/ai_ref_useResponsive.md +55 -0
  48. package/.ai/ai_ref_useTheme.md +39 -0
  49. package/.ai/ai_ref_useToast.md +42 -0
  50. package/AI_REFERENCE.md +68 -112
  51. package/design-system.md +403 -0
  52. package/dist/skins/black.css +1 -1
  53. package/dist/skins/cyan.css +1 -1
  54. package/dist/skins/default.css +1 -1
  55. package/dist/skins/gray.css +1 -1
  56. package/dist/skins/green.css +1 -1
  57. package/dist/skins/orange.css +1 -1
  58. package/dist/skins/pink.css +1 -1
  59. package/dist/skins/purple.css +1 -1
  60. package/dist/skins/red.css +1 -1
  61. package/dist/skins/red.scss +3 -3
  62. package/dist/skins/themes/_common_variable.scss +2 -0
  63. package/dist/skins/themes/_red.scss +6 -6
  64. package/dist/skins/violet.css +1 -1
  65. package/dist/style.css +1 -1
  66. package/dist/vue3-appsbd-ui.cjs.js +114 -41
  67. package/dist/vue3-appsbd-ui.es.js +27212 -4646
  68. package/package.json +10 -4
  69. package/readme.md +136 -136
@@ -1,70 +1,70 @@
1
- # AbSidebar — AI Reference
2
-
3
- Collapsible application sidebar. Hosts `AbSideMenuItem` children, supports a header/footer, optional search, and persists its collapse state to `localStorage`.
4
-
5
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <template>
13
- <ab-sidebar app-unique-id="my-app" enable-search>
14
- <template #header>
15
- <img src="/logo.svg" alt="Logo" />
16
- </template>
17
-
18
- <ab-side-menu-item :to="{ name: 'dashboard' }">
19
- <template #icon><i class="bi bi-speedometer2"></i></template>
20
- Dashboard
21
- </ab-side-menu-item>
22
-
23
- <ab-side-menu-item>
24
- <template #sectiontitle>Admin</template>
25
- </ab-side-menu-item>
26
-
27
- <ab-side-menu-item href="#">
28
- <template #icon><i class="bi bi-people"></i></template>
29
- Users
30
- <template #submenu>
31
- <ab-side-menu-item :to="{ name: 'users-list' }">All users</ab-side-menu-item>
32
- <ab-side-menu-item :to="{ name: 'users-roles' }">Roles</ab-side-menu-item>
33
- </template>
34
- </ab-side-menu-item>
35
-
36
- <template #footer>
37
- <ab-dark-mode-toggler />
38
- </template>
39
- </ab-sidebar>
40
- </template>
41
- ```
42
-
43
- ## Props
44
-
45
- | Name | Type | Default | Description |
46
- | --- | --- | --- | --- |
47
- | `appUniqueId` | `String` | `"apbd"` | Unique key used for the `localStorage` entry that stores collapse state. |
48
- | `hideSeperator` | `Boolean` | `false` | Hide dividers between sections. |
49
- | `mobileFullHeight` | `Boolean` | `false` | Force full-viewport height on mobile. |
50
- | `enableSearch` | `Boolean` | `false` | Show a search box that filters menu items. |
51
- | `searchTargetClass` | `String` | `"nav-item"` | CSS class of items that the search should match. |
52
-
53
- ## Events
54
-
55
- None.
56
-
57
- ## Slots
58
-
59
- | Name | Description |
60
- | --- | --- |
61
- | `header` | Sidebar header (logo area). |
62
- | `default` | Menu items (place `AbSideMenuItem` children here). |
63
- | `footer` | Sidebar footer (typically user avatar or theme toggle). |
64
- | `collapse-icon` | Override the collapse toggle icon. |
65
-
66
- ## Provides (for children)
67
-
68
- - `isCollapsed` — reactive collapse state.
69
- - `isMobileFullHeight` — reactive full-height state.
70
- - `layoutState` — layout state object (passed from parent if provided).
1
+ # AbSidebar — AI Reference
2
+
3
+ Collapsible application sidebar. Hosts `AbSideMenuItem` children, supports a header/footer, optional search, and persists its collapse state to `localStorage`.
4
+
5
+ ## Installation
6
+
7
+ Globally registered by the plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <template>
13
+ <ab-sidebar app-unique-id="my-app" enable-search>
14
+ <template #header>
15
+ <img src="/logo.svg" alt="Logo" />
16
+ </template>
17
+
18
+ <ab-side-menu-item :to="{ name: 'dashboard' }">
19
+ <template #icon><i class="bi bi-speedometer2"></i></template>
20
+ Dashboard
21
+ </ab-side-menu-item>
22
+
23
+ <ab-side-menu-item>
24
+ <template #sectiontitle>Admin</template>
25
+ </ab-side-menu-item>
26
+
27
+ <ab-side-menu-item href="#">
28
+ <template #icon><i class="bi bi-people"></i></template>
29
+ Users
30
+ <template #submenu>
31
+ <ab-side-menu-item :to="{ name: 'users-list' }">All users</ab-side-menu-item>
32
+ <ab-side-menu-item :to="{ name: 'users-roles' }">Roles</ab-side-menu-item>
33
+ </template>
34
+ </ab-side-menu-item>
35
+
36
+ <template #footer>
37
+ <ab-dark-mode-toggler />
38
+ </template>
39
+ </ab-sidebar>
40
+ </template>
41
+ ```
42
+
43
+ ## Props
44
+
45
+ | Name | Type | Default | Description |
46
+ | --- | --- | --- | --- |
47
+ | `appUniqueId` | `String` | `"apbd"` | Unique key used for the `localStorage` entry that stores collapse state. |
48
+ | `hideSeperator` | `Boolean` | `false` | Hide dividers between sections. |
49
+ | `mobileFullHeight` | `Boolean` | `false` | Force full-viewport height on mobile. |
50
+ | `enableSearch` | `Boolean` | `false` | Show a search box that filters menu items. |
51
+ | `searchTargetClass` | `String` | `"nav-item"` | CSS class of items that the search should match. |
52
+
53
+ ## Events
54
+
55
+ None.
56
+
57
+ ## Slots
58
+
59
+ | Name | Description |
60
+ | --- | --- |
61
+ | `header` | Sidebar header (logo area). |
62
+ | `default` | Menu items (place `AbSideMenuItem` children here). |
63
+ | `footer` | Sidebar footer (typically user avatar or theme toggle). |
64
+ | `collapse-icon` | Override the collapse toggle icon. |
65
+
66
+ ## Provides (for children)
67
+
68
+ - `isCollapsed` — reactive collapse state.
69
+ - `isMobileFullHeight` — reactive full-height state.
70
+ - `layoutState` — layout state object (passed from parent if provided).
@@ -1,41 +1,41 @@
1
- # AbSkeleton — AI Reference
2
-
3
- Pulsing placeholder for loading states. Forwards all `$attrs` to the root `<div>`, so size and shape are controlled through utility classes or inline styles.
4
-
5
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <template>
13
- <!-- Heading skeleton -->
14
- <ab-skeleton style="height: 24px; width: 60%;" />
15
-
16
- <!-- Card skeleton -->
17
- <ab-card>
18
- <template #body>
19
- <ab-skeleton style="height: 160px; border-radius: 8px;" />
20
- <ab-skeleton class="mt-3" style="height: 18px; width: 80%;" />
21
- <ab-skeleton class="mt-2" style="height: 18px; width: 60%;" />
22
- </template>
23
- </ab-card>
24
- </template>
25
- ```
26
-
27
- ## Props
28
-
29
- No declared props.
30
-
31
- ## Events
32
-
33
- None.
34
-
35
- ## Slots
36
-
37
- None.
38
-
39
- ## Notes
40
-
41
- Apply `width`, `height`, `border-radius`, etc. via `style` or a utility class.
1
+ # AbSkeleton — AI Reference
2
+
3
+ Pulsing placeholder for loading states. Forwards all `$attrs` to the root `<div>`, so size and shape are controlled through utility classes or inline styles.
4
+
5
+ ## Installation
6
+
7
+ Globally registered by the plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <template>
13
+ <!-- Heading skeleton -->
14
+ <ab-skeleton style="height: 24px; width: 60%;" />
15
+
16
+ <!-- Card skeleton -->
17
+ <ab-card>
18
+ <template #body>
19
+ <ab-skeleton style="height: 160px; border-radius: 8px;" />
20
+ <ab-skeleton class="mt-3" style="height: 18px; width: 80%;" />
21
+ <ab-skeleton class="mt-2" style="height: 18px; width: 60%;" />
22
+ </template>
23
+ </ab-card>
24
+ </template>
25
+ ```
26
+
27
+ ## Props
28
+
29
+ No declared props.
30
+
31
+ ## Events
32
+
33
+ None.
34
+
35
+ ## Slots
36
+
37
+ None.
38
+
39
+ ## Notes
40
+
41
+ Apply `width`, `height`, `border-radius`, etc. via `style` or a utility class.
@@ -1,71 +1,71 @@
1
- # AbSlider — AI Reference
2
-
3
- Single or range numeric slider with custom thumb rendering and size variants.
4
-
5
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <template>
13
- <!-- Single -->
14
- <ab-slider v-model="volume" :min="0" :max="100" label="Volume" show-labels />
15
-
16
- <!-- Range -->
17
- <ab-slider
18
- v-model="priceRange"
19
- :min="0"
20
- :max="5000"
21
- :step="50"
22
- range
23
- show-labels
24
- :format-label="v => '$' + v"
25
- />
26
-
27
- <!-- Custom thumb -->
28
- <ab-slider v-model="progress" show-labels>
29
- <template #thumb="{ value, type }">
30
- <div class="custom-thumb">{{ value }}</div>
31
- </template>
32
- </ab-slider>
33
- </template>
34
- ```
35
-
36
- ## Props
37
-
38
- | Name | Type | Default | Description |
39
- | --- | --- | --- | --- |
40
- | `modelValue` | `Number \| Array` | `null` | Single number, or `[min, max]` in range mode. |
41
- | `min` | `Number` | `0` | Minimum value. |
42
- | `max` | `Number` | `100` | Maximum value. |
43
- | `step` | `Number` | `1` | Increment step. |
44
- | `range` | `Boolean` | `false` | Enable range mode (two thumbs). |
45
- | `size` | `String` | `"md"` | `sm`, `md`, `lg`. |
46
- | `showLabels` | `Boolean` | `false` | Show value labels on thumbs. |
47
- | `disabled` | `Boolean` | `false` | Disable the slider. |
48
- | `label` | `String` | `""` | Field label. |
49
- | `containerClass` | `String` | `"mb-3"` | Wrapper class. |
50
- | `hints` | `String` | `""` | Helper text. |
51
- | `formatLabel` | `Function` | `v => Math.round(v) + "%"` | Formatter for thumb labels. |
52
-
53
- ## Events
54
-
55
- | Event | Payload | Description |
56
- | --- | --- | --- |
57
- | `update:modelValue` | `value` | v-model sync. |
58
-
59
- ## Slots
60
-
61
- | Name | Scope | Description |
62
- | --- | --- | --- |
63
- | `label` | — | Custom label. |
64
- | `prefix` | — | Prefix content (before the track). |
65
- | `postfix` | — | Postfix content (after the track). |
66
- | `thumb` | `{ value, type }` | Custom thumb rendering. `type` is `"min"`, `"max"`, or `"single"`. |
67
- | `hints` | — | Custom hints. |
68
-
69
- ## v-model
70
-
71
- Yes.
1
+ # AbSlider — AI Reference
2
+
3
+ Single or range numeric slider with custom thumb rendering and size variants.
4
+
5
+ ## Installation
6
+
7
+ Globally registered by the plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <template>
13
+ <!-- Single -->
14
+ <ab-slider v-model="volume" :min="0" :max="100" label="Volume" show-labels />
15
+
16
+ <!-- Range -->
17
+ <ab-slider
18
+ v-model="priceRange"
19
+ :min="0"
20
+ :max="5000"
21
+ :step="50"
22
+ range
23
+ show-labels
24
+ :format-label="v => '$' + v"
25
+ />
26
+
27
+ <!-- Custom thumb -->
28
+ <ab-slider v-model="progress" show-labels>
29
+ <template #thumb="{ value, type }">
30
+ <div class="custom-thumb">{{ value }}</div>
31
+ </template>
32
+ </ab-slider>
33
+ </template>
34
+ ```
35
+
36
+ ## Props
37
+
38
+ | Name | Type | Default | Description |
39
+ | --- | --- | --- | --- |
40
+ | `modelValue` | `Number \| Array` | `null` | Single number, or `[min, max]` in range mode. |
41
+ | `min` | `Number` | `0` | Minimum value. |
42
+ | `max` | `Number` | `100` | Maximum value. |
43
+ | `step` | `Number` | `1` | Increment step. |
44
+ | `range` | `Boolean` | `false` | Enable range mode (two thumbs). |
45
+ | `size` | `String` | `"md"` | `sm`, `md`, `lg`. |
46
+ | `showLabels` | `Boolean` | `false` | Show value labels on thumbs. |
47
+ | `disabled` | `Boolean` | `false` | Disable the slider. |
48
+ | `label` | `String` | `""` | Field label. |
49
+ | `containerClass` | `String` | `"mb-3"` | Wrapper class. |
50
+ | `hints` | `String` | `""` | Helper text. |
51
+ | `formatLabel` | `Function` | `v => Math.round(v) + "%"` | Formatter for thumb labels. |
52
+
53
+ ## Events
54
+
55
+ | Event | Payload | Description |
56
+ | --- | --- | --- |
57
+ | `update:modelValue` | `value` | v-model sync. |
58
+
59
+ ## Slots
60
+
61
+ | Name | Scope | Description |
62
+ | --- | --- | --- |
63
+ | `label` | — | Custom label. |
64
+ | `prefix` | — | Prefix content (before the track). |
65
+ | `postfix` | — | Postfix content (after the track). |
66
+ | `thumb` | `{ value, type }` | Custom thumb rendering. `type` is `"min"`, `"max"`, or `"single"`. |
67
+ | `hints` | — | Custom hints. |
68
+
69
+ ## v-model
70
+
71
+ Yes.
@@ -1,38 +1,38 @@
1
- # AbTab — AI Reference
2
-
3
- Single tab pane / link. Must be used inside an `AbTabs` parent.
4
-
5
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <ab-tabs>
13
- <ab-tab title="Profile" selected>
14
- <template #icon><i class="bi bi-person"></i></template>
15
- Profile content here.
16
- </ab-tab>
17
- <ab-tab title="Settings">Settings content here.</ab-tab>
18
- </ab-tabs>
19
- ```
20
-
21
- ## Props
22
-
23
- | Name | Type | Default | Description |
24
- | --- | --- | --- | --- |
25
- | `title` | `String` | **required** | Tab label text. |
26
- | `selected` | `Boolean` | `false` | Mark this tab as initially selected. |
27
- | `to` | `String \| Object` | `null` | Router-link target (only used when the parent `AbTabs` has `is-route-mode`). |
28
-
29
- ## Events
30
-
31
- None.
32
-
33
- ## Slots
34
-
35
- | Name | Description |
36
- | --- | --- |
37
- | `default` | Tab pane content. |
38
- | `icon` | Icon shown next to the tab title. |
1
+ # AbTab — AI Reference
2
+
3
+ Single tab pane / link. Must be used inside an `AbTabs` parent.
4
+
5
+ ## Installation
6
+
7
+ Globally registered by the plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <ab-tabs>
13
+ <ab-tab title="Profile" selected>
14
+ <template #icon><i class="bi bi-person"></i></template>
15
+ Profile content here.
16
+ </ab-tab>
17
+ <ab-tab title="Settings">Settings content here.</ab-tab>
18
+ </ab-tabs>
19
+ ```
20
+
21
+ ## Props
22
+
23
+ | Name | Type | Default | Description |
24
+ | --- | --- | --- | --- |
25
+ | `title` | `String` | **required** | Tab label text. |
26
+ | `selected` | `Boolean` | `false` | Mark this tab as initially selected. |
27
+ | `to` | `String \| Object` | `null` | Router-link target (only used when the parent `AbTabs` has `is-route-mode`). |
28
+
29
+ ## Events
30
+
31
+ None.
32
+
33
+ ## Slots
34
+
35
+ | Name | Description |
36
+ | --- | --- |
37
+ | `default` | Tab pane content. |
38
+ | `icon` | Icon shown next to the tab title. |
@@ -1,59 +1,59 @@
1
- # AbTable — AI Reference
2
-
3
- Data grid with column definitions, per-cell and per-header slot overrides, and an `empty` slot.
4
-
5
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <template>
13
- <ab-table
14
- :items="users"
15
- :fields="[
16
- { key: 'name', label: 'Name' },
17
- { key: 'email', label: 'Email' },
18
- { key: 'role', label: 'Role' },
19
- { key: 'actions', label: '' },
20
- ]"
21
- >
22
- <!-- Custom header -->
23
- <template #head(name)>Full Name</template>
24
-
25
- <!-- Custom cell -->
26
- <template #cell(role)="{ value }">
27
- <ab-badge class="bg-primary">{{ value }}</ab-badge>
28
- </template>
29
-
30
- <template #cell(actions)="{ item }">
31
- <ab-button class="btn-sm btn-outline-secondary" @click="edit(item)">Edit</ab-button>
32
- </template>
33
-
34
- <template #empty>No users yet.</template>
35
- </ab-table>
36
- </template>
37
- ```
38
-
39
- ## Props
40
-
41
- | Name | Type | Default | Description |
42
- | --- | --- | --- | --- |
43
- | `items` | `Array` | `[]` | Table row objects. |
44
- | `fields` | `Array` | `[]` | Column definitions — each string key or `{ key, label }`. |
45
- | `tableClass` | `String \| Array \| Object` | `""` | CSS class(es) applied to the `<table>`. |
46
-
47
- ## Events
48
-
49
- None.
50
-
51
- ## Slots
52
-
53
- | Name | Scope | Description |
54
- | --- | --- | --- |
55
- | `thead` | — | Override the entire table head. |
56
- | `tbody` | — | Override the entire table body. |
57
- | `head(fieldKey)` | — | Override header content for a given field. |
58
- | `cell(fieldKey)` | `{ value, item, index }` | Override cell content for a given field. |
59
- | `empty` | — | Message shown when `items` is empty. |
1
+ # AbTable — AI Reference
2
+
3
+ Data grid with column definitions, per-cell and per-header slot overrides, and an `empty` slot.
4
+
5
+ ## Installation
6
+
7
+ Globally registered by the plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <template>
13
+ <ab-table
14
+ :items="users"
15
+ :fields="[
16
+ { key: 'name', label: 'Name' },
17
+ { key: 'email', label: 'Email' },
18
+ { key: 'role', label: 'Role' },
19
+ { key: 'actions', label: '' },
20
+ ]"
21
+ >
22
+ <!-- Custom header -->
23
+ <template #head(name)>Full Name</template>
24
+
25
+ <!-- Custom cell -->
26
+ <template #cell(role)="{ value }">
27
+ <ab-badge class="bg-primary">{{ value }}</ab-badge>
28
+ </template>
29
+
30
+ <template #cell(actions)="{ item }">
31
+ <ab-button class="btn-sm btn-outline-secondary" @click="edit(item)">Edit</ab-button>
32
+ </template>
33
+
34
+ <template #empty>No users yet.</template>
35
+ </ab-table>
36
+ </template>
37
+ ```
38
+
39
+ ## Props
40
+
41
+ | Name | Type | Default | Description |
42
+ | --- | --- | --- | --- |
43
+ | `items` | `Array` | `[]` | Table row objects. |
44
+ | `fields` | `Array` | `[]` | Column definitions — each string key or `{ key, label }`. |
45
+ | `tableClass` | `String \| Array \| Object` | `""` | CSS class(es) applied to the `<table>`. |
46
+
47
+ ## Events
48
+
49
+ None.
50
+
51
+ ## Slots
52
+
53
+ | Name | Scope | Description |
54
+ | --- | --- | --- |
55
+ | `thead` | — | Override the entire table head. |
56
+ | `tbody` | — | Override the entire table body. |
57
+ | `head(fieldKey)` | — | Override header content for a given field. |
58
+ | `cell(fieldKey)` | `{ value, item, index }` | Override cell content for a given field. |
59
+ | `empty` | — | Message shown when `items` is empty. |
@@ -1,47 +1,47 @@
1
- # AbTabs — AI Reference
2
-
3
- Parent container for tabbed interfaces. Pair with `AbTab` children. Supports both "content-switching" mode (default) and "router-link" mode for navigation-driven tabs.
4
-
5
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <template>
13
- <!-- Content-switching tabs -->
14
- <ab-tabs nav-class="nav-pills">
15
- <ab-tab title="Overview" selected>Overview content</ab-tab>
16
- <ab-tab title="Billing">Billing content</ab-tab>
17
- <ab-tab title="Security">Security content</ab-tab>
18
- </ab-tabs>
19
-
20
- <!-- Router-link tabs -->
21
- <ab-tabs is-route-mode>
22
- <ab-tab title="Users" :to="{ name: 'users' }" />
23
- <ab-tab title="Teams" :to="{ name: 'teams' }" />
24
- </ab-tabs>
25
- </template>
26
- ```
27
-
28
- ## Props
29
-
30
- | Name | Type | Default | Description |
31
- | --- | --- | --- | --- |
32
- | `tabContainerClass` | `String` | — | Root wrapper class. |
33
- | `navContainerClass` | `String` | — | Wrapper around the nav list. |
34
- | `tabDetailsClass` | `String` | — | Wrapper around the tab content. |
35
- | `navClass` | `String` | `"nav-pills"` | Class on the nav list itself (e.g. `nav-tabs`, `nav-pills`). |
36
- | `tabClass` | `String` | `""` | Class on each individual tab link. |
37
- | `isRouteMode` | `Boolean` | `false` | When `true`, tab clicks perform router navigation. |
38
-
39
- ## Events
40
-
41
- None.
42
-
43
- ## Slots
44
-
45
- | Name | Description |
46
- | --- | --- |
47
- | `default` | Place `<ab-tab>` children here. |
1
+ # AbTabs — AI Reference
2
+
3
+ Parent container for tabbed interfaces. Pair with `AbTab` children. Supports both "content-switching" mode (default) and "router-link" mode for navigation-driven tabs.
4
+
5
+ ## Installation
6
+
7
+ Globally registered by the plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <template>
13
+ <!-- Content-switching tabs -->
14
+ <ab-tabs nav-class="nav-pills">
15
+ <ab-tab title="Overview" selected>Overview content</ab-tab>
16
+ <ab-tab title="Billing">Billing content</ab-tab>
17
+ <ab-tab title="Security">Security content</ab-tab>
18
+ </ab-tabs>
19
+
20
+ <!-- Router-link tabs -->
21
+ <ab-tabs is-route-mode>
22
+ <ab-tab title="Users" :to="{ name: 'users' }" />
23
+ <ab-tab title="Teams" :to="{ name: 'teams' }" />
24
+ </ab-tabs>
25
+ </template>
26
+ ```
27
+
28
+ ## Props
29
+
30
+ | Name | Type | Default | Description |
31
+ | --- | --- | --- | --- |
32
+ | `tabContainerClass` | `String` | — | Root wrapper class. |
33
+ | `navContainerClass` | `String` | — | Wrapper around the nav list. |
34
+ | `tabDetailsClass` | `String` | — | Wrapper around the tab content. |
35
+ | `navClass` | `String` | `"nav-pills"` | Class on the nav list itself (e.g. `nav-tabs`, `nav-pills`). |
36
+ | `tabClass` | `String` | `""` | Class on each individual tab link. |
37
+ | `isRouteMode` | `Boolean` | `false` | When `true`, tab clicks perform router navigation. |
38
+
39
+ ## Events
40
+
41
+ None.
42
+
43
+ ## Slots
44
+
45
+ | Name | Description |
46
+ | --- | --- |
47
+ | `default` | Place `<ab-tab>` children here. |