@globalbrain/sefirot 2.0.0 → 2.1.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 (102) hide show
  1. package/lib/components/SButton.vue +22 -23
  2. package/lib/components/SDropdownSectionFilter.vue +4 -3
  3. package/lib/components/SInputCheckbox.vue +4 -3
  4. package/lib/components/SInputDropdown.vue +6 -5
  5. package/lib/components/SInputDropdownItemAvatar.vue +3 -3
  6. package/lib/components/SInputDropdownItemText.vue +3 -3
  7. package/lib/components/SInputFile.vue +1 -0
  8. package/lib/components/SInputSelect.vue +6 -5
  9. package/lib/components/SInputText.vue +2 -1
  10. package/lib/components/SModal.vue +17 -3
  11. package/lib/components/SSheet.vue +7 -6
  12. package/lib/components/SSnackbar.vue +6 -5
  13. package/lib/components/{icons/SIconPreloader.vue → SSpinner.vue} +5 -4
  14. package/lib/components/SStep.vue +6 -5
  15. package/lib/components/STable.vue +3 -2
  16. package/lib/components/STableCellText.vue +4 -3
  17. package/lib/components/STableColumn.vue +5 -5
  18. package/lib/components/STableFooter.vue +5 -5
  19. package/package.json +3 -1
  20. package/lib/components/icons/SIconActivity.vue +0 -5
  21. package/lib/components/icons/SIconArrowDown.vue +0 -5
  22. package/lib/components/icons/SIconArrowLeft.vue +0 -5
  23. package/lib/components/icons/SIconArrowRight.vue +0 -5
  24. package/lib/components/icons/SIconArrowUp.vue +0 -5
  25. package/lib/components/icons/SIconBarChart.vue +0 -7
  26. package/lib/components/icons/SIconBriefcase.vue +0 -5
  27. package/lib/components/icons/SIconBuilding.vue +0 -5
  28. package/lib/components/icons/SIconCalendar.vue +0 -5
  29. package/lib/components/icons/SIconCheck.vue +0 -5
  30. package/lib/components/icons/SIconCheckCircle.vue +0 -6
  31. package/lib/components/icons/SIconCheckCircleThin.vue +0 -6
  32. package/lib/components/icons/SIconCheckSquare.vue +0 -6
  33. package/lib/components/icons/SIconChevronDown.vue +0 -5
  34. package/lib/components/icons/SIconChevronLeft.vue +0 -5
  35. package/lib/components/icons/SIconChevronRight.vue +0 -5
  36. package/lib/components/icons/SIconChevronUp.vue +0 -5
  37. package/lib/components/icons/SIconClock.vue +0 -6
  38. package/lib/components/icons/SIconCode.vue +0 -6
  39. package/lib/components/icons/SIconDatabase.vue +0 -5
  40. package/lib/components/icons/SIconDollarSign.vue +0 -5
  41. package/lib/components/icons/SIconDownload.vue +0 -6
  42. package/lib/components/icons/SIconDownloadCloud.vue +0 -6
  43. package/lib/components/icons/SIconEdit.vue +0 -6
  44. package/lib/components/icons/SIconEdit2.vue +0 -5
  45. package/lib/components/icons/SIconEdit3.vue +0 -6
  46. package/lib/components/icons/SIconEdit3Off.vue +0 -6
  47. package/lib/components/icons/SIconExternalLink.vue +0 -6
  48. package/lib/components/icons/SIconEye.vue +0 -6
  49. package/lib/components/icons/SIconFile.vue +0 -5
  50. package/lib/components/icons/SIconFilePlus.vue +0 -6
  51. package/lib/components/icons/SIconFileText.vue +0 -8
  52. package/lib/components/icons/SIconFlag.vue +0 -5
  53. package/lib/components/icons/SIconGitBranch.vue +0 -5
  54. package/lib/components/icons/SIconGitCommit.vue +0 -5
  55. package/lib/components/icons/SIconGitPullRequest.vue +0 -6
  56. package/lib/components/icons/SIconGlobe.vue +0 -5
  57. package/lib/components/icons/SIconGrab.vue +0 -10
  58. package/lib/components/icons/SIconGrid.vue +0 -8
  59. package/lib/components/icons/SIconHome.vue +0 -5
  60. package/lib/components/icons/SIconImage.vue +0 -6
  61. package/lib/components/icons/SIconInbox.vue +0 -5
  62. package/lib/components/icons/SIconInfo.vue +0 -7
  63. package/lib/components/icons/SIconLayout.vue +0 -5
  64. package/lib/components/icons/SIconList.vue +0 -10
  65. package/lib/components/icons/SIconLock.vue +0 -5
  66. package/lib/components/icons/SIconLogout.vue +0 -6
  67. package/lib/components/icons/SIconMail.vue +0 -6
  68. package/lib/components/icons/SIconMapPin.vue +0 -6
  69. package/lib/components/icons/SIconMoon.vue +0 -5
  70. package/lib/components/icons/SIconMoreHorizontal.vue +0 -7
  71. package/lib/components/icons/SIconMoreVertical.vue +0 -7
  72. package/lib/components/icons/SIconPauseFill.vue +0 -6
  73. package/lib/components/icons/SIconPlayCircle.vue +0 -6
  74. package/lib/components/icons/SIconPlayFill.vue +0 -5
  75. package/lib/components/icons/SIconPlus.vue +0 -5
  76. package/lib/components/icons/SIconPlusCircle.vue +0 -8
  77. package/lib/components/icons/SIconPlusOff.vue +0 -7
  78. package/lib/components/icons/SIconPreloaderDark.vue +0 -52
  79. package/lib/components/icons/SIconPreloaderLight.vue +0 -52
  80. package/lib/components/icons/SIconProgress.vue +0 -5
  81. package/lib/components/icons/SIconRadio.vue +0 -6
  82. package/lib/components/icons/SIconSave.vue +0 -5
  83. package/lib/components/icons/SIconSearch.vue +0 -5
  84. package/lib/components/icons/SIconSend.vue +0 -5
  85. package/lib/components/icons/SIconSettings.vue +0 -6
  86. package/lib/components/icons/SIconShare2.vue +0 -5
  87. package/lib/components/icons/SIconSkipBackFill.vue +0 -6
  88. package/lib/components/icons/SIconSliders.vue +0 -12
  89. package/lib/components/icons/SIconSun.vue +0 -13
  90. package/lib/components/icons/SIconTelescope.vue +0 -5
  91. package/lib/components/icons/SIconTrash.vue +0 -5
  92. package/lib/components/icons/SIconTrash2.vue +0 -7
  93. package/lib/components/icons/SIconTrash2Off.vue +0 -6
  94. package/lib/components/icons/SIconTrello.vue +0 -7
  95. package/lib/components/icons/SIconUser.vue +0 -6
  96. package/lib/components/icons/SIconUsers.vue +0 -8
  97. package/lib/components/icons/SIconWarning.vue +0 -7
  98. package/lib/components/icons/SIconX.vue +0 -5
  99. package/lib/components/icons/SIconXCircle.vue +0 -6
  100. package/lib/components/icons/SIconXCircleThin.vue +0 -6
  101. package/lib/components/icons/SIconXSquare.vue +0 -6
  102. package/lib/components/icons/SIconZap.vue +0 -5
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import { computed } from 'vue'
3
3
  import SIcon from './SIcon.vue'
4
- import SIconPreloader from './icons/SIconPreloader.vue'
4
+ import SSpinner from './SSpinner.vue'
5
5
 
6
6
  export type Size = 'mini' | 'small' | 'medium' | 'large' | 'jumbo'
7
7
 
@@ -68,7 +68,7 @@ function handleClick(): void {
68
68
 
69
69
  <transition name="fade">
70
70
  <span v-if="loading" key="loading" class="loader">
71
- <SIconPreloader class="loader-icon" />
71
+ <SSpinner class="loader-icon" />
72
72
  </span>
73
73
  </transition>
74
74
  </component>
@@ -96,7 +96,7 @@ function handleClick(): void {
96
96
  &:hover { background-color: var(--button-fill-bg-hover); }
97
97
  &:active { background-color: var(--button-fill-bg-focus); }
98
98
 
99
- & .loader-icon :deep(.bar) { fill: var(--c-white); }
99
+ & .loader-icon { color: var(--c-text-inverse-1); }
100
100
  }
101
101
 
102
102
  &.white {
@@ -106,7 +106,7 @@ function handleClick(): void {
106
106
  &:hover { background-color: var(--c-gray-light-3); }
107
107
  &:active { background-color: var(--c-gray-light-1); }
108
108
 
109
- & .loader-icon :deep(.bar) { fill: var(--c-white); }
109
+ & .loader-icon { color: var(--c-white); }
110
110
  }
111
111
 
112
112
  &.black {
@@ -116,7 +116,7 @@ function handleClick(): void {
116
116
  &:hover { background-color: var(--c-gray-dark-4); }
117
117
  &:active { background-color: var(--c-gray-dark-3); }
118
118
 
119
- & .loader-icon :deep(.bar) { fill: var(--c-white); }
119
+ & .loader-icon { color: var(--c-white); }
120
120
  }
121
121
 
122
122
  &.info {
@@ -126,7 +126,7 @@ function handleClick(): void {
126
126
  &:hover { background-color: var(--c-info-dark); }
127
127
  &:active { background-color: var(--c-info-darker); }
128
128
 
129
- & .loader-icon :deep(.bar) { fill: var(--c-white); }
129
+ & .loader-icon { color: var(--c-white); }
130
130
  }
131
131
 
132
132
  &.success {
@@ -136,7 +136,7 @@ function handleClick(): void {
136
136
  &:hover { background-color: var(--c-success-dark); }
137
137
  &:active { background-color: var(--c-success-darker); }
138
138
 
139
- & .loader-icon :deep(.bar) { fill: var(--c-white); }
139
+ & .loader-icon { color: var(--c-white); }
140
140
  }
141
141
 
142
142
  &.warning {
@@ -146,7 +146,7 @@ function handleClick(): void {
146
146
  &:hover { background-color: var(--c-warning-dark); }
147
147
  &:active { background-color: var(--c-warning-darker); }
148
148
 
149
- & .loader-icon :deep(.bar) { fill: var(--c-white); }
149
+ & .loader-icon { color: var(--c-white); }
150
150
  }
151
151
 
152
152
  &.danger {
@@ -156,7 +156,7 @@ function handleClick(): void {
156
156
  &:hover { background-color: var(--c-danger-dark); }
157
157
  &:active { background-color: var(--c-danger-darker); }
158
158
 
159
- & .loader-icon :deep(.bar) { fill: var(--c-white); }
159
+ & .loader-icon { color: var(--c-white); }
160
160
  }
161
161
 
162
162
  &.mute {
@@ -167,7 +167,7 @@ function handleClick(): void {
167
167
  &:hover { border-color: var(--c-divider); background-color: var(--c-gray-light-4); }
168
168
  &:active { background-color: var(--c-bg-soft); }
169
169
 
170
- & .loader-icon :deep(.bar) { fill: var(--c-black); }
170
+ & .loader-icon { color: var(--c-black); }
171
171
 
172
172
  .dark & {
173
173
  border-color: var(--c-divider-light);
@@ -176,7 +176,7 @@ function handleClick(): void {
176
176
  &:hover { border-color: var(--c-divider); background-color: var(--c-gray-dark-5); }
177
177
  &:active { background-color: var(--c-bg-soft); }
178
178
 
179
- & .loader-icon :deep(.bar) { fill: var(--c-white); }
179
+ & .loader-icon { color: var(--c-white); }
180
180
  }
181
181
  }
182
182
 
@@ -348,8 +348,8 @@ function handleClick(): void {
348
348
  font-size: 12px;
349
349
 
350
350
  .icon-svg {
351
- width: 14px;
352
- height: 14px;
351
+ width: 16px;
352
+ height: 16px;
353
353
  }
354
354
 
355
355
  &.mini.rounded {
@@ -379,8 +379,8 @@ function handleClick(): void {
379
379
  font-size: 12px;
380
380
 
381
381
  .icon-svg {
382
- width: 14px;
383
- height: 14px;
382
+ width: 18px;
383
+ height: 18px;
384
384
  }
385
385
 
386
386
  &.small.rounded {
@@ -410,8 +410,8 @@ function handleClick(): void {
410
410
  font-size: 14px;
411
411
 
412
412
  .icon-svg {
413
- width: 16px;
414
- height: 16px;
413
+ width: 20px;
414
+ height: 20px;
415
415
  }
416
416
 
417
417
  &.medium.rounded {
@@ -441,8 +441,8 @@ function handleClick(): void {
441
441
  font-size: 14px;
442
442
 
443
443
  .icon-svg {
444
- width: 18px;
445
- height: 18px;
444
+ width: 20px;
445
+ height: 20px;
446
446
  }
447
447
 
448
448
  &.large.rounded {
@@ -608,7 +608,8 @@ function handleClick(): void {
608
608
 
609
609
  .icon-svg {
610
610
  fill: currentColor;
611
- transition: fill 0.25s;
611
+ transition-property: color, fill;
612
+ transition-duration: 0.25s;
612
613
  }
613
614
 
614
615
  .loader {
@@ -701,9 +702,7 @@ function handleClick(): void {
701
702
  }
702
703
  }
703
704
 
704
- & .loader-icon :deep(.bar) {
705
- fill: var(--c-text-inverse-1);
706
- }
705
+ & .loader-icon { color: var(--c-text-inverse-1); }
707
706
  }
708
707
 
709
708
  .SButton.secondary {
@@ -1,11 +1,12 @@
1
1
  <script setup lang="ts">
2
+ import IconCheck from '@iconify-icons/ph/check'
2
3
  import type { MaybeRef } from '@vueuse/core'
3
4
  import Fuse from 'fuse.js'
4
5
  import { ref, computed, unref, onMounted } from 'vue'
5
6
  import { DropdownSectionFilterSelectedValue, DropdownSectionFilterOption } from '../composables/Dropdown'
6
7
  import { isArray } from '../support/Utils'
7
8
  import SDropdownSectionFilterItem from './SDropdownSectionFilterItem.vue'
8
- import SIconCheck from './icons/SIconCheck.vue'
9
+ import SIcon from './SIcon.vue'
9
10
 
10
11
  const props = defineProps<{
11
12
  search?: boolean
@@ -71,7 +72,7 @@ function handleClick(option: DropdownSectionFilterOption, value: string | number
71
72
  >
72
73
  <span class="checkbox">
73
74
  <span class="checkbox-box">
74
- <SIconCheck class="checkbox-icon" />
75
+ <SIcon :icon="IconCheck" class="checkbox-icon" />
75
76
  </span>
76
77
  </span>
77
78
  <span class="option-item">
@@ -167,7 +168,7 @@ function handleClick(option: DropdownSectionFilterOption, value: string | number
167
168
  display: block;
168
169
  width: 10px;
169
170
  height: 10px;
170
- fill: var(--c-white);
171
+ color: var(--c-white);
171
172
  opacity: 0;
172
173
  transition: opacity 0.25s;
173
174
 
@@ -11,7 +11,7 @@
11
11
  <div class="input" :class="{ on: modelValue }" role="button" @click="emitChange">
12
12
  <div class="box">
13
13
  <div class="check">
14
- <SIconCheck class="check-icon" />
14
+ <SIcon :icon="IconCheck" class="check-icon" />
15
15
  </div>
16
16
  </div>
17
17
 
@@ -22,10 +22,11 @@
22
22
  </template>
23
23
 
24
24
  <script setup lang="ts">
25
+ import IconCheck from '@iconify-icons/ph/check'
25
26
  import { PropType } from 'vue'
26
27
  import { Validatable } from '../composables/Validation'
28
+ import SIcon from './SIcon.vue'
27
29
  import SInputBase from './SInputBase.vue'
28
- import SIconCheck from './icons/SIconCheck.vue'
29
30
 
30
31
  type Size = 'mini' | 'small' | 'medium'
31
32
 
@@ -101,7 +102,7 @@ function emitChange() {
101
102
  .check-icon {
102
103
  width: 10px;
103
104
  height: 10px;
104
- fill: var(--c-white);
105
+ color: var(--c-white);
105
106
  }
106
107
 
107
108
  .text {
@@ -1,4 +1,6 @@
1
1
  <script setup lang="ts">
2
+ import IconCaretDown from '@iconify-icons/ph/caret-down'
3
+ import IconCaretUp from '@iconify-icons/ph/caret-up'
2
4
  import xor from 'lodash-es/xor'
3
5
  import { computed } from 'vue'
4
6
  import type { DropdownSectionFilter } from '../composables/Dropdown'
@@ -6,10 +8,9 @@ import { useFlyout } from '../composables/Flyout'
6
8
  import { Validatable } from '../composables/Validation'
7
9
  import { isArray } from '../support/Utils'
8
10
  import SDropdown from './SDropdown.vue'
11
+ import SIcon from './SIcon.vue'
9
12
  import SInputBase from './SInputBase.vue'
10
13
  import SInputDropdownItem from './SInputDropdownItem.vue'
11
- import SIconChevronDown from './icons/SIconChevronDown.vue'
12
- import SIconChevronUp from './icons/SIconChevronUp.vue'
13
14
 
14
15
  export type Size = 'mini' | 'small' | 'medium'
15
16
  export type PrimitiveValue = string | number | boolean | null
@@ -144,8 +145,8 @@ function handleArray(value: OptionValue) {
144
145
  </div>
145
146
 
146
147
  <div class="box-icon">
147
- <SIconChevronUp class="box-icon-svg up" />
148
- <SIconChevronDown class="box-icon-svg down" />
148
+ <SIcon :icon="IconCaretUp" class="box-icon-svg up" />
149
+ <SIcon :icon="IconCaretDown" class="box-icon-svg down" />
149
150
  </div>
150
151
  </div>
151
152
 
@@ -277,7 +278,7 @@ function handleArray(value: OptionValue) {
277
278
  display: block;
278
279
  width: 14px;
279
280
  height: 14px;
280
- fill: var(--c-text-2);
281
+ color: var(--c-text-2);
281
282
  }
282
283
 
283
284
  .box-icon-svg.up {
@@ -1,6 +1,7 @@
1
1
  <script setup lang="ts">
2
+ import IconX from '@iconify-icons/ph/x'
2
3
  import SAvatar from './SAvatar.vue'
3
- import SIconX from './icons/SIconX.vue'
4
+ import SIcon from './SIcon.vue'
4
5
 
5
6
  defineProps<{
6
7
  label: string
@@ -25,7 +26,7 @@ defineEmits<{
25
26
 
26
27
  <div v-if="!disabled" class="remove" role="button" @click="$emit('remove', value)">
27
28
  <div class="remove-box">
28
- <SIconX class="remove-icon" />
29
+ <SIcon :icon="IconX" class="remove-icon" />
29
30
  </div>
30
31
  </div>
31
32
  </div>
@@ -94,6 +95,5 @@ defineEmits<{
94
95
  .remove-icon {
95
96
  width: 12px;
96
97
  height: 12px;
97
- fill: currentColor;
98
98
  }
99
99
  </style>
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
- import SIconX from './icons/SIconX.vue'
2
+ import IconX from '@iconify-icons/ph/x'
3
+ import SIcon from './SIcon.vue'
3
4
 
4
5
  defineProps<{
5
6
  label: string
@@ -18,7 +19,7 @@ defineEmits<{
18
19
 
19
20
  <div v-if="!disabled" class="remove" role="button" @click.stop="$emit('remove', value)">
20
21
  <div class="remove-box">
21
- <SIconX class="remove-icon" />
22
+ <SIcon :icon="IconX" class="remove-icon" />
22
23
  </div>
23
24
  </div>
24
25
  </div>
@@ -86,6 +87,5 @@ defineEmits<{
86
87
  .remove-icon {
87
88
  width: 12px;
88
89
  height: 12px;
89
- fill: currentColor;
90
90
  }
91
91
  </style>
@@ -201,6 +201,7 @@ function handleChange(e: Event): void {
201
201
  text-overflow: ellipsis;
202
202
  }
203
203
 
204
+ .file-name,
204
205
  .placeholder {
205
206
  color: var(--c-text-2);
206
207
  }
@@ -38,19 +38,20 @@
38
38
  </select>
39
39
 
40
40
  <div class="icon" role="button">
41
- <SIconChevronUp class="icon-svg up" />
42
- <SIconChevronDown class="icon-svg down" />
41
+ <SIcon :icon="IconCaretUp" class="icon-svg up" />
42
+ <SIcon :icon="IconCaretDown" class="icon-svg down" />
43
43
  </div>
44
44
  </div>
45
45
  </SInputBase>
46
46
  </template>
47
47
 
48
48
  <script setup lang="ts">
49
+ import IconCaretDown from '@iconify-icons/ph/caret-down'
50
+ import IconCaretUp from '@iconify-icons/ph/caret-up'
49
51
  import { PropType, ref, computed } from 'vue'
50
52
  import { Validatable } from '../composables/Validation'
53
+ import SIcon from './SIcon.vue'
51
54
  import SInputBase from './SInputBase.vue'
52
- import SIconChevronDown from './icons/SIconChevronDown.vue'
53
- import SIconChevronUp from './icons/SIconChevronUp.vue'
54
55
 
55
56
  type Size = 'mini' | 'small' | 'medium'
56
57
 
@@ -226,7 +227,7 @@ function emitChange(e: any): void {
226
227
  display: block;
227
228
  width: 14px;
228
229
  height: 14px;
229
- fill: var(--input-placeholder);
230
+ color: var(--input-placeholder);
230
231
  }
231
232
 
232
233
  .icon-svg.up {
@@ -1,6 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import { ref, computed } from 'vue'
3
3
  import { Validatable } from '../composables/Validation'
4
+ import SIcon from './SIcon.vue'
4
5
  import SInputBase from './SInputBase.vue'
5
6
 
6
7
  export type Size = 'mini' | 'small' | 'medium'
@@ -93,7 +94,7 @@ function getValue(e: Event | FocusEvent | KeyboardEvent): string | null {
93
94
  >
94
95
  <div class="box" :class="{ focus: isFocused }" @click="focus">
95
96
  <div v-if="icon" class="icon">
96
- <component :is="icon" class="icon-svg" />
97
+ <SIcon :icon="icon" class="icon-svg" />
97
98
  </div>
98
99
 
99
100
  <div class="value">
@@ -1,22 +1,36 @@
1
1
  <script setup lang="ts">
2
+ import { ref } from 'vue'
3
+
2
4
  export interface Props {
3
5
  open: boolean
4
6
  closable?: boolean
5
7
  }
6
8
 
7
- withDefaults(defineProps<Props>(), {
9
+ const props = withDefaults(defineProps<Props>(), {
8
10
  closable: true
9
11
  })
10
12
 
11
- defineEmits<{
13
+ const emit = defineEmits<{
12
14
  (e: 'close'): void
13
15
  }>()
16
+
17
+ const el = ref<any>(null)
18
+
19
+ function onClick(e: any) {
20
+ if (!props.closable) {
21
+ return
22
+ }
23
+
24
+ if (e.target === el.value) {
25
+ emit('close')
26
+ }
27
+ }
14
28
  </script>
15
29
 
16
30
  <template>
17
31
  <Teleport to="#sefirot-modals">
18
32
  <transition name="fade">
19
- <div v-if="open" class="SModal" @click="closable && $emit('close')">
33
+ <div v-if="open" class="SModal" ref="el" @click="onClick">
20
34
  <slot />
21
35
  </div>
22
36
  </transition>
@@ -1,5 +1,7 @@
1
1
  <script setup lang="ts">
2
- import SIconX from 'sefirot/components/icons/SIconX.vue'
2
+ import IconX from '@iconify-icons/ph/x'
3
+ import SIcon from './SIcon.vue'
4
+ import SMount from './SMount.vue'
3
5
 
4
6
  export interface Props {
5
7
  size?: 'small' | 'medium' | 'large'
@@ -11,19 +13,19 @@ withDefaults(defineProps<Props>(), {
11
13
  closable: true
12
14
  })
13
15
 
14
- defineEmits<{
16
+ const emit = defineEmits<{
15
17
  (e: 'close'): void
16
18
  }>()
17
19
  </script>
18
20
 
19
21
  <template>
20
- <FMount class="SSheet" :class="[size]" @click.stop>
22
+ <SMount class="SSheet" :class="[size]">
21
23
  <button v-if="closable ?? true" class="close" @click="$emit('close')">
22
- <SIconX class="icon" />
24
+ <SIcon :icon="IconX" class="icon" />
23
25
  </button>
24
26
 
25
27
  <slot />
26
- </FMount>
28
+ </SMount>
27
29
  </template>
28
30
 
29
31
  <style scoped lang="postcss">
@@ -81,6 +83,5 @@ defineEmits<{
81
83
  .icon {
82
84
  width: 24px;
83
85
  height: 24px;
84
- fill: currentColor;
85
86
  }
86
87
  </style>
@@ -1,7 +1,8 @@
1
1
  <script setup lang="ts">
2
+ import IconX from '@iconify-icons/ph/x'
2
3
  import { SnackbarAction, useSnackbars } from '../stores/Snackbars'
3
4
  import SButton from './SButton.vue'
4
- import SIconX from './icons/SIconX.vue'
5
+ import SIcon from './SIcon.vue'
5
6
 
6
7
  const props = defineProps<{
7
8
  id: number
@@ -20,7 +21,7 @@ function close() {
20
21
  <template>
21
22
  <div class="SSnackbar" :class="[mode ?? 'neutral']">
22
23
  <button class="close" @click="close">
23
- <SIconX class="close-icon" />
24
+ <SIcon :icon="IconX" class="close-icon" />
24
25
  </button>
25
26
 
26
27
  <p class="content">
@@ -78,7 +79,7 @@ function close() {
78
79
 
79
80
  &:hover {
80
81
  .close-icon {
81
- fill: var(--c-text-1);
82
+ color: var(--c-text-1);
82
83
  }
83
84
  }
84
85
  }
@@ -86,8 +87,8 @@ function close() {
86
87
  .close-icon {
87
88
  width: 16px;
88
89
  height: 16px;
89
- fill: var(--c-text-3);
90
- transition: fill .25s;
90
+ color: var(--c-text-3);
91
+ transition: color .25s;
91
92
  }
92
93
 
93
94
  .content {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
2
+ <svg class="SSpinner" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
3
3
  <g transform="rotate(0 50 50)">
4
4
  <rect
5
5
  class="bar"
@@ -228,12 +228,13 @@
228
228
  repeatCount="indefinite"
229
229
  />
230
230
  </rect>
231
- </g></svg>
231
+ </g>
232
+ </svg>
232
233
  </template>
233
234
 
234
235
  <style lang="postcss" scoped>
235
236
  .bar {
236
- fill: var(--preloader-color);
237
- transition: fill .5s;
237
+ fill: currentColor;
238
+ transition: fill 0.5s;
238
239
  }
239
240
  </style>
@@ -4,8 +4,8 @@
4
4
  <div class="bar" :class="[barLeft]" />
5
5
  <div class="point">
6
6
  <div v-if="status === 'active'" class="inner-dot" />
7
- <SIconCheck v-else-if="status === 'done'" class="icon" />
8
- <SIconX v-else-if="status === 'failed'" class="icon" />
7
+ <SIcon v-else-if="status === 'done'" :icon="IconCheck" class="icon" />
8
+ <SIcon v-else-if="status === 'failed'" :icon="IconX" class="icon" />
9
9
  </div>
10
10
  <div class="bar" :class="[barRight]" />
11
11
  </div>
@@ -15,10 +15,11 @@
15
15
  </template>
16
16
 
17
17
  <script setup lang="ts">
18
+ import IconCheck from '@iconify-icons/ph/check'
19
+ import IconX from '@iconify-icons/ph/x'
18
20
  import { PropType } from 'vue'
19
21
  import { StepStatus, BarMode } from '../composables/Step'
20
- import SIconCheck from './icons/SIconCheck.vue'
21
- import SIconX from './icons/SIconX.vue'
22
+ import SIcon from './SIcon.vue'
22
23
 
23
24
  defineProps({
24
25
  status: { type: String as PropType<StepStatus>, required: true },
@@ -83,7 +84,7 @@ defineProps({
83
84
  .icon {
84
85
  width: 10px;
85
86
  height: 10px;
86
- fill: var(--c-white);
87
+ color: var(--c-white);
87
88
  }
88
89
 
89
90
  .bar {
@@ -1,12 +1,12 @@
1
1
  <script setup lang="ts">
2
2
  import { reactive, ref, computed, watch, toRefs } from 'vue'
3
3
  import { Table } from '../composables/Table'
4
+ import SSpinner from './SSpinner.vue'
4
5
  import STableCell from './STableCell.vue'
5
6
  import STableColumn from './STableColumn.vue'
6
7
  import STableFooter from './STableFooter.vue'
7
8
  import STableHeader from './STableHeader.vue'
8
9
  import STableItem from './STableItem.vue'
9
- import SIconPreloader from './icons/SIconPreloader.vue'
10
10
 
11
11
  const props = defineProps<{
12
12
  options: Table
@@ -146,7 +146,7 @@ function updateColWidth(key: string, value: string) {
146
146
 
147
147
  <div v-if="loading" class="loading">
148
148
  <div class="loading-icon">
149
- <SIconPreloader class="loading-svg" />
149
+ <SSpinner class="loading-svg" />
150
150
  </div>
151
151
  </div>
152
152
 
@@ -237,5 +237,6 @@ function updateColWidth(key: string, value: string) {
237
237
  .loading-svg {
238
238
  width: 48px;
239
239
  height: 48px;
240
+ color: var(--c-text-1);
240
241
  }
241
242
  </style>
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import { computed } from 'vue'
3
+ import SIcon from './SIcon.vue'
3
4
  import SLink from './SLink.vue'
4
5
 
5
6
  const props = defineProps<{
@@ -27,7 +28,7 @@ const _value = computed(() => {
27
28
  <div class="STableCellText" :class="[{ link }, color ?? 'neutral']">
28
29
  <SLink v-if="_value" class="container" :href="link?.(value, record)">
29
30
  <div v-if="icon" class="icon" :class="[iconColor ?? color ?? 'neutral']">
30
- <component class="svg" :is="icon" />
31
+ <SIcon :icon="icon" class="svg" />
31
32
  </div>
32
33
  <div class="text" :class="[color ?? 'neutral']">
33
34
  {{ _value }}
@@ -95,8 +96,8 @@ const _value = computed(() => {
95
96
  }
96
97
 
97
98
  .svg {
98
- width: 16px;
99
- height: 16px;
99
+ width: 18px;
100
+ height: 18px;
100
101
  fill: currentColor;
101
102
  }
102
103
  </style>
@@ -1,10 +1,11 @@
1
1
  <script setup lang="ts">
2
+ import IconDotsThree from '@iconify-icons/ph/dots-three'
2
3
  import { ref, computed, unref, watch, nextTick } from 'vue'
3
4
  import { DropdownSection } from '../composables/Dropdown'
4
5
  import { useFlyout } from '../composables/Flyout'
5
6
  import { isArray } from '../support/Utils'
6
7
  import SDropdown from './SDropdown.vue'
7
- import SIconMoreHorizontal from './icons/SIconMoreHorizontal.vue'
8
+ import SIcon from './SIcon.vue'
8
9
 
9
10
  const props = defineProps<{
10
11
  name: string
@@ -113,7 +114,7 @@ function stopDialogPositionListener() {
113
114
 
114
115
  <div v-if="dropdown" class="action" ref="container">
115
116
  <button class="button" :class="{ active: buttonActive }" @click="toggle">
116
- <SIconMoreHorizontal class="icon" />
117
+ <SIcon :icon="IconDotsThree" class="icon" />
117
118
  </button>
118
119
 
119
120
  <transition name="fade">
@@ -198,9 +199,8 @@ function stopDialogPositionListener() {
198
199
  }
199
200
 
200
201
  .icon {
201
- width: 16px;
202
- height: 16px;
203
- fill: currentColor;
202
+ width: 20px;
203
+ height: 20px;
204
204
  }
205
205
 
206
206
  .dialog {
@@ -1,8 +1,9 @@
1
1
  <script setup lang="ts">
2
+ import IconCaretLeft from '@iconify-icons/ph/caret-left-bold'
3
+ import IconCaretRight from '@iconify-icons/ph/caret-right-bold'
2
4
  import { computed } from 'vue'
3
5
  import { format } from '../support/Num'
4
- import SIconChevronLeft from './icons/SIconChevronLeft.vue'
5
- import SIconChevronRight from './icons/SIconChevronRight.vue'
6
+ import SIcon from './SIcon.vue'
6
7
 
7
8
  const props = defineProps<{
8
9
  total?: number
@@ -43,10 +44,10 @@ const hasNext = computed(() => {
43
44
 
44
45
  <div class="actions">
45
46
  <button class="button prev" :class="{ active: hasPrev }" @click="onPrev">
46
- <SIconChevronLeft class="icon" />
47
+ <SIcon :icon="IconCaretLeft" class="icon" />
47
48
  </button>
48
49
  <button class="button next" :class="{ active: hasNext }" @click="onNext">
49
- <SIconChevronRight class="icon" />
50
+ <SIcon :icon="IconCaretRight" class="icon" />
50
51
  </button>
51
52
  </div>
52
53
  </div>
@@ -110,6 +111,5 @@ const hasNext = computed(() => {
110
111
  .icon {
111
112
  width: 16px;
112
113
  height: 16px;
113
- fill: currentColor;
114
114
  }
115
115
  </style>