@explorer-1/vue 0.2.77 → 0.2.79

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": "@explorer-1/vue",
3
- "version": "0.2.77",
3
+ "version": "0.2.79",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -30,7 +30,7 @@
30
30
  "vue-bind-once": "^0.2.1",
31
31
  "vue3-compare-image": "^1.2.5",
32
32
  "vue3-observe-visibility": "^1.0.1",
33
- "@explorer-1/common": "1.1.20"
33
+ "@explorer-1/common": "1.1.21"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@vitejs/plugin-vue": "^5.0.4",
@@ -0,0 +1,52 @@
1
+ <script setup lang="ts">
2
+ import { computed, reactive } from 'vue'
3
+ import IconEduArt from '../Icons/IconEduArt.vue'
4
+ import IconEduEngineering from '../Icons/IconEduEngineering.vue'
5
+ import IconEduEnglishLanguageArts from '../Icons/IconEduEnglishLanguageArts.vue'
6
+ import IconEduMathematics from '../Icons/IconEduMathematics.vue'
7
+ import IconEduScience from '../Icons/IconEduScience.vue'
8
+ import IconEduTechnology from '../Icons/IconEduTechnology.vue'
9
+
10
+ interface EduSubjectIconProps {
11
+ subject: string
12
+ }
13
+
14
+ // define props
15
+ const props = withDefaults(defineProps<EduSubjectIconProps>(), {
16
+ subject: 'science'
17
+ })
18
+
19
+ const normalizedSubject = computed(() => {
20
+ return subject.toLowerCase()
21
+ })
22
+ const theIcon = computed(() => {
23
+ let component = undefined
24
+ switch (normalizedSubject.value) {
25
+ case 'art':
26
+ component = IconEduArt
27
+ break
28
+ case 'english':
29
+ case 'english language arts':
30
+ component = IconEduEnglishLanguageArts
31
+ break
32
+ case 'engineering':
33
+ component = IconEduEngineering
34
+ break
35
+ case 'math':
36
+ case 'mathematics':
37
+ component = IconEduMathematics
38
+ break
39
+ case 'science':
40
+ component = IconEduScience
41
+ break
42
+ case 'technology':
43
+ component = IconEduTechnology
44
+ break
45
+ }
46
+ return component
47
+ })
48
+ const { subject } = reactive(props)
49
+ </script>
50
+ <template>
51
+ <component :is="theIcon"></component>
52
+ </template>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="IconEduArt"
4
+ width="24"
5
+ height="24"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ aria-hidden="true"
10
+ focusable="false"
11
+ >
12
+ <path
13
+ fill-rule="evenodd"
14
+ clip-rule="evenodd"
15
+ d="M19.9975 11.9999C19.9975 10.7282 19.7003 9.5256 19.1716 8.45779L20.6337 6.99566C21.4881 8.46664 21.9773 10.1761 21.9773 11.9999V15.0191H19.9975H15.6206C14.6482 15.0191 13.86 15.8074 13.86 16.7797C13.86 17.2457 14.0467 17.6947 14.3761 18.0242L15.3096 18.9576L12.2903 21.9769H12.0004C6.48972 21.9769 2.02344 17.5106 2.02344 11.9999C2.02344 6.48924 6.48972 2.02295 12.0004 2.02295C14.3645 2.02295 16.5364 2.84495 18.2459 4.21878L16.8347 5.62994C15.4918 4.60895 13.8166 4.00276 12.0004 4.00276C7.58544 4.00276 4.00325 7.58495 4.00325 11.9999C4.00325 16.2451 7.30806 19.7146 11.488 19.9803L12.5521 18.9162C12.1188 18.2938 11.8802 17.548 11.8802 16.7797C11.8802 14.7153 13.5562 13.0393 15.6206 13.0393H19.9975V11.9999ZM16.7333 9.58754C16.7711 9.72788 16.7935 9.87683 16.7959 10.0299C16.8119 11.0104 16.0306 11.7917 15.0501 11.7758L13.2754 11.747L13.2466 9.97227C13.2306 8.99176 14.0119 8.21048 14.9924 8.2264C15.1455 8.22888 15.2922 8.25122 15.4348 8.28902L16.7333 9.58754ZM17.5197 8.97896L17.5197 8.97888L17.5195 8.979L16.068 7.5275L21.0105 2.585L21.0106 2.58508L21.0107 2.58496L22.4622 4.03646L17.5197 8.97896ZM11.7222 5.64579C11.5321 5.86332 11.4361 6.14746 11.4555 6.43572C11.4749 6.72398 11.6079 6.99273 11.8255 7.18287C12.043 7.373 12.3271 7.46894 12.6154 7.44957C12.9037 7.4302 13.1724 7.29711 13.3625 7.07959C13.5527 6.86206 13.6486 6.57792 13.6292 6.28966C13.6099 6.0014 13.4768 5.73264 13.2593 5.54251C13.0417 5.35238 12.7576 5.25644 12.4693 5.27581C12.1811 5.29518 11.9123 5.42827 11.7222 5.64579ZM7.47194 7.605C7.38703 7.88114 7.41529 8.17971 7.55051 8.43502C7.68573 8.69033 7.91684 8.88147 8.19298 8.96638C8.46913 9.0513 8.7677 9.02304 9.02301 8.88782C9.27832 8.7526 9.46946 8.52149 9.55437 8.24534C9.63929 7.9692 9.61102 7.67063 9.4758 7.41532C9.34058 7.16001 9.10948 6.96887 8.83333 6.88396C8.55718 6.79904 8.25862 6.8273 8.00331 6.96252C7.748 7.09775 7.55686 7.32885 7.47194 7.605ZM5.38405 11.3071C5.29914 11.5833 5.3274 11.8819 5.46262 12.1372C5.59784 12.3925 5.82895 12.5836 6.10509 12.6685C6.38124 12.7534 6.67981 12.7252 6.93512 12.59C7.19043 12.4547 7.38157 12.2236 7.46648 11.9475C7.5514 11.6713 7.52313 11.3728 7.38791 11.1175C7.25269 10.8622 7.02159 10.671 6.74544 10.5861C6.46929 10.5012 6.17072 10.5295 5.91542 10.6647C5.66011 10.7999 5.46897 11.031 5.38405 11.3071ZM6.88059 16.1665C6.74537 15.9112 6.71711 15.6126 6.80202 15.3364C6.88694 15.0603 7.07807 14.8292 7.33338 14.694C7.58869 14.5588 7.88726 14.5305 8.16341 14.6154C8.43956 14.7003 8.67066 14.8915 8.80588 15.1468C8.9411 15.4021 8.96936 15.7006 8.88445 15.9768C8.79953 16.2529 8.6084 16.484 8.35309 16.6193C8.09778 16.7545 7.79921 16.7827 7.52306 16.6978C7.24692 16.6129 7.01581 16.4218 6.88059 16.1665Z"
16
+ fill="currentColor"
17
+ />
18
+ </svg>
19
+ </template>
20
+
21
+ <script lang="ts">
22
+ import { defineComponent } from 'vue'
23
+ export default defineComponent({
24
+ name: 'IconEduArt'
25
+ })
26
+ </script>
27
+ <style lang="scss">
28
+ @import '@explorer-1/common/src/scss/components/IconEduArt';
29
+ </style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="IconEduEngineering"
4
+ width="24"
5
+ height="24"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ aria-hidden="true"
10
+ focusable="false"
11
+ >
12
+ <path
13
+ fill-rule="evenodd"
14
+ clip-rule="evenodd"
15
+ d="M11.0039 2.14502H13.0039V6.08398H17.8887H19.8887V8.08398V19.855V21.855H17.8887H6.11719H4.11768H4.11719V6.08398L4.11768 6.08398L6.11719 6.08398H11.0039V2.14502ZM6.11719 8.08398L11.0039 8.08398H13.0039H17.8887V19.855H6.11719V8.08398ZM1 11H3V16.939H1V11ZM10.168 15.9048V17.9048H7.99072V15.9048H10.168ZM13.0918 17.9048V15.9048H10.9146V17.9048H13.0918ZM16.0977 15.9048V17.9048H13.9204V15.9048H16.0977ZM23 11H21V16.939H23V11ZM9.08047 15.0452C10.5164 15.0452 11.6805 13.8812 11.6805 12.4452C11.6805 11.0093 10.5164 9.84521 9.08047 9.84521C7.64453 9.84521 6.48047 11.0093 6.48047 12.4452C6.48047 13.8812 7.64453 15.0452 9.08047 15.0452ZM14.9242 15.0452C16.3602 15.0452 17.5242 13.8812 17.5242 12.4452C17.5242 11.0093 16.3602 9.84521 14.9242 9.84521C13.4883 9.84521 12.3242 11.0093 12.3242 12.4452C12.3242 13.8812 13.4883 15.0452 14.9242 15.0452ZM10.0805 12.4452C10.0805 12.9975 9.63275 13.4452 9.08047 13.4452C8.52818 13.4452 8.08047 12.9975 8.08047 12.4452C8.08047 11.8929 8.52818 11.4452 9.08047 11.4452C9.63275 11.4452 10.0805 11.8929 10.0805 12.4452ZM15.9242 12.4452C15.9242 12.9975 15.4765 13.4452 14.9242 13.4452C14.3719 13.4452 13.9242 12.9975 13.9242 12.4452C13.9242 11.8929 14.3719 11.4452 14.9242 11.4452C15.4765 11.4452 15.9242 11.8929 15.9242 12.4452Z"
16
+ fill="currentColor"
17
+ />
18
+ </svg>
19
+ </template>
20
+
21
+ <script lang="ts">
22
+ import { defineComponent } from 'vue'
23
+ export default defineComponent({
24
+ name: 'IconEduEngineering'
25
+ })
26
+ </script>
27
+ <style lang="scss">
28
+ @import '@explorer-1/common/src/scss/components/IconEduEngineering';
29
+ </style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="IconEduEnglishLanguageArts"
4
+ width="24"
5
+ height="25"
6
+ viewBox="0 0 24 25"
7
+ fill="none"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ aria-hidden="true"
10
+ focusable="false"
11
+ >
12
+ <path
13
+ fill-rule="evenodd"
14
+ clip-rule="evenodd"
15
+ d="M7.5 4.51172C6.39543 4.51172 5.5 5.40715 5.5 6.51172V15.8368C5.96046 15.6159 6.4764 15.4922 7.02124 15.4922H18.4922V4.51172H7.5ZM3.5 18.8392H3.50423C3.50142 18.8969 3.5 18.955 3.5 19.0134C3.5 20.9582 5.07651 22.5347 7.02124 22.5347H20.5V20.5347H19.4316V17.4922H20.5V15.4922H20.4922V2.51172H7.5C5.29086 2.51172 3.5 4.30258 3.5 6.51172V18.8392ZM17.4316 17.4922H7.02124C6.18108 17.4922 5.5 18.1733 5.5 19.0134C5.5 19.8536 6.18108 20.5347 7.02124 20.5347H17.4316V17.4922ZM12.8675 10.9254L12.2411 9.52195L11.6146 10.9254H12.8675ZM13.5817 12.5254H10.9003L10.2188 14.0518L8.75781 13.3996L12.2413 5.59668L15.724 13.3998L14.263 14.0519L13.5817 12.5254Z"
16
+ fill="currentColor"
17
+ />
18
+ </svg>
19
+ </template>
20
+
21
+ <script lang="ts">
22
+ import { defineComponent } from 'vue'
23
+ export default defineComponent({
24
+ name: 'IconEduEnglishLanguageArts'
25
+ })
26
+ </script>
27
+ <style lang="scss">
28
+ @import '@explorer-1/common/src/scss/components/IconEduEnglishLanguageArts';
29
+ </style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="IconEduMathematics"
4
+ width="24"
5
+ height="24"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ aria-hidden="true"
10
+ focusable="false"
11
+ >
12
+ <path
13
+ fill-rule="evenodd"
14
+ clip-rule="evenodd"
15
+ d="M16.998 4H6.02539V6.9873L16.998 6.9873V4ZM6.02539 20V8.9873L16.998 8.9873V20H6.02539ZM6.02539 2H4.02539V4V20V22H6.02539H16.998H18.998V20V4V2H16.998H6.02539ZM12.5117 16.998H7.03516V18.998H12.5117V16.998ZM15.0156 18.998C15.5679 18.998 16.0156 18.5503 16.0156 17.998C16.0156 17.4458 15.5679 16.998 15.0156 16.998C14.4633 16.998 14.0156 17.4458 14.0156 17.998C14.0156 18.5503 14.4633 18.998 15.0156 18.998ZM9.03516 14.9668C9.03516 15.5191 8.58744 15.9668 8.03516 15.9668C7.48287 15.9668 7.03516 15.5191 7.03516 14.9668C7.03516 14.4145 7.48287 13.9668 8.03516 13.9668C8.58744 13.9668 9.03516 14.4145 9.03516 14.9668ZM8.03516 12.9658C8.58744 12.9658 9.03516 12.5181 9.03516 11.9658C9.03516 11.4135 8.58744 10.9658 8.03516 10.9658C7.48287 10.9658 7.03516 11.4135 7.03516 11.9658C7.03516 12.5181 7.48287 12.9658 8.03516 12.9658ZM12.5117 14.9668C12.5117 15.5191 12.064 15.9668 11.5117 15.9668C10.9594 15.9668 10.5117 15.5191 10.5117 14.9668C10.5117 14.4145 10.9594 13.9668 11.5117 13.9668C12.064 13.9668 12.5117 14.4145 12.5117 14.9668ZM11.5117 12.9658C12.064 12.9658 12.5117 12.5181 12.5117 11.9658C12.5117 11.4135 12.064 10.9658 11.5117 10.9658C10.9594 10.9658 10.5117 11.4135 10.5117 11.9658C10.5117 12.5181 10.9594 12.9658 11.5117 12.9658ZM16.0156 14.9668C16.0156 15.5191 15.5679 15.9668 15.0156 15.9668C14.4633 15.9668 14.0156 15.5191 14.0156 14.9668C14.0156 14.4145 14.4633 13.9668 15.0156 13.9668C15.5679 13.9668 16.0156 14.4145 16.0156 14.9668ZM15.0156 12.9658C15.5679 12.9658 16.0156 12.5181 16.0156 11.9658C16.0156 11.4135 15.5679 10.9658 15.0156 10.9658C14.4633 10.9658 14.0156 11.4135 14.0156 11.9658C14.0156 12.5181 14.4633 12.9658 15.0156 12.9658Z"
16
+ fill="currentColor"
17
+ />
18
+ </svg>
19
+ </template>
20
+
21
+ <script lang="ts">
22
+ import { defineComponent } from 'vue'
23
+ export default defineComponent({
24
+ name: 'IconEduMathematics'
25
+ })
26
+ </script>
27
+ <style lang="scss">
28
+ @import '@explorer-1/common/src/scss/components/IconEduMathematics';
29
+ </style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="IconEduScience"
4
+ width="24"
5
+ height="25"
6
+ viewBox="0 0 24 25"
7
+ fill="none"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ aria-hidden="true"
10
+ focusable="false"
11
+ >
12
+ <path
13
+ fill-rule="evenodd"
14
+ clip-rule="evenodd"
15
+ d="M9.71182 2.48779H19.3927V4.665H18.2382V11.0285L23.2444 18.2567L23.4331 18.5399V22.5583H5.67145V20.7463C5.51297 20.7682 5.34772 20.7796 5.17572 20.7796C3.96651 20.7796 3.04916 20.2699 2.46868 19.414C1.91891 18.6033 1.71959 17.5565 1.71959 16.5164L1.72071 8.20572H0.566406V6.02851H9.67005V8.20572H8.51553L8.5146 14.424L10.8662 11.0285V4.665H9.71182V2.48779ZM3.89784 11.9068L3.89679 16.5164C3.89679 16.5164 3.89679 16.5163 3.89679 16.5164C3.89682 17.2272 4.03925 17.777 4.26295 18.1225C4.45939 18.4259 4.731 18.6024 5.17572 18.6024C5.42935 18.6024 5.71436 18.4161 5.98367 17.8695C6.23969 17.3499 6.33509 16.7765 6.33718 16.605L6.33722 16.3815L6.33826 11.9068H3.89784ZM13.0434 4.665V11.7011L12.8546 11.9842L11.4365 14.0319H17.6716L16.2535 11.9842L16.0647 11.7011V4.665H13.0434ZM7.84865 19.2481V20.3811H21.2559V19.2124L19.1765 16.2091H9.92812L7.9344 19.0886C7.90723 19.1421 7.87868 19.1953 7.84865 19.2481ZM6.33844 9.72963V8.20572H3.89802V9.72963H6.33844Z"
16
+ fill="currentColor"
17
+ />
18
+ </svg>
19
+ </template>
20
+
21
+ <script lang="ts">
22
+ import { defineComponent } from 'vue'
23
+ export default defineComponent({
24
+ name: 'IconEduScience'
25
+ })
26
+ </script>
27
+ <style lang="scss">
28
+ @import '@explorer-1/common/src/scss/components/IconEduScience';
29
+ </style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <svg
3
+ class="IconEduTechnology"
4
+ width="24"
5
+ height="25"
6
+ viewBox="0 0 24 25"
7
+ fill="none"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ aria-hidden="true"
10
+ focusable="false"
11
+ >
12
+ <path
13
+ fill-rule="evenodd"
14
+ clip-rule="evenodd"
15
+ d="M9.64604 2.54883H7.47264V4.84241H4.31897V7.99608H2.02539V10.1695H4.31897V11.4364H2.02539V13.6098H4.31897V14.8768H2.02539V17.0502H4.31897V20.2039H7.47264V22.4975H9.64604V20.2039H10.913V22.4975H13.0864V20.2039H14.3534V22.4975H16.5268V20.2039H19.6804V17.0502H21.974V14.8768H19.6804V13.6098H21.974V11.4364H19.6804V10.1695H21.974V7.99608H19.6804V4.84241H16.5268V2.54883H14.3534V4.84241H13.0864V2.54883H10.913V4.84241H9.64604V2.54883ZM9.96367 18.0305H6.49236V7.0158H9.93633L9.93633 10.7377H9.14742V10.785C8.95858 10.5817 8.68896 10.4546 8.38965 10.4546C7.81849 10.4546 7.35547 10.9176 7.35547 11.4888C7.35547 12.0599 7.81849 12.5229 8.38965 12.5229C8.75915 12.5229 9.08339 12.3292 9.26629 12.0377H11.2363L11.2363 7.0158H12.5762L12.5762 10.4923L14.6458 10.4923C14.8354 10.7266 15.1253 10.8765 15.4502 10.8765C16.0214 10.8765 16.4844 10.4134 16.4844 9.84229C16.4844 9.27112 16.0214 8.80811 15.4502 8.80811C15.1253 8.80811 14.8354 8.95794 14.6458 9.19229L13.8762 9.19229L13.8762 7.0158H17.507V18.0305H14.0656V13.9937H14.8545V13.9465C15.0434 14.1497 15.313 14.2769 15.6123 14.2769C16.1835 14.2769 16.6465 13.8138 16.6465 13.2427C16.6465 12.6715 16.1835 12.2085 15.6123 12.2085C15.2428 12.2085 14.9186 12.4023 14.7357 12.6938H12.7656L12.7656 18.0305H11.2637V14.2392H9.19407C9.00448 14.0048 8.71456 13.855 8.38965 13.855C7.81849 13.855 7.35547 14.318 7.35547 14.8892C7.35547 15.4603 7.81849 15.9233 8.38965 15.9233C8.71456 15.9233 9.00448 15.7735 9.19407 15.5392H9.96367L9.96367 18.0305Z"
16
+ fill="currentColor"
17
+ />
18
+ </svg>
19
+ </template>
20
+
21
+ <script lang="ts">
22
+ import { defineComponent } from 'vue'
23
+ export default defineComponent({
24
+ name: 'IconEduTechnology'
25
+ })
26
+ </script>
27
+ <style lang="scss">
28
+ @import '@explorer-1/common/src/scss/components/IconEduTechnology';
29
+ </style>
@@ -48,11 +48,16 @@ import IconSocialReddit from './IconSocialReddit.vue'
48
48
  import IconSocialTwitter from './IconSocialTwitter.vue'
49
49
  import IconSocialYoutube from './IconSocialYoutube.vue'
50
50
  import IconStop from './IconStop.vue'
51
- import IconSubject from './IconSubject.vue'
52
51
  import IconTime from './IconTime.vue'
53
52
  import IconUniversity from './IconUniversity.vue'
54
53
  import IconUser from './IconUser.vue'
55
54
  import IconVolume from './IconVolume.vue'
55
+ import IconEduArt from './IconEduArt.vue'
56
+ import IconEduEnglishLanguageArts from './IconEduEnglishLanguageArts.vue'
57
+ import IconEduEngineering from './IconEduEngineering.vue'
58
+ import IconEduMathematics from './IconEduMathematics.vue'
59
+ import IconEduScience from './IconEduScience.vue'
60
+ import IconEduTechnology from './IconEduTechnology.vue'
56
61
 
57
62
  export default {
58
63
  title: 'Foundations/Icons',
@@ -111,7 +116,9 @@ export default {
111
116
  IconTime,
112
117
  IconUniversity,
113
118
  IconUser,
114
- IconVolume
119
+ IconVolume,
120
+ IconEduMathematics,
121
+ IconEduScience
115
122
  },
116
123
  parameters: {
117
124
  docs: {
@@ -441,15 +448,45 @@ export const Profile = {
441
448
  template: '<IconProfile />'
442
449
  })
443
450
  }
444
- export const Subject = {
445
- render: () => ({
446
- components: { IconSubject },
447
- template: '<IconSubject />'
448
- })
449
- }
450
451
  export const Volume = {
451
452
  render: () => ({
452
453
  components: { IconVolume },
453
454
  template: '<IconVolume />'
454
455
  })
455
456
  }
457
+ export const EduArt = {
458
+ render: () => ({
459
+ components: { IconEduArt },
460
+ template: '<IconEduArt />'
461
+ })
462
+ }
463
+ export const EduEngineering = {
464
+ render: () => ({
465
+ components: { IconEduEngineering },
466
+ template: '<IconEduEngineering />'
467
+ })
468
+ }
469
+ export const EduEnglishLanguageArts = {
470
+ render: () => ({
471
+ components: { IconEduEnglishLanguageArts },
472
+ template: '<IconEduEnglishLanguageArts />'
473
+ })
474
+ }
475
+ export const EduMathematics = {
476
+ render: () => ({
477
+ components: { IconEduMathematics },
478
+ template: '<IconEduMathematics />'
479
+ })
480
+ }
481
+ export const EduScience = {
482
+ render: () => ({
483
+ components: { IconEduScience },
484
+ template: '<IconEduScience />'
485
+ })
486
+ }
487
+ export const EduTechnology = {
488
+ render: () => ({
489
+ components: { IconEduTechnology },
490
+ template: '<IconEduTechnology />'
491
+ })
492
+ }
@@ -7,7 +7,8 @@ import {
7
7
  EduResourcesGradeLevel,
8
8
  EduResourcesTime
9
9
  } from './../../interfaces'
10
- import IconSubject from './../Icons/IconSubject.vue'
10
+
11
+ import EduSubjectIcon from './../EduSubjectIcon/EduSubjectIcon.vue'
11
12
  import IconProfile from './../Icons/IconProfile.vue'
12
13
  import IconTime from './../Icons/IconTime.vue'
13
14
 
@@ -96,7 +97,10 @@ const themeVariant = computed(() => {
96
97
  class="MetaPanelItem-icon"
97
98
  :class="iconColor"
98
99
  >
99
- <IconSubject class="text-[2em] md:text-[2.4em]" />
100
+ <EduSubjectIcon
101
+ :subject="primarySubject?.subject"
102
+ class="text-[1.3em] md:text-[1.6em]"
103
+ />
100
104
  </div>
101
105
  <div>
102
106
  <div
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import { computed } from 'vue'
3
3
  import type { EduResourceCardObject } from './../../interfaces.ts'
4
- import IconSubject from './../Icons/IconSubject.vue'
4
+ import EduSubjectIcon from './../EduSubjectIcon/EduSubjectIcon.vue'
5
5
  import IconProfile from './../Icons/IconProfile.vue'
6
6
  import IconTime from './../Icons/IconTime.vue'
7
7
  import {} from './../../utils/mixins'
@@ -42,14 +42,18 @@ const time = computed(() => {
42
42
  <template>
43
43
  <div
44
44
  class="MetadataEduResource"
45
- :class="{ '-compact text-sm xl:text-base': props.compact, 'text-body-lg': !props.compact }"
45
+ :class="{
46
+ '-compact text-sm xl:text-base': props.compact,
47
+ 'text-body-lg': !props.compact
48
+ }"
46
49
  >
47
50
  <div
48
51
  v-if="primarySubject"
49
52
  class="MetadataEduResourceItem"
50
53
  >
51
- <IconSubject
52
- class="MetadataEduResourceIcon text-[1.25em]"
54
+ <EduSubjectIcon
55
+ :subject="primarySubject"
56
+ class="MetadataEduResourceIcon text-[.85em] -mt-px"
53
57
  :class="iconClass"
54
58
  />
55
59
  <span>
@@ -3,7 +3,8 @@
3
3
  v-if="enabled"
4
4
  id="NavJumpMenu"
5
5
  ref="NavJumpMenuRef"
6
- class="NavJumpMenu -hide-until-threshold"
6
+ class="NavJumpMenu"
7
+ :class="{ '-ready': initialized }"
7
8
  :invert="invert"
8
9
  jump-menu
9
10
  >
@@ -36,7 +37,7 @@
36
37
  </NavSecondary>
37
38
  </template>
38
39
  <script setup lang="ts">
39
- import { computed, defineExpose, ref, onMounted, watch } from 'vue'
40
+ import { computed, defineExpose, ref, onMounted, onUnmounted, watch } from 'vue'
40
41
  import { mixinUpdateSecondary } from './../../utils/mixins'
41
42
  import { useRoute } from 'vue-router'
42
43
  import NavSecondary from './../NavSecondary/NavSecondary.vue'
@@ -72,6 +73,8 @@ const props = withDefaults(defineProps<NavJumpMenuProps>(), {
72
73
  // stepClasses: 'text-primary'
73
74
  })
74
75
 
76
+ const initialized = ref(false)
77
+
75
78
  const NavJumpMenuRef = ref()
76
79
 
77
80
  const theJumpLinks = computed(() => {
@@ -100,6 +103,10 @@ const theJumpLinks = computed(() => {
100
103
  return []
101
104
  })
102
105
 
106
+ const initializeJumpMenu = () => {
107
+ initialized.value = true
108
+ }
109
+
103
110
  const theBreadcrumbs = computed(() => {
104
111
  let breadcrumb = undefined
105
112
  const rootItem = props.title
@@ -127,6 +134,11 @@ defineExpose({
127
134
  })
128
135
  onMounted(() => {
129
136
  mixinUpdateSecondary(theBreadcrumbs.value, true)
137
+ // ensures jump menu isn't visible during route changes
138
+ setTimeout(initializeJumpMenu, 500)
139
+ })
140
+ onUnmounted(() => {
141
+ initialized.value = false
130
142
  })
131
143
 
132
144
  const route = useRoute()
@@ -142,12 +154,9 @@ watch(
142
154
  </script>
143
155
  <style lang="scss">
144
156
  .NavJumpMenu {
145
- &.-hide-until-threshold {
146
- @apply opacity-0 h-0 transition-none overflow-visible pointer-events-none;
147
- &.-is-sticky,
148
- &.-is-sticky-offset {
149
- @apply opacity-100 transition-all pointer-events-auto;
150
- }
157
+ @apply invisible transition-all overflow-visible -mb-[3.7rem] z-30 fixed #{!important};
158
+ &.-ready {
159
+ @apply visible #{!important};
151
160
  }
152
161
  .NavSecondaryLink.secondary-root {
153
162
  span {
@@ -6,7 +6,8 @@
6
6
  class="NavSecondary"
7
7
  :class="{
8
8
  'has-intro': hasIntro,
9
- '!bg-transparent': invert
9
+ '!bg-transparent border-none': invert,
10
+ '-scrolled-up': scrollDirection === 'up'
10
11
  }"
11
12
  >
12
13
  <div
@@ -14,7 +15,7 @@
14
15
  :class="{ 'bg-gradient-to-r from-black to-primary bg-transparent to-90% text-white': invert }"
15
16
  >
16
17
  <div
17
- :class="`nav-secondary-container edu:border-0 lg:container lg:px-0 lg:whitespace-normal lg:overflow-visible relative px-4 pb-0 mx-auto overflow-x-auto text-sm font-medium whitespace-nowrap ${invert ? 'border-0' : 'border-t border-gray-mid text-gray-mid-dark border-opacity-50'}`"
18
+ :class="`nav-secondary-container edu:border-0 lg:container lg:px-0 lg:whitespace-normal lg:overflow-visible relative px-4 pb-0 mx-auto overflow-x-auto text-sm font-medium whitespace-nowrap ${invert ? 'border-0' : 'border-t border-gray-mid text-gray-mid-dark border-opacity-50'}`"
18
19
  >
19
20
  <div class="lg:ml-0 2xl:-mr-3 lg:justify-end flex -ml-3">
20
21
  <template v-for="(item, index) in theBreadcrumb">
@@ -90,12 +91,16 @@ export default defineComponent({
90
91
  stickyElement?: HTMLElement
91
92
  observer?: IntersectionObserver
92
93
  observerOffset?: IntersectionObserver
94
+ scrollDirection?: string
95
+ posY: number
93
96
  } {
94
97
  return {
95
98
  isSticky: false,
96
99
  stickyElement: undefined,
97
100
  observer: undefined,
98
- observerOffset: undefined
101
+ observerOffset: undefined,
102
+ scrollDirection: undefined,
103
+ posY: 0
99
104
  }
100
105
  },
101
106
  computed: {
@@ -127,6 +132,7 @@ export default defineComponent({
127
132
  if (!this.jumpMenu) {
128
133
  mixinHighlightPrimary(false)
129
134
  }
135
+ window.addEventListener('scroll', this.handleScroll)
130
136
  }
131
137
 
132
138
  if (
@@ -140,6 +146,9 @@ export default defineComponent({
140
146
  this.checkSticky()
141
147
  }
142
148
  },
149
+ unmounted() {
150
+ window.removeEventListener('scroll', this.handleScroll)
151
+ },
143
152
  methods: {
144
153
  isExternal(path: string): boolean {
145
154
  if (path && path.startsWith('http')) {
@@ -147,20 +156,21 @@ export default defineComponent({
147
156
  }
148
157
  return false
149
158
  },
159
+ handleScroll() {
160
+ var scrollY = window.scrollY
161
+ if (scrollY > this.posY) {
162
+ this.scrollDirection = 'down'
163
+ } else {
164
+ this.scrollDirection = 'up'
165
+ }
166
+ this.posY = scrollY
167
+ },
150
168
  initIntersectionObservers() {
151
169
  this.stickyElement = this.$refs.NavSecondary as HTMLElement
152
170
  this.observer = new IntersectionObserver(
153
171
  ([e]) => {
154
172
  e.target.classList.toggle('-is-sticky', e.intersectionRatio === 0)
155
173
  },
156
- {
157
- threshold: [0]
158
- }
159
- )
160
- this.observerOffset = new IntersectionObserver(
161
- ([e]) => {
162
- e.target.classList.toggle('-is-sticky-offset', e.intersectionRatio === 0)
163
- },
164
174
  {
165
175
  threshold: [0],
166
176
  rootMargin: this.themeStore.isEdu ? '-73px 0px 0px 0px' : '-113px 0px 0px 0px'
@@ -170,7 +180,6 @@ export default defineComponent({
170
180
  checkSticky() {
171
181
  if (this.stickyElement) {
172
182
  if (this.observer) this.observer.observe(this.stickyElement)
173
- if (this.observerOffset) this.observerOffset.observe(this.stickyElement)
174
183
  }
175
184
  }
176
185
  }
@@ -180,7 +189,6 @@ export default defineComponent({
180
189
  .NavSecondary {
181
190
  top: -1px; // for intersection observer to work
182
191
  @apply sticky z-40 w-full bg-white border-b border-gray-mid border-opacity-0 transition-border-opacity duration-150 edu:duration-300 ease-in;
183
- @apply hidden;
184
192
  @screen lg {
185
193
  @apply block;
186
194
  }
@@ -191,8 +199,7 @@ export default defineComponent({
191
199
  }
192
200
  }
193
201
 
194
- &.-is-sticky,
195
- &.-is-sticky-offset {
202
+ &.-is-sticky {
196
203
  @apply border-gray-mid border-opacity-50;
197
204
  }
198
205
 
@@ -216,17 +223,16 @@ export default defineComponent({
216
223
  // change sticky point if global nav is showing
217
224
  .header-sticky-showing & {
218
225
  @apply top-18;
226
+ @screen lg {
227
+ @apply top-28;
228
+ }
219
229
 
220
- &.-is-sticky-offset {
221
- @apply border-gray-mid border-opacity-50 transition-all;
222
-
230
+ &.-scrolled-up {
231
+ @apply border-gray-mid border-opacity-50;
223
232
  .nav-secondary-container {
224
233
  @apply border-gray-mid border-opacity-50;
225
234
  }
226
235
  }
227
- @screen lg {
228
- @apply top-28;
229
- }
230
236
  }
231
237
  }
232
238
  // since we depend on a body class, the edu: prefix won't work as usual and requires the below line
@@ -89,7 +89,7 @@ const buttonClass = computed(() => {
89
89
  })
90
90
  </script>
91
91
  <template>
92
- <div class="ShareButtonsEdu relative z-30 flex flex-row items-start border-collapse print:hidden">
92
+ <div class="ShareButtonsEdu relative z-20 flex flex-row items-start border-collapse print:hidden">
93
93
  <BaseButton
94
94
  variant="social"
95
95
  :class="buttonClass"
@@ -54,6 +54,14 @@ const computedClass = computed((): string => {
54
54
  class="ThemeEdu ThemeVariantLight"
55
55
  :class="computedClass"
56
56
  >
57
+ <NavJumpMenu
58
+ v-if="data.showJumpMenu && !data.breadcrumb"
59
+ ref="PageEduCollectionsDetailJumpMenu"
60
+ :title="data.title"
61
+ :blocks="data.body"
62
+ dropdown-text="In this collection"
63
+ />
64
+
57
65
  <!-- hero large -->
58
66
  <HeroLarge
59
67
  v-if="!heroInline && data.heroImage"
@@ -72,14 +80,6 @@ const computedClass = computed((): string => {
72
80
  :has-intro="data.heroImage && !heroInline ? true : false"
73
81
  />
74
82
 
75
- <NavJumpMenu
76
- v-if="data.showJumpMenu && !data.breadcrumb"
77
- ref="PageEduCollectionsDetailJumpMenu"
78
- :title="data.title"
79
- :blocks="data.body"
80
- dropdown-text="In this collection"
81
- />
82
-
83
83
  <LayoutHelper
84
84
  v-if="heroInline || !data.heroImage"
85
85
  indent="col-2"
@@ -98,6 +98,14 @@ export default defineComponent({
98
98
  itemprop="image"
99
99
  :content="data.thumbnailImage.original"
100
100
  />
101
+
102
+ <NavJumpMenu
103
+ v-if="data.showJumpMenu"
104
+ :title="data.title"
105
+ :blocks="data.body"
106
+ dropdown-text="In this article"
107
+ />
108
+
101
109
  <!-- hero title -->
102
110
  <HeroLarge
103
111
  v-if="heroTitle && theHero"
@@ -149,15 +157,7 @@ export default defineComponent({
149
157
  :image="data.thumbnailImage?.original"
150
158
  />
151
159
  </LayoutHelper>
152
-
153
- <NavJumpMenu
154
- v-if="data.showJumpMenu"
155
- :title="data.title"
156
- :blocks="data.body"
157
- dropdown-text="In this article"
158
- />
159
160
  <!-- inline hero content -->
160
-
161
161
  <LayoutHelper
162
162
  v-if="!heroEmpty && heroInline"
163
163
  indent="col-2"
@@ -69,6 +69,12 @@ const { data } = reactive(props)
69
69
  itemscope
70
70
  itemtype="http://schema.org/MediaGallery"
71
71
  >
72
+ <NavJumpMenu
73
+ v-if="data.showJumpMenu && jumpMenuHeadings?.length"
74
+ :title="data.title"
75
+ :jump-links="jumpMenuHeadings"
76
+ />
77
+
72
78
  <!-- Detail Headline -->
73
79
  <LayoutHelper
74
80
  indent="col-2"
@@ -97,12 +103,6 @@ const { data } = reactive(props)
97
103
  />
98
104
  </LayoutHelper>
99
105
 
100
- <NavJumpMenu
101
- v-if="data.showJumpMenu && jumpMenuHeadings?.length"
102
- :title="data.title"
103
- :jump-links="jumpMenuHeadings"
104
- />
105
-
106
106
  <div
107
107
  v-for="(item, index) in data.galleryItems"
108
108
  :id="headingIdGetter(item.blockId)"
@@ -285,6 +285,13 @@ const computedClass = computed((): string => {
285
285
  class="ThemeVariantLight"
286
286
  :class="computedClass"
287
287
  >
288
+ <NavJumpMenu
289
+ ref="PageEduLessonJumpMenu"
290
+ :title="data.title"
291
+ :blocks="consolidatedBlocks"
292
+ dropdown-text="In this lesson"
293
+ />
294
+
288
295
  <!-- hero title -->
289
296
  <HeroLarge
290
297
  v-if="heroTitle && theHero"
@@ -365,13 +372,6 @@ const computedClass = computed((): string => {
365
372
  />
366
373
  </LayoutHelper>
367
374
 
368
- <NavJumpMenu
369
- ref="PageEduLessonJumpMenu"
370
- :title="data.title"
371
- :blocks="consolidatedBlocks"
372
- dropdown-text="In this lesson"
373
- />
374
-
375
375
  <template
376
376
  v-for="(value, _key) in consolidatedSections"
377
377
  :key="_key"
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import { computed, reactive, ref } from 'vue'
3
+ import { useRoute } from 'vue-router'
3
4
  import type {
4
5
  ImageObject,
5
6
  PageEduResourcesObject,
@@ -26,7 +27,7 @@ import AboutTheAuthor from './../../../components/AboutTheAuthor/AboutTheAuthor.
26
27
 
27
28
  import { HeadingLevel } from '../../../components/BaseHeading/BaseHeading.vue'
28
29
  import StudentProjectBadge from '@explorer-1/common/src/images/svg/student-project-badge.svg'
29
-
30
+ const route = useRoute()
30
31
  interface EduStudentProjectSectionObject extends PageEduStudentProjectSectionProps {
31
32
  type?: string
32
33
  }
@@ -243,6 +244,18 @@ const computedClass = computed((): string => {
243
244
  class="ThemeVariantLight PageEduStudentProject"
244
245
  :class="computedClass"
245
246
  >
247
+ <NavJumpMenu
248
+ v-if="stepHeadings?.length"
249
+ :key="route.fullPath"
250
+ ref="PageEduStudentProjectJumpMenu"
251
+ :title="data.title"
252
+ :blocks="stepHeadings"
253
+ dropdown-text="Project Steps"
254
+ heading-level="h3"
255
+ :steps-numbering="true"
256
+ steps-classes="text-secondary"
257
+ />
258
+
246
259
  <!-- hero title -->
247
260
  <HeroLarge
248
261
  v-if="heroTitle && theHero"
@@ -371,17 +384,6 @@ const computedClass = computed((): string => {
371
384
  />
372
385
  </LayoutHelper>
373
386
 
374
- <NavJumpMenu
375
- v-if="stepHeadings?.length"
376
- ref="PageEduStudentProjectJumpMenu"
377
- :title="data.title"
378
- :blocks="stepHeadings"
379
- dropdown-text="Project Steps"
380
- heading-level="h3"
381
- :steps-numbering="true"
382
- steps-classes="text-secondary"
383
- />
384
-
385
387
  <template
386
388
  v-for="(value, _key) in consolidatedSections"
387
389
  :key="_key"
@@ -92,6 +92,7 @@ const computedClass = computed((): string => {
92
92
  :blocks="data.body"
93
93
  dropdown-text="In this Teachable Moment"
94
94
  />
95
+
95
96
  <!-- hero title -->
96
97
  <HeroLarge
97
98
  v-if="heroTitle && theHero"
@@ -1,38 +0,0 @@
1
- <template>
2
- <svg
3
- aria-hidden="true"
4
- focusable="false"
5
- width="46"
6
- height="41"
7
- viewBox="0 0 46 41"
8
- fill="none"
9
- class="IconSubject"
10
- xmlns="http://www.w3.org/2000/svg"
11
- >
12
- <g>
13
- <path
14
- fill-rule="evenodd"
15
- clip-rule="evenodd"
16
- d="M19.432 29.3991C20.5448 29.4683 21.6743 29.5115 22.8336 29.5115C23.9891 29.5115 25.1213 29.4766 26.2281 29.4074C25.1136 30.9099 23.9719 32.2618 22.8336 33.4488C21.6948 32.2585 20.5504 30.9038 19.432 29.3991ZM34.3335 28.2116C34.5576 29.0992 34.7452 29.9614 34.8692 30.7715C35.1713 32.7687 35.1664 34.5013 34.872 35.8239C34.2981 38.432 32.125 39.2427 30.047 38.6108C28.7499 38.2162 27.2452 37.3452 25.6686 36.0829C25.0289 35.5705 24.3754 34.9761 23.7207 34.3425C25.1241 32.8788 26.5225 31.1777 27.865 29.2813C30.1881 29.0649 32.3618 28.6986 34.3335 28.2116ZM32.2002 22.0292C32.9467 23.7496 33.546 25.4192 34.0076 27.0046C32.4077 27.3964 30.6585 27.7047 28.7997 27.9205C29.4134 26.9897 30.0182 26.0323 30.5976 25.0268C31.1803 24.0241 31.7044 23.0236 32.2002 22.0292ZM13.4654 22.0269C13.9612 23.0208 14.4891 24.0241 15.068 25.0268C15.6474 26.0323 16.2528 26.9897 16.8665 27.9177C15.0043 27.7014 13.2606 27.3876 11.6586 26.9952C12.1201 25.4126 12.7227 23.7447 13.4654 22.0269ZM10.4461 14.4201C11.0106 16.3664 11.7831 18.4233 12.7543 20.5361C11.7798 22.6573 11.01 24.7214 10.4461 26.6721C9.56678 26.4241 8.7284 26.1563 7.96362 25.8569C6.08212 25.122 4.58576 24.2482 3.5858 23.3318C1.61132 21.5278 1.99482 19.2479 3.5858 17.7604C4.57746 16.8351 6.08212 15.9707 7.96362 15.2353C8.72785 14.9392 9.56678 14.6708 10.4461 14.4201ZM28.8107 13.175C30.6701 13.3914 32.4077 13.7057 34.0042 14.0975C33.5433 15.6802 32.944 17.3464 32.2002 19.0641C31.7044 18.0691 31.1798 17.0697 30.5976 16.0664C30.0215 15.0659 29.4244 14.1003 28.8107 13.175ZM16.867 13.175C16.2533 14.103 15.6474 15.0604 15.0685 16.0659C14.4925 17.0664 13.9562 18.0631 13.4637 19.0553C12.72 17.3403 12.1234 15.6774 11.6619 14.0975C13.2645 13.7057 15.0082 13.3908 16.867 13.175ZM22.8336 12.8347C24.3233 12.8347 25.7787 12.8983 27.1794 13.014C27.984 14.1728 28.7681 15.3974 29.5141 16.6918C30.2584 17.9828 30.9324 19.2744 31.5317 20.5483C30.9319 21.8189 30.2578 23.1099 29.5141 24.4043C28.7681 25.6926 27.9867 26.92 27.1854 28.076C25.7815 28.1944 24.3289 28.2575 22.8336 28.2575C21.34 28.2575 19.888 28.1972 18.484 28.0821C17.6827 26.9227 16.9024 25.6953 16.1554 24.4043C15.4089 23.1132 14.7371 21.8216 14.1355 20.5511C14.7404 19.2766 15.4089 17.9856 16.1554 16.6912C16.9024 15.3968 17.6827 14.1689 18.484 13.0134C19.888 12.8983 21.34 12.8347 22.8336 12.8347ZM22.8364 7.64116C23.978 8.83205 25.1185 10.1895 26.2375 11.6941C25.1246 11.625 23.9952 11.5785 22.8342 11.5785C21.6748 11.5785 20.5454 11.625 19.4325 11.6941C20.5504 10.1895 21.6948 8.83149 22.8364 7.64116ZM34.8725 5.26935C35.1807 6.58918 35.1719 8.32404 34.8697 10.3212C34.7458 11.1314 34.5582 11.9963 34.3341 12.8839C32.3684 12.3997 30.1975 12.0361 27.8827 11.8203C26.5336 9.91502 25.1307 8.21779 23.724 6.75021C24.3781 6.11382 25.0295 5.52225 25.6692 5.01258C27.2463 3.75031 28.7593 2.90529 30.0475 2.4814C32.5206 1.66959 34.3651 3.08791 34.8725 5.26935ZM9.57508 4.98989C9.21538 6.53439 9.23807 8.41092 9.55793 10.5149C9.68686 11.3737 9.88332 12.2791 10.1163 13.2065C9.19712 13.4694 8.31558 13.7516 7.50819 14.0687C5.52541 14.8412 3.88518 15.7577 2.72971 16.8417C0.264935 19.1565 0.587559 22.2455 2.72971 24.2521C3.88795 25.3356 5.52541 26.252 7.50819 27.0279C10.3183 28.123 13.855 28.9072 17.7951 29.273C19.1409 31.1755 20.5415 32.8761 21.9482 34.3431C21.2908 34.9767 20.6361 35.571 19.9964 36.0835C18.4198 37.3457 16.9124 38.2018 15.618 38.6113C13.1306 39.3955 11.3415 38.0203 10.8219 35.9396C10.5114 34.6801 10.4876 33.0199 10.7505 31.1119L9.50535 30.9392C9.22866 32.9563 9.23143 34.7553 9.6033 36.2329C10.4101 39.4558 13.2462 40.6428 15.9899 39.8072C17.5062 39.349 19.1199 38.3916 20.7833 37.063C21.4607 36.5212 22.1469 35.8986 22.8336 35.2329C23.5215 35.8986 24.2077 36.5212 24.8856 37.063C26.5457 38.3916 28.1594 39.349 29.6757 39.8072C32.9124 40.7867 35.4287 38.9633 36.0938 36.1039C36.4546 34.5589 36.4308 32.6851 36.1115 30.5806C35.6567 27.5973 34.5637 24.142 32.9124 20.5483C33.8831 18.4299 34.6561 16.3691 35.2211 14.4201C36.0999 14.6708 36.9416 14.9392 37.7025 15.2358C39.5846 15.9707 41.0831 16.8445 42.0837 17.7609C44.0089 19.5251 43.715 21.7586 42.1667 23.2516C41.2326 24.1536 39.8093 25.0014 38.0251 25.7302L38.5005 26.8912C40.3853 26.1214 41.9359 25.2233 43.0344 24.1619C45.4206 21.8532 45.0315 18.8035 42.9359 16.8412C41.7776 15.7571 40.1435 14.8407 38.1602 14.0682C37.3506 13.7516 36.4712 13.4689 35.5493 13.206C35.7828 12.2785 35.9787 11.3732 36.1115 10.5143C36.4308 8.40981 36.4546 6.53384 36.0938 4.98934C35.3219 1.69781 32.4858 0.432772 29.6757 1.28554C28.1594 1.74651 26.5457 2.70054 24.8856 4.03199C22.5315 5.9146 20.0839 8.58911 17.7956 11.8198C15.478 12.0361 13.3054 12.3964 11.3332 12.8834C11.1113 11.9957 10.9242 11.1308 10.8003 10.3206C10.4948 8.32348 10.5003 6.59194 10.7942 5.2688C11.3592 2.72046 13.446 1.85608 15.5096 2.44931C16.7575 2.80735 18.2073 3.61639 19.7297 4.79898L20.4994 3.80731C18.8908 2.55666 17.3258 1.68895 15.8643 1.24459C12.777 0.30328 10.2264 2.19088 9.57508 4.98989Z"
17
- fill="currentColor"
18
- stroke="currentColor"
19
- />
20
- <path
21
- fill-rule="evenodd"
22
- clip-rule="evenodd"
23
- d="M22.8301 17.3904C24.5826 17.3904 25.9888 18.7976 25.9888 20.5496C25.9888 22.2989 24.5826 23.7056 22.8301 23.7056C21.0775 23.7056 19.673 22.2989 19.673 20.5496C19.6736 18.7976 21.0775 17.3904 22.8301 17.3904ZM22.8301 16.1309C20.3996 16.1309 18.4141 18.117 18.4141 20.5502C18.4141 22.9801 20.4002 24.9596 22.8301 24.9596C25.26 24.9596 27.2422 22.9795 27.2422 20.5502C27.2422 18.117 25.26 16.1309 22.8301 16.1309Z"
24
- fill="currentColor"
25
- stroke="currentColor"
26
- />
27
- </g>
28
- </svg>
29
- </template>
30
- <script lang="ts">
31
- import { defineComponent } from 'vue'
32
- export default defineComponent({
33
- name: 'IconSubject'
34
- })
35
- </script>
36
- <style lang="scss">
37
- @import '@explorer-1/common/src/scss/components/IconSubject';
38
- </style>