@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,72 +1,56 @@
|
|
|
1
|
-
# AbPricingTable — AI Reference
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
| `select-package` | `(packageObject)` | Emitted when a package's action button is clicked. |
|
|
58
|
-
|
|
59
|
-
## Slots
|
|
60
|
-
|
|
61
|
-
| Slot Name | Props | Description |
|
|
62
|
-
| --------- | ----- | ----------- |
|
|
63
|
-
| `features-header` | None | Replaces the header in the left-hand features column. |
|
|
64
|
-
| `feature-label` | `{ feature }` | Customizes how the feature name is displayed in the features list. |
|
|
65
|
-
| `package-badge` | `{ pkg }` | Customizes the badge at the top of the package card. |
|
|
66
|
-
| `package-header` | `{ pkg }` | Customizes the top section of the package card (name and pricing info). |
|
|
67
|
-
| `package-feature` | `{ pkg, feature }` | Replaces the default check/cross icon rendering for a feature row in a package. |
|
|
68
|
-
| `package-footer` | `{ pkg }` | Customizes the footer area (usually contains the action button). |
|
|
69
|
-
|
|
70
|
-
## v-model
|
|
71
|
-
|
|
72
|
-
No — use the `@select-package` event to handle user selection.
|
|
1
|
+
# AbPricingTable — AI Reference
|
|
2
|
+
|
|
3
|
+
Responsive pricing comparison table. Displays a feature list on the left and multiple package tiers on the right, consuming structured JSON data.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<script setup>
|
|
9
|
+
import { computed } from 'vue'
|
|
10
|
+
|
|
11
|
+
const features = [
|
|
12
|
+
{ key: "links", title: "All limited links" },
|
|
13
|
+
{ key: "analytics", title: "Own analytics platform" }
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
const packages = computed(() => [{
|
|
17
|
+
id: "p1",
|
|
18
|
+
name: "Intro",
|
|
19
|
+
price: 19,
|
|
20
|
+
regularPrice: 24,
|
|
21
|
+
badge: "Save 20%",
|
|
22
|
+
features: { links: "Y", analytics: "Y" },
|
|
23
|
+
showButton: true,
|
|
24
|
+
buttonText: "Choose Plan",
|
|
25
|
+
isActive: false
|
|
26
|
+
}])
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<template>
|
|
30
|
+
<ab-pricing-table :features="features" :packages="packages" @select-package="(pkg) => console.log('Selected:', pkg)" />
|
|
31
|
+
</template>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Props
|
|
35
|
+
|
|
36
|
+
| Name | Type | Default | Description |
|
|
37
|
+
| ---- | ---- | ------- | ----------- |
|
|
38
|
+
| `features` | Array | **required** | Array of `{ key, title }` feature definitions. |
|
|
39
|
+
| `packages` | Array | **required** | Array of package configs with price, regularPrice, badge, features (Y/N map), and button options. |
|
|
40
|
+
|
|
41
|
+
## Events
|
|
42
|
+
|
|
43
|
+
| Event | Payload | Description |
|
|
44
|
+
| ----- | ------- | ----------- |
|
|
45
|
+
| `select-package` | `packageObject` | Emitted when a package's action button is clicked. |
|
|
46
|
+
|
|
47
|
+
## Slots
|
|
48
|
+
|
|
49
|
+
| Slot Name | Props | Description |
|
|
50
|
+
| --------- | ----- | ----------- |
|
|
51
|
+
| `features-header` | None | Replaces the header in the left-hand features column. |
|
|
52
|
+
| `feature-label` | `{ feature }` | Customizes how the feature name is displayed. |
|
|
53
|
+
| `package-badge` | `{ pkg }` | Customizes the badge at the top of the package card. |
|
|
54
|
+
| `package-header` | `{ pkg }` | Customizes the top section of the package card. |
|
|
55
|
+
| `package-feature` | `{ pkg, feature }` | Replaces the default check/cross icon rendering for a feature row. |
|
|
56
|
+
| `package-footer` | `{ pkg }` | Customizes the footer area (action button). |
|
|
@@ -1,44 +1,34 @@
|
|
|
1
|
-
# AbProgressbar — AI Reference
|
|
2
|
-
|
|
3
|
-
Animated Bootstrap-style progress bar with multiple color and size variants. Accepts a custom label via the default slot.
|
|
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
|
-
| `default` | Custom label rendered alongside the bar. The CSS custom property `--progress-value` is exposed for advanced positioning. |
|
|
36
|
-
|
|
37
|
-
## Position Classes
|
|
38
|
-
|
|
39
|
-
Apply these classes to move the label:
|
|
40
|
-
- `progress-right`: Label to the right of the bar.
|
|
41
|
-
- `progress-right-top`: Label to the right-top (floating above).
|
|
42
|
-
- `progress-right-bottom`: Label to the right-bottom (floating below).
|
|
43
|
-
- `progress-value-top`: Label floating above the current progress indicator.
|
|
44
|
-
- `progress-value-bottom`: Label floating below the current progress indicator.
|
|
1
|
+
# AbProgressbar — AI Reference
|
|
2
|
+
|
|
3
|
+
Animated Bootstrap-style progress bar with multiple color and size variants. Accepts a custom label via the default slot.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<template>
|
|
9
|
+
<ab-progressbar :progress-value="75" color="success" size="lg">75%</ab-progressbar>
|
|
10
|
+
</template>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| Name | Type | Default | Description |
|
|
16
|
+
| --- | --- | --- | --- |
|
|
17
|
+
| `minValue` | `Number` | `0` | Minimum value (used for ARIA attributes). |
|
|
18
|
+
| `maxValue` | `Number` | `100` | Maximum value. |
|
|
19
|
+
| `progressValue` | `Number` | `0` | Current value — typically `0–100`. |
|
|
20
|
+
| `color` | `String` | `"primary"` | One of: `primary`, `secondary`, `success`, `danger`, `info`, `warning`. |
|
|
21
|
+
| `size` | `String` | `"md"` | One of: `xs`, `sm`, `md`, `lg`, `xl`, `xxl`. |
|
|
22
|
+
|
|
23
|
+
## Slots
|
|
24
|
+
|
|
25
|
+
| `default` | Custom label rendered alongside the bar. The CSS custom property `--progress-value` is exposed for advanced positioning. |
|
|
26
|
+
|
|
27
|
+
## Position Classes
|
|
28
|
+
|
|
29
|
+
Apply these classes to move the label:
|
|
30
|
+
- `progress-right`: Label to the right of the bar.
|
|
31
|
+
- `progress-right-top`: Label to the right-top (floating above).
|
|
32
|
+
- `progress-right-bottom`: Label to the right-bottom (floating below).
|
|
33
|
+
- `progress-value-top`: Label floating above the current progress indicator.
|
|
34
|
+
- `progress-value-bottom`: Label floating below the current progress indicator.
|
|
@@ -1,48 +1,38 @@
|
|
|
1
|
-
# AbScrollbar — AI Reference
|
|
2
|
-
|
|
3
|
-
Styled custom scrollbar wrapper for overflowing content. Emits scroll position events and supports hover-expand.
|
|
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
|
-
| `scroll` | Fires on every scroll event. |
|
|
41
|
-
| `scroll-start` | Fires when scrolled to the top. |
|
|
42
|
-
| `scroll-end` | Fires when scrolled to the bottom. |
|
|
43
|
-
|
|
44
|
-
## Slots
|
|
45
|
-
|
|
46
|
-
| Name | Description |
|
|
47
|
-
| --- | --- |
|
|
48
|
-
| `default` | Scrollable content. |
|
|
1
|
+
# AbScrollbar — AI Reference
|
|
2
|
+
|
|
3
|
+
Styled custom scrollbar wrapper for overflowing content. Emits scroll position events and supports hover-expand.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<template>
|
|
9
|
+
<ab-scrollbar size="md" is-hover-increase @scroll-end="loadMore">
|
|
10
|
+
<div style="height: 2000px"><!-- long content --></div>
|
|
11
|
+
</ab-scrollbar>
|
|
12
|
+
</template>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Props
|
|
16
|
+
|
|
17
|
+
| Name | Type | Default | Description |
|
|
18
|
+
| --- | --- | --- | --- |
|
|
19
|
+
| `size` | `String` | `"md"` | `sm` (4px), `md` (6px), `lg` (8px). |
|
|
20
|
+
| `isHoverIncrease` | `Boolean` | `false` | Expand scrollbar on hover. |
|
|
21
|
+
| `transparentTrack` | `Boolean` | `true` | Transparent track background. |
|
|
22
|
+
| `showAlways` | `Boolean` | `false` | Always show the scrollbar (vs auto-hide). |
|
|
23
|
+
|
|
24
|
+
## Events
|
|
25
|
+
|
|
26
|
+
Each event payload is an object with `scrollTop`, `scrollHeight`, `scrollRatio`, `scrollPercentage`, and related fields.
|
|
27
|
+
|
|
28
|
+
| Event | Description |
|
|
29
|
+
| --- | --- |
|
|
30
|
+
| `scroll` | Fires on every scroll event. |
|
|
31
|
+
| `scroll-start` | Fires when scrolled to the top. |
|
|
32
|
+
| `scroll-end` | Fires when scrolled to the bottom. |
|
|
33
|
+
|
|
34
|
+
## Slots
|
|
35
|
+
|
|
36
|
+
| Name | Description |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| `default` | Scrollable content. |
|
|
@@ -1,54 +1,46 @@
|
|
|
1
|
-
# AbSettingsForm — AI Reference
|
|
2
|
-
|
|
3
|
-
Composite settings-style form layout. When nested inside an `AbWizardStep
|
|
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
|
-
| Name | Description |
|
|
49
|
-
| --- | --- |
|
|
50
|
-
| `default` | Form fields. |
|
|
51
|
-
|
|
52
|
-
## Notes
|
|
53
|
-
|
|
54
|
-
Standalone use (outside a wizard) is supported — the component works as a plain VeeValidate `<Form>` wrapper.
|
|
1
|
+
# AbSettingsForm — AI Reference
|
|
2
|
+
|
|
3
|
+
Composite settings-style form layout. When nested inside an `AbWizardStep`, auto-registers itself as the wizard step's validator — returning `false` from `onSubmit` blocks the wizard from advancing.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<template>
|
|
9
|
+
<ab-wizard @finished="handleFinished">
|
|
10
|
+
<ab-wizard-step title="Profile">
|
|
11
|
+
<ab-settings-form :on-submit="validateProfile">
|
|
12
|
+
<ab-input-field v-model="form.name" name="name" label="Name" rules="required" />
|
|
13
|
+
<ab-input-field v-model="form.email" name="email" label="Email" rules="required|email" />
|
|
14
|
+
</ab-settings-form>
|
|
15
|
+
</ab-wizard-step>
|
|
16
|
+
|
|
17
|
+
<ab-wizard-step title="Preferences">
|
|
18
|
+
<ab-settings-form>
|
|
19
|
+
<ab-toggle v-model="form.emails" name="emails" title="Email me updates" />
|
|
20
|
+
</ab-settings-form>
|
|
21
|
+
</ab-wizard-step>
|
|
22
|
+
</ab-wizard>
|
|
23
|
+
</template>
|
|
24
|
+
|
|
25
|
+
<script setup>
|
|
26
|
+
async function validateProfile(values) {
|
|
27
|
+
if (!(await api.checkEmail(values.email))) return false; // blocks next
|
|
28
|
+
}
|
|
29
|
+
</script>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Props
|
|
33
|
+
|
|
34
|
+
| Name | Type | Default | Description |
|
|
35
|
+
| --- | --- | --- | --- |
|
|
36
|
+
| `onSubmit` | `Function` | `() => {}` | Called with form values on submit. Return `false` (or throw) to block wizard progression. |
|
|
37
|
+
|
|
38
|
+
## Slots
|
|
39
|
+
|
|
40
|
+
| Name | Description |
|
|
41
|
+
| --- | --- |
|
|
42
|
+
| `default` | Form fields. |
|
|
43
|
+
|
|
44
|
+
## Notes
|
|
45
|
+
|
|
46
|
+
Standalone use (outside a wizard) is supported — the component works as a plain VeeValidate `<Form>` wrapper.
|
|
@@ -1,58 +1,47 @@
|
|
|
1
|
-
# AbSideMenuItem — AI Reference
|
|
2
|
-
|
|
3
|
-
Single entry in an `AbSidebar`.
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
<ab-side-menu-item
|
|
14
|
-
<template #
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<template #
|
|
21
|
-
</ab-side-menu-item>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
##
|
|
35
|
-
|
|
36
|
-
| Name |
|
|
37
|
-
| --- | --- |
|
|
38
|
-
| `
|
|
39
|
-
| `
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
| --- | --- |
|
|
49
|
-
| `default` | Label text. |
|
|
50
|
-
| `icon` | Leading icon. |
|
|
51
|
-
| `submenu` | Submenu items (nested `AbSideMenuItem`s). |
|
|
52
|
-
| `sectiontitle` | When provided, the item renders as a section heading instead of a nav item. |
|
|
53
|
-
|
|
54
|
-
## Injects
|
|
55
|
-
|
|
56
|
-
- `isCollapsed` — from `AbSidebar`.
|
|
57
|
-
- `isMobileFullHeight` — from `AbSidebar`.
|
|
58
|
-
- `layoutState` — from `AbSidebar`.
|
|
1
|
+
# AbSideMenuItem — AI Reference
|
|
2
|
+
|
|
3
|
+
Single entry in an `AbSidebar`. Renders as a router-link, plain anchor, section title, or parent node with a submenu.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<ab-side-menu-item :to="{ name: 'dashboard' }">
|
|
9
|
+
<template #icon><i class="bi bi-house"></i></template>
|
|
10
|
+
Dashboard
|
|
11
|
+
</ab-side-menu-item>
|
|
12
|
+
|
|
13
|
+
<ab-side-menu-item>
|
|
14
|
+
<template #sectiontitle>Account</template>
|
|
15
|
+
</ab-side-menu-item>
|
|
16
|
+
|
|
17
|
+
<ab-side-menu-item href="#">
|
|
18
|
+
<template #icon><i class="bi bi-gear"></i></template>
|
|
19
|
+
Settings
|
|
20
|
+
<template #submenu>
|
|
21
|
+
<ab-side-menu-item :to="{ name: 'profile' }">Profile</ab-side-menu-item>
|
|
22
|
+
<ab-side-menu-item :to="{ name: 'billing' }">Billing</ab-side-menu-item>
|
|
23
|
+
</template>
|
|
24
|
+
</ab-side-menu-item>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Props
|
|
28
|
+
|
|
29
|
+
| Name | Type | Description |
|
|
30
|
+
| --- | --- | --- |
|
|
31
|
+
| `to` | `String \| Object` | Router-link target. When this item has a submenu, `to` makes the label clickable as a link. |
|
|
32
|
+
| `href` | `String` | Plain anchor target. With a submenu, `href` makes the item a submenu toggle instead of a link. |
|
|
33
|
+
|
|
34
|
+
## Slots
|
|
35
|
+
|
|
36
|
+
| Name | Description |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| `default` | Label text. |
|
|
39
|
+
| `icon` | Leading icon. |
|
|
40
|
+
| `submenu` | Submenu items (nested `AbSideMenuItem`s). |
|
|
41
|
+
| `sectiontitle` | When provided, the item renders as a section heading instead of a nav item. |
|
|
42
|
+
|
|
43
|
+
## Injects
|
|
44
|
+
|
|
45
|
+
- `isCollapsed` — from `AbSidebar`.
|
|
46
|
+
- `isMobileFullHeight` — from `AbSidebar`.
|
|
47
|
+
- `layoutState` — from `AbSidebar`.
|
package/.ai/ai_ref_AbSidebar.md
CHANGED
|
@@ -1,70 +1,62 @@
|
|
|
1
|
-
# AbSidebar — AI Reference
|
|
2
|
-
|
|
3
|
-
Collapsible application sidebar. Hosts `AbSideMenuItem` children, supports
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
</ab-side-menu-item>
|
|
22
|
-
|
|
23
|
-
<ab-side-menu-item>
|
|
24
|
-
<template #
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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 header/footer, optional search, and persists collapse state to `localStorage`.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<template>
|
|
9
|
+
<ab-sidebar app-unique-id="my-app" enable-search>
|
|
10
|
+
<template #header>
|
|
11
|
+
<img src="/logo.svg" alt="Logo" />
|
|
12
|
+
</template>
|
|
13
|
+
|
|
14
|
+
<ab-side-menu-item :to="{ name: 'dashboard' }">
|
|
15
|
+
<template #icon><i class="bi bi-speedometer2"></i></template>
|
|
16
|
+
Dashboard
|
|
17
|
+
</ab-side-menu-item>
|
|
18
|
+
|
|
19
|
+
<ab-side-menu-item>
|
|
20
|
+
<template #sectiontitle>Admin</template>
|
|
21
|
+
</ab-side-menu-item>
|
|
22
|
+
|
|
23
|
+
<ab-side-menu-item href="#">
|
|
24
|
+
<template #icon><i class="bi bi-people"></i></template>
|
|
25
|
+
Users
|
|
26
|
+
<template #submenu>
|
|
27
|
+
<ab-side-menu-item :to="{ name: 'users-list' }">All users</ab-side-menu-item>
|
|
28
|
+
<ab-side-menu-item :to="{ name: 'users-roles' }">Roles</ab-side-menu-item>
|
|
29
|
+
</template>
|
|
30
|
+
</ab-side-menu-item>
|
|
31
|
+
|
|
32
|
+
<template #footer>
|
|
33
|
+
<ab-dark-mode-toggler />
|
|
34
|
+
</template>
|
|
35
|
+
</ab-sidebar>
|
|
36
|
+
</template>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Props
|
|
40
|
+
|
|
41
|
+
| Name | Type | Default | Description |
|
|
42
|
+
| --- | --- | --- | --- |
|
|
43
|
+
| `appUniqueId` | `String` | `"apbd"` | Unique key for the `localStorage` entry that stores collapse state. |
|
|
44
|
+
| `hideSeperator` | `Boolean` | `false` | Hide dividers between sections. |
|
|
45
|
+
| `mobileFullHeight` | `Boolean` | `false` | Force full-viewport height on mobile. |
|
|
46
|
+
| `enableSearch` | `Boolean` | `false` | Show a search box that filters menu items. |
|
|
47
|
+
| `searchTargetClass` | `String` | `"nav-item"` | CSS class of items that the search should match. |
|
|
48
|
+
|
|
49
|
+
## Slots
|
|
50
|
+
|
|
51
|
+
| Name | Description |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| `header` | Sidebar header (logo area). |
|
|
54
|
+
| `default` | Menu items (place `AbSideMenuItem` children here). |
|
|
55
|
+
| `footer` | Sidebar footer (typically user avatar or theme toggle). |
|
|
56
|
+
| `collapse-icon` | Override the collapse toggle icon. |
|
|
57
|
+
|
|
58
|
+
## Provides (for children)
|
|
59
|
+
|
|
60
|
+
- `isCollapsed` — reactive collapse state.
|
|
61
|
+
- `isMobileFullHeight` — reactive full-height state.
|
|
62
|
+
- `layoutState` — layout state object (passed from parent if provided).
|