@appsbd/vue3-appsbd-ui 1.0.4 → 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 (91) hide show
  1. package/.ai/ai_ref_AbAvatar.md +41 -41
  2. package/.ai/ai_ref_AbBadge.md +36 -36
  3. package/.ai/ai_ref_AbButton.md +52 -51
  4. package/.ai/ai_ref_AbCard.md +51 -51
  5. package/.ai/ai_ref_AbCarousel.md +36 -36
  6. package/.ai/ai_ref_AbChart.md +46 -46
  7. package/.ai/ai_ref_AbColorPicker.md +42 -42
  8. package/.ai/ai_ref_AbConfirmPopover.md +54 -54
  9. package/.ai/ai_ref_AbCustomField.md +66 -66
  10. package/.ai/ai_ref_AbDarkModeToggler.md +33 -33
  11. package/.ai/ai_ref_AbDateTimePicker.md +74 -74
  12. package/.ai/ai_ref_AbEasyModal.md +56 -56
  13. package/.ai/ai_ref_AbField.md +88 -88
  14. package/.ai/ai_ref_AbFileUploader.md +47 -47
  15. package/.ai/ai_ref_AbFilterPanel.md +67 -67
  16. package/.ai/ai_ref_AbFormCheck.md +58 -58
  17. package/.ai/ai_ref_AbImageRadioInput.md +55 -55
  18. package/.ai/ai_ref_AbInputField.md +66 -66
  19. package/.ai/ai_ref_AbInputTag.md +56 -56
  20. package/.ai/ai_ref_AbKbd.md +23 -23
  21. package/.ai/ai_ref_AbKbdGroup.md +21 -21
  22. package/.ai/ai_ref_AbMainLayout.md +106 -0
  23. package/.ai/ai_ref_AbMultiSelect.md +78 -78
  24. package/.ai/ai_ref_AbNumberField.md +59 -59
  25. package/.ai/ai_ref_AbPinInput.md +33 -33
  26. package/.ai/ai_ref_AbPopover.md +54 -54
  27. package/.ai/ai_ref_AbPricingCard.md +56 -56
  28. package/.ai/ai_ref_AbPricingContainer.md +41 -41
  29. package/.ai/ai_ref_AbPricingTable.md +56 -56
  30. package/.ai/ai_ref_AbProgressbar.md +34 -34
  31. package/.ai/ai_ref_AbScrollbar.md +38 -38
  32. package/.ai/ai_ref_AbSettingsForm.md +46 -46
  33. package/.ai/ai_ref_AbSideMenuItem.md +47 -47
  34. package/.ai/ai_ref_AbSidebar.md +62 -62
  35. package/.ai/ai_ref_AbSkeleton.md +23 -23
  36. package/.ai/ai_ref_AbSlider.md +52 -52
  37. package/.ai/ai_ref_AbTab.md +30 -30
  38. package/.ai/ai_ref_AbTable.md +49 -49
  39. package/.ai/ai_ref_AbTabs.md +37 -37
  40. package/.ai/ai_ref_AbToggle.md +46 -46
  41. package/.ai/ai_ref_AbTooltip.md +39 -39
  42. package/.ai/ai_ref_AbWizard.md +64 -64
  43. package/.ai/ai_ref_AbWizardStep.md +36 -36
  44. package/.ai/ai_ref_abEventBus.md +66 -66
  45. package/.ai/ai_ref_abRequestParam.md +40 -40
  46. package/.ai/ai_ref_abVeeRules.md +33 -33
  47. package/.ai/ai_ref_global_config.md +57 -56
  48. package/.ai/ai_ref_useAlert.md +50 -45
  49. package/.ai/ai_ref_useFileValidator.md +31 -31
  50. package/.ai/ai_ref_useResponsive.md +41 -41
  51. package/.ai/ai_ref_useTheme.md +28 -28
  52. package/.ai/ai_ref_useToast.md +30 -30
  53. package/AI_REFERENCE.md +87 -86
  54. package/design-system.md +403 -403
  55. package/dist/skins/black.css +1 -1
  56. package/dist/skins/black.scss +3 -3
  57. package/dist/skins/cyan.css +1 -1
  58. package/dist/skins/cyan.scss +3 -3
  59. package/dist/skins/default.css +1 -1
  60. package/dist/skins/default.scss +5 -5
  61. package/dist/skins/gray.css +1 -1
  62. package/dist/skins/gray.scss +3 -3
  63. package/dist/skins/green.css +1 -1
  64. package/dist/skins/green.scss +5 -5
  65. package/dist/skins/orange.css +1 -1
  66. package/dist/skins/orange.scss +3 -3
  67. package/dist/skins/pink.css +1 -1
  68. package/dist/skins/pink.scss +3 -3
  69. package/dist/skins/purple.css +1 -1
  70. package/dist/skins/purple.scss +3 -3
  71. package/dist/skins/red.css +1 -1
  72. package/dist/skins/red.scss +3 -3
  73. package/dist/skins/themes/_black.scss +18 -6
  74. package/dist/skins/themes/_blue.scss +18 -43
  75. package/dist/skins/themes/_common_variable.scss +695 -685
  76. package/dist/skins/themes/_cyan.scss +18 -6
  77. package/dist/skins/themes/_gray.scss +18 -7
  78. package/dist/skins/themes/_green.scss +18 -6
  79. package/dist/skins/themes/_grid.scss +32 -30
  80. package/dist/skins/themes/_orange.scss +18 -6
  81. package/dist/skins/themes/_pink.scss +18 -6
  82. package/dist/skins/themes/_purple.scss +18 -6
  83. package/dist/skins/themes/_red.scss +18 -6
  84. package/dist/skins/themes/_violet.scss +18 -6
  85. package/dist/skins/violet.css +1 -1
  86. package/dist/skins/violet.scss +3 -3
  87. package/dist/style.css +1 -1
  88. package/dist/vue3-appsbd-ui.cjs.js +130 -142
  89. package/dist/vue3-appsbd-ui.es.js +21758 -20241
  90. package/package.json +72 -72
  91. package/readme.md +194 -194
@@ -1,88 +1,88 @@
1
- # AbField — AI Reference
2
-
3
- Polymorphic field wrapper — renders text, textarea, select, multiselect, tag, checkbox, radio, toggle, or switch based on the `type` prop.
4
-
5
- ## Usage
6
-
7
- ```vue
8
- <template>
9
- <ab-field type="text" v-model="form.name" name="name" label="Name" rules="required" />
10
-
11
- <ab-field
12
- type="select"
13
- v-model="form.country"
14
- name="country"
15
- label="Country"
16
- :options="countries"
17
- label-key="title"
18
- value-key="val"
19
- searchable
20
- />
21
-
22
- <ab-field
23
- type="toggle"
24
- v-model="form.notifications"
25
- name="notifications"
26
- title="Enable notifications"
27
- description="Receive email updates"
28
- />
29
- </template>
30
- ```
31
-
32
- ## Props
33
-
34
- | Name | Type | Default | Description |
35
- | --- | --- | --- | --- |
36
- | `val` | `any` | `null` | Initial value (used when `modelValue` is empty). |
37
- | `label` | `String` | **required** | Field label. |
38
- | `name` | `String` | **required** | VeeValidate field name. |
39
- | `type` | `String` | `"text"` | `text`, `email`, `password`, `number`, `url`, `textarea`, `select`, `multiselect`, `tag`, `checkbox`, `radio`, `toggle`, `switch`. |
40
- | `prefix` | `String` | `""` | Prefix text/icon. |
41
- | `postfix` | `String` | `""` | Postfix text/icon. |
42
- | `modelValue` | `String \| Number \| Boolean \| Array \| Object` | `""` | Two-way-bound value. |
43
- | `isCodeInput` | `Boolean` | `false` | Applies monospace styling. |
44
- | `containerClass` | `String` | `""` | Wrapper class. |
45
- | `maxlength` | `String \| Number` | `""` | Native maxlength. |
46
- | `minlength` | `String \| Number` | `""` | Native minlength. |
47
- | `placeholder` | `String` | `""` | Input placeholder. |
48
- | `hints` | `String \| Array` | `""` | Helper text. |
49
- | `rules` | `String \| Array` | `""` | VeeValidate rules. |
50
- | `options` | `Array` | `[]` | Options for select / checkbox / radio. |
51
- | `labelKey` | `String` | `"title"` | Option label property. |
52
- | `valueKey` | `String` | `"val"` | Option value property. |
53
- | `max` | `Number` | `-1` | Max selections (multiselect/tag); `-1` = unlimited. |
54
- | `size` | `String` | `"md"` | Field size. |
55
- | `object` | `Boolean` | `false` | Return full objects instead of values (multiselect). |
56
- | `searchable` | `Boolean` | `false` | Enable search (select). |
57
- | `description` | `String` | `""` | Secondary description. |
58
- | `helptext` | `String` | `""` | Help text. |
59
- | `isInline` | `Boolean` | `false` | Inline layout (checkbox/radio). |
60
- | `trueValue` | `any` | `"Y"` | Toggle/switch on value. |
61
- | `falseValue` | `any` | `"N"` | Toggle/switch off value. |
62
- | `title` | `String \| null` | `null` | Toggle/switch title. |
63
- | `isLeftIconBorder` | `Boolean` | `false` | Border on left icon. |
64
- | `isRightIconBorder` | `Boolean` | `false` | Border on right icon. |
65
- | `isHideLabel` | `Boolean` | `false` | Hide the label visually. |
66
- | `iconPosition` | `String` | `"right"` | Position of the custom `#icon` slot (`"left"`, `"right"`). |
67
-
68
- ## Events
69
-
70
- | Event | Payload | Description |
71
- | --- | --- | --- |
72
- | `update:modelValue` | `value` | v-model sync. |
73
- | `clear` | `event` | Multiselect field cleared. |
74
- | `change` | `value` | Multiselect value changed. |
75
- | `select` | `value` | Multiselect option selected. |
76
-
77
- ## Slots
78
-
79
- | Name | Description |
80
- | --- | --- |
81
- | `label` | Custom label. |
82
- | `prefix` | Custom prefix. |
83
- | `icon` | Custom icon. |
84
- | `postfix` | Custom postfix. |
85
- | `description` | Custom description. |
86
- | `helptext` | Custom help text. |
87
- | `option` | Custom option rendering (select). |
88
- | `singlelabel` | Custom single-value label (select). |
1
+ # AbField — AI Reference
2
+
3
+ Polymorphic field wrapper — renders text, textarea, select, multiselect, tag, checkbox, radio, toggle, or switch based on the `type` prop.
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-field type="text" v-model="form.name" name="name" label="Name" rules="required" />
10
+
11
+ <ab-field
12
+ type="select"
13
+ v-model="form.country"
14
+ name="country"
15
+ label="Country"
16
+ :options="countries"
17
+ label-key="title"
18
+ value-key="val"
19
+ searchable
20
+ />
21
+
22
+ <ab-field
23
+ type="toggle"
24
+ v-model="form.notifications"
25
+ name="notifications"
26
+ title="Enable notifications"
27
+ description="Receive email updates"
28
+ />
29
+ </template>
30
+ ```
31
+
32
+ ## Props
33
+
34
+ | Name | Type | Default | Description |
35
+ | --- | --- | --- | --- |
36
+ | `val` | `any` | `null` | Initial value (used when `modelValue` is empty). |
37
+ | `label` | `String` | **required** | Field label. |
38
+ | `name` | `String` | **required** | VeeValidate field name. |
39
+ | `type` | `String` | `"text"` | `text`, `email`, `password`, `number`, `url`, `textarea`, `select`, `multiselect`, `tag`, `checkbox`, `radio`, `toggle`, `switch`. |
40
+ | `prefix` | `String` | `""` | Prefix text/icon. |
41
+ | `postfix` | `String` | `""` | Postfix text/icon. |
42
+ | `modelValue` | `String \| Number \| Boolean \| Array \| Object` | `""` | Two-way-bound value. |
43
+ | `isCodeInput` | `Boolean` | `false` | Applies monospace styling. |
44
+ | `containerClass` | `String` | `""` | Wrapper class. |
45
+ | `maxlength` | `String \| Number` | `""` | Native maxlength. |
46
+ | `minlength` | `String \| Number` | `""` | Native minlength. |
47
+ | `placeholder` | `String` | `""` | Input placeholder. |
48
+ | `hints` | `String \| Array` | `""` | Helper text. |
49
+ | `rules` | `String \| Array` | `""` | VeeValidate rules. |
50
+ | `options` | `Array` | `[]` | Options for select / checkbox / radio. |
51
+ | `labelKey` | `String` | `"title"` | Option label property. |
52
+ | `valueKey` | `String` | `"val"` | Option value property. |
53
+ | `max` | `Number` | `-1` | Max selections (multiselect/tag); `-1` = unlimited. |
54
+ | `size` | `String` | `"md"` | Field size. |
55
+ | `object` | `Boolean` | `false` | Return full objects instead of values (multiselect). |
56
+ | `searchable` | `Boolean` | `false` | Enable search (select). |
57
+ | `description` | `String` | `""` | Secondary description. |
58
+ | `helptext` | `String` | `""` | Help text. |
59
+ | `isInline` | `Boolean` | `false` | Inline layout (checkbox/radio). |
60
+ | `trueValue` | `any` | `"Y"` | Toggle/switch on value. |
61
+ | `falseValue` | `any` | `"N"` | Toggle/switch off value. |
62
+ | `title` | `String \| null` | `null` | Toggle/switch title. |
63
+ | `isLeftIconBorder` | `Boolean` | `false` | Border on left icon. |
64
+ | `isRightIconBorder` | `Boolean` | `false` | Border on right icon. |
65
+ | `isHideLabel` | `Boolean` | `false` | Hide the label visually. |
66
+ | `iconPosition` | `String` | `"right"` | Position of the custom `#icon` slot (`"left"`, `"right"`). |
67
+
68
+ ## Events
69
+
70
+ | Event | Payload | Description |
71
+ | --- | --- | --- |
72
+ | `update:modelValue` | `value` | v-model sync. |
73
+ | `clear` | `event` | Multiselect field cleared. |
74
+ | `change` | `value` | Multiselect value changed. |
75
+ | `select` | `value` | Multiselect option selected. |
76
+
77
+ ## Slots
78
+
79
+ | Name | Description |
80
+ | --- | --- |
81
+ | `label` | Custom label. |
82
+ | `prefix` | Custom prefix. |
83
+ | `icon` | Custom icon. |
84
+ | `postfix` | Custom postfix. |
85
+ | `description` | Custom description. |
86
+ | `helptext` | Custom help text. |
87
+ | `option` | Custom option rendering (select). |
88
+ | `singlelabel` | Custom single-value label (select). |
@@ -1,47 +1,47 @@
1
- # AbFileUploader — AI Reference
2
-
3
- File upload input with drag-and-drop, size validation, and preview. Can render a default uploader UI or accept a custom one via slots.
4
-
5
- ## Usage
6
-
7
- ```vue
8
- <template>
9
- <ab-file-uploader v-model="file" label="Upload avatar" :max-size="1.5" @on-select-files="handleFiles" />
10
-
11
- <ab-file-uploader v-model="file" :max-size="5">
12
- <template #dial>
13
- <div class="my-drop-zone">Drop files here</div>
14
- </template>
15
- </ab-file-uploader>
16
- </template>
17
-
18
- <script setup>
19
- import { ref } from 'vue';
20
- const file = ref(null);
21
- function handleFiles(files) { console.log('Selected files:', files); }
22
- </script>
23
- ```
24
-
25
- ## Props
26
-
27
- | Name | Type | Default | Description |
28
- | --- | --- | --- | --- |
29
- | `modelValue` | `File \| Array \| String` | `null` | Selected file (or URL string / array). |
30
- | `maxSize` | `Number` | `2.0` | Max file size in MB. |
31
- | `label` | `String` | `""` | Field label. |
32
- | `containerClass` | `String` | `""` | Wrapper class. |
33
-
34
- ## Events
35
-
36
- | Event | Payload | Description |
37
- | --- | --- | --- |
38
- | `update:modelValue` | `file` | v-model sync. |
39
- | `onSelectFiles` | `files` | All selected files after size validation. |
40
-
41
- ## Slots
42
-
43
- | Name | Description |
44
- | --- | --- |
45
- | `label` | Custom label. |
46
- | `dial` | Custom uploader UI (replaces the default design). |
47
- | `default` | Alternative custom UI slot. |
1
+ # AbFileUploader — AI Reference
2
+
3
+ File upload input with drag-and-drop, size validation, and preview. Can render a default uploader UI or accept a custom one via slots.
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-file-uploader v-model="file" label="Upload avatar" :max-size="1.5" @on-select-files="handleFiles" />
10
+
11
+ <ab-file-uploader v-model="file" :max-size="5">
12
+ <template #dial>
13
+ <div class="my-drop-zone">Drop files here</div>
14
+ </template>
15
+ </ab-file-uploader>
16
+ </template>
17
+
18
+ <script setup>
19
+ import { ref } from 'vue';
20
+ const file = ref(null);
21
+ function handleFiles(files) { console.log('Selected files:', files); }
22
+ </script>
23
+ ```
24
+
25
+ ## Props
26
+
27
+ | Name | Type | Default | Description |
28
+ | --- | --- | --- | --- |
29
+ | `modelValue` | `File \| Array \| String` | `null` | Selected file (or URL string / array). |
30
+ | `maxSize` | `Number` | `2.0` | Max file size in MB. |
31
+ | `label` | `String` | `""` | Field label. |
32
+ | `containerClass` | `String` | `""` | Wrapper class. |
33
+
34
+ ## Events
35
+
36
+ | Event | Payload | Description |
37
+ | --- | --- | --- |
38
+ | `update:modelValue` | `file` | v-model sync. |
39
+ | `onSelectFiles` | `files` | All selected files after size validation. |
40
+
41
+ ## Slots
42
+
43
+ | Name | Description |
44
+ | --- | --- |
45
+ | `label` | Custom label. |
46
+ | `dial` | Custom uploader UI (replaces the default design). |
47
+ | `default` | Alternative custom UI slot. |
@@ -1,67 +1,67 @@
1
- # AbFilterPanel — AI Reference
2
-
3
- Advanced filter panel for list and table views. Supports quick/advance modes, single-field search, date ranges, and an optional QR/barcode scan button.
4
-
5
- ## Usage
6
-
7
- ```vue
8
- <template>
9
- <ab-filter-panel
10
- :filter-options="filterOptions"
11
- is-advance
12
- is-searchable
13
- size="sm"
14
- @search-filter="handleSearch"
15
- @reset="handleReset"
16
- />
17
- </template>
18
-
19
- <script setup>
20
- const filterOptions = [
21
- { propName: 'name', label: 'Name', type: 'text' },
22
- { propName: 'status', label: 'Status', type: 'select', options: [...] },
23
- { propName: 'createdAt', label: 'Created', type: 'daterange' },
24
- ];
25
-
26
- function handleSearch(data) {
27
- // data: [{ propName, operators, value }, ...]
28
- }
29
- </script>
30
- ```
31
-
32
- ## Props
33
-
34
- | Name | Type | Default | Description |
35
- | --- | --- | --- | --- |
36
- | `isAdvance` | `Boolean` | `false` | Show all filters in an expanded layout. |
37
- | `isQuickAdvance` | `Boolean` | `false` | Quick advance mode. |
38
- | `isSingle` | `Boolean` | `false` | Single-field search mode. |
39
- | `isAllowed` | `Boolean` | `false` | Permission flag consumed by the template. |
40
- | `canScan` | `Boolean` | `false` | Show a QR / barcode scan button. |
41
- | `filterOptions` | `Array` | `[]` | Filter field definitions. |
42
- | `scanProps` | `String` | `""` | Property name to apply scan result to. |
43
- | `showScanFld` | `Boolean` | `false` | Force-show the scan field. |
44
- | `showDrGroupText` | `Boolean` | `true` | Show date-range group label. |
45
- | `dateFormat` | `String` | `"MMM DD,YYYY"` | Date display format. |
46
- | `isSearchable` | `Boolean` | `false` | Allow searching within option lists. |
47
- | `isMaxDate` | `Boolean` | `true` | Limit date pickers to today as max. |
48
- | `size` | `String` | `"xs"` | Control size. |
49
- | `advanceSearchInputContainerClass` | `String` | `"col-6"` | Grid column class for inputs in advance mode. |
50
- | `isQuickAdvanceAutoSearch` | `Boolean` | `false` | Fire search automatically on field change (quick advance). |
51
-
52
- ## Events
53
-
54
- | Event | Payload | Description |
55
- | --- | --- | --- |
56
- | `searchFilter` | `Array<{ propName, operators, value }>` | User triggered a search. |
57
- | `reset` | — | Filter reset clicked. |
58
- | `ChangeSearchMode` | `showScan: Boolean` | Toggled between search and scan modes. |
59
-
60
- ## Slots
61
-
62
- | Name | Description |
63
- | --- | --- |
64
- | `prefix` | Filter prefix. |
65
- | `postfix` | Filter postfix. |
66
- | `icon` | Filter icon. |
67
- | `hints` | Helper text. |
1
+ # AbFilterPanel — AI Reference
2
+
3
+ Advanced filter panel for list and table views. Supports quick/advance modes, single-field search, date ranges, and an optional QR/barcode scan button.
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-filter-panel
10
+ :filter-options="filterOptions"
11
+ is-advance
12
+ is-searchable
13
+ size="sm"
14
+ @search-filter="handleSearch"
15
+ @reset="handleReset"
16
+ />
17
+ </template>
18
+
19
+ <script setup>
20
+ const filterOptions = [
21
+ { propName: 'name', label: 'Name', type: 'text' },
22
+ { propName: 'status', label: 'Status', type: 'select', options: [...] },
23
+ { propName: 'createdAt', label: 'Created', type: 'daterange' },
24
+ ];
25
+
26
+ function handleSearch(data) {
27
+ // data: [{ propName, operators, value }, ...]
28
+ }
29
+ </script>
30
+ ```
31
+
32
+ ## Props
33
+
34
+ | Name | Type | Default | Description |
35
+ | --- | --- | --- | --- |
36
+ | `isAdvance` | `Boolean` | `false` | Show all filters in an expanded layout. |
37
+ | `isQuickAdvance` | `Boolean` | `false` | Quick advance mode. |
38
+ | `isSingle` | `Boolean` | `false` | Single-field search mode. |
39
+ | `isAllowed` | `Boolean` | `false` | Permission flag consumed by the template. |
40
+ | `canScan` | `Boolean` | `false` | Show a QR / barcode scan button. |
41
+ | `filterOptions` | `Array` | `[]` | Filter field definitions. |
42
+ | `scanProps` | `String` | `""` | Property name to apply scan result to. |
43
+ | `showScanFld` | `Boolean` | `false` | Force-show the scan field. |
44
+ | `showDrGroupText` | `Boolean` | `true` | Show date-range group label. |
45
+ | `dateFormat` | `String` | `"MMM DD,YYYY"` | Date display format. |
46
+ | `isSearchable` | `Boolean` | `false` | Allow searching within option lists. |
47
+ | `isMaxDate` | `Boolean` | `true` | Limit date pickers to today as max. |
48
+ | `size` | `String` | `"xs"` | Control size. |
49
+ | `advanceSearchInputContainerClass` | `String` | `"col-6"` | Grid column class for inputs in advance mode. |
50
+ | `isQuickAdvanceAutoSearch` | `Boolean` | `false` | Fire search automatically on field change (quick advance). |
51
+
52
+ ## Events
53
+
54
+ | Event | Payload | Description |
55
+ | --- | --- | --- |
56
+ | `searchFilter` | `Array<{ propName, operators, value }>` | User triggered a search. |
57
+ | `reset` | — | Filter reset clicked. |
58
+ | `ChangeSearchMode` | `showScan: Boolean` | Toggled between search and scan modes. |
59
+
60
+ ## Slots
61
+
62
+ | Name | Description |
63
+ | --- | --- |
64
+ | `prefix` | Filter prefix. |
65
+ | `postfix` | Filter postfix. |
66
+ | `icon` | Filter icon. |
67
+ | `hints` | Helper text. |
@@ -1,58 +1,58 @@
1
- # AbFormCheck / AbRadioInput — AI Reference
2
-
3
- Checkbox or radio group with card, segmented, and pill visual variants. `AbRadioInput` is an alias export of `AbFormCheck`.
4
-
5
- ## Usage
6
-
7
- ```vue
8
- <template>
9
- <ab-form-check
10
- v-model="selected"
11
- name="features"
12
- :options="[
13
- { val: 'a', title: 'Email reports' },
14
- { val: 'b', title: 'Slack notifications' },
15
- ]"
16
- label="Enable"
17
- />
18
-
19
- <ab-form-check v-model="plan" type="radio" name="plan" variant="card" :options="plans" />
20
- </template>
21
- ```
22
-
23
- ## Props
24
-
25
- | Name | Type | Default | Description |
26
- | --- | --- | --- | --- |
27
- | `modelValue` | `any` | — | v-model binding (array for checkboxes, single value for radio). |
28
- | `label` | `String \| null` | `null` | Group label. |
29
- | `rules` | `String` | `""` | VeeValidate rules. |
30
- | `val` | `any` | `null` | Initial value. |
31
- | `type` | `String` | `"checkbox"` | `"checkbox"` or `"radio"`. |
32
- | `isInline` | `Boolean` | `false` | Render options inline. |
33
- | `options` | `Array` | `[]` | Each: `{ val, title, description?, icon?, img_src?, iconComponent?, disable? }`. |
34
- | `name` | `String` | **required** | Field name. |
35
- | `limit` | `Number` | `0` | Max selections (0 = unlimited). |
36
- | `containerClass` | `String` | `"mb-3"` | Wrapper class. |
37
- | `size` | `String` | `"md"` | Control size. |
38
- | `iconSize` | `String` | `"24px"` | Icon size (when option has an icon). |
39
- | `iconGap` | `String` | `"10px"` | Gap between icon and label. |
40
- | `variant` | `String` | `"default"` | `default`, `card`, `segmented`, `pill`. |
41
-
42
- ## Events
43
-
44
- | Event | Payload | Description |
45
- | --- | --- | --- |
46
- | `update:modelValue` | `value` | v-model sync. |
47
-
48
- ## Slots
49
-
50
- | Name | Description |
51
- | --- | --- |
52
- | `label` | Group label. |
53
- | `description` | Group description. |
54
- | `help-text` | Helper text. |
55
- | `input-img-{option.title}` | Per-option image slot. |
56
- | `input-icon-{option.title}` | Per-option icon component slot. |
57
- | `label-{option.title}` | Per-option label slot. |
58
- | `description-{option.title}` | Per-option description slot. |
1
+ # AbFormCheck / AbRadioInput — AI Reference
2
+
3
+ Checkbox or radio group with card, segmented, and pill visual variants. `AbRadioInput` is an alias export of `AbFormCheck`.
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-form-check
10
+ v-model="selected"
11
+ name="features"
12
+ :options="[
13
+ { val: 'a', title: 'Email reports' },
14
+ { val: 'b', title: 'Slack notifications' },
15
+ ]"
16
+ label="Enable"
17
+ />
18
+
19
+ <ab-form-check v-model="plan" type="radio" name="plan" variant="card" :options="plans" />
20
+ </template>
21
+ ```
22
+
23
+ ## Props
24
+
25
+ | Name | Type | Default | Description |
26
+ | --- | --- | --- | --- |
27
+ | `modelValue` | `any` | — | v-model binding (array for checkboxes, single value for radio). |
28
+ | `label` | `String \| null` | `null` | Group label. |
29
+ | `rules` | `String` | `""` | VeeValidate rules. |
30
+ | `val` | `any` | `null` | Initial value. |
31
+ | `type` | `String` | `"checkbox"` | `"checkbox"` or `"radio"`. |
32
+ | `isInline` | `Boolean` | `false` | Render options inline. |
33
+ | `options` | `Array` | `[]` | Each: `{ val, title, description?, icon?, img_src?, iconComponent?, disable? }`. |
34
+ | `name` | `String` | **required** | Field name. |
35
+ | `limit` | `Number` | `0` | Max selections (0 = unlimited). |
36
+ | `containerClass` | `String` | `"mb-3"` | Wrapper class. |
37
+ | `size` | `String` | `"md"` | Control size. |
38
+ | `iconSize` | `String` | `"24px"` | Icon size (when option has an icon). |
39
+ | `iconGap` | `String` | `"10px"` | Gap between icon and label. |
40
+ | `variant` | `String` | `"default"` | `default`, `card`, `segmented`, `pill`. |
41
+
42
+ ## Events
43
+
44
+ | Event | Payload | Description |
45
+ | --- | --- | --- |
46
+ | `update:modelValue` | `value` | v-model sync. |
47
+
48
+ ## Slots
49
+
50
+ | Name | Description |
51
+ | --- | --- |
52
+ | `label` | Group label. |
53
+ | `description` | Group description. |
54
+ | `help-text` | Helper text. |
55
+ | `input-img-{option.title}` | Per-option image slot. |
56
+ | `input-icon-{option.title}` | Per-option icon component slot. |
57
+ | `label-{option.title}` | Per-option label slot. |
58
+ | `description-{option.title}` | Per-option description slot. |
@@ -1,55 +1,55 @@
1
- # AbImageRadioInput — AI Reference
2
-
3
- Radio-group variant that renders visual image/icon tiles for each option. Useful for theme pickers, layout pickers, and other visual-first choices.
4
-
5
- ## Usage
6
-
7
- ```vue
8
- <template>
9
- <ab-image-radio-input
10
- v-model="theme"
11
- :options="[
12
- { val: 'light', label: 'Light', img_src: '/theme-light.png' },
13
- { val: 'dark', label: 'Dark', img_src: '/theme-dark.png' },
14
- { val: 'system', label: 'System', icon: 'bi bi-laptop' },
15
- ]"
16
- />
17
- </template>
18
- ```
19
-
20
- ## Props
21
-
22
- | Name | Type | Default | Description |
23
- | --- | --- | --- | --- |
24
- | `modelValue` | `any` | — | v-model binding. |
25
- | `width` | `String` | `"auto"` | Option width. |
26
- | `height` | `String` | `"auto"` | Option height. |
27
- | `maxWidth` | `String` | `"inherit"` | Max width. |
28
- | `maxImgWidth` | `String` | `"50%"` | Image max width. |
29
- | `borderRadius` | `String` | `"5px"` | Option border radius. |
30
- | `margin` | `String` | `"0 15px 15px 0"` | Option margin. |
31
- | `padding` | `String` | `"10px"` | Option padding. |
32
- | `selectorTop` | `String` | `"5px"` | Position of the checkmark indicator (top). |
33
- | `selectorLeft` | `String` | `"5px"` | Position of the checkmark indicator (left). |
34
- | `selectorColor` | `String` | `""` | Checkmark color. |
35
- | `iconSize` | `String` | `"inherit"` | Option icon size. |
36
- | `options` | `Array` | `[]` | Option objects — see shape below. |
37
- | `isInline` | `Boolean` | `false` | Inline (row) layout. |
38
- | `optionClass` | `String` | `""` | Class for each option wrapper. |
39
- | `labelBorder` | `String` | `"1px solid transparent"` | Option border. |
40
-
41
- **Option shape**: `{ val, label?, img_src?, icon?, iconComponent?, icon_ctnr_class?, class? }`
42
-
43
- ## Events
44
-
45
- | Event | Payload | Description |
46
- | --- | --- | --- |
47
- | `update:modelValue` | `value` | v-model sync. |
48
-
49
- ## Slots
50
-
51
- | Name | Scope | Description |
52
- | --- | --- | --- |
53
- | `icon_image` | `option` | Custom image/icon for each option. |
54
- | `label` | `option` | Custom label rendering. |
55
- | `label-{val}` | — | Custom label for a specific option by `val`. |
1
+ # AbImageRadioInput — AI Reference
2
+
3
+ Radio-group variant that renders visual image/icon tiles for each option. Useful for theme pickers, layout pickers, and other visual-first choices.
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-image-radio-input
10
+ v-model="theme"
11
+ :options="[
12
+ { val: 'light', label: 'Light', img_src: '/theme-light.png' },
13
+ { val: 'dark', label: 'Dark', img_src: '/theme-dark.png' },
14
+ { val: 'system', label: 'System', icon: 'bi bi-laptop' },
15
+ ]"
16
+ />
17
+ </template>
18
+ ```
19
+
20
+ ## Props
21
+
22
+ | Name | Type | Default | Description |
23
+ | --- | --- | --- | --- |
24
+ | `modelValue` | `any` | — | v-model binding. |
25
+ | `width` | `String` | `"auto"` | Option width. |
26
+ | `height` | `String` | `"auto"` | Option height. |
27
+ | `maxWidth` | `String` | `"inherit"` | Max width. |
28
+ | `maxImgWidth` | `String` | `"50%"` | Image max width. |
29
+ | `borderRadius` | `String` | `"5px"` | Option border radius. |
30
+ | `margin` | `String` | `"0 15px 15px 0"` | Option margin. |
31
+ | `padding` | `String` | `"10px"` | Option padding. |
32
+ | `selectorTop` | `String` | `"5px"` | Position of the checkmark indicator (top). |
33
+ | `selectorLeft` | `String` | `"5px"` | Position of the checkmark indicator (left). |
34
+ | `selectorColor` | `String` | `""` | Checkmark color. |
35
+ | `iconSize` | `String` | `"inherit"` | Option icon size. |
36
+ | `options` | `Array` | `[]` | Option objects — see shape below. |
37
+ | `isInline` | `Boolean` | `false` | Inline (row) layout. |
38
+ | `optionClass` | `String` | `""` | Class for each option wrapper. |
39
+ | `labelBorder` | `String` | `"1px solid transparent"` | Option border. |
40
+
41
+ **Option shape**: `{ val, label?, img_src?, icon?, iconComponent?, icon_ctnr_class?, class? }`
42
+
43
+ ## Events
44
+
45
+ | Event | Payload | Description |
46
+ | --- | --- | --- |
47
+ | `update:modelValue` | `value` | v-model sync. |
48
+
49
+ ## Slots
50
+
51
+ | Name | Scope | Description |
52
+ | --- | --- | --- |
53
+ | `icon_image` | `option` | Custom image/icon for each option. |
54
+ | `label` | `option` | Custom label rendering. |
55
+ | `label-{val}` | — | Custom label for a specific option by `val`. |