ublo-lib 1.21.5 → 1.21.7

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 (31) hide show
  1. package/es/lbm/components/lumiplan/lumiplan.d.ts.map +1 -1
  2. package/es/lbm/components/lumiplan/lumiplan.js +3 -1
  3. package/es/lbm/components/lumiplan/lumiplan.module.css +2 -2
  4. package/es/lbm/components/lumiplan/opening.d.ts +1 -0
  5. package/es/lbm/components/lumiplan/opening.d.ts.map +1 -1
  6. package/es/lbm/components/lumiplan/opening.js +15 -2
  7. package/es/lbm/components/lumiplan/opening.module.css +57 -12
  8. package/es/lbm/components/lumiplan/pois.d.ts.map +1 -1
  9. package/es/lbm/components/lumiplan/pois.js +3 -3
  10. package/es/lbm/components/lumiplan/pois.module.css +0 -1
  11. package/es/lbm/components/lumiplan/resort-selector.d.ts.map +1 -1
  12. package/es/lbm/components/lumiplan/resort-selector.module.css +3 -3
  13. package/es/lbm/components/lumiplan/road-condition.d.ts.map +1 -1
  14. package/es/lbm/components/lumiplan/road-condition.js +1 -1
  15. package/es/lbm/components/lumiplan/road-condition.module.css +15 -2
  16. package/es/lbm/components/lumiplan/todays-tips.module.css +1 -1
  17. package/es/lbm/components/lumiplan/types.d.ts +1 -1
  18. package/es/lbm/components/lumiplan/types.d.ts.map +1 -1
  19. package/es/lbm/components/lumiplan/weather/snow-data.js +1 -1
  20. package/es/lbm/components/lumiplan/weather/weather-days.d.ts +7 -0
  21. package/es/lbm/components/lumiplan/weather/weather-days.d.ts.map +1 -0
  22. package/es/lbm/components/lumiplan/weather/weather-days.js +54 -0
  23. package/es/lbm/components/lumiplan/weather/weather-days.module.css +66 -0
  24. package/es/lbm/components/lumiplan/weather/weather-zones.d.ts +6 -0
  25. package/es/lbm/components/lumiplan/weather/weather-zones.d.ts.map +1 -0
  26. package/es/lbm/components/lumiplan/weather/weather-zones.js +48 -0
  27. package/es/lbm/components/lumiplan/weather/weather-zones.module.css +79 -0
  28. package/es/lbm/components/lumiplan/weather/weather.d.ts.map +1 -1
  29. package/es/lbm/components/lumiplan/weather/weather.js +4 -41
  30. package/es/lbm/components/lumiplan/weather/weather.module.css +2 -70
  31. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lumiplan.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/lumiplan.tsx"],"names":[],"mappings":"AAkBA,MAAM,CAAC,OAAO,UAAU,QAAQ,4CA+H/B"}
1
+ {"version":3,"file":"lumiplan.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/lumiplan.tsx"],"names":[],"mappings":"AAkBA,MAAM,CAAC,OAAO,UAAU,QAAQ,4CAyI/B"}
@@ -28,6 +28,8 @@ export default function Lumiplan() {
28
28
  const isOpeningsInView = useInView(openingsRef, IN_VIEW_CONFIG);
29
29
  const isPoisInView = useInView(poisRef, IN_VIEW_CONFIG);
30
30
  const [currentResortId, setCurrentResortId] = React.useState(lumiplanResorts[0].id);
31
+ const currentResort = lumiplanResorts.find((resort) => resort.id === currentResortId);
32
+ const showOpening = Boolean(currentResort.showOpening);
31
33
  const [resortOpening, setResortOpening] = React.useState();
32
34
  const [weather, setWeather] = React.useState();
33
35
  const [resortAccess, setResortAccess] = React.useState();
@@ -114,5 +116,5 @@ export default function Lumiplan() {
114
116
  fetchData();
115
117
  }
116
118
  }, [currentResortId, isPoisInView]);
117
- return (_jsxs("div", { className: css.lumiplan, children: [_jsx(ResortSelector, { resorts: lumiplanResorts, currentResortId: currentResortId, setCurrentResortId: setCurrentResortId }), _jsx(TodaysTips, { ref: todaysTipsRef, resortOpening: resortOpening }), _jsx(Weather, { ref: weatherRef, weather: weather }), _jsx(RoadCondition, { ref: roadConditionRef, resortAccess: resortAccess }), _jsx(Domain, { ref: domainRef, domain: domain }), _jsx(Pois, { ref: poisRef, pois: pois }), _jsx(Opening, { ref: openingsRef, resortOpening: resortOpening })] }));
119
+ return (_jsxs("div", { className: css.lumiplan, children: [_jsx(ResortSelector, { resorts: lumiplanResorts, currentResortId: currentResortId, setCurrentResortId: setCurrentResortId }), _jsx(TodaysTips, { ref: todaysTipsRef, resortOpening: resortOpening }), _jsx(Weather, { ref: weatherRef, weather: weather }), _jsx(RoadCondition, { ref: roadConditionRef, resortAccess: resortAccess }), _jsx(Domain, { ref: domainRef, domain: domain }), _jsx(Pois, { ref: poisRef, pois: pois }), showOpening && (_jsx(Opening, { ref: openingsRef, resortOpening: resortOpening, showOpening: currentResort.showOpening }))] }));
118
120
  }
@@ -1,9 +1,9 @@
1
1
  .lumiplan {
2
- padding: 28px 0;
2
+ padding-top: 20px;
3
3
  }
4
4
 
5
5
  @media (min-width: 780px) {
6
6
  .lumiplan {
7
- padding: 64px 0;
7
+ padding-top: 34px;
8
8
  }
9
9
  }
@@ -2,6 +2,7 @@ import * as React from "react";
2
2
  import type { ResortOpening } from "./types";
3
3
  type Props = {
4
4
  resortOpening?: ResortOpening | null;
5
+ showOpening?: string[];
5
6
  };
6
7
  declare const Opening: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
7
8
  export default Opening;
@@ -1 +1 @@
1
- {"version":3,"file":"opening.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/opening.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,KAAK,KAAK,GAAG;IACX,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,QAAA,MAAM,OAAO,8EA2DZ,CAAC;AAwCF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"opening.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/opening.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,aAAa,EAAO,MAAM,SAAS,CAAC;AAGlD,KAAK,KAAK,GAAG;IACX,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,QAAA,MAAM,OAAO,8EAsEZ,CAAC;AAqCF,eAAe,OAAO,CAAC"}
@@ -8,7 +8,7 @@ import NightIcon from "./icons/night";
8
8
  import DawnIcon from "./icons/dawn";
9
9
  import T, { t } from "./i18n/translations";
10
10
  import css from "./opening.module.css";
11
- const Opening = React.forwardRef(({ resortOpening }, ref) => {
11
+ const Opening = React.forwardRef(({ resortOpening, showOpening }, ref) => {
12
12
  const { lang } = useUbloContext();
13
13
  if (resortOpening === undefined) {
14
14
  return (_jsx("div", { ref: ref, className: css.loader, "data-tags": t(lang, "opening.navigation-title"), children: _jsx(Loader, { variant: "overlay" }) }));
@@ -17,7 +17,15 @@ const Opening = React.forwardRef(({ resortOpening }, ref) => {
17
17
  return null;
18
18
  }
19
19
  const { dawnSkiingDays, nightSkiingDays } = resortOpening.availability;
20
- return (_jsx("div", { ref: ref, className: css.opening, "data-tags": t(lang, "opening.navigation-title"), children: _jsx("div", { className: css.tableOuter, children: _jsxs("table", { className: css.table, children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", {}), dawnSkiingDays.map((day) => (_jsx("th", { className: css.heading, children: _jsx("div", { className: css.headingInner, children: _jsx(T, { id: `opening.days.${day.dayType}` }) }) }, day.dayType)))] }) }), _jsxs("tbody", { children: [_jsx("tr", { children: _jsx(Rows, { kind: "dawn", rows: dawnSkiingDays }) }), _jsx("tr", { children: _jsx(Rows, { kind: "night", rows: nightSkiingDays }) })] })] }) }) }));
20
+ // On enlève -1 car le tableau commence à 0
21
+ const dayIndex = new Date().getDay() - 1;
22
+ const orderedDays = reorganizeDays(dawnSkiingDays, dayIndex);
23
+ const orderedNights = reorganizeDays(nightSkiingDays, dayIndex);
24
+ return (_jsx("div", { ref: ref, className: css.opening, "data-tags": t(lang, "opening.navigation-title"), children: _jsx("div", { className: css.tableOuter, children: _jsxs("table", { className: css.table, children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", {}), orderedDays.map((day, i) => {
25
+ const dayNumber = new Date();
26
+ dayNumber.setDate(dayNumber.getDate() + i);
27
+ return (_jsx("th", { className: css.heading, children: _jsxs("div", { className: css.headingInner, children: [_jsx(T, { id: `opening.days.${day.dayType}` }), " ", dayNumber.getDate()] }) }, day.dayType));
28
+ })] }) }), _jsxs("tbody", { children: [showOpening?.includes("dawn") && (_jsx("tr", { children: _jsx(Rows, { kind: "dawn", rows: orderedDays }) })), showOpening?.includes("night") && (_jsx("tr", { children: _jsx(Rows, { kind: "night", rows: orderedNights }) }))] })] }) }) }));
21
29
  });
22
30
  function Rows({ kind, rows }) {
23
31
  const Icon = kind === "dawn" ? DawnIcon : NightIcon;
@@ -31,3 +39,8 @@ function Rows({ kind, rows }) {
31
39
  }
32
40
  Opening.displayName = "Opening";
33
41
  export default Opening;
42
+ function reorganizeDays(days, index) {
43
+ const daysBefore = days.slice(0, index);
44
+ const daysAfter = days.slice(index);
45
+ return [...daysAfter, ...daysBefore];
46
+ }
@@ -3,7 +3,7 @@
3
3
  width: 100%;
4
4
  max-width: 1200px;
5
5
  height: 300px;
6
- margin: 30px auto;
6
+ margin: 40px auto;
7
7
  border-radius: var(--radius-200);
8
8
  overflow: hidden;
9
9
  }
@@ -14,7 +14,7 @@
14
14
  display: flex;
15
15
  flex-direction: column;
16
16
  gap: 40px;
17
- margin: 36px auto;
17
+ margin: 40px auto;
18
18
  padding: 0 10px;
19
19
  }
20
20
 
@@ -26,12 +26,29 @@
26
26
  }
27
27
 
28
28
  .tableOuter {
29
- padding: 40px;
29
+ padding: 20px;
30
30
  border: 2px solid hsl(var(--primary));
31
31
  border-radius: calc(var(--radius-400) * 2);
32
+ background-image: linear-gradient(to right, white, white),
33
+ linear-gradient(to right, white, white),
34
+ linear-gradient(to right, rgba(0, 0, 0, 0.25), rgba(255, 255, 255, 0)),
35
+ linear-gradient(to left, rgba(0, 0, 0, 0.25), rgba(255, 255, 255, 0));
36
+ background-position: left center, right center, left center, right center;
37
+ background-repeat: no-repeat;
38
+ background-color: white;
39
+ background-size: 40px 100%, 40px 100%, 20px 100%, 20px 100%;
40
+
41
+ background-attachment: local, local, scroll, scroll;
42
+
32
43
  overflow: auto;
33
44
  }
34
45
 
46
+ @media (min-width: 580px) {
47
+ .tableOuter {
48
+ padding: 40px;
49
+ }
50
+ }
51
+
35
52
  .table {
36
53
  color: hsl(var(--primary));
37
54
  }
@@ -41,21 +58,44 @@
41
58
  padding: 0 10px;
42
59
  }
43
60
 
44
- .headingInner {
61
+ .heading {
45
62
  width: fit-content;
46
- display: flex;
47
- align-items: flex-end;
63
+ min-width: 120px;
64
+ text-align: center;
48
65
  margin-top: 40px;
49
- height: 18px;
66
+ padding-right: 10px;
67
+ }
68
+
69
+ .headingMini {
70
+ display: flex;
71
+ justify-content: center;
50
72
  line-height: 1;
73
+ white-space: nowrap;
74
+ min-width: 60px;
75
+ }
76
+
77
+ @media (min-width: 580px) {
78
+ .headingMini {
79
+ min-width: 120px;
80
+ }
81
+ }
82
+
83
+ .headingInner {
84
+ height: 18px;
85
+ display: flex;
86
+ align-items: flex-end;
87
+ justify-content: center;
88
+ text-align: center;
89
+ gap: 10px;
90
+ margin: 20px 0;
51
91
  background-color: hsla(var(--secondary), 10%);
92
+ white-space: nowrap;
52
93
  }
53
94
 
54
95
  .headingInner > svg {
55
- flex: 0 0 30px;
96
+ min-width: 30px;
56
97
  width: 30px;
57
98
  height: 30px;
58
- margin-right: 6%;
59
99
  }
60
100
 
61
101
  .table td {
@@ -65,7 +105,13 @@
65
105
  .cell {
66
106
  text-transform: uppercase;
67
107
  font-weight: 700;
68
- font-size: 15px;
108
+ font-size: 13px;
109
+ }
110
+
111
+ @media (min-width: 580px) {
112
+ .cell {
113
+ font-size: 15px;
114
+ }
69
115
  }
70
116
 
71
117
  .cell svg {
@@ -75,8 +121,7 @@
75
121
  }
76
122
 
77
123
  .cellInner {
78
- margin-top: 40px;
79
- padding: 0 10px;
124
+ padding: 20px 10px;
80
125
  display: flex;
81
126
  align-items: center;
82
127
  justify-content: center;
@@ -1 +1 @@
1
- {"version":3,"file":"pois.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/pois.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAyB,QAAQ,EAAQ,MAAM,SAAS,CAAC;AAwDrE,KAAK,KAAK,GAAG;IACX,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxB,CAAC;AASF,QAAA,MAAM,IAAI,8EA+KR,CAAC;AAIH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"pois.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/pois.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAO,QAAQ,EAAQ,MAAM,SAAS,CAAC;AAwDnD,KAAK,KAAK,GAAG;IACX,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxB,CAAC;AASF,QAAA,MAAM,IAAI,8EA+KR,CAAC;AAIH,eAAe,IAAI,CAAC"}
@@ -106,7 +106,7 @@ const Pois = React.forwardRef(({ pois }, ref) => {
106
106
  const trailLevelLabel = hasTrailLevel
107
107
  ? `(${t(lang, `pois.trailLevels.${trailLevel}`)})`
108
108
  : null;
109
- const specialTrail = Object.keys(SPECIAL_TRAILS).find((key) => name.includes(key));
109
+ const specialTrail = Object.keys(SPECIAL_TRAILS).find((key) => name?.includes(key));
110
110
  const message = messagePoi?.data?.find(({ language }) => {
111
111
  const _lang = lang === "fr" ? "fr_FR" : "en_US";
112
112
  return language === _lang;
@@ -117,7 +117,7 @@ const Pois = React.forwardRef(({ pois }, ref) => {
117
117
  [css[trailLevel]]: hasTrailLevel,
118
118
  });
119
119
  let status = "OPEN";
120
- if (openingStatus.includes("DELAYED")) {
120
+ if (openingStatus?.includes("DELAYED")) {
121
121
  status = "DELAYED";
122
122
  }
123
123
  else {
@@ -127,7 +127,7 @@ const Pois = React.forwardRef(({ pois }, ref) => {
127
127
  const Icon = isLift
128
128
  ? LIFT_ICONS[liftType] || LIFT_ICONS.DEFAULT
129
129
  : TRAIL_ICONS[trailType] || TRAIL_ICONS.DEFAULT;
130
- return (_jsxs("div", { className: classes, children: [_jsx("div", { className: css.poiIcon, children: specialTrail ? (_jsx(Image, { src: SPECIAL_TRAILS[specialTrail], width: 50, height: 50, alt: specialTrail })) : (_jsx(Icon, {})) }), _jsxs("div", { className: css.poiInfo, children: [_jsxs("div", { className: css.poiHeader, children: [_jsx("span", { className: css.poiName, children: name }), _jsx("span", { className: css.poiStatus, children: _jsx(T, { id: statusCode }) })] }), _jsxs("div", { className: css.poiDetail, children: [_jsxs("div", { className: css.poiDetailHeader, children: [sectorName, " | ", _jsx(T, { id: translationCode }), " ", trailLevelLabel] }), !isLift && (_jsxs("div", { className: css.poiTrailDetail, children: [hasGroomingStatus && (_jsx("div", { className: css.poiTrailDetailItem, children: _jsx(T, { id: `snow.grooming.states.${groomingStatus}` }) })), hasSnowQuality && (_jsxs("div", { className: css.poiTrailDetailItem, children: [_jsx(T, { id: "snow.snow-quality.title" }), " :", " ", _jsx(T, { id: `snow.snow-quality.states.${snowQuality}` })] }))] }))] })] }), _jsx("div", { className: css.poiMessage, children: message && (_jsx(Tooltip, { content: message.data, children: _jsx(Button, { variant: "transparent", children: _jsx(Icons.Info, {}) }) })) })] }, id));
130
+ return (_jsxs("div", { className: classes, children: [_jsx("div", { className: css.poiIcon, children: specialTrail ? (_jsx(Image, { src: SPECIAL_TRAILS[specialTrail], width: 50, height: 50, alt: specialTrail })) : (_jsx(Icon, {})) }), _jsxs("div", { className: css.poiInfo, children: [_jsxs("div", { className: css.poiHeader, children: [_jsx("span", { className: css.poiName, children: name }), _jsx("span", { className: css.poiStatus, children: _jsx(T, { id: statusCode }) })] }), _jsxs("div", { className: css.poiDetail, children: [_jsxs("div", { className: css.poiDetailHeader, children: [_jsx("b", { children: sectorName }), " | ", _jsx(T, { id: translationCode }), " ", trailLevelLabel] }), !isLift && (_jsxs("div", { className: css.poiTrailDetail, children: [hasGroomingStatus && (_jsx("div", { className: css.poiTrailDetailItem, children: _jsx(T, { id: `snow.grooming.states.${groomingStatus}` }) })), hasSnowQuality && (_jsxs("div", { className: css.poiTrailDetailItem, children: [_jsx(T, { id: "snow.snow-quality.title" }), " :", " ", _jsx(T, { id: `snow.snow-quality.states.${snowQuality}` })] }))] }))] })] }), _jsx("div", { className: css.poiMessage, children: message && (_jsx(Tooltip, { content: message.data, children: _jsx(Button, { variant: "transparent", children: _jsx(Icons.Info, {}) }) })) })] }, id));
131
131
  }) }), _jsx(Tooltip, { content: t(lang, expanded ? "see-less" : "see-more"), children: _jsx(Button, { className: css.expandButton, variant: "transparent", onClick: toggleExpanded, children: _jsx(ExpandIcon, {}) }) })] }) }));
132
132
  });
133
133
  Pois.displayName = "Pois";
@@ -122,7 +122,6 @@
122
122
 
123
123
  .poiDetailHeader {
124
124
  font-size: 13px;
125
- font-weight: 700;
126
125
  text-transform: uppercase;
127
126
  }
128
127
 
@@ -1 +1 @@
1
- {"version":3,"file":"resort-selector.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/resort-selector.tsx"],"names":[],"mappings":"AAKA,KAAK,MAAM,GAAG;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,OAAO,EACP,eAAe,EACf,kBAAkB,GACnB,EAAE,KAAK,kDAwBP"}
1
+ {"version":3,"file":"resort-selector.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/resort-selector.tsx"],"names":[],"mappings":"AAKA,KAAK,MAAM,GAAG;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IAExB,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,OAAO,EACP,eAAe,EACf,kBAAkB,GACnB,EAAE,KAAK,kDAwBP"}
@@ -3,12 +3,12 @@
3
3
  justify-content: center;
4
4
  flex-wrap: wrap;
5
5
  gap: 20px;
6
- margin-bottom: 40px;
6
+ margin-bottom: 10px;
7
7
  }
8
8
 
9
9
  button.button {
10
- --ds-button-padding: 12px;
11
- --ds-button-font-size: 16px;
10
+ --ds-button-padding: 14px;
11
+ --ds-button-font-size: 19px;
12
12
  --ds-button-foreground: hsl(var(--primary));
13
13
  --ds-button-font-weight: 400;
14
14
  --ds-button-background: transparent;
@@ -1 +1 @@
1
- {"version":3,"file":"road-condition.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/road-condition.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,KAAK,KAAK,GAAG;IACX,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,QAAA,MAAM,aAAa,8EAmFlB,CAAC;AAIF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"road-condition.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/road-condition.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,KAAK,KAAK,GAAG;IACX,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,QAAA,MAAM,aAAa,8EAuFlB,CAAC;AAIF,eAAe,aAAa,CAAC"}
@@ -20,7 +20,7 @@ const RoadCondition = React.forwardRef(({ resortAccess }, ref) => {
20
20
  return language === _lang;
21
21
  });
22
22
  const hasValidNumber = !isNaN(parseInt(number, 10));
23
- return (_jsxs("div", { className: css.condition, children: [_jsx(RoadConditionIcon, { className: css.icon }), _jsxs("div", { className: css.right, children: [_jsxs("div", { className: css.top, children: [_jsxs("div", { className: css.name, children: [name, " ", hasValidNumber && _jsxs(_Fragment, { children: ["n\u00B0", number] })] }), _jsxs("div", { className: css.surface, children: [_jsx("b", { children: _jsx(T, { id: "road-conditions.surface.title" }) }), _jsx(T, { id: `road-conditions.surface.states.${surface}` }), "."] }), _jsxs("div", { className: css.equipment, children: [_jsx("b", { children: _jsx(T, { id: "road-conditions.equipment.title" }) }), _jsx(T, { id: `road-conditions.equipment.states.${equipment}` })] })] }), roadInfoData && (_jsx("div", { className: css.bottom, dangerouslySetInnerHTML: { __html: roadInfoData.data } }))] }), _jsx("div", { className: css.status, children: _jsx(T, { id: `road-conditions.status.${status ? "OPENED" : "CLOSED"}` }) })] }, id));
23
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: css.condition, children: [_jsx(RoadConditionIcon, { className: css.icon }), _jsxs("div", { className: css.right, children: [_jsxs("div", { className: css.top, children: [_jsxs("div", { className: css.name, children: [name, " ", hasValidNumber && _jsxs(_Fragment, { children: ["n\u00B0", number] })] }), _jsxs("div", { className: css.surface, children: [_jsx("b", { children: _jsx(T, { id: "road-conditions.surface.title" }) }), _jsx(T, { id: `road-conditions.surface.states.${surface}` }), "."] }), _jsxs("div", { className: css.equipment, children: [_jsx("b", { children: _jsx(T, { id: "road-conditions.equipment.title" }) }), _jsx(T, { id: `road-conditions.equipment.states.${equipment}` })] })] }), roadInfoData && (_jsx("div", { className: css.bottom, dangerouslySetInnerHTML: { __html: roadInfoData.data } }))] })] }, id), _jsx("div", { className: css.status, children: _jsx(T, { id: `road-conditions.status.${status ? "OPENED" : "CLOSED"}` }) })] }));
24
24
  })] }));
25
25
  });
26
26
  RoadCondition.displayName = "RoadCondition";
@@ -26,7 +26,7 @@
26
26
  }
27
27
 
28
28
  .title {
29
- font-size: 38px;
29
+ font-size: 30px;
30
30
  color: hsl(var(--primary));
31
31
  margin-bottom: 10px;
32
32
  }
@@ -38,12 +38,19 @@
38
38
  }
39
39
 
40
40
  .icon {
41
+ display: none;
41
42
  flex: 0 0 30px;
42
43
  width: 30px;
43
44
  height: 30px;
44
45
  fill: var(--blue-gradient-fill);
45
46
  }
46
47
 
48
+ @media (min-width: 580px) {
49
+ .icon {
50
+ display: block;
51
+ }
52
+ }
53
+
47
54
  .right {
48
55
  display: flex;
49
56
  flex-direction: column;
@@ -55,7 +62,13 @@
55
62
  display: flex;
56
63
  align-items: baseline;
57
64
  flex-wrap: wrap;
58
- gap: 6px;
65
+ gap: 0;
66
+ }
67
+
68
+ @media (min-width: 395px) {
69
+ .top {
70
+ gap: 6px;
71
+ }
59
72
  }
60
73
 
61
74
  .name {
@@ -24,7 +24,7 @@
24
24
  }
25
25
 
26
26
  .title {
27
- font-size: 38px;
27
+ font-size: 30px;
28
28
  color: hsl(var(--primary));
29
29
  margin-bottom: 10px;
30
30
  }
@@ -1,4 +1,4 @@
1
- type Day = {
1
+ export type Day = {
2
2
  dayType: string;
3
3
  open: boolean;
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lbm/components/lumiplan/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,GAAG;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB,CAAC;AAEF,KAAK,aAAa,GACd,MAAM,GACN,sBAAsB,GACtB,oBAAoB,GACpB,UAAU,GACV,qBAAqB,GACrB,oBAAoB,GACpB,SAAS,GACT,yBAAyB,GACzB,kBAAkB,GAClB,iBAAiB,GACjB,cAAc,GACd,SAAS,GACT,yBAAyB,GACzB,kBAAkB,GAClB,iBAAiB,GACjB,cAAc,GACd,QAAQ,GACR,gBAAgB,GAChB,eAAe,GACf,gCAAgC,GAChC,6BAA6B,GAC7B,OAAO,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE;QACZ,aAAa,EAAE,aAAa,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,GAAG,EAAE,CAAC;QACnB,cAAc,EAAE,GAAG,EAAE,CAAC;QACtB,eAAe,EAAE,GAAG,EAAE,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACjC,CAAC;AAEF,KAAK,OAAO,GACR,OAAO,GACP,WAAW,GACX,WAAW,GACX,OAAO,GACP,WAAW,GACX,OAAO,GACP,QAAQ,GACR,KAAK,GACL,QAAQ,CAAC;AAEb,KAAK,SAAS,GACV,OAAO,GACP,MAAM,GACN,OAAO,GACP,mBAAmB,GACnB,YAAY,GACZ,KAAK,GACL,QAAQ,CAAC;AAEb,KAAK,aAAa,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE;QACN,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM,CAAC;gBACb,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;YACF,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM,CAAC;gBACb,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;YACF,GAAG,EAAE;gBACH,IAAI,EAAE,MAAM,CAAC;gBACb,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;YACF,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM,CAAC;gBACb,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;SACH,CAAC;QACF,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,KAAK,EAAE;QACL,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;CACH,CAAC;AAEF,KAAK,WAAW,GACZ,OAAO,GACP,OAAO,GACP,YAAY,GACZ,SAAS,GACT,SAAS,GACT,cAAc,GACd,QAAQ,GACR,UAAU,GACV,aAAa,GACb,cAAc,GACd,eAAe,GACf,QAAQ,GACR,cAAc,GACd,QAAQ,GACR,UAAU,GACV,UAAU,CAAC;AAEf,KAAK,aAAa,GACd,OAAO,GACP,KAAK,GACL,UAAU,GACV,cAAc,GACd,MAAM,GACN,WAAW,CAAC;AAEhB,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,aAAa,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IACF,qBAAqB,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IACF,qBAAqB,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IACF,qBAAqB,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IACF,qBAAqB,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IACF,oBAAoB,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IACF,2BAA2B,EAAE;QAC3B,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IACF,iBAAiB,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IACF,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,KAAK,SAAS,GACV,OAAO,GACP,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,MAAM,GACN,MAAM,GACN,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,SAAS,EACL,OAAO,GACP,OAAO,GACP,cAAc,GACd,4BAA4B,GAC5B,wBAAwB,GACxB,0BAA0B,GAC1B,mBAAmB,GACnB,QAAQ,GACR,6BAA6B,GAC7B,uBAAuB,GACvB,gCAAgC,GAChC,4BAA4B,GAC5B,KAAK,GACL,eAAe,GACf,sCAAsC,CAAC;IAC3C,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,SAAS,CAAC;KACjB,CAAC;IACF,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,QAAQ,CAAC;SAChB,CAAC;QACF,QAAQ,EAAE;YACR,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,QAAQ,CAAC;SAChB,CAAC;QACF,SAAS,EAAE,SAAS,CAAC;KACtB,CAAC;IACF,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,SAAS,CAAC;KACjB,CAAC;IACF,iBAAiB,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,gBAAgB,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,sBAAsB,EAAE;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,UAAU,EACN,OAAO,GACP,cAAc,GACd,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,CAAC;CACtB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,WAAW,CAAC;IAChB,EAAE,EAAE,WAAW,CAAC;CACjB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE;QACP,YAAY,EAAE,WAAW,EAAE,CAAC;KAC7B,CAAC;IACF,IAAI,EAAE;QACJ,SAAS,EAAE,QAAQ,EAAE,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,KAAK,QAAQ,GACT,mBAAmB,GACnB,WAAW,GACX,6BAA6B,GAC7B,6BAA6B,GAC7B,sBAAsB,GACtB,WAAW,GACX,SAAS,GACT,SAAS,GACT,MAAM,GACN,cAAc,GACd,qBAAqB,GACrB,SAAS,GACT,cAAc,GACd,OAAO,GACP,MAAM,GACN,OAAO,CAAC;AAEZ,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE,aAAa,CAAC;IAClC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,iBAAiB,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,KAAK,QAAQ,GACT,OAAO,GACP,SAAS,GACT,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,mBAAmB,GACnB,cAAc,CAAC;AAEnB,KAAK,SAAS,GACV,WAAW,GACX,cAAc,GACd,YAAY,GACZ,+BAA+B,GAC/B,sBAAsB,GACtB,0BAA0B,GAC1B,iBAAiB,GACjB,OAAO,GACP,QAAQ,GACR,wBAAwB,GACxB,wBAAwB,GACxB,UAAU,GACV,MAAM,GACN,QAAQ,GACR,mBAAmB,GACnB,iBAAiB,GACjB,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,wBAAwB,GACxB,aAAa,GACb,eAAe,GACf,UAAU,GACV,eAAe,GACf,UAAU,GACV,cAAc,GACd,iBAAiB,GACjB,eAAe,GACf,OAAO,GACP,YAAY,CAAC;AAEjB,KAAK,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1E,KAAK,KAAK,GAAG;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE,aAAa,CAAC;IAClC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,QAAQ,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,iBAAiB,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE,aAAa,CAAC;IAClC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC;AAE/B,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC"}
@@ -4,5 +4,5 @@ import SnowCover from "../icons/snow-cover";
4
4
  import css from "./snow-data.module.css";
5
5
  export default function SnowData({ data, expanded }) {
6
6
  const { snowQuality, snowTotalDepth, freshSnowFallDepth12H, freshSnowFallDepth24H, freshSnowFallDepth48H, freshSnowFallDepth72H, } = data;
7
- return (_jsxs("div", { className: css.snow, children: [_jsx(SnowCover, { className: css.snowIcon }), _jsxs("div", { className: css.snowInfo, children: [_jsxs("div", { className: css.snowState, children: [_jsx(T, { id: "snow.snow-quality.title" }), " ", snowQuality && snowQuality !== "UNDEF" && (_jsxs(_Fragment, { children: [": ", _jsx(T, { id: `snow.snow-quality.states.${snowQuality}` })] }))] }), _jsxs("div", { className: css.snowDepth, children: [snowTotalDepth?.value || 0, _jsx(T, { id: snowTotalDepth?.unit || "CENTIMETER" })] }), expanded && (_jsxs("div", { className: css.expanded, children: [freshSnowFallDepth12H && (_jsxs("div", { className: css.snowFall, children: [_jsx(T, { id: "snow.fresh-snow-fall" }), " 12h :", " ", freshSnowFallDepth12H.value, _jsx(T, { id: freshSnowFallDepth12H.unit })] })), freshSnowFallDepth24H && (_jsxs("div", { className: css.snowFall, children: [_jsx(T, { id: "snow.fresh-snow-fall" }), " 24h :", " ", freshSnowFallDepth24H.value, _jsx(T, { id: freshSnowFallDepth24H.unit })] })), freshSnowFallDepth48H && (_jsxs("div", { className: css.snowFall, children: [_jsx(T, { id: "snow.fresh-snow-fall" }), " 48h :", " ", freshSnowFallDepth48H.value, _jsx(T, { id: freshSnowFallDepth48H.unit })] })), freshSnowFallDepth72H && (_jsxs("div", { className: css.snowFall, children: [_jsx(T, { id: "snow.fresh-snow-fall" }), " 72h :", " ", freshSnowFallDepth72H.value, _jsx(T, { id: freshSnowFallDepth72H.unit })] }))] }))] })] }));
7
+ return (_jsxs("div", { className: css.snow, children: [_jsx(SnowCover, { className: css.snowIcon }), _jsxs("div", { className: css.snowInfo, children: [_jsxs("div", { className: css.snowState, children: [_jsx(T, { id: "snow.snow-quality.title" }), " ", snowQuality && snowQuality !== "UNDEF" && (_jsxs(_Fragment, { children: [": ", _jsx(T, { id: `snow.snow-quality.states.${snowQuality}` })] }))] }), _jsxs("div", { className: css.snowDepth, children: [snowTotalDepth?.value || 0, _jsx(T, { id: snowTotalDepth?.unit || "CENTIMETER" })] }), expanded && (_jsxs("div", { className: css.expanded, children: [freshSnowFallDepth12H?.value && (_jsxs("div", { className: css.snowFall, children: [_jsx(T, { id: "snow.fresh-snow-fall" }), " 12h :", " ", freshSnowFallDepth12H.value, _jsx(T, { id: freshSnowFallDepth12H.unit })] })), freshSnowFallDepth24H?.value && (_jsxs("div", { className: css.snowFall, children: [_jsx(T, { id: "snow.fresh-snow-fall" }), " 24h :", " ", freshSnowFallDepth24H.value, _jsx(T, { id: freshSnowFallDepth24H.unit })] })), freshSnowFallDepth48H?.value && (_jsxs("div", { className: css.snowFall, children: [_jsx(T, { id: "snow.fresh-snow-fall" }), " 48h :", " ", freshSnowFallDepth48H.value, _jsx(T, { id: freshSnowFallDepth48H.unit })] })), freshSnowFallDepth72H?.value && (_jsxs("div", { className: css.snowFall, children: [_jsx(T, { id: "snow.fresh-snow-fall" }), " 72h :", " ", freshSnowFallDepth72H.value, _jsx(T, { id: freshSnowFallDepth72H.unit })] }))] }))] })] }));
8
8
  }
@@ -0,0 +1,7 @@
1
+ export default function Days({ days, currentDayIndex, setCurrentDayIndex, lang, }: {
2
+ days: any;
3
+ currentDayIndex: any;
4
+ setCurrentDayIndex: any;
5
+ lang: any;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=weather-days.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weather-days.d.ts","sourceRoot":"","sources":["../../../../../src/lbm/components/lumiplan/weather/weather-days.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,IAAI,EACJ,eAAe,EACf,kBAAkB,EAClB,IAAI,GACL;;;;;CAAA,2CAiEA"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import classNames from "classnames";
4
+ import Button from "dt-design-system/es/button";
5
+ import T from "../i18n/translations";
6
+ import useWindowSizes from "../../../../common/hooks/use-window-sizes";
7
+ // import useWindowSizes from "ublo-lib/es/common/hooks/use-window-sizes";
8
+ import css from "./weather-days.module.css";
9
+ export default function Days({ days, currentDayIndex, setCurrentDayIndex, lang, }) {
10
+ const [showLeftShadow, setShowLeftShadow] = React.useState(false);
11
+ const [showRightShadow, setShowRightShadow] = React.useState(false);
12
+ const containerRef = React.useRef(null);
13
+ const scrollerRef = React.useRef(null);
14
+ const { width, height } = useWindowSizes();
15
+ const refreshShadows = React.useCallback(() => {
16
+ const container = containerRef.current;
17
+ const scroller = scrollerRef.current;
18
+ if (container && scroller) {
19
+ setShowLeftShadow(scroller.scrollLeft > 50);
20
+ const maxScroll = Math.round(scroller.scrollWidth) - Math.round(scroller.clientWidth);
21
+ setShowRightShadow(scroller.scrollLeft < maxScroll - 50);
22
+ }
23
+ }, []);
24
+ React.useEffect(() => {
25
+ refreshShadows();
26
+ }, [refreshShadows, width, height]);
27
+ const daysClasses = classNames(css.days, {
28
+ [css.leftShadow]: showLeftShadow,
29
+ [css.rightShadow]: showRightShadow,
30
+ });
31
+ return (_jsx("div", { ref: containerRef, className: daysClasses, children: _jsx("div", { ref: scrollerRef, onScroll: refreshShadows, className: css.content, children: days.map((day, i) => {
32
+ const { date, am, pm } = day;
33
+ if (!pm || !am)
34
+ return null;
35
+ const isSelected = i === currentDayIndex;
36
+ const updateCurrentDay = () => {
37
+ setCurrentDayIndex(i);
38
+ };
39
+ const isToday = new Date(date).getDate() === new Date().getDate();
40
+ const locale = lang === "fr" ? "fr-FR" : "en-UK";
41
+ const today = new Date(date).toLocaleDateString(locale, {
42
+ weekday: "long",
43
+ });
44
+ const formatedDate = new Date(date).toLocaleDateString(locale, {
45
+ day: "2-digit",
46
+ month: "2-digit",
47
+ year: "numeric",
48
+ });
49
+ const classes = classNames(css.day, {
50
+ [css.daySelected]: isSelected,
51
+ });
52
+ return (_jsxs(Button, { className: classes, onClick: updateCurrentDay, children: [_jsx("b", { children: isToday ? _jsx(T, { id: "weather.today" }) : today }), formatedDate] }, date));
53
+ }) }) }));
54
+ }
@@ -0,0 +1,66 @@
1
+ .days {
2
+ position: relative;
3
+ }
4
+
5
+ .days::before,
6
+ .days::after {
7
+ content: "";
8
+ position: absolute;
9
+ top: 0;
10
+ width: 40px;
11
+ height: 100%;
12
+ background: linear-gradient(
13
+ to right,
14
+ #fff,
15
+ rgba(255, 255, 255, 0.6),
16
+ transparent
17
+ );
18
+ z-index: 1;
19
+ opacity: 0;
20
+ transition: opacity 320ms ease;
21
+ pointer-events: none;
22
+ }
23
+
24
+ .days::before {
25
+ left: 0;
26
+ }
27
+
28
+ .days::after {
29
+ right: 0;
30
+ transform: rotate(0.5turn);
31
+ }
32
+
33
+ .leftShadow::before,
34
+ .rightShadow::after {
35
+ opacity: 1;
36
+ }
37
+
38
+ .content {
39
+ width: 100%;
40
+ display: flex;
41
+ align-items: center;
42
+ overflow: auto;
43
+ scroll-snap-type: x proximity;
44
+ }
45
+
46
+ button.day {
47
+ --ds-button-padding: 16px;
48
+ --ds-button-font-size: 14px;
49
+ --ds-button-foreground: hsl(var(--primary));
50
+ --ds-button-font-weight: 400;
51
+ --ds-button-background: transparent;
52
+ --ds-button-hover-background: hsla(var(--primary), 10%);
53
+ --ds-button-radius: 0;
54
+
55
+ flex-direction: column;
56
+ scroll-snap-align: start;
57
+ }
58
+
59
+ button.daySelected {
60
+ position: relative;
61
+ --ds-button-background: hsla(var(--primary), 10%);
62
+ }
63
+
64
+ button.day b {
65
+ text-transform: uppercase;
66
+ }
@@ -0,0 +1,6 @@
1
+ export default function Zones({ weatherZones, currentZoneIndex, setCurrentZoneIndex, }: {
2
+ weatherZones: any;
3
+ currentZoneIndex: any;
4
+ setCurrentZoneIndex: any;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=weather-zones.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weather-zones.d.ts","sourceRoot":"","sources":["../../../../../src/lbm/components/lumiplan/weather/weather-zones.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GACpB;;;;CAAA,2CAgEA"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import classNames from "classnames";
4
+ import useWindowSizes from "../../../../common/hooks/use-window-sizes";
5
+ // import useWindowSizes from "ublo-lib/es/common/hooks/use-window-sizes";
6
+ import Button from "dt-design-system/es/button";
7
+ import T from "../i18n/translations";
8
+ import css from "./weather-zones.module.css";
9
+ export default function Zones({ weatherZones, currentZoneIndex, setCurrentZoneIndex, }) {
10
+ const [showLeftShadow, setShowLeftShadow] = React.useState(false);
11
+ const [showRightShadow, setShowRightShadow] = React.useState(false);
12
+ const containerRef = React.useRef(null);
13
+ const scrollerRef = React.useRef(null);
14
+ const { width, height } = useWindowSizes();
15
+ const refreshShadows = React.useCallback(() => {
16
+ const container = containerRef.current;
17
+ const scroller = scrollerRef.current;
18
+ if (container && scroller) {
19
+ setShowLeftShadow(scroller.scrollLeft > 50);
20
+ const maxScroll = Math.round(scroller.scrollWidth) - Math.round(scroller.clientWidth);
21
+ setShowRightShadow(scroller.scrollLeft < maxScroll - 50);
22
+ }
23
+ }, []);
24
+ React.useEffect(() => {
25
+ refreshShadows();
26
+ }, [refreshShadows, width, height]);
27
+ const zonesClasses = classNames(css.zones, {
28
+ [css.leftShadow]: showLeftShadow,
29
+ [css.rightShadow]: showRightShadow,
30
+ });
31
+ return (_jsx("div", { ref: containerRef, className: zonesClasses, children: _jsx("div", { ref: scrollerRef, onScroll: refreshShadows, className: css.content, children: weatherZones.map((zone, i) => {
32
+ const hasData = Boolean(zone.weatherInfos.length > 0 &&
33
+ zone.weatherInfos[0].am &&
34
+ zone.weatherInfos[0].pm);
35
+ if (!hasData)
36
+ return null;
37
+ const { name, altitude } = zone;
38
+ const { value, unit } = altitude;
39
+ const isSelected = i === currentZoneIndex;
40
+ const updateCurrentZone = () => {
41
+ setCurrentZoneIndex(i);
42
+ };
43
+ const classes = classNames(css.zone, {
44
+ [css.zoneSelected]: isSelected,
45
+ });
46
+ return (_jsxs(Button, { className: classes, onClick: updateCurrentZone, children: [_jsx("b", { children: name }), " ", value, _jsx("span", { children: _jsx(T, { id: unit }) })] }, name));
47
+ }) }) }));
48
+ }
@@ -0,0 +1,79 @@
1
+ .zones {
2
+ position: relative;
3
+ margin-bottom: 30px;
4
+ }
5
+
6
+ .zones::before,
7
+ .zones::after {
8
+ content: "";
9
+ position: absolute;
10
+ top: 0;
11
+ width: 40px;
12
+ height: 100%;
13
+ background: linear-gradient(
14
+ to right,
15
+ #fff,
16
+ rgba(255, 255, 255, 0.6),
17
+ transparent
18
+ );
19
+ z-index: 1;
20
+ opacity: 0;
21
+ transition: opacity 320ms ease;
22
+ pointer-events: none;
23
+ }
24
+
25
+ .zones::before {
26
+ left: 0;
27
+ }
28
+
29
+ .zones::after {
30
+ right: 0;
31
+ transform: rotate(0.5turn);
32
+ }
33
+
34
+ .leftShadow::before,
35
+ .rightShadow::after {
36
+ opacity: 1;
37
+ }
38
+
39
+ .content {
40
+ width: 100%;
41
+ display: flex;
42
+ align-items: center;
43
+ gap: 10px;
44
+ overflow: auto;
45
+ scroll-snap-type: x proximity;
46
+ }
47
+
48
+ button.zone {
49
+ --ds-button-padding: 8px;
50
+ --ds-button-font-size: 14px;
51
+ --ds-button-foreground: hsl(var(--primary));
52
+ --ds-button-font-weight: 400;
53
+ --ds-button-background: transparent;
54
+ --ds-button-hover-background: hsla(var(--primary), 10%);
55
+ --ds-button-shadow: 0 0 0 1px hsl(var(--primary)) inset;
56
+
57
+ display: block;
58
+ white-space: nowrap;
59
+ scroll-snap-align: start;
60
+ }
61
+
62
+ button.zone:first-child {
63
+ margin-left: auto;
64
+ }
65
+
66
+ button.zone:last-child {
67
+ margin-right: auto;
68
+ }
69
+
70
+ button.zoneSelected {
71
+ --ds-button-foreground: hsl(var(--grey-000));
72
+ --ds-button-shadow: 0;
73
+
74
+ background: var(--blue-gradient);
75
+ }
76
+
77
+ button.zone b {
78
+ text-transform: uppercase;
79
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"weather.d.ts","sourceRoot":"","sources":["../../../../../src/lbm/components/lumiplan/weather/weather.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,KAAK,KAAK,GAAG;IACX,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,QAAA,MAAM,OAAO,8EA+IZ,CAAC;AAIF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"weather.d.ts","sourceRoot":"","sources":["../../../../../src/lbm/components/lumiplan/weather/weather.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD,KAAK,KAAK,GAAG;IACX,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,QAAA,MAAM,OAAO,8EA+EZ,CAAC;AAIF,eAAe,OAAO,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import classNames from "classnames";
4
3
  import { useUbloContext } from "ublo/with-ublo";
5
4
  import Button from "dt-design-system/es/button";
6
5
  import Tooltip from "dt-design-system/es/tooltip";
@@ -9,8 +8,10 @@ import * as Icons from "dt-design-system/es/icons";
9
8
  import AvalancheRisk from "./avalanche-risk";
10
9
  import SnowData from "./snow-data";
11
10
  import WeatherData from "./weather-data";
12
- import T, { t } from "../i18n/translations";
11
+ import { t } from "../i18n/translations";
13
12
  import css from "./weather.module.css";
13
+ import Days from "./weather-days";
14
+ import Zones from "./weather-zones";
14
15
  const Weather = React.forwardRef(({ weather }, ref) => {
15
16
  const { lang } = useUbloContext();
16
17
  const [currentZoneIndex, setCurrentZoneIndex] = React.useState(0);
@@ -36,45 +37,7 @@ const Weather = React.forwardRef(({ weather }, ref) => {
36
37
  const toggleExpanded = () => {
37
38
  setExpanded(!expanded);
38
39
  };
39
- return (_jsxs("div", { ref: ref, className: css.weather, "data-tags": t(lang, "weather.title"), children: [_jsxs("div", { className: css.header, children: [_jsx("div", { className: css.days, children: days.map((day, i) => {
40
- const { date, am, pm } = day;
41
- if (!pm || !am)
42
- return null;
43
- const isSelected = i === currentDayIndex;
44
- const updateCurrentDay = () => {
45
- setCurrentDayIndex(i);
46
- };
47
- const isToday = new Date(date).getDate() === new Date().getDate();
48
- const locale = lang === "fr" ? "fr-FR" : "en-UK";
49
- const today = new Date(date).toLocaleDateString(locale, {
50
- weekday: "long",
51
- });
52
- const formatedDate = new Date(date).toLocaleDateString(locale, {
53
- day: "2-digit",
54
- month: "2-digit",
55
- year: "numeric",
56
- });
57
- const classes = classNames(css.day, {
58
- [css.daySelected]: isSelected,
59
- });
60
- return (_jsxs(Button, { className: classes, onClick: updateCurrentDay, children: [_jsx("b", { children: isToday ? _jsx(T, { id: "weather.today" }) : today }), formatedDate] }, date));
61
- }) }), _jsx("div", { className: css.zones, children: weatherZones.map((zone, i) => {
62
- const hasData = Boolean(zone.weatherInfos.length > 0 &&
63
- zone.weatherInfos[0].am &&
64
- zone.weatherInfos[0].pm);
65
- if (!hasData)
66
- return null;
67
- const { name, altitude } = zone;
68
- const { value, unit } = altitude;
69
- const isSelected = i === currentZoneIndex;
70
- const updateCurrentZone = () => {
71
- setCurrentZoneIndex(i);
72
- };
73
- const classes = classNames(css.zone, {
74
- [css.zoneSelected]: isSelected,
75
- });
76
- return (_jsxs(Button, { className: classes, onClick: updateCurrentZone, children: [_jsx("b", { children: name }), " ", value, _jsx("span", { children: _jsx(T, { id: unit }) })] }, name));
77
- }) })] }), _jsxs("div", { className: css.info, children: [_jsx(AvalancheRisk, { avalancheRisk: snowData.avalancheRisk }), _jsxs("div", { className: css.infoBottom, children: [_jsx(SnowData, { data: snowData, expanded: expanded }), _jsx(WeatherData, { kind: "am", data: am, expanded: expanded }), _jsx(WeatherData, { kind: "pm", data: pm, expanded: expanded })] }), _jsx(Tooltip, { content: t(lang, expanded ? "see-less" : "see-more"), children: _jsx(Button, { className: css.expandButton, variant: "transparent", onClick: toggleExpanded, children: _jsx(ExpandIcon, {}) }) })] })] }));
40
+ return (_jsxs("div", { ref: ref, className: css.weather, "data-tags": t(lang, "weather.title"), children: [_jsx(Zones, { weatherZones: weatherZones, currentZoneIndex: currentZoneIndex, setCurrentZoneIndex: setCurrentZoneIndex }), _jsx(Days, { days: days, currentDayIndex: currentDayIndex, setCurrentDayIndex: setCurrentDayIndex, lang: lang }), _jsxs("div", { className: css.info, children: [_jsx(AvalancheRisk, { avalancheRisk: snowData.avalancheRisk }), _jsxs("div", { className: css.infoBottom, children: [_jsx(SnowData, { data: snowData, expanded: expanded }), _jsx(WeatherData, { kind: "am", data: am, expanded: expanded }), _jsx(WeatherData, { kind: "pm", data: pm, expanded: expanded })] }), _jsx(Tooltip, { content: t(lang, expanded ? "see-less" : "see-more"), children: _jsx(Button, { className: css.expandButton, variant: "transparent", onClick: toggleExpanded, children: _jsx(ExpandIcon, {}) }) })] })] }));
78
41
  });
79
42
  Weather.displayName = "Weather";
80
43
  export default Weather;
@@ -3,7 +3,7 @@
3
3
  width: 100%;
4
4
  max-width: 1200px;
5
5
  height: 300px;
6
- margin: 30px auto;
6
+ margin: 20px auto;
7
7
  border-radius: var(--radius-200);
8
8
  overflow: hidden;
9
9
  }
@@ -13,7 +13,7 @@
13
13
  max-width: 1200px;
14
14
  display: flex;
15
15
  flex-direction: column;
16
- margin: 36px auto;
16
+ margin: 20px auto;
17
17
  padding: 0 10px;
18
18
  }
19
19
 
@@ -23,74 +23,6 @@
23
23
  }
24
24
  }
25
25
 
26
- .header {
27
- display: flex;
28
- flex-direction: column-reverse;
29
- gap: 16px;
30
- overflow: auto;
31
- }
32
-
33
- @media (min-width: 700px) {
34
- .header {
35
- flex-direction: row;
36
- align-items: center;
37
- justify-content: space-between;
38
- }
39
- }
40
-
41
- .days {
42
- display: flex;
43
- }
44
-
45
- .zones {
46
- display: flex;
47
- gap: 10px;
48
- }
49
-
50
- button.zone {
51
- --ds-button-padding: 12px;
52
- --ds-button-font-size: 16px;
53
- --ds-button-foreground: hsl(var(--primary));
54
- --ds-button-font-weight: 400;
55
- --ds-button-background: transparent;
56
- --ds-button-hover-background: hsla(var(--primary), 10%);
57
- --ds-button-shadow: 0 0 0 1px hsl(var(--primary)) inset;
58
-
59
- display: block;
60
- }
61
-
62
- button.zoneSelected {
63
- --ds-button-foreground: hsl(var(--grey-000));
64
- --ds-button-shadow: 0;
65
-
66
- background: var(--blue-gradient);
67
- }
68
-
69
- button.zone b {
70
- text-transform: uppercase;
71
- }
72
-
73
- button.day {
74
- --ds-button-padding: 16px;
75
- --ds-button-font-size: 16px;
76
- --ds-button-foreground: hsl(var(--primary));
77
- --ds-button-font-weight: 400;
78
- --ds-button-background: transparent;
79
- --ds-button-hover-background: hsla(var(--primary), 10%);
80
- --ds-button-radius: 0;
81
-
82
- flex-direction: column;
83
- }
84
-
85
- button.daySelected {
86
- position: relative;
87
- --ds-button-background: hsla(var(--primary), 10%);
88
- }
89
-
90
- button.day b {
91
- text-transform: uppercase;
92
- }
93
-
94
26
  .info {
95
27
  display: flex;
96
28
  flex-direction: column;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ublo-lib",
3
- "version": "1.21.5",
3
+ "version": "1.21.7",
4
4
  "peerDependencies": {
5
5
  "dt-design-system": "^3.1.5",
6
6
  "leaflet": "^1.9.1",