@visitscotland/component-library 4.27.0 → 4.28.1

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 (83) hide show
  1. package/dist/client/manifest.json +99 -99
  2. package/dist/client/scripts/{590ffd19bbfee2a7745d.js → 2819451be8ed31f3012e.js} +1 -1
  3. package/dist/client/scripts/{e1f7098e59a7c38796f7.js → 46c4e8c86748dd15d502.js} +1 -1
  4. package/dist/client/scripts/{08199222e9b06a0ff050.js → 7660625ff135485f9803.js} +1 -1
  5. package/dist/client/scripts/{f88c65b0ca86209a97fa.js → 8048481c8eb1567ce783.js} +1 -1
  6. package/dist/client/scripts/{5560f6a26d2ea115e6d1.js → 8997e19a2cdb2b9d5fde.js} +1 -1
  7. package/dist/client/scripts/ad6c8c5b4248c6242078.js +1 -0
  8. package/dist/client/scripts/b8a0a2268f828150ec60.js +1 -0
  9. package/dist/client/scripts/c35d305f136c254057e8.js +1 -0
  10. package/dist/client/scripts/{0f9c466325621fa89e7d.js → cafdd11a322b0756690d.js} +1 -1
  11. package/dist/client/scripts/dd403a1d1c4f91a4e4f4.js +1 -0
  12. package/dist/client/scripts/{4bae09d42d63490afe46.js → f6634323160ef406cdd9.js} +1 -1
  13. package/dist/client/scripts/{f7d9ddfb5e125c39b801.js → fcd1219f614bedb0d11d.js} +1 -1
  14. package/dist/client/styles/{ec504a81083b3e0924c4.css → b8a0a2268f828150ec60.css} +1 -1
  15. package/dist/client/styles/c35d305f136c254057e8.css +1 -0
  16. package/dist/components/components/article/Article.vue.d.ts +7 -1
  17. package/dist/components/components/article/components/ArticleSection.vue.d.ts +7 -1
  18. package/dist/components/components/banner/Banner.vue.d.ts +7 -1
  19. package/dist/components/components/canned-search/CannedSearch.vue.d.ts +77 -5
  20. package/dist/components/components/canned-search/components/CannedSearchLogos.vue.d.ts +21 -0
  21. package/dist/components/components/canned-search/components/CannedSearchProductCard.vue.d.ts +28 -1
  22. package/dist/components/components/canned-search/components/CannedSearchSummaryBox.vue.d.ts +7 -1
  23. package/dist/components/components/caption/Caption.vue.d.ts +7 -1
  24. package/dist/components/components/carbon-calculator/CarbonCalculator.vue.d.ts +14 -2
  25. package/dist/components/components/carbon-calculator/components/CarbonCalculatorResults.vue.d.ts +7 -1
  26. package/dist/components/components/carousel/Carousel.vue.d.ts +7 -1
  27. package/dist/components/components/carousel/components/CarouselSlide.vue.d.ts +28 -1
  28. package/dist/components/components/description-list/components/DescriptionListItem.vue.d.ts +7 -1
  29. package/dist/components/components/embed-wrapper/EmbedWrapper.vue.d.ts +7 -1
  30. package/dist/components/components/event-card/EventCard.vue.d.ts +7 -1
  31. package/dist/components/components/footer/Footer.vue.d.ts +7 -1
  32. package/dist/components/components/footer/components/FooterCopyright.vue.d.ts +7 -1
  33. package/dist/components/components/footer/components/FooterUtilityList.vue.d.ts +7 -1
  34. package/dist/components/components/global-menu/GlobalMenu.vue.d.ts +7 -1
  35. package/dist/components/components/grid/Col.vue.d.ts +7 -1
  36. package/dist/components/components/hero-section/HeroSection.vue.d.ts +28 -1
  37. package/dist/components/components/hero-section/components/HeroSectionImage.vue.d.ts +28 -1
  38. package/dist/components/components/image-with-caption/ImageWithCaption.vue.d.ts +21 -0
  39. package/dist/components/components/img/Img.vue.d.ts +21 -0
  40. package/dist/components/components/itineraries/Itinerary.vue.d.ts +7 -1
  41. package/dist/components/components/itineraries/components/ItineraryDay.vue.d.ts +7 -1
  42. package/dist/components/components/listicle/ListicleItem.vue.d.ts +7 -1
  43. package/dist/components/components/mega-nav/MegaNav.vue.d.ts +14 -2
  44. package/dist/components/components/mega-nav/components/MegaNavDropdown.vue.d.ts +7 -1
  45. package/dist/components/components/mega-nav/components/MegaNavDropdownContainer.vue.d.ts +7 -1
  46. package/dist/components/components/mega-nav/components/MegaNavFeaturedEvent.vue.d.ts +21 -0
  47. package/dist/components/components/mega-nav/components/MegaNavFeaturedItem.vue.d.ts +21 -0
  48. package/dist/components/components/megalinks/Megalinks.vue.d.ts +7 -1
  49. package/dist/components/components/megalinks/components/megalink-link-list/MegalinkLinkList.vue.d.ts +21 -0
  50. package/dist/components/components/megalinks/components/megalink-multi-image/MegalinkMultiImage.vue.d.ts +21 -0
  51. package/dist/components/components/megalinks/components/megalink-single-image/MegalinkSingleImage.vue.d.ts +7 -1
  52. package/dist/components/components/modal/Modal.vue.d.ts +7 -1
  53. package/dist/components/components/module-wrapper/ModuleWrapper.vue.d.ts +7 -1
  54. package/dist/components/components/page-intro/PageIntro.vue.d.ts +7 -1
  55. package/dist/components/components/product-search/ProductSearch.vue.d.ts +7 -1
  56. package/dist/components/components/site-search/components/SiteSearchForm.vue.d.ts +7 -1
  57. package/dist/components/components/ski-scotland/ski-scotland-card/SkiScotlandCard.vue.d.ts +21 -0
  58. package/dist/components/components/ski-scotland/ski-scotland-status/SkiScotlandStatus.vue.d.ts +7 -1
  59. package/dist/components/components/social-share/SocialShare.vue.d.ts +14 -2
  60. package/dist/components/components/social-share/components/SocialShareItem.vue.d.ts +7 -1
  61. package/dist/components/components/stretched-link-card/StretchedLinkCard.vue.d.ts +21 -0
  62. package/dist/components/components/tourism-info/TourismInfo.vue.d.ts +7 -1
  63. package/dist/components/mixins/imgSizesMixin.d.ts +34 -0
  64. package/dist/components/vs-component-library.css +1 -1
  65. package/dist/components/vs-component-library.js +17 -17
  66. package/dist/components/vs-component-library.mjs +80 -4
  67. package/dist/ssr/index.js +1 -1
  68. package/dist/ssr/manifest.json +1 -1
  69. package/dist/ssr/styles/{af6caa9b13ed8dff5a14.css → a144cf279b00bc59dccc.css} +2 -2
  70. package/package.json +1 -1
  71. package/dist/client/scripts/5b2dc00b3a1be0c460b7.js +0 -1
  72. package/dist/client/scripts/a22aab6e2c8e979b0373.js +0 -1
  73. package/dist/client/scripts/b53b14dc159a37c9a162.js +0 -1
  74. package/dist/client/scripts/ec504a81083b3e0924c4.js +0 -1
  75. package/dist/client/styles/b53b14dc159a37c9a162.css +0 -1
  76. /package/dist/client/styles/{590ffd19bbfee2a7745d.css → 2819451be8ed31f3012e.css} +0 -0
  77. /package/dist/client/styles/{e1f7098e59a7c38796f7.css → 46c4e8c86748dd15d502.css} +0 -0
  78. /package/dist/client/styles/{08199222e9b06a0ff050.css → 7660625ff135485f9803.css} +0 -0
  79. /package/dist/client/styles/{f88c65b0ca86209a97fa.css → 8048481c8eb1567ce783.css} +0 -0
  80. /package/dist/client/styles/{0f9c466325621fa89e7d.css → cafdd11a322b0756690d.css} +0 -0
  81. /package/dist/client/styles/{a22aab6e2c8e979b0373.css → dd403a1d1c4f91a4e4f4.css} +0 -0
  82. /package/dist/client/styles/{4bae09d42d63490afe46.css → f6634323160ef406cdd9.css} +0 -0
  83. /package/dist/client/styles/{f7d9ddfb5e125c39b801.css → fcd1219f614bedb0d11d.css} +0 -0
@@ -5111,6 +5111,21 @@ const Alert = /* @__PURE__ */ _export_sfc(_sfc_main$2n, [["render", _sfc_render$
5111
5111
  release: "0.1.0",
5112
5112
  components: {
5113
5113
  BCol
5114
+ },
5115
+ /**
5116
+ * To reduce page weight we want to load images at an appropriate size based on their
5117
+ * appearance on the screen, as well as the size of that screen. By providing this
5118
+ * information about the grid layout of the page, any VsImg component within this Col in the
5119
+ * page can estimate its maximum size. See the `imgSizesMixin` for more details.
5120
+ */
5121
+ provide() {
5122
+ return {
5123
+ cols: this.$attrs.cols,
5124
+ sm: this.$attrs.sm,
5125
+ md: this.$attrs.md,
5126
+ lg: this.$attrs.lg,
5127
+ xl: this.$attrs.xl
5128
+ };
5114
5129
  }
5115
5130
  };
5116
5131
  function _sfc_render$29(e, n, t, a, r, o) {
@@ -5973,6 +5988,66 @@ const ButtonToggleGroup = /* @__PURE__ */ _export_sfc(_sfc_main$29, [["render",
5973
5988
  return this.src.includes("?") && (n = "&"), `${this.src}${n}size=${e}`;
5974
5989
  }
5975
5990
  }
5991
+ }, imgSizesMixin = {
5992
+ /**
5993
+ * Inject the grid information from the closest ancestor VsCol component. If multiple nested
5994
+ * VsCols are present this will load from the closest one. With multiple nested VsCols an
5995
+ * image may end up being loaded larger than it needs to be, as this system naively assumes
5996
+ * that something 6 cols wide on a 12 column grid will always be 50% of the viewport width,
5997
+ * but it will never be smaller than it needs to be.
5998
+ *
5999
+ * In cases where images are sized without the use of VsCol they will continue to default to
6000
+ * assuming the image might need to be 100% of the viewport width.
6001
+ */
6002
+ inject: {
6003
+ cols: {
6004
+ default: 0
6005
+ },
6006
+ sm: {
6007
+ default: 0
6008
+ },
6009
+ md: {
6010
+ default: 0
6011
+ },
6012
+ lg: {
6013
+ default: 0
6014
+ },
6015
+ xl: {
6016
+ default: 0
6017
+ }
6018
+ },
6019
+ computed: {
6020
+ /**
6021
+ * Generates a string of media queries for the image, which can be used in the `sizes`
6022
+ * attribute. This string is parsed left to right searching for the first match, so we
6023
+ * start with the largest viewport size and work down to the smallest, requesting an
6024
+ * image at an appropriate percent of the viewport width.
6025
+ */
6026
+ computedSizes() {
6027
+ const n = [
6028
+ {
6029
+ viewportSize: "xl",
6030
+ minWidth: 1200
6031
+ },
6032
+ {
6033
+ viewportSize: "lg",
6034
+ minWidth: 992
6035
+ },
6036
+ {
6037
+ viewportSize: "md",
6038
+ minWidth: 769
6039
+ },
6040
+ {
6041
+ viewportSize: "sm",
6042
+ minWidth: 576
6043
+ }
6044
+ ].filter(({ viewportSize: t }) => this[t]).map(({ viewportSize: t, minWidth: a }) => {
6045
+ const r = this[t] / 12 * 100;
6046
+ return `(min-width: ${a}px) ${r}vw`;
6047
+ });
6048
+ return this.cols ? n.push(`${this.cols / 12 * 100}vw`) : n.push("100vw"), n.join(", ");
6049
+ }
6050
+ }
5976
6051
  }, _sfc_main$28 = {
5977
6052
  name: "VsImg",
5978
6053
  status: "prototype",
@@ -5982,7 +6057,8 @@ const ButtonToggleGroup = /* @__PURE__ */ _export_sfc(_sfc_main$29, [["render",
5982
6057
  VsIcon
5983
6058
  },
5984
6059
  mixins: [
5985
- srcSetMixin
6060
+ srcSetMixin,
6061
+ imgSizesMixin
5986
6062
  ],
5987
6063
  props: {
5988
6064
  /**
@@ -6065,7 +6141,7 @@ function _sfc_render$1Y(e, n, t, a, r, o) {
6065
6141
  class: ["vs-img low-res-img", t.useGenericLqip ? "generic-lqip" : ""],
6066
6142
  srcset: o.computedSrcSet,
6067
6143
  "low-res-image": o.isSvg ? "" : e.specificImgSize("xxs"),
6068
- sizes: "(min-width: 768px) 75vw, 100vw"
6144
+ sizes: e.computedSizes
6069
6145
  }), {
6070
6146
  default: withCtx(() => [
6071
6147
  createVNode(l, {
@@ -6075,7 +6151,7 @@ function _sfc_render$1Y(e, n, t, a, r, o) {
6075
6151
  renderSlot(e.$slots, "default")
6076
6152
  ]),
6077
6153
  _: 3
6078
- }, 16, ["src", "alt", "fluid", "fluid-grow", "loading", "style", "class", "srcset", "low-res-image"]);
6154
+ }, 16, ["src", "alt", "fluid", "fluid-grow", "loading", "style", "class", "srcset", "low-res-image", "sizes"]);
6079
6155
  }
6080
6156
  const VsImg = /* @__PURE__ */ _export_sfc(_sfc_main$28, [["render", _sfc_render$1Y]]);
6081
6157
  let currentURL = "";
@@ -22103,7 +22179,7 @@ var isCoreModule, hasRequiredIsCoreModule;
22103
22179
  function requireIsCoreModule() {
22104
22180
  if (hasRequiredIsCoreModule) return isCoreModule;
22105
22181
  hasRequiredIsCoreModule = 1;
22106
- var e = { node: "20.19.1", acorn: "8.14.0", ada: "2.9.2", ares: "1.34.5", brotli: "1.1.0", cjs_module_lexer: "1.4.1", cldr: "46.0", icu: "76.1", llhttp: "8.1.2", modules: "115", napi: "9", nghttp2: "1.61.0", nghttp3: "0.7.0", ngtcp2: "1.1.0", openssl: "3.0.15+quic", simdutf: "6.0.3", tz: "2025a", undici: "6.21.2", unicode: "16.0", uv: "1.46.0", uvwasi: "0.0.21", v8: "11.3.244.8-node.26", zlib: "1.3.0.1-motley-82a5fec" }, n = requireHasown();
22182
+ var e = { node: "20.19.2", acorn: "8.14.0", ada: "2.9.2", ares: "1.34.5", brotli: "1.1.0", cjs_module_lexer: "1.4.1", cldr: "46.0", icu: "76.1", llhttp: "9.2.1", modules: "115", napi: "9", nghttp2: "1.61.0", nghttp3: "0.7.0", ngtcp2: "1.1.0", openssl: "3.0.15+quic", simdutf: "6.0.3", tz: "2025a", undici: "6.21.2", unicode: "16.0", uv: "1.46.0", uvwasi: "0.0.21", v8: "11.3.244.8-node.26", zlib: "1.3.0.1-motley-82a5fec" }, n = requireHasown();
22107
22183
  function t(l, c) {
22108
22184
  for (var d = l.split("."), p = c.split(" "), f = p.length > 1 ? p[0] : "=", m = (p.length > 1 ? p[1] : p[0]).split("."), _ = 0; _ < 3; ++_) {
22109
22185
  var v = parseInt(d[_] || 0, 10), k = parseInt(m[_] || 0, 10);