ep-lib-ts 1.0.63 → 1.0.65

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 (156) hide show
  1. package/dist/components/basics/EpAvatar.vue.js +1 -54
  2. package/dist/components/basics/EpAvatar.vue.js.map +1 -1
  3. package/dist/components/basics/EpAvatar.vue2.js +54 -1
  4. package/dist/components/basics/EpAvatar.vue2.js.map +1 -1
  5. package/dist/components/basics/EpBadge.vue2.js +1 -10
  6. package/dist/components/basics/EpBadge.vue2.js.map +1 -1
  7. package/dist/components/basics/EpCard.vue.js +29 -41
  8. package/dist/components/basics/EpCard.vue.js.map +1 -1
  9. package/dist/components/basics/EpDivider.vue.js +2 -3
  10. package/dist/components/basics/EpDivider.vue.js.map +1 -1
  11. package/dist/components/basics/EpFlex.vue.js.map +1 -1
  12. package/dist/components/basics/EpHoverCard.vue.js +13 -31
  13. package/dist/components/basics/EpHoverCard.vue.js.map +1 -1
  14. package/dist/components/basics/EpImg.vue.js +5 -3
  15. package/dist/components/basics/EpImg.vue.js.map +1 -1
  16. package/dist/components/basics/EpListItem.vue.js +1 -1
  17. package/dist/components/basics/EpListItem.vue.js.map +1 -1
  18. package/dist/components/basics/EpSpinner.vue.js +1 -2
  19. package/dist/components/basics/EpSpinner.vue.js.map +1 -1
  20. package/dist/components/basics/EpStackedList.vue.js +3 -3
  21. package/dist/components/basics/EpStackedList.vue.js.map +1 -1
  22. package/dist/components/basics/EpTable.vue.js +4 -4
  23. package/dist/components/basics/EpTable.vue.js.map +1 -1
  24. package/dist/components/basics/EpText.vue.js +4 -3
  25. package/dist/components/basics/EpText.vue.js.map +1 -1
  26. package/dist/components/educationals/EpBranchingScenario.vue.js +1 -1
  27. package/dist/components/educationals/EpBranchingScenario.vue2.js +1 -1
  28. package/dist/components/educationals/EpBranchingScenario.vue2.js.map +1 -1
  29. package/dist/components/educationals/EpEdu.vue.js +10 -6
  30. package/dist/components/educationals/EpEdu.vue.js.map +1 -1
  31. package/dist/components/educationals/EpObjective.vue.js +3 -3
  32. package/dist/components/educationals/EpObjective.vue.js.map +1 -1
  33. package/dist/components/educationals/EpReading.vue.js +36 -28
  34. package/dist/components/educationals/EpReading.vue.js.map +1 -1
  35. package/dist/components/educationals/EpResource.vue.js +1 -1
  36. package/dist/components/educationals/EpResource.vue.js.map +1 -1
  37. package/dist/components/educationals/EpSpecificObjective.vue.js +7 -8
  38. package/dist/components/educationals/EpSpecificObjective.vue.js.map +1 -1
  39. package/dist/components/forms/EpRadioSummative.vue2.js +1 -1
  40. package/dist/components/forms/EpRadioSummative.vue2.js.map +1 -1
  41. package/dist/components/interactions/EpAccordeon.vue.js +1 -1
  42. package/dist/components/interactions/EpAccordeon.vue2.js +4 -7
  43. package/dist/components/interactions/EpAccordeon.vue2.js.map +1 -1
  44. package/dist/components/interactions/EpContentSlider.vue.js +7 -8
  45. package/dist/components/interactions/EpContentSlider.vue.js.map +1 -1
  46. package/dist/components/interactions/EpModal.vue.js +3 -3
  47. package/dist/components/interactions/EpModal.vue.js.map +1 -1
  48. package/dist/components/interactions/EpQuestion.vue.js +1 -1
  49. package/dist/components/interactions/EpQuestion.vue.js.map +1 -1
  50. package/dist/components/interactions/EpSummativeTable.vue.js +2 -2
  51. package/dist/components/interactions/EpSummativeTable.vue.js.map +1 -1
  52. package/dist/components/interactions/EpTooltip.vue.js.map +1 -1
  53. package/dist/components/interactions/{EpTooltip.vue3.js → EpTooltip.vue2.js} +1 -2
  54. package/dist/components/interactions/EpTooltip.vue2.js.map +1 -0
  55. package/dist/components/medias/EpAudio.vue.js +1 -2
  56. package/dist/components/medias/EpAudio.vue.js.map +1 -1
  57. package/dist/components/medias/EpCarousel.vue.js +197 -5
  58. package/dist/components/medias/EpCarousel.vue.js.map +1 -1
  59. package/dist/components/medias/EpCarousel.vue2.js +1 -196
  60. package/dist/components/medias/EpCarousel.vue2.js.map +1 -1
  61. package/dist/components/medias/EpHierarchy.vue.js +1 -1
  62. package/dist/components/medias/EpHierarchy.vue2.js +7 -7
  63. package/dist/components/medias/EpHierarchy.vue2.js.map +1 -1
  64. package/dist/components/medias/EpLink.vue.js +1 -5
  65. package/dist/components/medias/EpLink.vue.js.map +1 -1
  66. package/dist/components/medias/EpSensibleImage.vue.js +1 -1
  67. package/dist/components/medias/EpSensibleImage.vue2.js +2 -2
  68. package/dist/components/medias/EpSensibleImage.vue2.js.map +1 -1
  69. package/dist/components/medias/EpSoftware.vue.js +1 -1
  70. package/dist/components/medias/EpSoftware.vue.js.map +1 -1
  71. package/dist/components/medias/EpTerm.vue.js +4 -4
  72. package/dist/components/medias/EpTerm.vue.js.map +1 -1
  73. package/dist/components/medias/EpTimeLine.vue.js +5 -98
  74. package/dist/components/medias/EpTimeLine.vue.js.map +1 -1
  75. package/dist/components/medias/EpTimeLine.vue2.js +101 -0
  76. package/dist/components/medias/EpTimeLine.vue2.js.map +1 -0
  77. package/dist/components/medias/EpWordDef.vue.js +6 -6
  78. package/dist/components/medias/EpWordDef.vue.js.map +1 -1
  79. package/dist/components/signages/EpAlert.vue.js +1 -1
  80. package/dist/components/signages/EpAlert.vue2.js +1 -1
  81. package/dist/components/signages/EpAlert.vue2.js.map +1 -1
  82. package/dist/components/signages/EpHeader.vue.js +6 -6
  83. package/dist/components/signages/EpHeader.vue.js.map +1 -1
  84. package/dist/components/signages/EpQuote.vue.js +4 -4
  85. package/dist/components/signages/EpQuote.vue.js.map +1 -1
  86. package/dist/components/signages/EpSkeleton.vue.js +5 -40
  87. package/dist/components/signages/EpSkeleton.vue.js.map +1 -1
  88. package/dist/components/signages/EpSkeleton.vue2.js +43 -0
  89. package/dist/components/signages/EpSkeleton.vue2.js.map +1 -0
  90. package/dist/components/tools/Details.vue2.js +2 -3
  91. package/dist/components/tools/Details.vue2.js.map +1 -1
  92. package/dist/components/tools/DisplayBox.vue.js +5 -40
  93. package/dist/components/tools/DisplayBox.vue.js.map +1 -1
  94. package/dist/components/tools/DisplayBox.vue2.js +43 -0
  95. package/dist/components/tools/DisplayBox.vue2.js.map +1 -0
  96. package/dist/components/tools/TextMedia.vue2.js +2 -2
  97. package/dist/components/tools/TextMedia.vue2.js.map +1 -1
  98. package/dist/components/tools/TimelineItem.vue.js +1 -1
  99. package/dist/components/tools/TimelineItem.vue2.js +1 -1
  100. package/dist/components/tools/TimelineItem.vue2.js.map +1 -1
  101. package/dist/components/tools/TwoColsMedia.vue2.js +2 -2
  102. package/dist/components/tools/TwoColsMedia.vue2.js.map +1 -1
  103. package/dist/composables/useIcons.js +1 -1
  104. package/dist/composables/useIcons.js.map +1 -1
  105. package/dist/entry/interactions/EpTooltip.js +0 -1
  106. package/dist/entry/interactions/EpTooltip.js.map +1 -1
  107. package/dist/entry/medias/EpCarousel.js +2 -2
  108. package/dist/entry/medias/EpCarousel.js.map +1 -1
  109. package/dist/entry/medias/EpTimeLine.js +2 -3
  110. package/dist/entry/medias/EpTimeLine.js.map +1 -1
  111. package/dist/entry/signages/EpSkeleton.js +2 -3
  112. package/dist/entry/signages/EpSkeleton.js.map +1 -1
  113. package/dist/index.js +171 -173
  114. package/dist/index.js.map +1 -1
  115. package/dist/styles.css +655 -0
  116. package/dist/types/Accordeon.d.ts +1 -5
  117. package/dist/types/Accordeon.js +21 -25
  118. package/dist/types/Accordeon.js.map +1 -1
  119. package/dist/types/Alert.d.ts +2 -2
  120. package/dist/types/Alert.js +34 -34
  121. package/dist/types/Alert.js.map +1 -1
  122. package/dist/types/Btn.d.ts +0 -5
  123. package/dist/types/Btn.js +21 -26
  124. package/dist/types/Btn.js.map +1 -1
  125. package/dist/types/Chip.d.ts +0 -4
  126. package/dist/types/Chip.js +14 -18
  127. package/dist/types/Chip.js.map +1 -1
  128. package/dist/types/Colors.d.ts +1 -0
  129. package/dist/types/Hover.d.ts +1 -1
  130. package/dist/types/Medias.d.ts +0 -1
  131. package/dist/types/Medias.js +0 -1
  132. package/dist/types/Medias.js.map +1 -1
  133. package/dist/types/Radio.d.ts +0 -1
  134. package/dist/types/Radio.js +0 -1
  135. package/dist/types/Radio.js.map +1 -1
  136. package/dist/types/StackedList.d.ts +1 -1
  137. package/dist/types/StackedList.js.map +1 -1
  138. package/dist/types/Switch.d.ts +0 -1
  139. package/dist/types/Switch.js +0 -1
  140. package/dist/types/Switch.js.map +1 -1
  141. package/dist/types/basics/EpAvatar.d.ts +2 -10
  142. package/dist/types/basics/EpBadge.d.ts +2 -1
  143. package/dist/types/basics/EpCard.d.ts +3 -1
  144. package/dist/types/educationals/EpEdu.d.ts +1 -0
  145. package/dist/types/signages/EpBadge.d.ts +0 -1
  146. package/package.json +14 -17
  147. package/dist/components/interactions/EpTooltip.vue3.js.map +0 -1
  148. package/dist/components/medias/EpTimeLine.vue3.js +0 -6
  149. package/dist/components/medias/EpTimeLine.vue3.js.map +0 -1
  150. package/dist/components/signages/EpSkeleton.vue3.js +0 -6
  151. package/dist/components/signages/EpSkeleton.vue3.js.map +0 -1
  152. package/dist/components/tools/DisplayBox.vue3.js +0 -6
  153. package/dist/components/tools/DisplayBox.vue3.js.map +0 -1
  154. package/dist/composables/useColors.js +0 -135
  155. package/dist/composables/useColors.js.map +0 -1
  156. package/dist/style.css +0 -5212
@@ -1,5 +1,4 @@
1
1
  import { defineComponent, computed, createElementBlock, openBlock, normalizeClass, createElementVNode } from "vue";
2
- import useColors from "../../composables/useColors.js";
3
2
  const _hoisted_1 = ["width", "height"];
4
3
  const _hoisted_2 = ["width", "height"];
5
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -13,7 +12,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
13
12
  setup(__props) {
14
13
  const props = __props;
15
14
  const currentColor = computed(() => {
16
- return useColors("fill", props.color);
15
+ return props.color;
17
16
  });
18
17
  const styles = computed(() => {
19
18
  return props.inline ? "" : "flex flex-row w-full h-screen items-center justify-center";
@@ -1 +1 @@
1
- {"version":3,"file":"EpSpinner.vue.js","sources":["../../../src/components/basics/EpSpinner.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport useColors from \"~/composables/useColors\";\nimport type { EpSpinnerProps } from \"~/types/basics/EpSpinner\";\n\nconst props = withDefaults(defineProps<EpSpinnerProps>(), {\n color: \"primary\",\n dots: false,\n size: 46,\n inline: false,\n});\n\nconst currentColor = computed(() => {\n return useColors(\"fill\", props.color);\n});\n\nconst styles = computed(() => {\n return props.inline\n ? \"\"\n : \"flex flex-row w-full h-screen items-center justify-center\";\n});\n</script>\n\n<template>\n <div :class=\"styles\">\n <svg\n v-if=\"!dots\"\n xmlns=\"http://www.w3.org/2000/svg\"\n :width=\"size\"\n :height=\"size\"\n class=\"inline\"\n viewBox=\"0 0 32 32\"\n >\n <path\n :class=\"currentColor\"\n fill=\"currentColor\"\n d=\"M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z\"\n opacity=\".25\"\n ></path>\n <path\n :class=\"currentColor\"\n fill=\"currentColor\"\n d=\"M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z\"\n >\n <animateTransform\n attributeName=\"transform\"\n dur=\"0.75s\"\n repeatCount=\"indefinite\"\n type=\"rotate\"\n values=\"0 12 12;360 12 12\"\n ></animateTransform>\n </path>\n </svg>\n <svg\n v-else\n xmlns=\"http://www.w3.org/2000/svg\"\n :width=\"size\"\n :height=\"size\"\n class=\"inline\"\n viewBox=\"0 0 32 32\"\n >\n <g>\n <circle\n cx=\"12\"\n cy=\"2.5\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".14\"\n />\n <circle\n cx=\"16.75\"\n cy=\"3.77\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".29\"\n />\n <circle\n cx=\"20.23\"\n cy=\"7.25\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".43\"\n />\n <circle\n cx=\"21.5\"\n cy=\"12\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".57\"\n />\n <circle\n cx=\"20.23\"\n cy=\"16.75\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".71\"\n />\n <circle\n cx=\"16.75\"\n cy=\"20.23\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".86\"\n />\n <circle\n cx=\"12\"\n cy=\"21.5\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n />\n <animateTransform\n attributeName=\"transform\"\n calcMode=\"discrete\"\n dur=\"0.75s\"\n repeatCount=\"indefinite\"\n type=\"rotate\"\n values=\"0 12 12;30 12 12;60 12 12;90 12 12;120 12 12;150 12 12;180 12 12;210 12 12;240 12 12;270 12 12;300 12 12;330 12 12;360 12 12\"\n />\n </g>\n </svg>\n </div>\n</template>\n"],"names":["_createElementBlock","dots","size","_createElementVNode"],"mappings":";;;;;;;;;;;;;AAKA,UAAM,QAAQ;AAOd,UAAM,eAAe,SAAS,MAAM;AAClC,aAAO,UAAU,QAAQ,MAAM,KAAK;AAAA,IACtC,CAAC;AAED,UAAM,SAAS,SAAS,MAAM;AAC5B,aAAO,MAAM,SACT,KACA;AAAA,IACN,CAAC;;0BAICA,mBAuGM,OAAA;AAAA,QAvGA,sBAAO,OAAA,KAAM;AAAA,MAAA;SAERC,KAAAA,qBADTD,mBA2BM,OAAA;AAAA;UAzBJ,OAAM;AAAA,UACL,OAAOE,KAAAA;AAAAA,UACP,QAAQA,KAAAA;AAAAA,UACT,OAAM;AAAA,UACN,SAAQ;AAAA,QAAA;UAERC,mBAKQ,QAAA;AAAA,YAJL,sBAAO,aAAA,KAAY;AAAA,YACpB,MAAK;AAAA,YACL,GAAE;AAAA,YACF,SAAQ;AAAA,UAAA;UAEVA,mBAYO,QAAA;AAAA,YAXJ,sBAAO,aAAA,KAAY;AAAA,YACpB,MAAK;AAAA,YACL,GAAE;AAAA,UAAA;YAEFA,mBAMoB,oBAAA;AAAA,cALlB,eAAc;AAAA,cACd,KAAI;AAAA,cACJ,aAAY;AAAA,cACZ,MAAK;AAAA,cACL,QAAO;AAAA,YAAA;;2CAIbH,mBAyEM,OAAA;AAAA;UAvEJ,OAAM;AAAA,UACL,OAAOE,KAAAA;AAAAA,UACP,QAAQA,KAAAA;AAAAA,UACT,OAAM;AAAA,UACN,SAAQ;AAAA,QAAA;UAERC,mBAgEI,KAAA,MAAA;AAAA,YA/DFA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAME,UAAA;AAAA,cALA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,YAAA;sCAEPA,mBAOE,oBAAA;AAAA,cANA,eAAc;AAAA,cACd,UAAS;AAAA,cACT,KAAI;AAAA,cACJ,aAAY;AAAA,cACZ,MAAK;AAAA,cACL,QAAO;AAAA,YAAA;;;;;;;"}
1
+ {"version":3,"file":"EpSpinner.vue.js","sources":["../../../src/components/basics/EpSpinner.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { EpSpinnerProps } from \"~/types/basics/EpSpinner\";\n\nconst props = withDefaults(defineProps<EpSpinnerProps>(), {\n color: \"primary\",\n dots: false,\n size: 46,\n inline: false,\n});\n\nconst currentColor = computed(() => {\n return props.color\n});\n\nconst styles = computed(() => {\n return props.inline\n ? \"\"\n : \"flex flex-row w-full h-screen items-center justify-center\";\n});\n</script>\n\n<template>\n <div :class=\"styles\">\n <svg\n v-if=\"!dots\"\n xmlns=\"http://www.w3.org/2000/svg\"\n :width=\"size\"\n :height=\"size\"\n class=\"inline\"\n viewBox=\"0 0 32 32\"\n >\n <path\n :class=\"currentColor\"\n fill=\"currentColor\"\n d=\"M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z\"\n opacity=\".25\"\n ></path>\n <path\n :class=\"currentColor\"\n fill=\"currentColor\"\n d=\"M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z\"\n >\n <animateTransform\n attributeName=\"transform\"\n dur=\"0.75s\"\n repeatCount=\"indefinite\"\n type=\"rotate\"\n values=\"0 12 12;360 12 12\"\n ></animateTransform>\n </path>\n </svg>\n <svg\n v-else\n xmlns=\"http://www.w3.org/2000/svg\"\n :width=\"size\"\n :height=\"size\"\n class=\"inline\"\n viewBox=\"0 0 32 32\"\n >\n <g>\n <circle\n cx=\"12\"\n cy=\"2.5\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".14\"\n />\n <circle\n cx=\"16.75\"\n cy=\"3.77\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".29\"\n />\n <circle\n cx=\"20.23\"\n cy=\"7.25\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".43\"\n />\n <circle\n cx=\"21.5\"\n cy=\"12\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".57\"\n />\n <circle\n cx=\"20.23\"\n cy=\"16.75\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".71\"\n />\n <circle\n cx=\"16.75\"\n cy=\"20.23\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".86\"\n />\n <circle\n cx=\"12\"\n cy=\"21.5\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n />\n <animateTransform\n attributeName=\"transform\"\n calcMode=\"discrete\"\n dur=\"0.75s\"\n repeatCount=\"indefinite\"\n type=\"rotate\"\n values=\"0 12 12;30 12 12;60 12 12;90 12 12;120 12 12;150 12 12;180 12 12;210 12 12;240 12 12;270 12 12;300 12 12;330 12 12;360 12 12\"\n />\n </g>\n </svg>\n </div>\n</template>\n"],"names":["_createElementBlock","dots","size","_createElementVNode"],"mappings":";;;;;;;;;;;;AAIA,UAAM,QAAQ;AAOd,UAAM,eAAe,SAAS,MAAM;AAClC,aAAO,MAAM;AAAA,IACf,CAAC;AAED,UAAM,SAAS,SAAS,MAAM;AAC5B,aAAO,MAAM,SACT,KACA;AAAA,IACN,CAAC;;0BAICA,mBAuGM,OAAA;AAAA,QAvGA,sBAAO,OAAA,KAAM;AAAA,MAAA;SAERC,KAAAA,qBADTD,mBA2BM,OAAA;AAAA;UAzBJ,OAAM;AAAA,UACL,OAAOE,KAAAA;AAAAA,UACP,QAAQA,KAAAA;AAAAA,UACT,OAAM;AAAA,UACN,SAAQ;AAAA,QAAA;UAERC,mBAKQ,QAAA;AAAA,YAJL,sBAAO,aAAA,KAAY;AAAA,YACpB,MAAK;AAAA,YACL,GAAE;AAAA,YACF,SAAQ;AAAA,UAAA;UAEVA,mBAYO,QAAA;AAAA,YAXJ,sBAAO,aAAA,KAAY;AAAA,YACpB,MAAK;AAAA,YACL,GAAE;AAAA,UAAA;YAEFA,mBAMoB,oBAAA;AAAA,cALlB,eAAc;AAAA,cACd,KAAI;AAAA,cACJ,aAAY;AAAA,cACZ,MAAK;AAAA,cACL,QAAO;AAAA,YAAA;;2CAIbH,mBAyEM,OAAA;AAAA;UAvEJ,OAAM;AAAA,UACL,OAAOE,KAAAA;AAAAA,UACP,QAAQA,KAAAA;AAAAA,UACT,OAAM;AAAA,UACN,SAAQ;AAAA,QAAA;UAERC,mBAgEI,KAAA,MAAA;AAAA,YA/DFA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAME,UAAA;AAAA,cALA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,YAAA;sCAEPA,mBAOE,oBAAA;AAAA,cANA,eAAc;AAAA,cACd,UAAS;AAAA,cACT,KAAI;AAAA,cACJ,aAAY;AAAA,cACZ,MAAK;AAAA,cACL,QAAO;AAAA,YAAA;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, computed, createElementBlock, openBlock, normalizeClass, Fragment, renderList, createBlock, resolveDynamicComponent, mergeProps, withCtx, createElementVNode, createCommentVNode, toDisplayString, unref, createVNode } from "vue";
2
- import _sfc_main$1 from "./EpAvatar.vue.js";
2
+ import _sfc_main$1 from "./EpAvatar.vue2.js";
3
3
  import _sfc_main$2 from "./EpIcon.vue.js";
4
4
  import { useRenderText } from "../../composables/useRenderText.js";
5
5
  import { roundedType } from "../../types/StackedList.js";
@@ -36,7 +36,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
36
36
  const elementSpacing = computed(() => props.restricted ? "p-3" : "mx-6 py-4");
37
37
  return (_ctx, _cache) => {
38
38
  return openBlock(), createElementBlock("ul", {
39
- class: normalizeClass(`${className.value} border-gray-200 flex flex-col dark:border-slate-700 dark:bg-slate-900 lg:mx-28`)
39
+ class: normalizeClass(`${className.value} flex flex-col ep-surface-2 lg:mx-28`)
40
40
  }, [
41
41
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.elements, (elem) => {
42
42
  return openBlock(), createElementBlock("li", {
@@ -50,7 +50,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
50
50
  ), {
51
51
  default: withCtx(() => [
52
52
  createElementVNode("div", {
53
- class: normalizeClass(`${elementSpacing.value} ${elem.url ? "hover:bg-gray-50 dark:hover:bg-slate-800" : ""} grid grid-cols-11 justify-items-center items-center border-gray-200 dark:border-slate-700`)
53
+ class: normalizeClass(`${elementSpacing.value} ${elem.url ? "hover:bg-gray-200 dark:hover:bg-black" : ""} grid grid-cols-11 justify-items-center items-center ep-border-neutral`)
54
54
  }, [
55
55
  elem.avatar ? (openBlock(), createBlock(_sfc_main$1, mergeProps({
56
56
  key: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"EpStackedList.vue.js","sources":["../../../src/components/basics/EpStackedList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent } from \"vue\";\nimport EpAvatar from \"~/components/basics/EpAvatar.vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport { useRenderText } from \"~/composables/useRenderText\";\n\n// Importing the necessary interfaces for the code\nimport { roundedType } from \"~/types/StackedList\";\nimport type { EpStackedListProps } from \"~/types/basics/EpStackedList\";\n\nconst props = withDefaults(defineProps<EpStackedListProps>(), {\n elements: () => [],\n avatarStyle: () => {\n return {\n size: \"middle\",\n };\n },\n border: true,\n rounded: \"small\",\n restricted: false,\n cropped: false,\n iconSize: 36,\n});\n\n// The style of the wrapper div\nconst className = computed(() => {\n const border = props.border === false ? \"border-0\" : \"border\";\n const rounded = roundedType[props.rounded ? props.rounded : \"small\"];\n const padding = props.restricted ? \"p-0\" : \"p-2\";\n return `${border} ${rounded} ${padding}`;\n});\n\n// The style of the list elements\nconst elementSpacing = computed(() => (props.restricted ? \"p-3\" : \"mx-6 py-4\"));\n\nconst elementGrid = (element: Record<string, any> | undefined) => {\n return element ? \"grid-cols-11\" : \"grid-cols-7\";\n};\n</script>\n\n<template>\n <ul\n :class=\"`${className} border-gray-200 flex flex-col dark:border-slate-700 dark:bg-slate-900 lg:mx-28`\"\n >\n <template v-for=\"elem in elements\" :key=\"elements.indexOf(elem)\">\n <li\n :class=\"`${elements.indexOf(elem) !== 0 ? 'border-t' : ''} list-none`\"\n >\n <component\n :is=\"elem.url ? 'a' : 'div'\"\n v-bind=\"\n elem.url\n ? { href: elem.url, target: '_blank', rel: 'noopener noreferrer' }\n : {}\n \"\n :class=\"`contents`\"\n >\n <div\n :class=\"`${elementSpacing} ${\n elem.url ? 'hover:bg-gray-50 dark:hover:bg-slate-800' : ''\n } grid grid-cols-11 justify-items-center items-center border-gray-200 dark:border-slate-700`\"\n >\n <EpAvatar\n v-if=\"elem.avatar\"\n :src=\"elem.avatar\"\n v-bind=\"avatarStyle\"\n class=\"col-span-2\"\n />\n <div class=\"col-span-5 justify-self-start\">\n <h3 class=\"font-semibold\">{{ elem.title }}</h3>\n <div\n :class=\"`${cropped ? 'line-clamp-3' : ''}`\"\n v-html=\"useRenderText(elem.description)\"\n />\n </div>\n <!--element icon-->\n <div\n v-if=\"elem.icon\"\n class=\"flex gap-2 items-center col-span-4 justify-self-auto\"\n >\n <EpIcon :icon-path=\"elem.icon\" :size=\"iconSize\" />\n </div>\n </div>\n </component>\n </li>\n </template>\n </ul>\n</template>\n"],"names":["_createElementBlock","_Fragment","_renderList","elements","_normalizeClass","_openBlock","_createBlock","_resolveDynamicComponent","_mergeProps","_createElementVNode","EpAvatar","avatarStyle","_toDisplayString","cropped","_unref","_createVNode","EpIcon","iconSize"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,UAAM,QAAQ;AAed,UAAM,YAAY,SAAS,MAAM;AAC/B,YAAM,SAAS,MAAM,WAAW,QAAQ,aAAa;AACrD,YAAM,UAAU,YAAY,MAAM,UAAU,MAAM,UAAU,OAAO;AACnE,YAAM,UAAU,MAAM,aAAa,QAAQ;AAC3C,aAAO,GAAG,MAAM,IAAI,OAAO,IAAI,OAAO;AAAA,IACxC,CAAC;AAGD,UAAM,iBAAiB,SAAS,MAAO,MAAM,aAAa,QAAQ,WAAY;;0BAQ5EA,mBA6CK,MAAA;AAAA,QA5CF,yBAAU,UAAA,KAAS,iFAAA;AAAA,MAAA;0BAEpBA,mBAyCWC,UAAA,MAAAC,WAzCcC,KAAAA,UAAQ,CAAhB,SAAI;8BACnBH,mBAuCK,MAAA;AAAA,iBAxCkCG,KAAAA,SAAS,QAAQ,IAAI;AAAA,YAEzD,OAAKC,eAAA,GAAKD,KAAAA,SAAS,QAAQ,IAAI,MAAA,IAAA,aAAA,EAAA,YAAA;AAAA,UAAA;aAEhCE,UAAA,GAAAC,YAmCYC,wBAlCL,KAAK,oBADZC;AAAAA,cAmCY,EAAA,SAAA,KAAA;AAAA,cAjCW,KAAK,MAA4B,EAAA,MAAA,KAAK,KAAG,QAAA,UAAA,KAAA,sBAAA;cAK7D,EAAA,OAAO,WAAA;AAAA,YAAU,GAAA;AAAA,+BAElB,MAyBM;AAAA,gBAzBNC,mBAyBM,OAAA;AAAA,kBAxBH,yBAAU,eAAA,KAAc,IAAmB,KAAK,MAAG,6CAAA;;kBAK5C,KAAK,UADbJ,UAAA,GAAAC,YAKEI,aALFF,WAKE;AAAA;oBAHC,KAAK,KAAK;AAAA,kBAAA,sBACHG,KAAAA,aAAW,EACnB,OAAM,aAAA,CAAY,GAAA,MAAA,IAAA,CAAA,KAAA,CAAA;kBAEpBF,mBAMM,OANN,YAMM;AAAA,oBALJA,mBAA+C,MAA/C,YAA+CG,gBAAlB,KAAK,KAAK,GAAA,CAAA;AAAA,oBACvCH,mBAGE,OAAA;AAAA,sBAFC,yBAAUI,KAAAA,UAAO,iBAAA,EAAA,EAAA;AAAA,sBAClB,WAAQC,MAAA,aAAA,EAAc,KAAK,WAAW;AAAA,oBAAA;;kBAKlC,KAAK,QADbT,UAAA,GAAAL,mBAKM,OALN,YAKM;AAAA,oBADJe,YAAkDC,aAAA;AAAA,sBAAzC,aAAW,KAAK;AAAA,sBAAO,MAAMC,KAAAA;AAAAA,oBAAAA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"EpStackedList.vue.js","sources":["../../../src/components/basics/EpStackedList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent } from \"vue\";\nimport EpAvatar from \"~/components/basics/EpAvatar.vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport { useRenderText } from \"~/composables/useRenderText\";\n\n// Importing the necessary interfaces for the code\nimport { roundedType } from \"~/types/StackedList\";\nimport type { EpStackedListProps } from \"~/types/basics/EpStackedList\";\n\nconst props = withDefaults(defineProps<EpStackedListProps>(), {\n elements: () => [],\n avatarStyle: () => {\n return {\n size: \"middle\",\n };\n },\n border: true,\n rounded: \"small\",\n restricted: false,\n cropped: false,\n iconSize: 36,\n});\n\n// The style of the wrapper div\nconst className = computed(() => {\n const border = props.border === false ? \"border-0\" : \"border\";\n const rounded = roundedType[props.rounded ? props.rounded : \"small\"];\n const padding = props.restricted ? \"p-0\" : \"p-2\";\n return `${border} ${rounded} ${padding}`;\n});\n\n// The style of the list elements\nconst elementSpacing = computed(() => (props.restricted ? \"p-3\" : \"mx-6 py-4\"));\n\nconst elementGrid = (element: Record<string, any> | undefined) => {\n return element ? \"grid-cols-11\" : \"grid-cols-7\";\n};\n</script>\n\n<template>\n <ul\n :class=\"`${className} flex flex-col ep-surface-2 lg:mx-28`\"\n >\n <template v-for=\"elem in elements\" :key=\"elements.indexOf(elem)\">\n <li\n :class=\"`${elements.indexOf(elem) !== 0 ? 'border-t' : ''} list-none`\"\n >\n <component\n :is=\"elem.url ? 'a' : 'div'\"\n v-bind=\"\n elem.url\n ? { href: elem.url, target: '_blank', rel: 'noopener noreferrer' }\n : {}\n \"\n :class=\"`contents`\"\n >\n <div\n :class=\"`${elementSpacing} ${\n elem.url ? 'hover:bg-gray-200 dark:hover:bg-black' : ''\n } grid grid-cols-11 justify-items-center items-center ep-border-neutral`\"\n >\n <EpAvatar\n v-if=\"elem.avatar\"\n :src=\"elem.avatar\"\n v-bind=\"avatarStyle\"\n class=\"col-span-2\"\n />\n <div class=\"col-span-5 justify-self-start\">\n <h3 class=\"font-semibold\">{{ elem.title }}</h3>\n <div\n :class=\"`${cropped ? 'line-clamp-3' : ''}`\"\n v-html=\"useRenderText(elem.description)\"\n />\n </div>\n <!--element icon-->\n <div\n v-if=\"elem.icon\"\n class=\"flex gap-2 items-center col-span-4 justify-self-auto\"\n >\n <EpIcon :icon-path=\"elem.icon\" :size=\"iconSize\" />\n </div>\n </div>\n </component>\n </li>\n </template>\n </ul>\n</template>\n"],"names":["_createElementBlock","_Fragment","_renderList","elements","_normalizeClass","_openBlock","_createBlock","_resolveDynamicComponent","_mergeProps","_createElementVNode","EpAvatar","avatarStyle","_toDisplayString","cropped","_unref","_createVNode","EpIcon","iconSize"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,UAAM,QAAQ;AAed,UAAM,YAAY,SAAS,MAAM;AAC/B,YAAM,SAAS,MAAM,WAAW,QAAQ,aAAa;AACrD,YAAM,UAAU,YAAY,MAAM,UAAU,MAAM,UAAU,OAAO;AACnE,YAAM,UAAU,MAAM,aAAa,QAAQ;AAC3C,aAAO,GAAG,MAAM,IAAI,OAAO,IAAI,OAAO;AAAA,IACxC,CAAC;AAGD,UAAM,iBAAiB,SAAS,MAAO,MAAM,aAAa,QAAQ,WAAY;;0BAQ5EA,mBA6CK,MAAA;AAAA,QA5CF,yBAAU,UAAA,KAAS,uCAAA;AAAA,MAAA;0BAEpBA,mBAyCWC,UAAA,MAAAC,WAzCcC,KAAAA,UAAQ,CAAhB,SAAI;8BACnBH,mBAuCK,MAAA;AAAA,iBAxCkCG,KAAAA,SAAS,QAAQ,IAAI;AAAA,YAEzD,OAAKC,eAAA,GAAKD,KAAAA,SAAS,QAAQ,IAAI,MAAA,IAAA,aAAA,EAAA,YAAA;AAAA,UAAA;aAEhCE,UAAA,GAAAC,YAmCYC,wBAlCL,KAAK,oBADZC;AAAAA,cAmCY,EAAA,SAAA,KAAA;AAAA,cAjCW,KAAK,MAA4B,EAAA,MAAA,KAAK,KAAG,QAAA,UAAA,KAAA,sBAAA;cAK7D,EAAA,OAAO,WAAA;AAAA,YAAU,GAAA;AAAA,+BAElB,MAyBM;AAAA,gBAzBNC,mBAyBM,OAAA;AAAA,kBAxBH,yBAAU,eAAA,KAAc,IAAmB,KAAK,MAAG,0CAAA;;kBAK5C,KAAK,UADbJ,UAAA,GAAAC,YAKEI,aALFF,WAKE;AAAA;oBAHC,KAAK,KAAK;AAAA,kBAAA,sBACHG,KAAAA,aAAW,EACnB,OAAM,aAAA,CAAY,GAAA,MAAA,IAAA,CAAA,KAAA,CAAA;kBAEpBF,mBAMM,OANN,YAMM;AAAA,oBALJA,mBAA+C,MAA/C,YAA+CG,gBAAlB,KAAK,KAAK,GAAA,CAAA;AAAA,oBACvCH,mBAGE,OAAA;AAAA,sBAFC,yBAAUI,KAAAA,UAAO,iBAAA,EAAA,EAAA;AAAA,sBAClB,WAAQC,MAAA,aAAA,EAAc,KAAK,WAAW;AAAA,oBAAA;;kBAKlC,KAAK,QADbT,UAAA,GAAAL,mBAKM,OALN,YAKM;AAAA,oBADJe,YAAkDC,aAAA;AAAA,sBAAzC,aAAW,KAAK;AAAA,sBAAO,MAAMC,KAAAA;AAAAA,oBAAAA;;;;;;;;;;;;"}
@@ -1,11 +1,11 @@
1
1
  import { defineComponent, toRefs, createBlock, openBlock, unref, withCtx, createElementVNode, createElementBlock, createCommentVNode, Fragment, renderList, normalizeClass, toDisplayString } from "vue";
2
2
  import _sfc_main$1 from "./EpCard.vue.js";
3
- const _hoisted_1 = { class: "min-w-full divide-y shadow dark:bg-dark" };
3
+ const _hoisted_1 = { class: "min-w-full divide-y shadow" };
4
4
  const _hoisted_2 = {
5
5
  key: 0,
6
- class: "bg-gray-50 dark:bg-base-dark"
6
+ class: "ep-surface"
7
7
  };
8
- const _hoisted_3 = { class: "bg-white divide-y dark:bg-dark" };
8
+ const _hoisted_3 = { class: "divide-y" };
9
9
  const styleTh = "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:text-white";
10
10
  const _sfc_main = /* @__PURE__ */ defineComponent({
11
11
  __name: "EpTable",
@@ -39,7 +39,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
39
39
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(arrayContent), (tr, i) => {
40
40
  return openBlock(), createElementBlock("tr", {
41
41
  key: `tr-${i}`,
42
- class: "hover:bg-gray-50 dark:hover:bg-black"
42
+ class: "hover:bg-gray-200 dark:hover:bg-black"
43
43
  }, [
44
44
  (openBlock(true), createElementBlock(Fragment, null, renderList(tr, (value, j) => {
45
45
  return openBlock(), createElementBlock("td", {
@@ -1 +1 @@
1
- {"version":3,"file":"EpTable.vue.js","sources":["../../../src/components/basics/EpTable.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs } from \"vue\";\nimport EpCard from \"../basics/EpCard.vue\";\nimport type { EpTableProps } from \"~/types/basics/EpTable\";\n\nconst props = defineProps<EpTableProps>();\n\nconst { headers, arrayContent, title } = toRefs(props);\n\nconst styleTh =\n \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:text-white\";\n</script>\n<template>\n <EpCard flat :title=\"title\">\n <table class=\"min-w-full divide-y shadow dark:bg-dark\">\n <thead class=\"bg-gray-50 dark:bg-base-dark\" v-if=\"headers\">\n <tr>\n <th\n v-for=\"(title, i) in headers\"\n :key=\"`th-${i}`\"\n scope=\"col\"\n :class=\"styleTh\"\n >\n {{ title }}\n </th>\n </tr>\n </thead>\n <tbody class=\"bg-white divide-y dark:bg-dark\">\n <tr\n v-for=\"(tr, i) in arrayContent\"\n :key=\"`tr-${i}`\"\n class=\"hover:bg-gray-50 dark:hover:bg-black\"\n >\n <td v-for=\"(value, j) in tr\" :key=\"`td-${i}-${j}`\" class=\"px-6 py-4\">\n {{ value }}\n </td>\n </tr>\n </tbody>\n </table>\n </EpCard>\n</template>\n"],"names":["_createBlock","EpCard","_unref","_createElementVNode","_openBlock","_createElementBlock","_Fragment","_renderList","title"],"mappings":";;;;;;;;AASA,MAAM,UACJ;;;;;;;;;AALF,UAAM,QAAQ;AAEd,UAAM,EAAE,SAAS,cAAc,MAAA,IAAU,OAAO,KAAK;;0BAMnDA,YA0BSC,aAAA;AAAA,QA1BD,MAAA;AAAA,QAAM,OAAOC,MAAA,KAAA;AAAA,MAAA;yBACnB,MAwBQ;AAAA,UAxBRC,mBAwBQ,SAxBR,YAwBQ;AAAA,YAvB4CD,MAAA,OAAA,KAAlDE,aAAAC,mBAWQ,SAXR,YAWQ;AAAA,cAVNF,mBASK,MAAA,MAAA;AAAA,iBARHC,UAAA,IAAA,GAAAC,mBAOKC,UAAA,MAAAC,WANkBL,MAAA,OAAA,GAAO,CAApBM,QAAO,MAAC;sCADlBH,mBAOK,MAAA;AAAA,oBALF,WAAW,CAAC;AAAA,oBACb,OAAM;AAAA,oBACL,sBAAO,OAAO;AAAA,kBAAA,mBAEZG,MAAK,GAAA,CAAA;AAAA;;;YAIdL,mBAUQ,SAVR,YAUQ;AAAA,eATNC,UAAA,IAAA,GAAAC,mBAQKC,UAAA,MAAAC,WAPeL,MAAA,YAAA,GAAY,CAAtB,IAAI,MAAC;oCADfG,mBAQK,MAAA;AAAA,kBANF,WAAW,CAAC;AAAA,kBACb,OAAM;AAAA,gBAAA;mBAEND,UAAA,IAAA,GAAAC,mBAEKC,UAAA,MAAAC,WAFoB,IAAE,CAAf,OAAO,MAAC;wCAApBF,mBAEK,MAAA;AAAA,sBAFyB,KAAG,MAAQ,CAAC,IAAI,CAAC;AAAA,sBAAI,OAAM;AAAA,oBAAA,mBACpD,KAAK,GAAA,CAAA;AAAA;;;;;;;;;;;"}
1
+ {"version":3,"file":"EpTable.vue.js","sources":["../../../src/components/basics/EpTable.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs } from \"vue\";\nimport EpCard from \"../basics/EpCard.vue\";\nimport type { EpTableProps } from \"~/types/basics/EpTable\";\n\nconst props = defineProps<EpTableProps>();\n\nconst { headers, arrayContent, title } = toRefs(props);\n\nconst styleTh =\n \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:text-white\";\n</script>\n<template>\n <EpCard flat :title=\"title\">\n <table class=\"min-w-full divide-y shadow\">\n <thead class=\"ep-surface\" v-if=\"headers\">\n <tr>\n <th\n v-for=\"(title, i) in headers\"\n :key=\"`th-${i}`\"\n scope=\"col\"\n :class=\"styleTh\"\n >\n {{ title }}\n </th>\n </tr>\n </thead>\n <tbody class=\"divide-y\">\n <tr\n v-for=\"(tr, i) in arrayContent\"\n :key=\"`tr-${i}`\"\n class=\"hover:bg-gray-200 dark:hover:bg-black\"\n >\n <td v-for=\"(value, j) in tr\" :key=\"`td-${i}-${j}`\" class=\"px-6 py-4\">\n {{ value }}\n </td>\n </tr>\n </tbody>\n </table>\n </EpCard>\n</template>\n"],"names":["_createBlock","EpCard","_unref","_createElementVNode","_openBlock","_createElementBlock","_Fragment","_renderList","title"],"mappings":";;;;;;;;AASA,MAAM,UACJ;;;;;;;;;AALF,UAAM,QAAQ;AAEd,UAAM,EAAE,SAAS,cAAc,MAAA,IAAU,OAAO,KAAK;;0BAMnDA,YA0BSC,aAAA;AAAA,QA1BD,MAAA;AAAA,QAAM,OAAOC,MAAA,KAAA;AAAA,MAAA;yBACnB,MAwBQ;AAAA,UAxBRC,mBAwBQ,SAxBR,YAwBQ;AAAA,YAvB0BD,MAAA,OAAA,KAAhCE,aAAAC,mBAWQ,SAXR,YAWQ;AAAA,cAVNF,mBASK,MAAA,MAAA;AAAA,iBARHC,UAAA,IAAA,GAAAC,mBAOKC,UAAA,MAAAC,WANkBL,MAAA,OAAA,GAAO,CAApBM,QAAO,MAAC;sCADlBH,mBAOK,MAAA;AAAA,oBALF,WAAW,CAAC;AAAA,oBACb,OAAM;AAAA,oBACL,sBAAO,OAAO;AAAA,kBAAA,mBAEZG,MAAK,GAAA,CAAA;AAAA;;;YAIdL,mBAUQ,SAVR,YAUQ;AAAA,eATNC,UAAA,IAAA,GAAAC,mBAQKC,UAAA,MAAAC,WAPeL,MAAA,YAAA,GAAY,CAAtB,IAAI,MAAC;oCADfG,mBAQK,MAAA;AAAA,kBANF,WAAW,CAAC;AAAA,kBACb,OAAM;AAAA,gBAAA;mBAEND,UAAA,IAAA,GAAAC,mBAEKC,UAAA,MAAAC,WAFoB,IAAE,CAAf,OAAO,MAAC;wCAApBF,mBAEK,MAAA;AAAA,sBAFyB,KAAG,MAAQ,CAAC,IAAI,CAAC;AAAA,sBAAI,OAAM;AAAA,oBAAA,mBACpD,KAAK,GAAA,CAAA;AAAA;;;;;;;;;;;"}
@@ -27,9 +27,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
27
27
  container.innerHTML = html;
28
28
  const nodes = [];
29
29
  container.childNodes.forEach((node) => {
30
- var _a;
30
+ var _a, _b;
31
31
  if (node.nodeType === 3) {
32
- if (node.textContent) nodes.push(node.textContent);
32
+ const text = (_a = node.textContent) == null ? void 0 : _a.trim();
33
+ if (text) nodes.push(text);
33
34
  } else if (node.nodeType === 1) {
34
35
  const el = node;
35
36
  if (el.classList.contains("ep_glossary_item")) {
@@ -64,7 +65,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
64
65
  word: render_word,
65
66
  variations: stringVariations,
66
67
  graminfo: term.graminfo,
67
- src: (_a = term.img) != null ? _a : "",
68
+ src: (_b = term.img) != null ? _b : "",
68
69
  domain: term.domain,
69
70
  relations: stringRelations,
70
71
  labelDefinition: props.labelDefinition,
@@ -1 +1 @@
1
- {"version":3,"file":"EpText.vue.js","sources":["../../../src/components/basics/EpText.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRefs, h, type VNode } from \"vue\";\nimport type { Glossary } from \"~/types/Glossary\"\nimport { isHtml } from \"~/composables/isHtml\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport EpAccordeon from \"~/components/interactions/EpAccordeon.vue\";\nimport EpTerm from \"~/components/medias/EpTerm.vue\";\nimport type { EpTextProps } from \"~/types/basics/EpText\";\n\nconst props = withDefaults(defineProps<EpTextProps>(), {\n compact: false,\n labelDefinition: \"Définition\",\n labelDomain: \"Domaine\",\n labelVariations: \"Variations\",\n labelRelations: \"Relations\",\n labelClose: \"Fermer\",\n});\n\nconst { compact } = toRefs(props);\n\nconst renderTitle = computed(() => props.title || \"En savoir plus\");\n\nfunction parseHtmlToVNodes(html: string): (VNode | string)[] {\n const container = document.createElement(\"div\");\n container.innerHTML = html;\n\n const nodes: (VNode | string)[] = [];\n\n container.childNodes.forEach((node) => {\n if (node.nodeType === 3) {\n // Text node\n if (node.textContent) nodes.push(node.textContent);\n } else if (node.nodeType === 1) {\n const el = node as HTMLElement;\n\n if (el.classList.contains(\"ep_glossary_item\")) {\n const id = el.getAttribute(\"data-id\");\n const render_word = el.innerHTML;\n\n let _glossary: Glossary[] = [];\n if (props.glossary) {\n _glossary = props.glossary.map((item) => ({\n ...item,\n id: item.documentId ?? item.id,\n }));\n }\n\n const term = _glossary.find((word) => word.id === id);\n\n if (term) {\n const foundedRelations = _glossary.filter((x) =>\n x.relation.some((r: string) => r === id)\n );\n const termsRelation = foundedRelations.map((x) => x.term);\n const stringRelations = termsRelation.join(', ')\n const stringVariations = term.variation.join(', ')\n\n nodes.push(\n h(\n \"div\",\n { style: \"display:inline\" },\n h(\n EpTerm,\n {\n term: term.term,\n word: render_word,\n variations: stringVariations,\n graminfo: term.graminfo,\n src: term.img ?? \"\",\n domain: term.domain,\n relations: stringRelations,\n labelDefinition: props.labelDefinition,\n labelDomain: props.labelDomain,\n labelVariations: props.labelVariations,\n labelRelations: props.labelRelations,\n labelClose: props.labelClose,\n },\n () => {\n const def = useRenderText(term.definition);\n if (!isHtml(def)) {\n return h(\"div\", { innerHTML: def });\n }\n return parseHtmlToVNodes(def);\n }\n )\n )\n );\n return;\n }\n }\n nodes.push(\n h(\n el.tagName.toLowerCase(),\n {},\n parseHtmlToVNodes(el.innerHTML) \n )\n );\n }\n });\n\n return nodes;\n}\n\nconst renderText = computed(() => {\n if (!props.content) return [h(\"div\")];\n if (!isHtml(props.content)) {\n return [h(\"div\", { innerHTML: useRenderText(props.content) })];\n }\n\n const formatted = useRenderText(props.content)\n\n return parseHtmlToVNodes(formatted);\n});\n</script>\n\n<template>\n <div class=\"px-2 text-black dark:text-white\">\n <EpAccordeon v-if=\"compact\" outlined :title=\"renderTitle\">\n <div>\n <component :is=\"node\" v-for=\"(node, i) in renderText\" :key=\"i\" />\n </div>\n </EpAccordeon>\n <div v-else>\n <component :is=\"node\" v-for=\"(node, i) in renderText\" :key=\"i\" />\n </div>\n </div>\n</template>\n"],"names":["_a","EpTerm","_openBlock","_createElementBlock","_unref","_createBlock","EpAccordeon","_createElementVNode","_Fragment","_renderList","_resolveDynamicComponent"],"mappings":"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"}
1
+ {"version":3,"file":"EpText.vue.js","sources":["../../../src/components/basics/EpText.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRefs, h, type VNode } from \"vue\";\nimport type { Glossary } from \"~/types/Glossary\"\nimport { isHtml } from \"~/composables/isHtml\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport EpAccordeon from \"~/components/interactions/EpAccordeon.vue\";\nimport EpTerm from \"~/components/medias/EpTerm.vue\";\nimport type { EpTextProps } from \"~/types/basics/EpText\";\n\nconst props = withDefaults(defineProps<EpTextProps>(), {\n compact: false,\n labelDefinition: \"Définition\",\n labelDomain: \"Domaine\",\n labelVariations: \"Variations\",\n labelRelations: \"Relations\",\n labelClose: \"Fermer\",\n});\n\nconst { compact } = toRefs(props);\n\nconst renderTitle = computed(() => props.title || \"En savoir plus\");\n\nfunction parseHtmlToVNodes(html: string): (VNode | string)[] {\n const container = document.createElement(\"div\");\n container.innerHTML = html;\n\n const nodes: (VNode | string)[] = [];\n\n container.childNodes.forEach((node) => {\n if (node.nodeType === 3) {\n // Text node\n const text = node.textContent?.trim();\n if (text) nodes.push(text); // only push non-empty text\n } else if (node.nodeType === 1) {\n const el = node as HTMLElement;\n\n if (el.classList.contains(\"ep_glossary_item\")) {\n const id = el.getAttribute(\"data-id\");\n const render_word = el.innerHTML;\n\n let _glossary: Glossary[] = [];\n if (props.glossary) {\n _glossary = props.glossary.map((item) => ({\n ...item,\n id: item.documentId ?? item.id\n }));\n }\n\n const term = _glossary.find((word) => word.id === id);\n\n if (term) {\n const foundedRelations = _glossary.filter((x) =>\n x.relation.some((r: string) => r === id)\n );\n const termsRelation = foundedRelations.map((x) => x.term);\n const stringRelations = termsRelation.join(', ')\n const stringVariations = term.variation.join(', ')\n\n nodes.push(\n h(\n \"div\",\n { style: \"display:inline\" },\n h(\n EpTerm,\n {\n term: term.term,\n word: render_word,\n variations: stringVariations,\n graminfo: term.graminfo,\n src: term.img ?? \"\",\n domain: term.domain,\n relations: stringRelations,\n labelDefinition: props.labelDefinition,\n labelDomain: props.labelDomain,\n labelVariations: props.labelVariations,\n labelRelations: props.labelRelations,\n labelClose: props.labelClose,\n },\n () => {\n const def = useRenderText(term.definition);\n if (!isHtml(def)) {\n return h(\"div\", { innerHTML: def });\n }\n return parseHtmlToVNodes(def);\n }\n )\n )\n );\n return;\n }\n }\n nodes.push(\n h(\n el.tagName.toLowerCase(),\n {},\n parseHtmlToVNodes(el.innerHTML) \n )\n );\n }\n });\n\n return nodes;\n}\n\nconst renderText = computed(() => {\n if (!props.content) return [h(\"div\")];\n if (!isHtml(props.content)) {\n return [h(\"div\", { innerHTML: useRenderText(props.content) })];\n }\n\n const formatted = useRenderText(props.content)\n\n return parseHtmlToVNodes(formatted);\n});\n</script>\n\n<template>\n <div class=\"px-2 text-black dark:text-white\">\n <EpAccordeon v-if=\"compact\" outlined :title=\"renderTitle\">\n <div>\n <component :is=\"node\" v-for=\"(node, i) in renderText\" :key=\"i\" />\n </div>\n </EpAccordeon>\n <div v-else>\n <component :is=\"node\" v-for=\"(node, i) in renderText\" :key=\"i\" />\n </div>\n </div>\n</template>\n"],"names":["_a","EpTerm","_openBlock","_createElementBlock","_unref","_createBlock","EpAccordeon","_createElementVNode","_Fragment","_renderList","_resolveDynamicComponent"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./EpBranchingScenario.vue2.js";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
4
- const Comp = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-6611fc55"]]);
4
+ const Comp = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c85132a3"]]);
5
5
  export {
6
6
  Comp as default
7
7
  };
@@ -126,7 +126,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
126
126
  var _a, _b;
127
127
  return openBlock(), createElementBlock("div", null, [
128
128
  createElementVNode("div", {
129
- class: "bg-gray-200 dark:bg-slate-800 rounded-md p-4 flex flex-col",
129
+ class: "ep-surface-2 rounded-md p-4 flex flex-col",
130
130
  style: normalizeStyle({ minHeight: "500px", backgroundColor: _ctx.bgColor })
131
131
  }, [
132
132
  createElementVNode("div", _hoisted_1, [
@@ -1 +1 @@
1
- {"version":3,"file":"EpBranchingScenario.vue2.js","sources":["../../../src/components/educationals/EpBranchingScenario.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from \"vue\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport type { TreeNode } from \"~/types/Hierarchy\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport Details from \"~/components/tools/Details.vue\";\nimport EpModal from \"~/components/interactions/EpModal.vue\";\nimport EpHierarchy from \"~/components/medias/EpHierarchy.vue\";\nimport EpBtn from \"../basics/EpBtn.vue\";\nimport { mdiArrowLeft } from \"@mdi/js\";\nimport TextMedia from \"~/components/tools/TextMedia.vue\";\nimport type { EpBranchingScenarioProps } from \"~/types/educationals/EpBranchingScenario\";\n\nconst props = withDefaults(defineProps<EpBranchingScenarioProps>(), {\n initialInstruction: null,\n transitionAnimation: \"fade\",\n labelFinish: \"Vous avez terminé le scénario!\",\n labelYourPath: \"Votre parcours\",\n labelShowFullPath: \"Voir le parcours au complet\",\n labelClose: \"Fermer\",\n labelRestart: \"Recommencer\",\n labelStart: \"Commencer\",\n colorRect: \"fill-main-color-400\",\n colorPath: \"stroke-yellow-400\",\n});\n\nconst showPath = ref(false);\nconst path = ref<TreeNode[]>([]);\nconst userPath = ref<TreeNode | null>(null);\nconst currentOption = ref<TreeNode | null>(null);\n\n// Manage the introductory part\nconst isIntroductoryPart = ref(true);\n\nconst start = () => {\n isIntroductoryPart.value = false;\n currentOption.value = props.decisionTree;\n};\n\nconst styleIntro = computed(() => {\n const noInstruction = !props.initialInstruction;\n const noMedia = !props.media;\n\n if (noInstruction && noMedia) {\n return \"pt-44\";\n }\n\n return \"\";\n});\n\n// Return function\nconst goToPrevious = () => {\n //if(notTheEnd.value){\n if (path.value.length === 0) {\n isIntroductoryPart.value = true;\n currentOption.value = null;\n return;\n }\n\n path.value.pop();\n // Get the previous option in the path\n const lastOption = path.value[path.value.length - 1];\n\n if (lastOption) {\n currentOption.value = lastOption;\n } else {\n currentOption.value = props.decisionTree;\n }\n};\n\n// Restart function\nconst restart = () => {\n //currentSlide.value = 0;\n currentOption.value = null;\n isIntroductoryPart.value = true;\n path.value = [];\n};\n\nconst nextSlide = (option: TreeNode) => {\n //currentSlide.value++\n path.value.push(option);\n if (option.children && option.children.length > 0) {\n currentOption.value = option; // drill into next level\n } else {\n currentOption.value = null; // reached the end (leaf node)\n userPath.value = convertOptionToTreeNode(props.decisionTree, path.value);\n }\n};\n\n//helper function\nfunction convertOptionToTreeNode(option: TreeNode, path: TreeNode[]): TreeNode {\n const isActive = path.includes(option);\n return {\n name: option.name,\n text: option.text,\n component: option.component,\n active: isActive,\n children: option.children?.map((child) =>\n convertOptionToTreeNode(child, path)\n ),\n };\n}\n</script>\n\n<template>\n <div>\n <div\n class=\"bg-gray-200 dark:bg-slate-800 rounded-md p-4 flex flex-col\"\n :style=\"{ minHeight: '500px', backgroundColor: bgColor }\"\n >\n <!-- <div v-for=\"item in path\" :key=\"item.name\">\n <span class=\"text-xs\">{{ item.name }}</span>\n </div> -->\n <!-- Header (fixed at top of card) -->\n <div class=\"mb-2\">\n <h1 class=\"font-bold text-3xl text-center\">{{ title }}</h1>\n <div v-if=\"currentOption\" class=\"mt-2\">\n <EpBtn\n type=\"primary\"\n rounded\n size=\"small\"\n :extra-class=\"`${transitionAnimation}`\"\n @click=\"goToPrevious\"\n >\n <EpIcon :icon-path=\"mdiArrowLeft\" size=\"25\" />\n </EpBtn>\n </div>\n </div>\n\n <!-- Content Area -->\n <div>\n <!-- Introductory Part -->\n <div v-if=\"isIntroductoryPart\" class=\"w-full flex flex-col space-y-6\">\n <TextMedia\n :text=\"initialInstruction ?? ''\"\n :media=\"media\"\n :cols=\"initialTwoCols\"\n />\n <div :class=\"`justify-center flex ${styleIntro}`\">\n <EpBtn type=\"primary\" rounded @click=\"start\">{{\n labelStart\n }}</EpBtn>\n </div>\n </div>\n\n <!-- Slides -->\n <template v-else-if=\"currentOption && !isIntroductoryPart\">\n <div class=\"w-full\">\n <div :class=\"`${transitionAnimation} my-12`\">\n <TextMedia\n :text=\"currentOption.text ?? ''\"\n :media=\"currentOption.component\"\n :cols=\"currentOption.cols\"\n />\n\n <div\n :class=\"`w-full my-4 mx-4 flex flex-wrap gap-2 justify-center items-center`\"\n >\n <template\n v-for=\"(option, index) in currentOption.children\"\n :key=\"`option-${index}`\"\n >\n <EpBtn\n rounded\n type=\"primary\"\n class=\"flex-1 min-w-[120px] sm:min-w-[160px] max-w-xs\"\n @click=\"nextSlide(option)\"\n >\n {{ option.name }}\n </EpBtn>\n </template>\n </div>\n </div>\n </div>\n </template>\n\n <!--show path-->\n <div v-else>\n <!-- <template v-if=\"userPath\">\n <EpHierarchy :nodes=\"userPath\"/>\n </template> -->\n <h3 class=\"text-xl text-center font-semibold\">{{ labelFinish }}</h3>\n <div\n :class=\"`flex gap-6 mt-3 ${\n !generalFeedback ? 'w-3/6 mx-auto' : ''\n }`\"\n >\n <div class=\"w-full\">\n <h3 class=\"font-semibold mb-3\">{{ labelYourPath }}</h3>\n <div class=\"overflow-auto p-2\" :style=\"{ height: '200px' }\">\n <template v-for=\"(item, i) in path\" :key=\"`user-choice-${i}`\">\n <div class=\"mb-2\">\n <Details\n :content=\"item.text ?? ''\"\n :title=\"item.name\"\n :media=\"item.component\"\n />\n </div>\n </template>\n </div>\n <div class=\"flex justify-center mt-2\">\n <EpBtn type=\"info\" rounded @click=\"showPath = true\">{{\n labelShowFullPath\n }}</EpBtn>\n </div>\n <EpModal v-if=\"userPath\" v-model=\"showPath\">\n <EpHierarchy\n :nodes=\"userPath\"\n :is-cluster=\"props.isCluster\"\n :color-path=\"props.colorPath\"\n :color-rect=\"props.colorRect\"\n />\n <div class=\"flex justify-end mt-4\">\n <EpBtn\n @click=\"showPath = false\"\n type=\"error\"\n outlined\n rounded\n >{{ labelClose }}</EpBtn\n >\n </div>\n </EpModal>\n </div>\n <div\n v-if=\"generalFeedback\"\n class=\"flex w-full flex-col col-span-1 items-center px-4 border-l-2 border-gray-700 overflow-auto\"\n >\n <div v-html=\"useRenderText(generalFeedback)\" />\n </div>\n </div>\n\n <div class=\"flex justify-center mt-2\">\n <EpBtn rounded type=\"warning\" @click=\"restart\">{{\n labelRestart\n }}</EpBtn>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n@keyframes fade {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes scale {\n 0% {\n transform: scale(0.5);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes slideY {\n 0% {\n transform: translateY(-100%);\n opacity: 0;\n }\n 100% {\n transform: translateY(0);\n opacity: 1;\n }\n}\n\n/* Transition animation */\n.fade {\n animation: fade 1s;\n}\n\n.scale {\n animation: scale 1s;\n}\n\n.slideY {\n animation: slideY 1s;\n}\n</style>\n"],"names":["path","_createElementBlock","_createElementVNode","bgColor","_toDisplayString","title","_openBlock","_createVNode","EpBtn","transitionAnimation","EpIcon","_unref","TextMedia","initialInstruction","media","initialTwoCols","labelStart","_Fragment","_createBlock","_createTextVNode","labelFinish","_normalizeClass","generalFeedback","labelYourPath","_renderList","Details","_a","labelShowFullPath","EpModal","EpHierarchy","labelClose","labelRestart"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,UAAM,QAAQ;AAad,UAAM,WAAW,IAAI,KAAK;AAC1B,UAAM,OAAO,IAAgB,EAAE;AAC/B,UAAM,WAAW,IAAqB,IAAI;AAC1C,UAAM,gBAAgB,IAAqB,IAAI;AAG/C,UAAM,qBAAqB,IAAI,IAAI;AAEnC,UAAM,QAAQ,MAAM;AAClB,yBAAmB,QAAQ;AAC3B,oBAAc,QAAQ,MAAM;AAAA,IAC9B;AAEA,UAAM,aAAa,SAAS,MAAM;AAChC,YAAM,gBAAgB,CAAC,MAAM;AAC7B,YAAM,UAAU,CAAC,MAAM;AAEvB,UAAI,iBAAiB,SAAS;AAC5B,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT,CAAC;AAGD,UAAM,eAAe,MAAM;AAEzB,UAAI,KAAK,MAAM,WAAW,GAAG;AAC3B,2BAAmB,QAAQ;AAC3B,sBAAc,QAAQ;AACtB;AAAA,MACF;AAEA,WAAK,MAAM,IAAA;AAEX,YAAM,aAAa,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAEnD,UAAI,YAAY;AACd,sBAAc,QAAQ;AAAA,MACxB,OAAO;AACL,sBAAc,QAAQ,MAAM;AAAA,MAC9B;AAAA,IACF;AAGA,UAAM,UAAU,MAAM;AAEpB,oBAAc,QAAQ;AACtB,yBAAmB,QAAQ;AAC3B,WAAK,QAAQ,CAAA;AAAA,IACf;AAEA,UAAM,YAAY,CAAC,WAAqB;AAEtC,WAAK,MAAM,KAAK,MAAM;AACtB,UAAI,OAAO,YAAY,OAAO,SAAS,SAAS,GAAG;AACjD,sBAAc,QAAQ;AAAA,MACxB,OAAO;AACL,sBAAc,QAAQ;AACtB,iBAAS,QAAQ,wBAAwB,MAAM,cAAc,KAAK,KAAK;AAAA,MACzE;AAAA,IACF;AAGA,aAAS,wBAAwB,QAAkBA,OAA4B;;AAC7E,YAAM,WAAWA,MAAK,SAAS,MAAM;AACrC,aAAO;AAAA,QACL,MAAM,OAAO;AAAA,QACb,MAAM,OAAO;AAAA,QACb,WAAW,OAAO;AAAA,QAClB,QAAQ;AAAA,QACR,WAAU,YAAO,aAAP,mBAAiB;AAAA,UAAI,CAAC,UAC9B,wBAAwB,OAAOA,KAAI;AAAA;AAAA,MACrC;AAAA,IAEJ;;;0BAIEC,mBAsIM,OAAA,MAAA;AAAA,QArIJC,mBAoIM,OAAA;AAAA,UAnIJ,OAAM;AAAA,UACL,6DAA8CC,KAAAA,SAAO;AAAA,QAAA;UAMtDD,mBAaM,OAbN,YAaM;AAAA,YAZJA,mBAA2D,MAA3D,YAA2DE,gBAAbC,KAAAA,KAAK,GAAA,CAAA;AAAA,YACxC,cAAA,SAAXC,UAAA,GAAAL,mBAUM,OAVN,YAUM;AAAA,cATJM,YAQQC,aAAA;AAAA,gBAPN,MAAK;AAAA,gBACL,SAAA;AAAA,gBACA,MAAK;AAAA,gBACJ,kBAAgBC,KAAAA,mBAAmB;AAAA,gBACnC,SAAO;AAAA,cAAA;iCAER,MAA8C;AAAA,kBAA9CF,YAA8CG,aAAA;AAAA,oBAArC,aAAWC,MAAA,YAAA;AAAA,oBAAc,MAAK;AAAA,kBAAA;;;;;;UAM7CT,mBA2GM,OAAA,MAAA;AAAA,YAzGO,mBAAA,SAAXI,UAAA,GAAAL,mBAWM,OAXN,YAWM;AAAA,cAVJM,YAIEK,aAAA;AAAA,gBAHC,OAAMC,UAAAA,uBAAAA,YAAkB;AAAA,gBACxB,OAAOC,KAAAA;AAAAA,gBACP,MAAMC,KAAAA;AAAAA,cAAAA;cAETb,mBAIM,OAAA;AAAA,gBAJA,6CAA8B,WAAA,KAAU,EAAA;AAAA,cAAA;gBAC5CK,YAEUC,aAAA;AAAA,kBAFH,MAAK;AAAA,kBAAU,SAAA;AAAA,kBAAS,SAAO;AAAA,gBAAA;mCAAO,MAE3C;AAAA,oDADAQ,KAAAA,UAAU,GAAA,CAAA;AAAA,kBAAA;;;;kBAMK,cAAA,UAAkB,mBAAA,SACrCV,aAAAL,mBA0BM,OA1BN,YA0BM;AAAA,cAzBJC,mBAwBM,OAAA;AAAA,gBAxBA,yBAAUO,KAAAA,mBAAmB,QAAA;AAAA,cAAA;gBACjCF,YAIEK,aAAA;AAAA,kBAHC,OAAM,mBAAA,MAAc,SAAd,YAAkB;AAAA,kBACxB,OAAO,cAAA,MAAc;AAAA,kBACrB,MAAM,cAAA,MAAc;AAAA,gBAAA;gBAGvBV,mBAgBM,OAhBN,YAgBM;AAAA,mBAbJI,UAAA,IAAA,GAAAL,mBAYWgB,2BAXiB,cAAA,MAAc,UAAQ,CAAxC,QAAQ,UAAK;wCAGrBC,YAOQV,aAAA;AAAA,qCATQ,KAAK;AAAA,sBAGnB,SAAA;AAAA,sBACA,MAAK;AAAA,sBACL,OAAM;AAAA,sBACL,SAAK,CAAA,WAAE,UAAU,MAAM;AAAA,oBAAA;uCAExB,MAAiB;AAAA,wBAAdW,gBAAAf,gBAAA,OAAO,IAAI,GAAA,CAAA;AAAA,sBAAA;;;;;;gCAS1BH,mBA2DM,OAAA,YAAA;AAAA,cAvDJC,mBAAoE,MAApE,YAAoEE,gBAAnBgB,KAAAA,WAAW,GAAA,CAAA;AAAA,cAC5DlB,mBA+CM,OAAA;AAAA,gBA9CH,OAAKmB,eAAA,oBAAqCC,KAAAA,kBAAe,kBAAA;;gBAI1DpB,mBAmCM,OAnCN,YAmCM;AAAA,kBAlCJA,mBAAuD,MAAvD,aAAuDE,gBAArBmB,KAAAA,aAAa,GAAA,CAAA;AAAA,kBAC/CrB,mBAUM,OAVN,aAUM;AAAA,qBATJI,UAAA,IAAA,GAAAL,mBAQWgB,UAAA,MAAAO,WARmB,KAAA,OAAI,CAAhB,MAAM,MAAC;;0CACvBvB,mBAMM,OAAA;AAAA,4CAPiD,CAAC;AAAA,wBACnD,OAAM;AAAA,sBAAA;wBACTM,YAIEkB,aAAA;AAAA,0BAHC,UAASC,MAAA,KAAK,SAAL,OAAAA,MAAS;AAAA,0BAClB,OAAO,KAAK;AAAA,0BACZ,OAAO,KAAK;AAAA,wBAAA;;;;kBAKrBxB,mBAIM,OAJN,aAIM;AAAA,oBAHJK,YAEUC,aAAA;AAAA,sBAFH,MAAK;AAAA,sBAAO,SAAA;AAAA,sBAAS,+CAAO,SAAA,QAAQ;AAAA,oBAAA;uCAAS,MAElD;AAAA,wDADAmB,KAAAA,iBAAiB,GAAA,CAAA;AAAA,sBAAA;;;;kBAGN,SAAA,sBAAfT,YAgBUU,aAAA;AAAA;gCAhBwB,SAAA;AAAA,iFAAA,SAAQ,QAAA;AAAA,kBAAA;qCACxC,MAKE;AAAA,sBALFrB,YAKEsB,MAAA;AAAA,wBAJC,OAAO,SAAA;AAAA,wBACP,cAAY,MAAM;AAAA,wBAClB,cAAY,MAAM;AAAA,wBAClB,cAAY,MAAM;AAAA,sBAAA;sBAErB3B,mBAQM,OARN,aAQM;AAAA,wBAPJK,YAMCC,aAAA;AAAA,0BALE,+CAAO,SAAA,QAAQ;AAAA,0BAChB,MAAK;AAAA,0BACL,UAAA;AAAA,0BACA,SAAA;AAAA,wBAAA;2CACC,MAAgB;AAAA,4DAAbsB,KAAAA,UAAU,GAAA,CAAA;AAAA,0BAAA;;;;;;;;gBAMdR,KAAAA,mBADRhB,UAAA,GAAAL,mBAKM,OALN,aAKM;AAAA,kBADJC,mBAA+C,OAAA;AAAA,oBAA1C,WAAQS,MAAA,aAAA,EAAcW,KAAAA,eAAe;AAAA,kBAAA;;;cAI9CpB,mBAIM,OAJN,aAIM;AAAA,gBAHJK,YAEUC,aAAA;AAAA,kBAFH,SAAA;AAAA,kBAAQ,MAAK;AAAA,kBAAW,SAAO;AAAA,gBAAA;mCAAS,MAE7C;AAAA,oDADAuB,KAAAA,YAAY,GAAA,CAAA;AAAA,kBAAA;;;;;;;;;;;"}
1
+ {"version":3,"file":"EpBranchingScenario.vue2.js","sources":["../../../src/components/educationals/EpBranchingScenario.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from \"vue\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport type { TreeNode } from \"~/types/Hierarchy\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport Details from \"~/components/tools/Details.vue\";\nimport EpModal from \"~/components/interactions/EpModal.vue\";\nimport EpHierarchy from \"~/components/medias/EpHierarchy.vue\";\nimport EpBtn from \"../basics/EpBtn.vue\";\nimport { mdiArrowLeft } from \"@mdi/js\";\nimport TextMedia from \"~/components/tools/TextMedia.vue\";\nimport type { EpBranchingScenarioProps } from \"~/types/educationals/EpBranchingScenario\";\n\nconst props = withDefaults(defineProps<EpBranchingScenarioProps>(), {\n initialInstruction: null,\n transitionAnimation: \"fade\",\n labelFinish: \"Vous avez terminé le scénario!\",\n labelYourPath: \"Votre parcours\",\n labelShowFullPath: \"Voir le parcours au complet\",\n labelClose: \"Fermer\",\n labelRestart: \"Recommencer\",\n labelStart: \"Commencer\",\n colorRect: \"fill-main-color-400\",\n colorPath: \"stroke-yellow-400\",\n});\n\nconst showPath = ref(false);\nconst path = ref<TreeNode[]>([]);\nconst userPath = ref<TreeNode | null>(null);\nconst currentOption = ref<TreeNode | null>(null);\n\n// Manage the introductory part\nconst isIntroductoryPart = ref(true);\n\nconst start = () => {\n isIntroductoryPart.value = false;\n currentOption.value = props.decisionTree;\n};\n\nconst styleIntro = computed(() => {\n const noInstruction = !props.initialInstruction;\n const noMedia = !props.media;\n\n if (noInstruction && noMedia) {\n return \"pt-44\";\n }\n\n return \"\";\n});\n\n// Return function\nconst goToPrevious = () => {\n //if(notTheEnd.value){\n if (path.value.length === 0) {\n isIntroductoryPart.value = true;\n currentOption.value = null;\n return;\n }\n\n path.value.pop();\n // Get the previous option in the path\n const lastOption = path.value[path.value.length - 1];\n\n if (lastOption) {\n currentOption.value = lastOption;\n } else {\n currentOption.value = props.decisionTree;\n }\n};\n\n// Restart function\nconst restart = () => {\n //currentSlide.value = 0;\n currentOption.value = null;\n isIntroductoryPart.value = true;\n path.value = [];\n};\n\nconst nextSlide = (option: TreeNode) => {\n //currentSlide.value++\n path.value.push(option);\n if (option.children && option.children.length > 0) {\n currentOption.value = option; // drill into next level\n } else {\n currentOption.value = null; // reached the end (leaf node)\n userPath.value = convertOptionToTreeNode(props.decisionTree, path.value);\n }\n};\n\n//helper function\nfunction convertOptionToTreeNode(option: TreeNode, path: TreeNode[]): TreeNode {\n const isActive = path.includes(option);\n return {\n name: option.name,\n text: option.text,\n component: option.component,\n active: isActive,\n children: option.children?.map((child) =>\n convertOptionToTreeNode(child, path)\n ),\n };\n}\n</script>\n\n<template>\n <div>\n <div\n class=\"ep-surface-2 rounded-md p-4 flex flex-col\"\n :style=\"{ minHeight: '500px', backgroundColor: bgColor }\"\n >\n <!-- <div v-for=\"item in path\" :key=\"item.name\">\n <span class=\"text-xs\">{{ item.name }}</span>\n </div> -->\n <!-- Header (fixed at top of card) -->\n <div class=\"mb-2\">\n <h1 class=\"font-bold text-3xl text-center\">{{ title }}</h1>\n <div v-if=\"currentOption\" class=\"mt-2\">\n <EpBtn\n type=\"primary\"\n rounded\n size=\"small\"\n :extra-class=\"`${transitionAnimation}`\"\n @click=\"goToPrevious\"\n >\n <EpIcon :icon-path=\"mdiArrowLeft\" size=\"25\" />\n </EpBtn>\n </div>\n </div>\n\n <!-- Content Area -->\n <div>\n <!-- Introductory Part -->\n <div v-if=\"isIntroductoryPart\" class=\"w-full flex flex-col space-y-6\">\n <TextMedia\n :text=\"initialInstruction ?? ''\"\n :media=\"media\"\n :cols=\"initialTwoCols\"\n />\n <div :class=\"`justify-center flex ${styleIntro}`\">\n <EpBtn type=\"primary\" rounded @click=\"start\">{{\n labelStart\n }}</EpBtn>\n </div>\n </div>\n\n <!-- Slides -->\n <template v-else-if=\"currentOption && !isIntroductoryPart\">\n <div class=\"w-full\">\n <div :class=\"`${transitionAnimation} my-12`\">\n <TextMedia\n :text=\"currentOption.text ?? ''\"\n :media=\"currentOption.component\"\n :cols=\"currentOption.cols\"\n />\n\n <div\n :class=\"`w-full my-4 mx-4 flex flex-wrap gap-2 justify-center items-center`\"\n >\n <template\n v-for=\"(option, index) in currentOption.children\"\n :key=\"`option-${index}`\"\n >\n <EpBtn\n rounded\n type=\"primary\"\n class=\"flex-1 min-w-[120px] sm:min-w-[160px] max-w-xs\"\n @click=\"nextSlide(option)\"\n >\n {{ option.name }}\n </EpBtn>\n </template>\n </div>\n </div>\n </div>\n </template>\n\n <!--show path-->\n <div v-else>\n <!-- <template v-if=\"userPath\">\n <EpHierarchy :nodes=\"userPath\"/>\n </template> -->\n <h3 class=\"text-xl text-center font-semibold\">{{ labelFinish }}</h3>\n <div\n :class=\"`flex gap-6 mt-3 ${\n !generalFeedback ? 'w-3/6 mx-auto' : ''\n }`\"\n >\n <div class=\"w-full\">\n <h3 class=\"font-semibold mb-3\">{{ labelYourPath }}</h3>\n <div class=\"overflow-auto p-2\" :style=\"{ height: '200px' }\">\n <template v-for=\"(item, i) in path\" :key=\"`user-choice-${i}`\">\n <div class=\"mb-2\">\n <Details\n :content=\"item.text ?? ''\"\n :title=\"item.name\"\n :media=\"item.component\"\n />\n </div>\n </template>\n </div>\n <div class=\"flex justify-center mt-2\">\n <EpBtn type=\"info\" rounded @click=\"showPath = true\">{{\n labelShowFullPath\n }}</EpBtn>\n </div>\n <EpModal v-if=\"userPath\" v-model=\"showPath\">\n <EpHierarchy\n :nodes=\"userPath\"\n :is-cluster=\"props.isCluster\"\n :color-path=\"props.colorPath\"\n :color-rect=\"props.colorRect\"\n />\n <div class=\"flex justify-end mt-4\">\n <EpBtn\n @click=\"showPath = false\"\n type=\"error\"\n outlined\n rounded\n >{{ labelClose }}</EpBtn\n >\n </div>\n </EpModal>\n </div>\n <div\n v-if=\"generalFeedback\"\n class=\"flex w-full flex-col col-span-1 items-center px-4 border-l-2 border-gray-700 overflow-auto\"\n >\n <div v-html=\"useRenderText(generalFeedback)\" />\n </div>\n </div>\n\n <div class=\"flex justify-center mt-2\">\n <EpBtn rounded type=\"warning\" @click=\"restart\">{{\n labelRestart\n }}</EpBtn>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n@keyframes fade {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes scale {\n 0% {\n transform: scale(0.5);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes slideY {\n 0% {\n transform: translateY(-100%);\n opacity: 0;\n }\n 100% {\n transform: translateY(0);\n opacity: 1;\n }\n}\n\n/* Transition animation */\n.fade {\n animation: fade 1s;\n}\n\n.scale {\n animation: scale 1s;\n}\n\n.slideY {\n animation: slideY 1s;\n}\n</style>\n"],"names":["path","_createElementBlock","_createElementVNode","bgColor","_toDisplayString","title","_openBlock","_createVNode","EpBtn","transitionAnimation","EpIcon","_unref","TextMedia","initialInstruction","media","initialTwoCols","labelStart","_Fragment","_createBlock","_createTextVNode","labelFinish","_normalizeClass","generalFeedback","labelYourPath","_renderList","Details","_a","labelShowFullPath","EpModal","EpHierarchy","labelClose","labelRestart"],"mappings":"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"}
@@ -11,7 +11,7 @@ const _hoisted_2 = {
11
11
  };
12
12
  const _hoisted_3 = {
13
13
  key: 0,
14
- class: "font-light text-sm pb-1 tracking-wide dark:text-white"
14
+ class: "font-light text-sm pb-1 tracking-wide"
15
15
  };
16
16
  const _hoisted_4 = { class: "pt-2" };
17
17
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -25,7 +25,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
25
25
  type: { default: "neutral" },
26
26
  labelIntentions: { default: "" },
27
27
  hideIcon: { type: Boolean, default: false },
28
- flat: { type: Boolean, default: true }
28
+ flat: { type: Boolean, default: true },
29
+ card: { type: Boolean, default: false }
29
30
  },
30
31
  setup(__props) {
31
32
  const props = __props;
@@ -69,14 +70,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
69
70
  }
70
71
  return `flex flex-col justify-between`;
71
72
  });
73
+ const bgColor = computed(() => {
74
+ return props.card ? "ep-surface-2" : "ep-surface";
75
+ });
72
76
  const { title, hideIcon } = toRefs(props);
73
77
  return (_ctx, _cache) => {
74
78
  return openBlock(), createElementBlock("div", {
75
- class: normalizeClass(containerStyle.value)
79
+ class: normalizeClass(`${containerStyle.value} ${bgColor.value}`)
76
80
  }, [
77
81
  unref(title) || _ctx.mandateLevel ? (openBlock(), createElementBlock("div", {
78
82
  key: 0,
79
- class: normalizeClass(`${topBarStyle.value} ${paddingTopStyle.value} dark:base-dark`)
83
+ class: normalizeClass(`${topBarStyle.value} ${paddingTopStyle.value}`)
80
84
  }, [
81
85
  createElementVNode("h3", null, [
82
86
  !unref(hideIcon) ? (openBlock(), createBlock(_sfc_main$1, {
@@ -93,7 +97,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
93
97
  }, null, 8, ["mandateLevel"])) : createCommentVNode("", true)
94
98
  ], 2)) : createCommentVNode("", true),
95
99
  createElementVNode("div", {
96
- class: normalizeClass(`${boxPaddingStyle.value} dark:base-dark dark:text-white`)
100
+ class: normalizeClass(`${boxPaddingStyle.value} `)
97
101
  }, [
98
102
  hasIntentions.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
99
103
  _ctx.labelIntentions ? (openBlock(), createElementBlock("h4", _hoisted_3, toDisplayString(_ctx.labelIntentions), 1)) : createCommentVNode("", true),
@@ -106,7 +110,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
106
110
  ], 2),
107
111
  hasActions.value ? (openBlock(), createElementBlock("div", {
108
112
  key: 1,
109
- class: normalizeClass([`${bottomBarStyle.value} ${paddingBottomStyle.value}`, "dark:base-dark"])
113
+ class: normalizeClass(`${bottomBarStyle.value} ${paddingBottomStyle.value}`)
110
114
  }, [
111
115
  renderSlot(_ctx.$slots, "actions")
112
116
  ], 2)) : createCommentVNode("", true)
@@ -1 +1 @@
1
- {"version":3,"file":"EpEdu.vue.js","sources":["../../../src/components/educationals/EpEdu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed, useSlots, type SetupContext } from \"vue\";\nimport { mediaVariants } from \"~/types/Medias\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpDivider from \"~/components/basics/EpDivider.vue\";\nimport EpScope from \"~/components/educationals/EpScope.vue\";\nimport { mdiLeadPencil } from \"@mdi/js\";\nimport type { EpEduProps } from \"~/types/educationals/EpEdu\";\n\nconst props = withDefaults(defineProps<EpEduProps>(), {\n title: null,\n type: \"neutral\",\n hideIcon: false,\n flat: true,\n labelIntentions: \"\",\n});\n\n//get slots\nconst slots: SetupContext[\"slots\"] = useSlots();\n\nconst hasIntentions = computed(() => {\n return slots.intentions ? true : false;\n});\n\nconst hasActions = computed(() => {\n return slots.actions ? true : false;\n});\n\nconst renderIcon = computed(() => {\n if (props.icon) {\n return props.icon;\n }\n return mdiLeadPencil;\n});\n\nconst topBarStyle = computed(() => {\n return `${mediaVariants[props.type]} text-left ${\n props.flat ? \"\" : \"rounded-t-md\"\n } flex justify-between items-center `;\n});\n\nconst bottomBarStyle = computed(() => {\n return `${mediaVariants[props.type]} text-right`;\n});\n\nconst paddingTopStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `px-5 py-2`;\n }\n});\n\nconst paddingBottomStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `pr-5`;\n }\n});\nconst boxPaddingStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `px-5`;\n }\n});\n\nconst containerStyle = computed(() => {\n if (hasActions.value || hasIntentions.value || props.title) {\n return ` overflow-hidden ${\n props.flat ? \"\" : \"shadow-md\"\n } flex flex-col justify-start h-full`;\n }\n return `flex flex-col justify-between`;\n});\n\n// type, taxonomyLevel, courseCode, courseTitle, title, subtitle, height, src, color, synchrone\n\nconst { title, hideIcon } = toRefs(props);\n</script>\n\n<template>\n <div :class=\"containerStyle\">\n <div\n :class=\"`${topBarStyle} ${paddingTopStyle} dark:base-dark`\"\n v-if=\"title || mandateLevel\"\n >\n <!-- <EpIcon :size=\"24\" :icon-path=\"mdiBookOpenVariant\"/> -->\n <h3>\n <EpIcon\n v-if=\"!hideIcon\"\n :iconPath=\"renderIcon\"\n size=\"24\"\n class=\"mr-2\"\n />\n <span class=\"font-bold align-middle\">{{ title }}</span>\n </h3>\n <EpScope v-if=\"mandateLevel\" :mandateLevel=\"mandateLevel\"></EpScope>\n </div>\n <div :class=\"`${boxPaddingStyle} dark:base-dark dark:text-white`\">\n <div class=\"py-4\" v-if=\"hasIntentions\">\n <!-- <EpIcon :size=\"24\" :icon-path=\"mdiInformationOutline\"/> -->\n <h4\n v-if=\"labelIntentions\"\n class=\"font-light text-sm pb-1 tracking-wide dark:text-white\"\n >\n {{ labelIntentions }}\n </h4>\n <slot name=\"intentions\" />\n <EpDivider />\n </div>\n <div class=\"pt-2\">\n <slot name=\"content\" />\n </div>\n </div>\n <div\n :class=\"`${bottomBarStyle} ${paddingBottomStyle}`\"\n class=\"dark:base-dark\"\n v-if=\"hasActions\"\n >\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_unref","mandateLevel","_normalizeClass","_createElementVNode","_createBlock","EpIcon","_toDisplayString","EpScope","_openBlock","labelIntentions","_renderSlot","_createVNode","EpDivider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAM,QAAQ;AASd,UAAM,QAA+B,SAAA;AAErC,UAAM,gBAAgB,SAAS,MAAM;AACnC,aAAO,MAAM,aAAa,OAAO;AAAA,IACnC,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,MAAM,UAAU,OAAO;AAAA,IAChC,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,MAAM,MAAM;AACd,eAAO,MAAM;AAAA,MACf;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,cAAc,SAAS,MAAM;AACjC,aAAO,GAAG,cAAc,MAAM,IAAI,CAAC,eACjC,MAAM,OAAO,KAAK,cACpB;AAAA,IACF,CAAC;AAED,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,GAAG,cAAc,MAAM,IAAI,CAAC;AAAA,IACrC,CAAC;AAED,UAAM,kBAAkB,SAAS,MAAM;AACrC,UAAI,MAAM,QAAQ,WAAW;AAC3B,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,UAAM,qBAAqB,SAAS,MAAM;AACxC,UAAI,MAAM,QAAQ,WAAW;AAC3B,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,UAAM,kBAAkB,SAAS,MAAM;AACrC,UAAI,MAAM,QAAQ,WAAW;AAC3B,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,UAAM,iBAAiB,SAAS,MAAM;AACpC,UAAI,WAAW,SAAS,cAAc,SAAS,MAAM,OAAO;AAC1D,eAAO,oBACL,MAAM,OAAO,KAAK,WACpB;AAAA,MACF;AACA,aAAO;AAAA,IACT,CAAC;AAID,UAAM,EAAE,OAAO,aAAa,OAAO,KAAK;;0BAItCA,mBAwCM,OAAA;AAAA,QAxCA,sBAAO,eAAA,KAAc;AAAA,MAAA;QAGjBC,MAAA,KAAA,KAASC,KAAAA,6BAFjBF,mBAeM,OAAA;AAAA;UAdH,OAAKG,eAAA,GAAK,YAAA,KAAW,IAAI,gBAAA,KAAe,iBAAA;AAAA,QAAA;UAIzCC,mBAQK,MAAA,MAAA;AAAA,aANMH,MAAA,QAAA,kBADTI,YAKEC,aAAA;AAAA;cAHC,UAAU,WAAA;AAAA,cACX,MAAK;AAAA,cACL,OAAM;AAAA,YAAA;YAERF,mBAAuD,QAAvD,YAAuDG,gBAAfN,MAAA,KAAA,CAAK,GAAA,CAAA;AAAA,UAAA;UAEhCC,KAAAA,6BAAfG,YAAoEG,aAAA;AAAA;YAAtC,cAAcN,KAAAA;AAAAA,UAAAA;;QAE9CE,mBAeM,OAAA;AAAA,UAfA,yBAAU,gBAAA,KAAe,iCAAA;AAAA,QAAA;UACL,cAAA,SAAxBK,UAAA,GAAAT,mBAUM,OAVN,YAUM;AAAA,YAPIU,KAAAA,gCADRV,mBAKK,MALL,YAKKO,gBADAG,KAAAA,eAAe,GAAA,CAAA;YAEpBC,WAA0B,KAAA,QAAA,YAAA;AAAA,YAC1BC,YAAaC,WAAA;AAAA,UAAA;UAEfT,mBAEM,OAFN,YAEM;AAAA,YADJO,WAAuB,KAAA,QAAA,SAAA;AAAA,UAAA;;QAMnB,WAAA,sBAHRX,mBAMM,OAAA;AAAA;UALH,OAAKG,eAAA,CAAA,GAAK,eAAA,KAAc,IAAI,mBAAA,KAAkB,IACzC,gBAAgB,CAAA;AAAA,QAAA;UAGtBQ,WAAuB,KAAA,QAAA,SAAA;AAAA,QAAA;;;;;"}
1
+ {"version":3,"file":"EpEdu.vue.js","sources":["../../../src/components/educationals/EpEdu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed, useSlots, type SetupContext } from \"vue\";\nimport { mediaVariants } from \"~/types/Medias\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpDivider from \"~/components/basics/EpDivider.vue\";\nimport EpScope from \"~/components/educationals/EpScope.vue\";\nimport { mdiLeadPencil } from \"@mdi/js\";\nimport type { EpEduProps } from \"~/types/educationals/EpEdu\";\n\nconst props = withDefaults(defineProps<EpEduProps>(), {\n title: null,\n type: \"neutral\",\n hideIcon: false,\n flat: true,\n labelIntentions: \"\",\n card: false\n});\n\n//get slots\nconst slots: SetupContext[\"slots\"] = useSlots();\n\nconst hasIntentions = computed(() => {\n return slots.intentions ? true : false;\n});\n\nconst hasActions = computed(() => {\n return slots.actions ? true : false;\n});\n\nconst renderIcon = computed(() => {\n if (props.icon) {\n return props.icon;\n }\n return mdiLeadPencil;\n});\n\nconst topBarStyle = computed(() => {\n return `${mediaVariants[props.type]} text-left ${\n props.flat ? \"\" : \"rounded-t-md\"\n } flex justify-between items-center `;\n});\n\nconst bottomBarStyle = computed(() => {\n return `${mediaVariants[props.type]} text-right`;\n});\n\nconst paddingTopStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `px-5 py-2`;\n }\n});\n\nconst paddingBottomStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `pr-5`;\n }\n});\nconst boxPaddingStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `px-5`;\n }\n});\n\nconst containerStyle = computed(() => {\n if (hasActions.value || hasIntentions.value || props.title) {\n return ` overflow-hidden ${\n props.flat ? \"\" : \"shadow-md\"\n } flex flex-col justify-start h-full`;\n }\n return `flex flex-col justify-between`;\n});\n\n\nconst bgColor = computed(()=> {\n return props.card ? 'ep-surface-2' : 'ep-surface'\n})\n\n\n\nconst { title, hideIcon } = toRefs(props);\n</script>\n\n<template>\n <div :class=\"`${containerStyle} ${bgColor}`\">\n <div\n :class=\"`${topBarStyle} ${paddingTopStyle}`\"\n v-if=\"title || mandateLevel\"\n >\n <!-- <EpIcon :size=\"24\" :icon-path=\"mdiBookOpenVariant\"/> -->\n <h3>\n <EpIcon\n v-if=\"!hideIcon\"\n :iconPath=\"renderIcon\"\n size=\"24\"\n class=\"mr-2\"\n />\n <span class=\"font-bold align-middle\">{{ title }}</span>\n </h3>\n <EpScope v-if=\"mandateLevel\" :mandateLevel=\"mandateLevel\"></EpScope>\n </div>\n <div :class=\"`${boxPaddingStyle} `\">\n <div class=\"py-4\" v-if=\"hasIntentions\">\n <!-- <EpIcon :size=\"24\" :icon-path=\"mdiInformationOutline\"/> -->\n <h4\n v-if=\"labelIntentions\"\n class=\"font-light text-sm pb-1 tracking-wide\"\n >\n {{ labelIntentions }}\n </h4>\n <slot name=\"intentions\" />\n <EpDivider />\n </div>\n <div class=\"pt-2\">\n <slot name=\"content\" />\n </div>\n </div>\n <div\n :class=\"`${bottomBarStyle} ${paddingBottomStyle}`\"\n v-if=\"hasActions\"\n >\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","_unref","mandateLevel","_createElementVNode","_createBlock","EpIcon","_toDisplayString","EpScope","_openBlock","labelIntentions","_renderSlot","_createVNode","EpDivider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAM,QAAQ;AAUd,UAAM,QAA+B,SAAA;AAErC,UAAM,gBAAgB,SAAS,MAAM;AACnC,aAAO,MAAM,aAAa,OAAO;AAAA,IACnC,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,MAAM,UAAU,OAAO;AAAA,IAChC,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,MAAM,MAAM;AACd,eAAO,MAAM;AAAA,MACf;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,cAAc,SAAS,MAAM;AACjC,aAAO,GAAG,cAAc,MAAM,IAAI,CAAC,eACjC,MAAM,OAAO,KAAK,cACpB;AAAA,IACF,CAAC;AAED,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,GAAG,cAAc,MAAM,IAAI,CAAC;AAAA,IACrC,CAAC;AAED,UAAM,kBAAkB,SAAS,MAAM;AACrC,UAAI,MAAM,QAAQ,WAAW;AAC3B,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,UAAM,qBAAqB,SAAS,MAAM;AACxC,UAAI,MAAM,QAAQ,WAAW;AAC3B,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,UAAM,kBAAkB,SAAS,MAAM;AACrC,UAAI,MAAM,QAAQ,WAAW;AAC3B,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,UAAM,iBAAiB,SAAS,MAAM;AACpC,UAAI,WAAW,SAAS,cAAc,SAAS,MAAM,OAAO;AAC1D,eAAO,oBACL,MAAM,OAAO,KAAK,WACpB;AAAA,MACF;AACA,aAAO;AAAA,IACT,CAAC;AAGD,UAAM,UAAU,SAAS,MAAK;AAC3B,aAAO,MAAM,OAAO,iBAAiB;AAAA,IACxC,CAAC;AAID,UAAM,EAAE,OAAO,aAAa,OAAO,KAAK;;0BAItCA,mBAuCM,OAAA;AAAA,QAvCA,OAAKC,eAAA,GAAK,eAAA,KAAc,IAAI,QAAA,KAAO,EAAA;AAAA,MAAA;QAG/BC,MAAA,KAAA,KAASC,KAAAA,6BAFjBH,mBAeM,OAAA;AAAA;UAdH,OAAKC,eAAA,GAAK,YAAA,KAAW,IAAI,gBAAA,KAAe,EAAA;AAAA,QAAA;UAIzCG,mBAQK,MAAA,MAAA;AAAA,aANMF,MAAA,QAAA,kBADTG,YAKEC,aAAA;AAAA;cAHC,UAAU,WAAA;AAAA,cACX,MAAK;AAAA,cACL,OAAM;AAAA,YAAA;YAERF,mBAAuD,QAAvD,YAAuDG,gBAAfL,MAAA,KAAA,CAAK,GAAA,CAAA;AAAA,UAAA;UAEhCC,KAAAA,6BAAfE,YAAoEG,aAAA;AAAA;YAAtC,cAAcL,KAAAA;AAAAA,UAAAA;;QAE9CC,mBAeM,OAAA;AAAA,UAfA,yBAAU,gBAAA,KAAe,GAAA;AAAA,QAAA;UACL,cAAA,SAAxBK,UAAA,GAAAT,mBAUM,OAVN,YAUM;AAAA,YAPIU,KAAAA,gCADRV,mBAKK,MALL,YAKKO,gBADAG,KAAAA,eAAe,GAAA,CAAA;YAEpBC,WAA0B,KAAA,QAAA,YAAA;AAAA,YAC1BC,YAAaC,WAAA;AAAA,UAAA;UAEfT,mBAEM,OAFN,YAEM;AAAA,YADJO,WAAuB,KAAA,QAAA,SAAA;AAAA,UAAA;;QAKnB,WAAA,sBAFRX,mBAKM,OAAA;AAAA;UAJH,OAAKC,eAAA,GAAK,eAAA,KAAc,IAAI,mBAAA,KAAkB,EAAA;AAAA,QAAA;UAG/CU,WAAuB,KAAA,QAAA,SAAA;AAAA,QAAA;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, toDisplayString, renderSlot } from "vue";
2
- const _hoisted_1 = { class: "flex flex-row divide-x gap-x-4" };
3
- const _hoisted_2 = { class: "w-32" };
4
- const _hoisted_3 = { class: "flex-1 pl-4" };
2
+ const _hoisted_1 = { class: "flex flex-col gap-y-2 lg:flex-row lg:divide-x lg:gap-x-4" };
3
+ const _hoisted_2 = { class: "w-full lg:w-32 lg:flex-none" };
4
+ const _hoisted_3 = { class: "flex-1 lg:pl-4" };
5
5
  const _hoisted_4 = { class: "font-medium mb-1" };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  __name: "EpObjective",
@@ -1 +1 @@
1
- {"version":3,"file":"EpObjective.vue.js","sources":["../../../src/components/educationals/EpObjective.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EpObjectiveProps } from \"~/types/educationals/EpObjective\";\n\nconst {\n color = \"border-gray\",\n nameApproach,\n title,\n} = defineProps<EpObjectiveProps>();\n</script>\n\n<template>\n <div\n :class=\"`border-l-8\n ${color} \n p-4 \n my-3 \n transition \n duration-200 \n ease-in-out \n outline-primary \n focus-within:outline \n focus-within:outline-1 \n outline-offset-4 \n hover:outline \n hover:outline-1 \n hover:outline-gray-200 \n dark:hover:outline-gray-700`\"\n >\n <div class=\"flex flex-row divide-x gap-x-4\">\n <div class=\"w-32\">\n {{ nameApproach }}\n </div>\n <div class=\"flex-1 pl-4\">\n <h4 class=\"font-medium mb-1\">{{ title }}</h4>\n <slot />\n </div>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","color","_createElementVNode","_toDisplayString","nameApproach","title","_renderSlot"],"mappings":";;;;;;;;;;;;;;0BAWEA,mBA0BM,OAAA;AAAA,QAzBH,OAAKC,eAAA;AAAA,MAAoBC,KAAAA,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;QAgB/BC,mBAQM,OARN,YAQM;AAAA,UAPJA,mBAEM,OAFN,YAEMC,gBADDC,KAAAA,YAAY,GAAA,CAAA;AAAA,UAEjBF,mBAGM,OAHN,YAGM;AAAA,YAFJA,mBAA6C,MAA7C,YAA6CC,gBAAbE,KAAAA,KAAK,GAAA,CAAA;AAAA,YACrCC,WAAQ,KAAA,QAAA,SAAA;AAAA,UAAA;;;;;;"}
1
+ {"version":3,"file":"EpObjective.vue.js","sources":["../../../src/components/educationals/EpObjective.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EpObjectiveProps } from \"~/types/educationals/EpObjective\";\n\nconst {\n color = \"border-gray\",\n nameApproach,\n title,\n} = defineProps<EpObjectiveProps>();\n</script>\n\n<template>\n <div\n :class=\"`border-l-8\n ${color} \n p-4 \n my-3 \n transition \n duration-200 \n ease-in-out \n outline-primary \n focus-within:outline \n focus-within:outline-1 \n outline-offset-4 \n hover:outline \n hover:outline-1 \n hover:outline-gray-200 \n dark:hover:outline-gray-700`\"\n >\n <!-- mobile: stacked, lg+: row with divider -->\n <div class=\"flex flex-col gap-y-2 lg:flex-row lg:divide-x lg:gap-x-4\">\n <div class=\"w-full lg:w-32 lg:flex-none\">\n {{ nameApproach }}\n </div>\n <div class=\"flex-1 lg:pl-4\">\n <h4 class=\"font-medium mb-1\">{{ title }}</h4>\n <slot />\n </div>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","color","_createElementVNode","_toDisplayString","nameApproach","title","_renderSlot"],"mappings":";;;;;;;;;;;;;;0BAWEA,mBA2BM,OAAA;AAAA,QA1BH,OAAKC,eAAA;AAAA,MAAoBC,KAAAA,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;QAiB/BC,mBAQM,OARN,YAQM;AAAA,UAPJA,mBAEM,OAFN,YAEMC,gBADDC,KAAAA,YAAY,GAAA,CAAA;AAAA,UAEjBF,mBAGM,OAHN,YAGM;AAAA,YAFJA,mBAA6C,MAA7C,YAA6CC,gBAAbE,KAAAA,KAAK,GAAA,CAAA;AAAA,YACrCC,WAAQ,KAAA,QAAA,SAAA;AAAA,UAAA;;;;;;"}
@@ -1,14 +1,14 @@
1
- import { defineComponent, computed, toRefs, createElementBlock, createBlock, openBlock, createCommentVNode, createElementVNode, unref, Fragment, createVNode, createSlots, withCtx, createTextVNode, toDisplayString, normalizeClass, withModifiers } from "vue";
1
+ import { defineComponent, ref, computed, toRefs, createElementBlock, createBlock, openBlock, createCommentVNode, createElementVNode, unref, Fragment, createVNode, createSlots, withCtx, createTextVNode, toDisplayString, normalizeClass, withModifiers } from "vue";
2
2
  import _sfc_main$1 from "../basics/EpIcon.vue.js";
3
3
  import _sfc_main$3 from "../basics/EpBtn.vue.js";
4
- import _sfc_main$4 from "../tools/DisplayBox.vue.js";
5
- /* empty css */
4
+ import _sfc_main$4 from "../interactions/EpModal.vue.js";
5
+ /* empty css */
6
6
  import _sfc_main$2 from "./EpEdu.vue.js";
7
7
  import { useRenderText } from "../../composables/useRenderText.js";
8
8
  import { mdiBookOpenPageVariant, mdiBookOpenVariant, mdiOpenInNew, mdiBookmarkBox } from "@mdi/js";
9
9
  const _hoisted_1 = {
10
10
  key: 0,
11
- class: "flex shadow-sm rounded-lg overflow-hidden bg-white dark:bg-dark md:flex-row"
11
+ class: "flex shadow-sm rounded-lg overflow-hidden ep-surface-2 md:flex-row"
12
12
  };
13
13
  const _hoisted_2 = {
14
14
  key: 0,
@@ -45,15 +45,15 @@ const _hoisted_21 = { class: "p-5" };
45
45
  const _hoisted_22 = { class: "text-lg leading-6 font-semibold font-sans" };
46
46
  const _hoisted_23 = { class: "flex" };
47
47
  const _hoisted_24 = { class: "p-5" };
48
- const _hoisted_25 = { class: "w-[32rem]" };
49
- const _hoisted_26 = { class: "flex flex-col rounded-lg bg-white dark:bg-dark dark:border-r md:flex-row" };
48
+ const _hoisted_25 = { class: "w-full" };
49
+ const _hoisted_26 = { class: "flex flex-col md:flex-row" };
50
50
  const _hoisted_27 = ["src", "alt"];
51
51
  const _hoisted_28 = {
52
52
  key: 1,
53
- class: "h-96 border-l border-t border-b w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg flex justify-center items-center text-gray-300"
53
+ class: "h-96 w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg flex justify-center items-center"
54
54
  };
55
55
  const _hoisted_29 = { class: "flex flex-col justify-between w-full" };
56
- const _hoisted_30 = { class: "text-left px-5 py-2 bg-gray-100 text-black dark:rounded-tr-lg" };
56
+ const _hoisted_30 = { class: "text-left px-5 py-2" };
57
57
  const _hoisted_31 = { class: "pl-2 align-middle" };
58
58
  const _hoisted_32 = { class: "w-full px-5" };
59
59
  const _hoisted_33 = { class: "flex" };
@@ -72,7 +72,7 @@ const _hoisted_39 = { key: 3 };
72
72
  const _hoisted_40 = { key: 0 };
73
73
  const _hoisted_41 = { class: "text-sm italic pr-1" };
74
74
  const _hoisted_42 = { class: "pl-2 align-middle" };
75
- const _hoisted_43 = { class: "bg-gray-100 dark:bg-transparent dark:border-b dark:rounded-br text-right pr-5" };
75
+ const _hoisted_43 = { class: "text-right pr-5" };
76
76
  const _hoisted_44 = { class: "border-l p-5" };
77
77
  const old_image = "https://live.staticflickr.com/4868/45940268562_c5f7fdd06b_q.jpg";
78
78
  const bad_image = "https://farm5.staticflickr.com/4868/45940268562_9452f09a61_o.png";
@@ -104,6 +104,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
104
104
  },
105
105
  setup(__props) {
106
106
  const props = __props;
107
+ const modalCompact = ref(false);
107
108
  const hasCover = computed(() => {
108
109
  if (props.cover === old_image || props.cover.trim().length === 0 || props.cover === bad_image) {
109
110
  return false;
@@ -166,7 +167,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
166
167
  flat: "",
167
168
  type: unref(type),
168
169
  hideIcon: _ctx.hideIcon,
169
- mandateLevel: unref(mandateLevel)
170
+ mandateLevel: unref(mandateLevel),
171
+ card: ""
170
172
  }, createSlots({
171
173
  content: withCtx(() => [
172
174
  createElementVNode("div", _hoisted_7, [
@@ -202,6 +204,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
202
204
  actions: withCtx(() => [
203
205
  unref(url) ? (openBlock(), createBlock(_sfc_main$3, {
204
206
  key: 0,
207
+ rounded: "",
205
208
  text: "",
206
209
  href: unref(url),
207
210
  type: "primary"
@@ -245,20 +248,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
245
248
  ]),
246
249
  createElementVNode("div", _hoisted_23, [
247
250
  createElementVNode("div", _hoisted_24, [
248
- createVNode(_sfc_main$4, null, {
249
- default: withCtx(({ open }) => [
250
- createVNode(_sfc_main$3, {
251
- text: "",
252
- onClick: withModifiers(open, ["stop"]),
253
- type: "primary"
254
- }, {
255
- default: withCtx(() => [
256
- createTextVNode(toDisplayString(unref(labelDetails)), 1)
257
- ]),
258
- _: 2
259
- }, 1032, ["onClick"])
251
+ createVNode(_sfc_main$3, {
252
+ rounded: "",
253
+ text: "",
254
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => modalCompact.value = true, ["stop"])),
255
+ type: "primary"
256
+ }, {
257
+ default: withCtx(() => [
258
+ createTextVNode(toDisplayString(unref(labelDetails)), 1)
260
259
  ]),
261
- menu: withCtx(({ close }) => [
260
+ _: 1
261
+ }),
262
+ createVNode(_sfc_main$4, {
263
+ modelValue: modalCompact.value,
264
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => modalCompact.value = $event),
265
+ size: "compact"
266
+ }, {
267
+ default: withCtx(() => [
262
268
  createElementVNode("div", _hoisted_25, [
263
269
  createElementVNode("div", _hoisted_26, [
264
270
  !unref(hideCover) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
@@ -314,26 +320,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
314
320
  ]),
315
321
  createElementVNode("div", _hoisted_43, [
316
322
  createVNode(_sfc_main$3, {
317
- text: "",
318
- onClick: withModifiers(close, ["stop"]),
323
+ rounded: "",
324
+ size: "small",
325
+ onClick: _cache[1] || (_cache[1] = withModifiers(($event) => modalCompact.value = false, ["stop"])),
319
326
  type: "error"
320
327
  }, {
321
328
  default: withCtx(() => [
322
329
  createTextVNode(toDisplayString(unref(labelClose)), 1)
323
330
  ]),
324
- _: 2
325
- }, 1032, ["onClick"])
331
+ _: 1
332
+ })
326
333
  ])
327
334
  ])
328
335
  ])
329
336
  ])
330
337
  ]),
331
338
  _: 1
332
- })
339
+ }, 8, ["modelValue"])
333
340
  ]),
334
341
  createElementVNode("div", _hoisted_44, [
335
342
  unref(url) ? (openBlock(), createBlock(_sfc_main$3, {
336
343
  key: 0,
344
+ rounded: "",
337
345
  text: "",
338
346
  href: unref(url),
339
347
  type: "primary"