@katlux/toolkit 0.1.0-beta.5 → 0.1.0-beta.50

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 (137) hide show
  1. package/dist/compiled/composables/usePresetComponent.mjs +21 -16
  2. package/dist/module.cjs +52 -0
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +52 -0
  5. package/dist/runtime/components/KCalendar/KCalendar.global.d.vue.ts +11 -12
  6. package/dist/runtime/components/KCalendar/KCalendar.global.vue.d.ts +11 -12
  7. package/dist/runtime/components/KCalendar/KCalendar.logic.d.ts +1 -0
  8. package/dist/runtime/components/KCalendar/KCalendar.logic.js +25 -10
  9. package/dist/runtime/components/KCombobox/KCombobox.global.d.vue.ts +18 -10
  10. package/dist/runtime/components/KCombobox/KCombobox.global.vue +6 -2
  11. package/dist/runtime/components/KCombobox/KCombobox.global.vue.d.ts +18 -10
  12. package/dist/runtime/components/KCombobox/KCombobox.logic.d.ts +78 -0
  13. package/dist/runtime/components/KCombobox/KCombobox.logic.js +8 -3
  14. package/dist/runtime/components/KCompositeInput/KCompositeInput.global.d.vue.ts +149 -0
  15. package/dist/runtime/components/KCompositeInput/KCompositeInput.global.vue +65 -0
  16. package/dist/runtime/components/KCompositeInput/KCompositeInput.global.vue.d.ts +149 -0
  17. package/dist/runtime/components/KCompositeInput/KCompositeInput.logic.d.ts +116 -0
  18. package/dist/runtime/components/KCompositeInput/KCompositeInput.logic.js +149 -0
  19. package/dist/runtime/components/KDatePicker/KDatePicker.global.d.vue.ts +56 -8
  20. package/dist/runtime/components/KDatePicker/KDatePicker.global.vue +23 -3
  21. package/dist/runtime/components/KDatePicker/KDatePicker.global.vue.d.ts +56 -8
  22. package/dist/runtime/components/KDatePicker/KDatePicker.logic.d.ts +22 -1
  23. package/dist/runtime/components/KDatePicker/KDatePicker.logic.js +89 -7
  24. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.d.vue.ts +54 -8
  25. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.vue +23 -3
  26. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.vue.d.ts +54 -8
  27. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.logic.d.ts +22 -1
  28. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.logic.js +148 -7
  29. package/dist/runtime/components/KDropdown/KDropdown.global.d.vue.ts +18 -0
  30. package/dist/runtime/components/KDropdown/KDropdown.global.vue +13 -4
  31. package/dist/runtime/components/KDropdown/KDropdown.global.vue.d.ts +18 -0
  32. package/dist/runtime/components/KDropdown/KDropdown.logic.d.ts +28 -1
  33. package/dist/runtime/components/KDropdown/KDropdown.logic.js +85 -4
  34. package/dist/runtime/components/KGrid/KGrid.global.d.vue.ts +7 -56
  35. package/dist/runtime/components/KGrid/KGrid.global.vue +9 -2
  36. package/dist/runtime/components/KGrid/KGrid.global.vue.d.ts +7 -56
  37. package/dist/runtime/components/KHourPicker/KHourPicker.global.d.vue.ts +20 -0
  38. package/dist/runtime/components/KHourPicker/KHourPicker.global.vue +25 -12
  39. package/dist/runtime/components/KHourPicker/KHourPicker.global.vue.d.ts +20 -0
  40. package/dist/runtime/components/KHourPicker/KHourPicker.logic.d.ts +14 -3
  41. package/dist/runtime/components/KHourPicker/KHourPicker.logic.js +25 -10
  42. package/dist/runtime/components/KHourSelect/KHourSelect.logic.js +4 -1
  43. package/dist/runtime/components/KIcon/KIcon.global.d.vue.ts +1 -1
  44. package/dist/runtime/components/KIcon/KIcon.global.vue.d.ts +1 -1
  45. package/dist/runtime/components/KIcon/KIcon.logic.d.ts +1 -1
  46. package/dist/runtime/components/KIcon/KIcon.logic.js +13 -8
  47. package/dist/runtime/components/KLoader/KLoader.global.d.vue.ts +3 -3
  48. package/dist/runtime/components/KLoader/KLoader.global.vue.d.ts +3 -3
  49. package/dist/runtime/components/KLoader/KLoader.logic.d.ts +8 -1
  50. package/dist/runtime/components/KLoader/KLoader.logic.js +1 -0
  51. package/dist/runtime/components/KMaskTextbox/KMaskTextbox.global.vue +1 -1
  52. package/dist/runtime/components/KModal/KModal.global.vue +4 -1
  53. package/dist/runtime/components/KModal/KModal.logic.d.ts +3 -1
  54. package/dist/runtime/components/KModal/KModal.logic.js +6 -2
  55. package/dist/runtime/components/KPanel/KPanel.global.d.vue.ts +5 -28
  56. package/dist/runtime/components/KPanel/KPanel.global.vue +12 -4
  57. package/dist/runtime/components/KPanel/KPanel.global.vue.d.ts +5 -28
  58. package/dist/runtime/components/KPanel/KPanel.logic.d.ts +10 -0
  59. package/dist/runtime/components/KPanel/KPanel.logic.js +8 -0
  60. package/dist/runtime/components/KTextbox/KTextbox.global.d.vue.ts +15 -2
  61. package/dist/runtime/components/KTextbox/KTextbox.global.vue +5 -4
  62. package/dist/runtime/components/KTextbox/KTextbox.global.vue.d.ts +15 -2
  63. package/dist/runtime/components/KTextbox/KTextbox.logic.d.ts +10 -4
  64. package/dist/runtime/components/KTextbox/KTextbox.logic.js +12 -5
  65. package/dist/runtime/components/KTree/KTree.global.d.vue.ts +1 -1
  66. package/dist/runtime/components/KTree/KTree.global.vue.d.ts +1 -1
  67. package/dist/runtime/components/KTreePicker/KTreePicker.global.d.vue.ts +2 -2
  68. package/dist/runtime/components/KTreePicker/KTreePicker.global.vue.d.ts +2 -2
  69. package/dist/runtime/components/KTreePicker/KTreePicker.logic.d.ts +77 -0
  70. package/dist/runtime/composables/usePresetComponent.d.ts +16 -0
  71. package/dist/runtime/composables/usePresetComponent.js +21 -16
  72. package/dist/runtime/presets/default/assets/scss/css-variables.css +64 -13
  73. package/dist/runtime/presets/default/assets/scss/css-variables.scss +286 -0
  74. package/dist/runtime/presets/default/assets/scss/docs.scss +52 -0
  75. package/dist/runtime/presets/default/assets/scss/index.css +72 -13
  76. package/dist/runtime/presets/default/assets/scss/index.scss +12 -0
  77. package/dist/runtime/presets/default/assets/scss/mixins.scss +94 -0
  78. package/dist/runtime/presets/default/assets/scss/reset.scss +16 -0
  79. package/dist/runtime/presets/default/components/KAccordion/KAccordion.vue +5 -2
  80. package/dist/runtime/presets/default/components/KAccordion/KAccordionItem.vue +40 -37
  81. package/dist/runtime/presets/default/components/KBulkActions/KBulkActions.vue +29 -22
  82. package/dist/runtime/presets/default/components/KButton/KButton.vue +147 -428
  83. package/dist/runtime/presets/default/components/KCalendar/KCalendar.vue +57 -53
  84. package/dist/runtime/presets/default/components/KCalendar/KCalendarMonth.vue +189 -161
  85. package/dist/runtime/presets/default/components/KCheckbox/KCheckbox.vue +46 -36
  86. package/dist/runtime/presets/default/components/KCombobox/KCombobox.d.vue.ts +3 -0
  87. package/dist/runtime/presets/default/components/KCombobox/KCombobox.vue +90 -70
  88. package/dist/runtime/presets/default/components/KCombobox/KCombobox.vue.d.ts +3 -0
  89. package/dist/runtime/presets/default/components/KCombobox/KComboboxList.vue +78 -60
  90. package/dist/runtime/presets/default/components/KCompositeInput/KCompositeInput.d.vue.ts +27 -0
  91. package/dist/runtime/presets/default/components/KCompositeInput/KCompositeInput.vue +190 -0
  92. package/dist/runtime/presets/default/components/KCompositeInput/KCompositeInput.vue.d.ts +27 -0
  93. package/dist/runtime/presets/default/components/KDataIterator/KDataIterator.vue +40 -31
  94. package/dist/runtime/presets/default/components/KDatatable/KDatatable.vue +110 -92
  95. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.d.vue.ts +3 -0
  96. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.vue +44 -25
  97. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.vue.d.ts +3 -0
  98. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.d.vue.ts +3 -0
  99. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.vue +68 -52
  100. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.vue.d.ts +3 -0
  101. package/dist/runtime/presets/default/components/KDropdown/KDropdown.d.vue.ts +8 -0
  102. package/dist/runtime/presets/default/components/KDropdown/KDropdown.vue +46 -25
  103. package/dist/runtime/presets/default/components/KDropdown/KDropdown.vue.d.ts +8 -0
  104. package/dist/runtime/presets/default/components/KGantt/KGantt.vue +337 -241
  105. package/dist/runtime/presets/default/components/KGantt/KGanttRuler.vue +40 -35
  106. package/dist/runtime/presets/default/components/KGantt/KGanttTimeline.vue +170 -140
  107. package/dist/runtime/presets/default/components/KGrid/KGrid.vue +62 -60
  108. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.d.vue.ts +6 -2
  109. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.vue +44 -28
  110. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.vue.d.ts +6 -2
  111. package/dist/runtime/presets/default/components/KHourSelect/KHourSelect.vue +34 -28
  112. package/dist/runtime/presets/default/components/KIcon/KIcon.d.vue.ts +1 -1
  113. package/dist/runtime/presets/default/components/KIcon/KIcon.vue +31 -22
  114. package/dist/runtime/presets/default/components/KIcon/KIcon.vue.d.ts +1 -1
  115. package/dist/runtime/presets/default/components/KLoader/KLoader.vue +53 -47
  116. package/dist/runtime/presets/default/components/KMaskTextbox/KMaskTextbox.vue +113 -84
  117. package/dist/runtime/presets/default/components/KModal/KModal.d.vue.ts +1 -0
  118. package/dist/runtime/presets/default/components/KModal/KModal.vue +64 -35
  119. package/dist/runtime/presets/default/components/KModal/KModal.vue.d.ts +1 -0
  120. package/dist/runtime/presets/default/components/KPagination/KPagination.vue +42 -40
  121. package/dist/runtime/presets/default/components/KPanel/KPanel.d.vue.ts +3 -0
  122. package/dist/runtime/presets/default/components/KPanel/KPanel.vue +95 -34
  123. package/dist/runtime/presets/default/components/KPanel/KPanel.vue.d.ts +3 -0
  124. package/dist/runtime/presets/default/components/KRadiobox/KRadiobox.vue +30 -29
  125. package/dist/runtime/presets/default/components/KRangeSlider/KRangeSlider.vue +158 -125
  126. package/dist/runtime/presets/default/components/KSlider/KSlider.vue +123 -100
  127. package/dist/runtime/presets/default/components/KTabs/KTabItem.vue +40 -37
  128. package/dist/runtime/presets/default/components/KTabs/KTabs.vue +9 -6
  129. package/dist/runtime/presets/default/components/KTextarea/KTextarea.vue +23 -20
  130. package/dist/runtime/presets/default/components/KTextbox/KTextbox.d.vue.ts +2 -1
  131. package/dist/runtime/presets/default/components/KTextbox/KTextbox.vue +49 -36
  132. package/dist/runtime/presets/default/components/KTextbox/KTextbox.vue.d.ts +2 -1
  133. package/dist/runtime/presets/default/components/KTree/KTree.vue +102 -80
  134. package/dist/runtime/presets/default/components/KTreePicker/KTreePicker.vue +55 -34
  135. package/dist/runtime/presets/default/components/KTreeView/KTreeCell.vue +31 -30
  136. package/dist/runtime/presets/default/components/KTreeView/KTreeView.vue +34 -27
  137. package/package.json +5 -5
@@ -8,31 +8,38 @@
8
8
  .info Selected {{props.selectedRows.length}} items
9
9
  </template>
10
10
 
11
- <script setup>
12
- import { computed } from "vue";
13
- import { CFlatClientDataProvider } from "@katlux/providers";
14
- const props = defineProps({
15
- bulkActions: { type: Array, required: true },
16
- selectedRows: { type: Array, required: true },
17
- selectAll: { type: Boolean, required: true },
18
- selected: { type: null, required: true },
19
- dp: { type: Object, required: true },
20
- doAction: { type: Function, required: true }
21
- });
22
- const emit = defineEmits(["update:selected"]);
11
+ <script setup lang="ts">
12
+ import { computed } from 'vue'
13
+ import { CFlatClientDataProvider } from '@katlux/providers'
14
+ import type { IKDatatableAction } from '@katlux/providers'
15
+
16
+ const props = defineProps<{
17
+ bulkActions: IKDatatableAction[]
18
+ selectedRows: any[]
19
+ selectAll: boolean
20
+ selected: any
21
+ dp: CFlatClientDataProvider
22
+ doAction: (action: any) => void
23
+ }>()
24
+
25
+ const emit = defineEmits<{
26
+ (e: 'update:selected', value: any): void
27
+ }>()
28
+
23
29
  const internalSelected = computed({
24
- get: () => props.selected,
25
- set: (val) => emit("update:selected", val)
26
- });
30
+ get: () => props.selected,
31
+ set: (val) => emit('update:selected', val)
32
+ })
33
+
27
34
  </script>
28
35
 
29
- <style scoped>
36
+ <style lang="scss" scoped>
30
37
  .k-bulk-actions {
31
- display: flex;
32
- gap: 10px;
33
- }
34
- .k-bulk-actions .info {
35
- display: flex;
36
- align-items: center;
38
+ display: flex;
39
+ gap: 10px;
40
+ .info {
41
+ display: flex;
42
+ align-items: center;
43
+ }
37
44
  }
38
45
  </style>
@@ -9,436 +9,155 @@ button.KButton(v-else @click="onClick" :class="buttonClasses" :disabled="isDisab
9
9
  span.loading(v-if="loading")
10
10
  </template>
11
11
 
12
- <script setup>
13
- defineProps({
14
- isLink: { type: Boolean, required: true },
15
- isDisabled: { type: Boolean, required: true },
16
- buttonClasses: { type: null, required: true },
17
- onClick: { type: Function, required: true },
18
- href: { type: String, required: false },
19
- loading: { type: Boolean, required: false }
20
- });
12
+ <script lang="ts" setup>
13
+ // Default template for KButton
14
+ defineProps<{
15
+ isLink: boolean
16
+ isDisabled: boolean
17
+ buttonClasses: any
18
+ onClick: () => void
19
+ href?: string
20
+ loading?: boolean
21
+ }>()
21
22
  </script>
22
23
 
23
- <style scoped>
24
+ <style lang="scss" scoped>
25
+ @use "../../assets/scss/mixins.scss" as mixins;
24
26
  .KButton {
25
- border-radius: var(--button-border-radius);
26
- font-weight: 400;
27
- cursor: pointer;
28
- transition: all 0.3s ease;
29
- border: 1px solid;
30
- display: flex;
31
- gap: 10px;
32
- align-items: center;
33
- text-decoration: none;
34
- }
35
- .KButton:disabled {
36
- opacity: 0.5;
37
- cursor: not-allowed;
38
- pointer-events: none;
39
- }
40
- .KButton.default {
41
- background-color: var(--neutral-900);
42
- border-color: var(--neutral-900);
43
- color: var(--font-color-light);
44
- }
45
- .KButton.default .loading {
46
- display: inline-block;
47
- width: 10px;
48
- height: 10px;
49
- border-radius: 50%;
50
- position: relative;
51
- animation: rotate 1s linear infinite;
52
- }
53
- .KButton.default .loading::before {
54
- content: "";
55
- box-sizing: border-box;
56
- position: absolute;
57
- inset: 0px;
58
- border-radius: 50%;
59
- border: 1px solid var(--neutral-50);
60
- animation: prixClipFix 2s linear infinite;
61
- }
62
- @keyframes rotate {
63
- 100% {
64
- transform: rotate(360deg);
65
- }
66
- }
67
- @keyframes prixClipFix {
68
- 0% {
69
- clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
70
- }
71
- 25% {
72
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
73
- }
74
- 50% {
75
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
76
- }
77
- 75% {
78
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
79
- }
80
- 100% {
81
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
82
- }
83
- }
84
- .KButton.primary {
85
- background-color: var(--button-bg-primary);
86
- border-color: var(--button-bg-primary);
87
- color: var(--button-text-primary);
88
- }
89
- .KButton.primary .loading {
90
- display: inline-block;
91
- width: 10px;
92
- height: 10px;
93
- border-radius: 50%;
94
- position: relative;
95
- animation: rotate 1s linear infinite;
96
- }
97
- .KButton.primary .loading::before {
98
- content: "";
99
- box-sizing: border-box;
100
- position: absolute;
101
- inset: 0px;
102
- border-radius: 50%;
103
- border: 1px solid var(--neutral-50);
104
- animation: prixClipFix 2s linear infinite;
105
- }
106
- @keyframes rotate {
107
- 100% {
108
- transform: rotate(360deg);
109
- }
110
- }
111
- @keyframes prixClipFix {
112
- 0% {
113
- clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
114
- }
115
- 25% {
116
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
117
- }
118
- 50% {
119
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
120
- }
121
- 75% {
122
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
123
- }
124
- 100% {
125
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
126
- }
127
- }
128
- .KButton.danger {
129
- background-color: var(--button-bg-danger);
130
- border-color: var(--button-bg-danger);
131
- color: var(--button-text-danger);
132
- }
133
- .KButton.danger .loading {
134
- display: inline-block;
135
- width: 10px;
136
- height: 10px;
137
- border-radius: 50%;
138
- position: relative;
139
- animation: rotate 1s linear infinite;
140
- }
141
- .KButton.danger .loading::before {
142
- content: "";
143
- box-sizing: border-box;
144
- position: absolute;
145
- inset: 0px;
146
- border-radius: 50%;
147
- border: 1px solid var(--neutral-50);
148
- animation: prixClipFix 2s linear infinite;
149
- }
150
- @keyframes rotate {
151
- 100% {
152
- transform: rotate(360deg);
153
- }
154
- }
155
- @keyframes prixClipFix {
156
- 0% {
157
- clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
158
- }
159
- 25% {
160
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
161
- }
162
- 50% {
163
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
164
- }
165
- 75% {
166
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
167
- }
168
- 100% {
169
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
170
- }
171
- }
172
- .KButton.success {
173
- background-color: var(--button-bg-success);
174
- border-color: var(--button-bg-success);
175
- color: var(--button-text-success);
176
- }
177
- .KButton.success .loading {
178
- display: inline-block;
179
- width: 10px;
180
- height: 10px;
181
- border-radius: 50%;
182
- position: relative;
183
- animation: rotate 1s linear infinite;
184
- }
185
- .KButton.success .loading::before {
186
- content: "";
187
- box-sizing: border-box;
188
- position: absolute;
189
- inset: 0px;
190
- border-radius: 50%;
191
- border: 1px solid var(--neutral-50);
192
- animation: prixClipFix 2s linear infinite;
193
- }
194
- @keyframes rotate {
195
- 100% {
196
- transform: rotate(360deg);
197
- }
198
- }
199
- @keyframes prixClipFix {
200
- 0% {
201
- clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
202
- }
203
- 25% {
204
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
205
- }
206
- 50% {
207
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
208
- }
209
- 75% {
210
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
211
- }
212
- 100% {
213
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
214
- }
215
- }
216
- .KButton.warning {
217
- background-color: var(--button-bg-warning);
218
- border-color: var(--button-bg-warning);
219
- color: var(--button-text-warning);
220
- }
221
- .KButton.warning .loading {
222
- display: inline-block;
223
- width: 10px;
224
- height: 10px;
225
- border-radius: 50%;
226
- position: relative;
227
- animation: rotate 1s linear infinite;
228
- }
229
- .KButton.warning .loading::before {
230
- content: "";
231
- box-sizing: border-box;
232
- position: absolute;
233
- inset: 0px;
234
- border-radius: 50%;
235
- border: 1px solid var(--neutral-800);
236
- animation: prixClipFix 2s linear infinite;
237
- }
238
- @keyframes rotate {
239
- 100% {
240
- transform: rotate(360deg);
241
- }
242
- }
243
- @keyframes prixClipFix {
244
- 0% {
245
- clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
246
- }
247
- 25% {
248
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
249
- }
250
- 50% {
251
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
252
- }
253
- 75% {
254
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
255
- }
256
- 100% {
257
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
258
- }
259
- }
260
- .KButton.info {
261
- background-color: var(--button-bg-info);
262
- border-color: var(--button-bg-info);
263
- color: var(--button-text-info);
264
- }
265
- .KButton.info .loading {
266
- display: inline-block;
267
- width: 10px;
268
- height: 10px;
269
- border-radius: 50%;
270
- position: relative;
271
- animation: rotate 1s linear infinite;
272
- }
273
- .KButton.info .loading::before {
274
- content: "";
275
- box-sizing: border-box;
276
- position: absolute;
277
- inset: 0px;
278
- border-radius: 50%;
279
- border: 1px solid var(--neutral-50);
280
- animation: prixClipFix 2s linear infinite;
281
- }
282
- @keyframes rotate {
283
- 100% {
284
- transform: rotate(360deg);
285
- }
286
- }
287
- @keyframes prixClipFix {
288
- 0% {
289
- clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
290
- }
291
- 25% {
292
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
293
- }
294
- 50% {
295
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
296
- }
297
- 75% {
298
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
299
- }
300
- 100% {
301
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
302
- }
303
- }
304
- .KButton.light {
305
- background-color: var(--button-bg-light);
306
- border-color: var(--button-bg-light);
307
- color: var(--button-text-light);
308
- }
309
- .KButton.light .loading {
310
- display: inline-block;
311
- width: 10px;
312
- height: 10px;
313
- border-radius: 50%;
314
- position: relative;
315
- animation: rotate 1s linear infinite;
316
- }
317
- .KButton.light .loading::before {
318
- content: "";
319
- box-sizing: border-box;
320
- position: absolute;
321
- inset: 0px;
322
- border-radius: 50%;
323
- border: 1px solid var(--neutral-800);
324
- animation: prixClipFix 2s linear infinite;
325
- }
326
- @keyframes rotate {
327
- 100% {
328
- transform: rotate(360deg);
329
- }
330
- }
331
- @keyframes prixClipFix {
332
- 0% {
333
- clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
334
- }
335
- 25% {
336
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
337
- }
338
- 50% {
339
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
340
- }
341
- 75% {
342
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
343
- }
344
- 100% {
345
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
346
- }
347
- }
348
- .KButton.dark {
349
- background-color: var(--button-bg-dark);
350
- border-color: var(--button-bg-dark);
351
- color: var(--button-text-dark);
352
- }
353
- .KButton.dark .loading {
354
- display: inline-block;
355
- width: 10px;
356
- height: 10px;
357
- border-radius: 50%;
358
- position: relative;
359
- animation: rotate 1s linear infinite;
360
- }
361
- .KButton.dark .loading::before {
362
- content: "";
363
- box-sizing: border-box;
364
- position: absolute;
365
- inset: 0px;
366
- border-radius: 50%;
367
- border: 1px solid var(--neutral-50);
368
- animation: prixClipFix 2s linear infinite;
369
- }
370
- @keyframes rotate {
371
- 100% {
372
- transform: rotate(360deg);
373
- }
374
- }
375
- @keyframes prixClipFix {
376
- 0% {
377
- clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
378
- }
379
- 25% {
380
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
381
- }
382
- 50% {
383
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
384
- }
385
- 75% {
386
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
387
- }
388
- 100% {
389
- clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
390
- }
391
- }
392
- .KButton:hover.default {
393
- background-color: var(--neutral-700);
394
- border-color: var(--neutral-700);
395
- color: var(--font-color-light);
396
- }
397
- .KButton:hover.primary {
398
- background-color: var(--button-hover-bg-primary);
399
- border-color: var(--button-hover-bg-primary);
400
- color: var(--button-hover-text-primary);
401
- }
402
- .KButton:hover.danger {
403
- background-color: var(--button-hover-bg-danger);
404
- border-color: var(--button-hover-bg-danger);
405
- color: var(--button-hover-text-danger);
406
- }
407
- .KButton:hover.success {
408
- background-color: var(--button-hover-bg-success);
409
- border-color: var(--button-hover-bg-success);
410
- color: var(--button-hover-text-success);
411
- }
412
- .KButton:hover.warning {
413
- background-color: var(--button-hover-bg-warning);
414
- border-color: var(--button-hover-bg-warning);
415
- color: var(--button-hover-text-warning);
416
- }
417
- .KButton:hover.info {
418
- background-color: var(--button-hover-bg-info);
419
- border-color: var(--button-hover-bg-info);
420
- color: var(--button-hover-text-info);
421
- }
422
- .KButton:hover.light {
423
- background-color: var(--button-hover-bg-light);
424
- border-color: var(--button-hover-bg-light);
425
- color: var(--button-hover-text-light);
426
- }
427
- .KButton:hover.dark {
428
- background-color: var(--button-hover-bg-dark);
429
- border-color: var(--button-hover-bg-dark);
430
- color: var(--button-hover-text-dark);
431
- }
432
- .KButton.large {
433
- font-size: var(--button-font-size-lg);
434
- padding: 15px 30px;
435
- }
436
- .KButton.medium {
437
- font-size: var(--button-font-size-md);
438
- padding: 10px 20px;
439
- }
440
- .KButton.small {
441
- font-size: var(--button-font-size-md);
442
- padding: 5px 10px;
27
+ border-radius: var(--button-border-radius);
28
+ font-weight: 400;
29
+ cursor: pointer;
30
+ transition: all 0.3s ease;
31
+ border: 1px solid;
32
+ display: inline-flex;
33
+ gap: 10px;
34
+ align-items: center;
35
+ text-decoration: none;
36
+
37
+ &:disabled {
38
+ opacity: 0.5;
39
+ cursor: not-allowed;
40
+ pointer-events: none;
41
+ }
42
+
43
+ &.default {
44
+ background-color: var(--neutral-900);
45
+ border-color: var(--neutral-900);
46
+ color: var(--font-color-light);
47
+ .loading {
48
+ @include mixins.loading-animation($size: 10px, $color: light);
49
+ }
50
+ }
51
+ &.primary {
52
+ background-color: var(--button-bg-primary);
53
+ border-color: var(--button-bg-primary);
54
+ color: var(--button-text-primary);
55
+ .loading {
56
+ @include mixins.loading-animation($size: 10px, $color: light);
57
+ }
58
+ }
59
+ &.danger {
60
+ background-color: var(--button-bg-danger);
61
+ border-color: var(--button-bg-danger);
62
+ color: var(--button-text-danger);
63
+ .loading {
64
+ @include mixins.loading-animation($size: 10px, $color: light);
65
+ }
66
+ }
67
+ &.success {
68
+ background-color: var(--button-bg-success);
69
+ border-color: var(--button-bg-success);
70
+ color: var(--button-text-success);
71
+ .loading {
72
+ @include mixins.loading-animation($size: 10px, $color: light);
73
+ }
74
+ }
75
+ &.warning {
76
+ background-color: var(--button-bg-warning);
77
+ border-color: var(--button-bg-warning);
78
+ color: var(--button-text-warning);
79
+ .loading {
80
+ @include mixins.loading-animation($size: 10px, $color: dark);
81
+ }
82
+ }
83
+ &.info {
84
+ background-color: var(--button-bg-info);
85
+ border-color: var(--button-bg-info);
86
+ color: var(--button-text-info);
87
+ .loading {
88
+ @include mixins.loading-animation($size: 10px, $color: light);
89
+ }
90
+ }
91
+ &.light {
92
+ background-color: var(--button-bg-light);
93
+ border-color: var(--button-bg-light);
94
+ color: var(--button-text-light);
95
+ .loading {
96
+ @include mixins.loading-animation($size: 10px, $color: dark);
97
+ }
98
+ }
99
+ &.dark {
100
+ background-color: var(--button-bg-dark);
101
+ border-color: var(--button-bg-dark);
102
+ color: var(--button-text-dark);
103
+ .loading {
104
+ @include mixins.loading-animation($size: 10px, $color: light);
105
+ }
106
+ }
107
+ &:hover {
108
+ &.default {
109
+ background-color: var(--neutral-700);
110
+ border-color: var(--neutral-700);
111
+ color: var(--font-color-light);
112
+ }
113
+ &.primary {
114
+ background-color: var(--button-hover-bg-primary);
115
+ border-color: var(--button-hover-bg-primary);
116
+ color: var(--button-hover-text-primary);
117
+ }
118
+ &.danger {
119
+ background-color: var(--button-hover-bg-danger);
120
+ border-color: var(--button-hover-bg-danger);
121
+ color: var(--button-hover-text-danger);
122
+ }
123
+ &.success {
124
+ background-color: var(--button-hover-bg-success);
125
+ border-color: var(--button-hover-bg-success);
126
+ color: var(--button-hover-text-success);
127
+ }
128
+ &.warning {
129
+ background-color: var(--button-hover-bg-warning);
130
+ border-color: var(--button-hover-bg-warning);
131
+ color: var(--button-hover-text-warning);
132
+ }
133
+ &.info {
134
+ background-color: var(--button-hover-bg-info);
135
+ border-color: var(--button-hover-bg-info);
136
+ color: var(--button-hover-text-info);
137
+ }
138
+ &.light {
139
+ background-color: var(--button-hover-bg-light);
140
+ border-color: var(--button-hover-bg-light);
141
+ color: var(--button-hover-text-light);
142
+ }
143
+ &.dark {
144
+ background-color: var(--button-hover-bg-dark);
145
+ border-color: var(--button-hover-bg-dark);
146
+ color: var(--button-hover-text-dark);
147
+ }
148
+ }
149
+
150
+ &.large {
151
+ font-size: var(--button-font-size-lg);
152
+ padding: 15px 30px;
153
+ }
154
+ &.medium {
155
+ font-size: var(--button-font-size-md);
156
+ padding: 10px 20px;
157
+ }
158
+ &.small {
159
+ font-size: var(--button-font-size-md);
160
+ padding: 5px 10px;
161
+ }
443
162
  }
444
163
  </style>