@icvdeveloper/common-module 1.4.14 → 2.1.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 (189) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/module.d.mts +1051 -2
  3. package/dist/module.d.ts +1051 -2
  4. package/dist/module.json +1 -1
  5. package/dist/module.mjs +29 -15
  6. package/dist/runtime/@types/components.d.ts +22 -0
  7. package/dist/runtime/@types/configVariables.d.ts +6 -0
  8. package/dist/runtime/analytics.d.ts +1 -6
  9. package/dist/runtime/assets/scss/_agenda.css +1 -0
  10. package/dist/runtime/assets/scss/_animations.css +1 -0
  11. package/dist/runtime/assets/scss/_container_variants.css +1 -0
  12. package/dist/runtime/assets/scss/_custom.css +3 -0
  13. package/dist/runtime/assets/scss/_forms.css +1 -0
  14. package/dist/runtime/assets/scss/_header.css +0 -0
  15. package/dist/runtime/assets/scss/_index_production.css +1 -0
  16. package/dist/runtime/assets/scss/_transitions.css +1 -0
  17. package/dist/runtime/assets/scss/_variables.css +1 -0
  18. package/dist/runtime/assets/scss/_variables2.css +0 -0
  19. package/dist/runtime/assets/scss/_webcast.css +1 -0
  20. package/dist/runtime/assets/scss/index.css +1 -705
  21. package/dist/runtime/assets/svg/icon-minus.svg +6 -0
  22. package/dist/runtime/assets/svg/icon-video.svg +6 -0
  23. package/dist/runtime/components/affiliates/AffiliateModal.vue +66 -0
  24. package/dist/runtime/components/affiliates/AffiliatePage.vue +329 -159
  25. package/dist/runtime/components/agenda/AgendaList.vue +18 -14
  26. package/dist/runtime/components/agenda/AgendaTabbed.vue +60 -54
  27. package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +8 -3
  28. package/dist/runtime/components/agenda/components/Calendar.vue +23 -18
  29. package/dist/runtime/components/agenda/components/Favorite.vue +46 -0
  30. package/dist/runtime/components/agenda/components/InfoLink.vue +15 -5
  31. package/dist/runtime/components/agenda/components/PlayIcon.vue +3 -5
  32. package/dist/runtime/components/agenda/components/PresentationLink.vue +37 -19
  33. package/dist/runtime/components/agenda/components/Sponsor.vue +31 -24
  34. package/dist/runtime/components/auth/PasswordReset.vue +20 -5
  35. package/dist/runtime/components/auth/Registration.vue +14 -4
  36. package/dist/runtime/components/auth/Ucc.vue +44 -27
  37. package/dist/runtime/components/chat/ChatConversationList.vue +108 -0
  38. package/dist/runtime/components/chat/ChatCreateConversation.vue +199 -0
  39. package/dist/runtime/components/chat/ChatCreateGroupConversation.vue +154 -0
  40. package/dist/runtime/components/chat/ChatHeader.vue +97 -0
  41. package/dist/runtime/components/chat/ChatMessage.vue +40 -0
  42. package/dist/runtime/components/chat/ChatShowConversation.vue +76 -0
  43. package/dist/runtime/components/chat/ChatWidget.vue +40 -0
  44. package/dist/runtime/components/chat/ChatWindow.vue +154 -0
  45. package/dist/runtime/components/chat/ChatWindow.vue.d.ts +6 -0
  46. package/dist/runtime/components/chat/MessageInput.vue +27 -0
  47. package/dist/runtime/components/chat/SearchInput.vue +32 -0
  48. package/dist/runtime/components/core/Accordion.vue +12 -12
  49. package/dist/runtime/components/core/AttendeeList.vue +31 -36
  50. package/dist/runtime/components/core/CountdownTimer.vue +68 -52
  51. package/dist/runtime/components/core/DynamicHtml.vue.d.ts +6 -9
  52. package/dist/runtime/components/core/Modal.vue +24 -22
  53. package/dist/runtime/components/core/ModalButton.vue +43 -0
  54. package/dist/runtime/components/core/Navbar.vue +33 -21
  55. package/dist/runtime/components/core/Navigation.vue +286 -0
  56. package/dist/runtime/components/core/SvgIcon.vue +34 -1
  57. package/dist/runtime/components/core/VButton.vue +35 -0
  58. package/dist/runtime/components/core/ZoomModal.vue +9 -3
  59. package/dist/runtime/components/events/EventHeader.vue +14 -4
  60. package/dist/runtime/components/events/ListEvents.vue +21 -22
  61. package/dist/runtime/components/forms/CheckboxGroup.vue +46 -0
  62. package/dist/runtime/components/forms/ErrorField.vue +11 -2
  63. package/dist/runtime/components/forms/Message.vue +1 -1
  64. package/dist/runtime/components/forms/RadioGroup.vue +50 -0
  65. package/dist/runtime/components/forms/SearchInput.vue +8 -2
  66. package/dist/runtime/components/forms/SelectDropDown.vue +47 -0
  67. package/dist/runtime/components/forms/SupportForm.vue +22 -11
  68. package/dist/runtime/components/forms/SwitchInput.vue +50 -30
  69. package/dist/runtime/components/forms/TextArea.vue +1 -1
  70. package/dist/runtime/components/forms/TextInput.vue +1 -1
  71. package/dist/runtime/components/layouts/Accordion.vue +11 -6
  72. package/dist/runtime/components/media/ArchivePlayerAndContentContainer.vue +24 -5
  73. package/dist/runtime/components/media/ArchiveVideoPlayer.vue +19 -23
  74. package/dist/runtime/components/media/PlayerAndContentContainer.vue +4 -1
  75. package/dist/runtime/components/media/WebcastVideoPlayer.vue +6 -18
  76. package/dist/runtime/components/media/components/AgendaPanel.vue +7 -6
  77. package/dist/runtime/components/media/components/ArchiveMediaContainer.vue +17 -15
  78. package/dist/runtime/components/media/components/CeCreditNotification.vue +8 -8
  79. package/dist/runtime/components/media/components/ContentArea.vue +59 -18
  80. package/dist/runtime/components/media/components/ContentTabs.vue +40 -28
  81. package/dist/runtime/components/media/components/DocumentsPanel.vue +19 -17
  82. package/dist/runtime/components/media/components/MediaContainer.vue +11 -13
  83. package/dist/runtime/components/media/components/OverviewPanel.vue +5 -2
  84. package/dist/runtime/components/media/components/PresentersPanel.vue +74 -55
  85. package/dist/runtime/components/media/components/SessionReporting.vue +5 -4
  86. package/dist/runtime/components/media/components/SponsorsPanel.vue +13 -12
  87. package/dist/runtime/components/presenters/PresenterListing.vue +33 -25
  88. package/dist/runtime/components/presenters/PresenterModal.vue +26 -21
  89. package/dist/runtime/components/presenters/Presenters.vue +139 -0
  90. package/dist/runtime/components/profile/Profile.vue +10 -6
  91. package/dist/runtime/components/profile/components/Sidebar.vue +1 -1
  92. package/dist/runtime/components/profile/components/SidebarNavItem.vue +2 -4
  93. package/dist/runtime/components/profile/tabs/Favorites.vue +5 -4
  94. package/dist/runtime/components/profile/tabs/GeneralInformation.vue +26 -16
  95. package/dist/runtime/components/profile/tabs/ProfileImage.vue +7 -6
  96. package/dist/runtime/components/registration/AlreadyRegisteredModal.vue +102 -0
  97. package/dist/runtime/components/registration/PaymentForm.vue +136 -0
  98. package/dist/runtime/components/registration/RegistrationForm.vue +417 -0
  99. package/dist/runtime/components/registration/RegistrationGroupSelect.vue +146 -0
  100. package/dist/runtime/components/registration/StripePaymentForm.vue +121 -0
  101. package/dist/runtime/components/support/FAQAccordion.vue +8 -7
  102. package/dist/runtime/composables/useAdobeLaunch.d.ts +2 -7
  103. package/dist/runtime/composables/useAdobeLaunch.mjs +2 -2
  104. package/dist/runtime/composables/useAgenda.d.ts +13 -1
  105. package/dist/runtime/composables/useAgenda.mjs +125 -25
  106. package/dist/runtime/composables/useApi.d.ts +1 -1
  107. package/dist/runtime/composables/useAuth.d.ts +1 -1
  108. package/dist/runtime/composables/useAuth.mjs +1 -1
  109. package/dist/runtime/composables/useClassBinding.d.ts +3 -1
  110. package/dist/runtime/composables/useConferenceHelpers.d.ts +7 -3
  111. package/dist/runtime/composables/useConferenceHelpers.mjs +26 -15
  112. package/dist/runtime/composables/useEventHooks.d.ts +29 -0
  113. package/dist/runtime/composables/useEventHooks.mjs +21 -0
  114. package/dist/runtime/composables/useEvents.d.ts +17 -1
  115. package/dist/runtime/composables/useEvents.mjs +35 -9
  116. package/dist/runtime/composables/useLogin.mjs +9 -5
  117. package/dist/runtime/composables/useNavigation.d.ts +1 -1
  118. package/dist/runtime/composables/useNavigation.mjs +4 -2
  119. package/dist/runtime/composables/usePresentation.d.ts +2 -2
  120. package/dist/runtime/composables/usePresentation.mjs +8 -7
  121. package/dist/runtime/composables/usePresenter.d.ts +2 -2
  122. package/dist/runtime/composables/usePresenters.d.ts +2 -2
  123. package/dist/runtime/composables/usePusher.d.ts +4 -0
  124. package/dist/runtime/composables/usePusher.mjs +38 -26
  125. package/dist/runtime/composables/useScripts.mjs +1 -1
  126. package/dist/runtime/composables/useStream.d.ts +2 -3
  127. package/dist/runtime/composables/useStream.mjs +8 -2
  128. package/dist/runtime/composables/useUcc.d.ts +1 -1
  129. package/dist/runtime/composables/useUcc.mjs +29 -23
  130. package/dist/runtime/enums/general.d.ts +4 -1
  131. package/dist/runtime/enums/general.mjs +4 -1
  132. package/dist/runtime/models/adobeLaunch.d.ts +6 -0
  133. package/dist/runtime/models/adobeLaunch.mjs +0 -0
  134. package/dist/runtime/models/analytics.d.ts +6 -0
  135. package/dist/runtime/models/analytics.mjs +0 -0
  136. package/dist/runtime/models/attendeeList.d.ts +1 -1
  137. package/dist/runtime/models/conference.d.ts +122 -91
  138. package/dist/runtime/models/conversation.d.ts +11 -13
  139. package/dist/runtime/models/document.d.ts +5 -5
  140. package/dist/runtime/models/globalConfig.d.ts +9 -3
  141. package/dist/runtime/models/group.d.ts +38 -8
  142. package/dist/runtime/models/icons.d.ts +8 -1
  143. package/dist/runtime/models/index.d.ts +20 -0
  144. package/dist/runtime/models/index.mjs +20 -0
  145. package/dist/runtime/models/link.d.ts +4 -4
  146. package/dist/runtime/models/loginParams.d.ts +5 -0
  147. package/dist/runtime/models/loginParams.mjs +0 -0
  148. package/dist/runtime/models/navigationConfig.d.ts +7 -7
  149. package/dist/runtime/models/pagination.d.ts +11 -11
  150. package/dist/runtime/models/portal.d.ts +15 -10
  151. package/dist/runtime/models/templateConfig.d.ts +13 -7
  152. package/dist/runtime/models/ucc.d.ts +22 -0
  153. package/dist/runtime/models/ucc.mjs +0 -0
  154. package/dist/runtime/models/user.d.ts +25 -12
  155. package/dist/runtime/models/vButton.d.ts +7 -0
  156. package/dist/runtime/models/vButton.mjs +0 -0
  157. package/dist/runtime/models/video.d.ts +5 -4
  158. package/dist/runtime/models/virtualPagesConfig.d.ts +223 -0
  159. package/dist/runtime/models/virtualPagesConfig.mjs +0 -0
  160. package/dist/runtime/plugin.mjs +18 -9
  161. package/dist/runtime/store/affiliates.d.ts +4 -1
  162. package/dist/runtime/store/affiliates.mjs +38 -0
  163. package/dist/runtime/store/attendeeList.d.ts +1 -1
  164. package/dist/runtime/store/auth.d.ts +3 -7
  165. package/dist/runtime/store/auth.mjs +6 -0
  166. package/dist/runtime/store/conferences.d.ts +3 -1
  167. package/dist/runtime/store/conferences.mjs +14 -9
  168. package/dist/runtime/store/conversations.d.ts +78 -10
  169. package/dist/runtime/store/conversations.mjs +255 -22
  170. package/dist/runtime/store/modalPlayerConfig.d.ts +27 -0
  171. package/dist/runtime/store/modalPlayerConfig.mjs +58 -0
  172. package/dist/runtime/store/navigationConfig.d.ts +1 -1
  173. package/dist/runtime/store/presentations.d.ts +2 -2
  174. package/dist/runtime/store/templateConfigs.d.ts +7 -6
  175. package/dist/runtime/store/templateConfigs.mjs +7 -6
  176. package/dist/runtime/store/user.mjs +0 -1
  177. package/dist/runtime/v3plusCommonPlugin.d.ts +1 -1
  178. package/dist/types.d.mts +3 -2
  179. package/dist/types.d.ts +3 -2
  180. package/package.json +12 -9
  181. package/dist/runtime/components/media/components/JsonApi.vue +0 -33
  182. package/dist/runtime/components/media/components/JsonApi.vue.d.ts +0 -16
  183. package/dist/runtime/components/media/components/PresentersPanel.vue.d.ts +0 -32
  184. package/dist/runtime/components/media/components/WindowContent.vue +0 -118
  185. package/dist/runtime/components/media/components/WindowContent.vue.d.ts +0 -50
  186. package/dist/runtime/components/media/components/WindowSlide.vue +0 -92
  187. package/dist/runtime/components/media/components/WindowSlide.vue.d.ts +0 -36
  188. package/dist/runtime/models/authUser.d.ts +0 -16
  189. /package/dist/runtime/{models/authUser.mjs → assets/scss/_footer.css} +0 -0
@@ -27,11 +27,17 @@ const zoomUrl = computed(() => {
27
27
  @trigger="showModal = false"
28
28
  >
29
29
  <template #modal-body>
30
- <iframe :src="zoomUrl" class="w-full h-full"></iframe>
30
+ <iframe
31
+ :src="zoomUrl"
32
+ class="w-full h-full"
33
+ />
31
34
  </template>
32
35
  </CommonModal>
33
- <a class="no-underline" href="javascript:null" @click="showModal = true">
34
- <slot name="modal-link"></slot>
36
+ <a
37
+ href="javascript:null"
38
+ @click="showModal = true"
39
+ >
40
+ <slot name="modal-link" />
35
41
  </a>
36
42
  </span>
37
43
  </template>
@@ -18,7 +18,6 @@ const props = withDefaults(defineProps<Props>(), {
18
18
  });
19
19
 
20
20
  // stores
21
- const conferenceStore = useConferencesStore();
22
21
  const { globalConfigValue, pagesConfigValue } = useTemplateConfigsStore();
23
22
 
24
23
  // reactive data
@@ -69,7 +68,10 @@ const mainBodyImage = computed(() => {
69
68
  </script>
70
69
 
71
70
  <template>
72
- <div :style="mainStyles" class="flex bg-color-2">
71
+ <div
72
+ :style="mainStyles"
73
+ class="flex bg-color-2"
74
+ >
73
75
  <div
74
76
  v-if="useEventText"
75
77
  class="text-center flex flex-1 flex-col items-center justify-center h-auto p-12"
@@ -122,12 +124,20 @@ const mainBodyImage = computed(() => {
122
124
  :href="getConferenceRegUrl()"
123
125
  :target="/^http/.test(getConferenceRegUrl()) ? '_blank' : '_self'"
124
126
  >
125
- <button class="btn" :class="hasOtherButton ? 'md:ml-4' : ''">
127
+ <button
128
+ class="btn"
129
+ :class="hasOtherButton ? 'md:ml-4' : ''"
130
+ >
126
131
  {{ getConferenceRegText() }}
127
132
  </button>
128
133
  </a>
129
134
  </div>
130
135
  </div>
131
- <img v-else :src="mainBodyImage" class="w-full h-auto" />
136
+ <img
137
+ v-else
138
+ :src="mainBodyImage"
139
+ class="w-full h-auto"
140
+ alt="Event header image"
141
+ >
132
142
  </div>
133
143
  </template>
@@ -230,7 +230,7 @@ const showLoginButton = computed((): boolean => {
230
230
  )
231
231
  "
232
232
  :src="conference.photo"
233
- />
233
+ >
234
234
  </div>
235
235
  <!-- event details container -->
236
236
  <div
@@ -259,7 +259,7 @@ const showLoginButton = computed((): boolean => {
259
259
  >
260
260
  <!-- event details -->
261
261
  <div
262
- :class="classBinding(classObject, 'eventDetails', 'flex-grow')"
262
+ :class="classBinding(classObject, 'eventDetails', 'grow')"
263
263
  >
264
264
  <template v-if="showBrand && getBrand(conference.affiliates)">
265
265
  <a
@@ -274,7 +274,7 @@ const showLoginButton = computed((): boolean => {
274
274
  classBinding(
275
275
  classObject,
276
276
  'eventBrand',
277
- 'text-base font-bold leading-tight tracking-wide mb-3'
277
+ 'text-base font-bold leading-tight tracking-wider mb-3'
278
278
  )
279
279
  "
280
280
  >
@@ -287,10 +287,9 @@ const showLoginButton = computed((): boolean => {
287
287
  eventPathPrefix
288
288
  ? eventPathPrefix + conference.id
289
289
  : `/${isUpcoming ? 'upcoming-events' : 'past-events'}/${
290
- conference.id
291
- }`
290
+ conference.id
291
+ }`
292
292
  "
293
- class="no-underline"
294
293
  >
295
294
  <h2
296
295
  :class="
@@ -309,7 +308,7 @@ const showLoginButton = computed((): boolean => {
309
308
  classBinding(
310
309
  classObject,
311
310
  'eventDate',
312
- 'text-base leading-normal tracking-wide font-light uppercase md:text-md lg:text-lg'
311
+ 'text-base leading-normal tracking-wider font-light uppercase md:text-md lg:text-lg'
313
312
  )
314
313
  "
315
314
  >
@@ -322,9 +321,9 @@ const showLoginButton = computed((): boolean => {
322
321
  <div
323
322
  v-if="
324
323
  isUpcoming &&
325
- showCountdown &&
326
- countdownPosition === Position.TOP &&
327
- pagesConfigValue('main.countdown_timer')
324
+ showCountdown &&
325
+ countdownPosition === Position.TOP &&
326
+ pagesConfigValue('main.countdown_timer')
328
327
  "
329
328
  :class="
330
329
  classBinding(
@@ -339,7 +338,7 @@ const showLoginButton = computed((): boolean => {
339
338
  :timezone="conference.timezone"
340
339
  :is-compact="true"
341
340
  :class-object="classObject.components.countdownTimer"
342
- ></CommonCountdownTimer>
341
+ />
343
342
  </div>
344
343
  </div>
345
344
  <!-- event button, countdown timer, and sponsors container -->
@@ -475,9 +474,9 @@ const showLoginButton = computed((): boolean => {
475
474
  <div
476
475
  v-if="
477
476
  isUpcoming &&
478
- showCountdown &&
479
- countdownPosition === Position.RIGHT &&
480
- pagesConfigValue('main.countdown_timer')
477
+ showCountdown &&
478
+ countdownPosition === Position.RIGHT &&
479
+ pagesConfigValue('main.countdown_timer')
481
480
  "
482
481
  class="flex-auto md:flex mt-3 md:mt-2"
483
482
  :class="
@@ -493,16 +492,16 @@ const showLoginButton = computed((): boolean => {
493
492
  :timezone="conference.timezone"
494
493
  :is-compact="true"
495
494
  :class-object="classObject.components.countdownTimer"
496
- ></CommonCountdownTimer>
495
+ />
497
496
  </div>
498
497
  </div>
499
498
  <!-- countdown timer - bottom-aligned -->
500
499
  <div
501
500
  v-if="
502
501
  isUpcoming &&
503
- showCountdown &&
504
- countdownPosition === Position.BOTTOM &&
505
- pagesConfigValue('main.countdown_timer')
502
+ showCountdown &&
503
+ countdownPosition === Position.BOTTOM &&
504
+ pagesConfigValue('main.countdown_timer')
506
505
  "
507
506
  :class="
508
507
  classBinding(
@@ -517,7 +516,7 @@ const showLoginButton = computed((): boolean => {
517
516
  :timezone="conference.timezone"
518
517
  :is-compact="true"
519
518
  :class-object="classObject.components.countdownTimer"
520
- ></CommonCountdownTimer>
519
+ />
521
520
  </div>
522
521
  <!-- sponsors container - bottom-aligned -->
523
522
  <div
@@ -548,7 +547,7 @@ const showLoginButton = computed((): boolean => {
548
547
  v-if="affiliate.photo"
549
548
  :sponsor="affiliate"
550
549
  :class-object="classObject.components.sponsor"
551
- ></CommonSponsor>
550
+ />
552
551
  </template>
553
552
  </div>
554
553
  </div>
@@ -573,7 +572,7 @@ const showLoginButton = computed((): boolean => {
573
572
  v-if="affiliate.photo"
574
573
  :sponsor="affiliate"
575
574
  :class-object="classObject.components.sponsor"
576
- ></CommonSponsor>
575
+ />
577
576
  </template>
578
577
  </div>
579
578
  </div>
@@ -594,7 +593,7 @@ const showLoginButton = computed((): boolean => {
594
593
  </div>
595
594
  </template>
596
595
 
597
- <style scoped>
596
+ <style lang="postcss" scoped>
598
597
  .leading-tight {
599
598
  line-height: 1.25rem;
600
599
  }
@@ -0,0 +1,46 @@
1
+ <script lang="ts" setup>
2
+ import { ref, toRefs } from 'vue';
3
+
4
+ type Props = {
5
+ options: any,
6
+ }
7
+
8
+ const props = defineProps<Props>();
9
+
10
+ const { options } = toRefs(props);
11
+
12
+ // data
13
+ // TODO - set type
14
+ const currentValueArray = ref<any[]>([]);
15
+
16
+ // emits
17
+ // TODO - set value type
18
+ const emit = defineEmits<{
19
+ (event: 'input', value: any): void;
20
+ }>();
21
+
22
+ // methods
23
+ const onChange = (): void => {
24
+ emit('input', currentValueArray.value);
25
+ };
26
+ </script>
27
+
28
+
29
+ <template>
30
+ <span>
31
+ <div
32
+ v-for="(option, index) in options"
33
+ :key="index"
34
+ class="mb-2 ml-4"
35
+ >
36
+ <p-check
37
+ v-model="currentValueArray"
38
+ :value="option.value"
39
+ @change="onChange"
40
+ >
41
+ {{ option.name }}
42
+ </p-check>
43
+ </div>
44
+ </span>
45
+ </template>
46
+
@@ -1,4 +1,5 @@
1
1
  <script lang="ts" setup>
2
+ import { toRefs } from 'vue';
2
3
  type Props = {
3
4
  errors: Array<string>;
4
5
  };
@@ -10,8 +11,16 @@ const { errors } = toRefs(props);
10
11
 
11
12
  <template>
12
13
  <div>
13
- <div v-if="errors" class="my-1 text-red-500">
14
- <div v-for="error in errors">{{ error }}</div>
14
+ <div
15
+ v-if="errors"
16
+ class="my-1 text-red-500"
17
+ >
18
+ <div
19
+ v-for="(error, index) in errors"
20
+ :key="index"
21
+ >
22
+ {{ error }}
23
+ </div>
15
24
  </div>
16
25
  </div>
17
26
  </template>
@@ -24,7 +24,7 @@ const successClass = computed(() => {
24
24
  </div>
25
25
  </template>
26
26
 
27
- <style scoped>
27
+ <style lang="postcss" scoped>
28
28
  .message-base {
29
29
  @apply border font-bold px-4 py-3 mb-4 rounded relative;
30
30
  }
@@ -0,0 +1,50 @@
1
+ <script lang="ts" setup>
2
+ import { toRefs } from 'vue';
3
+
4
+ type Props = {
5
+ value: any,
6
+ options: any
7
+ }
8
+
9
+ const props = defineProps<Props>();
10
+
11
+ const { value, options } = toRefs(props);
12
+
13
+ // emits
14
+ // TODO - set value type
15
+ const emit = defineEmits<{
16
+ (event: 'input', value: any): void;
17
+ }>();
18
+
19
+ // computed
20
+ // TODO - what's this for?
21
+ // what is <p-radio> ?
22
+ const guid = () => {
23
+ return crypto.getRandomValues(new Uint32Array(2)).join('-');
24
+ }
25
+
26
+ // methods
27
+ const onChange = (e: any): void => {
28
+ emit('input', e.target.value);
29
+ };
30
+ </script>
31
+
32
+
33
+ <template>
34
+ <span>
35
+ <div
36
+ v-for="(option, index) in options"
37
+ :key="index"
38
+ class="mb-2 ml-4"
39
+ >
40
+ <p-radio
41
+ v-model="value"
42
+ color="default"
43
+ :value="option.value"
44
+ @change="onChange"
45
+ >
46
+ {{ option.name }}
47
+ </p-radio>
48
+ </div>
49
+ </span>
50
+ </template>
@@ -1,4 +1,5 @@
1
1
  <script lang="ts" setup>
2
+ import { storeToRefs } from "pinia";
2
3
  import CloseIcon from "../../assets/svg/close-icon.svg";
3
4
 
4
5
  type Props = {
@@ -9,6 +10,8 @@ const props = withDefaults(defineProps<Props>(), {
9
10
  placeholder: "Search...",
10
11
  });
11
12
 
13
+ const { placeholder } = storeToRefs(props);
14
+
12
15
  const value = ref<string>("");
13
16
 
14
17
  const emit = defineEmits<{
@@ -30,8 +33,11 @@ const clear = () => {
30
33
  class="flex-1 pl-2 pr-5 py-1"
31
34
  :placeholder="placeholder"
32
35
  @input="emit('onChange', value)"
33
- />
34
- <span class="flex-initial cursor-pointer px-4 py-2" @click="clear">
36
+ >
37
+ <span
38
+ class="flex-initial cursor-pointer px-4 py-2"
39
+ @click="clear"
40
+ >
35
41
  <close-icon class="fill-current text-black" />
36
42
  </span>
37
43
  </div>
@@ -0,0 +1,47 @@
1
+ <script lang="ts" setup>
2
+ import { toRefs } from 'vue';
3
+
4
+ type Props = {
5
+ value: any,
6
+ options: any,
7
+ firstDisabled?: boolean
8
+ }
9
+
10
+ const props = withDefaults(defineProps<Props>(), {
11
+ firstDisabled: false
12
+ });
13
+
14
+ const { value, options, firstDisabled } = toRefs(props);
15
+
16
+ // emits
17
+ // TODO - set value type
18
+ const emit = defineEmits<{
19
+ (event: 'input', value: any): void;
20
+ }>();
21
+
22
+ // methods
23
+ const onInput = (e: any): void => {
24
+ emit('input', e.target.value);
25
+ };
26
+ </script>
27
+
28
+ <template>
29
+ <span>
30
+ <select
31
+ class="form-input"
32
+ :value="value"
33
+ @change="onInput"
34
+ >
35
+ <option
36
+ v-for="(option, index) in options"
37
+ :key="index"
38
+ :value="option.value"
39
+ :disabled="index==0 && firstDisabled"
40
+ >
41
+ {{ option.name }}
42
+ </option>
43
+ </select>
44
+ </span>
45
+ </template>
46
+
47
+
@@ -43,13 +43,16 @@ const acceptNumber = () => {
43
43
 
44
44
  <template>
45
45
  <section>
46
- <form v-if="!submitted" @submit.prevent="handleForm">
46
+ <form
47
+ v-if="!submitted"
48
+ @submit.prevent="handleForm"
49
+ >
47
50
  <div class="font-bold mb-4">
48
51
  To contact support, please fill out the form below.
49
52
  </div>
50
53
 
51
54
  <div class="mb-3">
52
- <label class="block font-semibold text-grey-darkest mb-1">Name</label>
55
+ <label class="block font-semibold text-gray-800 mb-1">Name</label>
53
56
 
54
57
  <CommonTextInput
55
58
  v-model="form.name"
@@ -62,7 +65,7 @@ const acceptNumber = () => {
62
65
  </div>
63
66
 
64
67
  <div class="mb-3">
65
- <label class="block font-semibold text-grey-darkest mb-1">Email</label>
68
+ <label class="block font-semibold text-gray-800 mb-1">Email</label>
66
69
 
67
70
  <CommonTextInput
68
71
  v-model="form.email"
@@ -75,7 +78,7 @@ const acceptNumber = () => {
75
78
  </div>
76
79
 
77
80
  <div class="mb-3">
78
- <label class="block font-semibold text-grey-darkest mb-1">Phone</label>
81
+ <label class="block font-semibold text-gray-800 mb-1">Phone</label>
79
82
 
80
83
  <CommonTextInput
81
84
  v-model="form.phone"
@@ -87,25 +90,33 @@ const acceptNumber = () => {
87
90
  </div>
88
91
 
89
92
  <div class="mb-3">
90
- <label class="block font-semibold text-grey-darkest mb-1"
91
- >Message</label
92
- >
93
+ <label class="block font-semibold text-gray-800 mb-1">Message</label>
93
94
 
94
95
  <CommonTextArea v-model="form.message" />
95
96
 
96
97
  <CommonErrorField :errors="errors['message']" />
97
98
  </div>
98
99
 
99
- <button class="btn btn-secondary" type="submit">Submit</button>
100
+ <button
101
+ class="btn btn-secondary"
102
+ type="submit"
103
+ >
104
+ Submit
105
+ </button>
100
106
  <div class="mb-3">
101
107
  <CommonErrorField :errors="errors['response']" />
102
108
  </div>
103
109
  </form>
104
110
 
105
111
  <!-- Submitted Message -->
106
- <div v-if="submitted" class="text-center my-12">
107
- <div class="text-2xl font-bold text-grey-darkest mb-2">Thank you.</div>
108
- <div class="text-lg font-semibold text-grey-darker">
112
+ <div
113
+ v-if="submitted"
114
+ class="text-center my-12"
115
+ >
116
+ <div class="text-2xl font-bold text-gray-800 mb-2">
117
+ Thank you.
118
+ </div>
119
+ <div class="text-lg font-semibold text-gray-700">
109
120
  Your message has been received.
110
121
  </div>
111
122
  </div>
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import { ref } from "vue";
2
+ import { ref, toRefs } from "vue";
3
3
  import type { SwitchInputClassObj } from "../../@types/components";
4
4
  import { useClassBinding } from "../../composables/useClassBinding";
5
5
 
@@ -55,38 +55,58 @@ const { classBinding } = useClassBinding();
55
55
  </div>
56
56
  </template>
57
57
 
58
- <style scoped>
58
+ <style lang="postcss" scoped>
59
59
  .switch-button-control {
60
60
  display: flex;
61
61
  flex-direction: row;
62
62
  align-items: center;
63
- }
64
- .switch-button-control .switch-button {
65
- height: 1.6em;
66
- width: calc(1.6em * 2);
67
- border: 2px solid var(--color);
68
- box-shadow: inset 0px 0px 2px 0px rgba(0, 0, 0, 0.33);
69
- border-radius: 1.6em;
70
- transition: all 0.3s ease-in-out;
71
- cursor: pointer;
72
- }
73
- .switch-button-control .switch-button .button {
74
- height: calc(1.6em - 2 * 2px);
75
- width: calc(1.6em - 2 * 2px);
76
- border: 2px solid var(--color);
77
- border-radius: calc(1.6em - 2 * 2px);
78
- background: var(--color);
79
- transition: all 0.3s ease-in-out;
80
- }
81
- .switch-button-control .switch-button.enabled {
82
- background-color: var(--color);
83
- box-shadow: none;
84
- }
85
- .switch-button-control .switch-button.enabled .button {
86
- background: white;
87
- transform: translateX(calc(calc(1.6em - 2 * 2px) + 2 * 2px));
88
- }
89
- .switch-button-control .switch-button-label {
90
- margin-left: 10px;
63
+
64
+ .switch-button {
65
+ --switch-button-height: 1.6em;
66
+ --switch-button-color: var(--color);
67
+ --switch-button-border-thickness: 2px;
68
+ --switch-transition: all 0.3s ease-in-out;
69
+ --switch-is-rounded: true;
70
+
71
+ height: var(--switch-button-height);
72
+ width: calc(var(--switch-button-height) * 2);
73
+ border: var(--switch-button-border-thickness) solid var(--switch-button-color);
74
+ box-shadow: inset 0 0 var(--switch-button-border-thickness) 0 rgba(0, 0, 0, 0.33);
75
+ border-radius: var(--switch-button-height);
76
+
77
+ transition: var(--switch-transition);
78
+
79
+ --button-side-length: calc(
80
+ var(--switch-button-height) - (2 * var(--switch-button-border-thickness))
81
+ );
82
+
83
+ cursor: pointer;
84
+
85
+ .button {
86
+ height: var(--button-side-length);
87
+ width: var(--button-side-length);
88
+ border: var(--switch-button-border-thickness) solid var(--switch-button-color);
89
+ border-radius: var(--button-side-length);
90
+ background: var(--switch-button-color);
91
+
92
+ transition: var(--switch-transition);
93
+ }
94
+
95
+ &.enabled {
96
+ background-color: var(--switch-button-color);
97
+ box-shadow: none;
98
+
99
+ .button {
100
+ background: white;
101
+ transform: translateX(
102
+ calc(var(--button-side-length) + (2 * var(--switch-button-border-thickness)))
103
+ );
104
+ }
105
+ }
106
+ }
107
+
108
+ .switch-button-label {
109
+ margin-left: 10px;
110
+ }
91
111
  }
92
112
  </style>
@@ -21,6 +21,6 @@ const onInput = (e) => {
21
21
  class="form-input"
22
22
  rows="4"
23
23
  @change="onInput"
24
- ></textarea>
24
+ />
25
25
  </span>
26
26
  </template>
@@ -37,5 +37,5 @@ const { classObject } = toRefs(props);
37
37
  :value="props.modelValue"
38
38
  :placeholder="placeholder"
39
39
  @change="changeInput"
40
- />
40
+ >
41
41
  </template>
@@ -18,7 +18,7 @@ const props = withDefaults(defineProps<Props>(), {
18
18
  });
19
19
 
20
20
  // data
21
- const { title, tabContent, contentObject } = toRefs(props);
21
+ const { title, tabContent } = toRefs(props);
22
22
  const active = ref<boolean>(false);
23
23
 
24
24
  // computed
@@ -43,7 +43,7 @@ const tabTitleValues = computed(() => {
43
43
  v-if="tabContent.type === 'url'"
44
44
  :href="tabContent.content"
45
45
  target="_blank"
46
- class="py-3 block no-underline w-full font-hairline inline-flex items-center text-md my-1"
46
+ class="py-3 block w-full font-extralight inline-flex items-center text-md my-1"
47
47
  :class="tabTitleValues.classes"
48
48
  >
49
49
  <span class="flex-initial">
@@ -53,7 +53,7 @@ const tabTitleValues = computed(() => {
53
53
  <a
54
54
  v-else
55
55
  href="#"
56
- class="py-3 block no-underline w-full font-hairline inline-flex items-center text-md my-1"
56
+ class="py-3 block w-full font-extralight inline-flex items-center text-md my-1"
57
57
  :class="tabTitleValues.classes"
58
58
  @click.prevent="active = !active"
59
59
  >
@@ -63,16 +63,21 @@ const tabTitleValues = computed(() => {
63
63
  class="font-black flex-initial"
64
64
  style="width: 0.75rem"
65
65
  >
66
- <CommonSvgIcon icon="downarrow"></CommonSvgIcon>
66
+ <CommonSvgIcon icon="downarrow" />
67
67
  </span>
68
68
  <span
69
69
  v-show="active"
70
70
  class="font-black flex-initial"
71
71
  style="width: 0.75rem"
72
72
  >
73
- <CommonSvgIcon class="invert" icon="downarrow"></CommonSvgIcon>
73
+ <CommonSvgIcon
74
+ class="invert"
75
+ icon="downarrow"
76
+ />
74
77
  </span>
75
78
  </a>
76
- <div v-show="active"><slot /></div>
79
+ <div v-show="active">
80
+ <slot />
81
+ </div>
77
82
  </div>
78
83
  </template>