willba-component-library 0.0.3 → 0.0.5

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.
package/dist/cjs/index.js CHANGED
@@ -2828,12 +2828,112 @@ function styleInject(css, ref) {
2828
2828
  }
2829
2829
  }
2830
2830
 
2831
- var css_248z = "button {\n font-size: 70px;\n}";
2832
- styleInject(css_248z);
2831
+ var css_248z$1 = "button {\n font-size: 70px;\n}";
2832
+ styleInject(css_248z$1);
2833
2833
 
2834
2834
  const Button = (props) => {
2835
2835
  return React.createElement("button", null, props.label);
2836
2836
  };
2837
2837
 
2838
+ var css_248z = "/* Structure ---------------------------- */\r\n\r\n.root {\r\n width: 100%;\r\n}\r\n\r\n.search-widget {\r\n box-sizing: border-box;\r\n max-width: 1100px;\r\n position: relative;\r\n}\r\n\r\n.search-widget-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 10px 20px;\r\n position: relative;\r\n z-index: 222;\r\n \r\n border-radius: 40px;\r\n background-color: #ecf1f4;\r\n box-shadow: 0px 6px 11px 0px #a7a4a480;\r\n}\r\n\r\n.search-widget-container {\r\n background-color: #ecf1f4;\r\n min-height: 100px;\r\n \r\n padding: 90px 40px 30px 40px;\r\n position: absolute;\r\n top: 0;\r\n z-index: 111;\r\n border-radius: 40px;\r\n width: -webkit-fill-available;\r\n box-shadow: 0px 6px 11px 0px #a7a4a480;\r\n}\r\n\r\n.search-widget-divider {\r\n width: 1px;\r\n margin: 0 10px;\r\n height: 35px;\r\n background-color: #384265;\r\n}\r\n\r\n.search-widget-submit-button {\r\n width: auto;\r\n height: auto;\r\n background-color: #384265;\r\n color: #fff;\r\n padding: 10px 20px;\r\n border-radius: 20px;\r\n cursor: pointer;\r\n border: none;\r\n}\r\n\r\n.search-widget-select-button {\r\n width: auto;\r\n height: auto;\r\n background-color: transparent;\r\n border: none;\r\n padding: 10px 20px;\r\n border-radius: 20px;\r\n cursor: pointer;\r\n}\r\n\r\n/* Filters - Guests ---------------------------- */\r\n\r\n.search-widget-guests {\r\n text-align: initial;\r\n}\r\n\r\n.guests-filter-container {\r\n display: flex;\r\n margin-top: 30px;\r\n}\r\n\r\n.guests-filter-inner {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.guests-filter-inner:not(:last-child) {\r\n margin-right: 50px;\r\n}\r\n\r\n.guests-filter-inner > span {\r\n display: block;\r\n margin-right: 20px;\r\n font-weight: bold;\r\n}\r\n\r\n.guests-filter-inner > div {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.guests-filter-inner > div > span {\r\n margin: 0 10px;\r\n}\r\n\r\n.guests-filter-inner > div button {\r\n border-radius: 50%;\r\n border: none;\r\n background-color: #CDEEFF;\r\n width: 25px;\r\n height: 25px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 20px;\r\n}\r\n\r\n/* Filters - Categories ---------------------------- */\r\n\r\n.search-widget-categories {\r\n text-align: center;\r\n}\r\n\r\n.categories-filter-inner {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 20px;\r\n}\r\n\r\n.categories-filter-inner input {\r\n cursor: pointer;\r\n margin-right: 10px;\r\n}\r\n\r\n";
2839
+ styleInject(css_248z);
2840
+
2841
+ function FilterBar() {
2842
+ const [selectedFilter, setSelectedFilter] = reactExports.useState(false);
2843
+ // const [startDate, setStartDate] = useState(0);
2844
+ // const [endDate, setEndDate] = useState(0);
2845
+ const [guestsAdults, setGuestsAdults] = reactExports.useState(0);
2846
+ const [guestsKids, setGuestsKids] = reactExports.useState(0);
2847
+ const [categories, setCategories] = reactExports.useState(0);
2848
+ const handleSelectedFilter = (id) => {
2849
+ setSelectedFilter(id);
2850
+ };
2851
+ const handleSubmit = () => {
2852
+ const queryParams = new URLSearchParams();
2853
+ const params = {
2854
+ // startDate,
2855
+ // endDate,
2856
+ guestsAdults,
2857
+ guestsKids,
2858
+ categories,
2859
+ };
2860
+ for (const [key, value] of Object.entries(params)) {
2861
+ if (value) {
2862
+ queryParams.append(key, value.toString());
2863
+ }
2864
+ }
2865
+ const url = `http://localhost:4000/en/events/?${queryParams.toString()}`;
2866
+ window.location.href = url;
2867
+ handleSelectedFilter(false);
2868
+ };
2869
+ return (React.createElement("div", { className: "search-widget" },
2870
+ React.createElement("div", { className: "search-widget-header" },
2871
+ React.createElement(SelectButton, { label: "Start date", onClick: () => handleSelectedFilter(1) }),
2872
+ React.createElement(Divider, null),
2873
+ React.createElement(SelectButton, { label: "End date", onClick: () => handleSelectedFilter(2) }),
2874
+ React.createElement(Divider, null),
2875
+ React.createElement(SelectButton, { label: "Guests", onClick: () => handleSelectedFilter(3) }),
2876
+ React.createElement(Divider, null),
2877
+ React.createElement(SelectButton, { label: "Categories", onClick: () => handleSelectedFilter(4) }),
2878
+ React.createElement(SubmitButton, { onClick: handleSubmit })),
2879
+ selectedFilter && (React.createElement("div", { className: "search-widget-container" },
2880
+ selectedFilter === 1 && React.createElement(StartDate, null),
2881
+ selectedFilter === 2 && React.createElement(EndDate, null),
2882
+ selectedFilter === 3 && (React.createElement(Guests, { guestsAdults: guestsAdults, guestsKids: guestsKids, decrementAdults: () => setGuestsAdults(guestsAdults - 1), incrementAdults: () => setGuestsAdults(guestsAdults + 1), decrementKids: () => setGuestsKids(guestsKids - 1), incrementKids: () => setGuestsKids(guestsKids + 1) })),
2883
+ selectedFilter === 4 && (React.createElement(Categories, { categories: categories, setCategories: setCategories }))))));
2884
+ }
2885
+ const Divider = () => {
2886
+ return React.createElement("div", { className: "search-widget-divider" });
2887
+ };
2888
+ const SubmitButton = ({ onClick }) => {
2889
+ return (React.createElement("button", { className: "search-widget-submit-button", onClick: onClick }, "Apply filters"));
2890
+ };
2891
+ const SelectButton = ({ label, onClick }) => {
2892
+ return (React.createElement("button", { className: "search-widget-select-button", onClick: onClick }, label));
2893
+ };
2894
+ const StartDate = () => {
2895
+ return React.createElement("div", null, "Start date");
2896
+ };
2897
+ const EndDate = () => {
2898
+ return React.createElement("div", null, "End date");
2899
+ };
2900
+ const Guests = ({ guestsAdults, guestsKids, decrementAdults, incrementAdults, decrementKids, incrementKids, }) => {
2901
+ return (React.createElement("div", { className: "search-widget-guests" },
2902
+ React.createElement("h3", null, "Guests"),
2903
+ React.createElement("p", null, "Who's coming?"),
2904
+ React.createElement("div", { className: "guests-filter-container" },
2905
+ React.createElement("div", { className: "guests-filter-inner" },
2906
+ React.createElement("span", null, "Adults"),
2907
+ React.createElement("div", null,
2908
+ React.createElement("button", { onClick: decrementAdults, disabled: guestsAdults < 1 }, "-"),
2909
+ React.createElement("span", null, guestsAdults),
2910
+ React.createElement("button", { onClick: incrementAdults }, "+"))),
2911
+ React.createElement("div", { className: "guests-filter-inner" },
2912
+ React.createElement("span", null, "Kids"),
2913
+ React.createElement("div", null,
2914
+ React.createElement("button", { onClick: decrementKids, disabled: guestsKids < 1 }, "-"),
2915
+ React.createElement("span", null, guestsKids),
2916
+ React.createElement("button", { onClick: incrementKids }, "+"))))));
2917
+ };
2918
+ const Categories = ({ categories, setCategories }) => {
2919
+ const categoriesPlaceholder = [
2920
+ "Weekend",
2921
+ "Week",
2922
+ "Summer camp",
2923
+ "Winter camp",
2924
+ ];
2925
+ const [selectedCategory, setSelectedCategory] = reactExports.useState("");
2926
+ const handleCategoryChange = (selectedCategory) => {
2927
+ setSelectedCategory(selectedCategory);
2928
+ setCategories(selectedCategory); // Update the parent component's state with the selected category
2929
+ };
2930
+ return (React.createElement("div", { className: "search-widget-categories" },
2931
+ React.createElement("h3", null, "CATEGORY"),
2932
+ React.createElement("div", { className: "categories-filter-inner" }, categoriesPlaceholder.map((itm, idx) => (React.createElement("div", { key: idx },
2933
+ React.createElement("input", { type: "radio", value: itm, checked: selectedCategory === itm, onChange: () => handleCategoryChange(itm) }),
2934
+ React.createElement("span", null, itm)))))));
2935
+ };
2936
+
2838
2937
  exports.Button = Button;
2938
+ exports.FilterBar = FilterBar;
2839
2939
  //# sourceMappingURL=index.js.map