@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.
Files changed (86) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/app/components/es-sticky-bar.vue +173 -0
  3. package/app/components/icon/arrow-clockwise.vue +13 -48
  4. package/app/components/icon/arrow-counter-clockwise.vue +13 -34
  5. package/app/components/icon/arrow-cycle.vue +13 -40
  6. package/app/components/icon/arrow-down.vue +16 -0
  7. package/app/components/icon/arrow-left.vue +13 -36
  8. package/app/components/icon/arrow-right.vue +13 -36
  9. package/app/components/icon/arrow-up.vue +13 -36
  10. package/app/components/icon/bell.vue +13 -39
  11. package/app/components/icon/block.vue +13 -43
  12. package/app/components/icon/bolt.vue +12 -34
  13. package/app/components/icon/calculator.vue +13 -34
  14. package/app/components/icon/calendar.vue +13 -43
  15. package/app/components/icon/cart.vue +13 -43
  16. package/app/components/icon/chat-bubble.vue +13 -37
  17. package/app/components/icon/chat-dots.vue +13 -39
  18. package/app/components/icon/check.vue +13 -36
  19. package/app/components/icon/chevron-down.vue +13 -36
  20. package/app/components/icon/chevron-horizontal.vue +13 -36
  21. package/app/components/icon/chevron-left.vue +13 -36
  22. package/app/components/icon/chevron-right.vue +13 -36
  23. package/app/components/icon/chevron-up.vue +13 -36
  24. package/app/components/icon/circle-alert.vue +13 -43
  25. package/app/components/icon/circle-check.vue +13 -43
  26. package/app/components/icon/circle-chevron-down.vue +12 -43
  27. package/app/components/icon/circle-chevron-left.vue +13 -43
  28. package/app/components/icon/circle-chevron-right.vue +13 -43
  29. package/app/components/icon/circle-chevron-up.vue +13 -43
  30. package/app/components/icon/circle-minus.vue +13 -43
  31. package/app/components/icon/circle-plus.vue +13 -43
  32. package/app/components/icon/circle-x.vue +13 -43
  33. package/app/components/icon/circle.vue +13 -39
  34. package/app/components/icon/clock.vue +13 -43
  35. package/app/components/icon/copy.vue +13 -42
  36. package/app/components/icon/envelope.vue +13 -42
  37. package/app/components/icon/eye.vue +13 -38
  38. package/app/components/icon/flag.vue +13 -34
  39. package/app/components/icon/folder.vue +13 -38
  40. package/app/components/icon/gear.vue +12 -33
  41. package/app/components/icon/hamburger.vue +13 -35
  42. package/app/components/icon/heart.vue +13 -36
  43. package/app/components/icon/image.vue +13 -42
  44. package/app/components/icon/info.vue +13 -42
  45. package/app/components/icon/light-bulb.vue +13 -33
  46. package/app/components/icon/link-out.vue +13 -35
  47. package/app/components/icon/location.vue +13 -42
  48. package/app/components/icon/lock-off.vue +13 -42
  49. package/app/components/icon/lock-on.vue +13 -45
  50. package/app/components/icon/minus.vue +13 -35
  51. package/app/components/icon/money-bag.vue +12 -33
  52. package/app/components/icon/open-envelope.vue +13 -42
  53. package/app/components/icon/paper.vue +13 -42
  54. package/app/components/icon/pencil.vue +13 -42
  55. package/app/components/icon/person-add.vue +13 -38
  56. package/app/components/icon/person-check.vue +13 -38
  57. package/app/components/icon/person-cross.vue +13 -38
  58. package/app/components/icon/person.vue +13 -38
  59. package/app/components/icon/phone.vue +13 -38
  60. package/app/components/icon/play.vue +13 -38
  61. package/app/components/icon/plus.vue +13 -35
  62. package/app/components/icon/roof.vue +12 -33
  63. package/app/components/icon/search.vue +12 -39
  64. package/app/components/icon/settings-horizontal.vue +13 -54
  65. package/app/components/icon/settings-vertical.vue +13 -54
  66. package/app/components/icon/shield-with-check.vue +12 -34
  67. package/app/components/icon/shield.vue +13 -38
  68. package/app/components/icon/shopping-bag.vue +13 -36
  69. package/app/components/icon/solar.vue +12 -33
  70. package/app/components/icon/sound-down.vue +13 -42
  71. package/app/components/icon/sound-off.vue +13 -38
  72. package/app/components/icon/sound-on.vue +13 -38
  73. package/app/components/icon/sound-up.vue +13 -38
  74. package/app/components/icon/star-empty.vue +13 -35
  75. package/app/components/icon/star-full.vue +15 -33
  76. package/app/components/icon/star-half.vue +15 -52
  77. package/app/components/icon/thumbs-up.vue +13 -36
  78. package/app/components/icon/trash-can.vue +13 -38
  79. package/app/components/icon/tree.vue +12 -33
  80. package/app/components/icon/upload.vue +12 -37
  81. package/app/components/icon/verified.vue +13 -37
  82. package/app/components/icon/wifi.vue +13 -35
  83. package/app/components/icon/x.vue +13 -35
  84. package/nuxt.config.ts +1 -1
  85. package/package.json +2 -1
  86. 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
- export default {
3
- name: 'IconArrowClockwise',
4
- props: {
5
- /**
6
- * Width
7
- */
8
- width: {
9
- type: String,
10
- default: '24px',
11
- required: false,
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
- <svg
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
- export default {
3
- name: 'ArrowCounterClockwiseIcon',
4
- props: {
5
- /**
6
- * Width
7
- */
8
- width: {
9
- type: String,
10
- default: '24px',
11
- required: false,
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
- <svg
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
- <!-- eslint-disable max-len -->
2
- <script lang="ts">
3
- export default {
4
- name: 'IconArrowCycle',
5
- props: {
6
- /**
7
- * Width
8
- */
9
- width: {
10
- type: String,
11
- default: '24px',
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
- <svg
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
- <!-- eslint-disable max-len -->
2
- <script lang="ts">
3
- export default {
4
- name: 'ArrowLeftIcon',
5
- props: {
6
- /**
7
- * Width
8
- */
9
- width: {
10
- type: String,
11
- default: '24px',
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
- <svg
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
- <!-- eslint-disable max-len -->
2
- <script lang="ts">
3
- export default {
4
- name: 'ArrowRightIcon',
5
- props: {
6
- /**
7
- * Width
8
- */
9
- width: {
10
- type: String,
11
- default: '24px',
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
- <svg
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
- <!-- eslint-disable max-len -->
2
- <script lang="ts">
3
- export default {
4
- name: 'ArrowUpIcon',
5
- props: {
6
- /**
7
- * Width
8
- */
9
- width: {
10
- type: String,
11
- default: '24px',
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
- <svg
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
- <!-- eslint-disable max-len -->
2
- <script lang="ts">
3
- export default {
4
- name: 'IconBell',
5
- props: {
6
- /**
7
- * Width
8
- */
9
- width: {
10
- type: String,
11
- default: '24px',
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
- <svg
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
- <!-- eslint-disable max-len -->
2
- <script lang="ts">
3
- export default {
4
- name: 'IconBlock',
5
- props: {
6
- /**
7
- * Width
8
- */
9
- width: {
10
- type: String,
11
- default: '24px',
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
- <svg
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>