webcake-ui-kit 1.0.12 → 1.0.13

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webcake-ui-kit",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "UI Kit for Vue 2 && 3 - Pure Options API",
5
5
  "main": "src/index.js",
6
6
  "module": "src/index.js",
@@ -26,15 +26,7 @@
26
26
  </span>
27
27
  <span :class="['ui-accordion-item__icon', isOpen && 'ui-accordion-item__icon--open']">
28
28
  <slot name="icon">
29
- <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
30
- <path
31
- d="m4 6 4 4 4-4"
32
- stroke="currentColor"
33
- stroke-width="1.5"
34
- stroke-linecap="round"
35
- stroke-linejoin="round"
36
- />
37
- </svg>
29
+ <ChevronDownIcon :size="16" />
38
30
  </slot>
39
31
  </span>
40
32
  </button>
@@ -45,10 +37,13 @@
45
37
  </template>
46
38
 
47
39
  <script>
40
+ import ChevronDownIcon from '../../icons/ChevronDownIcon.vue'
41
+
48
42
  let uidCounter = 0
49
43
 
50
44
  export default {
51
45
  name: 'AccordionItem',
46
+ components: { ChevronDownIcon },
52
47
  inject: {
53
48
  accordion: { default: null }
54
49
  },
@@ -5,32 +5,8 @@
5
5
  <li v-for="(item, index) in items" :key="index" class="ui-breadcrumb__row">
6
6
  <span v-if="index > 0" class="ui-breadcrumb__separator" aria-hidden="true">
7
7
  <slot name="separator" :type="separator">
8
- <svg
9
- v-if="separator === 'slash'"
10
- xmlns="http://www.w3.org/2000/svg"
11
- width="14"
12
- height="14"
13
- viewBox="0 0 14 14"
14
- fill="none"
15
- >
16
- <g clip-path="url(#clip0_3182_3913)">
17
- <path
18
- d="M12.524 0.857389C12.6948 0.686535 12.9718 0.686535 13.1426 0.857389C13.3135 1.02824 13.3135 1.30519 13.1426 1.47604L1.47598 13.1427C1.30513 13.3136 1.02818 13.3136 0.857328 13.1427C0.686473 12.9719 0.686473 12.6949 0.857328 12.5241L12.524 0.857389Z"
19
- fill="#5C5C5C"
20
- />
21
- </g>
22
- <defs>
23
- <clipPath id="clip0_3182_3913">
24
- <rect width="14" height="14" fill="white" />
25
- </clipPath>
26
- </defs>
27
- </svg>
28
- <svg v-else xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none">
29
- <path
30
- d="M4.88882 3.13888C5.08815 2.93955 5.41182 2.93955 5.61115 3.13888L9.11115 6.63888C9.31048 6.83821 9.31048 7.16188 9.11115 7.36121L5.61115 10.8612C5.41182 11.0605 5.08815 11.0605 4.88882 10.8612C4.68949 10.6619 4.68949 10.3382 4.88882 10.1389L8.02765 7.00004L4.88882 3.86121C4.68949 3.66188 4.68949 3.33821 4.88882 3.13888Z"
31
- fill="#5C5C5C"
32
- />
33
- </svg>
8
+ <SlashIcon v-if="separator === 'slash'" :size="16" />
9
+ <ChevronRightIcon v-else :size="16" />
34
10
  </slot>
35
11
  </span>
36
12
  <component
@@ -54,8 +30,15 @@
54
30
  </template>
55
31
 
56
32
  <script>
33
+ import SlashIcon from '../../icons/SlashIcon.vue'
34
+ import ChevronRightIcon from '../../icons/ChevronRightIcon.vue'
35
+
57
36
  export default {
58
37
  name: 'Breadcrumb',
38
+ components: {
39
+ SlashIcon,
40
+ ChevronRightIcon
41
+ },
59
42
  props: {
60
43
  items: {
61
44
  type: Array,
@@ -10,19 +10,17 @@
10
10
  @change="onChange"
11
11
  />
12
12
  <span class="ui-checkbox__box" aria-hidden="true">
13
- <svg v-if="isChecked" xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none">
14
- <path
15
- d="M11.3055 3.13885C11.5049 2.93952 11.8285 2.93952 12.0279 3.13885C12.2272 3.33818 12.2272 3.66185 12.0279 3.86118L5.61119 10.2778C5.41186 10.4772 5.08819 10.4772 4.88886 10.2778L1.97219 7.36118C1.77286 7.16185 1.77286 6.83818 1.97219 6.63885C2.17152 6.43952 2.49519 6.43952 2.69452 6.63885L5.25002 9.19435L11.3055 3.13885Z"
16
- fill="white"
17
- />
18
- </svg>
13
+ <CheckIcon v-if="isChecked" :size="16" />
19
14
  </span>
20
15
  </span>
21
16
  </template>
22
17
 
23
18
  <script>
19
+ import CheckIcon from '../../icons/CheckIcon.vue'
20
+
24
21
  export default {
25
22
  name: 'Checkbox',
23
+ components: { CheckIcon },
26
24
  inheritAttrs: false,
27
25
  model: { prop: 'checked', event: 'change' },
28
26
  props: {
@@ -26,8 +26,6 @@
26
26
 
27
27
  .ui-checkbox__box {
28
28
  position: absolute;
29
- top: 1px;
30
- left: 1px;
31
29
  width: 16px;
32
30
  height: 16px;
33
31
  display: inline-flex;
@@ -40,18 +40,8 @@
40
40
  :aria-label="minimized ? 'Restore' : 'Minimize'"
41
41
  @click="toggleMinimize"
42
42
  >
43
- <svg
44
- v-if="!minimized"
45
- viewBox="0 0 20 20"
46
- fill="none"
47
- xmlns="http://www.w3.org/2000/svg"
48
- aria-hidden="true"
49
- >
50
- <path d="M5 10h10" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" />
51
- </svg>
52
- <svg v-else viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
53
- <rect x="4" y="5" width="12" height="10" rx="1.5" stroke="currentColor" stroke-width="1.75" />
54
- </svg>
43
+ <MinusIcon v-if="!minimized" />
44
+ <UnfoldVerticalIcon v-else />
55
45
  </button>
56
46
  <button
57
47
  v-if="fullscreen"
@@ -60,46 +50,8 @@
60
50
  :aria-label="isFullscreen ? 'Exit fullscreen' : 'Fullscreen'"
61
51
  @click="toggleFullscreen"
62
52
  >
63
- <svg
64
- v-if="!isFullscreen"
65
- xmlns="http://www.w3.org/2000/svg"
66
- width="24"
67
- height="24"
68
- viewBox="0 0 24 24"
69
- fill="none"
70
- stroke="currentColor"
71
- stroke-width="1.75"
72
- stroke-linecap="round"
73
- stroke-linejoin="round"
74
- class="lucide lucide-expand-icon lucide-expand"
75
- >
76
- <path d="m15 15 6 6" />
77
- <path d="m15 9 6-6" />
78
- <path d="M21 16v5h-5" />
79
- <path d="M21 8V3h-5" />
80
- <path d="M3 16v5h5" />
81
- <path d="m3 21 6-6" />
82
- <path d="M3 8V3h5" />
83
- <path d="M9 9 3 3" />
84
- </svg>
85
- <svg
86
- v-else
87
- xmlns="http://www.w3.org/2000/svg"
88
- width="24"
89
- height="24"
90
- viewBox="0 0 24 24"
91
- fill="none"
92
- stroke="currentColor"
93
- stroke-width="1.75"
94
- stroke-linecap="round"
95
- stroke-linejoin="round"
96
- class="lucide lucide-shrink-icon lucide-shrink"
97
- >
98
- <path d="m15 15 6 6m-6-6v4.8m0-4.8h4.8" />
99
- <path d="M9 19.8V15m0 0H4.2M9 15l-6 6" />
100
- <path d="M15 4.2V9m0 0h4.8M15 9l6-6" />
101
- <path d="M9 4.2V9m0 0H4.2M9 9 3 3" />
102
- </svg>
53
+ <ExpandIcon v-if="!isFullscreen" />
54
+ <ShrinkIcon v-else />
103
55
  </button>
104
56
  <button
105
57
  v-if="closable"
@@ -108,12 +60,7 @@
108
60
  aria-label="Close"
109
61
  @click="handleCancel"
110
62
  >
111
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
112
- <path
113
- d="M14.4841 4.48408C14.7688 4.19932 15.2312 4.19932 15.516 4.48408C15.8007 4.76883 15.8007 5.23122 15.516 5.51598L11.0319 10L15.516 14.4841C15.8007 14.7688 15.8007 15.2312 15.516 15.516C15.2312 15.8007 14.7688 15.8007 14.4841 15.516L10 11.0319L5.51598 15.516C5.23122 15.8007 4.76883 15.8007 4.48408 15.516C4.19932 15.2312 4.19932 14.7688 4.48408 14.4841L8.96813 10L4.48408 5.51598C4.19932 5.23122 4.19932 4.76883 4.48408 4.48408C4.76883 4.19932 5.23122 4.19932 5.51598 4.48408L10 8.96813L14.4841 4.48408Z"
114
- fill="#171717"
115
- />
116
- </svg>
63
+ <XIcon />
117
64
  </button>
118
65
  </div>
119
66
  </div>
@@ -147,10 +94,15 @@
147
94
 
148
95
  <script>
149
96
  import Button from '../button/Button.vue'
97
+ import MinusIcon from '../../icons/MinusIcon.vue'
98
+ import UnfoldVerticalIcon from '../../icons/UnfoldVerticalIcon.vue'
99
+ import ExpandIcon from '../../icons/ExpandIcon.vue'
100
+ import ShrinkIcon from '../../icons/ShrinkIcon.vue'
101
+ import XIcon from '../../icons/XIcon.vue'
150
102
 
151
103
  export default {
152
104
  name: 'Dialog',
153
- components: { Button },
105
+ components: { Button, MinusIcon, UnfoldVerticalIcon, ExpandIcon, ShrinkIcon, XIcon },
154
106
  model: { prop: 'open', event: 'change' },
155
107
  props: {
156
108
  open: { type: Boolean, default: false },
@@ -2,15 +2,7 @@
2
2
  <nav class="ui-pagination" role="navigation" :aria-label="ariaLabel" :class="{ 'ui-pagination--disabled': disabled }">
3
3
  <Button variant="ghost" :disabled="isPrevDisabled" @click="goPrev" :label="prevLabel || ''">
4
4
  <template v-if="showIcon" #icon-left>
5
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
6
- <path
7
- d="M10 4L6 8L10 12"
8
- stroke="currentColor"
9
- stroke-width="1.5"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- />
13
- </svg>
5
+ <ChevronLeftIcon />
14
6
  </template>
15
7
  </Button>
16
8
 
@@ -32,37 +24,14 @@
32
24
  @click="onEllipsisClick(item)"
33
25
  >
34
26
  <template #icon>
35
- <svg
36
- xmlns="http://www.w3.org/2000/svg"
37
- width="20"
38
- height="20"
39
- viewBox="0 0 24 24"
40
- fill="none"
41
- stroke="currentColor"
42
- stroke-width="1.5"
43
- stroke-linecap="round"
44
- stroke-linejoin="round"
45
- class="lucide lucide-ellipsis-icon lucide-ellipsis"
46
- >
47
- <circle cx="12" cy="12" r="1" />
48
- <circle cx="19" cy="12" r="1" />
49
- <circle cx="5" cy="12" r="1" />
50
- </svg>
27
+ <EllipsisIcon />
51
28
  </template>
52
29
  </Button>
53
30
  </template>
54
31
 
55
32
  <Button variant="ghost" :disabled="isNextDisabled" @click="goNext" :label="nextLabel || ''">
56
33
  <template v-if="showIcon" #icon-right>
57
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
58
- <path
59
- d="M6 4L10 8L6 12"
60
- stroke="currentColor"
61
- stroke-width="1.5"
62
- stroke-linecap="round"
63
- stroke-linejoin="round"
64
- />
65
- </svg>
34
+ <ChevronRightIcon />
66
35
  </template>
67
36
  </Button>
68
37
  </nav>
@@ -70,6 +39,9 @@
70
39
 
71
40
  <script>
72
41
  import Button from '../button/Button.vue'
42
+ import ChevronLeftIcon from '../../icons/ChevronLeftIcon.vue'
43
+ import ChevronRightIcon from '../../icons/ChevronRightIcon.vue'
44
+ import EllipsisIcon from '../../icons/EllipsisIcon.vue'
73
45
 
74
46
  function range(start, end) {
75
47
  if (end < start) return []
@@ -80,7 +52,7 @@ function range(start, end) {
80
52
 
81
53
  export default {
82
54
  name: 'Pagination',
83
- components: { Button },
55
+ components: { Button, ChevronLeftIcon, ChevronRightIcon, EllipsisIcon },
84
56
 
85
57
  model: {
86
58
  prop: 'current',
@@ -28,28 +28,12 @@
28
28
 
29
29
  <spinner v-if="loading" type="mirrored" size="sm" />
30
30
  <span v-else class="ui-select__chevron">
31
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
32
- <path
33
- d="M4 6L8 10L12 6"
34
- stroke="currentColor"
35
- stroke-width="1.5"
36
- stroke-linecap="round"
37
- stroke-linejoin="round"
38
- />
39
- </svg>
31
+ <ChevronDownIcon :size="16" />
40
32
  </span>
41
33
 
42
34
  <div ref="dropdown" v-show="isOpen" class="ui-select__dropdown" :style="dropdownStyle" @click.stop>
43
35
  <div v-if="canScrollUp" class="ui-select__scroll-indicator ui-select__scroll-indicator--up">
44
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
45
- <path
46
- d="M4 10L8 6L12 10"
47
- stroke="currentColor"
48
- stroke-width="1.5"
49
- stroke-linecap="round"
50
- stroke-linejoin="round"
51
- />
52
- </svg>
36
+ <ChevronUpIcon :size="16" />
53
37
  </div>
54
38
  <div
55
39
  ref="options"
@@ -68,28 +52,22 @@
68
52
  </slot>
69
53
  </div>
70
54
  <div v-if="canScrollDown" class="ui-select__scroll-indicator ui-select__scroll-indicator--down">
71
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
72
- <path
73
- d="M4 6L8 10L12 6"
74
- stroke="currentColor"
75
- stroke-width="1.5"
76
- stroke-linecap="round"
77
- stroke-linejoin="round"
78
- />
79
- </svg>
55
+ <ChevronDownIcon :size="16" />
80
56
  </div>
81
57
  </div>
82
58
  </div>
83
59
  </template>
84
60
 
85
61
  <script>
62
+ import ChevronDownIcon from '../../icons/ChevronDownIcon.vue'
63
+ import ChevronUpIcon from '../../icons/ChevronUpIcon.vue'
86
64
  import SelectOption from '../select-option/SelectOption.vue'
87
65
  import Spinner from '../spinner/Spinner.vue'
88
66
 
89
67
  export default {
90
68
  name: 'Select',
91
69
 
92
- components: { SelectOption, Spinner },
70
+ components: { SelectOption, Spinner, ChevronDownIcon, ChevronUpIcon },
93
71
 
94
72
  provide() {
95
73
  return { select: this }
@@ -105,7 +83,7 @@ export default {
105
83
  type: String,
106
84
  default: 'default',
107
85
  validator: function (v) {
108
- return ['mini', 'sm', 'default', 'lg'].includes(v)
86
+ return ['xs', 'sm', 'default', 'lg'].includes(v)
109
87
  }
110
88
  },
111
89
  value: {
@@ -148,17 +148,17 @@
148
148
  gap: var(--spacing-6);
149
149
  }
150
150
 
151
- .ui-select--mini {
151
+ .ui-select--xs {
152
152
  min-height: 28px;
153
153
  padding: var(--spacing-2xs) var(--spacing-6);
154
154
  gap: var(--spacing-2xs);
155
155
  border-radius: var(--rounded-lg);
156
156
  }
157
- .ui-select--mini .ui-select__left {
157
+ .ui-select--xs .ui-select__left {
158
158
  gap: var(--spacing-2xs);
159
159
  }
160
- .ui-select--mini .ui-select__value,
161
- .ui-select--mini .ui-select__prepend {
160
+ .ui-select--xs .ui-select__value,
161
+ .ui-select--xs .ui-select__prepend {
162
162
  font-size: var(--paragraph-mini-font-size);
163
163
  line-height: var(--paragraph-mini-line-height);
164
164
  }
@@ -16,15 +16,7 @@
16
16
  ><slot>{{ label }}</slot></span
17
17
  >
18
18
  <span class="ui-sidebar-group-label__chevron" aria-hidden="true">
19
- <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
20
- <path
21
- d="M3 4.5L6 7.5L9 4.5"
22
- stroke="currentColor"
23
- stroke-width="1.5"
24
- stroke-linecap="round"
25
- stroke-linejoin="round"
26
- />
27
- </svg>
19
+ <ChevronDownIcon :size="16" />
28
20
  </span>
29
21
  </button>
30
22
  <span v-else class="ui-sidebar-group-label__text"
@@ -37,9 +29,12 @@
37
29
  </template>
38
30
 
39
31
  <script>
32
+ import ChevronDownIcon from '../../icons/ChevronDownIcon.vue'
40
33
  export default {
41
34
  name: 'SidebarGroupLabel',
42
-
35
+ components: {
36
+ ChevronDownIcon
37
+ },
43
38
  props: {
44
39
  label: {
45
40
  type: String,
@@ -1,25 +1,16 @@
1
1
  <template>
2
2
  <span class="ui-spinner" :class="[`ui-spinner--${size}`, `ui-spinner--${type}`]" role="status" :aria-label="label">
3
- <svg
4
- xmlns="http://www.w3.org/2000/svg"
5
- width="24"
6
- height="24"
7
- viewBox="0 0 24 24"
8
- fill="none"
9
- stroke="currentColor"
10
- stroke-width="1.75"
11
- stroke-linecap="round"
12
- stroke-linejoin="round"
13
- class="lucide lucide-loader-circle-icon lucide-loader-circle ui-spinner__svg"
14
- >
15
- <path d="M21 12a9 9 0 1 1-6.219-8.56" />
16
- </svg>
3
+ <LoaderCircleIcon class="ui-spinner__svg" />
17
4
  </span>
18
5
  </template>
19
6
 
20
7
  <script>
8
+ import LoaderCircleIcon from '../../icons/LoaderCircleIcon.vue'
21
9
  export default {
22
10
  name: 'Spinner',
11
+ components: {
12
+ LoaderCircleIcon
13
+ },
23
14
  props: {
24
15
  size: {
25
16
  type: String,
@@ -34,7 +34,7 @@ export default {
34
34
  type: String,
35
35
  default: 'sm',
36
36
  validator: function (v) {
37
- return ['mini', 'sm', 'md', 'lg'].includes(v)
37
+ return ['xs', 'sm', 'md', 'lg'].includes(v)
38
38
  }
39
39
  }
40
40
  },
@@ -7,7 +7,7 @@
7
7
  box-sizing: border-box;
8
8
  }
9
9
 
10
- .ui-tabs--mini {
10
+ .ui-tabs--xs {
11
11
  padding: 2px;
12
12
  }
13
13
  .ui-tabs--md {
@@ -65,7 +65,7 @@
65
65
  }
66
66
 
67
67
  /* — sizes — */
68
- .ui-tabs--mini .ui-tabs__item {
68
+ .ui-tabs--xs .ui-tabs__item {
69
69
  height: 20px;
70
70
  padding: 0 6px;
71
71
  font-size: var(--paragraph-mini-font-size);
@@ -91,7 +91,7 @@
91
91
  flex-shrink: 0;
92
92
  }
93
93
 
94
- .ui-tabs--mini .ui-tabs__icon {
94
+ .ui-tabs--xs .ui-tabs__icon {
95
95
  width: 12px;
96
96
  height: 12px;
97
97
  }
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="M20 6 9 17l-5-5" />
15
+ </svg>
16
+ </template>
17
+
18
+ <script>
19
+ export default {
20
+ name: 'CheckIcon',
21
+ props: {
22
+ size: { type: Number, default: 20 },
23
+ label: { type: String, default: '' }
24
+ },
25
+ emits: []
26
+ }
27
+ </script>
28
+
29
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="m6 9 6 6 6-6" />
15
+ </svg>
16
+ </template>
17
+
18
+ <script>
19
+ export default {
20
+ name: 'ChevronDownIcon',
21
+ props: {
22
+ size: { type: Number, default: 20 },
23
+ label: { type: String, default: '' }
24
+ },
25
+ emits: []
26
+ }
27
+ </script>
28
+
29
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="m15 18-6-6 6-6" />
15
+ </svg>
16
+ </template>
17
+
18
+ <script>
19
+ export default {
20
+ name: 'ChevronLeftIcon',
21
+ props: {
22
+ size: { type: Number, default: 20 },
23
+ label: { type: String, default: '' }
24
+ },
25
+ emits: []
26
+ }
27
+ </script>
28
+
29
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="m9 18 6-6-6-6" />
15
+ </svg>
16
+ </template>
17
+
18
+ <script>
19
+ export default {
20
+ name: 'ChevronRightIcon',
21
+ props: {
22
+ size: { type: Number, default: 20 },
23
+ label: { type: String, default: '' }
24
+ },
25
+ emits: []
26
+ }
27
+ </script>
28
+
29
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="m18 15-6-6-6 6" />
15
+ </svg>
16
+ </template>
17
+
18
+ <script>
19
+ export default {
20
+ name: 'ChevronUpIcon',
21
+ props: {
22
+ size: { type: Number, default: 20 },
23
+ label: { type: String, default: '' }
24
+ },
25
+ emits: []
26
+ }
27
+ </script>
28
+
29
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <circle cx="12" cy="12" r="10" />
15
+ <path d="m15 9-6 6" />
16
+ <path d="m9 9 6 6" />
17
+ </svg>
18
+ </template>
19
+
20
+ <script>
21
+ export default {
22
+ name: 'CircleXIcon',
23
+ props: {
24
+ size: { type: Number, default: 20 },
25
+ label: { type: String, default: '' }
26
+ },
27
+ emits: []
28
+ }
29
+ </script>
30
+
31
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <circle cx="12" cy="12" r="1" />
15
+ <circle cx="19" cy="12" r="1" />
16
+ <circle cx="5" cy="12" r="1" />
17
+ </svg>
18
+ </template>
19
+
20
+ <script>
21
+ export default {
22
+ name: 'EllipsisIcon',
23
+ props: {
24
+ size: { type: Number, default: 20 },
25
+ label: { type: String, default: '' }
26
+ },
27
+ emits: []
28
+ }
29
+ </script>
30
+
31
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,36 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="m15 15 6 6" />
15
+ <path d="m15 9 6-6" />
16
+ <path d="M21 16v5h-5" />
17
+ <path d="M21 8V3h-5" />
18
+ <path d="M3 16v5h5" />
19
+ <path d="m3 21 6-6" />
20
+ <path d="M3 8V3h5" />
21
+ <path d="M9 9 3 3" />
22
+ </svg>
23
+ </template>
24
+
25
+ <script>
26
+ export default {
27
+ name: 'ExpandIcon',
28
+ props: {
29
+ size: { type: Number, default: 20 },
30
+ label: { type: String, default: '' }
31
+ },
32
+ emits: []
33
+ }
34
+ </script>
35
+
36
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="M21 12a9 9 0 1 1-6.219-8.56" />
15
+ </svg>
16
+ </template>
17
+
18
+ <script>
19
+ export default {
20
+ name: 'LoaderCircleIcon',
21
+ props: {
22
+ size: { type: Number, default: 20 },
23
+ label: { type: String, default: '' }
24
+ },
25
+ emits: []
26
+ }
27
+ </script>
28
+
29
+ <style src="./icon.css" scoped></style>
@@ -1,22 +1,36 @@
1
1
  <template>
2
2
  <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
6
  viewBox="0 0 24 24"
7
7
  fill="none"
8
8
  stroke="currentColor"
9
- stroke-width="1.75"
10
9
  stroke-linecap="round"
11
10
  stroke-linejoin="round"
12
- class="lucide lucide-loader-circle-icon lucide-loader-circle"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
13
  >
14
- <path d="M21 12a9 9 0 1 1-6.219-8.56" />
14
+ <path d="M12 2v4" />
15
+ <path d="m16.2 7.8 2.9-2.9" />
16
+ <path d="M18 12h4" />
17
+ <path d="m16.2 16.2 2.9 2.9" />
18
+ <path d="M12 18v4" />
19
+ <path d="m4.9 19.1 2.9-2.9" />
20
+ <path d="M2 12h4" />
21
+ <path d="m4.9 4.9 2.9 2.9" />
15
22
  </svg>
16
23
  </template>
17
24
 
18
25
  <script>
19
26
  export default {
20
- name: 'LoaderIcon'
27
+ name: 'LoaderIcon',
28
+ props: {
29
+ size: { type: Number, default: 20 },
30
+ label: { type: String, default: '' }
31
+ },
32
+ emits: []
21
33
  }
22
34
  </script>
35
+
36
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="M5 12h14" />
15
+ </svg>
16
+ </template>
17
+
18
+ <script>
19
+ export default {
20
+ name: 'MinusIcon',
21
+ props: {
22
+ size: { type: Number, default: 20 },
23
+ label: { type: String, default: '' }
24
+ },
25
+ emits: []
26
+ }
27
+ </script>
28
+
29
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,30 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="M5 12h14" />
15
+ <path d="M12 5v14" />
16
+ </svg>
17
+ </template>
18
+
19
+ <script>
20
+ export default {
21
+ name: 'PlusIcon',
22
+ props: {
23
+ size: { type: Number, default: 20 },
24
+ label: { type: String, default: '' }
25
+ },
26
+ emits: []
27
+ }
28
+ </script>
29
+
30
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,30 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <circle cx="11" cy="11" r="8" />
15
+ <path d="m21 21-4.3-4.3" />
16
+ </svg>
17
+ </template>
18
+
19
+ <script>
20
+ export default {
21
+ name: 'SearchIcon',
22
+ props: {
23
+ size: { type: Number, default: 20 },
24
+ label: { type: String, default: '' }
25
+ },
26
+ emits: []
27
+ }
28
+ </script>
29
+
30
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,32 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="m15 15 6 6m-6-6v4.8m0-4.8h4.8" />
15
+ <path d="M9 19.8V15m0 0H4.2M9 15l-6 6" />
16
+ <path d="M15 4.2V9m0 0h4.8M15 9l6-6" />
17
+ <path d="M9 4.2V9m0 0H4.2M9 9 3 3" />
18
+ </svg>
19
+ </template>
20
+
21
+ <script>
22
+ export default {
23
+ name: 'ShrinkIcon',
24
+ props: {
25
+ size: { type: Number, default: 20 },
26
+ label: { type: String, default: '' }
27
+ },
28
+ emits: []
29
+ }
30
+ </script>
31
+
32
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="M22 2 2 22" />
15
+ </svg>
16
+ </template>
17
+
18
+ <script>
19
+ export default {
20
+ name: 'SlashIcon',
21
+ props: {
22
+ size: { type: Number, default: 20 },
23
+ label: { type: String, default: '' }
24
+ },
25
+ emits: []
26
+ }
27
+ </script>
28
+
29
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,36 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="M12 22v-6" />
15
+ <path d="M12 8V2" />
16
+ <path d="M4 12H2" />
17
+ <path d="M10 12H8" />
18
+ <path d="M16 12h-2" />
19
+ <path d="M22 12h-2" />
20
+ <path d="m15 19-3 3-3-3" />
21
+ <path d="m15 5-3-3-3 3" />
22
+ </svg>
23
+ </template>
24
+
25
+ <script>
26
+ export default {
27
+ name: 'UnfoldVerticalIcon',
28
+ props: {
29
+ size: { type: Number, default: 20 },
30
+ label: { type: String, default: '' }
31
+ },
32
+ emits: []
33
+ }
34
+ </script>
35
+
36
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,30 @@
1
+ <template>
2
+ <svg
3
+ class="ui-icon"
4
+ :width="size"
5
+ :height="size"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ stroke="currentColor"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ :aria-hidden="label ? undefined : 'true'"
12
+ :aria-label="label || undefined"
13
+ >
14
+ <path d="M18 6 6 18" />
15
+ <path d="m6 6 12 12" />
16
+ </svg>
17
+ </template>
18
+
19
+ <script>
20
+ export default {
21
+ name: 'XIcon',
22
+ props: {
23
+ size: { type: Number, default: 20 },
24
+ label: { type: String, default: '' }
25
+ },
26
+ emits: []
27
+ }
28
+ </script>
29
+
30
+ <style src="./icon.css" scoped></style>
@@ -0,0 +1,7 @@
1
+ .ui-icon {
2
+ display: inline-block;
3
+ flex-shrink: 0;
4
+ vertical-align: middle;
5
+ color: currentColor;
6
+ stroke-width: 1.75;
7
+ }