@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.
- package/.ai/ai_ref_AbAvatar.md +41 -51
- package/.ai/ai_ref_AbBadge.md +36 -45
- package/.ai/ai_ref_AbButton.md +52 -70
- package/.ai/ai_ref_AbCard.md +51 -70
- package/.ai/ai_ref_AbCarousel.md +36 -47
- package/.ai/ai_ref_AbChart.md +46 -87
- package/.ai/ai_ref_AbColorPicker.md +42 -55
- package/.ai/ai_ref_AbConfirmPopover.md +54 -59
- package/.ai/ai_ref_AbCustomField.md +66 -74
- package/.ai/ai_ref_AbDarkModeToggler.md +33 -42
- package/.ai/ai_ref_AbDateTimePicker.md +74 -108
- package/.ai/ai_ref_AbEasyModal.md +56 -62
- package/.ai/ai_ref_AbField.md +88 -96
- package/.ai/ai_ref_AbFileUploader.md +47 -63
- package/.ai/ai_ref_AbFilterPanel.md +67 -71
- package/.ai/ai_ref_AbFormCheck.md +58 -75
- package/.ai/ai_ref_AbImageRadioInput.md +55 -63
- package/.ai/ai_ref_AbInputField.md +66 -74
- package/.ai/ai_ref_AbInputTag.md +56 -76
- package/.ai/ai_ref_AbKbd.md +23 -35
- package/.ai/ai_ref_AbKbdGroup.md +21 -33
- package/.ai/ai_ref_AbMainLayout.md +106 -0
- package/.ai/ai_ref_AbModal.md +98 -103
- package/.ai/ai_ref_AbMultiSelect.md +78 -112
- package/.ai/ai_ref_AbNumberField.md +59 -84
- package/.ai/ai_ref_AbPinInput.md +33 -45
- package/.ai/ai_ref_AbPopover.md +54 -64
- package/.ai/ai_ref_AbPricingCard.md +56 -64
- package/.ai/ai_ref_AbPricingContainer.md +41 -49
- package/.ai/ai_ref_AbPricingTable.md +56 -72
- package/.ai/ai_ref_AbProgressbar.md +34 -44
- package/.ai/ai_ref_AbScrollbar.md +38 -48
- package/.ai/ai_ref_AbSettingsForm.md +46 -54
- package/.ai/ai_ref_AbSideMenuItem.md +47 -58
- package/.ai/ai_ref_AbSidebar.md +62 -70
- package/.ai/ai_ref_AbSkeleton.md +23 -41
- package/.ai/ai_ref_AbSlider.md +52 -71
- package/.ai/ai_ref_AbTab.md +30 -38
- package/.ai/ai_ref_AbTable.md +49 -59
- package/.ai/ai_ref_AbTabs.md +37 -47
- package/.ai/ai_ref_AbToggle.md +46 -65
- package/.ai/ai_ref_AbTooltip.md +39 -53
- package/.ai/ai_ref_AbWizard.md +64 -77
- package/.ai/ai_ref_AbWizardStep.md +36 -48
- package/.ai/ai_ref_abEventBus.md +9 -37
- package/.ai/ai_ref_abRequestParam.md +2 -17
- package/.ai/ai_ref_abTranslate.md +30 -15
- package/.ai/ai_ref_abVeeRules.md +2 -11
- package/.ai/ai_ref_global_config.md +57 -66
- package/.ai/ai_ref_useAlert.md +7 -20
- package/.ai/ai_ref_useFileValidator.md +3 -18
- package/.ai/ai_ref_useResponsive.md +6 -20
- package/.ai/ai_ref_useTheme.md +4 -15
- package/.ai/ai_ref_useToast.md +5 -17
- package/AI_REF.md +114 -0
- package/AI_REFERENCE.md +87 -1157
- package/design-system.md +403 -403
- package/dist/skins/black.css +1 -1
- package/dist/skins/black.scss +3 -3
- package/dist/skins/cyan.css +1 -1
- package/dist/skins/cyan.scss +3 -3
- package/dist/skins/default.css +1 -1
- package/dist/skins/default.scss +5 -5
- package/dist/skins/gray.css +1 -1
- package/dist/skins/gray.scss +3 -3
- package/dist/skins/green.css +1 -1
- package/dist/skins/green.scss +5 -5
- package/dist/skins/orange.css +1 -1
- package/dist/skins/orange.scss +3 -3
- package/dist/skins/pink.css +1 -1
- package/dist/skins/pink.scss +3 -3
- package/dist/skins/purple.css +1 -1
- package/dist/skins/purple.scss +3 -3
- package/dist/skins/red.css +1 -1
- package/dist/skins/red.scss +3 -3
- package/dist/skins/themes/_black.scss +18 -6
- package/dist/skins/themes/_blue.scss +18 -43
- package/dist/skins/themes/_common_variable.scss +695 -590
- package/dist/skins/themes/_cyan.scss +18 -6
- package/dist/skins/themes/_gray.scss +18 -6
- package/dist/skins/themes/_green.scss +18 -6
- package/dist/skins/themes/_grid.scss +32 -27
- package/dist/skins/themes/_orange.scss +18 -6
- package/dist/skins/themes/_pink.scss +18 -6
- package/dist/skins/themes/_purple.scss +18 -6
- package/dist/skins/themes/_red.scss +18 -6
- package/dist/skins/themes/_violet.scss +18 -6
- package/dist/skins/violet.css +1 -1
- package/dist/skins/violet.scss +3 -3
- package/dist/style.css +1 -1
- package/dist/vue3-appsbd-ui.cjs.js +145 -125
- package/dist/vue3-appsbd-ui.es.js +27822 -16778
- package/package.json +72 -66
- package/readme.md +194 -136
- package/scripts/postinstall.js +55 -0
- package/scripts/setup.js +16 -0
- package/scripts/skill-groups.js +38 -0
- package/skills/commands/generate-module.md +76 -0
- package/skills/commands/settings-form.md +175 -0
- package/skills/commands/use-appsbd-ui.md +40 -0
|
@@ -1,84 +1,59 @@
|
|
|
1
|
-
# AbNumberField — AI Reference
|
|
2
|
-
|
|
3
|
-
Numeric input with
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
49
|
-
| `
|
|
50
|
-
| `
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
| `
|
|
60
|
-
| `isLeftIconBorder` | `Boolean` | `false` | Render border between the prefix icon and the input. |
|
|
61
|
-
| `isRightIconBorder` | `Boolean` | `false` | Render border between the postfix icon and the input. |
|
|
62
|
-
|
|
63
|
-
## Events
|
|
64
|
-
|
|
65
|
-
| Event | Payload | Description |
|
|
66
|
-
| --- | --- | --- |
|
|
67
|
-
| `update:modelValue` | `number \| null` | v-model sync. |
|
|
68
|
-
| `input` | `number` | Fired on input after clamping. |
|
|
69
|
-
| `keyup` | `KeyboardEvent` | Forwarded native event. |
|
|
70
|
-
| `keydown` | `KeyboardEvent` | Forwarded native event. |
|
|
71
|
-
| `paste` | `ClipboardEvent` | Forwarded native event. |
|
|
72
|
-
|
|
73
|
-
## Slots
|
|
74
|
-
|
|
75
|
-
| Name | Description |
|
|
76
|
-
| --- | --- |
|
|
77
|
-
| `label` | Custom label content. |
|
|
78
|
-
| `prefix` | Prefix icon / text (rendered before the minus button). |
|
|
79
|
-
| `postfix` | Postfix icon / text (rendered after the plus button). |
|
|
80
|
-
| `hints` | Helper text (overrides `hints` prop). |
|
|
81
|
-
|
|
82
|
-
## v-model
|
|
83
|
-
|
|
84
|
-
Yes — `modelValue` + `update:modelValue`. Value is `number` after clamping, or `null` when the user clears the input.
|
|
1
|
+
# AbNumberField — AI Reference
|
|
2
|
+
|
|
3
|
+
Numeric input with minus/plus buttons, min/max clamping, custom step, and VeeValidate integration. Renders as a seamless pill by default; pass `is-border` to show internal dividers between buttons and input.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<template>
|
|
9
|
+
<ab-number-field v-model="qty" name="quantity" label="Quantity" :min="1" :max="10" :step="1" hints="Clamped between 1 and 10" />
|
|
10
|
+
|
|
11
|
+
<ab-number-field v-model="qty" name="quantity" label="Quantity" is-border />
|
|
12
|
+
</template>
|
|
13
|
+
|
|
14
|
+
<script setup>
|
|
15
|
+
import { ref } from 'vue';
|
|
16
|
+
const qty = ref(1);
|
|
17
|
+
</script>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Props
|
|
21
|
+
|
|
22
|
+
| Name | Type | Default | Description |
|
|
23
|
+
| --- | --- | --- | --- |
|
|
24
|
+
| `modelValue` | `any` | `null` | Two-way-bound numeric value. |
|
|
25
|
+
| `label` | `String` | `""` | Field label. |
|
|
26
|
+
| `placeholder` | `String` | `""` | Input placeholder. |
|
|
27
|
+
| `name` | `String` | **required** | VeeValidate field name. |
|
|
28
|
+
| `rules` | `String \| Object` | `""` | VeeValidate rules. |
|
|
29
|
+
| `containerClass` | `String` | `"mb-3"` | Class on the wrapper `<div>`. |
|
|
30
|
+
| `hints` | `String` | `""` | Helper text beneath the input. |
|
|
31
|
+
| `prefix` | `String` | `""` | Prefix text/icon (shortcut for `#prefix` slot). |
|
|
32
|
+
| `postfix` | `String` | `""` | Postfix text/icon. |
|
|
33
|
+
| `min` | `Number \| String` | `null` | Minimum allowed value. Clamps input and disables the minus button at the floor. |
|
|
34
|
+
| `max` | `Number \| String` | `null` | Maximum allowed value. Clamps input and disables the plus button at the ceiling. |
|
|
35
|
+
| `step` | `Number \| String` | `1` | Increment/decrement amount. |
|
|
36
|
+
| `showButtons` | `Boolean` | `true` | Render the minus/plus controls. |
|
|
37
|
+
| `disabled` | `Boolean` | `false` | Disable the field and both buttons. |
|
|
38
|
+
| `isBorder` | `Boolean` | `false` | Show inner borders between minus/input/plus. Default is a seamless pill. |
|
|
39
|
+
| `isLeftIconBorder` | `Boolean` | `false` | Render border between the prefix icon and the input. |
|
|
40
|
+
| `isRightIconBorder` | `Boolean` | `false` | Render border between the postfix icon and the input. |
|
|
41
|
+
|
|
42
|
+
## Events
|
|
43
|
+
|
|
44
|
+
| Event | Payload | Description |
|
|
45
|
+
| --- | --- | --- |
|
|
46
|
+
| `update:modelValue` | `number \| null` | v-model sync. Value is `number` after clamping, or `null` when cleared. |
|
|
47
|
+
| `input` | `number` | Fired on input after clamping. |
|
|
48
|
+
| `keyup` | `KeyboardEvent` | Forwarded native event. |
|
|
49
|
+
| `keydown` | `KeyboardEvent` | Forwarded native event. |
|
|
50
|
+
| `paste` | `ClipboardEvent` | Forwarded native event. |
|
|
51
|
+
|
|
52
|
+
## Slots
|
|
53
|
+
|
|
54
|
+
| Name | Description |
|
|
55
|
+
| --- | --- |
|
|
56
|
+
| `label` | Custom label content. |
|
|
57
|
+
| `prefix` | Prefix icon / text (rendered before the minus button). |
|
|
58
|
+
| `postfix` | Postfix icon / text (rendered after the plus button). |
|
|
59
|
+
| `hints` | Helper text (overrides `hints` prop). |
|
package/.ai/ai_ref_AbPinInput.md
CHANGED
|
@@ -1,45 +1,33 @@
|
|
|
1
|
-
# AbPinInput — AI Reference
|
|
2
|
-
|
|
3
|
-
Segmented PIN
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
| `
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
| Event | Payload | Description |
|
|
36
|
-
| --- | --- | --- |
|
|
37
|
-
| `update:modelValue` | `pin` | v-model sync on every input change. |
|
|
38
|
-
|
|
39
|
-
## Slots
|
|
40
|
-
|
|
41
|
-
None.
|
|
42
|
-
|
|
43
|
-
## v-model
|
|
44
|
-
|
|
45
|
-
Yes.
|
|
1
|
+
# AbPinInput — AI Reference
|
|
2
|
+
|
|
3
|
+
Segmented PIN/OTP entry input. Renders `length` single-character boxes, optionally split into groups with a separator.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<template>
|
|
9
|
+
<ab-pin-input v-model="pin" :length="6" :group-size="3" show-separator />
|
|
10
|
+
<p v-if="pin.length === 6">Entered: {{ pin }}</p>
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<script setup>
|
|
14
|
+
import { ref } from 'vue';
|
|
15
|
+
const pin = ref('');
|
|
16
|
+
</script>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| Name | Type | Default | Description |
|
|
22
|
+
| --- | --- | --- | --- |
|
|
23
|
+
| `modelValue` | `String` | — | Two-way-bound PIN string. |
|
|
24
|
+
| `length` | `Number` | `6` | Number of digit boxes. |
|
|
25
|
+
| `size` | `String` | `"md"` | Size: `sm`, `md`, `lg`. |
|
|
26
|
+
| `showSeparator` | `Boolean` | `false` | Render a separator between groups. |
|
|
27
|
+
| `groupSize` | `Number` | `3` | Digits per group when `showSeparator` is true. |
|
|
28
|
+
|
|
29
|
+
## Events
|
|
30
|
+
|
|
31
|
+
| Event | Payload | Description |
|
|
32
|
+
| --- | --- | --- |
|
|
33
|
+
| `update:modelValue` | `pin` | v-model sync on every input change. |
|
package/.ai/ai_ref_AbPopover.md
CHANGED
|
@@ -1,64 +1,54 @@
|
|
|
1
|
-
# AbPopover — AI Reference
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
</template>
|
|
22
|
-
</ab-popover>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
39
|
-
| `
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
| `
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
| `
|
|
54
|
-
|
|
55
|
-
## Slots
|
|
56
|
-
|
|
57
|
-
| Name | Scope | Description |
|
|
58
|
-
| --- | --- | --- |
|
|
59
|
-
| `default` | — | Trigger element. |
|
|
60
|
-
| `content` | `{ close, hide, show, toggle }` | Popover content — receives imperative controls. |
|
|
61
|
-
|
|
62
|
-
## v-model
|
|
63
|
-
|
|
64
|
-
Yes — binds visibility.
|
|
1
|
+
# AbPopover — AI Reference
|
|
2
|
+
|
|
3
|
+
Interactive popover with click, hover, focus, touch, or manual triggers. Content slot receives imperative `close`, `hide`, `show`, and `toggle` helpers.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<template>
|
|
9
|
+
<ab-popover placement="bottom" trigger="click">
|
|
10
|
+
<ab-button class="btn-primary">Menu</ab-button>
|
|
11
|
+
<template #content="{ close }">
|
|
12
|
+
<div class="popover-menu">
|
|
13
|
+
<button @click="edit(); close()">Edit</button>
|
|
14
|
+
<button @click="remove(); close()">Delete</button>
|
|
15
|
+
</div>
|
|
16
|
+
</template>
|
|
17
|
+
</ab-popover>
|
|
18
|
+
|
|
19
|
+
<ab-popover :trigger="['hover', 'focus']" placement="top">
|
|
20
|
+
<span>Hover me</span>
|
|
21
|
+
<template #content>Rich popover content</template>
|
|
22
|
+
</ab-popover>
|
|
23
|
+
</template>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Props
|
|
27
|
+
|
|
28
|
+
| Name | Type | Default | Description |
|
|
29
|
+
| --- | --- | --- | --- |
|
|
30
|
+
| `placement` | `String` | `"bottom"` | `top`, `bottom`, `left`, `right`, or `auto-*`. |
|
|
31
|
+
| `offset` | `Number \| String` | `8` | Offset from the reference. |
|
|
32
|
+
| `gap` | `Number \| String` | `null` | Gap override (used instead of `offset` when set). |
|
|
33
|
+
| `disabled` | `Boolean` | `false` | Disable the popover. |
|
|
34
|
+
| `arrow` | `Boolean` | `true` | Render the arrow pointer. |
|
|
35
|
+
| `arrowPadding` | `Number` | `4` | Padding between arrow and corner. |
|
|
36
|
+
| `trigger` | `String \| Array` | `"click"` | `click`, `hover`, `focus`, `touch`, `manual`. Space-separated string or array. |
|
|
37
|
+
| `autoHide` | `Boolean` | `true` | Close when clicking outside. |
|
|
38
|
+
| `contentClass` | `String` | `""` | Extra class on the content element. |
|
|
39
|
+
| `referenceSelector` | `String` | `null` | CSS selector inside the trigger to anchor positioning. |
|
|
40
|
+
|
|
41
|
+
## Events
|
|
42
|
+
|
|
43
|
+
| Event | Payload | Description |
|
|
44
|
+
| --- | --- | --- |
|
|
45
|
+
| `update:modelValue` | `visible: Boolean` | Visibility change (supports `v-model`). |
|
|
46
|
+
| `show` | — | Popover shown. |
|
|
47
|
+
| `hide` | — | Popover hidden. |
|
|
48
|
+
|
|
49
|
+
## Slots
|
|
50
|
+
|
|
51
|
+
| Name | Scope | Description |
|
|
52
|
+
| --- | --- | --- |
|
|
53
|
+
| `default` | — | Trigger element. |
|
|
54
|
+
| `content` | `{ close, hide, show, toggle }` | Popover content — receives imperative controls. |
|
|
@@ -1,64 +1,56 @@
|
|
|
1
|
-
# AbPricingCard — AI Reference
|
|
2
|
-
|
|
3
|
-
Single pricing tier card. Use multiple inside `AbPricingContainer` to build a pricing table.
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
>
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
| `
|
|
40
|
-
| `
|
|
41
|
-
| `
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
|
57
|
-
| --- | --- | --- |
|
|
58
|
-
| `header` | — | Custom header content. |
|
|
59
|
-
| `badge` | — | Custom badge. |
|
|
60
|
-
| `badge-icon` | — | Icon inside the badge. |
|
|
61
|
-
| `price` | — | Custom price section. |
|
|
62
|
-
| `features` | — | Custom features list. |
|
|
63
|
-
| `feature-icon` | `{ feature, index }` | Custom icon per feature row. |
|
|
64
|
-
| `action` | — | CTA button / actions. |
|
|
1
|
+
# AbPricingCard — AI Reference
|
|
2
|
+
|
|
3
|
+
Single pricing tier card. Use multiple inside `AbPricingContainer` to build a pricing table.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<template>
|
|
9
|
+
<ab-pricing-card
|
|
10
|
+
title="Pro"
|
|
11
|
+
amount="49"
|
|
12
|
+
regular-amount="79"
|
|
13
|
+
frequency="/month"
|
|
14
|
+
badge="Popular"
|
|
15
|
+
color="primary"
|
|
16
|
+
variant="highlighted"
|
|
17
|
+
recommended
|
|
18
|
+
:features="[
|
|
19
|
+
{ text: 'Unlimited projects' },
|
|
20
|
+
{ text: 'Priority support' },
|
|
21
|
+
{ text: 'Custom domain', disabled: true },
|
|
22
|
+
]"
|
|
23
|
+
>
|
|
24
|
+
<template #action>
|
|
25
|
+
<ab-button class="btn-primary w-100">Choose Pro</ab-button>
|
|
26
|
+
</template>
|
|
27
|
+
</ab-pricing-card>
|
|
28
|
+
</template>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Props
|
|
32
|
+
|
|
33
|
+
| Name | Type | Default | Description |
|
|
34
|
+
| --- | --- | --- | --- |
|
|
35
|
+
| `title` | `String` | `""` | Tier title. |
|
|
36
|
+
| `amount` | `String \| Number` | `undefined` | Current price. |
|
|
37
|
+
| `regularAmount` | `String \| Number` | `undefined` | Original price (rendered with strikethrough). |
|
|
38
|
+
| `frequency` | `String` | `""` | Billing frequency suffix (e.g. `/month`). |
|
|
39
|
+
| `badge` | `String` | `""` | Badge text (e.g. "Popular"). |
|
|
40
|
+
| `active` | `Boolean` | `false` | Highlight this card as currently active. |
|
|
41
|
+
| `recommended` | `Boolean` | `false` | Show a "Recommended" ribbon. |
|
|
42
|
+
| `color` | `String` | `"primary"` | Color theme (Bootstrap color). |
|
|
43
|
+
| `variant` | `String` | `"default"` | `default`, `minimal`, `highlighted`, `badge-price`. |
|
|
44
|
+
| `features` | `Array` | `[]` | Each `{ text, disabled? }` or a string. |
|
|
45
|
+
|
|
46
|
+
## Slots
|
|
47
|
+
|
|
48
|
+
| Name | Scope | Description |
|
|
49
|
+
| --- | --- | --- |
|
|
50
|
+
| `header` | — | Custom header content. |
|
|
51
|
+
| `badge` | — | Custom badge. |
|
|
52
|
+
| `badge-icon` | — | Icon inside the badge. |
|
|
53
|
+
| `price` | — | Custom price section. |
|
|
54
|
+
| `features` | — | Custom features list. |
|
|
55
|
+
| `feature-icon` | `{ feature, index }` | Custom icon per feature row. |
|
|
56
|
+
| `action` | — | CTA button / actions. |
|
|
@@ -1,49 +1,41 @@
|
|
|
1
|
-
# AbPricingContainer — AI Reference
|
|
2
|
-
|
|
3
|
-
Layout wrapper for pricing tables. Arranges `AbPricingCard` children in a flex row or responsive grid with optional breakpoint column counts.
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
31
|
-
| `
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
None.
|
|
43
|
-
|
|
44
|
-
## Slots
|
|
45
|
-
|
|
46
|
-
| Name | Description |
|
|
47
|
-
| --- | --- |
|
|
48
|
-
| `toggle` | Optional toggle area (e.g. monthly/yearly switch) rendered above the cards. |
|
|
49
|
-
| `default` | `<ab-pricing-card>` children. |
|
|
1
|
+
# AbPricingContainer — AI Reference
|
|
2
|
+
|
|
3
|
+
Layout wrapper for pricing tables. Arranges `AbPricingCard` children in a flex row or responsive grid with optional breakpoint column counts.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<template>
|
|
9
|
+
<ab-pricing-container max-width="1100px" gap="1rem" :md-cols="3">
|
|
10
|
+
<template #toggle>
|
|
11
|
+
<ab-toggle v-model="isYearly" name="billing" title="Bill yearly" />
|
|
12
|
+
</template>
|
|
13
|
+
|
|
14
|
+
<ab-pricing-card title="Starter" amount="0" frequency="/mo" :features="[…]" />
|
|
15
|
+
<ab-pricing-card title="Pro" amount="49" frequency="/mo" recommended :features="[…]" />
|
|
16
|
+
<ab-pricing-card title="Team" amount="99" frequency="/mo" :features="[…]" />
|
|
17
|
+
</ab-pricing-container>
|
|
18
|
+
</template>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Props
|
|
22
|
+
|
|
23
|
+
| Name | Type | Default | Description |
|
|
24
|
+
| --- | --- | --- | --- |
|
|
25
|
+
| `width` | `String` | `"100%"` | Container width. |
|
|
26
|
+
| `maxWidth` | `String` | `"1200px"` | Max width. |
|
|
27
|
+
| `gap` | `String` | `"1.5rem"` | Gap between cards. |
|
|
28
|
+
| `justify` | `String` | `"center"` | `justify-content` value. |
|
|
29
|
+
| `align` | `String` | `"stretch"` | `align-items` value. |
|
|
30
|
+
| `columns` | `Number \| String` | `0` | `0` → flex layout, `>0` → CSS grid with that column count. |
|
|
31
|
+
| `smCols` | `Number \| String` | `""` | Columns at sm breakpoint. |
|
|
32
|
+
| `mdCols` | `Number \| String` | `""` | Columns at md breakpoint. |
|
|
33
|
+
| `lgCols` | `Number \| String` | `""` | Columns at lg breakpoint. |
|
|
34
|
+
| `itemWidth` | `String` | `""` | Per-card width override (exposed as CSS custom property). |
|
|
35
|
+
|
|
36
|
+
## Slots
|
|
37
|
+
|
|
38
|
+
| Name | Description |
|
|
39
|
+
| --- | --- |
|
|
40
|
+
| `toggle` | Optional toggle area (e.g. monthly/yearly switch) rendered above the cards. |
|
|
41
|
+
| `default` | `<ab-pricing-card>` children. |
|