@winchsa/ui 0.1.3 → 0.1.5

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 (184) hide show
  1. package/README.md +3 -113
  2. package/dist/components/{core/DialogCloseBtn.vue → DialogCloseBtn.vue} +1 -1
  3. package/dist/components/Drawer.vue +1 -1
  4. package/dist/components/Drawer.vue.d.ts +1 -1
  5. package/dist/components/{loading/LoadingDialog.vue → LoadingDialog.vue} +1 -1
  6. package/dist/components/Modal.vue +2 -2
  7. package/dist/components/{core/MoreBtn.vue → MoreBtn.vue} +1 -1
  8. package/dist/components/{core/MoreBtn.vue.d.ts → MoreBtn.vue.d.ts} +1 -1
  9. package/dist/components/{core/cards → cards}/AppCard.vue +1 -1
  10. package/dist/components/{core/cards → cards}/AppCard.vue.d.ts +1 -1
  11. package/dist/components/{core/cards → cards}/AppCardActions.vue +1 -1
  12. package/dist/components/{core/cards → cards}/AppCardActions.vue.d.ts +5 -5
  13. package/dist/components/cards/CheckboxesCard.vue +1 -1
  14. package/dist/components/cards/ImageCard.vue +1 -1
  15. package/dist/components/cards/ImageCard.vue.d.ts +1 -1
  16. package/dist/components/cards/InputCard.vue +1 -1
  17. package/dist/components/cards/InputCard.vue.d.ts +1 -1
  18. package/dist/components/cards/StaticCard.vue +1 -1
  19. package/dist/components/cards/StaticCard.vue.d.ts +1 -1
  20. package/dist/components/{core → forms}/AppBarSearch.vue +1 -1
  21. package/dist/components/{core → forms}/AppBarSearch.vue.d.ts +17 -17
  22. package/dist/components/forms/AppLink.vue +1 -1
  23. package/dist/components/forms/AppOtpInput.vue +1 -1
  24. package/dist/components/{core → forms}/AppSearchHeader.vue +2 -2
  25. package/dist/components/forms/AutocompleteInput.vue +1 -1
  26. package/dist/components/{core/app-form-elements → forms}/CustomCheckboxes.vue +1 -1
  27. package/dist/components/{core/app-form-elements → forms}/CustomCheckboxes.vue.d.ts +1 -1
  28. package/dist/components/{core/app-form-elements → forms}/CustomCheckboxesWithIcon.vue +1 -1
  29. package/dist/components/{core/app-form-elements → forms}/CustomCheckboxesWithIcon.vue.d.ts +1 -1
  30. package/dist/components/{core/app-form-elements → forms}/CustomCheckboxesWithImage.vue +1 -1
  31. package/dist/components/{core/app-form-elements → forms}/CustomCheckboxesWithImage.vue.d.ts +1 -1
  32. package/dist/components/{core/app-form-elements → forms}/CustomRadios.vue +1 -1
  33. package/dist/components/{core/app-form-elements → forms}/CustomRadios.vue.d.ts +1 -1
  34. package/dist/components/{core/app-form-elements → forms}/CustomRadiosWithIcon.vue.d.ts +1 -1
  35. package/dist/components/{core/app-form-elements → forms}/CustomRadiosWithImage.vue.d.ts +1 -1
  36. package/dist/components/forms/DatePickerRange.vue +1 -1
  37. package/dist/components/forms/ManualDate.vue +2 -2
  38. package/dist/components/forms/PasswordInput.vue +1 -1
  39. package/dist/components/forms/RangeInput.vue +1 -1
  40. package/dist/components/table/DataTable.vue +4 -4
  41. package/dist/components/table/EditableDataTable.vue +1 -1
  42. package/dist/components/table/EditableDataTable.vue.d.ts +1 -1
  43. package/dist/components/table/EditableDataTableRow.vue +2 -2
  44. package/dist/components/table/FilterGenerator.vue +3 -3
  45. package/dist/components/table/StaticTable.vue +1 -1
  46. package/dist/components/table/TablePagination.vue +1 -1
  47. package/dist/index.d.ts +38 -39
  48. package/dist/index.js +43 -36
  49. package/dist/index.mjs +71 -69
  50. package/dist/lang/ar.json +54 -0
  51. package/dist/lang/en.json +54 -0
  52. package/dist/types.d.ts +1 -15
  53. package/dist/utils/client.js +14 -0
  54. package/dist/utils/client.mjs +14 -0
  55. package/dist/utils/hijriDate.d.ts +58 -0
  56. package/dist/utils/hijriDate.js +168 -0
  57. package/dist/utils/hijriDate.mjs +1951 -0
  58. package/dist/utils/i18n.d.ts +8 -0
  59. package/dist/utils/i18n.js +36 -0
  60. package/dist/utils/i18n.mjs +27 -0
  61. package/dist/utils/index.d.ts +1 -0
  62. package/dist/utils/index.js +11 -0
  63. package/dist/utils/index.mjs +1 -0
  64. package/dist/utils/ruleValidator.d.ts +6 -0
  65. package/dist/utils/ruleValidator.js +32 -2
  66. package/dist/utils/ruleValidator.mjs +29 -0
  67. package/dist/utils/toaster.js +5 -8
  68. package/dist/utils/toaster.mjs +5 -6
  69. package/dist/utils/utils.d.ts +1 -0
  70. package/dist/utils/utils.js +16 -2
  71. package/dist/utils/utils.mjs +11 -0
  72. package/package.json +10 -12
  73. package/dist/components/icons/EndMarker.vue +0 -25
  74. package/dist/components/icons/EndMarker.vue.d.ts +0 -17
  75. package/dist/components/icons/RedXIcon.vue +0 -36
  76. package/dist/components/icons/RedXIcon.vue.d.ts +0 -2
  77. package/dist/components/icons/StarFillIcon.vue +0 -28
  78. package/dist/components/icons/StarFillIcon.vue.d.ts +0 -2
  79. package/dist/components/icons/StartMarker.vue +0 -25
  80. package/dist/components/icons/StartMarker.vue.d.ts +0 -17
  81. package/dist/components/icons/WorkerIcon.vue +0 -39
  82. package/dist/components/icons/WorkerIcon.vue.d.ts +0 -2
  83. package/dist/fonts/NotoSans-Medium.ttf +0 -0
  84. package/dist/fonts/NotoSansArabic-Medium.ttf +0 -0
  85. package/dist/fonts/saudi_riyal_symbol/saudi_riyal_symbol.eot +0 -0
  86. package/dist/fonts/saudi_riyal_symbol/saudi_riyal_symbol.svg +0 -9
  87. package/dist/fonts/saudi_riyal_symbol/saudi_riyal_symbol.ttf +0 -0
  88. package/dist/fonts/saudi_riyal_symbol/saudi_riyal_symbol.woff +0 -0
  89. package/dist/fonts/saudi_riyal_symbol/saudi_riyal_symbol.woff2 +0 -0
  90. package/dist/images/successful-registration.svg +0 -15
  91. package/dist/styles/@core/scss/template/libs/apex-chart.css +0 -90
  92. package/dist/styles/@core/scss/template/libs/apex-chart.scss +0 -99
  93. package/dist/styles/@core/scss/template/libs/shepherd.css +0 -82
  94. package/dist/styles/@core/scss/template/libs/shepherd.scss +0 -88
  95. package/dist/styles/assets/scss/styles.css +0 -16099
  96. package/dist/styles/assets/scss/styles.scss +0 -246
  97. package/src/styles/@core/scss/base/_components.scss +0 -164
  98. package/src/styles/@core/scss/base/_dark.scss +0 -16
  99. package/src/styles/@core/scss/base/_default-layout-w-vertical-nav.scss +0 -106
  100. package/src/styles/@core/scss/base/_default-layout.scss +0 -16
  101. package/src/styles/@core/scss/base/_index.scss +0 -47
  102. package/src/styles/@core/scss/base/_layouts.scss +0 -63
  103. package/src/styles/@core/scss/base/_misc.scss +0 -20
  104. package/src/styles/@core/scss/base/_mixins.scss +0 -84
  105. package/src/styles/@core/scss/base/_route-transitions.scss +0 -70
  106. package/src/styles/@core/scss/base/_utilities.scss +0 -418
  107. package/src/styles/@core/scss/base/_utils.scss +0 -100
  108. package/src/styles/@core/scss/base/_variables.scss +0 -190
  109. package/src/styles/@core/scss/base/_vertical-nav.scss +0 -264
  110. package/src/styles/@core/scss/base/libs/_perfect-scrollbar.scss +0 -35
  111. package/src/styles/@core/scss/base/libs/vuetify/_index.scss +0 -1
  112. package/src/styles/@core/scss/base/libs/vuetify/_overrides.scss +0 -385
  113. package/src/styles/@core/scss/base/libs/vuetify/_variables.scss +0 -48
  114. package/src/styles/@core/scss/base/placeholders/_default-layout-vertical-nav.scss +0 -48
  115. package/src/styles/@core/scss/base/placeholders/_default-layout.scss +0 -3
  116. package/src/styles/@core/scss/base/placeholders/_index.scss +0 -5
  117. package/src/styles/@core/scss/base/placeholders/_misc.scss +0 -7
  118. package/src/styles/@core/scss/base/placeholders/_nav.scss +0 -26
  119. package/src/styles/@core/scss/base/placeholders/_vertical-nav.scss +0 -84
  120. package/src/styles/@core/scss/base/skins/_bordered.scss +0 -60
  121. package/src/styles/@core/scss/base/skins/_index.scss +0 -1
  122. package/src/styles/@core/scss/template/_components.scss +0 -1035
  123. package/src/styles/@core/scss/template/_default-layout-w-vertical-nav.scss +0 -20
  124. package/src/styles/@core/scss/template/_utilities.scss +0 -20
  125. package/src/styles/@core/scss/template/_variables.scss +0 -67
  126. package/src/styles/@core/scss/template/_vertical-nav.scss +0 -41
  127. package/src/styles/@core/scss/template/index.scss +0 -15
  128. package/src/styles/@core/scss/template/libs/apex-chart.scss +0 -99
  129. package/src/styles/@core/scss/template/libs/shepherd.scss +0 -88
  130. package/src/styles/@core/scss/template/libs/vuetify/_variables.scss +0 -461
  131. package/src/styles/@core/scss/template/libs/vuetify/index.scss +0 -1
  132. package/src/styles/@core/scss/template/pages/misc.scss +0 -20
  133. package/src/styles/@core/scss/template/placeholders/_default-layout-vertical-nav.scss +0 -9
  134. package/src/styles/@core/scss/template/placeholders/_index.scss +0 -3
  135. package/src/styles/@core/scss/template/placeholders/_nav.scss +0 -15
  136. package/src/styles/@core/scss/template/placeholders/_vertical-nav.scss +0 -18
  137. package/src/styles/@core/scss/template/skins/_bordered.scss +0 -36
  138. package/src/styles/@core/scss/template/skins/_index.scss +0 -1
  139. package/src/styles/@layouts/styles/_classes.scss +0 -3
  140. package/src/styles/@layouts/styles/_dashboard-layout.scss +0 -43
  141. package/src/styles/@layouts/styles/_global.scss +0 -10
  142. package/src/styles/@layouts/styles/_mixins.scss +0 -28
  143. package/src/styles/@layouts/styles/_placeholders.scss +0 -53
  144. package/src/styles/@layouts/styles/_rtl.scss +0 -7
  145. package/src/styles/@layouts/styles/_variables.scss +0 -22
  146. package/src/styles/@layouts/styles/index.scss +0 -2
  147. package/src/styles/assets/scss/styles.scss +0 -246
  148. package/src/styles/assets/scss/variables/_template.scss +0 -1
  149. package/src/styles/assets/scss/variables/_vuetify.scss +0 -1
  150. /package/dist/components/{core/CustomizerSection.vue → CustomizerSection.vue} +0 -0
  151. /package/dist/components/{core/CustomizerSection.vue.d.ts → CustomizerSection.vue.d.ts} +0 -0
  152. /package/dist/components/{core/DialogCloseBtn.vue.d.ts → DialogCloseBtn.vue.d.ts} +0 -0
  153. /package/dist/components/{loading/LoadingBar.vue → LoadingBar.vue} +0 -0
  154. /package/dist/components/{loading/LoadingBar.vue.d.ts → LoadingBar.vue.d.ts} +0 -0
  155. /package/dist/components/{loading/LoadingDialog.vue.d.ts → LoadingDialog.vue.d.ts} +0 -0
  156. /package/dist/components/{loading/LoadingItem.vue → LoadingItem.vue} +0 -0
  157. /package/dist/components/{loading/LoadingItem.vue.d.ts → LoadingItem.vue.d.ts} +0 -0
  158. /package/dist/components/{core/ScrollToTop.vue → ScrollToTop.vue} +0 -0
  159. /package/dist/components/{core/ScrollToTop.vue.d.ts → ScrollToTop.vue.d.ts} +0 -0
  160. /package/dist/components/{core/cards → cards}/CardStatisticsHorizontal.vue +0 -0
  161. /package/dist/components/{core/cards → cards}/CardStatisticsHorizontal.vue.d.ts +0 -0
  162. /package/dist/components/{core/app-form-elements → forms}/AppCombobox.vue +0 -0
  163. /package/dist/components/{core/app-form-elements → forms}/AppCombobox.vue.d.ts +0 -0
  164. /package/dist/components/{core → forms}/AppDrawerHeaderSection.vue +0 -0
  165. /package/dist/components/{core → forms}/AppDrawerHeaderSection.vue.d.ts +0 -0
  166. /package/dist/components/{core → forms}/AppSearchHeader.vue.d.ts +0 -0
  167. /package/dist/components/{core/app-form-elements → forms}/AppSelect.vue +0 -0
  168. /package/dist/components/{core/app-form-elements → forms}/AppSelect.vue.d.ts +0 -0
  169. /package/dist/components/{core → forms}/AppStepper.vue +0 -0
  170. /package/dist/components/{core → forms}/AppStepper.vue.d.ts +0 -0
  171. /package/dist/components/{core/app-form-elements → forms}/AppSwitch.vue +0 -0
  172. /package/dist/components/{core/app-form-elements → forms}/AppSwitch.vue.d.ts +0 -0
  173. /package/dist/components/{core/app-form-elements → forms}/AppTextField.vue +0 -0
  174. /package/dist/components/{core/app-form-elements → forms}/AppTextField.vue.d.ts +0 -0
  175. /package/dist/components/{core/app-form-elements → forms}/AppTextarea.vue +0 -0
  176. /package/dist/components/{core/app-form-elements → forms}/AppTextarea.vue.d.ts +0 -0
  177. /package/dist/components/{core/app-form-elements → forms}/CustomRadiosWithIcon.vue +0 -0
  178. /package/dist/components/{core/app-form-elements → forms}/CustomRadiosWithImage.vue +0 -0
  179. /package/dist/composables/{use-is-mobile.d.ts → useIsMobile.d.ts} +0 -0
  180. /package/dist/composables/{use-is-mobile.js → useIsMobile.js} +0 -0
  181. /package/dist/composables/{use-is-mobile.mjs → useIsMobile.mjs} +0 -0
  182. /package/dist/composables/{use-table-filters.d.ts → useTableFilters.d.ts} +0 -0
  183. /package/dist/composables/{use-table-filters.js → useTableFilters.js} +0 -0
  184. /package/dist/composables/{use-table-filters.mjs → useTableFilters.mjs} +0 -0
@@ -1,84 +0,0 @@
1
- @use 'sass:map';
2
- @use '../../../assets/scss/variables/vuetify.scss';
3
-
4
- @mixin elevation($z, $important: false) {
5
- box-shadow: map.get(vuetify.$shadow-key-umbra, $z), map.get(vuetify.$shadow-key-penumbra, $z),
6
- map.get(vuetify.$shadow-key-ambient, $z) if($important, !important, null);
7
- }
8
-
9
- // ℹ️ This mixin is inspired from vuetify for adding hover styles via before pseudo element
10
- @mixin before-pseudo() {
11
- position: relative;
12
-
13
- &::before {
14
- position: absolute;
15
- border-radius: inherit;
16
- background: var(--v-hover-color);
17
- block-size: 100%;
18
- content: '';
19
- inline-size: 100%;
20
- inset: 0;
21
- opacity: 0;
22
- pointer-events: none;
23
- }
24
- }
25
-
26
- @mixin bordered-skin($component, $border-property: 'border', $important: false) {
27
- #{$component} {
28
- // background-color: rgb(var(--v-theme-background));
29
- box-shadow: none !important;
30
- #{$border-property}: 1px solid rgba(var(--v-border-color), var(--v-border-opacity))
31
- if($important, !important, null);
32
- }
33
- }
34
-
35
- // ℹ️ Inspired from vuetify's active-states mixin
36
- // focus => 0.12 & selected => 0.08
37
- @mixin selected-states($selector) {
38
- // #{$selector} {
39
- // opacity: calc(#{map.get(vuetify.$states, "selected")} * var(--v-theme-overlay-multiplier));
40
- // }
41
-
42
- // &:hover
43
- // #{$selector} {
44
- // opacity: calc(#{map.get(vuetify.$states, "selected") + map.get(vuetify.$states, "hover")} * var(--v-theme-overlay-multiplier));
45
- // }
46
-
47
- // &:focus-visible
48
- // #{$selector} {
49
- // opacity: calc(#{map.get(vuetify.$states, "selected") + map.get(vuetify.$states, "focus")} * var(--v-theme-overlay-multiplier));
50
- // }
51
-
52
- // @supports not selector(:focus-visible) {
53
- // &:focus {
54
- // #{$selector} {
55
- // opacity: calc(#{map.get(vuetify.$states, "selected") + map.get(vuetify.$states, "focus")} * var(--v-theme-overlay-multiplier));
56
- // }
57
- // }
58
- // }
59
- #{$selector} {
60
- opacity: calc(var(--v-selected-opacity) * var(--v-theme-overlay-multiplier));
61
- }
62
-
63
- &:hover #{$selector} {
64
- opacity: calc(
65
- var(--v-selected-opacity) + var(--v-hover-opacity) * var(--v-theme-overlay-multiplier)
66
- );
67
- }
68
-
69
- &:focus-visible #{$selector} {
70
- opacity: calc(
71
- var(--v-selected-opacity) + var(--v-focus-opacity) * var(--v-theme-overlay-multiplier)
72
- );
73
- }
74
-
75
- @supports not selector(:focus-visible) {
76
- &:focus {
77
- #{$selector} {
78
- opacity: calc(
79
- var(--v-selected-opacity) + var(--v-focus-opacity) * var(--v-theme-overlay-multiplier)
80
- );
81
- }
82
- }
83
- }
84
- }
@@ -1,70 +0,0 @@
1
- // Zoom fade
2
- .app-transition-zoom-fade-enter-active,
3
- .app-transition-zoom-fade-leave-active {
4
- transition: transform 0.35s, opacity 0.28s ease-in-out;
5
- }
6
-
7
- .app-transition-zoom-fade-enter-from {
8
- opacity: 0;
9
- transform: scale(0.98);
10
- }
11
-
12
- .app-transition-zoom-fade-leave-to {
13
- opacity: 0;
14
- transform: scale(1.02);
15
- }
16
-
17
- // Fade
18
- .app-transition-fade-enter-active,
19
- .app-transition-fade-leave-active {
20
- transition: opacity 0.25s ease-in-out;
21
- }
22
-
23
- .app-transition-fade-enter-from,
24
- .app-transition-fade-leave-to {
25
- opacity: 0;
26
- }
27
-
28
- // Fade bottom
29
- .app-transition-fade-bottom-enter-active,
30
- .app-transition-fade-bottom-leave-active {
31
- transition: opacity 0.3s, transform 0.35s;
32
- }
33
-
34
- .app-transition-fade-bottom-enter-from {
35
- opacity: 0;
36
- transform: translateY(-0.6rem);
37
- }
38
-
39
- .app-transition-fade-bottom-leave-to {
40
- opacity: 0;
41
- transform: translateY(0.6rem);
42
- }
43
-
44
- // Slide fade
45
- .app-transition-slide-fade-enter-active,
46
- .app-transition-slide-fade-leave-active {
47
- transition: opacity 0.3s, transform 0.35s;
48
- }
49
-
50
- .app-transition-slide-fade-enter-from {
51
- opacity: 0;
52
- transform: translateX(-0.6rem);
53
- }
54
-
55
- .app-transition-slide-fade-leave-to {
56
- opacity: 0;
57
- transform: translateX(0.6rem);
58
- }
59
-
60
- // Zoom out
61
- .app-transition-zoom-out-enter-active,
62
- .app-transition-zoom-out-leave-active {
63
- transition: opacity 0.26s ease-in-out, transform 0.3s ease-out;
64
- }
65
-
66
- .app-transition-zoom-out-enter-from,
67
- .app-transition-zoom-out-leave-to {
68
- opacity: 0;
69
- transform: scale(0.98);
70
- }
@@ -1,418 +0,0 @@
1
- @use '../../../assets/scss/variables/template' as variables;
2
- @use '../../../@layouts/styles/mixins' as layoutsMixins;
3
-
4
- // Demo spacers
5
- // TODO: Use vuetify SCSS variable here
6
- $card-spacer-content: 16px;
7
-
8
- .demo-space-x {
9
- display: flex;
10
- flex-wrap: wrap;
11
- align-items: center;
12
- margin-block-start: -$card-spacer-content;
13
-
14
- & > * {
15
- margin-block-start: $card-spacer-content;
16
- margin-inline-end: $card-spacer-content;
17
- }
18
- }
19
-
20
- .demo-space-y {
21
- & > * {
22
- margin-block-end: $card-spacer-content;
23
-
24
- &:last-child {
25
- margin-block-end: 0;
26
- }
27
- }
28
- }
29
-
30
- // Card match height
31
- .match-height.v-row {
32
- .v-card {
33
- block-size: 100%;
34
- }
35
- }
36
-
37
- // Whitespace
38
- .whitespace-no-wrap {
39
- white-space: nowrap;
40
- }
41
-
42
- // Colors
43
-
44
- /*
45
- ℹ️ Vuetify is applying `.text-white` class to badge icon but don't provide its styles
46
- Moreover, we also use this class in some places
47
-
48
- ℹ️ In vuetify 2 with `$color-pack: false` SCSS var config this class was getting generated but this is not the case in v3
49
-
50
- ℹ️ We also need !important to get correct color in badge icon
51
- */
52
- .text-white {
53
- color: #fff !important;
54
- }
55
-
56
- .bg-var-theme-background {
57
- background-color: rgba(var(--v-theme-on-background), 0.08) !important;
58
- }
59
-
60
- // [/^bg-light-(\w+)$/, ([, w]) => ({ backgroundColor: `rgba(var(--v-theme-${w}), var(--v-activated-opacity))` })],
61
- @each $color-name in variables.$theme-colors-name {
62
- .bg-light-#{$color-name} {
63
- background-color: rgba(var(--v-theme-#{$color-name}), var(--v-activated-opacity)) !important;
64
- }
65
- }
66
-
67
- // clamp text
68
- .clamp-text {
69
- display: -webkit-box;
70
- overflow: hidden;
71
- -webkit-box-orient: vertical;
72
- -webkit-line-clamp: 2;
73
- text-overflow: ellipsis;
74
- }
75
-
76
- .leading-normal {
77
- line-height: normal !important;
78
- }
79
-
80
- // for rtl only
81
- .flip-in-rtl {
82
- @include layoutsMixins.rtl {
83
- transform: scaleX(-1);
84
- }
85
- }
86
-
87
- // Carousel
88
- .carousel-delimiter-top-end {
89
- .v-carousel__controls {
90
- justify-content: end;
91
- block-size: 40px;
92
- inset-block-start: 0;
93
- padding-inline: 1rem;
94
-
95
- .v-btn--icon.v-btn--density-default {
96
- block-size: calc(var(--v-btn-height) + -10px);
97
- color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));
98
- inline-size: calc(var(--v-btn-height) + -8px);
99
-
100
- &.v-btn--active {
101
- color: #fff;
102
- }
103
-
104
- .v-btn__overlay {
105
- opacity: 0;
106
- }
107
-
108
- .v-ripple__container {
109
- display: none;
110
- }
111
-
112
- .v-btn__content {
113
- .v-icon {
114
- block-size: 8px !important;
115
- inline-size: 8px !important;
116
- }
117
- }
118
- }
119
- }
120
-
121
- @each $color-name in variables.$theme-colors-name {
122
- &.dots-active-#{$color-name} {
123
- .v-carousel__controls {
124
- .v-btn--active {
125
- color: rgb(var(--v-theme-#{$color-name})) !important;
126
- }
127
- }
128
- }
129
- }
130
- }
131
-
132
- // Pagination small-select dropdown for table
133
- // TODO: remove this class after vuetify datatable implememtation
134
-
135
- .per-page-select {
136
- margin-block: auto;
137
-
138
- .v-field__input {
139
- align-items: center;
140
- padding: 2px;
141
- font-size: 14px;
142
- }
143
-
144
- .v-field__append-inner {
145
- align-items: center;
146
- padding: 0;
147
- margin-inline-start: -2.5rem;
148
-
149
- .v-icon {
150
- margin-inline-start: 0 !important;
151
- }
152
- }
153
- }
154
-
155
- .v-timeline-item {
156
- .app-timeline-title {
157
- color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
158
- font-size: 16px;
159
- font-weight: 500;
160
- line-height: 1.3125rem;
161
- }
162
-
163
- .app-timeline-meta {
164
- color: rgba(var(--v-theme-on-surface), var(--v-disabled-opacity));
165
- font-size: 12px;
166
- line-height: 0.875rem;
167
- }
168
-
169
- .app-timeline-text {
170
- color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));
171
- font-size: 14px;
172
- line-height: 1.25rem;
173
- }
174
- }
175
-
176
- @for $i from 1 through 1100 {
177
- .app-z-#{$i} {
178
- z-index: $i * 1;
179
- }
180
- }
181
-
182
- @for $i from 1 through 100 {
183
- .app-gap-#{$i} {
184
- gap: $i * 0.25rem;
185
- }
186
- }
187
-
188
- .app-font-weight-semibold {
189
- font-weight: 600 !important;
190
- }
191
-
192
- .app-font-size-12 {
193
- font-size: 12px !important;
194
- }
195
-
196
- .app-font-size-13 {
197
- font-size: 13px;
198
- }
199
-
200
- .app-font-size-15 {
201
- font-size: 15px;
202
- }
203
-
204
- .app-font-size-16 {
205
- font-size: 15px;
206
- }
207
-
208
- .app-font-size-18 {
209
- font-size: 18px;
210
- }
211
-
212
- .app-font-size-22 {
213
- font-size: 22px;
214
- }
215
-
216
- .app-font-size-24 {
217
- font-size: 24px;
218
- }
219
-
220
- @for $i from 1 through 400 {
221
- .app-w-#{$i}px {
222
- width: $i * 1px;
223
- }
224
- }
225
-
226
- @for $i from 1 through 400 {
227
- .app-min-w-#{$i}px {
228
- min-width: $i * 1px;
229
- }
230
- }
231
-
232
- @for $i from 1 through 200 {
233
- .app-max-w-#{$i}px {
234
- width: $i * 1px;
235
- }
236
- .\!app-max-w-#{$i}px {
237
- width: $i * 1px !important;
238
- }
239
- }
240
-
241
- @for $i from 1 through 100 {
242
- .app-w-#{$i}rem {
243
- width: $i * 0.25rem;
244
- }
245
- }
246
-
247
- @for $i from 1 through 300 {
248
- .app-h-#{$i}px {
249
- height: $i * 1px;
250
- }
251
- }
252
-
253
- @for $i from 1 through 300 {
254
- .app-min-h-#{$i}px {
255
- min-height: $i * 1px;
256
- }
257
- }
258
-
259
- .app-min-h-250px {
260
- min-height: 250px;
261
- }
262
-
263
- @for $i from 1 through 100 {
264
- .app-h-#{$i}vh {
265
- height: $i * 1vh;
266
- }
267
- }
268
-
269
- @for $i from -100 through 100 {
270
- .app-top-#{$i}px {
271
- top: $i * 1px;
272
- }
273
- }
274
-
275
- @for $i from -100 through 100 {
276
- .app-left-#{$i}px {
277
- left: $i * 1px;
278
- }
279
- }
280
-
281
- @for $i from -100 through 100 {
282
- .app-right-#{$i}px {
283
- right: $i * 1px;
284
- }
285
- }
286
-
287
- @for $i from -100 through 100 {
288
- .app-bottom-#{$i}px {
289
- bottom: $i * 1px;
290
- }
291
- }
292
-
293
- .app-rounded-6 {
294
- border-radius: 6px;
295
- }
296
-
297
- .slide-in-right {
298
- -webkit-animation: slide-in-right 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
299
- animation: slide-in-right 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
300
- }
301
-
302
- @-webkit-keyframes slide-in-right {
303
- 0% {
304
- -webkit-transform: translateX(50px);
305
- transform: translateX(50px);
306
- opacity: 0;
307
- }
308
- 100% {
309
- -webkit-transform: translateX(0);
310
- transform: translateX(0);
311
- opacity: 1;
312
- }
313
- }
314
-
315
- @keyframes slide-in-right {
316
- 0% {
317
- -webkit-transform: translateX(50px);
318
- transform: translateX(50px);
319
- opacity: 0;
320
- }
321
- 100% {
322
- -webkit-transform: translateX(0);
323
- transform: translateX(0);
324
- opacity: 1;
325
- }
326
- }
327
-
328
- .slide-out-right {
329
- -webkit-animation: slide-out-right 0.5s cubic-bezier(0.550, 0.085, 0.680, 0.530) both;
330
- animation: slide-out-right 0.5s cubic-bezier(0.550, 0.085, 0.680, 0.530) both;
331
- }
332
-
333
- @-webkit-keyframes slide-out-right {
334
- 0% {
335
- -webkit-transform: translateX(0);
336
- transform: translateX(0);
337
- opacity: 1;
338
- }
339
- 100% {
340
- -webkit-transform: translateX(50px);
341
- transform: translateX(50px);
342
- opacity: 0;
343
- }
344
- }
345
-
346
- @keyframes slide-out-right {
347
- 0% {
348
- -webkit-transform: translateX(0);
349
- transform: translateX(0);
350
- opacity: 1;
351
- }
352
- 100% {
353
- -webkit-transform: translateX(50px);
354
- transform: translateX(50px);
355
- opacity: 0;
356
- }
357
- }
358
-
359
- .app-w-fit {
360
- width: fit-content;
361
- }
362
-
363
- .app-h-fit {
364
- height: fit-content;
365
- }
366
-
367
- .app-cursor-pointer {
368
- cursor: pointer;
369
- }
370
-
371
- .app-pointer-events-all {
372
- pointer-events: all;
373
- }
374
- .app-min-h-screen {
375
- min-height: 100vh;
376
- }
377
-
378
- .app-aspect-ratio-1 {
379
- aspect-ratio: 1;
380
- }
381
-
382
- .app-flex-1 {
383
- flex: 1 1 0%;
384
- }
385
-
386
- @for $i from 0 through 100 {
387
- .app-opacity-#{$i} {
388
- opacity: $i * 1%;
389
- }
390
- }
391
-
392
- .app-border-silver {
393
- border: 1px solid rgba(var(--v-theme-silver));
394
- }
395
-
396
- .app-inset-inline-end-9px {
397
- inset-inline-end: 9px;
398
- }
399
-
400
- .app-h-fit {
401
- height: fit-content !important;
402
- }
403
-
404
- .app-border-yellow {
405
- border: 1px solid rgb(var(--v-theme-yellow));
406
- }
407
-
408
- .app-border-dark-gray {
409
- border: 1px solid rgb(var(--v-theme-dark-gray));
410
- }
411
-
412
- .app-border-primary {
413
- border-color: rgb(var(--v-theme-primary)) !important;
414
- }
415
-
416
- .app-dir-ltr {
417
- direction: ltr !important;
418
- }
@@ -1,100 +0,0 @@
1
- @use 'sass:map';
2
- @use 'sass:list';
3
- @use '../../../assets/scss/variables/template' as variables;
4
-
5
- // Thanks: https://css-tricks.com/snippets/sass/deep-getset-maps/
6
- @function map-deep-get($map, $keys...) {
7
- @each $key in $keys {
8
- $map: map.get($map, $key);
9
- }
10
-
11
- @return $map;
12
- }
13
-
14
- @function map-deep-set($map, $keys, $value) {
15
- $maps: ($map);
16
- $result: null;
17
-
18
- // If the last key is a map already
19
- // Warn the user we will be overriding it with $value
20
- @if type-of(nth($keys, -1)) == 'map' {
21
- @warn "The last key you specified is a map; it will be overrided with `#{$value}`.";
22
- }
23
-
24
- // If $keys is a single key
25
- // Just merge and return
26
- @if length($keys) == 1 {
27
- @return map-merge(
28
- $map,
29
- (
30
- $keys: $value,
31
- )
32
- );
33
- }
34
-
35
- // Loop from the first to the second to last key from $keys
36
- // Store the associated map to this key in the $maps list
37
- // If the key doesn't exist, throw an error
38
- @for $i from 1 through length($keys) - 1 {
39
- $current-key: list.nth($keys, $i);
40
- $current-map: list.nth($maps, -1);
41
- $current-get: map.get($current-map, $current-key);
42
-
43
- @if not $current-get {
44
- @error "Key `#{$key}` doesn't exist at current level in map.";
45
- }
46
-
47
- $maps: list.append($maps, $current-get);
48
- }
49
-
50
- // Loop from the last map to the first one
51
- // Merge it with the previous one
52
- @for $i from length($maps) through 1 {
53
- $current-map: list.nth($maps, $i);
54
- $current-key: list.nth($keys, $i);
55
- $current-val: if($i == list.length($maps), $value, $result);
56
- $result: map.map-merge(
57
- $current-map,
58
- (
59
- $current-key: $current-val,
60
- )
61
- );
62
- }
63
-
64
- // Return result
65
- @return $result;
66
- }
67
-
68
- // font size utility classes
69
- @each $name, $size in variables.$font-sizes {
70
- .text-#{$name} {
71
- font-size: $size;
72
- line-height: map.get(variables.$font-line-height, $name);
73
- }
74
- }
75
-
76
- // truncate utility class
77
- .truncate {
78
- overflow: hidden;
79
- text-overflow: ellipsis;
80
- white-space: nowrap;
81
- }
82
-
83
- // gap utility class
84
- @each $name, $size in variables.$gap {
85
- .gap-#{$name} {
86
- gap: $size;
87
- }
88
-
89
- .gap-x-#{$name} {
90
- column-gap: $size;
91
- }
92
-
93
- .gap-y-#{$name} {
94
- row-gap: $size;
95
- }
96
- }
97
-
98
- .list-none {
99
- list-style-type: none;
100
- }