@appsbd/vue3-appsbd-ui 1.0.0
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 +43 -0
- package/.ai/ai_ref_AbBadge.md +44 -0
- package/.ai/ai_ref_AbButton.md +71 -0
- package/.ai/ai_ref_AbCard.md +53 -0
- package/.ai/ai_ref_AbCarousel.md +47 -0
- package/.ai/ai_ref_AbColorPicker.md +55 -0
- package/.ai/ai_ref_AbConfirmPopover.md +59 -0
- package/.ai/ai_ref_AbCustomField.md +74 -0
- package/.ai/ai_ref_AbDarkModeToggler.md +42 -0
- package/.ai/ai_ref_AbDateTimePicker.md +105 -0
- package/.ai/ai_ref_AbEasyModal.md +62 -0
- package/.ai/ai_ref_AbField.md +93 -0
- package/.ai/ai_ref_AbFileUploader.md +63 -0
- package/.ai/ai_ref_AbFilterPanel.md +71 -0
- package/.ai/ai_ref_AbFormCheck.md +75 -0
- package/.ai/ai_ref_AbImageRadioInput.md +63 -0
- package/.ai/ai_ref_AbInputField.md +71 -0
- package/.ai/ai_ref_AbInputTag.md +73 -0
- package/.ai/ai_ref_AbKbd.md +35 -0
- package/.ai/ai_ref_AbKbdGroup.md +33 -0
- package/.ai/ai_ref_AbModal.md +103 -0
- package/.ai/ai_ref_AbMultiSelect.md +108 -0
- package/.ai/ai_ref_AbNumberField.md +84 -0
- package/.ai/ai_ref_AbPinInput.md +45 -0
- package/.ai/ai_ref_AbPopover.md +64 -0
- package/.ai/ai_ref_AbPricingCard.md +64 -0
- package/.ai/ai_ref_AbPricingContainer.md +49 -0
- package/.ai/ai_ref_AbPricingTable.md +72 -0
- package/.ai/ai_ref_AbProgressbar.md +37 -0
- package/.ai/ai_ref_AbScrollbar.md +48 -0
- package/.ai/ai_ref_AbSettingsForm.md +54 -0
- package/.ai/ai_ref_AbSideMenuItem.md +58 -0
- package/.ai/ai_ref_AbSidebar.md +70 -0
- package/.ai/ai_ref_AbSkeleton.md +41 -0
- package/.ai/ai_ref_AbSlider.md +71 -0
- package/.ai/ai_ref_AbTab.md +38 -0
- package/.ai/ai_ref_AbTable.md +59 -0
- package/.ai/ai_ref_AbTabs.md +47 -0
- package/.ai/ai_ref_AbToggle.md +65 -0
- package/.ai/ai_ref_AbTooltip.md +53 -0
- package/.ai/ai_ref_AbWizard.md +77 -0
- package/.ai/ai_ref_AbWizardStep.md +48 -0
- package/.ai/ai_ref_global_config.md +66 -0
- package/.ai/ltr-after.png +0 -0
- package/.ai/rtl-after.png +0 -0
- package/.ai/rtl-before.png +0 -0
- package/AI_REFERENCE.md +1178 -0
- package/dist/skins/_prefix.scss +1 -0
- package/dist/skins/black.css +1 -0
- package/dist/skins/black.scss +3 -0
- package/dist/skins/cyan.css +1 -0
- package/dist/skins/cyan.scss +3 -0
- package/dist/skins/default.css +1 -0
- package/dist/skins/default.scss +5 -0
- package/dist/skins/gray.css +1 -0
- package/dist/skins/gray.scss +3 -0
- package/dist/skins/green.css +1 -0
- package/dist/skins/green.scss +5 -0
- package/dist/skins/orange.css +1 -0
- package/dist/skins/orange.scss +3 -0
- package/dist/skins/pink.css +1 -0
- package/dist/skins/pink.scss +3 -0
- package/dist/skins/purple.css +1 -0
- package/dist/skins/purple.scss +3 -0
- package/dist/skins/red.css +1 -0
- package/dist/skins/red.scss +3 -0
- package/dist/skins/themes/_black.scss +6 -0
- package/dist/skins/themes/_blue.scss +43 -0
- package/dist/skins/themes/_common_variable.scss +589 -0
- package/dist/skins/themes/_cyan.scss +6 -0
- package/dist/skins/themes/_gray.scss +6 -0
- package/dist/skins/themes/_green.scss +6 -0
- package/dist/skins/themes/_grid.scss +27 -0
- package/dist/skins/themes/_orange.scss +6 -0
- package/dist/skins/themes/_pink.scss +6 -0
- package/dist/skins/themes/_purple.scss +6 -0
- package/dist/skins/themes/_red.scss +6 -0
- package/dist/skins/themes/_violet.scss +6 -0
- package/dist/skins/violet.css +1 -0
- package/dist/skins/violet.scss +3 -0
- package/dist/style.css +1 -0
- package/dist/vue3-appsbd-ui.cjs.js +201 -0
- package/dist/vue3-appsbd-ui.es.js +9294 -0
- package/package.json +60 -0
- package/readme.md +136 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# AbSidebar — AI Reference
|
|
2
|
+
|
|
3
|
+
Collapsible application sidebar. Hosts `AbSideMenuItem` children, supports a header/footer, optional search, and persists its collapse state to `localStorage`.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Globally registered by the plugin.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```vue
|
|
12
|
+
<template>
|
|
13
|
+
<ab-sidebar app-unique-id="my-app" enable-search>
|
|
14
|
+
<template #header>
|
|
15
|
+
<img src="/logo.svg" alt="Logo" />
|
|
16
|
+
</template>
|
|
17
|
+
|
|
18
|
+
<ab-side-menu-item :to="{ name: 'dashboard' }">
|
|
19
|
+
<template #icon><i class="bi bi-speedometer2"></i></template>
|
|
20
|
+
Dashboard
|
|
21
|
+
</ab-side-menu-item>
|
|
22
|
+
|
|
23
|
+
<ab-side-menu-item>
|
|
24
|
+
<template #sectiontitle>Admin</template>
|
|
25
|
+
</ab-side-menu-item>
|
|
26
|
+
|
|
27
|
+
<ab-side-menu-item href="#">
|
|
28
|
+
<template #icon><i class="bi bi-people"></i></template>
|
|
29
|
+
Users
|
|
30
|
+
<template #submenu>
|
|
31
|
+
<ab-side-menu-item :to="{ name: 'users-list' }">All users</ab-side-menu-item>
|
|
32
|
+
<ab-side-menu-item :to="{ name: 'users-roles' }">Roles</ab-side-menu-item>
|
|
33
|
+
</template>
|
|
34
|
+
</ab-side-menu-item>
|
|
35
|
+
|
|
36
|
+
<template #footer>
|
|
37
|
+
<ab-dark-mode-toggler />
|
|
38
|
+
</template>
|
|
39
|
+
</ab-sidebar>
|
|
40
|
+
</template>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Props
|
|
44
|
+
|
|
45
|
+
| Name | Type | Default | Description |
|
|
46
|
+
| --- | --- | --- | --- |
|
|
47
|
+
| `appUniqueId` | `String` | `"apbd"` | Unique key used for the `localStorage` entry that stores collapse state. |
|
|
48
|
+
| `hideSeperator` | `Boolean` | `false` | Hide dividers between sections. |
|
|
49
|
+
| `mobileFullHeight` | `Boolean` | `false` | Force full-viewport height on mobile. |
|
|
50
|
+
| `enableSearch` | `Boolean` | `false` | Show a search box that filters menu items. |
|
|
51
|
+
| `searchTargetClass` | `String` | `"nav-item"` | CSS class of items that the search should match. |
|
|
52
|
+
|
|
53
|
+
## Events
|
|
54
|
+
|
|
55
|
+
None.
|
|
56
|
+
|
|
57
|
+
## Slots
|
|
58
|
+
|
|
59
|
+
| Name | Description |
|
|
60
|
+
| --- | --- |
|
|
61
|
+
| `header` | Sidebar header (logo area). |
|
|
62
|
+
| `default` | Menu items (place `AbSideMenuItem` children here). |
|
|
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).
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# AbSkeleton — AI Reference
|
|
2
|
+
|
|
3
|
+
Pulsing placeholder for loading states. Forwards all `$attrs` to the root `<div>`, so size and shape are controlled through utility classes or inline styles.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Globally registered by the plugin.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```vue
|
|
12
|
+
<template>
|
|
13
|
+
<!-- Heading skeleton -->
|
|
14
|
+
<ab-skeleton style="height: 24px; width: 60%;" />
|
|
15
|
+
|
|
16
|
+
<!-- Card skeleton -->
|
|
17
|
+
<ab-card>
|
|
18
|
+
<template #body>
|
|
19
|
+
<ab-skeleton style="height: 160px; border-radius: 8px;" />
|
|
20
|
+
<ab-skeleton class="mt-3" style="height: 18px; width: 80%;" />
|
|
21
|
+
<ab-skeleton class="mt-2" style="height: 18px; width: 60%;" />
|
|
22
|
+
</template>
|
|
23
|
+
</ab-card>
|
|
24
|
+
</template>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Props
|
|
28
|
+
|
|
29
|
+
No declared props.
|
|
30
|
+
|
|
31
|
+
## Events
|
|
32
|
+
|
|
33
|
+
None.
|
|
34
|
+
|
|
35
|
+
## Slots
|
|
36
|
+
|
|
37
|
+
None.
|
|
38
|
+
|
|
39
|
+
## Notes
|
|
40
|
+
|
|
41
|
+
Apply `width`, `height`, `border-radius`, etc. via `style` or a utility class.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# AbSlider — AI Reference
|
|
2
|
+
|
|
3
|
+
Single or range numeric slider with custom thumb rendering and size variants.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Globally registered by the plugin.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```vue
|
|
12
|
+
<template>
|
|
13
|
+
<!-- Single -->
|
|
14
|
+
<ab-slider v-model="volume" :min="0" :max="100" label="Volume" show-labels />
|
|
15
|
+
|
|
16
|
+
<!-- Range -->
|
|
17
|
+
<ab-slider
|
|
18
|
+
v-model="priceRange"
|
|
19
|
+
:min="0"
|
|
20
|
+
:max="5000"
|
|
21
|
+
:step="50"
|
|
22
|
+
range
|
|
23
|
+
show-labels
|
|
24
|
+
:format-label="v => '$' + v"
|
|
25
|
+
/>
|
|
26
|
+
|
|
27
|
+
<!-- Custom thumb -->
|
|
28
|
+
<ab-slider v-model="progress" show-labels>
|
|
29
|
+
<template #thumb="{ value, type }">
|
|
30
|
+
<div class="custom-thumb">{{ value }}</div>
|
|
31
|
+
</template>
|
|
32
|
+
</ab-slider>
|
|
33
|
+
</template>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Props
|
|
37
|
+
|
|
38
|
+
| Name | Type | Default | Description |
|
|
39
|
+
| --- | --- | --- | --- |
|
|
40
|
+
| `modelValue` | `Number \| Array` | `null` | Single number, or `[min, max]` in range mode. |
|
|
41
|
+
| `min` | `Number` | `0` | Minimum value. |
|
|
42
|
+
| `max` | `Number` | `100` | Maximum value. |
|
|
43
|
+
| `step` | `Number` | `1` | Increment step. |
|
|
44
|
+
| `range` | `Boolean` | `false` | Enable range mode (two thumbs). |
|
|
45
|
+
| `size` | `String` | `"md"` | `sm`, `md`, `lg`. |
|
|
46
|
+
| `showLabels` | `Boolean` | `false` | Show value labels on thumbs. |
|
|
47
|
+
| `disabled` | `Boolean` | `false` | Disable the slider. |
|
|
48
|
+
| `label` | `String` | `""` | Field label. |
|
|
49
|
+
| `containerClass` | `String` | `"mb-3"` | Wrapper class. |
|
|
50
|
+
| `hints` | `String` | `""` | Helper text. |
|
|
51
|
+
| `formatLabel` | `Function` | `v => Math.round(v) + "%"` | Formatter for thumb labels. |
|
|
52
|
+
|
|
53
|
+
## Events
|
|
54
|
+
|
|
55
|
+
| Event | Payload | Description |
|
|
56
|
+
| --- | --- | --- |
|
|
57
|
+
| `update:modelValue` | `value` | v-model sync. |
|
|
58
|
+
|
|
59
|
+
## Slots
|
|
60
|
+
|
|
61
|
+
| Name | Scope | Description |
|
|
62
|
+
| --- | --- | --- |
|
|
63
|
+
| `label` | — | Custom label. |
|
|
64
|
+
| `prefix` | — | Prefix content (before the track). |
|
|
65
|
+
| `postfix` | — | Postfix content (after the track). |
|
|
66
|
+
| `thumb` | `{ value, type }` | Custom thumb rendering. `type` is `"min"`, `"max"`, or `"single"`. |
|
|
67
|
+
| `hints` | — | Custom hints. |
|
|
68
|
+
|
|
69
|
+
## v-model
|
|
70
|
+
|
|
71
|
+
Yes.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# AbTab — AI Reference
|
|
2
|
+
|
|
3
|
+
Single tab pane / link. Must be used inside an `AbTabs` parent.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Globally registered by the plugin.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```vue
|
|
12
|
+
<ab-tabs>
|
|
13
|
+
<ab-tab title="Profile" selected>
|
|
14
|
+
<template #icon><i class="bi bi-person"></i></template>
|
|
15
|
+
Profile content here.
|
|
16
|
+
</ab-tab>
|
|
17
|
+
<ab-tab title="Settings">Settings content here.</ab-tab>
|
|
18
|
+
</ab-tabs>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Props
|
|
22
|
+
|
|
23
|
+
| Name | Type | Default | Description |
|
|
24
|
+
| --- | --- | --- | --- |
|
|
25
|
+
| `title` | `String` | **required** | Tab label text. |
|
|
26
|
+
| `selected` | `Boolean` | `false` | Mark this tab as initially selected. |
|
|
27
|
+
| `to` | `String \| Object` | `null` | Router-link target (only used when the parent `AbTabs` has `is-route-mode`). |
|
|
28
|
+
|
|
29
|
+
## Events
|
|
30
|
+
|
|
31
|
+
None.
|
|
32
|
+
|
|
33
|
+
## Slots
|
|
34
|
+
|
|
35
|
+
| Name | Description |
|
|
36
|
+
| --- | --- |
|
|
37
|
+
| `default` | Tab pane content. |
|
|
38
|
+
| `icon` | Icon shown next to the tab title. |
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# AbTable — AI Reference
|
|
2
|
+
|
|
3
|
+
Data grid with column definitions, per-cell and per-header slot overrides, and an `empty` slot.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Globally registered by the plugin.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```vue
|
|
12
|
+
<template>
|
|
13
|
+
<ab-table
|
|
14
|
+
:items="users"
|
|
15
|
+
:fields="[
|
|
16
|
+
{ key: 'name', label: 'Name' },
|
|
17
|
+
{ key: 'email', label: 'Email' },
|
|
18
|
+
{ key: 'role', label: 'Role' },
|
|
19
|
+
{ key: 'actions', label: '' },
|
|
20
|
+
]"
|
|
21
|
+
>
|
|
22
|
+
<!-- Custom header -->
|
|
23
|
+
<template #head(name)>Full Name</template>
|
|
24
|
+
|
|
25
|
+
<!-- Custom cell -->
|
|
26
|
+
<template #cell(role)="{ value }">
|
|
27
|
+
<ab-badge class="bg-primary">{{ value }}</ab-badge>
|
|
28
|
+
</template>
|
|
29
|
+
|
|
30
|
+
<template #cell(actions)="{ item }">
|
|
31
|
+
<ab-button class="btn-sm btn-outline-secondary" @click="edit(item)">Edit</ab-button>
|
|
32
|
+
</template>
|
|
33
|
+
|
|
34
|
+
<template #empty>No users yet.</template>
|
|
35
|
+
</ab-table>
|
|
36
|
+
</template>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Props
|
|
40
|
+
|
|
41
|
+
| Name | Type | Default | Description |
|
|
42
|
+
| --- | --- | --- | --- |
|
|
43
|
+
| `items` | `Array` | `[]` | Table row objects. |
|
|
44
|
+
| `fields` | `Array` | `[]` | Column definitions — each string key or `{ key, label }`. |
|
|
45
|
+
| `tableClass` | `String \| Array \| Object` | `""` | CSS class(es) applied to the `<table>`. |
|
|
46
|
+
|
|
47
|
+
## Events
|
|
48
|
+
|
|
49
|
+
None.
|
|
50
|
+
|
|
51
|
+
## Slots
|
|
52
|
+
|
|
53
|
+
| Name | Scope | Description |
|
|
54
|
+
| --- | --- | --- |
|
|
55
|
+
| `thead` | — | Override the entire table head. |
|
|
56
|
+
| `tbody` | — | Override the entire table body. |
|
|
57
|
+
| `head(fieldKey)` | — | Override header content for a given field. |
|
|
58
|
+
| `cell(fieldKey)` | `{ value, item, index }` | Override cell content for a given field. |
|
|
59
|
+
| `empty` | — | Message shown when `items` is empty. |
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# AbTabs — AI Reference
|
|
2
|
+
|
|
3
|
+
Parent container for tabbed interfaces. Pair with `AbTab` children. Supports both "content-switching" mode (default) and "router-link" mode for navigation-driven tabs.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Globally registered by the plugin.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```vue
|
|
12
|
+
<template>
|
|
13
|
+
<!-- Content-switching tabs -->
|
|
14
|
+
<ab-tabs nav-class="nav-pills">
|
|
15
|
+
<ab-tab title="Overview" selected>Overview content</ab-tab>
|
|
16
|
+
<ab-tab title="Billing">Billing content</ab-tab>
|
|
17
|
+
<ab-tab title="Security">Security content</ab-tab>
|
|
18
|
+
</ab-tabs>
|
|
19
|
+
|
|
20
|
+
<!-- Router-link tabs -->
|
|
21
|
+
<ab-tabs is-route-mode>
|
|
22
|
+
<ab-tab title="Users" :to="{ name: 'users' }" />
|
|
23
|
+
<ab-tab title="Teams" :to="{ name: 'teams' }" />
|
|
24
|
+
</ab-tabs>
|
|
25
|
+
</template>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Props
|
|
29
|
+
|
|
30
|
+
| Name | Type | Default | Description |
|
|
31
|
+
| --- | --- | --- | --- |
|
|
32
|
+
| `tabContainerClass` | `String` | — | Root wrapper class. |
|
|
33
|
+
| `navContainerClass` | `String` | — | Wrapper around the nav list. |
|
|
34
|
+
| `tabDetailsClass` | `String` | — | Wrapper around the tab content. |
|
|
35
|
+
| `navClass` | `String` | `"nav-pills"` | Class on the nav list itself (e.g. `nav-tabs`, `nav-pills`). |
|
|
36
|
+
| `tabClass` | `String` | `""` | Class on each individual tab link. |
|
|
37
|
+
| `isRouteMode` | `Boolean` | `false` | When `true`, tab clicks perform router navigation. |
|
|
38
|
+
|
|
39
|
+
## Events
|
|
40
|
+
|
|
41
|
+
None.
|
|
42
|
+
|
|
43
|
+
## Slots
|
|
44
|
+
|
|
45
|
+
| Name | Description |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| `default` | Place `<ab-tab>` children here. |
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# AbToggle — AI Reference
|
|
2
|
+
|
|
3
|
+
Accessible switch/toggle control. Supports title + description layout and custom `trueValue` / `falseValue` values (defaults to `"Y"` / `"N"`).
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Globally registered by the plugin.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```vue
|
|
12
|
+
<template>
|
|
13
|
+
<ab-toggle
|
|
14
|
+
v-model="settings.notifications"
|
|
15
|
+
name="notifications"
|
|
16
|
+
title="Email notifications"
|
|
17
|
+
description="Receive weekly digest emails."
|
|
18
|
+
/>
|
|
19
|
+
|
|
20
|
+
<!-- Boolean values -->
|
|
21
|
+
<ab-toggle
|
|
22
|
+
v-model="isActive"
|
|
23
|
+
name="active"
|
|
24
|
+
:true-value="true"
|
|
25
|
+
:false-value="false"
|
|
26
|
+
label="Active"
|
|
27
|
+
/>
|
|
28
|
+
</template>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Props
|
|
32
|
+
|
|
33
|
+
| Name | Type | Default | Description |
|
|
34
|
+
| --- | --- | --- | --- |
|
|
35
|
+
| `modelValue` | `any` | — | v-model binding. |
|
|
36
|
+
| `label` | `String \| null` | `null` | Field label (above the toggle). |
|
|
37
|
+
| `val` | `any` | `"N"` | Initial value when `modelValue` is empty. |
|
|
38
|
+
| `name` | `String` | **required** | VeeValidate field name. |
|
|
39
|
+
| `containerClass` | `String` | `"mb-3"` | Wrapper class. |
|
|
40
|
+
| `size` | `String` | `"md"` | Toggle size. |
|
|
41
|
+
| `trueValue` | `any` | `"Y"` | Value when checked. |
|
|
42
|
+
| `falseValue` | `any` | `"N"` | Value when unchecked. |
|
|
43
|
+
| `title` | `String \| null` | `null` | Title next to the toggle. |
|
|
44
|
+
| `description` | `String \| null` | `null` | Description under the title. |
|
|
45
|
+
| `hints` | `String \| null` | `null` | Helper text. |
|
|
46
|
+
|
|
47
|
+
## Events
|
|
48
|
+
|
|
49
|
+
| Event | Payload | Description |
|
|
50
|
+
| --- | --- | --- |
|
|
51
|
+
| `update:modelValue` | `value` | v-model sync. |
|
|
52
|
+
|
|
53
|
+
## Slots
|
|
54
|
+
|
|
55
|
+
| Name | Description |
|
|
56
|
+
| --- | --- |
|
|
57
|
+
| `label` | Custom label. |
|
|
58
|
+
| `title` | Custom title. |
|
|
59
|
+
| `description` | Custom description. |
|
|
60
|
+
| `descriptionContainer` | Wraps the entire title + description block. |
|
|
61
|
+
| `hints` | Custom hints. |
|
|
62
|
+
|
|
63
|
+
## v-model
|
|
64
|
+
|
|
65
|
+
Yes.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# AbTooltip — AI Reference
|
|
2
|
+
|
|
3
|
+
Programmatic tooltip component. Complements the `v-tooltip` directive — use this when you need slot-driven rich content or interactive tooltips.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Globally registered by the plugin.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```vue
|
|
12
|
+
<template>
|
|
13
|
+
<!-- Simple -->
|
|
14
|
+
<ab-tooltip content="Save changes" placement="top">
|
|
15
|
+
<ab-button class="btn-primary"><i class="bi bi-save"></i></ab-button>
|
|
16
|
+
</ab-tooltip>
|
|
17
|
+
|
|
18
|
+
<!-- Rich content -->
|
|
19
|
+
<ab-tooltip placement="bottom" interactive>
|
|
20
|
+
<ab-button class="btn-outline-secondary">Info</ab-button>
|
|
21
|
+
<template #content>
|
|
22
|
+
<strong>Pro tip</strong>
|
|
23
|
+
<p>Press <ab-kbd>⌘</ab-kbd> + <ab-kbd>S</ab-kbd> to save.</p>
|
|
24
|
+
</template>
|
|
25
|
+
</ab-tooltip>
|
|
26
|
+
</template>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Props
|
|
30
|
+
|
|
31
|
+
| Name | Type | Default | Description |
|
|
32
|
+
| --- | --- | --- | --- |
|
|
33
|
+
| `content` | `String` | `""` | Tooltip text (used when `#content` slot is absent). |
|
|
34
|
+
| `placement` | `String` | `"top"` | `top`, `bottom`, `left`, `right`, or `auto-*`. |
|
|
35
|
+
| `offset` | `Number \| String` | `8` | Offset from the reference element. |
|
|
36
|
+
| `disabled` | `Boolean` | `false` | Disable the tooltip. |
|
|
37
|
+
| `arrow` | `Boolean` | `true` | Show the arrow pointer. |
|
|
38
|
+
| `interactive` | `Boolean` | `false` | Allow hovering the tooltip without it hiding. |
|
|
39
|
+
|
|
40
|
+
## Events
|
|
41
|
+
|
|
42
|
+
None.
|
|
43
|
+
|
|
44
|
+
## Slots
|
|
45
|
+
|
|
46
|
+
| Name | Description |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| `default` | Trigger element. |
|
|
49
|
+
| `content` | Tooltip body (overrides the `content` prop). |
|
|
50
|
+
|
|
51
|
+
## See also
|
|
52
|
+
|
|
53
|
+
- `v-tooltip` directive for simple string hints (`<ab-button v-tooltip="'Hello'">`).
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# AbWizard — AI Reference
|
|
2
|
+
|
|
3
|
+
Multi-step wizard container. Hosts `AbWizardStep` children, supports horizontal / vertical orientations, and multiple visual variants (including modal-rendered wizards).
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Globally registered by the plugin.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```vue
|
|
12
|
+
<template>
|
|
13
|
+
<ab-wizard
|
|
14
|
+
orientation="horizontal"
|
|
15
|
+
variant="circular"
|
|
16
|
+
:before-next="handleBeforeNext"
|
|
17
|
+
@finished="handleFinished"
|
|
18
|
+
@step-changed="onStepChange"
|
|
19
|
+
>
|
|
20
|
+
<ab-wizard-step title="Account" description="Basic info">
|
|
21
|
+
<!-- step content -->
|
|
22
|
+
</ab-wizard-step>
|
|
23
|
+
|
|
24
|
+
<ab-wizard-step title="Profile">
|
|
25
|
+
<!-- step content -->
|
|
26
|
+
</ab-wizard-step>
|
|
27
|
+
|
|
28
|
+
<ab-wizard-step title="Confirm">
|
|
29
|
+
<!-- step content -->
|
|
30
|
+
</ab-wizard-step>
|
|
31
|
+
</ab-wizard>
|
|
32
|
+
</template>
|
|
33
|
+
|
|
34
|
+
<script setup>
|
|
35
|
+
async function handleBeforeNext(currentStepIndex) {
|
|
36
|
+
// Return false to block navigation
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
function handleFinished() { /* all steps done */ }
|
|
40
|
+
function onStepChange(newIndex) { /* active step changed */ }
|
|
41
|
+
</script>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Props
|
|
45
|
+
|
|
46
|
+
| Name | Type | Default | Description |
|
|
47
|
+
| --- | --- | --- | --- |
|
|
48
|
+
| `beforeNext` | `Function` | `async () => true` | Hook before moving forward; return `false` to cancel. |
|
|
49
|
+
| `beforePrev` | `Function` | `async () => true` | Hook before moving back. |
|
|
50
|
+
| `beforeFinish` | `Function` | `async () => true` | Hook before `finished` fires. |
|
|
51
|
+
| `orientation` | `String` | `"horizontal"` | `horizontal` or `vertical`. |
|
|
52
|
+
| `variant` | `String` | `"default"` | `default`, `circular`, `modal`, `circular-modal`, etc. |
|
|
53
|
+
| `stepperSize` | `String` | `"md"` | `sm` or `md`. |
|
|
54
|
+
| `hideControls` | `Boolean` | `false` | Hide the built-in next/prev buttons. |
|
|
55
|
+
| `nextText` | `String` | `"Next"` | Next button label. |
|
|
56
|
+
| `prevText` | `String` | `"Back"` | Previous button label. |
|
|
57
|
+
| `finishText` | `String` | `"Finish"` | Finish button label. |
|
|
58
|
+
| `disableClose` | `Boolean` | `false` | Disable the close button (modal variants). |
|
|
59
|
+
| `modalClass` | `String` | `"modal-lg"` | Modal size class (modal variants only). |
|
|
60
|
+
|
|
61
|
+
## Events
|
|
62
|
+
|
|
63
|
+
| Event | Payload | Description |
|
|
64
|
+
| --- | --- | --- |
|
|
65
|
+
| `finished` | — | User completed the final step. |
|
|
66
|
+
| `step-changed` | `stepIndex` | Active step changed. |
|
|
67
|
+
|
|
68
|
+
## Slots
|
|
69
|
+
|
|
70
|
+
| Name | Description |
|
|
71
|
+
| --- | --- |
|
|
72
|
+
| `default` | `<ab-wizard-step>` children. |
|
|
73
|
+
|
|
74
|
+
## Provides
|
|
75
|
+
|
|
76
|
+
- `AbWizard` injection key for step registration.
|
|
77
|
+
- `registerStepValidator(stepId, fn)` — used by `AbSettingsForm` to register per-step validators.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# AbWizardStep — AI Reference
|
|
2
|
+
|
|
3
|
+
Single step inside an `AbWizard`. Declares its title, optional description, and an optional icon shown in the stepper.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Globally registered by the plugin.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```vue
|
|
12
|
+
<ab-wizard>
|
|
13
|
+
<ab-wizard-step
|
|
14
|
+
title="Account"
|
|
15
|
+
description="Create your account"
|
|
16
|
+
:icon="UserIcon"
|
|
17
|
+
>
|
|
18
|
+
<ab-input-field v-model="form.email" name="email" label="Email" rules="required|email" />
|
|
19
|
+
</ab-wizard-step>
|
|
20
|
+
|
|
21
|
+
<ab-wizard-step title="Confirm" disable-close>
|
|
22
|
+
Ready to submit?
|
|
23
|
+
</ab-wizard-step>
|
|
24
|
+
</ab-wizard>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Props
|
|
28
|
+
|
|
29
|
+
| Name | Type | Default | Description |
|
|
30
|
+
| --- | --- | --- | --- |
|
|
31
|
+
| `title` | `String` | **required** | Step title shown in the stepper. |
|
|
32
|
+
| `description` | `String` | `""` | Step description / subtitle. |
|
|
33
|
+
| `icon` | `Object \| String \| Function` | `null` | Icon component, icon class string, or render function. |
|
|
34
|
+
| `disableClose` | `Boolean` | `false` | Disable the close button while this step is active. |
|
|
35
|
+
|
|
36
|
+
## Events
|
|
37
|
+
|
|
38
|
+
None.
|
|
39
|
+
|
|
40
|
+
## Slots
|
|
41
|
+
|
|
42
|
+
| Name | Description |
|
|
43
|
+
| --- | --- |
|
|
44
|
+
| `default` | Step body content. |
|
|
45
|
+
|
|
46
|
+
## Provides
|
|
47
|
+
|
|
48
|
+
An `AbWizardStep` injection key so children (e.g. `AbSettingsForm`) can register themselves as step validators.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Global UI Configuration (`AppsbdUIConfigure`)
|
|
2
|
+
|
|
3
|
+
**Purpose**: Configure library-wide locale and formatting defaults (like month names, digits, range separator) so every instance of a library component renders consistently without needing manual prop wiring.
|
|
4
|
+
|
|
5
|
+
## Installation / Usage
|
|
6
|
+
|
|
7
|
+
Call `AppsbdUIConfigure` once during your app initialization (e.g., in `main.js`, or when a locale dynamically changes).
|
|
8
|
+
|
|
9
|
+
```javascript
|
|
10
|
+
import { AppsbdUIConfigure } from "@vue3-appsbd-ui";
|
|
11
|
+
|
|
12
|
+
const banglaDigits = ["০", "১", "২", "৩", "৪", "৫", "৬", "৭", "৮", "৯"];
|
|
13
|
+
|
|
14
|
+
AppsbdUIConfigure({
|
|
15
|
+
monthNames: [
|
|
16
|
+
"জানুয়ারি", "ফেব্রুয়ারি", "মার্চ", "এপ্রিল", "মে", "জুন",
|
|
17
|
+
"জুলাই", "আগস্ট", "সেপ্টেম্বর", "অক্টোবর", "নভেম্বর", "ডিসেম্বর"
|
|
18
|
+
],
|
|
19
|
+
monthNamesShort: [
|
|
20
|
+
"জানু", "ফেব্রু", "মার্চ", "এপ্রি", "মে", "জুন",
|
|
21
|
+
"জুলাই", "আগস্ট", "সেপ্টে", "অক্টো", "নভে", "ডিসে"
|
|
22
|
+
],
|
|
23
|
+
dayNames: ["শনি", "রবি", "সোম", "মঙ্গল", "বুধ", "বৃহঃ", "শুক্র"],
|
|
24
|
+
formatDigit: (val) => String(val).replace(/\d/g, (d) => banglaDigits[d]),
|
|
25
|
+
is24Hour: false,
|
|
26
|
+
rangeSeparator: " থেকে ",
|
|
27
|
+
dateDataFormat: "YYYY-MM-DD",
|
|
28
|
+
dateDisplayFormat: "DD/MM/YYYY",
|
|
29
|
+
datetimeDataFormat: "YYYY-MM-DD HH:mm",
|
|
30
|
+
datetimeDisplayFormat: "DD/MM/YYYY hh:mm a",
|
|
31
|
+
timeDataFormat: "HH:mm",
|
|
32
|
+
timeDisplayFormat: "hh:mm a",
|
|
33
|
+
});
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Options Reference
|
|
37
|
+
|
|
38
|
+
| Property | Type | Default | Description |
|
|
39
|
+
| :--- | :--- | :--- | :--- |
|
|
40
|
+
| `monthNames` | `String[]` | English full names | Array of 12 full month names. |
|
|
41
|
+
| `monthNamesShort` | `String[]` | English short names | Array of 12 short month names. |
|
|
42
|
+
| `dayNames` | `String[]` | English 3-letter names | Array of 7 short day names (Sat-first). |
|
|
43
|
+
| `formatDigit` | `Function` | `(val) => String(val)` | Function to format digits. Applied dynamically to `AbNumberField` (display-only) and `AbDateTimePicker`. |
|
|
44
|
+
| `rangeSeparator` | `String` | `' ↔ '` | Separator for date ranges in `AbDateTimePicker`. |
|
|
45
|
+
| `is24Hour` | `Boolean` | `false` | Whether to use 24-hour format in `AbDateTimePicker`. |
|
|
46
|
+
| `dateDataFormat` | `String` | `'YYYY-MM-DD'` | Global format for date data. |
|
|
47
|
+
| `dateDisplayFormat` | `String` | `'YYYY-MM-DD'` | Global format for date display. |
|
|
48
|
+
| `datetimeDataFormat` | `String` | `'YYYY-MM-DD HH:mm'` | Global format for datetime data. |
|
|
49
|
+
| `datetimeDisplayFormat` | `String` | `'YYYY-MM-DD HH:mm'` | Global format for datetime display. |
|
|
50
|
+
| `timeDataFormat` | `String` | `'HH:mm'` | Global format for time data. |
|
|
51
|
+
| `timeDisplayFormat` | `String` | `'HH:mm'` | Global format for time display. |
|
|
52
|
+
| `inputContainerClass` | `String` | `'mb-3'` | Global class for input containers. |
|
|
53
|
+
| `toastPosition` | `String` | `'top-right'` | Default toast position. |
|
|
54
|
+
| `toastDesign` | `String` | `'default'` | Default toast design. |
|
|
55
|
+
| `toastTimeout` | `Number` | `5000` | Default toast timeout in ms. |
|
|
56
|
+
| `toastCloseButton` | `Boolean` | `true` | Default toast close button visibility. |
|
|
57
|
+
| `toastPauseOnHover` | `Boolean` | `true` | Default toast pause on hover. |
|
|
58
|
+
| `toastPauseOnFocusLoss` | `Boolean` | `true` | Default toast pause on focus loss. |
|
|
59
|
+
| `toastShowProgress` | `Boolean` | `true` | Default toast show progress. |
|
|
60
|
+
| `trueValue` | `any` | `'Y'` | Default true value for toggles/switches. |
|
|
61
|
+
| `falseValue` | `any` | `'N'` | Default false value for toggles/switches. |
|
|
62
|
+
| `size` | `String` | `'md'` | Global size for components. |
|
|
63
|
+
|
|
64
|
+
## Precedence Rule
|
|
65
|
+
|
|
66
|
+
Components follow a strict "prop > global config > built-in default" resolution order. For example, if you pass `:is-24-hour="true"` directly to an `<AbDateTimePicker>`, it will override the global config setting for that specific instance.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|