aloha-vue 2.56.0 → 2.57.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 (83) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/aloha-vue.css +312 -2
  3. package/dist/aloha-vue.css.map +1 -1
  4. package/dist/aloha-vue.es.js +21629 -19204
  5. package/dist/aloha-vue.umd.js +70 -70
  6. package/package.json +1 -1
  7. package/scss/aloha-vue.scss +1 -0
  8. package/scss/components/ATableForm.scss +230 -0
  9. package/scss/components/ui/ADatepicker.scss +12 -0
  10. package/scss/components/ui/ASelect.scss +39 -0
  11. package/scss/components/ui/ASwitch.scss +28 -0
  12. package/scss/components/ui/ui.scss +31 -2
  13. package/src/AAccordion/AAccordion.js +0 -1
  14. package/src/AElement/AElement.js +506 -506
  15. package/src/ATableForm/ATableForm.js +578 -0
  16. package/src/ATableForm/ATableFormCell/ATableFormCell.js +182 -0
  17. package/src/ATableForm/ATableFormCell/compositionAPI/DisabledAPI.js +20 -0
  18. package/src/ATableForm/ATableFormCell/compositionAPI/ReadonlyAPI.js +28 -0
  19. package/src/ATableForm/ATableFormCell/compositionAPI/SlotAPI.js +38 -0
  20. package/src/ATableForm/ATableFormCellAction/ATableFormCellAction.js +238 -0
  21. package/src/ATableForm/ATableFormCellAction/compositionAPI/DeleteAPI.js +80 -0
  22. package/src/ATableForm/ATableFormCellAction/compositionAPI/DisabledAPI.js +60 -0
  23. package/src/ATableForm/ATableFormCellAction/compositionAPI/HiddenAPI.js +46 -0
  24. package/src/ATableForm/ATableFormCellAction/compositionAPI/StylesAPI.js +29 -0
  25. package/src/ATableForm/ATableFormCellAction/compositionAPI/TitleAPI.js +47 -0
  26. package/src/ATableForm/ATableFormCellDnd/ATableFormCellDnd.js +174 -0
  27. package/src/ATableForm/ATableFormCellDnd/compositionAPI/IdAPI.js +21 -0
  28. package/src/ATableForm/ATableFormRow/ATableFormRow.js +431 -0
  29. package/src/ATableForm/ATableFormRow/compositionAPI/ClassAPI.js +55 -0
  30. package/src/ATableForm/ATableFormRow/compositionAPI/EditAPI.js +97 -0
  31. package/src/ATableForm/ATableFormRow/compositionAPI/ErrorsAPI.js +40 -0
  32. package/src/ATableForm/ATableFormRow/compositionAPI/FocusAPI.js +33 -0
  33. package/src/ATableForm/ATableFormRow/compositionAPI/IdAPI.js +19 -0
  34. package/src/ATableForm/ATableFormTh/ATableFormTh.js +70 -0
  35. package/src/ATableForm/compositionAPI/ColumnsAPI.js +34 -0
  36. package/src/ATableForm/compositionAPI/ColumnsGrowAPI.js +208 -0
  37. package/src/ATableForm/compositionAPI/DeleteAPI.js +9 -0
  38. package/src/ATableForm/compositionAPI/DragAndDropAPI.js +258 -0
  39. package/src/ATableForm/compositionAPI/EditAPI.js +107 -0
  40. package/src/ATableForm/compositionAPI/IconsAPI.js +21 -0
  41. package/src/ATableForm/compositionAPI/RowsAPI.js +42 -0
  42. package/src/ATableForm/compositionAPI/StylesAPI.js +62 -0
  43. package/src/ATableForm/compositionAPI/TextsAPI.js +34 -0
  44. package/src/ATableForm/compositionAPI/WidthsAPI.js +21 -0
  45. package/src/ATableForm/i18n/ATableFormI18n.js +19 -0
  46. package/src/ATableForm/i18n/ar.json +17 -0
  47. package/src/ATableForm/i18n/de.json +17 -0
  48. package/src/ATableForm/i18n/en.json +17 -0
  49. package/src/ATableForm/i18n/es.json +17 -0
  50. package/src/ATableForm/i18n/fr.json +17 -0
  51. package/src/ATableForm/i18n/hr.json +17 -0
  52. package/src/ATableForm/i18n/it.json +17 -0
  53. package/src/ATableForm/i18n/ru.json +17 -0
  54. package/src/i18n/allLanguages.js +9 -0
  55. package/src/index.js +10 -8
  56. package/src/ui/ACheckbox/ACheckbox.js +196 -195
  57. package/src/ui/ADatepicker/ADatepicker.js +19 -0
  58. package/src/ui/ADatepickerRange/ADatepickerRange.js +6 -0
  59. package/src/ui/AErrorsText/AErrorsText.js +62 -57
  60. package/src/ui/AFieldset/AFieldset.js +535 -529
  61. package/src/ui/AFormElement/AFormElement.js +10 -0
  62. package/src/ui/AGroup/AGroup.js +427 -421
  63. package/src/ui/AInput/AInput.js +516 -494
  64. package/src/ui/AInput/compositionAPI/ClassAPI.js +6 -0
  65. package/src/ui/AInputCurrency/AInputCurrency.js +21 -0
  66. package/src/ui/AInputCurrency/compositionAPI/InputEventsAPI.js +93 -18
  67. package/src/ui/AInputCurrency/compositionAPI/ModelAPI.js +12 -7
  68. package/src/ui/AInputFile/AInputFile.js +1 -0
  69. package/src/ui/AInputNumber/AInputNumber.js +18 -0
  70. package/src/ui/AInputNumber/compositionAPI/InputEventsAPI.js +196 -196
  71. package/src/ui/AInputNumber/compositionAPI/ModelAPI.js +72 -72
  72. package/src/ui/AInputNumberRange/AInputNumberRange.js +6 -0
  73. package/src/ui/AJson/AJson.js +6 -0
  74. package/src/ui/AMultiselectOrdered/AMultiselectOrdered.js +185 -179
  75. package/src/ui/AOneCheckbox/AOneCheckbox.js +366 -360
  76. package/src/ui/ARadio/ARadio.js +195 -189
  77. package/src/ui/ASelect/ASelect.js +25 -0
  78. package/src/ui/ASlider/ASlider.js +6 -0
  79. package/src/ui/ASwitch/ASwitch.js +25 -1
  80. package/src/ui/ATextarea/ATextarea.js +23 -0
  81. package/src/ui/AValidatedJson/AValidatedJson.js +7 -0
  82. package/src/ui/compositionApi/UiDataFromServerAPI.js +5 -3
  83. package/src/ui/mixins/UiMixinProps.js +5 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aloha-vue",
3
- "version": "2.56.0",
3
+ "version": "2.57.0",
4
4
  "description": "Aloha-vue is a JavaScript library that provides a wide range of accessible components and directives for Vue.js. Accessibility is of paramount importance to us, and we have designed all our components to meet accessibility compliance criteria. This library is a valuable tool for frontend developers and has already been used in three projects, including two large-scale ones",
5
5
  "keywords": [
6
6
  "accessibility compliance criteria",
@@ -62,6 +62,7 @@
62
62
  @use "components/ADivider";
63
63
  @use "components/APagination";
64
64
  @use "components/AFilters";
65
+ @use "components/ATableForm";
65
66
  @use "components/ATable";
66
67
  @use "components/AModal";
67
68
  @use "components/ACarousel";
@@ -0,0 +1,230 @@
1
+ .a_table_form {
2
+ --a_table_form_bg: var(--a_color_white);
3
+ --a_table_form_border_color: var(--a_color_gray_300);
4
+ --a_table_form_drop_indicator_color: var(--a_color_primary);
5
+ --a_table_form_head_bg: var(--a_color_gray_200);
6
+ --a_table_form_head_color: inherit;
7
+ --a_table_form_row_dragging_bg: #e9eef5;
8
+ --a_table_form_row_dragging_opacity: .65;
9
+ --a_table_form_row_dragging_outline: 2px dashed var(--a_color_gray_700);
10
+ --a_table_form_row_hover_bg: #eef6ff;
11
+ --a_table_form_row_drag_bg: #dfefff;
12
+ --a_table_form_footer_bg: var(--a_color_gray_100);
13
+ --a_table_form_cell_padding_y: .75rem;
14
+ --a_table_form_cell_padding_x: .75rem;
15
+
16
+ width: 100%;
17
+
18
+ .a_alert {
19
+ --a_alert_border-radius: 0;
20
+
21
+ margin-bottom: 0;
22
+ }
23
+ }
24
+
25
+ .a_table_form__wrapper {
26
+ overflow-x: auto;
27
+ }
28
+
29
+ .a_table_form__drag_preview {
30
+ opacity: var(--a_table_form_row_dragging_opacity);
31
+
32
+ .a_table_form__row {
33
+ outline: 0;
34
+ }
35
+
36
+ .a_table_form__cell {
37
+ opacity: 1;
38
+ }
39
+ }
40
+
41
+ .a_table_form__table {
42
+ width: 100%;
43
+ table-layout: fixed;
44
+ border-collapse: collapse;
45
+ background-color: var(--a_table_form_bg);
46
+ }
47
+
48
+ .a_table_form__cell {
49
+ padding: var(--a_table_form_cell_padding_y) var(--a_table_form_cell_padding_x);
50
+ border-top: 1px solid var(--a_table_form_border_color);
51
+ border-bottom: 1px solid var(--a_table_form_border_color);
52
+ border-left: 0;
53
+ border-right: 0;
54
+ vertical-align: top;
55
+ text-align: left;
56
+ word-break: break-word;
57
+ .a_select_toggle {
58
+ min-width: 100%;
59
+ }
60
+ .pux_datepicker {
61
+ min-width: 100%;
62
+ width: 100%;
63
+ max-width: 100%;
64
+ }
65
+ }
66
+
67
+ .a_table_form__row > .a_table_form__cell:first-child {
68
+ border-left: 1px solid var(--a_table_form_border_color);
69
+ }
70
+
71
+ .a_table_form__row > .a_table_form__cell:last-child {
72
+ border-right: 1px solid var(--a_table_form_border_color);
73
+ }
74
+
75
+ .a_table_form__cell_info {
76
+ padding: 0;
77
+ }
78
+
79
+ .a_table_form__cell_errors {
80
+ padding: 0;
81
+ .a_error__list__li {
82
+ display: flex;
83
+ flex-wrap: wrap;
84
+ gap: .5rem;
85
+ align-items: center;
86
+ }
87
+ }
88
+
89
+ .a_table_form__cell_th {
90
+ background-color: var(--a_table_form_head_bg);
91
+ color: var(--a_table_form_head_color);
92
+ font-weight: 700;
93
+ }
94
+
95
+ .a_table_form__table:not(.a_table_form_drag_active) .a_table_form__row:hover .a_table_form__cell_td,
96
+ .a_table_form__table:not(.a_table_form_drag_active) .a_table_form__row:focus-within .a_table_form__cell_td {
97
+ background-color: var(--a_table_form_row_hover_bg);
98
+ }
99
+
100
+ .a_table_form__table:not(.a_table_form_drag_active) .a_table_form__row_errors:hover .a_table_form__cell_td,
101
+ .a_table_form__table:not(.a_table_form_drag_active) .a_table_form__row_errors:focus-within .a_table_form__cell_td {
102
+ background-color: var(--a_color_danger_bg_subtle);
103
+ }
104
+
105
+ .a_table_form__row_dragging:hover .a_table_form__cell_td,
106
+ .a_table_form__row_dragging:focus-within .a_table_form__cell_td {
107
+ background-color: var(--a_table_form_row_dragging_bg);
108
+ }
109
+
110
+ .a_table_form_drag_active {
111
+ .a_table_form__row_drag_over .a_table_form__cell_td,
112
+ .a_table_form__row_dragging .a_table_form__cell_td {
113
+ background-color: var(--a_table_form_row_drag_bg);
114
+ }
115
+
116
+ .a_table_form__row_dragging .a_table_form__cell_td {
117
+ background-color: var(--a_table_form_row_dragging_bg);
118
+ }
119
+ }
120
+
121
+ .a_table_form__row {
122
+ position: relative;
123
+ }
124
+
125
+ .a_table_form__row_drag_over .a_table_form__cell_td,
126
+ .a_table_form__row_dragging .a_table_form__cell_td {
127
+ background-color: var(--a_table_form_row_drag_bg);
128
+ }
129
+
130
+ .a_table_form__row_dragging {
131
+ outline: var(--a_table_form_row_dragging_outline);
132
+ outline-offset: -2px;
133
+
134
+ .a_table_form__cell_td {
135
+ background-color: var(--a_table_form_row_dragging_bg);
136
+ opacity: var(--a_table_form_row_dragging_opacity);
137
+ }
138
+
139
+ .a_table_form__reorder_handle {
140
+ color: var(--a_color_black);
141
+ }
142
+ }
143
+
144
+ .a_table_form__row_drag_before .a_table_form__cell_td {
145
+ border-top: 3px solid var(--a_table_form_drop_indicator_color);
146
+ }
147
+
148
+ .a_table_form__row_drag_after .a_table_form__cell_td {
149
+ border-bottom: 3px solid var(--a_table_form_drop_indicator_color);
150
+ }
151
+
152
+ .a_table_form__row_footer .a_table_form__cell {
153
+ background-color: var(--a_table_form_footer_bg);
154
+ font-weight: 700;
155
+ }
156
+
157
+ .a_table_form__row_errors .a_table_form__cell_td {
158
+ background-color: var(--a_color_danger_bg_subtle);
159
+ }
160
+
161
+ .a_table_form__cell_reorder {
162
+ width: 3.5rem;
163
+ min-width: 3.5rem;
164
+ max-width: 3.5rem;
165
+ text-align: center;
166
+ }
167
+
168
+ .a_table_form__reorder_actions {
169
+ display: flex;
170
+ align-items: center;
171
+ justify-content: center;
172
+ gap: .25rem;
173
+
174
+ &:focus-within .a_table_form__reorder_handle {
175
+ display: none;
176
+ }
177
+ }
178
+
179
+ .a_table_form__reorder_handle {
180
+ display: inline-flex;
181
+ align-items: center;
182
+ justify-content: center;
183
+ color: var(--a_color_gray_700);
184
+ cursor: grab;
185
+ user-select: none;
186
+ -webkit-user-drag: element;
187
+ padding-top: .3rem;
188
+
189
+ &:active {
190
+ cursor: grabbing;
191
+ }
192
+ }
193
+
194
+ .a_table_form__reorder_button {
195
+ //min-width: auto;
196
+ &.a_btn {
197
+ --a_btn_padding_y: 0;
198
+ --a_btn_padding_x: 0.35rem;
199
+ }
200
+ }
201
+
202
+ .a_table_form__empty {
203
+ text-align: left;
204
+ }
205
+
206
+ .a_table_form__cell_actions_sticky {
207
+ position: sticky;
208
+ right: 0;
209
+ z-index: 2;
210
+ background: var(--a_table_form_bg);
211
+ box-shadow:
212
+ inset 1px 0 0 rgba(0, 0, 0, .12),
213
+ -8px 0 14px -8px rgba(17, 24, 39, .34),
214
+ -18px 0 24px -20px rgba(17, 24, 39, .55);
215
+ }
216
+
217
+ .a_table_form__cell_actions_sticky.a_table_form__cell_th {
218
+ background: var(--a_table_form_head_bg);
219
+ color: var(--a_table_form_head_color);
220
+ }
221
+
222
+ .a_table_form__row_footer .a_table_form__cell_actions_sticky {
223
+ background: var(--a_table_form_footer_bg);
224
+ }
225
+
226
+ .a_table_form__actions {
227
+ display: flex;
228
+ align-items: center;
229
+ gap: .5rem;
230
+ }
@@ -45,6 +45,18 @@ $dp-primary-color: #1284e7;
45
45
  padding-right: 1.6875rem;
46
46
  }
47
47
  }
48
+
49
+ .pux_datepicker_has_error_icon {
50
+ .pux_datepicker__input {
51
+ padding-left: 1.75rem;
52
+ }
53
+ }
54
+
55
+ .pux_datepicker__error_icon.a_input__icon_error {
56
+ left: 0.625rem;
57
+ z-index: 1;
58
+ }
59
+
48
60
  .pux_datepicker__input_wrapper__clear_wrapper {
49
61
  display: none;
50
62
  }
@@ -1,3 +1,22 @@
1
+ .a_form_element__parent_float.a_select__parent_has_error_icon {
2
+ > .a_form_element_label,
3
+ > .a_form_element_label.a_form_element_label_float,
4
+ > .a_form_element_label.a_form_element_label_error {
5
+ left: 2rem;
6
+ max-width: calc(100% - 2.625rem);
7
+ }
8
+
9
+ &:focus-within,
10
+ &.a_form_element__parent_not_empty {
11
+ > .a_form_element_label,
12
+ > .a_form_element_label.a_form_element_label_float,
13
+ > .a_form_element_label.a_form_element_label_error {
14
+ left: 0.625rem;
15
+ max-width: calc(100% - 1.25rem);
16
+ }
17
+ }
18
+ }
19
+
1
20
  .a_select {
2
21
  --a_select_border_radius: var(--a_border_radius);
3
22
  --a_select_close_hover_color: --a_color_primary;
@@ -15,11 +34,22 @@
15
34
  min-height: calc(1.625rem + 0.375rem * 2);
16
35
  padding-right: var(--a_select_toggle_padding_right);
17
36
  text-align: left;
37
+ &.a_select_toggle_has_error_icon.a_form_control {
38
+ padding-left: 1.75rem;
39
+ }
18
40
  &.a_select_toggle_closeable {
19
41
  padding: 0 1.875rem 0 0;
42
+ &.a_select_toggle_has_error_icon.a_form_control {
43
+ padding-left: 1.75rem;
44
+ }
20
45
  }
21
46
  }
22
47
 
48
+ .a_select__error_icon.a_input__icon_error {
49
+ left: 0.625rem;
50
+ z-index: 1;
51
+ }
52
+
23
53
 
24
54
  .a_caret {
25
55
  display: flex;
@@ -171,6 +201,15 @@
171
201
  padding-right: 1.5625rem;
172
202
  }
173
203
 
204
+ .a_select_toggle_has_error_icon {
205
+ .a_select__value__label {
206
+ padding-left: 0.25rem;
207
+ }
208
+ .a_select__ul_closeable {
209
+ padding-left: 0.25rem;
210
+ }
211
+ }
212
+
174
213
  .a_select__ul_closeable {
175
214
  display: flex;
176
215
  flex-wrap: wrap;
@@ -1,3 +1,31 @@
1
+ .switch_button__wrapper {
2
+ display: flex;
3
+ align-items: center;
4
+ }
5
+
6
+ .switch_button__wrapper_has_error_icon {
7
+ gap: 0.375rem;
8
+ }
9
+
10
+ .switch_button__error_icon.a_input__icon_error {
11
+ position: static;
12
+ top: auto;
13
+ left: auto;
14
+ transform: none;
15
+ flex-shrink: 0;
16
+ width: 1rem;
17
+ height: 1rem;
18
+ display: inline-flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ line-height: 1;
22
+ > svg {
23
+ width: 1rem;
24
+ height: 1rem;
25
+ display: block;
26
+ }
27
+ }
28
+
1
29
  .switch_button {
2
30
  --a_switch_button_border_radius: var(--a_border_radius);
3
31
  --a_switch_button_bg: var(--a_color_gray_700);
@@ -64,6 +64,16 @@
64
64
  padding-left: 1.5rem;
65
65
  }
66
66
  }
67
+ .a_form_element__parent_float_has_error_icon {
68
+ .a_form_control {
69
+ padding-left: 1.5rem;
70
+ }
71
+ }
72
+ .a_form_element__parent_float_has_two_icons_prepend {
73
+ .a_form_control {
74
+ padding-left: 2.35rem;
75
+ }
76
+ }
67
77
 
68
78
  .a_form_element_label__spinner {
69
79
  margin-left: .5rem;
@@ -81,6 +91,12 @@
81
91
  .a_form_element_with_two_btns {
82
92
  padding-right: 3.125rem;
83
93
  }
94
+ .a_form_element_with_three_btns {
95
+ padding-right: 4.375rem;
96
+ }
97
+ .a_form_element_with_four_btns {
98
+ padding-right: 5.625rem;
99
+ }
84
100
  }
85
101
 
86
102
  .a_form_control {
@@ -144,12 +160,25 @@
144
160
  border-radius: 0.25rem;
145
161
  }
146
162
 
147
- .a_input__icon_prepend {
163
+ .a_input__icon_prepend,
164
+ .a_input__icon_error {
148
165
  position: absolute;
149
- left: .4rem;
150
166
  top: 50%;
151
167
  transform: translateY(-50%);
152
168
  }
169
+ .a_input__icon_error {
170
+ left: .4rem;
171
+ color: var(--a_form_element_error_color);
172
+ }
173
+ .a_input__icon_prepend {
174
+ left: .4rem;
175
+ }
176
+ .a_form_element__parent_float_has_error_icon {
177
+ .a_input__icon_prepend {
178
+ left: 1.5rem;
179
+ }
180
+ }
181
+
153
182
 
154
183
  .a_form_element__help_text {
155
184
  width: 100%;
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  computed,
3
3
  h,
4
- watch,
5
4
  } from "vue";
6
5
 
7
6
  import AAccordionItem from "./AAccordionItem/AAccordionItem";