@appsbd/vue3-appsbd-ui 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/.ai/ai_ref_AbAvatar.md +9 -1
  2. package/.ai/ai_ref_AbBadge.md +6 -5
  3. package/.ai/ai_ref_AbButton.md +8 -9
  4. package/.ai/ai_ref_AbCard.md +70 -53
  5. package/.ai/ai_ref_AbCarousel.md +47 -47
  6. package/.ai/ai_ref_AbChart.md +87 -0
  7. package/.ai/ai_ref_AbConfirmPopover.md +59 -59
  8. package/.ai/ai_ref_AbDarkModeToggler.md +42 -42
  9. package/.ai/ai_ref_AbDateTimePicker.md +3 -0
  10. package/.ai/ai_ref_AbEasyModal.md +62 -62
  11. package/.ai/ai_ref_AbField.md +96 -93
  12. package/.ai/ai_ref_AbFileUploader.md +63 -63
  13. package/.ai/ai_ref_AbFilterPanel.md +71 -71
  14. package/.ai/ai_ref_AbFormCheck.md +75 -75
  15. package/.ai/ai_ref_AbImageRadioInput.md +63 -63
  16. package/.ai/ai_ref_AbInputField.md +74 -71
  17. package/.ai/ai_ref_AbInputTag.md +3 -0
  18. package/.ai/ai_ref_AbKbd.md +35 -35
  19. package/.ai/ai_ref_AbKbdGroup.md +33 -33
  20. package/.ai/ai_ref_AbModal.md +103 -103
  21. package/.ai/ai_ref_AbMultiSelect.md +4 -0
  22. package/.ai/ai_ref_AbNumberField.md +84 -84
  23. package/.ai/ai_ref_AbPopover.md +64 -64
  24. package/.ai/ai_ref_AbPricingCard.md +64 -64
  25. package/.ai/ai_ref_AbPricingContainer.md +49 -49
  26. package/.ai/ai_ref_AbPricingTable.md +72 -72
  27. package/.ai/ai_ref_AbProgressbar.md +44 -37
  28. package/.ai/ai_ref_AbScrollbar.md +48 -48
  29. package/.ai/ai_ref_AbSettingsForm.md +54 -54
  30. package/.ai/ai_ref_AbSideMenuItem.md +58 -58
  31. package/.ai/ai_ref_AbSidebar.md +70 -70
  32. package/.ai/ai_ref_AbSkeleton.md +41 -41
  33. package/.ai/ai_ref_AbSlider.md +71 -71
  34. package/.ai/ai_ref_AbTab.md +38 -38
  35. package/.ai/ai_ref_AbTable.md +59 -59
  36. package/.ai/ai_ref_AbTabs.md +47 -47
  37. package/.ai/ai_ref_AbToggle.md +65 -65
  38. package/.ai/ai_ref_AbTooltip.md +53 -53
  39. package/.ai/ai_ref_AbWizard.md +77 -77
  40. package/.ai/ai_ref_AbWizardStep.md +48 -48
  41. package/.ai/ai_ref_abEventBus.md +94 -0
  42. package/.ai/ai_ref_abRequestParam.md +55 -0
  43. package/.ai/ai_ref_abTranslate.md +33 -0
  44. package/.ai/ai_ref_abVeeRules.md +42 -0
  45. package/.ai/ai_ref_useAlert.md +63 -0
  46. package/.ai/ai_ref_useFileValidator.md +46 -0
  47. package/.ai/ai_ref_useResponsive.md +55 -0
  48. package/.ai/ai_ref_useTheme.md +39 -0
  49. package/.ai/ai_ref_useToast.md +42 -0
  50. package/AI_REFERENCE.md +68 -112
  51. package/design-system.md +403 -0
  52. package/dist/skins/black.css +1 -1
  53. package/dist/skins/cyan.css +1 -1
  54. package/dist/skins/default.css +1 -1
  55. package/dist/skins/gray.css +1 -1
  56. package/dist/skins/green.css +1 -1
  57. package/dist/skins/orange.css +1 -1
  58. package/dist/skins/pink.css +1 -1
  59. package/dist/skins/purple.css +1 -1
  60. package/dist/skins/red.css +1 -1
  61. package/dist/skins/red.scss +3 -3
  62. package/dist/skins/themes/_common_variable.scss +2 -0
  63. package/dist/skins/themes/_red.scss +6 -6
  64. package/dist/skins/violet.css +1 -1
  65. package/dist/style.css +1 -1
  66. package/dist/vue3-appsbd-ui.cjs.js +114 -41
  67. package/dist/vue3-appsbd-ui.es.js +27212 -4646
  68. package/package.json +10 -4
  69. package/readme.md +136 -136
@@ -1,49 +1,49 @@
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
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <template>
13
- <ab-pricing-container max-width="1100px" gap="1rem" :md-cols="3">
14
- <template #toggle>
15
- <ab-toggle v-model="isYearly" name="billing" title="Bill yearly" />
16
- </template>
17
-
18
- <ab-pricing-card title="Starter" amount="0" frequency="/mo" :features="[…]" />
19
- <ab-pricing-card title="Pro" amount="49" frequency="/mo" recommended :features="[…]" />
20
- <ab-pricing-card title="Team" amount="99" frequency="/mo" :features="[…]" />
21
- </ab-pricing-container>
22
- </template>
23
- ```
24
-
25
- ## Props
26
-
27
- | Name | Type | Default | Description |
28
- | --- | --- | --- | --- |
29
- | `width` | `String` | `"100%"` | Container width. |
30
- | `maxWidth` | `String` | `"1200px"` | Max width. |
31
- | `gap` | `String` | `"1.5rem"` | Gap between cards. |
32
- | `justify` | `String` | `"center"` | `justify-content` value. |
33
- | `align` | `String` | `"stretch"` | `align-items` value. |
34
- | `columns` | `Number \| String` | `0` | `0` → flex layout, `>0` → CSS grid with that column count. |
35
- | `smCols` | `Number \| String` | `""` | Columns at sm breakpoint. |
36
- | `mdCols` | `Number \| String` | `""` | Columns at md breakpoint. |
37
- | `lgCols` | `Number \| String` | `""` | Columns at lg breakpoint. |
38
- | `itemWidth` | `String` | `""` | Per-card width override (exposed as CSS custom property). |
39
-
40
- ## Events
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
+ ## Installation
6
+
7
+ Globally registered by the plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <template>
13
+ <ab-pricing-container max-width="1100px" gap="1rem" :md-cols="3">
14
+ <template #toggle>
15
+ <ab-toggle v-model="isYearly" name="billing" title="Bill yearly" />
16
+ </template>
17
+
18
+ <ab-pricing-card title="Starter" amount="0" frequency="/mo" :features="[…]" />
19
+ <ab-pricing-card title="Pro" amount="49" frequency="/mo" recommended :features="[…]" />
20
+ <ab-pricing-card title="Team" amount="99" frequency="/mo" :features="[…]" />
21
+ </ab-pricing-container>
22
+ </template>
23
+ ```
24
+
25
+ ## Props
26
+
27
+ | Name | Type | Default | Description |
28
+ | --- | --- | --- | --- |
29
+ | `width` | `String` | `"100%"` | Container width. |
30
+ | `maxWidth` | `String` | `"1200px"` | Max width. |
31
+ | `gap` | `String` | `"1.5rem"` | Gap between cards. |
32
+ | `justify` | `String` | `"center"` | `justify-content` value. |
33
+ | `align` | `String` | `"stretch"` | `align-items` value. |
34
+ | `columns` | `Number \| String` | `0` | `0` → flex layout, `>0` → CSS grid with that column count. |
35
+ | `smCols` | `Number \| String` | `""` | Columns at sm breakpoint. |
36
+ | `mdCols` | `Number \| String` | `""` | Columns at md breakpoint. |
37
+ | `lgCols` | `Number \| String` | `""` | Columns at lg breakpoint. |
38
+ | `itemWidth` | `String` | `""` | Per-card width override (exposed as CSS custom property). |
39
+
40
+ ## Events
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,72 +1,72 @@
1
- # AbPricingTable — AI Reference
2
-
3
- The `AbPricingTable` component renders a stylized, responsive pricing table. It displays a list of features on the left side and multiple package tiers on the right side. It is designed to consume structured JSON data for features and packages and handles the layout and responsive reflowing automatically.
4
-
5
- ## Installation
6
-
7
- No extra dependencies are required. The component is globally registered by the library plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <script setup>
13
- import { computed } from 'vue'
14
-
15
- const features = [
16
- { key: "links", title: "All limited links" },
17
- { key: "analytics", title: "Own analytics platform" }
18
- ]
19
-
20
- const packages = computed(() => {
21
- return [
22
- {
23
- id: "p1",
24
- name: "Intro",
25
- price: 19,
26
- regularPrice: 24,
27
- badge: "Save 20%",
28
- features: { links: "Y", analytics: "Y" },
29
- showButton: true,
30
- buttonText: "Choose Plan",
31
- isActive: false
32
- }
33
- ]
34
- })
35
- </script>
36
-
37
- <template>
38
- <ab-pricing-table
39
- :features="features"
40
- :packages="packages"
41
- @select-package="(pkg) => console.log('Selected:', pkg)"
42
- />
43
- </template>
44
- ```
45
-
46
- ## Props
47
-
48
- | Name | Type | Default | Description |
49
- | ---- | ---- | ------- | ----------- |
50
- | `features` | Array | `**required**` | Array of feature definitions. Example: `{ key: "chat", title: "Chat support" }`. |
51
- | `packages` | Array | `**required**` | Array of package configurations. Supports price, regularPrice, badge, features (Y/N map), and button options. |
52
-
53
- ## Events
54
-
55
- | Event | Payload | Description |
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
+ The `AbPricingTable` component renders a stylized, responsive pricing table. It displays a list of features on the left side and multiple package tiers on the right side. It is designed to consume structured JSON data for features and packages and handles the layout and responsive reflowing automatically.
4
+
5
+ ## Installation
6
+
7
+ No extra dependencies are required. The component is globally registered by the library plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup>
13
+ import { computed } from 'vue'
14
+
15
+ const features = [
16
+ { key: "links", title: "All limited links" },
17
+ { key: "analytics", title: "Own analytics platform" }
18
+ ]
19
+
20
+ const packages = computed(() => {
21
+ return [
22
+ {
23
+ id: "p1",
24
+ name: "Intro",
25
+ price: 19,
26
+ regularPrice: 24,
27
+ badge: "Save 20%",
28
+ features: { links: "Y", analytics: "Y" },
29
+ showButton: true,
30
+ buttonText: "Choose Plan",
31
+ isActive: false
32
+ }
33
+ ]
34
+ })
35
+ </script>
36
+
37
+ <template>
38
+ <ab-pricing-table
39
+ :features="features"
40
+ :packages="packages"
41
+ @select-package="(pkg) => console.log('Selected:', pkg)"
42
+ />
43
+ </template>
44
+ ```
45
+
46
+ ## Props
47
+
48
+ | Name | Type | Default | Description |
49
+ | ---- | ---- | ------- | ----------- |
50
+ | `features` | Array | `**required**` | Array of feature definitions. Example: `{ key: "chat", title: "Chat support" }`. |
51
+ | `packages` | Array | `**required**` | Array of package configurations. Supports price, regularPrice, badge, features (Y/N map), and button options. |
52
+
53
+ ## Events
54
+
55
+ | Event | Payload | Description |
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,37 +1,44 @@
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
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <template>
13
- <ab-progressbar :progress-value="75" color="success" size="lg">
14
- 75%
15
- </ab-progressbar>
16
- </template>
17
- ```
18
-
19
- ## Props
20
-
21
- | Name | Type | Default | Description |
22
- | --- | --- | --- | --- |
23
- | `minValue` | `Number` | `0` | Minimum value (used for ARIA attributes). |
24
- | `maxValue` | `Number` | `100` | Maximum value. |
25
- | `progressValue` | `Number` | `0` | Current value — typically `0–100`. |
26
- | `color` | `String` | `"primary"` | One of: `primary`, `secondary`, `success`, `danger`, `info`, `warning`. |
27
- | `size` | `String` | `"md"` | One of: `xs`, `sm`, `md`, `lg`, `xl`, `xxl`. |
28
-
29
- ## Events
30
-
31
- None.
32
-
33
- ## Slots
34
-
35
- | Name | Description |
36
- | --- | --- |
37
- | `default` | Custom label rendered alongside the bar. The CSS custom property `--progress-value` is exposed for advanced positioning. |
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
+ ## Installation
6
+
7
+ Globally registered by the plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <template>
13
+ <ab-progressbar :progress-value="75" color="success" size="lg">
14
+ 75%
15
+ </ab-progressbar>
16
+ </template>
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | Name | Type | Default | Description |
22
+ | --- | --- | --- | --- |
23
+ | `minValue` | `Number` | `0` | Minimum value (used for ARIA attributes). |
24
+ | `maxValue` | `Number` | `100` | Maximum value. |
25
+ | `progressValue` | `Number` | `0` | Current value — typically `0–100`. |
26
+ | `color` | `String` | `"primary"` | One of: `primary`, `secondary`, `success`, `danger`, `info`, `warning`. |
27
+ | `size` | `String` | `"md"` | One of: `xs`, `sm`, `md`, `lg`, `xl`, `xxl`. |
28
+
29
+ ## Events
30
+
31
+ None.
32
+
33
+ ## Slots
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,48 +1,48 @@
1
- # AbScrollbar — AI Reference
2
-
3
- Styled custom scrollbar wrapper for overflowing content. Emits scroll position events and supports hover-expand.
4
-
5
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <template>
13
- <ab-scrollbar
14
- size="md"
15
- is-hover-increase
16
- @scroll-end="loadMore"
17
- >
18
- <div style="height: 2000px">
19
- <!-- long content -->
20
- </div>
21
- </ab-scrollbar>
22
- </template>
23
- ```
24
-
25
- ## Props
26
-
27
- | Name | Type | Default | Description |
28
- | --- | --- | --- | --- |
29
- | `size` | `String` | `"md"` | `sm` (4px), `md` (6px), `lg` (8px). |
30
- | `isHoverIncrease` | `Boolean` | `false` | Expand scrollbar on hover. |
31
- | `transparentTrack` | `Boolean` | `true` | Transparent track background. |
32
- | `showAlways` | `Boolean` | `false` | Always show the scrollbar (vs auto-hide). |
33
-
34
- ## Events
35
-
36
- Each event payload is an object with `scrollTop`, `scrollHeight`, `scrollRatio`, `scrollPercentage`, and related fields.
37
-
38
- | Event | Description |
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
+ ## Installation
6
+
7
+ Globally registered by the plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <template>
13
+ <ab-scrollbar
14
+ size="md"
15
+ is-hover-increase
16
+ @scroll-end="loadMore"
17
+ >
18
+ <div style="height: 2000px">
19
+ <!-- long content -->
20
+ </div>
21
+ </ab-scrollbar>
22
+ </template>
23
+ ```
24
+
25
+ ## Props
26
+
27
+ | Name | Type | Default | Description |
28
+ | --- | --- | --- | --- |
29
+ | `size` | `String` | `"md"` | `sm` (4px), `md` (6px), `lg` (8px). |
30
+ | `isHoverIncrease` | `Boolean` | `false` | Expand scrollbar on hover. |
31
+ | `transparentTrack` | `Boolean` | `true` | Transparent track background. |
32
+ | `showAlways` | `Boolean` | `false` | Always show the scrollbar (vs auto-hide). |
33
+
34
+ ## Events
35
+
36
+ Each event payload is an object with `scrollTop`, `scrollHeight`, `scrollRatio`, `scrollPercentage`, and related fields.
37
+
38
+ | Event | Description |
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,54 +1,54 @@
1
- # AbSettingsForm — AI Reference
2
-
3
- Composite settings-style form layout. When nested inside an `AbWizardStep` / `AbWizard`, auto-registers itself as the wizard step's validator — returning `false` from `onSubmit` blocks the wizard from advancing.
4
-
5
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <template>
13
- <ab-wizard @finished="handleFinished">
14
- <ab-wizard-step title="Profile">
15
- <ab-settings-form :on-submit="validateProfile">
16
- <ab-input-field v-model="form.name" name="name" label="Name" rules="required" />
17
- <ab-input-field v-model="form.email" name="email" label="Email" rules="required|email" />
18
- </ab-settings-form>
19
- </ab-wizard-step>
20
-
21
- <ab-wizard-step title="Preferences">
22
- <ab-settings-form>
23
- <ab-toggle v-model="form.emails" name="emails" title="Email me updates" />
24
- </ab-settings-form>
25
- </ab-wizard-step>
26
- </ab-wizard>
27
- </template>
28
-
29
- <script setup>
30
- async function validateProfile(values) {
31
- if (!(await api.checkEmail(values.email))) return false; // blocks next
32
- }
33
- </script>
34
- ```
35
-
36
- ## Props
37
-
38
- | Name | Type | Default | Description |
39
- | --- | --- | --- | --- |
40
- | `onSubmit` | `Function` | `() => {}` | Called with form values on submit. Return `false` (or throw) to block wizard progression. |
41
-
42
- ## Events
43
-
44
- None at the component level — form submission is handled via the `onSubmit` prop.
45
-
46
- ## Slots
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` / `AbWizard`, auto-registers itself as the wizard step's validator — returning `false` from `onSubmit` blocks the wizard from advancing.
4
+
5
+ ## Installation
6
+
7
+ Globally registered by the plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <template>
13
+ <ab-wizard @finished="handleFinished">
14
+ <ab-wizard-step title="Profile">
15
+ <ab-settings-form :on-submit="validateProfile">
16
+ <ab-input-field v-model="form.name" name="name" label="Name" rules="required" />
17
+ <ab-input-field v-model="form.email" name="email" label="Email" rules="required|email" />
18
+ </ab-settings-form>
19
+ </ab-wizard-step>
20
+
21
+ <ab-wizard-step title="Preferences">
22
+ <ab-settings-form>
23
+ <ab-toggle v-model="form.emails" name="emails" title="Email me updates" />
24
+ </ab-settings-form>
25
+ </ab-wizard-step>
26
+ </ab-wizard>
27
+ </template>
28
+
29
+ <script setup>
30
+ async function validateProfile(values) {
31
+ if (!(await api.checkEmail(values.email))) return false; // blocks next
32
+ }
33
+ </script>
34
+ ```
35
+
36
+ ## Props
37
+
38
+ | Name | Type | Default | Description |
39
+ | --- | --- | --- | --- |
40
+ | `onSubmit` | `Function` | `() => {}` | Called with form values on submit. Return `false` (or throw) to block wizard progression. |
41
+
42
+ ## Events
43
+
44
+ None at the component level — form submission is handled via the `onSubmit` prop.
45
+
46
+ ## Slots
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,58 +1,58 @@
1
- # AbSideMenuItem — AI Reference
2
-
3
- Single entry in an `AbSidebar`. Can render as a router-link, a plain anchor, a section title, or a parent node with a submenu.
4
-
5
- ## Installation
6
-
7
- Globally registered by the plugin.
8
-
9
- ## Usage
10
-
11
- ```vue
12
- <!-- Router-link item -->
13
- <ab-side-menu-item :to="{ name: 'dashboard' }">
14
- <template #icon><i class="bi bi-house"></i></template>
15
- Dashboard
16
- </ab-side-menu-item>
17
-
18
- <!-- Section title -->
19
- <ab-side-menu-item>
20
- <template #sectiontitle>Account</template>
21
- </ab-side-menu-item>
22
-
23
- <!-- Parent with submenu -->
24
- <ab-side-menu-item href="#">
25
- <template #icon><i class="bi bi-gear"></i></template>
26
- Settings
27
- <template #submenu>
28
- <ab-side-menu-item :to="{ name: 'profile' }">Profile</ab-side-menu-item>
29
- <ab-side-menu-item :to="{ name: 'billing' }">Billing</ab-side-menu-item>
30
- </template>
31
- </ab-side-menu-item>
32
- ```
33
-
34
- ## Props
35
-
36
- | Name | Type | Description |
37
- | --- | --- | --- |
38
- | `to` | `String \| Object` | Router-link target. When this item has a submenu, `to` makes the label clickable as a link. |
39
- | `href` | `String` | Plain anchor target. With a submenu, `href` makes the item a submenu toggle instead of a link. |
40
-
41
- ## Events
42
-
43
- None.
44
-
45
- ## Slots
46
-
47
- | Name | Description |
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`. Can render as a router-link, a plain anchor, a section title, or a parent node with a submenu.
4
+
5
+ ## Installation
6
+
7
+ Globally registered by the plugin.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <!-- Router-link item -->
13
+ <ab-side-menu-item :to="{ name: 'dashboard' }">
14
+ <template #icon><i class="bi bi-house"></i></template>
15
+ Dashboard
16
+ </ab-side-menu-item>
17
+
18
+ <!-- Section title -->
19
+ <ab-side-menu-item>
20
+ <template #sectiontitle>Account</template>
21
+ </ab-side-menu-item>
22
+
23
+ <!-- Parent with submenu -->
24
+ <ab-side-menu-item href="#">
25
+ <template #icon><i class="bi bi-gear"></i></template>
26
+ Settings
27
+ <template #submenu>
28
+ <ab-side-menu-item :to="{ name: 'profile' }">Profile</ab-side-menu-item>
29
+ <ab-side-menu-item :to="{ name: 'billing' }">Billing</ab-side-menu-item>
30
+ </template>
31
+ </ab-side-menu-item>
32
+ ```
33
+
34
+ ## Props
35
+
36
+ | Name | Type | Description |
37
+ | --- | --- | --- |
38
+ | `to` | `String \| Object` | Router-link target. When this item has a submenu, `to` makes the label clickable as a link. |
39
+ | `href` | `String` | Plain anchor target. With a submenu, `href` makes the item a submenu toggle instead of a link. |
40
+
41
+ ## Events
42
+
43
+ None.
44
+
45
+ ## Slots
46
+
47
+ | Name | Description |
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`.