@energysage/es-ds-components 0.0.1 → 3.0.0-alpha.10

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 (234) hide show
  1. package/.eslintignore +9 -0
  2. package/.eslintrc.json +3 -0
  3. package/.prettierrc.json +10 -0
  4. package/README.md +0 -3
  5. package/components/es-accordion-list.vue +117 -0
  6. package/components/es-accordion.vue +7 -0
  7. package/components/es-badge.vue +20 -0
  8. package/components/es-breadcrumbs.vue +73 -0
  9. package/components/es-button.vue +122 -0
  10. package/components/es-card.vue +64 -0
  11. package/components/es-carousel.vue +316 -0
  12. package/components/es-col.vue +27 -0
  13. package/components/es-collapse.vue +83 -0
  14. package/components/es-container.vue +14 -0
  15. package/components/es-cta-banner.vue +95 -0
  16. package/components/es-cta-card.vue +60 -0
  17. package/components/es-data-table-simple.vue +73 -0
  18. package/components/es-data-table.vue +128 -0
  19. package/components/es-error-page.vue +120 -0
  20. package/components/es-file-input.vue +334 -0
  21. package/components/es-file-preview-modal.vue +61 -0
  22. package/components/es-footer.vue +163 -0
  23. package/components/es-form-checkbox.vue +40 -0
  24. package/components/es-form-input.vue +130 -0
  25. package/components/es-form-msg.vue +81 -0
  26. package/components/es-form-radio-card.vue +57 -0
  27. package/components/es-form-radio-cards.vue +78 -0
  28. package/components/es-form-textarea.vue +124 -0
  29. package/components/es-form.vue +16 -0
  30. package/components/es-modal.vue +103 -0
  31. package/components/es-nav-bar-account-menu.vue +70 -0
  32. package/components/es-nav-bar-featured-article.vue +60 -0
  33. package/components/es-nav-bar-link.vue +27 -0
  34. package/components/es-nav-bar-product-menu.vue +219 -0
  35. package/components/es-nav-bar-top-level-menu.vue +194 -0
  36. package/components/es-nav-bar-topic-menu.vue +197 -0
  37. package/components/es-nav-bar.vue +411 -0
  38. package/components/es-pagination.vue +67 -0
  39. package/components/es-popover.vue +113 -0
  40. package/components/es-progress-circle.vue +81 -0
  41. package/components/es-progress.vue +36 -0
  42. package/components/es-radio-button-group.vue +53 -0
  43. package/components/es-radio-button.vue +57 -0
  44. package/components/es-rating.vue +120 -0
  45. package/components/es-reviews-io-card-carousel.vue +279 -0
  46. package/components/es-row.vue +5 -0
  47. package/components/es-skeleton-img.vue +38 -0
  48. package/components/es-skeleton-wrapper.vue +17 -0
  49. package/components/es-skeleton.vue +97 -0
  50. package/components/es-slider.vue +218 -0
  51. package/components/es-spinner.vue +22 -0
  52. package/components/es-support-card.vue +150 -0
  53. package/components/es-support.vue +66 -0
  54. package/components/es-tab.vue +7 -0
  55. package/components/es-tabs.vue +70 -0
  56. package/components/es-verification-code.vue +94 -0
  57. package/components/es-video.vue +60 -0
  58. package/components/es-view-more.vue +64 -0
  59. package/components/es-zip-code-form.vue +204 -0
  60. package/components/icon/arrow-clockwise.vue +51 -0
  61. package/components/icon/arrow-counter-clockwise.vue +37 -0
  62. package/components/icon/arrow-cycle.vue +43 -0
  63. package/components/icon/arrow-left.vue +39 -0
  64. package/components/icon/arrow-right.vue +39 -0
  65. package/components/icon/arrow-up.vue +39 -0
  66. package/components/icon/arrow.vue +68 -0
  67. package/components/icon/bank.vue +38 -0
  68. package/components/icon/battery.vue +40 -0
  69. package/components/icon/bell.vue +42 -0
  70. package/components/icon/block.vue +46 -0
  71. package/components/icon/bolt.vue +38 -0
  72. package/components/icon/business.vue +42 -0
  73. package/components/icon/calculator.vue +37 -0
  74. package/components/icon/calendar.vue +46 -0
  75. package/components/icon/cart.vue +46 -0
  76. package/components/icon/chat-add.vue +44 -0
  77. package/components/icon/chat-approve.vue +42 -0
  78. package/components/icon/chat-bubble.vue +40 -0
  79. package/components/icon/chat-dots.vue +42 -0
  80. package/components/icon/check.vue +39 -0
  81. package/components/icon/chevron-down.vue +39 -0
  82. package/components/icon/chevron-horizontal.vue +39 -0
  83. package/components/icon/chevron-left.vue +39 -0
  84. package/components/icon/chevron-right.vue +39 -0
  85. package/components/icon/chevron-up.vue +39 -0
  86. package/components/icon/circle-alert.vue +46 -0
  87. package/components/icon/circle-check.vue +46 -0
  88. package/components/icon/circle-chevron-down.vue +47 -0
  89. package/components/icon/circle-chevron-left.vue +46 -0
  90. package/components/icon/circle-chevron-right.vue +46 -0
  91. package/components/icon/circle-chevron-up.vue +46 -0
  92. package/components/icon/circle-minus.vue +46 -0
  93. package/components/icon/circle-plus.vue +46 -0
  94. package/components/icon/circle-x.vue +46 -0
  95. package/components/icon/circle.vue +42 -0
  96. package/components/icon/clock.vue +46 -0
  97. package/components/icon/community-solar.vue +37 -0
  98. package/components/icon/companies.vue +43 -0
  99. package/components/icon/contact-us.vue +37 -0
  100. package/components/icon/copy.vue +45 -0
  101. package/components/icon/credit-card.vue +37 -0
  102. package/components/icon/document.vue +45 -0
  103. package/components/icon/electric-vehicle.vue +37 -0
  104. package/components/icon/electricity-circle.vue +39 -0
  105. package/components/icon/envelope.vue +45 -0
  106. package/components/icon/es-leaf.vue +39 -0
  107. package/components/icon/eye.vue +41 -0
  108. package/components/icon/facebook.vue +41 -0
  109. package/components/icon/file-doc.vue +72 -0
  110. package/components/icon/file-docx.vue +72 -0
  111. package/components/icon/file-pdf.vue +72 -0
  112. package/components/icon/flag.vue +37 -0
  113. package/components/icon/folder.vue +41 -0
  114. package/components/icon/gear.vue +37 -0
  115. package/components/icon/gift.vue +37 -0
  116. package/components/icon/hamburger.vue +38 -0
  117. package/components/icon/heart.vue +39 -0
  118. package/components/icon/heat-pump.vue +41 -0
  119. package/components/icon/image.vue +45 -0
  120. package/components/icon/info-blog-post.vue +47 -0
  121. package/components/icon/info.vue +45 -0
  122. package/components/icon/instagram.vue +49 -0
  123. package/components/icon/light-bulb.vue +36 -0
  124. package/components/icon/link-out.vue +38 -0
  125. package/components/icon/linkedin.vue +41 -0
  126. package/components/icon/location.vue +45 -0
  127. package/components/icon/lock-off.vue +45 -0
  128. package/components/icon/lock-on.vue +48 -0
  129. package/components/icon/marketplace.vue +43 -0
  130. package/components/icon/minus.vue +38 -0
  131. package/components/icon/money-bag.vue +37 -0
  132. package/components/icon/money.vue +35 -0
  133. package/components/icon/open-envelope.vue +45 -0
  134. package/components/icon/paper.vue +45 -0
  135. package/components/icon/payback.vue +37 -0
  136. package/components/icon/pencil.vue +45 -0
  137. package/components/icon/person-add.vue +41 -0
  138. package/components/icon/person-check.vue +41 -0
  139. package/components/icon/person-cross.vue +41 -0
  140. package/components/icon/person.vue +41 -0
  141. package/components/icon/phone.vue +41 -0
  142. package/components/icon/play.vue +41 -0
  143. package/components/icon/plus.vue +38 -0
  144. package/components/icon/roof.vue +37 -0
  145. package/components/icon/rooftop-solar.vue +37 -0
  146. package/components/icon/saving.vue +37 -0
  147. package/components/icon/search.vue +43 -0
  148. package/components/icon/settings-horizontal.vue +57 -0
  149. package/components/icon/settings-vertical.vue +57 -0
  150. package/components/icon/shield-with-check.vue +38 -0
  151. package/components/icon/shield.vue +41 -0
  152. package/components/icon/shopping-bag.vue +39 -0
  153. package/components/icon/solar.vue +37 -0
  154. package/components/icon/sound-down.vue +45 -0
  155. package/components/icon/sound-off.vue +41 -0
  156. package/components/icon/sound-on.vue +41 -0
  157. package/components/icon/sound-up.vue +41 -0
  158. package/components/icon/star-empty.vue +38 -0
  159. package/components/icon/star-full.vue +36 -0
  160. package/components/icon/star-half.vue +55 -0
  161. package/components/icon/state-ak.vue +53 -0
  162. package/components/icon/state-al.vue +38 -0
  163. package/components/icon/state-ar.vue +38 -0
  164. package/components/icon/state-az.vue +38 -0
  165. package/components/icon/state-ca.vue +38 -0
  166. package/components/icon/state-co.vue +38 -0
  167. package/components/icon/state-ct.vue +38 -0
  168. package/components/icon/state-dc.vue +52 -0
  169. package/components/icon/state-de.vue +38 -0
  170. package/components/icon/state-fl.vue +38 -0
  171. package/components/icon/state-ga.vue +38 -0
  172. package/components/icon/state-hi.vue +59 -0
  173. package/components/icon/state-ia.vue +38 -0
  174. package/components/icon/state-id.vue +38 -0
  175. package/components/icon/state-il.vue +38 -0
  176. package/components/icon/state-in.vue +38 -0
  177. package/components/icon/state-ks.vue +38 -0
  178. package/components/icon/state-ky.vue +38 -0
  179. package/components/icon/state-la.vue +38 -0
  180. package/components/icon/state-ma.vue +38 -0
  181. package/components/icon/state-md.vue +39 -0
  182. package/components/icon/state-me.vue +38 -0
  183. package/components/icon/state-mi.vue +38 -0
  184. package/components/icon/state-mn.vue +38 -0
  185. package/components/icon/state-mo.vue +38 -0
  186. package/components/icon/state-ms.vue +38 -0
  187. package/components/icon/state-mt.vue +38 -0
  188. package/components/icon/state-nc.vue +38 -0
  189. package/components/icon/state-nd.vue +38 -0
  190. package/components/icon/state-ne.vue +38 -0
  191. package/components/icon/state-nh.vue +38 -0
  192. package/components/icon/state-nj.vue +37 -0
  193. package/components/icon/state-nm.vue +38 -0
  194. package/components/icon/state-nv.vue +38 -0
  195. package/components/icon/state-ny.vue +41 -0
  196. package/components/icon/state-oh.vue +38 -0
  197. package/components/icon/state-ok.vue +38 -0
  198. package/components/icon/state-or.vue +38 -0
  199. package/components/icon/state-pa.vue +38 -0
  200. package/components/icon/state-ri.vue +38 -0
  201. package/components/icon/state-sc.vue +38 -0
  202. package/components/icon/state-sd.vue +38 -0
  203. package/components/icon/state-tn.vue +38 -0
  204. package/components/icon/state-tx.vue +38 -0
  205. package/components/icon/state-ut.vue +38 -0
  206. package/components/icon/state-va.vue +38 -0
  207. package/components/icon/state-vt.vue +38 -0
  208. package/components/icon/state-wa.vue +38 -0
  209. package/components/icon/state-wi.vue +38 -0
  210. package/components/icon/state-wv.vue +38 -0
  211. package/components/icon/state-wy.vue +38 -0
  212. package/components/icon/thumbs-up.vue +39 -0
  213. package/components/icon/trash-can.vue +41 -0
  214. package/components/icon/tree.vue +37 -0
  215. package/components/icon/twitter.vue +43 -0
  216. package/components/icon/upload.vue +41 -0
  217. package/components/icon/verified.vue +40 -0
  218. package/components/icon/video-play.vue +41 -0
  219. package/components/icon/wifi.vue +38 -0
  220. package/components/icon/x.vue +38 -0
  221. package/components/icon/youtube.vue +45 -0
  222. package/composables/forms.ts +124 -0
  223. package/nuxt.config.ts +83 -1
  224. package/package.json +47 -13
  225. package/tsconfig.json +4 -0
  226. package/types/es-carousel.ts +12 -0
  227. package/types/index.ts +1 -0
  228. package/utils/forms.ts +120 -0
  229. package/utils/get-es-footer-content.ts +90 -0
  230. package/utils/get-es-nav-bar-account-content.ts +55 -0
  231. package/utils/get-es-nav-bar-global-content.ts +482 -0
  232. package/utils/mime-type-finder.ts +48 -0
  233. package/utils/vuelidate-keys.ts +39 -0
  234. package/components/TestComponent.vue +0 -5
@@ -0,0 +1,204 @@
1
+ <script setup lang="ts">
2
+ const props = defineProps({
3
+ constrained: {
4
+ type: Boolean,
5
+ default: false,
6
+ },
7
+ dark: {
8
+ type: Boolean,
9
+ default: false,
10
+ },
11
+ fieldName: {
12
+ type: String,
13
+ default: 'zip_code',
14
+ },
15
+ inputId: {
16
+ type: String,
17
+ required: true,
18
+ },
19
+ newTab: {
20
+ type: Boolean,
21
+ default: false,
22
+ },
23
+ placeholder: {
24
+ type: String,
25
+ default: 'ZIP code',
26
+ },
27
+ showPrivacySection: {
28
+ type: Boolean,
29
+ default: true,
30
+ },
31
+ privacyPolicyLink: {
32
+ type: String,
33
+ default: '',
34
+ },
35
+ privacyPolicyNewTab: {
36
+ type: Boolean,
37
+ default: false,
38
+ },
39
+ stackUntil: {
40
+ type: String,
41
+ default: '',
42
+ },
43
+ url: {
44
+ type: String,
45
+ required: true,
46
+ },
47
+ zipCodeValue: {
48
+ type: String,
49
+ default: '',
50
+ },
51
+ selectedProduct: {
52
+ type: String,
53
+ default: '',
54
+ },
55
+ });
56
+
57
+ const state = reactive({
58
+ zipCode: props.zipCodeValue,
59
+ });
60
+
61
+ watch(
62
+ () => props.zipCodeValue,
63
+ (newVal) => {
64
+ state.zipCode = newVal;
65
+ },
66
+ );
67
+
68
+ const stackBreak = computed(() => {
69
+ let { stackUntil } = props;
70
+ if (stackUntil === 'xs') {
71
+ stackUntil = '';
72
+ }
73
+ return stackUntil ? `${stackUntil}-` : '';
74
+ });
75
+
76
+ /* Set up validation using Vuelidate */
77
+ const rules = {
78
+ zipCode: {
79
+ [vuelidateKeys.MAX_LENGTH]: vuelidateMaxLength(5),
80
+ [vuelidateKeys.MIN_LENGTH]: vuelidateMinLength(5),
81
+ [vuelidateKeys.INTEGER]: vuelidateInteger,
82
+ [vuelidateKeys.REQUIRED]: vuelidateRequired,
83
+ },
84
+ };
85
+
86
+ const { v$, validateState } = useEsForms(rules, state);
87
+
88
+ const ctaForm = useTemplateRef<HTMLFormElement>('ctaForm');
89
+
90
+ const handleSubmit = () => {
91
+ if (v$.value.$invalid) {
92
+ v$.value.$touch();
93
+ } else {
94
+ ctaForm.value?.submit();
95
+ }
96
+ };
97
+ </script>
98
+
99
+ <template>
100
+ <div
101
+ class="EsZipCodeForm d-flex"
102
+ :class="{
103
+ 'EsZipCodeForm--constrained': constrained,
104
+ 'text-white': dark,
105
+ }"
106
+ v-bind="$attrs">
107
+ <div class="d-flex flex-column">
108
+ <form
109
+ ref="ctaForm"
110
+ class="justify-content-center w-100"
111
+ :class="{
112
+ [`d-${stackBreak}flex`]: stackUntil,
113
+ 'mb-100': showPrivacySection,
114
+ }"
115
+ :action="url"
116
+ method="get"
117
+ novalidate
118
+ :target="newTab ? '_blank' : '_self'"
119
+ @submit.prevent.stop="handleSubmit">
120
+ <es-form-input
121
+ :id="inputId"
122
+ v-model="state.zipCode"
123
+ :state="validateState('zipCode')"
124
+ autocomplete="postal-code"
125
+ class="mb-100"
126
+ :class="{
127
+ [`mb-${stackBreak}0 mr-${stackBreak}50`]: stackUntil,
128
+ }"
129
+ inputmode="numeric"
130
+ label-sr-only
131
+ maxlength="5"
132
+ :name="fieldName"
133
+ pattern="\d*"
134
+ :placeholder="placeholder"
135
+ required>
136
+ <template #prefixIcon>
137
+ <icon-location class="text-gray-800" />
138
+ </template>
139
+ <template #label>
140
+ {{ placeholder }}
141
+ </template>
142
+ <template #errorMessage>
143
+ <span :class="{ 'text-white': dark }">
144
+ <slot name="errorMessage"> Please enter a 5-digit zip code. </slot>
145
+ </span>
146
+ </template>
147
+ </es-form-input>
148
+ <input
149
+ v-if="selectedProduct"
150
+ type="hidden"
151
+ name="product"
152
+ :value="selectedProduct" />
153
+ <es-button
154
+ class="text-nowrap w-100"
155
+ :class="{
156
+ [`ml-${stackBreak}50 w-${stackBreak}auto`]: stackUntil,
157
+ 'px-100': constrained,
158
+ }"
159
+ type="submit"
160
+ :variant="dark ? 'dark-bg' : 'primary'">
161
+ <slot name="buttonText"> Submit </slot>
162
+ </es-button>
163
+ </form>
164
+ <div
165
+ v-if="showPrivacySection"
166
+ class="d-flex text-left"
167
+ :class="{ 'font-size-75': constrained }">
168
+ <icon-lock-on
169
+ aria-hidden="true"
170
+ class="privacy-lock-icon flex-shrink-0 mr-50 position-relative"
171
+ :class="{ 'mt-25': !constrained }"
172
+ height="1.125rem"
173
+ width="1.125rem" />
174
+ <div>
175
+ <span>
176
+ <slot name="privacyExplanation"> Your information is safe with us. </slot>
177
+ </span>
178
+ <nuxt-link
179
+ v-if="privacyPolicyLink"
180
+ :href="privacyPolicyLink"
181
+ class="text-nowrap"
182
+ :class="dark ? 'text-white' : ''"
183
+ :target="privacyPolicyNewTab ? '_blank' : '_self'">
184
+ <slot name="privacyPolicyLinkText"> Privacy Policy </slot>
185
+ </nuxt-link>
186
+ </div>
187
+ </div>
188
+ </div>
189
+ </div>
190
+ </template>
191
+
192
+ <style lang="scss" scoped>
193
+ .EsZipCodeForm {
194
+ .privacy-lock-icon {
195
+ top: -0.02em;
196
+ }
197
+
198
+ &--constrained {
199
+ .privacy-lock-icon {
200
+ top: 0.02em;
201
+ }
202
+ }
203
+ }
204
+ </style>
@@ -0,0 +1,51 @@
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
+ };
28
+ </script>
29
+ <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>
45
+ </template>
46
+
47
+ <style lang="scss" scoped>
48
+ .counter-clockwise {
49
+ transform: scale(-1, 1);
50
+ }
51
+ </style>
@@ -0,0 +1,37 @@
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
+ };
23
+ </script>
24
+ <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>
37
+ </template>
@@ -0,0 +1,43 @@
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
+ };
24
+ </script>
25
+ <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>
43
+ </template>
@@ -0,0 +1,39 @@
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
+ };
24
+ </script>
25
+ <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>
39
+ </template>
@@ -0,0 +1,39 @@
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
+ };
24
+ </script>
25
+ <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>
39
+ </template>
@@ -0,0 +1,39 @@
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
+ };
24
+ </script>
25
+ <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>
39
+ </template>
@@ -0,0 +1,68 @@
1
+ <!-- eslint-disable max-len -->
2
+ <script lang="ts">
3
+ export default {
4
+ name: 'IconArrow',
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
+ orientation: {
23
+ type: String,
24
+ default: 'top',
25
+ required: false,
26
+ },
27
+ },
28
+ computed: {
29
+ classFromOrientation() {
30
+ return `orientation-${this.orientation}`;
31
+ },
32
+ },
33
+ };
34
+ </script>
35
+ <template>
36
+ <svg
37
+ :style="{
38
+ height: height,
39
+ width: width,
40
+ }"
41
+ :class="classFromOrientation"
42
+ xmlns="http://www.w3.org/2000/svg"
43
+ viewBox="0 0 24 24"
44
+ fill="currentColor">
45
+ <path
46
+ fill-rule="evenodd"
47
+ clip-rule="evenodd"
48
+ d="M12 3a1 1 0 0 1 1 1v13.586l5.293-5.293a1 1 0 0 1 1.414 1.414l-7 7a1 1 0 0 1-1.414 0l-7-7a1 1 0 1 1 1.414-1.414L11 17.586V4a1 1 0 0 1 1-1Z" />
49
+ </svg>
50
+ </template>
51
+
52
+ <style lang="scss" scoped>
53
+ .orientation-down {
54
+ transform: rotate(0deg);
55
+ }
56
+
57
+ .orientation-left {
58
+ transform: rotate(90deg);
59
+ }
60
+
61
+ .orientation-top {
62
+ transform: rotate(180deg);
63
+ }
64
+
65
+ .orientation-right {
66
+ transform: rotate(270deg);
67
+ }
68
+ </style>
@@ -0,0 +1,38 @@
1
+ <!-- eslint-disable max-len -->
2
+ <script lang="ts">
3
+ export default {
4
+ name: 'IconBank',
5
+ props: {
6
+ /**
7
+ * Width
8
+ */
9
+ width: {
10
+ type: String,
11
+ default: '32px',
12
+ required: false,
13
+ },
14
+ /**
15
+ * Height
16
+ */
17
+ height: {
18
+ type: String,
19
+ default: '32px',
20
+ required: false,
21
+ },
22
+ },
23
+ };
24
+ </script>
25
+ <template>
26
+ <svg
27
+ :style="{
28
+ height: height,
29
+ width: width,
30
+ }"
31
+ xmlns="http://www.w3.org/2000/svg"
32
+ viewBox="0 0 57 55"
33
+ fill="currentColor">
34
+ <path
35
+ d="M55.2 48.5H53v-3.7c0-.5-.4-.8-.9-.8h-3.5V21.3H54a.8.8 0 0 0 .5-1.6l-26-18.6a.9.9 0 0 0-1 0L1.7 19.7c-.3.3-.4.6-.3 1 0 .3.4.6.8.6h5.2V44H3.9c-.4 0-.8.3-.8.8v3.7H.8c-.4 0-.8.4-.8.8v4.5c0 .5.4.9.8.9h54.4c.5 0 .8-.4.8-.9v-4.5c0-.4-.3-.8-.8-.8ZM46.9 44h-4.5V21.3H47V44ZM32 44V21.3h8.7V44H32Zm-16.6 0V21.3H24V44h-8.6Zm10.3-22.7h4.6V44h-4.6V21.3ZM28 2.8l23.2 16.8H4.8L28 2.8ZM9 21.3h4.7V44H9V21.3ZM4.9 45.7h46.5v2.8H4.8v-2.8ZM54.3 53H1.7v-2.8h52.6V53Z"
36
+ fill-rule="evenodd" />
37
+ </svg>
38
+ </template>
@@ -0,0 +1,40 @@
1
+ <!-- eslint-disable max-len -->
2
+ <script lang="ts">
3
+ export default {
4
+ name: 'IconBattery',
5
+ props: {
6
+ /**
7
+ * Width
8
+ */
9
+ width: {
10
+ type: String,
11
+ default: '32px',
12
+ required: false,
13
+ },
14
+ /**
15
+ * Height
16
+ */
17
+ height: {
18
+ type: String,
19
+ default: '32px',
20
+ required: false,
21
+ },
22
+ },
23
+ };
24
+ </script>
25
+
26
+ <template>
27
+ <svg
28
+ :style="{
29
+ height: height,
30
+ width: width,
31
+ }"
32
+ viewBox="0 0 32 32"
33
+ fill="currentColor"
34
+ xmlns="http://www.w3.org/2000/svg">
35
+ <path
36
+ d="M22.647 3.735h-2.295V1.499A.498.498 0 0 0 19.853 1h-7.706a.498.498 0 0 0-.499.499v2.236H9.36A2.358 2.358 0 0 0 7 6.088V27.81a2.357 2.357 0 0 0 2.353 2.354h13.294A2.357 2.357 0 0 0 25 27.809V6.09a2.357 2.357 0 0 0-2.353-2.354ZM12.646 1.998h6.714v1.737h-6.714V1.998Zm11.356 25.811c0 .752-.61 1.362-1.355 1.362H9.353c-.75 0-1.355-.61-1.355-1.362V6.09c0-.752.61-1.356 1.355-1.356h13.294c.75 0 1.355.61 1.355 1.355V27.81Z" />
37
+ <path
38
+ d="M21.291 20.978H10.716a.498.498 0 0 0-.5.499v3.386c0 .276.224.499.5.499H21.29a.498.498 0 0 0 .5-.499v-3.386a.498.498 0 0 0-.5-.5Zm-.498 3.386h-9.584v-2.389h9.584v2.39ZM21.291 14.757H10.716a.498.498 0 0 0-.5.499v3.386c0 .276.224.499.5.499H21.29a.498.498 0 0 0 .5-.499v-3.386a.498.498 0 0 0-.5-.5Zm-.498 3.386h-9.584v-2.388h9.584v2.388ZM21.291 8.541H10.716a.498.498 0 0 0-.5.5v3.386c0 .276.224.499.5.499H21.29a.498.498 0 0 0 .5-.5V9.04a.498.498 0 0 0-.5-.498Zm-.498 3.387h-9.584V9.539h9.584v2.389Z" />
39
+ </svg>
40
+ </template>
@@ -0,0 +1,42 @@
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
+ };
24
+ </script>
25
+ <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>
42
+ </template>
@@ -0,0 +1,46 @@
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
+ };
24
+ </script>
25
+ <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>
46
+ </template>