@energysage/es-ds-components 5.0.2 → 5.2.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.
- package/CHANGELOG.md +19 -0
- package/app/components/es-sticky-bar.vue +173 -0
- package/app/components/icon/arrow-clockwise.vue +13 -48
- package/app/components/icon/arrow-counter-clockwise.vue +13 -34
- package/app/components/icon/arrow-cycle.vue +13 -40
- package/app/components/icon/arrow-down.vue +16 -0
- package/app/components/icon/arrow-left.vue +13 -36
- package/app/components/icon/arrow-right.vue +13 -36
- package/app/components/icon/arrow-up.vue +13 -36
- package/app/components/icon/bell.vue +13 -39
- package/app/components/icon/block.vue +13 -43
- package/app/components/icon/bolt.vue +12 -34
- package/app/components/icon/calculator.vue +13 -34
- package/app/components/icon/calendar.vue +13 -43
- package/app/components/icon/cart.vue +13 -43
- package/app/components/icon/chat-bubble.vue +13 -37
- package/app/components/icon/chat-dots.vue +13 -39
- package/app/components/icon/check.vue +13 -36
- package/app/components/icon/chevron-down.vue +13 -36
- package/app/components/icon/chevron-horizontal.vue +13 -36
- package/app/components/icon/chevron-left.vue +13 -36
- package/app/components/icon/chevron-right.vue +13 -36
- package/app/components/icon/chevron-up.vue +13 -36
- package/app/components/icon/circle-alert.vue +13 -43
- package/app/components/icon/circle-check.vue +13 -43
- package/app/components/icon/circle-chevron-down.vue +12 -43
- package/app/components/icon/circle-chevron-left.vue +13 -43
- package/app/components/icon/circle-chevron-right.vue +13 -43
- package/app/components/icon/circle-chevron-up.vue +13 -43
- package/app/components/icon/circle-minus.vue +13 -43
- package/app/components/icon/circle-plus.vue +13 -43
- package/app/components/icon/circle-x.vue +13 -43
- package/app/components/icon/circle.vue +13 -39
- package/app/components/icon/clock.vue +13 -43
- package/app/components/icon/copy.vue +13 -42
- package/app/components/icon/envelope.vue +13 -42
- package/app/components/icon/eye.vue +13 -38
- package/app/components/icon/flag.vue +13 -34
- package/app/components/icon/folder.vue +13 -38
- package/app/components/icon/gear.vue +12 -33
- package/app/components/icon/hamburger.vue +13 -35
- package/app/components/icon/heart.vue +13 -36
- package/app/components/icon/image.vue +13 -42
- package/app/components/icon/info.vue +13 -42
- package/app/components/icon/light-bulb.vue +13 -33
- package/app/components/icon/link-out.vue +13 -35
- package/app/components/icon/location.vue +13 -42
- package/app/components/icon/lock-off.vue +13 -42
- package/app/components/icon/lock-on.vue +13 -45
- package/app/components/icon/minus.vue +13 -35
- package/app/components/icon/money-bag.vue +12 -33
- package/app/components/icon/open-envelope.vue +13 -42
- package/app/components/icon/paper.vue +13 -42
- package/app/components/icon/pencil.vue +13 -42
- package/app/components/icon/person-add.vue +13 -38
- package/app/components/icon/person-check.vue +13 -38
- package/app/components/icon/person-cross.vue +13 -38
- package/app/components/icon/person.vue +13 -38
- package/app/components/icon/phone.vue +13 -38
- package/app/components/icon/play.vue +13 -38
- package/app/components/icon/plus.vue +13 -35
- package/app/components/icon/roof.vue +12 -33
- package/app/components/icon/search.vue +12 -39
- package/app/components/icon/settings-horizontal.vue +13 -54
- package/app/components/icon/settings-vertical.vue +13 -54
- package/app/components/icon/shield-with-check.vue +12 -34
- package/app/components/icon/shield.vue +13 -38
- package/app/components/icon/shopping-bag.vue +13 -36
- package/app/components/icon/solar.vue +12 -33
- package/app/components/icon/sound-down.vue +13 -42
- package/app/components/icon/sound-off.vue +13 -38
- package/app/components/icon/sound-on.vue +13 -38
- package/app/components/icon/sound-up.vue +13 -38
- package/app/components/icon/star-empty.vue +13 -35
- package/app/components/icon/star-full.vue +15 -33
- package/app/components/icon/star-half.vue +15 -52
- package/app/components/icon/thumbs-up.vue +13 -36
- package/app/components/icon/trash-can.vue +13 -38
- package/app/components/icon/tree.vue +12 -33
- package/app/components/icon/upload.vue +12 -37
- package/app/components/icon/verified.vue +13 -37
- package/app/components/icon/wifi.vue +13 -35
- package/app/components/icon/x.vue +13 -35
- package/nuxt.config.ts +1 -1
- package/package.json +2 -1
- package/app/components/icon/arrow.vue +0 -68
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.2.0](https://github.com/EnergySage/es-ds/compare/es-ds-components-v5.1.0...es-ds-components-v5.2.0) (2026-03-27)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* update to Phosphor icon library ([#1689](https://github.com/EnergySage/es-ds/issues/1689)) ([78bd39b](https://github.com/EnergySage/es-ds/commit/78bd39b2e3325722bfa71e660961cba0de2766ed))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* ensure shadow is not visible when sticky bar is hidden ([#1720](https://github.com/EnergySage/es-ds/issues/1720)) ([68a7396](https://github.com/EnergySage/es-ds/commit/68a73966dba1eabb170eb0e0cb8ae5a22b6057f7))
|
|
14
|
+
|
|
15
|
+
## [5.1.0](https://github.com/EnergySage/es-ds/compare/es-ds-components-v5.0.2...es-ds-components-v5.1.0) (2026-03-27)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* added EsStickyBar ([#1718](https://github.com/EnergySage/es-ds/issues/1718)) ([9940605](https://github.com/EnergySage/es-ds/commit/994060525ea5c8a04ff3abfdd593e01b5c304176))
|
|
21
|
+
|
|
3
22
|
## [5.0.2](https://github.com/EnergySage/es-ds/compare/es-ds-components-v5.0.1...es-ds-components-v5.0.2) (2026-03-18)
|
|
4
23
|
|
|
5
24
|
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
// minimum scroll distance in a single direction before showing/hiding
|
|
3
|
+
const SCROLL_THRESHOLD = 20;
|
|
4
|
+
|
|
5
|
+
// bar states:
|
|
6
|
+
// - static: initial SSR state; bar is in normal document flow
|
|
7
|
+
// - absolute: after mount; bar is out of flow but scrolls away naturally with the page
|
|
8
|
+
// - fixed-visible: bar is pinned to the top of the viewport, visible
|
|
9
|
+
// - fixed-hidden: bar is pinned but translated off screen above the viewport
|
|
10
|
+
type BarState = 'static' | 'absolute' | 'fixed-visible' | 'fixed-hidden';
|
|
11
|
+
const barState = ref<BarState>('static');
|
|
12
|
+
|
|
13
|
+
// ref to the bar element, used to read its rendered height
|
|
14
|
+
const bar = ref<HTMLElement | null>(null);
|
|
15
|
+
// suppresses the transition for silent state swaps that shouldn't animate
|
|
16
|
+
const suppressTransition = ref(false);
|
|
17
|
+
// updated on mount and whenever the bar resizes
|
|
18
|
+
const barHeight = ref(0);
|
|
19
|
+
|
|
20
|
+
// scroll state — all plain vars since they don't need to be reactive
|
|
21
|
+
let lastScrollY = 0;
|
|
22
|
+
let scrollAnchor = 0; // position where the current scroll direction started
|
|
23
|
+
let scrollDirection = 0; // positive = down, negative = up
|
|
24
|
+
let ticking = false; // tracks whether a rAF is already queued
|
|
25
|
+
|
|
26
|
+
// switches to fixed-hidden without triggering the CSS transition — used when the bar is already
|
|
27
|
+
// off screen and we need to silently reposition it before the user scrolls back up
|
|
28
|
+
function hideWithoutAnimation() {
|
|
29
|
+
suppressTransition.value = true;
|
|
30
|
+
barState.value = 'fixed-hidden';
|
|
31
|
+
// re-enable transition after the next paint so future show/hide animations still work
|
|
32
|
+
requestAnimationFrame(() => {
|
|
33
|
+
suppressTransition.value = false;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function updateVisibility() {
|
|
38
|
+
// clamp to the valid scroll range to prevent Safari's rubber-band momentum scrolling
|
|
39
|
+
// from triggering false direction changes at the top and bottom of the page
|
|
40
|
+
const maxScrollY = document.documentElement.scrollHeight - window.innerHeight;
|
|
41
|
+
const currentScrollY = Math.min(Math.max(window.scrollY, 0), maxScrollY);
|
|
42
|
+
const delta = currentScrollY - lastScrollY;
|
|
43
|
+
|
|
44
|
+
if (delta === 0) {
|
|
45
|
+
ticking = false;
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// reset the anchor whenever the scroll direction reverses
|
|
50
|
+
const newDirection = delta > 0 ? 1 : -1;
|
|
51
|
+
if (newDirection !== scrollDirection) {
|
|
52
|
+
scrollDirection = newDirection;
|
|
53
|
+
scrollAnchor = lastScrollY;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (currentScrollY <= 0) {
|
|
57
|
+
// back at the very top: switch to absolute so bar scrolls away naturally on next scroll down
|
|
58
|
+
barState.value = 'absolute';
|
|
59
|
+
} else if (barState.value === 'absolute' && currentScrollY >= barHeight.value) {
|
|
60
|
+
// bar has scrolled fully off screen: reposition to fixed-hidden while invisible
|
|
61
|
+
hideWithoutAnimation();
|
|
62
|
+
} else if (
|
|
63
|
+
barState.value === 'fixed-hidden' &&
|
|
64
|
+
scrollDirection < 0 &&
|
|
65
|
+
scrollAnchor - currentScrollY >= SCROLL_THRESHOLD
|
|
66
|
+
) {
|
|
67
|
+
// scrolling up far enough: slide bar into view
|
|
68
|
+
barState.value = 'fixed-visible';
|
|
69
|
+
} else if (
|
|
70
|
+
barState.value === 'fixed-visible' &&
|
|
71
|
+
scrollDirection > 0 &&
|
|
72
|
+
currentScrollY - scrollAnchor >= SCROLL_THRESHOLD
|
|
73
|
+
) {
|
|
74
|
+
// scrolling down far enough: slide bar off screen
|
|
75
|
+
barState.value = 'fixed-hidden';
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
lastScrollY = currentScrollY;
|
|
79
|
+
ticking = false;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function onScroll() {
|
|
83
|
+
// batch rapid scroll events to one update per animation frame
|
|
84
|
+
if (!ticking) {
|
|
85
|
+
requestAnimationFrame(updateVisibility);
|
|
86
|
+
ticking = true;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
onMounted(() => {
|
|
91
|
+
// measure height before switching position so the placeholder matches exactly
|
|
92
|
+
barHeight.value = bar.value?.offsetHeight ?? 0;
|
|
93
|
+
|
|
94
|
+
// switch from static to absolute — placeholder appears simultaneously to prevent layout shift
|
|
95
|
+
barState.value = 'absolute';
|
|
96
|
+
lastScrollY = window.scrollY;
|
|
97
|
+
window.addEventListener('scroll', onScroll, { passive: true });
|
|
98
|
+
|
|
99
|
+
// keep barHeight in sync as the bar's height changes across breakpoints
|
|
100
|
+
if (bar.value) {
|
|
101
|
+
const resizeObserver = new ResizeObserver(([entry]) => {
|
|
102
|
+
barHeight.value = entry?.contentRect.height || 0;
|
|
103
|
+
});
|
|
104
|
+
resizeObserver.observe(bar.value);
|
|
105
|
+
onUnmounted(() => resizeObserver.disconnect());
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
onUnmounted(() => {
|
|
110
|
+
window.removeEventListener('scroll', onScroll);
|
|
111
|
+
});
|
|
112
|
+
</script>
|
|
113
|
+
|
|
114
|
+
<template>
|
|
115
|
+
<div
|
|
116
|
+
ref="bar"
|
|
117
|
+
class="es-sticky-bar bg-white"
|
|
118
|
+
:class="[`es-sticky-bar--${barState}`, { 'es-sticky-bar--no-transition': suppressTransition }]">
|
|
119
|
+
<slot />
|
|
120
|
+
</div>
|
|
121
|
+
<!-- holds the bar's space in normal flow when the bar is absolutely or fixed positioned -->
|
|
122
|
+
<div
|
|
123
|
+
v-if="barState !== 'static'"
|
|
124
|
+
:style="{ height: `${barHeight}px` }"
|
|
125
|
+
aria-hidden="true" />
|
|
126
|
+
</template>
|
|
127
|
+
|
|
128
|
+
<style lang="scss" scoped>
|
|
129
|
+
@use '@energysage/es-ds-styles/scss/mixins/breakpoints' as breakpoints;
|
|
130
|
+
|
|
131
|
+
$shadow: 0 0 6px 0 rgba(34, 38, 51, 0.2);
|
|
132
|
+
|
|
133
|
+
.es-sticky-bar {
|
|
134
|
+
box-shadow: $shadow;
|
|
135
|
+
left: 0;
|
|
136
|
+
right: 0;
|
|
137
|
+
top: 0;
|
|
138
|
+
z-index: 1000;
|
|
139
|
+
|
|
140
|
+
@include breakpoints.media-breakpoint-up(lg) {
|
|
141
|
+
box-shadow: none;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@media not (prefers-reduced-motion) {
|
|
145
|
+
transition: box-shadow 0.2s ease-in-out;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
&--absolute {
|
|
149
|
+
position: absolute;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
&--fixed-visible,
|
|
153
|
+
&--fixed-hidden {
|
|
154
|
+
box-shadow: $shadow;
|
|
155
|
+
position: fixed;
|
|
156
|
+
|
|
157
|
+
@media not (prefers-reduced-motion) {
|
|
158
|
+
transition: transform 0.2s ease-in-out;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// translated off screen above the viewport
|
|
163
|
+
&--fixed-hidden {
|
|
164
|
+
box-shadow: none;
|
|
165
|
+
transform: translateY(-100%);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// suppresses animation for silent state swaps (e.g. absolute → fixed-hidden when off screen)
|
|
169
|
+
&--no-transition {
|
|
170
|
+
transition: none !important;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
</style>
|
|
@@ -1,51 +1,16 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
},
|
|
13
|
-
/**
|
|
14
|
-
* Height
|
|
15
|
-
*/
|
|
16
|
-
height: {
|
|
17
|
-
type: String,
|
|
18
|
-
default: '24px',
|
|
19
|
-
required: false,
|
|
20
|
-
},
|
|
21
|
-
orientation: {
|
|
22
|
-
type: String,
|
|
23
|
-
default: 'clockwise',
|
|
24
|
-
required: false,
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
};
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { PhArrowClockwise } from '@phosphor-icons/vue';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
height?: string;
|
|
6
|
+
width?: string;
|
|
7
|
+
}
|
|
8
|
+
withDefaults(defineProps<Props>(), {
|
|
9
|
+
height: '24px',
|
|
10
|
+
width: '24px',
|
|
11
|
+
});
|
|
28
12
|
</script>
|
|
13
|
+
|
|
29
14
|
<template>
|
|
30
|
-
<
|
|
31
|
-
:class="{
|
|
32
|
-
'counter-clockwise': orientation === 'counter-clockwise',
|
|
33
|
-
}"
|
|
34
|
-
:style="{
|
|
35
|
-
height: height,
|
|
36
|
-
width: width,
|
|
37
|
-
}"
|
|
38
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
39
|
-
viewBox="0 0 24 24"
|
|
40
|
-
fill="currentColor">
|
|
41
|
-
<!-- eslint-disable-next-line max-len -->
|
|
42
|
-
<path
|
|
43
|
-
d="M3.246 7.123c.997-1.81 2.591-3.418 4.485-4.222 1.894-.905 4.087-1.106 6.08-.704 2.193.403 3.788 1.408 5.183 3.016.2.201.4.503.598.704l.4-2.513c.099-.603.597-.905 1.195-.905.499.1.897.704.798 1.206l-.897 5.127c0 .301-.2.502-.4.603-.198.1-.398.201-.597.201h-.2l-4.983-.905a1.042 1.042 0 0 1-.798-1.206c.1-.503.598-.905 1.197-.804l2.79.603c-.1-.302-.299-.503-.598-.804-1.096-1.307-2.492-2.111-4.086-2.413-1.595-.402-3.39-.2-4.884.503A7.896 7.896 0 0 0 4.94 8.028c-.797 1.507-1.096 3.216-.897 4.925.2 1.709.897 3.317 2.093 4.524 1.097 1.206 2.692 2.11 4.286 2.311 1.595.302 3.39 0 4.785-.703a8.444 8.444 0 0 0 3.488-3.518c.2-.503.798-.704 1.296-.503.498.201.698.804.498 1.307-.797 2.11-2.292 3.619-4.186 4.624-1.395.703-2.89 1.005-4.485 1.005-.598 0-1.096 0-1.695-.1-2.093-.403-3.987-1.408-5.382-2.916a10.256 10.256 0 0 1-2.691-5.629c-.2-2.211.2-4.322 1.196-6.232Z" />
|
|
44
|
-
</svg>
|
|
15
|
+
<ph-arrow-clockwise :size="width" />
|
|
45
16
|
</template>
|
|
46
|
-
|
|
47
|
-
<style lang="scss" scoped>
|
|
48
|
-
.counter-clockwise {
|
|
49
|
-
transform: scale(-1, 1);
|
|
50
|
-
}
|
|
51
|
-
</style>
|
|
@@ -1,37 +1,16 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
},
|
|
13
|
-
/**
|
|
14
|
-
* Height
|
|
15
|
-
*/
|
|
16
|
-
height: {
|
|
17
|
-
type: String,
|
|
18
|
-
default: '24px',
|
|
19
|
-
required: false,
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
};
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { PhArrowCounterClockwise } from '@phosphor-icons/vue';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
height?: string;
|
|
6
|
+
width?: string;
|
|
7
|
+
}
|
|
8
|
+
withDefaults(defineProps<Props>(), {
|
|
9
|
+
height: '24px',
|
|
10
|
+
width: '24px',
|
|
11
|
+
});
|
|
23
12
|
</script>
|
|
13
|
+
|
|
24
14
|
<template>
|
|
25
|
-
<
|
|
26
|
-
:style="{
|
|
27
|
-
height: height,
|
|
28
|
-
width: width,
|
|
29
|
-
}"
|
|
30
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
31
|
-
viewBox="0 0 24 24"
|
|
32
|
-
fill="currentColor">
|
|
33
|
-
<!-- eslint-disable-next-line max-len -->
|
|
34
|
-
<path
|
|
35
|
-
d="M20.754 7.123c-.997-1.81-2.591-3.418-4.485-4.222-1.894-.905-4.087-1.106-6.08-.704C7.996 2.6 6.4 3.605 5.006 5.213c-.2.201-.4.503-.598.704l-.4-2.513c-.099-.603-.597-.905-1.195-.905-.499.1-.897.704-.798 1.206l.897 5.127c0 .301.2.502.4.603.198.1.398.201.597.201h.2l4.983-.905c.499-.1.897-.603.798-1.206a1.034 1.034 0 0 0-1.196-.804l-2.791.603c.1-.302.299-.503.598-.804 1.096-1.307 2.492-2.111 4.086-2.413 1.595-.402 3.39-.2 4.884.503a7.896 7.896 0 0 1 3.589 3.418c.797 1.507 1.096 3.216.897 4.925-.2 1.709-.897 3.317-2.094 4.524-1.096 1.206-2.69 2.11-4.285 2.311-1.595.302-3.39 0-4.785-.703a8.444 8.444 0 0 1-3.488-3.518c-.2-.503-.798-.704-1.296-.503-.499.201-.698.804-.499 1.307.798 2.11 2.293 3.619 4.187 4.624 1.395.703 2.89 1.005 4.485 1.005.598 0 1.096 0 1.695-.1 2.093-.403 3.986-1.408 5.382-2.916a10.257 10.257 0 0 0 2.691-5.629c.2-2.211-.2-4.322-1.196-6.232Z" />
|
|
36
|
-
</svg>
|
|
15
|
+
<ph-arrow-counter-clockwise :size="width" />
|
|
37
16
|
</template>
|
|
@@ -1,43 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
required: false,
|
|
13
|
-
},
|
|
14
|
-
/**
|
|
15
|
-
* Height
|
|
16
|
-
*/
|
|
17
|
-
height: {
|
|
18
|
-
type: String,
|
|
19
|
-
default: '24px',
|
|
20
|
-
required: false,
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
};
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { PhArrowsClockwise } from '@phosphor-icons/vue';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
height?: string;
|
|
6
|
+
width?: string;
|
|
7
|
+
}
|
|
8
|
+
withDefaults(defineProps<Props>(), {
|
|
9
|
+
height: '24px',
|
|
10
|
+
width: '24px',
|
|
11
|
+
});
|
|
24
12
|
</script>
|
|
13
|
+
|
|
25
14
|
<template>
|
|
26
|
-
<
|
|
27
|
-
:style="{
|
|
28
|
-
height: height,
|
|
29
|
-
width: width,
|
|
30
|
-
}"
|
|
31
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
32
|
-
viewBox="0 0 24 24"
|
|
33
|
-
fill="currentColor">
|
|
34
|
-
<path
|
|
35
|
-
fill-rule="evenodd"
|
|
36
|
-
clip-rule="evenodd"
|
|
37
|
-
d="M11.806 3C6.929 3 3 6.565 3 12a1 1 0 1 1-2 0C1 5.435 5.85 1 11.806 1c4.759 0 8.742 2.543 10.141 6.68a1 1 0 0 1-1.894.64C18.973 5.127 15.853 3 11.806 3ZM22 11a1 1 0 0 1 1 1c0 6.565-4.85 11-10.806 11-4.758 0-8.742-2.543-10.141-6.68a1 1 0 0 1 1.894-.64c1.08 3.193 4.2 5.32 8.247 5.32C17.071 21 21 17.435 21 12a1 1 0 0 1 1-1Z" />
|
|
38
|
-
<path
|
|
39
|
-
fill-rule="evenodd"
|
|
40
|
-
clip-rule="evenodd"
|
|
41
|
-
d="M22.242 3.03a1 1 0 0 1 .728 1.213l-1 4a1 1 0 0 1-1.212.727l-4-1a1 1 0 1 1 .485-1.94l3.03.757.757-3.03a1 1 0 0 1 1.212-.727ZM2.03 15.758a1 1 0 0 1 1.213-.728l4 1a1 1 0 1 1-.486 1.94l-3.03-.757-.757 3.03a1 1 0 1 1-1.94-.485l1-4Z" />
|
|
42
|
-
</svg>
|
|
15
|
+
<ph-arrows-clockwise :size="width" />
|
|
43
16
|
</template>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { PhArrowDown } from '@phosphor-icons/vue';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
height?: string;
|
|
6
|
+
width?: string;
|
|
7
|
+
}
|
|
8
|
+
withDefaults(defineProps<Props>(), {
|
|
9
|
+
height: '24px',
|
|
10
|
+
width: '24px',
|
|
11
|
+
});
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<template>
|
|
15
|
+
<ph-arrow-down :size="width" />
|
|
16
|
+
</template>
|
|
@@ -1,39 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
required: false,
|
|
13
|
-
},
|
|
14
|
-
/**
|
|
15
|
-
* Height
|
|
16
|
-
*/
|
|
17
|
-
height: {
|
|
18
|
-
type: String,
|
|
19
|
-
default: '24px',
|
|
20
|
-
required: false,
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
};
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { PhArrowLeft } from '@phosphor-icons/vue';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
height?: string;
|
|
6
|
+
width?: string;
|
|
7
|
+
}
|
|
8
|
+
withDefaults(defineProps<Props>(), {
|
|
9
|
+
height: '24px',
|
|
10
|
+
width: '24px',
|
|
11
|
+
});
|
|
24
12
|
</script>
|
|
13
|
+
|
|
25
14
|
<template>
|
|
26
|
-
<
|
|
27
|
-
:style="{
|
|
28
|
-
height: height,
|
|
29
|
-
width: width,
|
|
30
|
-
}"
|
|
31
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
32
|
-
viewBox="0 0 24 24"
|
|
33
|
-
fill="currentColor">
|
|
34
|
-
<path
|
|
35
|
-
fill-rule="evenodd"
|
|
36
|
-
clip-rule="evenodd"
|
|
37
|
-
d="M11.707 4.293a1 1 0 0 1 0 1.414L6.414 11H20a1 1 0 1 1 0 2H6.414l5.293 5.293a1 1 0 0 1-1.414 1.414l-7-7a1 1 0 0 1 0-1.414l7-7a1 1 0 0 1 1.414 0Z" />
|
|
38
|
-
</svg>
|
|
15
|
+
<ph-arrow-left :size="width" />
|
|
39
16
|
</template>
|
|
@@ -1,39 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
required: false,
|
|
13
|
-
},
|
|
14
|
-
/**
|
|
15
|
-
* Height
|
|
16
|
-
*/
|
|
17
|
-
height: {
|
|
18
|
-
type: String,
|
|
19
|
-
default: '24px',
|
|
20
|
-
required: false,
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
};
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { PhArrowRight } from '@phosphor-icons/vue';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
height?: string;
|
|
6
|
+
width?: string;
|
|
7
|
+
}
|
|
8
|
+
withDefaults(defineProps<Props>(), {
|
|
9
|
+
height: '24px',
|
|
10
|
+
width: '24px',
|
|
11
|
+
});
|
|
24
12
|
</script>
|
|
13
|
+
|
|
25
14
|
<template>
|
|
26
|
-
<
|
|
27
|
-
:style="{
|
|
28
|
-
height: height,
|
|
29
|
-
width: width,
|
|
30
|
-
}"
|
|
31
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
32
|
-
viewBox="0 0 24 24"
|
|
33
|
-
fill="currentColor">
|
|
34
|
-
<path
|
|
35
|
-
fill-rule="evenodd"
|
|
36
|
-
clip-rule="evenodd"
|
|
37
|
-
d="M12.293 4.293a1 1 0 0 1 1.414 0l7 7a1 1 0 0 1 0 1.414l-7 7a1 1 0 0 1-1.414-1.414L17.586 13H4a1 1 0 1 1 0-2h13.586l-5.293-5.293a1 1 0 0 1 0-1.414Z" />
|
|
38
|
-
</svg>
|
|
15
|
+
<ph-arrow-right :size="width" />
|
|
39
16
|
</template>
|
|
@@ -1,39 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
required: false,
|
|
13
|
-
},
|
|
14
|
-
/**
|
|
15
|
-
* Height
|
|
16
|
-
*/
|
|
17
|
-
height: {
|
|
18
|
-
type: String,
|
|
19
|
-
default: '24px',
|
|
20
|
-
required: false,
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
};
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { PhArrowUp } from '@phosphor-icons/vue';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
height?: string;
|
|
6
|
+
width?: string;
|
|
7
|
+
}
|
|
8
|
+
withDefaults(defineProps<Props>(), {
|
|
9
|
+
height: '24px',
|
|
10
|
+
width: '24px',
|
|
11
|
+
});
|
|
24
12
|
</script>
|
|
13
|
+
|
|
25
14
|
<template>
|
|
26
|
-
<
|
|
27
|
-
:style="{
|
|
28
|
-
height: height,
|
|
29
|
-
width: width,
|
|
30
|
-
}"
|
|
31
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
32
|
-
viewBox="0 0 24 24"
|
|
33
|
-
fill="currentColor">
|
|
34
|
-
<path
|
|
35
|
-
fill-rule="evenodd"
|
|
36
|
-
clip-rule="evenodd"
|
|
37
|
-
d="M11.293 3.293a1 1 0 0 1 1.414 0l7 7a1 1 0 0 1-1.414 1.414L13 6.414V20a1 1 0 1 1-2 0V6.414l-5.293 5.293a1 1 0 0 1-1.414-1.414l7-7Z" />
|
|
38
|
-
</svg>
|
|
15
|
+
<ph-arrow-up :size="width" />
|
|
39
16
|
</template>
|
|
@@ -1,42 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
required: false,
|
|
13
|
-
},
|
|
14
|
-
/**
|
|
15
|
-
* Height
|
|
16
|
-
*/
|
|
17
|
-
height: {
|
|
18
|
-
type: String,
|
|
19
|
-
default: '24px',
|
|
20
|
-
required: false,
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
};
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { PhBell } from '@phosphor-icons/vue';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
height?: string;
|
|
6
|
+
width?: string;
|
|
7
|
+
}
|
|
8
|
+
withDefaults(defineProps<Props>(), {
|
|
9
|
+
height: '24px',
|
|
10
|
+
width: '24px',
|
|
11
|
+
});
|
|
24
12
|
</script>
|
|
13
|
+
|
|
25
14
|
<template>
|
|
26
|
-
<
|
|
27
|
-
:style="{
|
|
28
|
-
height: height,
|
|
29
|
-
width: width,
|
|
30
|
-
}"
|
|
31
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
32
|
-
viewBox="0 0 24 24"
|
|
33
|
-
fill="currentColor">
|
|
34
|
-
<path
|
|
35
|
-
d="M15 4v.375c2.818.934 4.978 3.525 5.015 6.614v3.8c0 .724.098 1.259.368 1.671l.286.437c.857 1.305-.045 3.103-1.654 3.103h-3.142a3.999 3.999 0 0 1-7.746 0H4.985c-1.606 0-2.513-1.796-1.654-3.103h.001l.286-.438c.27-.411.367-.944.367-1.669v-3.797C4.007 7.897 6.17 5.284 9 4.359V4a3 3 0 1 1 6 0Z"
|
|
36
|
-
fill="none" />
|
|
37
|
-
<path
|
|
38
|
-
fill-rule="evenodd"
|
|
39
|
-
clip-rule="evenodd"
|
|
40
|
-
d="M12 3a1 1 0 0 0-1 1h2a1 1 0 0 0-1-1Zm3 1.375V4a3 3 0 0 0-6 0v.359c-2.83.925-4.993 3.538-5.015 6.634v3.797c0 .725-.097 1.258-.367 1.67l-.286.436v.001C2.471 18.204 3.378 20 4.984 20h3.142a4 4 0 0 0 7.746 0h3.142c1.61 0 2.511-1.798 1.654-3.103l-.286-.437c-.27-.412-.368-.947-.368-1.671v-3.8c-.037-3.09-2.197-5.68-5.015-6.614ZM11.223 6h.038l1.458.003c2.84.007 5.26 2.305 5.296 5.004v3.782c0 .856.104 1.865.695 2.767l.287.438A.15.15 0 0 1 19 18H5l.003-.004v-.002l.287-.438c.592-.902.695-1.911.695-2.766v-3.786C6.006 8.313 8.404 6.01 11.223 6Zm2.51 14h-3.465A1.997 1.997 0 0 0 12 21a2 2 0 0 0 1.732-1Z" />
|
|
41
|
-
</svg>
|
|
15
|
+
<ph-bell :size="width" />
|
|
42
16
|
</template>
|
|
@@ -1,46 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
required: false,
|
|
13
|
-
},
|
|
14
|
-
/**
|
|
15
|
-
* Height
|
|
16
|
-
*/
|
|
17
|
-
height: {
|
|
18
|
-
type: String,
|
|
19
|
-
default: '24px',
|
|
20
|
-
required: false,
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
};
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { PhProhibit } from '@phosphor-icons/vue';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
height?: string;
|
|
6
|
+
width?: string;
|
|
7
|
+
}
|
|
8
|
+
withDefaults(defineProps<Props>(), {
|
|
9
|
+
height: '24px',
|
|
10
|
+
width: '24px',
|
|
11
|
+
});
|
|
24
12
|
</script>
|
|
13
|
+
|
|
25
14
|
<template>
|
|
26
|
-
<
|
|
27
|
-
:style="{
|
|
28
|
-
height: height,
|
|
29
|
-
width: width,
|
|
30
|
-
}"
|
|
31
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
32
|
-
viewBox="0 0 24 24"
|
|
33
|
-
fill="currentColor">
|
|
34
|
-
<path
|
|
35
|
-
d="M23 12c0 6.075-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1s11 4.925 11 11Z"
|
|
36
|
-
fill="none" />
|
|
37
|
-
<path
|
|
38
|
-
fill-rule="evenodd"
|
|
39
|
-
clip-rule="evenodd"
|
|
40
|
-
d="M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18ZM1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12Z" />
|
|
41
|
-
<path
|
|
42
|
-
fill-rule="evenodd"
|
|
43
|
-
clip-rule="evenodd"
|
|
44
|
-
d="m19.707 5.707-14 14-1.414-1.414 14-14 1.414 1.414Z" />
|
|
45
|
-
</svg>
|
|
15
|
+
<ph-prohibit :size="width" />
|
|
46
16
|
</template>
|