@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.
Files changed (85) hide show
  1. package/.ai/ai_ref_AbAvatar.md +43 -0
  2. package/.ai/ai_ref_AbBadge.md +44 -0
  3. package/.ai/ai_ref_AbButton.md +71 -0
  4. package/.ai/ai_ref_AbCard.md +53 -0
  5. package/.ai/ai_ref_AbCarousel.md +47 -0
  6. package/.ai/ai_ref_AbColorPicker.md +55 -0
  7. package/.ai/ai_ref_AbConfirmPopover.md +59 -0
  8. package/.ai/ai_ref_AbCustomField.md +74 -0
  9. package/.ai/ai_ref_AbDarkModeToggler.md +42 -0
  10. package/.ai/ai_ref_AbDateTimePicker.md +105 -0
  11. package/.ai/ai_ref_AbEasyModal.md +62 -0
  12. package/.ai/ai_ref_AbField.md +93 -0
  13. package/.ai/ai_ref_AbFileUploader.md +63 -0
  14. package/.ai/ai_ref_AbFilterPanel.md +71 -0
  15. package/.ai/ai_ref_AbFormCheck.md +75 -0
  16. package/.ai/ai_ref_AbImageRadioInput.md +63 -0
  17. package/.ai/ai_ref_AbInputField.md +71 -0
  18. package/.ai/ai_ref_AbInputTag.md +73 -0
  19. package/.ai/ai_ref_AbKbd.md +35 -0
  20. package/.ai/ai_ref_AbKbdGroup.md +33 -0
  21. package/.ai/ai_ref_AbModal.md +103 -0
  22. package/.ai/ai_ref_AbMultiSelect.md +108 -0
  23. package/.ai/ai_ref_AbNumberField.md +84 -0
  24. package/.ai/ai_ref_AbPinInput.md +45 -0
  25. package/.ai/ai_ref_AbPopover.md +64 -0
  26. package/.ai/ai_ref_AbPricingCard.md +64 -0
  27. package/.ai/ai_ref_AbPricingContainer.md +49 -0
  28. package/.ai/ai_ref_AbPricingTable.md +72 -0
  29. package/.ai/ai_ref_AbProgressbar.md +37 -0
  30. package/.ai/ai_ref_AbScrollbar.md +48 -0
  31. package/.ai/ai_ref_AbSettingsForm.md +54 -0
  32. package/.ai/ai_ref_AbSideMenuItem.md +58 -0
  33. package/.ai/ai_ref_AbSidebar.md +70 -0
  34. package/.ai/ai_ref_AbSkeleton.md +41 -0
  35. package/.ai/ai_ref_AbSlider.md +71 -0
  36. package/.ai/ai_ref_AbTab.md +38 -0
  37. package/.ai/ai_ref_AbTable.md +59 -0
  38. package/.ai/ai_ref_AbTabs.md +47 -0
  39. package/.ai/ai_ref_AbToggle.md +65 -0
  40. package/.ai/ai_ref_AbTooltip.md +53 -0
  41. package/.ai/ai_ref_AbWizard.md +77 -0
  42. package/.ai/ai_ref_AbWizardStep.md +48 -0
  43. package/.ai/ai_ref_global_config.md +66 -0
  44. package/.ai/ltr-after.png +0 -0
  45. package/.ai/rtl-after.png +0 -0
  46. package/.ai/rtl-before.png +0 -0
  47. package/AI_REFERENCE.md +1178 -0
  48. package/dist/skins/_prefix.scss +1 -0
  49. package/dist/skins/black.css +1 -0
  50. package/dist/skins/black.scss +3 -0
  51. package/dist/skins/cyan.css +1 -0
  52. package/dist/skins/cyan.scss +3 -0
  53. package/dist/skins/default.css +1 -0
  54. package/dist/skins/default.scss +5 -0
  55. package/dist/skins/gray.css +1 -0
  56. package/dist/skins/gray.scss +3 -0
  57. package/dist/skins/green.css +1 -0
  58. package/dist/skins/green.scss +5 -0
  59. package/dist/skins/orange.css +1 -0
  60. package/dist/skins/orange.scss +3 -0
  61. package/dist/skins/pink.css +1 -0
  62. package/dist/skins/pink.scss +3 -0
  63. package/dist/skins/purple.css +1 -0
  64. package/dist/skins/purple.scss +3 -0
  65. package/dist/skins/red.css +1 -0
  66. package/dist/skins/red.scss +3 -0
  67. package/dist/skins/themes/_black.scss +6 -0
  68. package/dist/skins/themes/_blue.scss +43 -0
  69. package/dist/skins/themes/_common_variable.scss +589 -0
  70. package/dist/skins/themes/_cyan.scss +6 -0
  71. package/dist/skins/themes/_gray.scss +6 -0
  72. package/dist/skins/themes/_green.scss +6 -0
  73. package/dist/skins/themes/_grid.scss +27 -0
  74. package/dist/skins/themes/_orange.scss +6 -0
  75. package/dist/skins/themes/_pink.scss +6 -0
  76. package/dist/skins/themes/_purple.scss +6 -0
  77. package/dist/skins/themes/_red.scss +6 -0
  78. package/dist/skins/themes/_violet.scss +6 -0
  79. package/dist/skins/violet.css +1 -0
  80. package/dist/skins/violet.scss +3 -0
  81. package/dist/style.css +1 -0
  82. package/dist/vue3-appsbd-ui.cjs.js +201 -0
  83. package/dist/vue3-appsbd-ui.es.js +9294 -0
  84. package/package.json +60 -0
  85. 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