willba-component-library 0.1.45 → 0.1.47

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.
@@ -1,17 +1,22 @@
1
- export interface AgeCategoryCount {
1
+ export type AgeCategoryCount = {
2
2
  [categoryId: string]: number;
3
- }
4
- export interface AgeCategoryType {
3
+ };
4
+ export type AgeCategoryType = {
5
5
  id: string;
6
6
  name: string;
7
7
  minVal: number;
8
8
  sortOrder: number;
9
- }
10
- export interface GuestsCountPropsType {
9
+ };
10
+ export type GuestsCountPropsType = {
11
11
  label: string;
12
12
  id: number;
13
13
  updateGuestsCount: (arg1: string, arg2: number) => void;
14
14
  count: number;
15
15
  minVal: number;
16
16
  sortOrder: number;
17
+ };
18
+ export declare enum FilterSections {
19
+ CALENDAR = "calendar",
20
+ GUESTS = "guests",
21
+ CATEGORIES = "categories"
17
22
  }
@@ -1,3 +1,10 @@
1
1
  import React from 'react';
2
2
  import './SelectButton.css';
3
- export declare const SelectButton: ({ label, onClick, style, description }: any) => React.JSX.Element;
3
+ type Props = {
4
+ label: string;
5
+ onClick: () => void;
6
+ description: string;
7
+ active?: boolean;
8
+ };
9
+ export declare const SelectButton: ({ active, label, onClick, description, }: Props) => React.JSX.Element;
10
+ export {};
@@ -7,16 +7,16 @@ type Props = {
7
7
  ageCategories?: AgeCategoryType[];
8
8
  };
9
9
  export declare const useFilterBar: ({ redirectUrl, currentViewApply, ageCategories, }: Props) => {
10
- selectedFilter: number | boolean;
10
+ selectedFilter: string | boolean;
11
11
  ageCategoryCounts: AgeCategoryCount;
12
12
  categories: number;
13
13
  calendarRange: DateRange | undefined;
14
14
  selectedPath: string;
15
15
  setCalendarRange: import("react").Dispatch<import("react").SetStateAction<DateRange | undefined>>;
16
- setSelectedFilter: import("react").Dispatch<import("react").SetStateAction<number | boolean>>;
16
+ setSelectedFilter: import("react").Dispatch<import("react").SetStateAction<string | boolean>>;
17
17
  setAgeCategoryCounts: import("react").Dispatch<import("react").SetStateAction<AgeCategoryCount>>;
18
18
  setCategories: import("react").Dispatch<import("react").SetStateAction<number>>;
19
- handleSelectedFilter: (id: number | boolean) => void;
19
+ handleSelectedFilter: (id: string | boolean) => void;
20
20
  handleSubmit: () => string;
21
21
  updateGuestsCount: (id: string, newCount: number) => void;
22
22
  handleResetFilters: () => void;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  type Props = {
3
- selectedFilter: number | boolean;
3
+ selectedFilter: string | boolean;
4
4
  };
5
5
  export declare const useScrollInToView: ({ selectedFilter }: Props) => {
6
6
  isMobile: boolean;
package/lib/index.d.ts CHANGED
@@ -32,12 +32,12 @@ interface Palette {
32
32
  secondary: string;
33
33
  }
34
34
 
35
- interface AgeCategoryType {
35
+ type AgeCategoryType = {
36
36
  id: string;
37
37
  name: string;
38
38
  minVal: number;
39
39
  sortOrder: number;
40
- }
40
+ };
41
41
 
42
42
  type FilterBarProps = {
43
43
  vendor?: string;
package/lib/index.esm.js CHANGED
@@ -429,6 +429,18 @@ function useTranslation(ns) {
429
429
  });
430
430
  }
431
431
 
432
+ function useTheme(_a) {
433
+ var palette = _a.palette;
434
+ var themePalette = {
435
+ '--will-primary': palette === null || palette === void 0 ? void 0 : palette.primary,
436
+ '--will-secondary': palette === null || palette === void 0 ? void 0 : palette.secondary,
437
+ };
438
+ return themePalette;
439
+ }
440
+
441
+ var css_248z$b = "@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');\n\n.will-root * {\n font-family: 'Montserrat', sans-serif;\n}\n\n.will-root {\n \n box-sizing: border-box;\n font-size: 14px;\n \n color: #1E1E1E;\n\n /* Palette */\n --will-primary: #374269;\n --will-secondary: #374269;\n --will-grey: #ABA7AF;\n --will-white: #fff;\n --will-black: #000;\n --will-onahau: #CDEEFF;\n --will-text: #5A5959;\n --will-transparent-white: rgba(255, 255, 255, 0.30);\n\n /* Confines */\n --will-box-shadow: 0px 6px 11px 0px #a7a4a480;\n\n /* Breakpoints */\n\n --will-lg: 1140px;\n --will-md: 960px;\n --will-sm: 600px;\n --will-xl: 1280px;\n --will-xs: 0px;\n}\n\n/* Typography */\n\n.will-root h1, h2, h3, h4, h5, h6 {\n font-weight: 700;\n} \n\n.will-root p, h1, h2, h3, h4, h5, h6, span {\n margin: 0;\n padding: 0;\n}";
442
+ styleInject(css_248z$b);
443
+
432
444
  function _typeof(o) {
433
445
  "@babel/helpers - typeof";
434
446
 
@@ -3869,18 +3881,6 @@ function setYear(dirtyDate, dirtyYear) {
3869
3881
  return date;
3870
3882
  }
3871
3883
 
3872
- function useTheme(_a) {
3873
- var palette = _a.palette;
3874
- var themePalette = {
3875
- '--will-primary': palette === null || palette === void 0 ? void 0 : palette.primary,
3876
- '--will-secondary': palette === null || palette === void 0 ? void 0 : palette.secondary,
3877
- };
3878
- return themePalette;
3879
- }
3880
-
3881
- var css_248z$b = "@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');\n\n.will-root * {\n font-family: 'Montserrat', sans-serif;\n}\n\n.will-root {\n \n box-sizing: border-box;\n font-size: 14px;\n \n color: #1E1E1E;\n\n /* Palette */\n --will-primary: #374269;\n --will-secondary: #374269;\n --will-grey: #ABA7AF;\n --will-white: #fff;\n --will-black: #000;\n --will-onahau: #CDEEFF;\n --will-text: #5A5959;\n --will-transparent-white: rgba(255, 255, 255, 0.30);\n\n /* Confines */\n --will-box-shadow: 0px 6px 11px 0px #a7a4a480;\n\n /* Breakpoints */\n\n --will-lg: 1140px;\n --will-md: 960px;\n --will-sm: 600px;\n --will-xl: 1280px;\n --will-xs: 0px;\n}\n\n/* Typography */\n\n.will-root h1, h2, h3, h4, h5, h6 {\n font-weight: 700;\n} \n\n.will-root p, h1, h2, h3, h4, h5, h6, span {\n margin: 0;\n padding: 0;\n}";
3882
- styleInject(css_248z$b);
3883
-
3884
3884
  var parseDates = function (_a) {
3885
3885
  var calendarRange = _a.calendarRange;
3886
3886
  return (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) && (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
@@ -3900,6 +3900,13 @@ var parseGuests = function (_a) {
3900
3900
  }, '');
3901
3901
  };
3902
3902
 
3903
+ var FilterSections;
3904
+ (function (FilterSections) {
3905
+ FilterSections["CALENDAR"] = "calendar";
3906
+ FilterSections["GUESTS"] = "guests";
3907
+ FilterSections["CATEGORIES"] = "categories";
3908
+ })(FilterSections || (FilterSections = {}));
3909
+
3903
3910
  var useFilterBar = function (_a) {
3904
3911
  var redirectUrl = _a.redirectUrl, currentViewApply = _a.currentViewApply, ageCategories = _a.ageCategories;
3905
3912
  var _b = __read(useState('/events'), 2), selectedPath = _b[0], setSelectedPath = _b[1];
@@ -4071,7 +4078,7 @@ var useScrollInToView = function (_a) {
4071
4078
  var _b = __read(useState(true), 2), isMobile = _b[0], setIsMobile = _b[1];
4072
4079
  var targetFilterBarRef = useRef(null);
4073
4080
  useEffect(function () {
4074
- if (window !== undefined && window.innerWidth > 960) {
4081
+ if (typeof window !== 'undefined' && window.innerWidth > 960) {
4075
4082
  setIsMobile(false);
4076
4083
  return;
4077
4084
  }
@@ -6555,16 +6562,16 @@ var CloseButton = function (_a) {
6555
6562
  React__default__default.createElement(IoIosCloseCircleOutline, null)));
6556
6563
  };
6557
6564
 
6558
- var css_248z$9 = ".will-filter-bar-select-button {\n width: 100%;\n height: auto;\n background-color: transparent;\n border: none;\n padding: 0 20px;\n border-radius: 20px;\n cursor: pointer;\n font-size: 14px;\n text-align: initial;\n}\n\n\n\n.will-filter-bar-select-button .select-button-wrapper {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n \n}\n\n.will-filter-bar-select-button .select-button-wrapper > div {\n display: grid\n}\n\n.will-filter-bar-select-button .select-button-description {\n font-weight: 400;\n opacity: 0.4;\n \n \n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n@media (max-width: 960px) {\n .will-filter-bar-select-button {\n padding: 15px 0;\n }\n\n .will-filter-bar-select-button:first-child {\n padding: 0 0 15px 0;\n }\n\n .will-filter-bar-select-button .select-button-wrapper {\n justify-content: center;\n text-align: center;\n }\n\n .will-filter-bar-select-button .select-button-description {\n white-space: wrap;\n }\n\n .will-filter-bar-select-button .select-button-divider {\n display: none\n }\n}\n\n\n";
6565
+ var css_248z$9 = ".will-filter-bar-select-button {\n width: 100%;\n height: auto;\n background-color: transparent;\n border: none;\n padding: 0 20px;\n border-radius: 20px;\n cursor: pointer;\n font-size: 14px;\n text-align: initial;\n}\n\n.will-filter-bar-select-button .select-button-wrapper {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n \n}\n\n.will-filter-bar-select-button .select-button-wrapper > div {\n display: grid\n}\n\n.will-filter-bar-select-button .select-button-label {\n font-weight: 500;\n}\n\n.will-filter-bar-select-button .select-button-description {\n font-weight: 400;\n opacity: 0.8;\n \n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .will-filter-bar-select-button .select-button-label.active,\n .will-filter-bar-select-button .select-button-description.active {\n font-weight: 600;\n }\n\n@media (max-width: 960px) {\n .will-filter-bar-select-button {\n padding: 15px 0;\n }\n\n .will-filter-bar-select-button:first-child {\n padding: 0 0 15px 0;\n }\n\n .will-filter-bar-select-button .select-button-wrapper {\n justify-content: center;\n text-align: center;\n }\n\n .will-filter-bar-select-button .select-button-description {\n white-space: wrap;\n }\n\n .will-filter-bar-select-button .select-button-divider {\n display: none\n }\n}\n\n\n";
6559
6566
  styleInject(css_248z$9);
6560
6567
 
6561
6568
  var SelectButton = function (_a) {
6562
- var label = _a.label, onClick = _a.onClick, style = _a.style, description = _a.description;
6563
- return (React__default__default.createElement("button", { className: "will-filter-bar-select-button", onClick: onClick, style: style },
6569
+ var active = _a.active, label = _a.label, onClick = _a.onClick, description = _a.description;
6570
+ return (React__default__default.createElement("button", { className: "will-filter-bar-select-button", onClick: onClick },
6564
6571
  React__default__default.createElement("span", { className: "select-button-wrapper" },
6565
6572
  React__default__default.createElement("div", null,
6566
- React__default__default.createElement("p", { className: "select-button-label" }, label),
6567
- React__default__default.createElement("p", { className: "select-button-description" }, description)))));
6573
+ React__default__default.createElement("p", { className: "select-button-label ".concat(active ? 'active' : '') }, label),
6574
+ React__default__default.createElement("p", { className: "select-button-description ".concat(active ? 'active' : '') }, description)))));
6568
6575
  };
6569
6576
 
6570
6577
  // THIS FILE IS AUTO GENERATED
@@ -10673,7 +10680,7 @@ function FilterBar(_a) {
10673
10680
  var t = useTranslation('filterBar').t;
10674
10681
  // Filters
10675
10682
  var _d = useFilterBar({ redirectUrl: redirectUrl, currentViewApply: currentViewApply, ageCategories: ageCategories }), selectedFilter = _d.selectedFilter, ageCategoryCounts = _d.ageCategoryCounts, categories = _d.categories, calendarRange = _d.calendarRange, selectedPath = _d.selectedPath, setCalendarRange = _d.setCalendarRange, setCategories = _d.setCategories, handleSelectedFilter = _d.handleSelectedFilter, handleSubmit = _d.handleSubmit, updateGuestsCount = _d.updateGuestsCount, setSelectedPath = _d.setSelectedPath;
10676
- // Default selected tab
10683
+ // Default selected tab when tabs are hidden
10677
10684
  useEffect(function () {
10678
10685
  if (currentViewApply === 'roomFilters') {
10679
10686
  setSelectedPath('/rooms');
@@ -10683,6 +10690,7 @@ function FilterBar(_a) {
10683
10690
  var _e = useScrollInToView({ selectedFilter: selectedFilter }), isMobile = _e.isMobile, targetFilterBarRef = _e.targetFilterBarRef;
10684
10691
  // Handle close filter section
10685
10692
  var filtersRef = useCloseFilterSection({ handleSelectedFilter: handleSelectedFilter }).filtersRef;
10693
+ // Parsed data for filter section description
10686
10694
  var parsedDates = parseDates({ calendarRange: calendarRange });
10687
10695
  var parsedGuests = parseGuests({ ageCategoryCounts: ageCategoryCounts, ageCategories: ageCategories });
10688
10696
  return (React__default__default.createElement("div", { className: "will-root", style: themePalette },
@@ -10694,21 +10702,18 @@ function FilterBar(_a) {
10694
10702
  ? parsedDates
10695
10703
  : selectedPath === '/rooms'
10696
10704
  ? t('calendar.roomsLabelPlaceholder')
10697
- : t('calendar.eventsLabelPlaceholder'), onClick: function () { return handleSelectedFilter(1); }, style: fontWeightBold(selectedFilter === 1), date: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) ? format(calendarRange.to, 'dd.MM.yyyy') : null }),
10705
+ : t('calendar.eventsLabelPlaceholder'), onClick: function () { return handleSelectedFilter(FilterSections.CALENDAR); }, active: selectedFilter === FilterSections.CALENDAR }),
10698
10706
  selectedPath === '/rooms' && (React__default__default.createElement(React__default__default.Fragment, null,
10699
10707
  React__default__default.createElement(Divider, null),
10700
- React__default__default.createElement(SelectButton, { label: t('guests.label'), description: parsedGuests ? parsedGuests : t('guests.labelPlaceholder'), onClick: function () { return handleSelectedFilter(2); }, style: fontWeightBold(selectedFilter === 2) }))),
10708
+ React__default__default.createElement(SelectButton, { label: t('guests.label'), description: parsedGuests ? parsedGuests : t('guests.labelPlaceholder'), onClick: function () { return handleSelectedFilter(FilterSections.GUESTS); }, active: selectedFilter === FilterSections.GUESTS }))),
10701
10709
  React__default__default.createElement(SubmitButton, { onClick: handleSubmit })),
10702
10710
  selectedFilter && (React__default__default.createElement("div", { className: "will-filter-bar-container", style: currentViewApply && !isMobile ? { top: 66 } : {} },
10703
10711
  React__default__default.createElement(CloseButton, { handleClose: function () { return handleSelectedFilter(false); } }),
10704
- selectedFilter === 1 && (React__default__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, ref: filtersRef })),
10705
- selectedFilter === 2 && (React__default__default.createElement(Guests, { updateGuestsCount: updateGuestsCount, ageCategories: ageCategories, ageCategoryCounts: ageCategoryCounts, ref: filtersRef })),
10706
- selectedFilter === 3 && (React__default__default.createElement(Categories, { categories: categories, setCategories: setCategories }))))));
10712
+ selectedFilter === FilterSections.CALENDAR && (React__default__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, ref: filtersRef })),
10713
+ selectedFilter === FilterSections.GUESTS && (React__default__default.createElement(Guests, { updateGuestsCount: updateGuestsCount, ageCategories: ageCategories, ageCategoryCounts: ageCategoryCounts, ref: filtersRef })),
10714
+ selectedFilter === FilterSections.CATEGORIES && (React__default__default.createElement(Categories, { categories: categories, setCategories: setCategories }))))));
10707
10715
  }
10708
10716
  ////////////
10709
- var fontWeightBold = function (input) {
10710
- return { fontWeight: input ? 'bold' : 'initial' };
10711
- };
10712
10717
  var AGE_CATEGORIES_FALLBACK = [
10713
10718
  {
10714
10719
  id: '1',