shared-ritm 1.3.36 → 1.3.38-alpha.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/dist/index.css +1 -1
  2. package/dist/shared-ritm.es.js +15284 -14832
  3. package/dist/shared-ritm.umd.js +564 -564
  4. package/dist/types/api/services/AuthService.d.ts +1 -0
  5. package/dist/types/api/services/ControlsService.d.ts +3 -0
  6. package/dist/types/api/services/EquipmentService.d.ts +15 -5
  7. package/dist/types/api/services/GanttService.d.ts +22 -0
  8. package/dist/types/api/services/InstrumentsService.d.ts +6 -1
  9. package/dist/types/api/services/MetricsService.d.ts +5 -1
  10. package/dist/types/api/services/RepairsService.d.ts +1 -1
  11. package/dist/types/api/services/TasksService.d.ts +3 -2
  12. package/dist/types/api/services/UserIssueService.d.ts +15 -0
  13. package/dist/types/api/services/UserService.d.ts +2 -1
  14. package/dist/types/api/services/VideoService.d.ts +2 -1
  15. package/dist/types/api/settings/ApiService.d.ts +7 -3
  16. package/dist/types/api/types/Api_Auth.d.ts +15 -0
  17. package/dist/types/api/types/Api_Controls.d.ts +1 -0
  18. package/dist/types/api/types/Api_Equipment.d.ts +45 -0
  19. package/dist/types/api/types/Api_Instruments.d.ts +24 -0
  20. package/dist/types/api/types/Api_Metrics.d.ts +69 -0
  21. package/dist/types/api/types/Api_Repairs.d.ts +14 -1
  22. package/dist/types/api/types/Api_Search.d.ts +1 -0
  23. package/dist/types/api/types/Api_Tasks.d.ts +1 -0
  24. package/dist/types/api/types/Api_User.d.ts +12 -0
  25. package/dist/types/api/types/Api_User_Issue.d.ts +33 -0
  26. package/dist/types/api/types/Api_Video.d.ts +5 -4
  27. package/dist/types/common/app-button/Button.stories.d.ts +13 -0
  28. package/dist/types/common/app-checkbox/Checkbox.stories.d.ts +12 -0
  29. package/dist/types/common/app-date-picker/DatePicker.stories.d.ts +7 -0
  30. package/dist/types/common/app-datepicker/Datepicker.stories.d.ts +10 -0
  31. package/dist/types/common/app-dialogs/Confirm.stories.d.ts +8 -0
  32. package/dist/types/common/app-dropdown/Dropdown.stories.d.ts +8 -0
  33. package/dist/types/common/app-file/File.stories.d.ts +8 -0
  34. package/dist/types/common/app-icon/Icon.stories.d.ts +7 -0
  35. package/dist/types/common/app-input/Input.stories.d.ts +9 -0
  36. package/dist/types/common/app-input-new/InputNew.stories.d.ts +12 -0
  37. package/dist/types/common/app-input-search/InputSearch.stories.d.ts +8 -0
  38. package/dist/types/common/app-loader/Loader.stories.d.ts +8 -0
  39. package/dist/types/common/app-select/Select.stories.d.ts +7 -0
  40. package/dist/types/common/app-table/components/ModalSelect.stories.d.ts +10 -0
  41. package/dist/types/common/app-toggle/Toggle.stories.d.ts +12 -0
  42. package/dist/types/configs/storybook.d.ts +1 -0
  43. package/dist/types/index.d.ts +3 -1
  44. package/dist/types/utils/files.d.ts +2 -0
  45. package/package.json +1 -1
  46. package/src/api/services/AuthService.ts +53 -53
  47. package/src/api/services/BrigadesService.ts +32 -32
  48. package/src/api/services/GanttService.ts +23 -23
  49. package/src/api/services/ModulesService.ts +27 -27
  50. package/src/api/services/ProjectsService.ts +83 -83
  51. package/src/api/services/ScheduleService.ts +69 -69
  52. package/src/api/services/SearchService.ts +22 -22
  53. package/src/api/services/TasksService.ts +157 -157
  54. package/src/api/services/VideoService.ts +5 -0
  55. package/src/api/settings/ApiService.ts +125 -124
  56. package/src/api/types/Api_Brigades.ts +36 -36
  57. package/src/api/types/Api_Modules.ts +21 -21
  58. package/src/api/types/Api_Projects.ts +62 -62
  59. package/src/api/types/Api_Schedule.ts +64 -64
  60. package/src/api/types/Api_Tasks.ts +376 -375
  61. package/src/api/types/Api_Video.ts +7 -4
  62. package/src/common/app-checkbox/AppCheckbox.vue +26 -26
  63. package/src/common/app-datepicker/AppDatepicker.vue +218 -218
  64. package/src/common/app-dialogs/AppConfirmDialog.vue +109 -109
  65. package/src/common/app-dropdown/AppDropdown.vue +37 -37
  66. package/src/common/app-icon/AppIcon.vue +108 -108
  67. package/src/common/app-input/AppInput.vue +148 -148
  68. package/src/common/app-layout/AppLayout.vue +84 -84
  69. package/src/common/app-layout/components/AppLayoutHeader.vue +273 -273
  70. package/src/common/app-select/AppSelect.vue +159 -159
  71. package/src/common/app-sidebar/components/SidebarMenuItem.vue +149 -149
  72. package/src/common/app-table/AppTableLayout.vue +137 -137
  73. package/src/common/app-table/components/TableModal.vue +367 -367
  74. package/src/common/app-table/controllers/useBaseTable.ts +45 -45
  75. package/src/common/app-table/controllers/useColumnSelector.ts +45 -45
  76. package/src/common/app-toggle/AppToggle.vue +24 -24
  77. package/src/common/app-wrapper/AppWrapper.vue +28 -28
  78. package/src/icons/dialogs/SafetyIcon.vue +12 -12
  79. package/src/shared/styles/general.css +124 -124
  80. package/src/utils/helpers.ts +59 -59
  81. package/dist/types/api/services/ComentsServise.d.ts +0 -10
  82. package/dist/types/api/services/PhotoService.d.ts +0 -53
  83. package/dist/types/api/types/Api_Users.d.ts +0 -43
@@ -1,159 +1,159 @@
1
- <template>
2
- <q-select
3
- ref="select"
4
- v-model="selected"
5
- :data-test="dataTest"
6
- :options="filteredOptions"
7
- :option-value="optionValue"
8
- :option-label="optionLabel"
9
- emit-value
10
- map-options
11
- :disable="isDisabled"
12
- :multiple="multiple"
13
- outlined
14
- stack-label
15
- :use-input="search"
16
- :class="[$style.select]"
17
- :label="label"
18
- input-debounce="100"
19
- :popup-content-class="$style['app-select__menu']"
20
- :clearable="clearable"
21
- rounded
22
- autocomplete=""
23
- @filter="filterFn"
24
- >
25
- <template v-if="multiple" #selected-item="scope">
26
- <q-chip
27
- v-if="scope.opt"
28
- removable
29
- class="q-ma-none"
30
- dense
31
- :tabindex="scope.tabindex"
32
- color="white"
33
- text-color="secondary"
34
- @remove="scope.removeAtIndex(scope.index)"
35
- >
36
- {{ scope.opt[`${optionLabel}`] }}
37
- </q-chip>
38
- </template>
39
- <template #no-option>
40
- <q-item>{{ emptyText }}</q-item>
41
- </template>
42
- <q-item v-if="!lcText && type()">{{ placeholder }}</q-item>
43
- </q-select>
44
- </template>
45
- <script setup lang="ts">
46
- import { computed, defineEmits, defineProps, ref, Ref } from 'vue'
47
-
48
- import { QSelect } from 'quasar'
49
-
50
- type Option = Record<string, any>
51
-
52
- interface AppQSelectProps {
53
- modelValue: any
54
- options: Option[]
55
- placeholder: string
56
- emptyText: string
57
- optionLabel?: string
58
- optionValue?: string
59
- label?: string
60
- multiple?: boolean
61
- borderColor: string
62
- isDisabled?: boolean
63
- clearable?: boolean
64
- search?: boolean
65
- dataTest?: string
66
- }
67
-
68
- const props = defineProps<AppQSelectProps>()
69
- const select = ref({})
70
- const emit = defineEmits(['update:modelValue'])
71
- const selected = computed({
72
- get() {
73
- return props.modelValue
74
- },
75
- set(value) {
76
- emit('update:modelValue', value)
77
- },
78
- })
79
-
80
- const type = () => {
81
- if (Array.isArray(selected.value) && !selected.value.length) return true
82
- return typeof selected.value === 'string' && !selected.value
83
- }
84
-
85
- const lcText: Ref<string> = ref('')
86
- const filteredOptions = computed(() => {
87
- return props.options.filter(x => x[props?.optionLabel || 'label'].toLowerCase().includes(lcText.value))
88
- })
89
-
90
- function filterFn(val: string, update: (arg0: () => void) => void) {
91
- update(() => {
92
- lcText.value = val.toLowerCase()
93
- })
94
- }
95
- </script>
96
- <style module lang="scss">
97
- .wrap {
98
- position: relative;
99
-
100
- &:global(.--option-tree) {
101
- cursor: pointer;
102
- }
103
- }
104
-
105
- .select {
106
- &:global(.q-field--outlined.q-field--rounded .q-field__control) {
107
- border-radius: 14px;
108
- }
109
- &:global(.q-field--outlined .q-field__control:before) {
110
- border-color: v-bind(borderColor);
111
- }
112
- &:global(.q-select .q-field__input) {
113
- padding: 0 6px;
114
- }
115
- //&:global(.q-field--filled .q-field__control) {
116
- // //color: red;
117
- //}
118
- //&:global(.q-field--filled.q-field--focused .q-field__control) {
119
- //}
120
- //&:global(.q-field--filled .q-field__control:after) {
121
- // left: 8px;
122
- // right: 8px;
123
- //}
124
- &:global(.q-field--outlined .q-item) {
125
- color: #1d1d1d;
126
- position: absolute;
127
- padding: 0 4px;
128
- top: 18px;
129
- left: 0;
130
- }
131
- }
132
-
133
- .append-wrapper {
134
- display: flex;
135
- align-items: center;
136
- column-gap: 4px;
137
- }
138
-
139
- .menu-wrap {
140
- padding: 8px;
141
- }
142
-
143
- .search-wrapper {
144
- position: sticky;
145
- top: 0;
146
- padding: 4px;
147
- background: var(--main-bg);
148
- z-index: 1;
149
- }
150
- .app-select__menu {
151
- border-radius: 14px;
152
- .q-item__label {
153
- word-break: break-word;
154
- }
155
- &:global(.q-menu) {
156
- max-height: 200px !important;
157
- }
158
- }
159
- </style>
1
+ <template>
2
+ <q-select
3
+ ref="select"
4
+ v-model="selected"
5
+ :data-test="dataTest"
6
+ :options="filteredOptions"
7
+ :option-value="optionValue"
8
+ :option-label="optionLabel"
9
+ emit-value
10
+ map-options
11
+ :disable="isDisabled"
12
+ :multiple="multiple"
13
+ outlined
14
+ stack-label
15
+ :use-input="search"
16
+ :class="[$style.select]"
17
+ :label="label"
18
+ input-debounce="100"
19
+ :popup-content-class="$style['app-select__menu']"
20
+ :clearable="clearable"
21
+ rounded
22
+ autocomplete=""
23
+ @filter="filterFn"
24
+ >
25
+ <template v-if="multiple" #selected-item="scope">
26
+ <q-chip
27
+ v-if="scope.opt"
28
+ removable
29
+ class="q-ma-none"
30
+ dense
31
+ :tabindex="scope.tabindex"
32
+ color="white"
33
+ text-color="secondary"
34
+ @remove="scope.removeAtIndex(scope.index)"
35
+ >
36
+ {{ scope.opt[`${optionLabel}`] }}
37
+ </q-chip>
38
+ </template>
39
+ <template #no-option>
40
+ <q-item>{{ emptyText }}</q-item>
41
+ </template>
42
+ <q-item v-if="!lcText && type()">{{ placeholder }}</q-item>
43
+ </q-select>
44
+ </template>
45
+ <script setup lang="ts">
46
+ import { computed, defineEmits, defineProps, ref, Ref } from 'vue'
47
+
48
+ import { QSelect } from 'quasar'
49
+
50
+ type Option = Record<string, any>
51
+
52
+ interface AppQSelectProps {
53
+ modelValue: any
54
+ options: Option[]
55
+ placeholder: string
56
+ emptyText: string
57
+ optionLabel?: string
58
+ optionValue?: string
59
+ label?: string
60
+ multiple?: boolean
61
+ borderColor: string
62
+ isDisabled?: boolean
63
+ clearable?: boolean
64
+ search?: boolean
65
+ dataTest?: string
66
+ }
67
+
68
+ const props = defineProps<AppQSelectProps>()
69
+ const select = ref({})
70
+ const emit = defineEmits(['update:modelValue'])
71
+ const selected = computed({
72
+ get() {
73
+ return props.modelValue
74
+ },
75
+ set(value) {
76
+ emit('update:modelValue', value)
77
+ },
78
+ })
79
+
80
+ const type = () => {
81
+ if (Array.isArray(selected.value) && !selected.value.length) return true
82
+ return typeof selected.value === 'string' && !selected.value
83
+ }
84
+
85
+ const lcText: Ref<string> = ref('')
86
+ const filteredOptions = computed(() => {
87
+ return props.options.filter(x => x[props?.optionLabel || 'label'].toLowerCase().includes(lcText.value))
88
+ })
89
+
90
+ function filterFn(val: string, update: (arg0: () => void) => void) {
91
+ update(() => {
92
+ lcText.value = val.toLowerCase()
93
+ })
94
+ }
95
+ </script>
96
+ <style module lang="scss">
97
+ .wrap {
98
+ position: relative;
99
+
100
+ &:global(.--option-tree) {
101
+ cursor: pointer;
102
+ }
103
+ }
104
+
105
+ .select {
106
+ &:global(.q-field--outlined.q-field--rounded .q-field__control) {
107
+ border-radius: 14px;
108
+ }
109
+ &:global(.q-field--outlined .q-field__control:before) {
110
+ border-color: v-bind(borderColor);
111
+ }
112
+ &:global(.q-select .q-field__input) {
113
+ padding: 0 6px;
114
+ }
115
+ //&:global(.q-field--filled .q-field__control) {
116
+ // //color: red;
117
+ //}
118
+ //&:global(.q-field--filled.q-field--focused .q-field__control) {
119
+ //}
120
+ //&:global(.q-field--filled .q-field__control:after) {
121
+ // left: 8px;
122
+ // right: 8px;
123
+ //}
124
+ &:global(.q-field--outlined .q-item) {
125
+ color: #1d1d1d;
126
+ position: absolute;
127
+ padding: 0 4px;
128
+ top: 18px;
129
+ left: 0;
130
+ }
131
+ }
132
+
133
+ .append-wrapper {
134
+ display: flex;
135
+ align-items: center;
136
+ column-gap: 4px;
137
+ }
138
+
139
+ .menu-wrap {
140
+ padding: 8px;
141
+ }
142
+
143
+ .search-wrapper {
144
+ position: sticky;
145
+ top: 0;
146
+ padding: 4px;
147
+ background: var(--main-bg);
148
+ z-index: 1;
149
+ }
150
+ .app-select__menu {
151
+ border-radius: 14px;
152
+ .q-item__label {
153
+ word-break: break-word;
154
+ }
155
+ &:global(.q-menu) {
156
+ max-height: 200px !important;
157
+ }
158
+ }
159
+ </style>
@@ -1,149 +1,149 @@
1
- <template>
2
- <q-expansion-item
3
- v-if="item.items"
4
- :model-value="isRouteActive(item) && expand"
5
- header-class="text-purple"
6
- :class="[$style['menu-item'], { 'expansion-item-active': isRouteActive(item) && minify }]"
7
- :data-test="`sidebar-expansion-item-${(item.name || 'unnamed').toLowerCase().replace(/\s+/g, '-')}`"
8
- :expand-icon-class="minify ? 'hidden' : ''"
9
- @update:model-value="expand = $event"
10
- >
11
- <template #header>
12
- <q-tooltip
13
- v-if="minify"
14
- :delay="100"
15
- transition-show="jump-right"
16
- transition-hide="jump-left"
17
- anchor="center right"
18
- self="center left"
19
- >
20
- {{ item.label }}
21
- </q-tooltip>
22
-
23
- <q-item-section v-if="item.icon" avatar>
24
- <app-icon :name="item.icon" color="white" size="24px" />
25
- </q-item-section>
26
-
27
- <q-item-section :class="$style['menu-item__label']">{{ minify ? '' : item.label }}</q-item-section>
28
- </template>
29
-
30
- <sidebar-menu-item
31
- v-for="(subItem, index) in item.items"
32
- :key="index"
33
- :item="subItem"
34
- :main="main"
35
- :is-route-active="isRouteActive"
36
- />
37
- </q-expansion-item>
38
- <q-item
39
- v-else-if="item.name !== 'sign-out'"
40
- v-ripple
41
- :class="$style['menu-item']"
42
- :active="isRouteActive(item)"
43
- active-class="menu-active"
44
- clickable
45
- :to="main ? item.to : ''"
46
- :data-test="`sidebar-item-${item.name.toLowerCase().replace(/\s+/g, '-')}`"
47
- @click="goToRoute(item.to)"
48
- >
49
- <q-item-section v-if="item.icon" avatar>
50
- <app-icon :name="item.icon" color="white" size="24px" />
51
- </q-item-section>
52
-
53
- <q-item-section :class="$style['menu-item__label']">
54
- <p>{{ minify ? '' : item.label }}</p>
55
- </q-item-section>
56
- <q-tooltip
57
- :delay="100"
58
- transition-show="jump-right"
59
- transition-hide="jump-left"
60
- anchor="center right"
61
- self="center left"
62
- >
63
- {{ item.label }}
64
- </q-tooltip>
65
- </q-item>
66
- </template>
67
-
68
- <script lang="ts" setup>
69
- import { defineProps, ref } from 'vue'
70
- import AppIcon from '@/common/app-icon/AppIcon.vue'
71
-
72
- interface Props {
73
- minify?: boolean
74
- main: boolean
75
- isRouteActive: (item: any) => boolean
76
- item: {
77
- name: string
78
- label: string
79
- icon: string
80
- href: string
81
- to: string
82
- items: any[]
83
- }
84
- }
85
-
86
- const emits = defineEmits(['goToRoute'])
87
- const props = defineProps<Props>()
88
-
89
- const expand = ref(true)
90
-
91
- const goToRoute = (to: string) => {
92
- if (!props.main) window.location.href = to
93
- }
94
- </script>
95
-
96
- <style lang="scss" scoped>
97
- .expansion-item-active {
98
- background: rgba(243, 249, 253, 0.1);
99
- border-radius: 10px;
100
- }
101
- </style>
102
-
103
- <style lang="scss" module>
104
- .menu-item {
105
- margin: 0 8px;
106
- &:global(.menu-active) {
107
- border-radius: 10px;
108
- background: rgba(243, 249, 253, 0.1);
109
- }
110
- :global(.q-item__section--avatar) {
111
- min-width: 24px;
112
- padding-right: 14px;
113
- }
114
-
115
- :global(.q-expansion-item__content .q-item) {
116
- padding-left: 20px;
117
- }
118
- :global(.q-item__section--main ~ .q-item__section--side) {
119
- color: white;
120
- }
121
- &__label {
122
- color: #fff;
123
- font-family: 'Nunito Sans', sans-serif;
124
- font-size: 16px;
125
- font-weight: 300;
126
- p {
127
- display: inline-block;
128
- max-width: 160px;
129
- white-space: nowrap;
130
- overflow: hidden;
131
- text-overflow: ellipsis;
132
- margin: 0;
133
- }
134
- }
135
- }
136
-
137
- @media (max-width: 1440px) {
138
- .menu-item {
139
- margin: 0 4px;
140
- :global(.q-item__section--avatar) {
141
- min-width: 24px;
142
- padding-right: 10px;
143
- }
144
- &__label {
145
- font-size: 14px;
146
- }
147
- }
148
- }
149
- </style>
1
+ <template>
2
+ <q-expansion-item
3
+ v-if="item.items"
4
+ :model-value="isRouteActive(item) && expand"
5
+ header-class="text-purple"
6
+ :class="[$style['menu-item'], { 'expansion-item-active': isRouteActive(item) && minify }]"
7
+ :data-test="`sidebar-expansion-item-${(item.name || 'unnamed').toLowerCase().replace(/\s+/g, '-')}`"
8
+ :expand-icon-class="minify ? 'hidden' : ''"
9
+ @update:model-value="expand = $event"
10
+ >
11
+ <template #header>
12
+ <q-tooltip
13
+ v-if="minify"
14
+ :delay="100"
15
+ transition-show="jump-right"
16
+ transition-hide="jump-left"
17
+ anchor="center right"
18
+ self="center left"
19
+ >
20
+ {{ item.label }}
21
+ </q-tooltip>
22
+
23
+ <q-item-section v-if="item.icon" avatar>
24
+ <app-icon :name="item.icon" color="white" size="24px" />
25
+ </q-item-section>
26
+
27
+ <q-item-section :class="$style['menu-item__label']">{{ minify ? '' : item.label }}</q-item-section>
28
+ </template>
29
+
30
+ <sidebar-menu-item
31
+ v-for="(subItem, index) in item.items"
32
+ :key="index"
33
+ :item="subItem"
34
+ :main="main"
35
+ :is-route-active="isRouteActive"
36
+ />
37
+ </q-expansion-item>
38
+ <q-item
39
+ v-else-if="item.name !== 'sign-out'"
40
+ v-ripple
41
+ :class="$style['menu-item']"
42
+ :active="isRouteActive(item)"
43
+ active-class="menu-active"
44
+ clickable
45
+ :to="main ? item.to : ''"
46
+ :data-test="`sidebar-item-${item.name.toLowerCase().replace(/\s+/g, '-')}`"
47
+ @click="goToRoute(item.to)"
48
+ >
49
+ <q-item-section v-if="item.icon" avatar>
50
+ <app-icon :name="item.icon" color="white" size="24px" />
51
+ </q-item-section>
52
+
53
+ <q-item-section :class="$style['menu-item__label']">
54
+ <p>{{ minify ? '' : item.label }}</p>
55
+ </q-item-section>
56
+ <q-tooltip
57
+ :delay="100"
58
+ transition-show="jump-right"
59
+ transition-hide="jump-left"
60
+ anchor="center right"
61
+ self="center left"
62
+ >
63
+ {{ item.label }}
64
+ </q-tooltip>
65
+ </q-item>
66
+ </template>
67
+
68
+ <script lang="ts" setup>
69
+ import { defineProps, ref } from 'vue'
70
+ import AppIcon from '@/common/app-icon/AppIcon.vue'
71
+
72
+ interface Props {
73
+ minify?: boolean
74
+ main: boolean
75
+ isRouteActive: (item: any) => boolean
76
+ item: {
77
+ name: string
78
+ label: string
79
+ icon: string
80
+ href: string
81
+ to: string
82
+ items: any[]
83
+ }
84
+ }
85
+
86
+ const emits = defineEmits(['goToRoute'])
87
+ const props = defineProps<Props>()
88
+
89
+ const expand = ref(true)
90
+
91
+ const goToRoute = (to: string) => {
92
+ if (!props.main) window.location.href = to
93
+ }
94
+ </script>
95
+
96
+ <style lang="scss" scoped>
97
+ .expansion-item-active {
98
+ background: rgba(243, 249, 253, 0.1);
99
+ border-radius: 10px;
100
+ }
101
+ </style>
102
+
103
+ <style lang="scss" module>
104
+ .menu-item {
105
+ margin: 0 8px;
106
+ &:global(.menu-active) {
107
+ border-radius: 10px;
108
+ background: rgba(243, 249, 253, 0.1);
109
+ }
110
+ :global(.q-item__section--avatar) {
111
+ min-width: 24px;
112
+ padding-right: 14px;
113
+ }
114
+
115
+ :global(.q-expansion-item__content .q-item) {
116
+ padding-left: 20px;
117
+ }
118
+ :global(.q-item__section--main ~ .q-item__section--side) {
119
+ color: white;
120
+ }
121
+ &__label {
122
+ color: #fff;
123
+ font-family: 'Nunito Sans', sans-serif;
124
+ font-size: 16px;
125
+ font-weight: 300;
126
+ p {
127
+ display: inline-block;
128
+ max-width: 160px;
129
+ white-space: nowrap;
130
+ overflow: hidden;
131
+ text-overflow: ellipsis;
132
+ margin: 0;
133
+ }
134
+ }
135
+ }
136
+
137
+ @media (max-width: 1440px) {
138
+ .menu-item {
139
+ margin: 0 4px;
140
+ :global(.q-item__section--avatar) {
141
+ min-width: 24px;
142
+ padding-right: 10px;
143
+ }
144
+ &__label {
145
+ font-size: 14px;
146
+ }
147
+ }
148
+ }
149
+ </style>