@appsbd/vue3-appsbd-ui 1.0.3 → 1.0.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 (100) hide show
  1. package/.ai/ai_ref_AbAvatar.md +41 -51
  2. package/.ai/ai_ref_AbBadge.md +36 -45
  3. package/.ai/ai_ref_AbButton.md +52 -70
  4. package/.ai/ai_ref_AbCard.md +51 -70
  5. package/.ai/ai_ref_AbCarousel.md +36 -47
  6. package/.ai/ai_ref_AbChart.md +46 -87
  7. package/.ai/ai_ref_AbColorPicker.md +42 -55
  8. package/.ai/ai_ref_AbConfirmPopover.md +54 -59
  9. package/.ai/ai_ref_AbCustomField.md +66 -74
  10. package/.ai/ai_ref_AbDarkModeToggler.md +33 -42
  11. package/.ai/ai_ref_AbDateTimePicker.md +74 -108
  12. package/.ai/ai_ref_AbEasyModal.md +56 -62
  13. package/.ai/ai_ref_AbField.md +88 -96
  14. package/.ai/ai_ref_AbFileUploader.md +47 -63
  15. package/.ai/ai_ref_AbFilterPanel.md +67 -71
  16. package/.ai/ai_ref_AbFormCheck.md +58 -75
  17. package/.ai/ai_ref_AbImageRadioInput.md +55 -63
  18. package/.ai/ai_ref_AbInputField.md +66 -74
  19. package/.ai/ai_ref_AbInputTag.md +56 -76
  20. package/.ai/ai_ref_AbKbd.md +23 -35
  21. package/.ai/ai_ref_AbKbdGroup.md +21 -33
  22. package/.ai/ai_ref_AbMainLayout.md +106 -0
  23. package/.ai/ai_ref_AbModal.md +98 -103
  24. package/.ai/ai_ref_AbMultiSelect.md +78 -112
  25. package/.ai/ai_ref_AbNumberField.md +59 -84
  26. package/.ai/ai_ref_AbPinInput.md +33 -45
  27. package/.ai/ai_ref_AbPopover.md +54 -64
  28. package/.ai/ai_ref_AbPricingCard.md +56 -64
  29. package/.ai/ai_ref_AbPricingContainer.md +41 -49
  30. package/.ai/ai_ref_AbPricingTable.md +56 -72
  31. package/.ai/ai_ref_AbProgressbar.md +34 -44
  32. package/.ai/ai_ref_AbScrollbar.md +38 -48
  33. package/.ai/ai_ref_AbSettingsForm.md +46 -54
  34. package/.ai/ai_ref_AbSideMenuItem.md +47 -58
  35. package/.ai/ai_ref_AbSidebar.md +62 -70
  36. package/.ai/ai_ref_AbSkeleton.md +23 -41
  37. package/.ai/ai_ref_AbSlider.md +52 -71
  38. package/.ai/ai_ref_AbTab.md +30 -38
  39. package/.ai/ai_ref_AbTable.md +49 -59
  40. package/.ai/ai_ref_AbTabs.md +37 -47
  41. package/.ai/ai_ref_AbToggle.md +46 -65
  42. package/.ai/ai_ref_AbTooltip.md +39 -53
  43. package/.ai/ai_ref_AbWizard.md +64 -77
  44. package/.ai/ai_ref_AbWizardStep.md +36 -48
  45. package/.ai/ai_ref_abEventBus.md +9 -37
  46. package/.ai/ai_ref_abRequestParam.md +2 -17
  47. package/.ai/ai_ref_abTranslate.md +30 -15
  48. package/.ai/ai_ref_abVeeRules.md +2 -11
  49. package/.ai/ai_ref_global_config.md +57 -66
  50. package/.ai/ai_ref_useAlert.md +7 -20
  51. package/.ai/ai_ref_useFileValidator.md +3 -18
  52. package/.ai/ai_ref_useResponsive.md +6 -20
  53. package/.ai/ai_ref_useTheme.md +4 -15
  54. package/.ai/ai_ref_useToast.md +5 -17
  55. package/AI_REF.md +114 -0
  56. package/AI_REFERENCE.md +87 -1157
  57. package/design-system.md +403 -403
  58. package/dist/skins/black.css +1 -1
  59. package/dist/skins/black.scss +3 -3
  60. package/dist/skins/cyan.css +1 -1
  61. package/dist/skins/cyan.scss +3 -3
  62. package/dist/skins/default.css +1 -1
  63. package/dist/skins/default.scss +5 -5
  64. package/dist/skins/gray.css +1 -1
  65. package/dist/skins/gray.scss +3 -3
  66. package/dist/skins/green.css +1 -1
  67. package/dist/skins/green.scss +5 -5
  68. package/dist/skins/orange.css +1 -1
  69. package/dist/skins/orange.scss +3 -3
  70. package/dist/skins/pink.css +1 -1
  71. package/dist/skins/pink.scss +3 -3
  72. package/dist/skins/purple.css +1 -1
  73. package/dist/skins/purple.scss +3 -3
  74. package/dist/skins/red.css +1 -1
  75. package/dist/skins/red.scss +3 -3
  76. package/dist/skins/themes/_black.scss +18 -6
  77. package/dist/skins/themes/_blue.scss +18 -43
  78. package/dist/skins/themes/_common_variable.scss +695 -590
  79. package/dist/skins/themes/_cyan.scss +18 -6
  80. package/dist/skins/themes/_gray.scss +18 -6
  81. package/dist/skins/themes/_green.scss +18 -6
  82. package/dist/skins/themes/_grid.scss +32 -27
  83. package/dist/skins/themes/_orange.scss +18 -6
  84. package/dist/skins/themes/_pink.scss +18 -6
  85. package/dist/skins/themes/_purple.scss +18 -6
  86. package/dist/skins/themes/_red.scss +18 -6
  87. package/dist/skins/themes/_violet.scss +18 -6
  88. package/dist/skins/violet.css +1 -1
  89. package/dist/skins/violet.scss +3 -3
  90. package/dist/style.css +1 -1
  91. package/dist/vue3-appsbd-ui.cjs.js +145 -125
  92. package/dist/vue3-appsbd-ui.es.js +27822 -16778
  93. package/package.json +72 -66
  94. package/readme.md +194 -136
  95. package/scripts/postinstall.js +55 -0
  96. package/scripts/setup.js +16 -0
  97. package/scripts/skill-groups.js +38 -0
  98. package/skills/commands/generate-module.md +76 -0
  99. package/skills/commands/settings-form.md +175 -0
  100. package/skills/commands/use-appsbd-ui.md +40 -0
@@ -1,41 +1,23 @@
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
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-skeleton style="height: 24px; width: 60%;" />
10
+
11
+ <ab-card>
12
+ <template #body>
13
+ <ab-skeleton style="height: 160px; border-radius: 8px;" />
14
+ <ab-skeleton class="mt-3" style="height: 18px; width: 80%;" />
15
+ <ab-skeleton class="mt-2" style="height: 18px; width: 60%;" />
16
+ </template>
17
+ </ab-card>
18
+ </template>
19
+ ```
20
+
21
+ ## Notes
22
+
23
+ Apply `width`, `height`, `border-radius`, etc. via `style` or a utility class.
@@ -1,71 +1,52 @@
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
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-slider v-model="volume" :min="0" :max="100" label="Volume" show-labels />
10
+
11
+ <ab-slider v-model="priceRange" :min="0" :max="5000" :step="50" range show-labels :format-label="v => '$' + v" />
12
+
13
+ <ab-slider v-model="progress" show-labels>
14
+ <template #thumb="{ value, type }">
15
+ <div class="custom-thumb">{{ value }}</div>
16
+ </template>
17
+ </ab-slider>
18
+ </template>
19
+ ```
20
+
21
+ ## Props
22
+
23
+ | Name | Type | Default | Description |
24
+ | --- | --- | --- | --- |
25
+ | `modelValue` | `Number \| Array` | `null` | Single number, or `[min, max]` in range mode. |
26
+ | `min` | `Number` | `0` | Minimum value. |
27
+ | `max` | `Number` | `100` | Maximum value. |
28
+ | `step` | `Number` | `1` | Increment step. |
29
+ | `range` | `Boolean` | `false` | Enable range mode (two thumbs). |
30
+ | `size` | `String` | `"md"` | `sm`, `md`, `lg`. |
31
+ | `showLabels` | `Boolean` | `false` | Show value labels on thumbs. |
32
+ | `disabled` | `Boolean` | `false` | Disable the slider. |
33
+ | `label` | `String` | `""` | Field label. |
34
+ | `containerClass` | `String` | `"mb-3"` | Wrapper class. |
35
+ | `hints` | `String` | `""` | Helper text. |
36
+ | `formatLabel` | `Function` | `v => Math.round(v) + "%"` | Formatter for thumb labels. |
37
+
38
+ ## Events
39
+
40
+ | Event | Payload | Description |
41
+ | --- | --- | --- |
42
+ | `update:modelValue` | `value` | v-model sync. |
43
+
44
+ ## Slots
45
+
46
+ | Name | Scope | Description |
47
+ | --- | --- | --- |
48
+ | `label` | | Custom label. |
49
+ | `prefix` | | Prefix content (before the track). |
50
+ | `postfix` | | Postfix content (after the track). |
51
+ | `thumb` | `{ value, type }` | Custom thumb rendering. `type` is `"min"`, `"max"`, or `"single"`. |
52
+ | `hints` | — | Custom hints. |
@@ -1,38 +1,30 @@
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
+ ## Usage
6
+
7
+ ```vue
8
+ <ab-tabs>
9
+ <ab-tab title="Profile" selected>
10
+ <template #icon><i class="bi bi-person"></i></template>
11
+ Profile content here.
12
+ </ab-tab>
13
+ <ab-tab title="Settings">Settings content here.</ab-tab>
14
+ </ab-tabs>
15
+ ```
16
+
17
+ ## Props
18
+
19
+ | Name | Type | Default | Description |
20
+ | --- | --- | --- | --- |
21
+ | `title` | `String` | **required** | Tab label text. |
22
+ | `selected` | `Boolean` | `false` | Mark this tab as initially selected. |
23
+ | `to` | `String \| Object` | `null` | Router-link target (only used when the parent `AbTabs` has `is-route-mode`). |
24
+
25
+ ## Slots
26
+
27
+ | Name | Description |
28
+ | --- | --- |
29
+ | `default` | Tab pane content. |
30
+ | `icon` | Icon shown next to the tab title. |
@@ -1,59 +1,49 @@
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
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-table
10
+ :items="users"
11
+ :fields="[
12
+ { key: 'name', label: 'Name' },
13
+ { key: 'email', label: 'Email' },
14
+ { key: 'role', label: 'Role' },
15
+ { key: 'actions', label: '' },
16
+ ]"
17
+ >
18
+ <template #head(name)>Full Name</template>
19
+
20
+ <template #cell(role)="{ value }">
21
+ <ab-badge class="bg-primary">{{ value }}</ab-badge>
22
+ </template>
23
+
24
+ <template #cell(actions)="{ item }">
25
+ <ab-button class="btn-sm btn-outline-secondary" @click="edit(item)">Edit</ab-button>
26
+ </template>
27
+
28
+ <template #empty>No users yet.</template>
29
+ </ab-table>
30
+ </template>
31
+ ```
32
+
33
+ ## Props
34
+
35
+ | Name | Type | Default | Description |
36
+ | --- | --- | --- | --- |
37
+ | `items` | `Array` | `[]` | Table row objects. |
38
+ | `fields` | `Array` | `[]` | Column definitions — each string key or `{ key, label }`. |
39
+ | `tableClass` | `String \| Array \| Object` | `""` | CSS class(es) applied to the `<table>`. |
40
+
41
+ ## Slots
42
+
43
+ | Name | Scope | Description |
44
+ | --- | --- | --- |
45
+ | `thead` | | Override the entire table head. |
46
+ | `tbody` | — | Override the entire table body. |
47
+ | `head(fieldKey)` | — | Override header content for a given field. |
48
+ | `cell(fieldKey)` | `{ value, item, index }` | Override cell content for a given field. |
49
+ | `empty` | — | Message shown when `items` is empty. |
@@ -1,47 +1,37 @@
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 content-switching mode (default) and router-link mode for navigation-driven tabs.
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-tabs nav-class="nav-pills">
10
+ <ab-tab title="Overview" selected>Overview content</ab-tab>
11
+ <ab-tab title="Billing">Billing content</ab-tab>
12
+ <ab-tab title="Security">Security content</ab-tab>
13
+ </ab-tabs>
14
+
15
+ <ab-tabs is-route-mode>
16
+ <ab-tab title="Users" :to="{ name: 'users' }" />
17
+ <ab-tab title="Teams" :to="{ name: 'teams' }" />
18
+ </ab-tabs>
19
+ </template>
20
+ ```
21
+
22
+ ## Props
23
+
24
+ | Name | Type | Default | Description |
25
+ | --- | --- | --- | --- |
26
+ | `tabContainerClass` | `String` | — | Root wrapper class. |
27
+ | `navContainerClass` | `String` | — | Wrapper around the nav list. |
28
+ | `tabDetailsClass` | `String` | — | Wrapper around the tab content. |
29
+ | `navClass` | `String` | `"nav-pills"` | Class on the nav list itself (e.g. `nav-tabs`, `nav-pills`). |
30
+ | `tabClass` | `String` | `""` | Class on each individual tab link. |
31
+ | `isRouteMode` | `Boolean` | `false` | When `true`, tab clicks perform router navigation. |
32
+
33
+ ## Slots
34
+
35
+ | Name | Description |
36
+ | --- | --- |
37
+ | `default` | Place `<ab-tab>` children here. |
@@ -1,65 +1,46 @@
1
- # AbToggle — AI Reference
2
-
3
- Accessible switch/toggle control. Supports title + description layout and custom `trueValue` / `falseValue` values (defaults to `"Y"` / `"N"`).
4
-
5
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <template>
13
- <ab-toggle
14
- v-model="settings.notifications"
15
- name="notifications"
16
- title="Email notifications"
17
- description="Receive weekly digest emails."
18
- />
19
-
20
- <!-- Boolean values -->
21
- <ab-toggle
22
- v-model="isActive"
23
- name="active"
24
- :true-value="true"
25
- :false-value="false"
26
- label="Active"
27
- />
28
- </template>
29
- ```
30
-
31
- ## Props
32
-
33
- | Name | Type | Default | Description |
34
- | --- | --- | --- | --- |
35
- | `modelValue` | `any` | | v-model binding. |
36
- | `label` | `String \| null` | `null` | Field label (above the toggle). |
37
- | `val` | `any` | `"N"` | Initial value when `modelValue` is empty. |
38
- | `name` | `String` | **required** | VeeValidate field name. |
39
- | `containerClass` | `String` | `"mb-3"` | Wrapper class. |
40
- | `size` | `String` | `"md"` | Toggle size. |
41
- | `trueValue` | `any` | `"Y"` | Value when checked. |
42
- | `falseValue` | `any` | `"N"` | Value when unchecked. |
43
- | `title` | `String \| null` | `null` | Title next to the toggle. |
44
- | `description` | `String \| null` | `null` | Description under the title. |
45
- | `hints` | `String \| null` | `null` | Helper text. |
46
-
47
- ## Events
48
-
49
- | Event | Payload | Description |
50
- | --- | --- | --- |
51
- | `update:modelValue` | `value` | v-model sync. |
52
-
53
- ## Slots
54
-
55
- | Name | Description |
56
- | --- | --- |
57
- | `label` | Custom label. |
58
- | `title` | Custom title. |
59
- | `description` | Custom description. |
60
- | `descriptionContainer` | Wraps the entire title + description block. |
61
- | `hints` | Custom hints. |
62
-
63
- ## v-model
64
-
65
- Yes.
1
+ # AbToggle — AI Reference
2
+
3
+ Accessible switch/toggle control. Supports title + description layout and custom `trueValue` / `falseValue` values (defaults to `"Y"` / `"N"`).
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-toggle v-model="settings.notifications" name="notifications" title="Email notifications" description="Receive weekly digest emails." />
10
+
11
+ <ab-toggle v-model="isActive" name="active" :true-value="true" :false-value="false" label="Active" />
12
+ </template>
13
+ ```
14
+
15
+ ## Props
16
+
17
+ | Name | Type | Default | Description |
18
+ | --- | --- | --- | --- |
19
+ | `modelValue` | `any` | — | v-model binding. |
20
+ | `label` | `String \| null` | `null` | Field label. |
21
+ | `variant` | `String` | `"inline"` | Layout variant (`"inline"`, `"inline-left"`, or `"column"`). |
22
+ | `val` | `any` | `"N"` | Initial value when `modelValue` is empty. |
23
+ | `name` | `String` | **required** | VeeValidate field name. |
24
+ | `containerClass` | `String` | `"mb-3"` | Wrapper class. |
25
+ | `size` | `String` | `"md"` | Toggle size. |
26
+ | `trueValue` | `any` | `"Y"` | Value when checked. |
27
+ | `falseValue` | `any` | `"N"` | Value when unchecked. |
28
+ | `title` | `String \| null` | `null` | Title next to the toggle. |
29
+ | `description` | `String \| null` | `null` | Description under the title. |
30
+ | `hints` | `String \| null` | `null` | Helper text. |
31
+
32
+ ## Events
33
+
34
+ | Event | Payload | Description |
35
+ | --- | --- | --- |
36
+ | `update:modelValue` | `value` | v-model sync. |
37
+
38
+ ## Slots
39
+
40
+ | Name | Description |
41
+ | --- | --- |
42
+ | `label` | Custom label. |
43
+ | `title` | Custom title. |
44
+ | `description` | Custom description. |
45
+ | `descriptionContainer` | Wraps the entire title + description block. |
46
+ | `hints` | Custom hints. |