@appsbd/vue3-appsbd-ui 1.0.4 → 1.0.6

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 (91) hide show
  1. package/.ai/ai_ref_AbAvatar.md +41 -41
  2. package/.ai/ai_ref_AbBadge.md +36 -36
  3. package/.ai/ai_ref_AbButton.md +52 -51
  4. package/.ai/ai_ref_AbCard.md +51 -51
  5. package/.ai/ai_ref_AbCarousel.md +36 -36
  6. package/.ai/ai_ref_AbChart.md +46 -46
  7. package/.ai/ai_ref_AbColorPicker.md +42 -42
  8. package/.ai/ai_ref_AbConfirmPopover.md +54 -54
  9. package/.ai/ai_ref_AbCustomField.md +66 -66
  10. package/.ai/ai_ref_AbDarkModeToggler.md +33 -33
  11. package/.ai/ai_ref_AbDateTimePicker.md +74 -74
  12. package/.ai/ai_ref_AbEasyModal.md +56 -56
  13. package/.ai/ai_ref_AbField.md +88 -88
  14. package/.ai/ai_ref_AbFileUploader.md +47 -47
  15. package/.ai/ai_ref_AbFilterPanel.md +67 -67
  16. package/.ai/ai_ref_AbFormCheck.md +58 -58
  17. package/.ai/ai_ref_AbImageRadioInput.md +55 -55
  18. package/.ai/ai_ref_AbInputField.md +66 -66
  19. package/.ai/ai_ref_AbInputTag.md +56 -56
  20. package/.ai/ai_ref_AbKbd.md +23 -23
  21. package/.ai/ai_ref_AbKbdGroup.md +21 -21
  22. package/.ai/ai_ref_AbMainLayout.md +106 -0
  23. package/.ai/ai_ref_AbMultiSelect.md +78 -78
  24. package/.ai/ai_ref_AbNumberField.md +59 -59
  25. package/.ai/ai_ref_AbPinInput.md +33 -33
  26. package/.ai/ai_ref_AbPopover.md +54 -54
  27. package/.ai/ai_ref_AbPricingCard.md +56 -56
  28. package/.ai/ai_ref_AbPricingContainer.md +41 -41
  29. package/.ai/ai_ref_AbPricingTable.md +56 -56
  30. package/.ai/ai_ref_AbProgressbar.md +34 -34
  31. package/.ai/ai_ref_AbScrollbar.md +38 -38
  32. package/.ai/ai_ref_AbSettingsForm.md +46 -46
  33. package/.ai/ai_ref_AbSideMenuItem.md +47 -47
  34. package/.ai/ai_ref_AbSidebar.md +62 -62
  35. package/.ai/ai_ref_AbSkeleton.md +23 -23
  36. package/.ai/ai_ref_AbSlider.md +52 -52
  37. package/.ai/ai_ref_AbTab.md +30 -30
  38. package/.ai/ai_ref_AbTable.md +49 -49
  39. package/.ai/ai_ref_AbTabs.md +37 -37
  40. package/.ai/ai_ref_AbToggle.md +46 -46
  41. package/.ai/ai_ref_AbTooltip.md +39 -39
  42. package/.ai/ai_ref_AbWizard.md +64 -64
  43. package/.ai/ai_ref_AbWizardStep.md +36 -36
  44. package/.ai/ai_ref_abEventBus.md +66 -66
  45. package/.ai/ai_ref_abRequestParam.md +40 -40
  46. package/.ai/ai_ref_abVeeRules.md +33 -33
  47. package/.ai/ai_ref_global_config.md +57 -56
  48. package/.ai/ai_ref_useAlert.md +50 -45
  49. package/.ai/ai_ref_useFileValidator.md +31 -31
  50. package/.ai/ai_ref_useResponsive.md +41 -41
  51. package/.ai/ai_ref_useTheme.md +28 -28
  52. package/.ai/ai_ref_useToast.md +30 -30
  53. package/AI_REFERENCE.md +87 -86
  54. package/design-system.md +403 -403
  55. package/dist/skins/black.css +1 -1
  56. package/dist/skins/black.scss +3 -3
  57. package/dist/skins/cyan.css +1 -1
  58. package/dist/skins/cyan.scss +3 -3
  59. package/dist/skins/default.css +1 -1
  60. package/dist/skins/default.scss +5 -5
  61. package/dist/skins/gray.css +1 -1
  62. package/dist/skins/gray.scss +3 -3
  63. package/dist/skins/green.css +1 -1
  64. package/dist/skins/green.scss +5 -5
  65. package/dist/skins/orange.css +1 -1
  66. package/dist/skins/orange.scss +3 -3
  67. package/dist/skins/pink.css +1 -1
  68. package/dist/skins/pink.scss +3 -3
  69. package/dist/skins/purple.css +1 -1
  70. package/dist/skins/purple.scss +3 -3
  71. package/dist/skins/red.css +1 -1
  72. package/dist/skins/red.scss +3 -3
  73. package/dist/skins/themes/_black.scss +18 -6
  74. package/dist/skins/themes/_blue.scss +18 -43
  75. package/dist/skins/themes/_common_variable.scss +695 -685
  76. package/dist/skins/themes/_cyan.scss +18 -6
  77. package/dist/skins/themes/_gray.scss +18 -7
  78. package/dist/skins/themes/_green.scss +18 -6
  79. package/dist/skins/themes/_grid.scss +32 -30
  80. package/dist/skins/themes/_orange.scss +18 -6
  81. package/dist/skins/themes/_pink.scss +18 -6
  82. package/dist/skins/themes/_purple.scss +18 -6
  83. package/dist/skins/themes/_red.scss +18 -6
  84. package/dist/skins/themes/_violet.scss +18 -6
  85. package/dist/skins/violet.css +1 -1
  86. package/dist/skins/violet.scss +3 -3
  87. package/dist/style.css +1 -1
  88. package/dist/vue3-appsbd-ui.cjs.js +130 -142
  89. package/dist/vue3-appsbd-ui.es.js +21544 -20015
  90. package/package.json +72 -72
  91. package/readme.md +194 -194
@@ -1,54 +1,54 @@
1
- # AbConfirmPopover — AI Reference
2
-
3
- Confirmation popover with an async `onConfirm` handler and built-in loader. Useful for destructive actions (delete, archive) that need inline confirmation without a modal.
4
-
5
- ## Usage
6
-
7
- ```vue
8
- <template>
9
- <ab-confirm-popover
10
- msg="Delete this record?"
11
- icon="warning"
12
- :on-confirm="handleDelete"
13
- :item-data="record"
14
- confirm-text="Delete"
15
- cancel-text="Keep"
16
- >
17
- <ab-button class="btn-danger"><i class="bi bi-trash"></i></ab-button>
18
- </ab-confirm-popover>
19
- </template>
20
-
21
- <script setup>
22
- async function handleDelete(record) {
23
- await api.delete(record.id);
24
- // loader and popover close handled by the component
25
- }
26
- </script>
27
- ```
28
-
29
- ## Props
30
-
31
- | Name | Type | Default | Description |
32
- | --- | --- | --- | --- |
33
- | `msg` | `String` | `"Are you sure?"` | Confirmation message. |
34
- | `title` | `String` | `""` | Optional title above the message. |
35
- | `confirmText` | `String` | `"Yes"` | Confirm button label. |
36
- | `cancelText` | `String` | `"No"` | Cancel button label. |
37
- | `icon` | `String` | `"question"` | `success`, `error`, `warning`, `info`, `question`. |
38
- | `type` | `String` | `"confirm"` | `confirm`, `confirm-ajax`, or `alert`. |
39
- | `onConfirm` | `Function` | `null` | Async handler `(itemData) => Promise`. Preferred over `onConfirmed` event. |
40
- | `itemData` | `Object \| String \| Number \| Array` | `null` | Payload passed to `onConfirm`. |
41
-
42
- ## Events
43
-
44
- | Event | Payload | Description |
45
- | --- | --- | --- |
46
- | `onConfirmed` | `{ showLoader(status), itemData, closePopover }` | Legacy callback — used only when no `onConfirm` prop is provided. Call `showLoader(true)` to start the loader, then `closePopover()` when done. |
47
-
48
- ## Slots
49
-
50
- | Name | Scope | Description |
51
- | --- | --- | --- |
52
- | `default` | — | Trigger element (typically an `AbButton`). |
53
- | `desc` | — | Additional description below the message. |
54
- | `actionButtons` | `{ removeConfirmed, state }` | Custom action buttons — call `removeConfirmed()` to trigger the confirm flow. |
1
+ # AbConfirmPopover — AI Reference
2
+
3
+ Confirmation popover with an async `onConfirm` handler and built-in loader. Useful for destructive actions (delete, archive) that need inline confirmation without a modal.
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-confirm-popover
10
+ msg="Delete this record?"
11
+ icon="warning"
12
+ :on-confirm="handleDelete"
13
+ :item-data="record"
14
+ confirm-text="Delete"
15
+ cancel-text="Keep"
16
+ >
17
+ <ab-button class="btn-danger"><i class="bi bi-trash"></i></ab-button>
18
+ </ab-confirm-popover>
19
+ </template>
20
+
21
+ <script setup>
22
+ async function handleDelete(record) {
23
+ await api.delete(record.id);
24
+ // loader and popover close handled by the component
25
+ }
26
+ </script>
27
+ ```
28
+
29
+ ## Props
30
+
31
+ | Name | Type | Default | Description |
32
+ | --- | --- | --- | --- |
33
+ | `msg` | `String` | `"Are you sure?"` | Confirmation message. |
34
+ | `title` | `String` | `""` | Optional title above the message. |
35
+ | `confirmText` | `String` | `"Yes"` | Confirm button label. |
36
+ | `cancelText` | `String` | `"No"` | Cancel button label. |
37
+ | `icon` | `String` | `"question"` | `success`, `error`, `warning`, `info`, `question`. |
38
+ | `type` | `String` | `"confirm"` | `confirm`, `confirm-ajax`, or `alert`. |
39
+ | `onConfirm` | `Function` | `null` | Async handler `(itemData) => Promise`. Preferred over `onConfirmed` event. |
40
+ | `itemData` | `Object \| String \| Number \| Array` | `null` | Payload passed to `onConfirm`. |
41
+
42
+ ## Events
43
+
44
+ | Event | Payload | Description |
45
+ | --- | --- | --- |
46
+ | `onConfirmed` | `{ showLoader(status), itemData, closePopover }` | Legacy callback — used only when no `onConfirm` prop is provided. Call `showLoader(true)` to start the loader, then `closePopover()` when done. |
47
+
48
+ ## Slots
49
+
50
+ | Name | Scope | Description |
51
+ | --- | --- | --- |
52
+ | `default` | — | Trigger element (typically an `AbButton`). |
53
+ | `desc` | — | Additional description below the message. |
54
+ | `actionButtons` | `{ removeConfirmed, state }` | Custom action buttons — call `removeConfirmed()` to trigger the confirm flow. |
@@ -1,66 +1,66 @@
1
- # AbCustomField — AI Reference
2
-
3
- Dynamic form scaffold — takes a `fieldInputs` array describing multiple fields and renders them all, binding values to an external `customProps` object.
4
-
5
- ## Usage
6
-
7
- ```vue
8
- <template>
9
- <ab-custom-field :field-inputs="fields" :custom-props="form" size="sm" />
10
- </template>
11
-
12
- <script setup>
13
- import { reactive } from 'vue';
14
-
15
- const form = reactive({ username: '', age: null, role: 'admin', active: 'Y' });
16
-
17
- const fields = [
18
- { id: 'username', type: 'T', label: 'Username', rules: 'required' },
19
- { id: 'age', type: 'N', label: 'Age' },
20
- { id: 'role', type: 'W', label: 'Role', options: [
21
- { val: 'admin', title: 'Admin' },
22
- { val: 'user', title: 'User' },
23
- ] },
24
- { id: 'active', type: 'S', label: 'Active' },
25
- ];
26
- </script>
27
- ```
28
-
29
- ## Props
30
-
31
- | Name | Type | Default | Description |
32
- | --- | --- | --- | --- |
33
- | `fieldInputs` | `Array` | `[]` | Field definitions (see type table below). |
34
- | `size` | `String` | `"sm"` | Default input size applied to every field. |
35
- | `customProps` | `Object` | `{}` | Reactive object that field values bind into (keyed by each field's `id`). |
36
-
37
- ### Field `type` codes
38
-
39
- | Code | Renders |
40
- | --- | --- |
41
- | `T` | Text input |
42
- | `N` | Number input |
43
- | `U` | URL input |
44
- | `P` | Password input |
45
- | `E` | Textarea |
46
- | `H` | Hidden input |
47
- | `D` | Date picker |
48
- | `DR` | Date range picker |
49
- | `R` | Radio group |
50
- | `W` | Dropdown / select |
51
- | `S` | Switch / toggle |
52
- | `C` | Checkbox |
53
-
54
- ## Slots (scoped by field id)
55
-
56
- For each field whose `id` is `xyz`, the following named slots are available:
57
-
58
- | Slot | Description |
59
- | --- | --- |
60
- | `Label{id}` | Custom label for the field. |
61
- | `Hints{id}` | Custom hints/helper text. |
62
- | `Prefix{id}` | Custom prefix. |
63
- | `Postfix{id}` | Custom postfix. |
64
- | `Icon{id}` | Custom icon (date picker). |
65
- | `Description{id}` | Custom description. |
66
- | `HelpText{id}` | Custom help text. |
1
+ # AbCustomField — AI Reference
2
+
3
+ Dynamic form scaffold — takes a `fieldInputs` array describing multiple fields and renders them all, binding values to an external `customProps` object.
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-custom-field :field-inputs="fields" :custom-props="form" size="sm" />
10
+ </template>
11
+
12
+ <script setup>
13
+ import { reactive } from 'vue';
14
+
15
+ const form = reactive({ username: '', age: null, role: 'admin', active: 'Y' });
16
+
17
+ const fields = [
18
+ { id: 'username', type: 'T', label: 'Username', rules: 'required' },
19
+ { id: 'age', type: 'N', label: 'Age' },
20
+ { id: 'role', type: 'W', label: 'Role', options: [
21
+ { val: 'admin', title: 'Admin' },
22
+ { val: 'user', title: 'User' },
23
+ ] },
24
+ { id: 'active', type: 'S', label: 'Active' },
25
+ ];
26
+ </script>
27
+ ```
28
+
29
+ ## Props
30
+
31
+ | Name | Type | Default | Description |
32
+ | --- | --- | --- | --- |
33
+ | `fieldInputs` | `Array` | `[]` | Field definitions (see type table below). |
34
+ | `size` | `String` | `"sm"` | Default input size applied to every field. |
35
+ | `customProps` | `Object` | `{}` | Reactive object that field values bind into (keyed by each field's `id`). |
36
+
37
+ ### Field `type` codes
38
+
39
+ | Code | Renders |
40
+ | --- | --- |
41
+ | `T` | Text input |
42
+ | `N` | Number input |
43
+ | `U` | URL input |
44
+ | `P` | Password input |
45
+ | `E` | Textarea |
46
+ | `H` | Hidden input |
47
+ | `D` | Date picker |
48
+ | `DR` | Date range picker |
49
+ | `R` | Radio group |
50
+ | `W` | Dropdown / select |
51
+ | `S` | Switch / toggle |
52
+ | `C` | Checkbox |
53
+
54
+ ## Slots (scoped by field id)
55
+
56
+ For each field whose `id` is `xyz`, the following named slots are available:
57
+
58
+ | Slot | Description |
59
+ | --- | --- |
60
+ | `Label{id}` | Custom label for the field. |
61
+ | `Hints{id}` | Custom hints/helper text. |
62
+ | `Prefix{id}` | Custom prefix. |
63
+ | `Postfix{id}` | Custom postfix. |
64
+ | `Icon{id}` | Custom icon (date picker). |
65
+ | `Description{id}` | Custom description. |
66
+ | `HelpText{id}` | Custom help text. |
@@ -1,33 +1,33 @@
1
- # AbDarkModeToggler — AI Reference
2
-
3
- Light/dark theme toggle. Pairs with the `useTheme()` composable — clicking flips the current theme.
4
-
5
- ## Usage
6
-
7
- ```vue
8
- <template>
9
- <ab-dark-mode-toggler size="md" />
10
-
11
- <ab-dark-mode-toggler size="lg">
12
- <template #dark-icon><i class="bi bi-sun"></i></template>
13
- <template #light-icon><i class="bi bi-moon-stars"></i></template>
14
- </ab-dark-mode-toggler>
15
- </template>
16
- ```
17
-
18
- ## Props
19
-
20
- | Name | Type | Default | Description |
21
- | --- | --- | --- | --- |
22
- | `size` | `String` | `"md"` | One of: `xs`, `sm`, `md`, `lg`, `xl`, `2xl`. |
23
-
24
- ## Slots
25
-
26
- | Name | Description |
27
- | --- | --- |
28
- | `dark-icon` | Icon shown when the current theme is dark (typically a sun). |
29
- | `light-icon` | Icon shown when the current theme is light (typically a moon). |
30
-
31
- ## Related
32
-
33
- - `useTheme()` composable exposes `isDarkMode`, `toggleTheme()`, `setTheme()`.
1
+ # AbDarkModeToggler — AI Reference
2
+
3
+ Light/dark theme toggle. Pairs with the `useTheme()` composable — clicking flips the current theme.
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-dark-mode-toggler size="md" />
10
+
11
+ <ab-dark-mode-toggler size="lg">
12
+ <template #dark-icon><i class="bi bi-sun"></i></template>
13
+ <template #light-icon><i class="bi bi-moon-stars"></i></template>
14
+ </ab-dark-mode-toggler>
15
+ </template>
16
+ ```
17
+
18
+ ## Props
19
+
20
+ | Name | Type | Default | Description |
21
+ | --- | --- | --- | --- |
22
+ | `size` | `String` | `"md"` | One of: `xs`, `sm`, `md`, `lg`, `xl`, `2xl`. |
23
+
24
+ ## Slots
25
+
26
+ | Name | Description |
27
+ | --- | --- |
28
+ | `dark-icon` | Icon shown when the current theme is dark (typically a sun). |
29
+ | `light-icon` | Icon shown when the current theme is light (typically a moon). |
30
+
31
+ ## Related
32
+
33
+ - `useTheme()` composable exposes `isDarkMode`, `toggleTheme()`, `setTheme()`.
@@ -1,74 +1,74 @@
1
- # AbDateTimePicker — AI Reference
2
-
3
- Advanced date/time/range picker built on `v-calendar`. Supports single-date, date-range, time-only, and datetime modes, with per-locale digit formatters and day/month name overrides.
4
-
5
- ## Usage
6
-
7
- ```vue
8
- <template>
9
- <ab-date-time-picker v-model="date" name="startDate" label="Start date" data-format="YYYY-MM-DD" :min-date="new Date()" />
10
-
11
- <ab-date-time-picker v-model="range" name="period" label="Reporting period" is-range range-separator=" → " />
12
-
13
- <ab-date-time-picker v-model="datetime" name="meetingAt" label="Meeting at" mode="datetime" is24-hour :minute-step="15" />
14
- </template>
15
-
16
- <script setup>
17
- import { ref } from 'vue';
18
- const date = ref(null);
19
- const range = ref({ start: null, end: null });
20
- const datetime = ref(null);
21
- </script>
22
- ```
23
-
24
- ## Props
25
-
26
- | Name | Type | Default | Description |
27
- | --- | --- | --- | --- |
28
- | `modelValue` | `String \| Object` | `null` | Date (or `{ start, end }` for range). |
29
- | `label` | `String` | `""` | Field label. |
30
- | `placeholder` | `String` | `""` | Input placeholder. |
31
- | `name` | `String` | **required** | VeeValidate field name. |
32
- | `rules` | `String \| Object` | `""` | VeeValidate rules. |
33
- | `isRange` | `Boolean` | `false` | Enable date-range mode. |
34
- | `size` | `String` | `"md"` | Adjusts component size (`xs`, `sm`, `md`, `lg`, `xl`, `xxl`). |
35
- | `containerClass` | `String` | `"mb-3"` | Wrapper class. |
36
- | `hints` | `String` | `""` | Helper text. |
37
- | `isDisable` | `Boolean` | `false` | Disable the picker. |
38
- | `visibility` | `String` | `"click"` | v-calendar popover trigger. |
39
- | `mask` | `String` | `""` | Input mask. |
40
- | `dataFormat` | `String` | `"YYYY-MM-DD"` | Storage format. |
41
- | `displayFormat` | `String` | `"YYYY-MM-DD"` | Display format. |
42
- | `maxDate` | `Date \| String` | `undefined` | Maximum selectable date. |
43
- | `minDate` | `Date \| String` | `undefined` | Minimum selectable date. |
44
- | `disableDates` | `Array` | `[]` | Accepts `Date`, string, or `{ repeat: { weekdays: [...] } }` entries. |
45
- | `showInInput` | `Boolean` | `true` | Input-style trigger (vs button). |
46
- | `monthNames` | `Array` | `undefined` | Custom full month names. |
47
- | `monthNamesShort` | `Array` | `undefined` | Custom short month names. |
48
- | `dayNames` | `Array` | `undefined` | Custom day names. |
49
- | `formatDigit` | `Function` | `undefined` | Locale digit formatter (e.g. Bengali digits). |
50
- | `rangeSeparator` | `String` | `undefined` | Display separator between range start/end. |
51
- | `mode` | `String` | `"date"` | `date`, `time`, or `datetime`. |
52
- | `is24Hour` | `Boolean` | `undefined` | 24-hour clock. |
53
- | `minuteStep` | `Number` | `1` | Minute increment. |
54
- | `isLeftIconBorder` | `Boolean` | `false` | Border on prefix icon. |
55
- | `isRightIconBorder` | `Boolean` | `false` | Border on suffix icon. |
56
- | `isHideLabel` | `Boolean` | `false` | Hide the label visually. |
57
- | `defaultIconPosition` | `String` | `"right"` | Position of the default calendar/clock icon. |
58
- | `iconPosition` | `String` | `"right"` | Position of the custom `#icon` slot. |
59
-
60
- ## Events
61
-
62
- | Event | Payload | Description |
63
- | --- | --- | --- |
64
- | `update:modelValue` | `value` | v-model sync. |
65
-
66
- ## Slots
67
-
68
- | Name | Scope | Description |
69
- | --- | --- | --- |
70
- | `label` | — | Custom label. |
71
- | `prefix` | — | Prefix area. |
72
- | `icon` | — | Calendar / clock icon. |
73
- | `hints` | — | Custom hints. |
74
- | `picker-container` | `{ isRange, showInInput, value }` | Override the entire picker UI. |
1
+ # AbDateTimePicker — AI Reference
2
+
3
+ Advanced date/time/range picker built on `v-calendar`. Supports single-date, date-range, time-only, and datetime modes, with per-locale digit formatters and day/month name overrides.
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-date-time-picker v-model="date" name="startDate" label="Start date" data-format="YYYY-MM-DD" :min-date="new Date()" />
10
+
11
+ <ab-date-time-picker v-model="range" name="period" label="Reporting period" is-range range-separator=" → " />
12
+
13
+ <ab-date-time-picker v-model="datetime" name="meetingAt" label="Meeting at" mode="datetime" is24-hour :minute-step="15" />
14
+ </template>
15
+
16
+ <script setup>
17
+ import { ref } from 'vue';
18
+ const date = ref(null);
19
+ const range = ref({ start: null, end: null });
20
+ const datetime = ref(null);
21
+ </script>
22
+ ```
23
+
24
+ ## Props
25
+
26
+ | Name | Type | Default | Description |
27
+ | --- | --- | --- | --- |
28
+ | `modelValue` | `String \| Object` | `null` | Date (or `{ start, end }` for range). |
29
+ | `label` | `String` | `""` | Field label. |
30
+ | `placeholder` | `String` | `""` | Input placeholder. |
31
+ | `name` | `String` | **required** | VeeValidate field name. |
32
+ | `rules` | `String \| Object` | `""` | VeeValidate rules. |
33
+ | `isRange` | `Boolean` | `false` | Enable date-range mode. |
34
+ | `size` | `String` | `"md"` | Adjusts component size (`xs`, `sm`, `md`, `lg`, `xl`, `xxl`). |
35
+ | `containerClass` | `String` | `"mb-3"` | Wrapper class. |
36
+ | `hints` | `String` | `""` | Helper text. |
37
+ | `isDisable` | `Boolean` | `false` | Disable the picker. |
38
+ | `visibility` | `String` | `"click"` | v-calendar popover trigger. |
39
+ | `mask` | `String` | `""` | Input mask. |
40
+ | `dataFormat` | `String` | `"YYYY-MM-DD"` | Storage format. |
41
+ | `displayFormat` | `String` | `"YYYY-MM-DD"` | Display format. |
42
+ | `maxDate` | `Date \| String` | `undefined` | Maximum selectable date. |
43
+ | `minDate` | `Date \| String` | `undefined` | Minimum selectable date. |
44
+ | `disableDates` | `Array` | `[]` | Accepts `Date`, string, or `{ repeat: { weekdays: [...] } }` entries. |
45
+ | `showInInput` | `Boolean` | `true` | Input-style trigger (vs button). |
46
+ | `monthNames` | `Array` | `undefined` | Custom full month names. |
47
+ | `monthNamesShort` | `Array` | `undefined` | Custom short month names. |
48
+ | `dayNames` | `Array` | `undefined` | Custom day names. |
49
+ | `formatDigit` | `Function` | `undefined` | Locale digit formatter (e.g. Bengali digits). |
50
+ | `rangeSeparator` | `String` | `undefined` | Display separator between range start/end. |
51
+ | `mode` | `String` | `"date"` | `date`, `time`, or `datetime`. |
52
+ | `is24Hour` | `Boolean` | `undefined` | 24-hour clock. |
53
+ | `minuteStep` | `Number` | `1` | Minute increment. |
54
+ | `isLeftIconBorder` | `Boolean` | `false` | Border on prefix icon. |
55
+ | `isRightIconBorder` | `Boolean` | `false` | Border on suffix icon. |
56
+ | `isHideLabel` | `Boolean` | `false` | Hide the label visually. |
57
+ | `defaultIconPosition` | `String` | `"right"` | Position of the default calendar/clock icon. |
58
+ | `iconPosition` | `String` | `"right"` | Position of the custom `#icon` slot. |
59
+
60
+ ## Events
61
+
62
+ | Event | Payload | Description |
63
+ | --- | --- | --- |
64
+ | `update:modelValue` | `value` | v-model sync. |
65
+
66
+ ## Slots
67
+
68
+ | Name | Scope | Description |
69
+ | --- | --- | --- |
70
+ | `label` | — | Custom label. |
71
+ | `prefix` | — | Prefix area. |
72
+ | `icon` | — | Calendar / clock icon. |
73
+ | `hints` | — | Custom hints. |
74
+ | `picker-container` | `{ isRange, showInInput, value }` | Override the entire picker UI. |
@@ -1,56 +1,56 @@
1
- # AbEasyModal — AI Reference
2
-
3
- Lightweight wrapper around `AbModal` that renders a trigger element and exposes imperative `openModal()` / `closeModal()` methods. Ideal for quick dialogs without full VeeValidate form wiring.
4
-
5
- ## Usage
6
-
7
- ```vue
8
- <template>
9
- <ab-easy-modal ref="modal">
10
- <template #action>
11
- <ab-button class="btn-primary">Show dialog</ab-button>
12
- </template>
13
-
14
- <template #title>Delete project?</template>
15
- <template #body>This cannot be undone.</template>
16
-
17
- <template #footer="{ closeModal }">
18
- <ab-button class="btn-outline-secondary" @click="closeModal">Cancel</ab-button>
19
- <ab-button class="btn-danger" @click="confirmDelete">Delete</ab-button>
20
- </template>
21
- </ab-easy-modal>
22
- </template>
23
-
24
- <script setup>
25
- import { ref } from 'vue';
26
- const modal = ref(null);
27
- async function confirmDelete() {
28
- await api.delete();
29
- modal.value.closeModal();
30
- }
31
- </script>
32
- ```
33
-
34
- ## Props
35
-
36
- All `AbModal` props can be forwarded via `$attrs` (e.g. `modal-size`, `hide-footer`).
37
-
38
- ## Events
39
-
40
- Inherits `AbModal`'s `onSubmit`, `loading-status`, and `close` events.
41
-
42
- ## Slots
43
-
44
- | Name | Scope | Description |
45
- | --- | --- | --- |
46
- | `action` | — | Trigger element rendered outside the modal (clicking it opens the modal). |
47
- | `title` | — | Modal title. |
48
- | `body` | — | Modal body content. |
49
- | `footer` | `{ closeModal, close }` | Footer; receives both close helpers. |
50
-
51
- ## Exposed Methods
52
-
53
- | Method | Description |
54
- | --- | --- |
55
- | `openModal()` | Open the modal programmatically. |
56
- | `closeModal()` | Close the modal programmatically. |
1
+ # AbEasyModal — AI Reference
2
+
3
+ Lightweight wrapper around `AbModal` that renders a trigger element and exposes imperative `openModal()` / `closeModal()` methods. Ideal for quick dialogs without full VeeValidate form wiring.
4
+
5
+ ## Usage
6
+
7
+ ```vue
8
+ <template>
9
+ <ab-easy-modal ref="modal">
10
+ <template #action>
11
+ <ab-button class="btn-primary">Show dialog</ab-button>
12
+ </template>
13
+
14
+ <template #title>Delete project?</template>
15
+ <template #body>This cannot be undone.</template>
16
+
17
+ <template #footer="{ closeModal }">
18
+ <ab-button class="btn-outline-secondary" @click="closeModal">Cancel</ab-button>
19
+ <ab-button class="btn-danger" @click="confirmDelete">Delete</ab-button>
20
+ </template>
21
+ </ab-easy-modal>
22
+ </template>
23
+
24
+ <script setup>
25
+ import { ref } from 'vue';
26
+ const modal = ref(null);
27
+ async function confirmDelete() {
28
+ await api.delete();
29
+ modal.value.closeModal();
30
+ }
31
+ </script>
32
+ ```
33
+
34
+ ## Props
35
+
36
+ All `AbModal` props can be forwarded via `$attrs` (e.g. `modal-size`, `hide-footer`).
37
+
38
+ ## Events
39
+
40
+ Inherits `AbModal`'s `onSubmit`, `loading-status`, and `close` events.
41
+
42
+ ## Slots
43
+
44
+ | Name | Scope | Description |
45
+ | --- | --- | --- |
46
+ | `action` | — | Trigger element rendered outside the modal (clicking it opens the modal). |
47
+ | `title` | — | Modal title. |
48
+ | `body` | — | Modal body content. |
49
+ | `footer` | `{ closeModal, close }` | Footer; receives both close helpers. |
50
+
51
+ ## Exposed Methods
52
+
53
+ | Method | Description |
54
+ | --- | --- |
55
+ | `openModal()` | Open the modal programmatically. |
56
+ | `closeModal()` | Close the modal programmatically. |