@licklist/design 0.70.10 → 0.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/assets/iframe/available.svg +4 -4
  2. package/dist/assets/iframe/available.svg.js +16 -18
  3. package/dist/availability-indicator/AvailabilityIndicator.d.ts +4 -2
  4. package/dist/availability-indicator/AvailabilityIndicator.d.ts.map +1 -1
  5. package/dist/availability-indicator/AvailabilityIndicator.js +112 -18
  6. package/dist/calendar/Calendar.d.ts +2 -0
  7. package/dist/calendar/Calendar.d.ts.map +1 -1
  8. package/dist/calendar/components/CalendarDates/CalendarDates.d.ts +2 -2
  9. package/dist/calendar/components/CalendarDates/CalendarDates.d.ts.map +1 -1
  10. package/dist/calendar/components/CalendarDates/CalendarDates.js +3 -2
  11. package/dist/date-time-button/DateTimeButton.d.ts +3 -1
  12. package/dist/date-time-button/DateTimeButton.d.ts.map +1 -1
  13. package/dist/date-time-button/DateTimeButton.js +5 -3
  14. package/dist/events/edit-event-modal/component/SelectEventProductSet/component/EditEventProductSet.js +1 -0
  15. package/dist/iframe/activity-card/ActivityCard.d.ts +3 -1
  16. package/dist/iframe/activity-card/ActivityCard.d.ts.map +1 -1
  17. package/dist/iframe/activity-card/ActivityCard.js +5 -3
  18. package/dist/product-set/product/advanced-options/AdvancedOptions.js +1 -0
  19. package/dist/snippet/snippet-template/preview/Preview.js +2 -0
  20. package/dist/styles/availability-indicator/AvailabilityIndicator.scss +9 -0
  21. package/dist/styles/date-time-button/DateTimeButton.scss +2 -2
  22. package/dist/styles/iframe-events/Calendar.scss +1 -1
  23. package/package.json +6 -6
  24. package/src/assets/iframe/available.svg +4 -4
  25. package/src/availability-indicator/AvailabilityIndicator.tsx +92 -17
  26. package/src/calendar/Calendar.tsx +2 -0
  27. package/src/calendar/components/CalendarDates/CalendarDates.tsx +3 -0
  28. package/src/date-time-button/DateTimeButton.tsx +7 -3
  29. package/src/iframe/activity-card/ActivityCard.tsx +15 -2
  30. package/src/styles/availability-indicator/AvailabilityIndicator.scss +9 -0
  31. package/src/styles/date-time-button/DateTimeButton.scss +2 -2
  32. package/src/styles/iframe-events/Calendar.scss +1 -1
  33. package/yarn.lock +156 -132
@@ -1,5 +1,5 @@
1
- <svg width="7" height="11" viewBox="0 0 7 11" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="0.943939" y="1.03658" width="5.25188" height="3.04878" rx="1.5" fill="#4CF973" stroke="white"/>
3
- <rect x="0.943939" y="4.10976" width="5.25188" height="3.04878" rx="1.5" fill="#4CF973" stroke="white"/>
4
- <rect x="0.943939" y="7.18292" width="5.25188" height="3.04878" rx="1.5" fill="#4CF973" stroke="white"/>
1
+ <svg viewBox="auto" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="14%" y="0" width="63%" height="29%" rx="15%" fill="#4CF973" stroke="white"/>
3
+ <rect x="14%" y="33%" width="63%" height="29%" rx="15%" fill="#4CF973" stroke="white"/>
4
+ <rect x="14%" y="66%" width="63%" height="29%" rx="15%" fill="#4CF973" stroke="white"/>
5
5
  </svg>
@@ -4,33 +4,31 @@ var _rect, _rect2, _rect3;
4
4
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
5
5
  const SvgAvailable = props => /*#__PURE__*/React.createElement("svg", _extends({
6
6
  xmlns: "http://www.w3.org/2000/svg",
7
- width: 7,
8
- height: 11,
9
- fill: "none"
7
+ fill: "none",
8
+ viewBox: "auto"
10
9
  }, props), _rect || (_rect = /*#__PURE__*/React.createElement("rect", {
11
- width: 5.252,
12
- height: 3.049,
13
- x: 0.944,
14
- y: 1.037,
10
+ width: "63%",
11
+ height: "29%",
12
+ x: "14%",
15
13
  fill: "#4CF973",
16
14
  stroke: "#fff",
17
- rx: 1.5
15
+ rx: "15%"
18
16
  })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement("rect", {
19
- width: 5.252,
20
- height: 3.049,
21
- x: 0.944,
22
- y: 4.11,
17
+ width: "63%",
18
+ height: "29%",
19
+ x: "14%",
20
+ y: "33%",
23
21
  fill: "#4CF973",
24
22
  stroke: "#fff",
25
- rx: 1.5
23
+ rx: "15%"
26
24
  })), _rect3 || (_rect3 = /*#__PURE__*/React.createElement("rect", {
27
- width: 5.252,
28
- height: 3.049,
29
- x: 0.944,
30
- y: 7.183,
25
+ width: "63%",
26
+ height: "29%",
27
+ x: "14%",
28
+ y: "66%",
31
29
  fill: "#4CF973",
32
30
  stroke: "#fff",
33
- rx: 1.5
31
+ rx: "15%"
34
32
  })));
35
33
 
36
34
  export { SvgAvailable as ReactComponent };
@@ -1,9 +1,11 @@
1
1
  import { ZoneResourcesAvailability } from '@licklist/core/dist/DataMapper/Order/ZoneResourcesAvailabilityDataMapper';
2
+ import { AvailabilityFormat } from '@licklist/core/dist/DataMapper/Provider/SnippetDataMapper';
2
3
  type AvailabilityIndicatorProps = {
3
- resources: ZoneResourcesAvailability;
4
+ resources?: ZoneResourcesAvailability;
4
5
  isUnavailable?: boolean;
5
6
  isSoldOut?: boolean;
7
+ availabilityFormat?: AvailabilityFormat | null;
6
8
  };
7
- export declare const AvailabilityIndicator: ({ resources, isUnavailable, isSoldOut, }: AvailabilityIndicatorProps) => import("react/jsx-runtime").JSX.Element;
9
+ export declare const AvailabilityIndicator: ({ resources, isUnavailable, isSoldOut: _isSoldOut, availabilityFormat, }: AvailabilityIndicatorProps) => import("react/jsx-runtime").JSX.Element;
8
10
  export {};
9
11
  //# sourceMappingURL=AvailabilityIndicator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AvailabilityIndicator.d.ts","sourceRoot":"","sources":["../../src/availability-indicator/AvailabilityIndicator.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0EAA0E,CAAA;AAiCpH,KAAK,0BAA0B,GAAG;IAChC,SAAS,EAAE,yBAAyB,CAAA;IACpC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,qBAAqB,6CAI/B,0BAA0B,4CAc5B,CAAA"}
1
+ {"version":3,"file":"AvailabilityIndicator.d.ts","sourceRoot":"","sources":["../../src/availability-indicator/AvailabilityIndicator.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0EAA0E,CAAA;AACpH,OAAO,EAEL,kBAAkB,EACnB,MAAM,2DAA2D,CAAA;AAuFlE,KAAK,0BAA0B,GAAG;IAChC,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;CAC/C,CAAA;AAED,eAAO,MAAM,qBAAqB,6EAK/B,0BAA0B,4CAwB5B,CAAA"}
@@ -1,40 +1,117 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useTranslation } from 'react-i18next';
3
+ import { AVAILABILITY_FORMAT_NUMBER } from '@licklist/core/dist/DataMapper/Provider/SnippetDataMapper';
4
+ import { useWindowDimensions } from '@licklist/plugins';
3
5
  import { ReactComponent as SvgAvailable } from '../assets/iframe/available.svg.js';
4
6
  import { ReactComponent as SvgLimited } from '../assets/iframe/limited.svg.js';
5
7
  import { ReactComponent as SvgSoldOut } from '../assets/iframe/soldOut.svg.js';
8
+ import { TAB_WIDTH } from '../iframe/page/components/PageBody/constants.js';
6
9
 
10
+ function _define_property(obj, key, value) {
11
+ if (key in obj) {
12
+ Object.defineProperty(obj, key, {
13
+ value: value,
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true
17
+ });
18
+ } else {
19
+ obj[key] = value;
20
+ }
21
+ return obj;
22
+ }
23
+ function _object_spread(target) {
24
+ for(var i = 1; i < arguments.length; i++){
25
+ var source = arguments[i] != null ? arguments[i] : {};
26
+ var ownKeys = Object.keys(source);
27
+ if (typeof Object.getOwnPropertySymbols === "function") {
28
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
29
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
30
+ }));
31
+ }
32
+ ownKeys.forEach(function(key) {
33
+ _define_property(target, key, source[key]);
34
+ });
35
+ }
36
+ return target;
37
+ }
38
+ function ownKeys(object, enumerableOnly) {
39
+ var keys = Object.keys(object);
40
+ if (Object.getOwnPropertySymbols) {
41
+ var symbols = Object.getOwnPropertySymbols(object);
42
+ if (enumerableOnly) {
43
+ symbols = symbols.filter(function(sym) {
44
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
45
+ });
46
+ }
47
+ keys.push.apply(keys, symbols);
48
+ }
49
+ return keys;
50
+ }
51
+ function _object_spread_props(target, source) {
52
+ source = source != null ? source : {};
53
+ if (Object.getOwnPropertyDescriptors) {
54
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
55
+ } else {
56
+ ownKeys(Object(source)).forEach(function(key) {
57
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
58
+ });
59
+ }
60
+ return target;
61
+ }
7
62
  var LOTS_OF_SPACE_LIMIT = 0.2;
8
63
  var LIMITED_LIMIT = 0.8;
9
- var getIconsAndLabels = function(param) {
10
- var bookedResources = param.bookedResources, totalResources = param.totalResources;
11
- if (bookedResources === totalResources) {
64
+ var getLabelsWithArgument = function(param) {
65
+ var bookedResources = param.bookedResources, totalResources = param.totalResources, availabilityFormat = param.availabilityFormat, label = param.label;
66
+ var availableResources = totalResources - bookedResources;
67
+ if (availabilityFormat !== AVAILABILITY_FORMAT_NUMBER) {
12
68
  return {
13
- label: 'soldOut',
14
- Icon: SvgSoldOut
69
+ label: label
15
70
  };
16
71
  }
72
+ return availableResources === 1 ? {
73
+ label: 'availableSingleSpace'
74
+ } : {
75
+ label: 'availableMultipleSpaces',
76
+ argument: availableResources
77
+ };
78
+ };
79
+ var getIconsAndLabelsWithArgument = function(param) {
80
+ var bookedResources = param.bookedResources, totalResources = param.totalResources, availabilityFormat = param.availabilityFormat;
17
81
  // lots of space if less than 80% booked
18
82
  if (bookedResources / totalResources <= LOTS_OF_SPACE_LIMIT) {
19
- return {
20
- label: 'lotsOfSpace',
83
+ return _object_spread_props(_object_spread({}, getLabelsWithArgument({
84
+ bookedResources: bookedResources,
85
+ totalResources: totalResources,
86
+ availabilityFormat: availabilityFormat,
87
+ label: 'lotsOfSpace'
88
+ })), {
21
89
  Icon: SvgAvailable
22
- };
90
+ });
23
91
  }
24
92
  if (bookedResources / totalResources >= LIMITED_LIMIT) {
25
- return {
26
- label: 'limited',
93
+ return _object_spread_props(_object_spread({}, getLabelsWithArgument({
94
+ bookedResources: bookedResources,
95
+ totalResources: totalResources,
96
+ availabilityFormat: availabilityFormat,
97
+ label: 'limited'
98
+ })), {
27
99
  Icon: SvgLimited
28
- };
100
+ });
29
101
  }
30
- return {
31
- label: 'available',
102
+ return _object_spread_props(_object_spread({}, getLabelsWithArgument({
103
+ bookedResources: bookedResources,
104
+ totalResources: totalResources,
105
+ availabilityFormat: availabilityFormat,
106
+ label: 'available'
107
+ })), {
32
108
  Icon: SvgAvailable
33
- };
109
+ });
34
110
  };
35
111
  var AvailabilityIndicator = function(param) {
36
- var resources = param.resources, isUnavailable = param.isUnavailable, isSoldOut = param.isSoldOut;
112
+ var resources = param.resources, isUnavailable = param.isUnavailable, _isSoldOut = param.isSoldOut, availabilityFormat = param.availabilityFormat;
37
113
  var t = useTranslation('Design').t;
114
+ var isSoldOut = _isSoldOut || (resources === null || resources === void 0 ? void 0 : resources.bookedResources) === (resources === null || resources === void 0 ? void 0 : resources.totalResources);
38
115
  if (isUnavailable) {
39
116
  return /*#__PURE__*/ jsx(Indicator, {
40
117
  Icon: SvgSoldOut,
@@ -47,19 +124,36 @@ var AvailabilityIndicator = function(param) {
47
124
  label: t('soldOut')
48
125
  });
49
126
  }
50
- var _getIconsAndLabels = getIconsAndLabels(resources), Icon = _getIconsAndLabels.Icon, label = _getIconsAndLabels.label;
127
+ var _getIconsAndLabelsWithArgument = getIconsAndLabelsWithArgument(_object_spread_props(_object_spread({}, resources), {
128
+ availabilityFormat: availabilityFormat
129
+ })), Icon = _getIconsAndLabelsWithArgument.Icon, label = _getIconsAndLabelsWithArgument.label, argument = _getIconsAndLabelsWithArgument.argument;
51
130
  return /*#__PURE__*/ jsx(Indicator, {
52
131
  Icon: Icon,
53
- label: t(label)
132
+ label: t(label, argument ? {
133
+ argument: argument
134
+ } : undefined)
54
135
  });
55
136
  };
56
137
  var Indicator = function(param) {
57
138
  var Icon = param.Icon, label = param.label;
139
+ var width = useWindowDimensions().width;
140
+ var iconSizes = width > TAB_WIDTH ? {
141
+ height: 15,
142
+ width: 11
143
+ } : {
144
+ height: 11,
145
+ width: 7
146
+ };
58
147
  return /*#__PURE__*/ jsxs("div", {
59
148
  className: "availability-indicator",
60
149
  children: [
61
- /*#__PURE__*/ jsx(Icon, {}),
150
+ /*#__PURE__*/ jsx(Icon, {
151
+ height: iconSizes.height,
152
+ width: iconSizes.width,
153
+ viewBox: "auto"
154
+ }),
62
155
  /*#__PURE__*/ jsx("div", {
156
+ className: "indicator-label",
63
157
  children: label
64
158
  })
65
159
  ]
@@ -1,5 +1,6 @@
1
1
  import { Dispatch, ReactElement, SetStateAction } from 'react';
2
2
  import { DateTime } from 'luxon';
3
+ import { AvailabilityFormat } from '@licklist/core/dist/DataMapper/Provider/SnippetDataMapper';
3
4
  import { DateTimeButtonProps } from 'src/date-time-button';
4
5
  export declare const defaultStartDay: DateTime<true>;
5
6
  export type CalendarProps = {
@@ -11,6 +12,7 @@ export type CalendarProps = {
11
12
  fromPrice?: string | ReactElement | null;
12
13
  isLoading?: boolean;
13
14
  initialDate?: DateTime;
15
+ availabilityFormat?: AvailabilityFormat | null;
14
16
  getDateTimeButtonProps: (date: DateTime) => Pick<DateTimeButtonProps, 'resources' | 'showResources' | 'isDisabled'>;
15
17
  };
16
18
  export declare const Calendar: (props: CalendarProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAK1D,eAAO,MAAM,eAAe,gBAK1B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,QAAQ,CAAA;IACrB,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IAClD,aAAa,EAAE,QAAQ,EAAE,CAAA;IACzB,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC7B,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAA;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAA;IACxC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,QAAQ,CAAA;IACtB,sBAAsB,EAAE,CACtB,IAAI,EAAE,QAAQ,KACX,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,eAAe,GAAG,YAAY,CAAC,CAAA;CAC7E,CAAA;AAED,eAAO,MAAM,QAAQ,UAAW,aAAa,4CAW5C,CAAA"}
1
+ {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2DAA2D,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAK1D,eAAO,MAAM,eAAe,gBAK1B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,QAAQ,CAAA;IACrB,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IAClD,aAAa,EAAE,QAAQ,EAAE,CAAA;IACzB,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC7B,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAA;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAA;IACxC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,QAAQ,CAAA;IACtB,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC9C,sBAAsB,EAAE,CACtB,IAAI,EAAE,QAAQ,KACX,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,eAAe,GAAG,YAAY,CAAC,CAAA;CAC7E,CAAA;AAED,eAAO,MAAM,QAAQ,UAAW,aAAa,4CAW5C,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import { CalendarProps } from '../../Calendar';
2
- export type CalendarDatesProps = Pick<CalendarProps, 'calendarDates' | 'selectedDate' | 'setSelectedDate' | 'fromPrice' | 'getDateTimeButtonProps'>;
3
- export declare const CalendarDates: ({ calendarDates, selectedDate, setSelectedDate, fromPrice, getDateTimeButtonProps, }: CalendarDatesProps) => import("react/jsx-runtime").JSX.Element;
2
+ export type CalendarDatesProps = Pick<CalendarProps, 'calendarDates' | 'selectedDate' | 'setSelectedDate' | 'fromPrice' | 'getDateTimeButtonProps' | 'availabilityFormat'>;
3
+ export declare const CalendarDates: ({ calendarDates, selectedDate, setSelectedDate, fromPrice, availabilityFormat, getDateTimeButtonProps, }: CalendarDatesProps) => import("react/jsx-runtime").JSX.Element;
4
4
  //# sourceMappingURL=CalendarDates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarDates.d.ts","sourceRoot":"","sources":["../../../../src/calendar/components/CalendarDates/CalendarDates.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,aAAa,EACX,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,wBAAwB,CAC3B,CAAA;AAED,eAAO,MAAM,aAAa,yFAMvB,kBAAkB,4CA4CpB,CAAA"}
1
+ {"version":3,"file":"CalendarDates.d.ts","sourceRoot":"","sources":["../../../../src/calendar/components/CalendarDates/CalendarDates.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,aAAa,EACX,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,wBAAwB,GACxB,oBAAoB,CACvB,CAAA;AAED,eAAO,MAAM,aAAa,6GAOvB,kBAAkB,4CA6CpB,CAAA"}
@@ -57,7 +57,7 @@ function _unsupported_iterable_to_array(o, minLen) {
57
57
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
58
58
  }
59
59
  var CalendarDates = function(param) {
60
- var calendarDates = param.calendarDates, selectedDate = param.selectedDate, setSelectedDate = param.setSelectedDate, fromPrice = param.fromPrice, getDateTimeButtonProps = param.getDateTimeButtonProps;
60
+ var calendarDates = param.calendarDates, selectedDate = param.selectedDate, setSelectedDate = param.setSelectedDate, fromPrice = param.fromPrice, availabilityFormat = param.availabilityFormat, getDateTimeButtonProps = param.getDateTimeButtonProps;
61
61
  var fillCalendarDates = useMemo(function() {
62
62
  var _calendarDates_;
63
63
  var _calendarDates__weekday;
@@ -90,7 +90,8 @@ var CalendarDates = function(param) {
90
90
  return setSelectedDate(date);
91
91
  },
92
92
  price: fromPrice,
93
- variant: Variant.month
93
+ variant: Variant.month,
94
+ availabilityFormat: availabilityFormat
94
95
  }, props), +date);
95
96
  })
96
97
  })
@@ -1,6 +1,7 @@
1
1
  import { ReactElement } from 'react';
2
2
  import { DateTime } from 'luxon';
3
3
  import { ZoneResourcesAvailability } from '@licklist/core/dist/DataMapper/Order/ZoneResourcesAvailabilityDataMapper';
4
+ import { AvailabilityFormat } from '@licklist/core/dist/DataMapper/Provider/SnippetDataMapper';
4
5
  export declare enum Variant {
5
6
  week = "week",
6
7
  month = "month",
@@ -16,6 +17,7 @@ export type DateTimeButtonProps = {
16
17
  resources?: ZoneResourcesAvailability | null;
17
18
  showResources?: boolean;
18
19
  variant: Variant;
20
+ availabilityFormat?: AvailabilityFormat | null;
19
21
  };
20
- export declare const DateTimeButton: ({ date, isDisabled: _isDisabled, isSelected, isSoldOut: _isSoldOut, onSelect, price, resources, showResources, variant, }: DateTimeButtonProps) => import("react/jsx-runtime").JSX.Element;
22
+ export declare const DateTimeButton: ({ date, isDisabled: _isDisabled, isSelected, isSoldOut: _isSoldOut, onSelect, price, resources, showResources, variant, availabilityFormat, }: DateTimeButtonProps) => import("react/jsx-runtime").JSX.Element;
21
23
  //# sourceMappingURL=DateTimeButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeButton.d.ts","sourceRoot":"","sources":["../../src/date-time-button/DateTimeButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0EAA0E,CAAA;AAIpH,oBAAY,OAAO;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAA;IAC7C,SAAS,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,cAAc,8HAUxB,mBAAmB,4CA2CrB,CAAA"}
1
+ {"version":3,"file":"DateTimeButton.d.ts","sourceRoot":"","sources":["../../src/date-time-button/DateTimeButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0EAA0E,CAAA;AACpH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2DAA2D,CAAA;AAI9F,oBAAY,OAAO;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAA;IAC7C,SAAS,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;CAC/C,CAAA;AAED,eAAO,MAAM,cAAc,kJAWxB,mBAAmB,4CA4CrB,CAAA"}
@@ -11,11 +11,12 @@ var Variant;
11
11
  Variant["time"] = "time";
12
12
  })(Variant || (Variant = {}));
13
13
  var DateTimeButton = function(param) {
14
- var date = param.date, _isDisabled = param.isDisabled, isSelected = param.isSelected, _isSoldOut = param.isSoldOut, onSelect = param.onSelect, price = param.price, resources = param.resources, showResources = param.showResources, _param_variant = param.variant, variant = _param_variant === void 0 ? "week" : _param_variant;
14
+ var date = param.date, _isDisabled = param.isDisabled, isSelected = param.isSelected, _isSoldOut = param.isSoldOut, onSelect = param.onSelect, price = param.price, resources = param.resources, showResources = param.showResources, _param_variant = param.variant, variant = _param_variant === void 0 ? "week" : _param_variant, availabilityFormat = param.availabilityFormat;
15
15
  var isSoldOut = _isSoldOut || resources && resources.bookedResources >= resources.totalResources;
16
16
  var isTimeVariant = variant === "time";
17
17
  var isPast = variant === "time" ? isPastTime(date) : isPastDate(date);
18
18
  var isDisabled = _isDisabled || isSoldOut || isPast;
19
+ var isUnavailable = _isDisabled || isPast;
19
20
  return /*#__PURE__*/ jsxs("button", {
20
21
  type: "button",
21
22
  onClick: function() {
@@ -35,9 +36,10 @@ var DateTimeButton = function(param) {
35
36
  className: "price",
36
37
  children: price
37
38
  }),
38
- showResources && resources && /*#__PURE__*/ jsx(AvailabilityIndicator, {
39
+ showResources && (resources || isUnavailable) && /*#__PURE__*/ jsx(AvailabilityIndicator, {
40
+ availabilityFormat: availabilityFormat,
39
41
  resources: resources,
40
- isUnavailable: _isDisabled || isPast,
42
+ isUnavailable: isUnavailable,
41
43
  isSoldOut: isSoldOut
42
44
  })
43
45
  ]
@@ -68,6 +68,7 @@ import '@licklist/plugins/dist';
68
68
  import '../../../../../iframe/order-process/components/BookingSummary/BookingSummary.js';
69
69
  import '../../../../../iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.js';
70
70
  import '../../../../../iframe/payment/payment-status-page/PaymentStatusPage.js';
71
+ import '@licklist/core/dist/DataMapper/Provider/SnippetDataMapper';
71
72
  import '../../../../../static/manual-date-picker/constants/index.js';
72
73
  import '../../../../../iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.js';
73
74
  import '../../../../../sortable-tree/SortableTree.js';
@@ -1,6 +1,7 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { Image } from '@licklist/core/dist/DataMapper/Media/ImageDataMapper';
3
3
  import { ZoneResourcesAvailability } from '@licklist/core/dist/DataMapper/Order/ZoneResourcesAvailabilityDataMapper';
4
+ import { AvailabilityFormat } from '@licklist/core/dist/DataMapper/Provider/SnippetDataMapper';
4
5
  export declare const LAYOUT_GRID = "grid";
5
6
  export declare const LAYOUT_LIST = "list";
6
7
  export type ActivityCardProps = {
@@ -14,6 +15,7 @@ export type ActivityCardProps = {
14
15
  availableTimes?: string | null;
15
16
  image?: Image | null;
16
17
  resources?: ZoneResourcesAvailability;
18
+ availabilityFormat?: AvailabilityFormat | null;
17
19
  };
18
- export declare const ActivityCard: ({ title, duration, price, description, availableTimes, image, onSelect, isSelected, layout, resources, }: ActivityCardProps) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const ActivityCard: ({ title, duration, price, description, availableTimes, image, onSelect, isSelected, layout, availabilityFormat, resources, }: ActivityCardProps) => import("react/jsx-runtime").JSX.Element;
19
21
  //# sourceMappingURL=ActivityCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityCard.d.ts","sourceRoot":"","sources":["../../../src/iframe/activity-card/ActivityCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,sDAAsD,CAAA;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,0EAA0E,CAAA;AAGpH,eAAO,MAAM,WAAW,SAAS,CAAA;AACjC,eAAO,MAAM,WAAW,SAAS,CAAA;AAEjC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,SAAS,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;IAChB,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,WAAW,GAAG,OAAO,WAAW,CAAA;IAChD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,yBAAyB,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,YAAY,6GAWtB,iBAAiB,4CAmDnB,CAAA"}
1
+ {"version":3,"file":"ActivityCard.d.ts","sourceRoot":"","sources":["../../../src/iframe/activity-card/ActivityCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,sDAAsD,CAAA;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,0EAA0E,CAAA;AACpH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2DAA2D,CAAA;AAG9F,eAAO,MAAM,WAAW,SAAS,CAAA;AACjC,eAAO,MAAM,WAAW,SAAS,CAAA;AAEjC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,SAAS,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;IAChB,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,WAAW,GAAG,OAAO,WAAW,CAAA;IAChD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;CAC/C,CAAA;AAED,eAAO,MAAM,YAAY,iIAYtB,iBAAiB,4CA6DnB,CAAA"}
@@ -5,7 +5,7 @@ import { AvailabilityIndicator } from '../../availability-indicator/Availability
5
5
  var LAYOUT_GRID = 'grid';
6
6
  var LAYOUT_LIST = 'list';
7
7
  var ActivityCard = function(param) {
8
- var title = param.title, duration = param.duration, price = param.price, description = param.description, availableTimes = param.availableTimes, image = param.image, onSelect = param.onSelect, isSelected = param.isSelected, _param_layout = param.layout, layout = _param_layout === void 0 ? LAYOUT_GRID : _param_layout, resources = param.resources;
8
+ var title = param.title, duration = param.duration, price = param.price, description = param.description, availableTimes = param.availableTimes, image = param.image, onSelect = param.onSelect, isSelected = param.isSelected, _param_layout = param.layout, layout = _param_layout === void 0 ? LAYOUT_GRID : _param_layout, availabilityFormat = param.availabilityFormat, resources = param.resources;
9
9
  if (layout === LAYOUT_GRID) {
10
10
  return /*#__PURE__*/ jsxs("button", {
11
11
  type: "button",
@@ -35,7 +35,8 @@ var ActivityCard = function(param) {
35
35
  children: description
36
36
  }),
37
37
  resources && /*#__PURE__*/ jsx(AvailabilityIndicator, {
38
- resources: resources
38
+ resources: resources,
39
+ availabilityFormat: availabilityFormat
39
40
  })
40
41
  ]
41
42
  })
@@ -74,7 +75,8 @@ var ActivityCard = function(param) {
74
75
  children: description
75
76
  }),
76
77
  resources && /*#__PURE__*/ jsx(AvailabilityIndicator, {
77
- resources: resources
78
+ resources: resources,
79
+ availabilityFormat: availabilityFormat
78
80
  })
79
81
  ]
80
82
  }),
@@ -55,6 +55,7 @@ import 'react-bootstrap/ModalTitle';
55
55
  import 'react-bootstrap/ModalBody';
56
56
  import 'react-bootstrap/Modal';
57
57
  import '../../../iframe/payment/payment-status-page/PaymentStatusPage.js';
58
+ import '@licklist/core/dist/DataMapper/Provider/SnippetDataMapper';
58
59
  import '../../../static/manual-date-picker/constants/index.js';
59
60
  import '../../../iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.js';
60
61
  import { ProductSetLoadingContext } from '../../form/context.js';
@@ -56,6 +56,8 @@ import 'react-bootstrap/ModalTitle';
56
56
  import 'react-bootstrap/ModalBody';
57
57
  import 'react-bootstrap/Modal';
58
58
  import '../../../iframe/payment/payment-status-page/PaymentStatusPage.js';
59
+ import '@licklist/core/dist/DataMapper/Provider/SnippetDataMapper';
60
+ import '@licklist/plugins';
59
61
  import '@licklist/plugins/dist/services/Form/HookFormService';
60
62
  import 'luxon';
61
63
  import '../../../static/manual-date-picker/constants/index.js';
@@ -4,6 +4,15 @@
4
4
  align-items: center;
5
5
  gap: 0.5rem;
6
6
  font-weight: 300;
7
+ max-width: 100%;
8
+
9
+
10
+ .indicator-label {
11
+ text-overflow: ellipsis;
12
+ white-space: nowrap;
13
+ overflow: hidden;
14
+ flex-shrink: 2;
15
+ }
7
16
 
8
17
  @include media-breakpoint-down(sm) {
9
18
  div {
@@ -79,13 +79,13 @@
79
79
 
80
80
  &.only-time-container {
81
81
  min-width: 5.3rem;
82
- max-width: 5.3rem;
82
+ max-width: 8.3rem;
83
+ flex-grow: 1;
83
84
  min-height: 2.75rem;
84
85
  border: 2px solid $snippet-calendar-disabled-button-border-color;
85
86
  }
86
87
 
87
88
  &.calendar-view {
88
- min-width: auto;
89
89
  max-width: none;
90
90
  min-height: auto;
91
91
  }
@@ -75,7 +75,7 @@
75
75
  .calendar-weekdays,
76
76
  .calendar-dates {
77
77
  display: grid;
78
- grid-template-columns: repeat(7, auto);
78
+ grid-template-columns: repeat(7, 1fr);
79
79
  grid-gap: 0.5rem 1rem;
80
80
  }
81
81
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@licklist/design",
3
- "version": "0.70.10",
3
+ "version": "0.71.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@bitbucket.org/artelogicsoft/licklist_design.git"
@@ -42,9 +42,9 @@
42
42
  ]
43
43
  },
44
44
  "peerDependencies": {
45
- "@licklist/core": "0.30.3",
45
+ "@licklist/core": "0.31.5",
46
46
  "@licklist/eslint-config": "0.5.6",
47
- "@licklist/plugins": "0.33.6",
47
+ "@licklist/plugins": "0.34.0",
48
48
  "lodash": "4.17.21",
49
49
  "luxon": "3.5.0",
50
50
  "react": "17.0.2",
@@ -61,9 +61,9 @@
61
61
  "@dnd-kit/utilities": "2.0.0",
62
62
  "@fortawesome/fontawesome-svg-core": "1.2.34",
63
63
  "@fortawesome/free-solid-svg-icons": "5.15.2",
64
- "@licklist/core": "0.31.3",
64
+ "@licklist/core": "0.31.5",
65
65
  "@licklist/eslint-config": "0.5.6",
66
- "@licklist/plugins": "0.33.6",
66
+ "@licklist/plugins": "0.34.0",
67
67
  "@mantine/core": "6.0.22",
68
68
  "@mantine/hooks": "6.0.22",
69
69
  "@mdx-js/react": "1.6.22",
@@ -206,4 +206,4 @@
206
206
  "node": "20.9.0",
207
207
  "yarn": "4.4.0"
208
208
  }
209
- }
209
+ }
@@ -1,5 +1,5 @@
1
- <svg width="7" height="11" viewBox="0 0 7 11" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="0.943939" y="1.03658" width="5.25188" height="3.04878" rx="1.5" fill="#4CF973" stroke="white"/>
3
- <rect x="0.943939" y="4.10976" width="5.25188" height="3.04878" rx="1.5" fill="#4CF973" stroke="white"/>
4
- <rect x="0.943939" y="7.18292" width="5.25188" height="3.04878" rx="1.5" fill="#4CF973" stroke="white"/>
1
+ <svg viewBox="auto" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="14%" y="0" width="63%" height="29%" rx="15%" fill="#4CF973" stroke="white"/>
3
+ <rect x="14%" y="33%" width="63%" height="29%" rx="15%" fill="#4CF973" stroke="white"/>
4
+ <rect x="14%" y="66%" width="63%" height="29%" rx="15%" fill="#4CF973" stroke="white"/>
5
5
  </svg>