@bonlineza/luxity-lib 2.9.2 → 2.11.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.
@@ -1,15 +1,14 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('stylis-rule-sheet'), require('react-dom'), require('prop-types'), require('raf'), require('react-input-autosize'), require('react-transition-group'), require('@bonlineza/b-lib/EllipsisLoader'), require('styled-components'), require('@bonlineza/b-lib/PageReady'), require('react-notify-toast')) :
3
- typeof define === 'function' && define.amd ? define(['react', 'stylis-rule-sheet', 'react-dom', 'prop-types', 'raf', 'react-input-autosize', 'react-transition-group', '@bonlineza/b-lib/EllipsisLoader', 'styled-components', '@bonlineza/b-lib/PageReady', 'react-notify-toast'], factory) :
4
- (global = global || self, global.NotificationDropDown = factory(global.React, global['stylis-rule-sheet'], global.reactDom, global.PropTypes, global.raf, global['react-input-autosize'], global['react-transition-group'], global.EllipsisLoader, global.styled, global.PageReady, global['react-notify-toast']));
5
- }(this, (function (React, stylisRuleSheet, reactDom, PropTypes, raf, AutosizeInput, reactTransitionGroup, EllipsisLoader, styled, PageReady, Notifications) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('stylis-rule-sheet'), require('react-dom'), require('prop-types'), require('raf'), require('react-input-autosize'), require('react-transition-group'), require('styled-components'), require('@bonlineza/b-lib/PageReady'), require('react-notify-toast')) :
3
+ typeof define === 'function' && define.amd ? define(['react', 'stylis-rule-sheet', 'react-dom', 'prop-types', 'raf', 'react-input-autosize', 'react-transition-group', 'styled-components', '@bonlineza/b-lib/PageReady', 'react-notify-toast'], factory) :
4
+ (global = global || self, global.NotificationDropDown = factory(global.React, global['stylis-rule-sheet'], global.reactDom, global.PropTypes, global.raf, global['react-input-autosize'], global['react-transition-group'], global.styled, global.PageReady, global['react-notify-toast']));
5
+ }(this, (function (React, stylisRuleSheet, reactDom, PropTypes, raf, AutosizeInput, reactTransitionGroup, styled, PageReady, Notifications) { 'use strict';
6
6
 
7
7
  var React__default = 'default' in React ? React['default'] : React;
8
8
  stylisRuleSheet = stylisRuleSheet && Object.prototype.hasOwnProperty.call(stylisRuleSheet, 'default') ? stylisRuleSheet['default'] : stylisRuleSheet;
9
9
  PropTypes = PropTypes && Object.prototype.hasOwnProperty.call(PropTypes, 'default') ? PropTypes['default'] : PropTypes;
10
10
  raf = raf && Object.prototype.hasOwnProperty.call(raf, 'default') ? raf['default'] : raf;
11
11
  AutosizeInput = AutosizeInput && Object.prototype.hasOwnProperty.call(AutosizeInput, 'default') ? AutosizeInput['default'] : AutosizeInput;
12
- EllipsisLoader = EllipsisLoader && Object.prototype.hasOwnProperty.call(EllipsisLoader, 'default') ? EllipsisLoader['default'] : EllipsisLoader;
13
12
  var styled__default = 'default' in styled ? styled['default'] : styled;
14
13
  PageReady = PageReady && Object.prototype.hasOwnProperty.call(PageReady, 'default') ? PageReady['default'] : PageReady;
15
14
  var Notifications__default = 'default' in Notifications ? Notifications['default'] : Notifications;
@@ -6752,8 +6751,59 @@
6752
6751
 
6753
6752
  var index$1 = manageState(Select);
6754
6753
 
6755
- var _templateObject;
6756
- var NotifyContainer = styled__default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .page-ready {\n display: flex;\n align-items: center;\n }\n\n .loader {\n min-width: 150px;\n }\n\n .notification-dropdown-select-container {\n min-width: 150px;\n\n .notification-dropdown-select__control {\n min-height: auto;\n background-color: ", ";\n border: none;\n border-radius: 0;\n\n &--is-focused {\n border: none;\n border-radius: 0;\n box-shadow: none;\n }\n\n .notification-dropdown-select__value-container {\n & > div {\n padding: 0;\n margin: 0;\n color: ", ";\n }\n & .notification-dropdown-select__single-value,\n & .notification-dropdown-select__placeholder {\n overflow: visible;\n font-weight: lighter;\n }\n }\n }\n }\n\n .notification-dropdown-select__indicators {\n padding: 0 !important;\n .notification-dropdown-select__dropdown-indicator {\n color: ", ";\n }\n }\n\n .notification-dropdown-select__menu {\n border-radius: 0;\n\n & > .notification-dropdown-select__menu-list {\n border-radius: 0;\n\n & > .notification-dropdown-select__option {\n font-weight: bold;\n &:last-child {\n border-bottom: none;\n }\n\n &.notification-dropdown-select__option--is-focused {\n background-color: ", ";\n border-style: hidden;\n }\n &.notification-dropdown-select__option--is-selected {\n color: ", ";\n background-color: ", ";\n border-style: hidden;\n }\n &.notification-dropdown-select__option--is-selected.notification-dropdown-select__option--is-focused {\n border-style: hidden;\n }\n }\n }\n }\n"])), function (props) {
6754
+ var LuxityArrowLeft = (function (props) {
6755
+ return /*#__PURE__*/React__default.createElement("svg", {
6756
+ version: "1.0",
6757
+ xmlns: "http://www.w3.org/2000/svg",
6758
+ width: props.width || '100%',
6759
+ height: props.height || '100%',
6760
+ viewBox: "0 0 177.000000 300.000000",
6761
+ preserveAspectRatio: "xMidYMid meet"
6762
+ }, /*#__PURE__*/React__default.createElement("g", {
6763
+ transform: "translate(0.000000,300.000000) scale(0.100000,-0.100000)",
6764
+ fill: "#000000",
6765
+ stroke: "none"
6766
+ }, /*#__PURE__*/React__default.createElement("path", {
6767
+ d: "M808 2628 c-139 -205 -377 -557 -530 -781 l-277 -409 48 -71 c363\n-539 905 -1335 915 -1345 9 -9 90 -12 362 -10 l351 3 -350 515 c-192 283 -409\n603 -482 711 l-134 197 386 568 c212 313 450 665 529 782 l145 212 -355 0\n-355 0 -253 -372z"
6768
+ })));
6769
+ });
6770
+
6771
+ var LuxityArrowRight = (function (props) {
6772
+ return /*#__PURE__*/React__default.createElement("svg", {
6773
+ version: "1.0",
6774
+ xmlns: "http://www.w3.org/2000/svg",
6775
+ width: props.width || '100%',
6776
+ height: props.height || '100%',
6777
+ viewBox: "0 0 177.000000 300.000000",
6778
+ preserveAspectRatio: "xMidYMid meet"
6779
+ }, /*#__PURE__*/React__default.createElement("g", {
6780
+ transform: "translate(0.000000,300.000000) scale(0.100000,-0.100000)",
6781
+ fill: "#000000",
6782
+ stroke: "none"
6783
+ }, /*#__PURE__*/React__default.createElement("path", {
6784
+ d: "M106 2973 c9 -16 226 -336 481 -711 255 -376 465 -687 466 -691 1 -4\n-233 -355 -520 -779 -288 -424 -523 -773 -523 -776 0 -3 159 -6 353 -5 l352 0\n525 776 c289 427 524 780 522 785 -1 5 -219 328 -484 719 l-481 709 -355 0\n-354 0 18 -27z"
6785
+ })));
6786
+ });
6787
+
6788
+ var _templateObject, _templateObject2, _templateObject3;
6789
+ var LoaderContainer = styled__default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n margin: 20px auto;\n"])));
6790
+ var LeftImageContainer = styled__default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: flex-start;\n width: 100%;\n height: 100%;\n object-fit: contain;\n animation: slide-left infinite 3s;\n background-color: white;\n\n @keyframes slide-left {\n 0% {\n transform: translateX(0);\n }\n 40% {\n transform: translateX(50%);\n }\n 100% {\n transform: translateX(150%);\n }\n }\n"])));
6791
+ var RightImageContainer = styled__default.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: flex-end;\n width: 100%;\n height: 100%;\n object-fit: contain;\n animation: slide-right infinite 3s;\n\n @keyframes slide-right {\n 0% {\n transform: translateX(0);\n }\n 40% {\n transform: translateX(-50%);\n opacity: 1;\n }\n 100% {\n transform: translateX(-150%);\n opacity: 0;\n }\n }\n"])));
6792
+
6793
+ function LuxityLoader(_ref) {
6794
+ var width = _ref.width,
6795
+ height = _ref.height;
6796
+ return /*#__PURE__*/React__default.createElement(LoaderContainer, null, /*#__PURE__*/React__default.createElement(LeftImageContainer, null, /*#__PURE__*/React__default.createElement(LuxityArrowRight, {
6797
+ width: width,
6798
+ height: height
6799
+ })), /*#__PURE__*/React__default.createElement(RightImageContainer, null, /*#__PURE__*/React__default.createElement(LuxityArrowLeft, {
6800
+ width: width,
6801
+ height: height
6802
+ })));
6803
+ }
6804
+
6805
+ var _templateObject$1;
6806
+ var NotifyContainer = styled__default.div(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n .page-ready {\n display: flex;\n align-items: center;\n }\n\n .loader {\n min-width: 150px;\n }\n\n .notification-dropdown-select-container {\n min-width: 150px;\n\n .notification-dropdown-select__control {\n min-height: auto;\n background-color: ", ";\n border: none;\n border-radius: 0;\n\n &--is-focused {\n border: none;\n border-radius: 0;\n box-shadow: none;\n }\n\n .notification-dropdown-select__value-container {\n & > div {\n padding: 0;\n margin: 0;\n color: ", ";\n }\n & .notification-dropdown-select__single-value,\n & .notification-dropdown-select__placeholder {\n overflow: visible;\n font-weight: lighter;\n }\n }\n }\n }\n\n .notification-dropdown-select__indicators {\n padding: 0 !important;\n .notification-dropdown-select__dropdown-indicator {\n color: ", ";\n }\n }\n\n .notification-dropdown-select__menu {\n border-radius: 0;\n\n & > .notification-dropdown-select__menu-list {\n border-radius: 0;\n\n & > .notification-dropdown-select__option {\n font-weight: bold;\n &:last-child {\n border-bottom: none;\n }\n\n &.notification-dropdown-select__option--is-focused {\n background-color: ", ";\n border-style: hidden;\n }\n &.notification-dropdown-select__option--is-selected {\n color: ", ";\n background-color: ", ";\n border-style: hidden;\n }\n &.notification-dropdown-select__option--is-selected.notification-dropdown-select__option--is-focused {\n border-style: hidden;\n }\n }\n }\n }\n"])), function (props) {
6757
6807
  return props.theme.colors.ntrlMin;
6758
6808
  }, function (props) {
6759
6809
  return props.theme.colors.base;
@@ -6848,7 +6898,10 @@
6848
6898
  customErrorMessage: customErrorMessage,
6849
6899
  customErrorHandler: customErrorHandler,
6850
6900
  renderCustomLoader: function renderCustomLoader() {
6851
- return /*#__PURE__*/React__default.createElement(EllipsisLoader, null);
6901
+ return /*#__PURE__*/React__default.createElement(LuxityLoader, {
6902
+ height: "40px",
6903
+ width: "95%"
6904
+ });
6852
6905
  },
6853
6906
  errorMessageInterpreter: interpretErrorMessage
6854
6907
  }, /*#__PURE__*/React__default.createElement(LuxityPageReadyContext.Provider, {
@@ -7008,7 +7061,10 @@
7008
7061
  }
7009
7062
  }, /*#__PURE__*/React__default.createElement(React.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
7010
7063
  className: "notification-dropdown-label"
7011
- }, "Notification:\xA0"), updating ? /*#__PURE__*/React__default.createElement(EllipsisLoader, null) : /*#__PURE__*/React__default.createElement(index$1, {
7064
+ }, "Notification:\xA0"), updating ? /*#__PURE__*/React__default.createElement(LuxityLoader, {
7065
+ height: "20px",
7066
+ width: "95%"
7067
+ }) : /*#__PURE__*/React__default.createElement(index$1, {
7012
7068
  isMulti: false,
7013
7069
  isSearchable: false,
7014
7070
  components: {
package/README.md CHANGED
@@ -26,6 +26,11 @@
26
26
  - Tooltip
27
27
  - CheckBoxButton
28
28
  - GenderSelector
29
+ - LuxityLoader
30
+ - GraphQLDropdownSelector
31
+ - LuxityGraphQLDropdownSelector
32
+ - MaterialSelector
33
+ - ModelSelector
29
34
 
30
35
  ## Elements (simple Styled Components)
31
36
  - Buttons
@@ -73,6 +78,8 @@
73
78
  - PointerDown
74
79
  - Search
75
80
  - Shoes
81
+ - LuxityArrowLeft
82
+ - LuxityArrowRight
76
83
 
77
84
  ## Commands
78
85
  - `yarn` - install npm dependencies
@@ -0,0 +1,194 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('styled-components')) :
3
+ typeof define === 'function' && define.amd ? define(['react', 'styled-components'], factory) :
4
+ (global = global || self, global.RareStepFooter = factory(global.React, global.styled));
5
+ }(this, (function (React, styled) { 'use strict';
6
+
7
+ var React__default = 'default' in React ? React['default'] : React;
8
+ var styled__default = 'default' in styled ? styled['default'] : styled;
9
+
10
+ function _extends() {
11
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
12
+ for (var i = 1; i < arguments.length; i++) {
13
+ var source = arguments[i];
14
+
15
+ for (var key in source) {
16
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
17
+ target[key] = source[key];
18
+ }
19
+ }
20
+ }
21
+
22
+ return target;
23
+ };
24
+ return _extends.apply(this, arguments);
25
+ }
26
+
27
+ function _taggedTemplateLiteral(strings, raw) {
28
+ if (!raw) {
29
+ raw = strings.slice(0);
30
+ }
31
+
32
+ return Object.freeze(Object.defineProperties(strings, {
33
+ raw: {
34
+ value: Object.freeze(raw)
35
+ }
36
+ }));
37
+ }
38
+
39
+ var theme = {
40
+ breakpoints: ['40em', '52em', '64em'],
41
+ space: ['0px', '4px', '8px', '16px', '32px', '64px', '128px', '256px', '512px'],
42
+ fontSizes: ['12px', '14px', '16px', '20px', '24px', '32px', '48px', '64px', '72px'],
43
+ marginPaddings: ['0.5rem', '1rem', '1.5rem', '2rem', '2.5rem', '3rem', '3.5rem', '4rem', '4.5rem', '5rem', '5.5rem', '6rem'],
44
+ letterSpacings: ['-0.5px', '0px', '+0.5px'],
45
+ radii: ['0px', '2px', '4px', '8px'],
46
+ borderRadius: '6px',
47
+ colors: {
48
+ primary: '#000',
49
+ base: '#4e4949',
50
+ baseLt: '#817c7c',
51
+ borderColor: '#d8d8d8',
52
+ ntrlMin: '#fff',
53
+ ntrlMinTen: '#e6e6e6',
54
+ gray: '#efefef',
55
+ darkerGray: '#454141'
56
+ },
57
+ rareStepColors: {
58
+ primary: '#202b58',
59
+ secondary: '#ef5c2d',
60
+ ntrlMin: '#ffffff',
61
+ ntrl40: '#f4f4f4',
62
+ ntrl50: '#808080',
63
+ ntrl60: '#e8e8e8',
64
+ ntrl70: '#252525',
65
+ ntrlMax: '#000000'
66
+ },
67
+ rareStepFontWeights: {
68
+ normal: 400,
69
+ medium: 500,
70
+ semiBold: 600,
71
+ bold: 700
72
+ },
73
+ rareStepFontSize: {
74
+ h1: '36px',
75
+ h2: '30px',
76
+ h3: '24px',
77
+ h4: '20px',
78
+ h5: '16px',
79
+ h6: '14px',
80
+ footerTitle: '18px'
81
+ }
82
+ };
83
+
84
+ var themed = (function (Component) {
85
+ return /*#__PURE__*/React.forwardRef(function (props, ref) {
86
+ return /*#__PURE__*/React__default.createElement(styled.ThemeProvider, {
87
+ theme: theme
88
+ }, /*#__PURE__*/React__default.createElement(Component, _extends({}, props, {
89
+ ref: ref
90
+ })));
91
+ });
92
+ });
93
+
94
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
95
+ var FooterWrapper = styled__default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n {\n display: flex;\n background-color: ", ";\n font-weight: ", ";\n padding: ", ";\n font-size: ", ";\n }\n"])), function (props) {
96
+ return props.theme.rareStepColors.ntrlMax;
97
+ }, function (props) {
98
+ return props.theme.rareStepFontWeights.bold;
99
+ }, function (props) {
100
+ return props.theme.marginPaddings[4];
101
+ }, function (props) {
102
+ return props.theme.rareStepFontSize.h5;
103
+ });
104
+ var FooterLinksWrapper = styled__default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n {\n display: flex;\n flex-basis: 70%;\n }\n"])));
105
+ var FooterLinksContainer = styled__default.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n {\n display: flex;\n flex-direction: column;\n flex: 1;\n padding-right: ", ";\n }\n"])), function (props) {
106
+ return props.theme.marginPaddings[4];
107
+ });
108
+ var FooterTitleLink = styled__default.a(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n {\n text-transform: uppercase;\n color: ", ";\n margin-bottom: ", ";\n cursor: pointer;\n font-weight: ", ";\n font-size: ", ";\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: underline;\n }\n }\n"])), function (props) {
109
+ return props.theme.rareStepColors.ntrlMin;
110
+ }, function (props) {
111
+ return props.theme.marginPaddings[1];
112
+ }, function (props) {
113
+ return props.theme.rareStepFontWeights.bold;
114
+ }, function (props) {
115
+ return props.theme.rareStepFontSize.footerTitle;
116
+ }, function (props) {
117
+ return props.theme.rareStepColors.ntrlMin;
118
+ });
119
+ var FooterLink = styled__default.a(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n {\n color: ", ";\n cursor: pointer;\n margin-bottom: ", ";\n font-weight: ", ";\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: underline;\n }\n }\n"])), function (props) {
120
+ return props.theme.rareStepColors.ntrlMin;
121
+ }, function (props) {
122
+ return props.theme.space[2];
123
+ }, function (props) {
124
+ return props.theme.rareStepFontWeights.normal;
125
+ }, function (props) {
126
+ return props.theme.rareStepColors.ntrlMin;
127
+ });
128
+ var FooterImage = styled__default.img(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n {\n width: 100%;\n height: 100%;\n max-height: 300px;\n object-fit: cover;\n }\n"])));
129
+ var FooterImageWrapper = styled__default.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n {\n flex-basis: 30%;\n }\n"])));
130
+ var FooterLogo = styled__default.img(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n {\n width: 120px;\n height: 50px;\n margin-top: ", ";\n }\n"])), function (props) {
131
+ return props.theme.marginPaddings[5];
132
+ });
133
+ var SocialIconWrapper = styled__default.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n {\n display: flex;\n }\n"])));
134
+ var SocialIcon = styled__default.img(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n {\n width: 30px;\n height: 30px;\n margin-right: ", ";\n }\n"])), function (props) {
135
+ return props.theme.marginPaddings[0];
136
+ });
137
+
138
+ function RareStepFooter(_ref) {
139
+ var footer_image_url = _ref.footer_image_url,
140
+ footer_logo_image_url = _ref.footer_logo_image_url,
141
+ facebook_url = _ref.facebook_url,
142
+ facebook_icon_url = _ref.facebook_icon_url,
143
+ instagram_url = _ref.instagram_url,
144
+ instagram_image_url = _ref.instagram_image_url;
145
+ return /*#__PURE__*/React__default.createElement(FooterWrapper, null, /*#__PURE__*/React__default.createElement(FooterLinksWrapper, null, /*#__PURE__*/React__default.createElement(FooterLinksContainer, null, /*#__PURE__*/React__default.createElement(FooterTitleLink, {
146
+ href: "/contact-us"
147
+ }, "Contact"), /*#__PURE__*/React__default.createElement(FooterLink, {
148
+ href: "/contact-us"
149
+ }, "Contact Us"), /*#__PURE__*/React__default.createElement(FooterLink, null), /*#__PURE__*/React__default.createElement(FooterLink, null, "000 000 0000"), /*#__PURE__*/React__default.createElement(FooterLink, {
150
+ href: "mailto:myorder@rarestep.co.za"
151
+ }, "myorder@rarestep.co.za"), /*#__PURE__*/React__default.createElement(FooterLogo, {
152
+ src: footer_logo_image_url
153
+ }), /*#__PURE__*/React__default.createElement(FooterTitleLink, null, "Connect"), /*#__PURE__*/React__default.createElement(SocialIconWrapper, null, /*#__PURE__*/React__default.createElement(FooterLink, {
154
+ href: facebook_url
155
+ }, /*#__PURE__*/React__default.createElement(SocialIcon, {
156
+ src: facebook_icon_url
157
+ })), /*#__PURE__*/React__default.createElement(FooterLink, {
158
+ href: instagram_url
159
+ }, /*#__PURE__*/React__default.createElement(SocialIcon, {
160
+ src: instagram_image_url
161
+ })))), /*#__PURE__*/React__default.createElement(FooterLinksContainer, null, /*#__PURE__*/React__default.createElement(FooterTitleLink, {
162
+ href: "/buy-sell"
163
+ }, "Buy & Sell"), /*#__PURE__*/React__default.createElement(FooterLink, {
164
+ href: "/product-category/brands"
165
+ }, "New Arrival"), /*#__PURE__*/React__default.createElement(FooterLink, {
166
+ href: "/product-category/sneakers/brands/"
167
+ }, "Sneakers"), /*#__PURE__*/React__default.createElement(FooterLink, null, "Create Your Interest"), /*#__PURE__*/React__default.createElement(FooterLink, {
168
+ href: "/sell-to-us"
169
+ }, "Sell To Us")), /*#__PURE__*/React__default.createElement(FooterLinksContainer, null, /*#__PURE__*/React__default.createElement(FooterTitleLink, {
170
+ href: "/about"
171
+ }, "Company"), /*#__PURE__*/React__default.createElement(FooterLink, {
172
+ href: "/about"
173
+ }, "Our Story"), /*#__PURE__*/React__default.createElement(FooterLink, {
174
+ href: "/blog"
175
+ }, "Sneakers")), /*#__PURE__*/React__default.createElement(FooterLinksContainer, null, /*#__PURE__*/React__default.createElement(FooterTitleLink, {
176
+ href: "/faq"
177
+ }, "Help"), /*#__PURE__*/React__default.createElement(FooterLink, {
178
+ href: "/faq"
179
+ }, "FAQs"), /*#__PURE__*/React__default.createElement(FooterLink, {
180
+ href: "/shipping"
181
+ }, "Shipping & Returns"), /*#__PURE__*/React__default.createElement(FooterLink, {
182
+ href: "/terms-conditions"
183
+ }, "Terms & Conditions"), /*#__PURE__*/React__default.createElement(FooterLink, {
184
+ href: "/privacy"
185
+ }, "Privacy Policy"))), /*#__PURE__*/React__default.createElement(FooterImageWrapper, null, /*#__PURE__*/React__default.createElement(FooterImage, {
186
+ src: footer_image_url
187
+ })));
188
+ }
189
+
190
+ var index = themed(RareStepFooter);
191
+
192
+ return index;
193
+
194
+ })));
@@ -0,0 +1,317 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('styled-components')) :
3
+ typeof define === 'function' && define.amd ? define(['react', 'styled-components'], factory) :
4
+ (global = global || self, global.RareStepHeader = factory(global.React, global.styled));
5
+ }(this, (function (React, styled) { 'use strict';
6
+
7
+ var React__default = 'default' in React ? React['default'] : React;
8
+ styled = styled && Object.prototype.hasOwnProperty.call(styled, 'default') ? styled['default'] : styled;
9
+
10
+ function _taggedTemplateLiteral(strings, raw) {
11
+ if (!raw) {
12
+ raw = strings.slice(0);
13
+ }
14
+
15
+ return Object.freeze(Object.defineProperties(strings, {
16
+ raw: {
17
+ value: Object.freeze(raw)
18
+ }
19
+ }));
20
+ }
21
+
22
+ function _slicedToArray(arr, i) {
23
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
24
+ }
25
+
26
+ function _arrayWithHoles(arr) {
27
+ if (Array.isArray(arr)) return arr;
28
+ }
29
+
30
+ function _iterableToArrayLimit(arr, i) {
31
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
32
+
33
+ if (_i == null) return;
34
+ var _arr = [];
35
+ var _n = true;
36
+ var _d = false;
37
+
38
+ var _s, _e;
39
+
40
+ try {
41
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
42
+ _arr.push(_s.value);
43
+
44
+ if (i && _arr.length === i) break;
45
+ }
46
+ } catch (err) {
47
+ _d = true;
48
+ _e = err;
49
+ } finally {
50
+ try {
51
+ if (!_n && _i["return"] != null) _i["return"]();
52
+ } finally {
53
+ if (_d) throw _e;
54
+ }
55
+ }
56
+
57
+ return _arr;
58
+ }
59
+
60
+ function _unsupportedIterableToArray(o, minLen) {
61
+ if (!o) return;
62
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
63
+ var n = Object.prototype.toString.call(o).slice(8, -1);
64
+ if (n === "Object" && o.constructor) n = o.constructor.name;
65
+ if (n === "Map" || n === "Set") return Array.from(o);
66
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
67
+ }
68
+
69
+ function _arrayLikeToArray(arr, len) {
70
+ if (len == null || len > arr.length) len = arr.length;
71
+
72
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
73
+
74
+ return arr2;
75
+ }
76
+
77
+ function _nonIterableRest() {
78
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
79
+ }
80
+
81
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26;
82
+ var HeaderWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n {\n display: flex;\n flex-direction: column;\n background-color: ", ";\n }\n"])), function (props) {
83
+ return props.theme.rareStepColors.ntrlMin;
84
+ });
85
+ var HeaderContainer = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n {\n display: flex;\n justify-content: space-between;\n padding: ", ";\n }\n"])), function (props) {
86
+ return props.theme.marginPaddings[3];
87
+ });
88
+ var LogoFigure = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n"])));
89
+ var LogoImage = styled.img(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n {\n width: 200px;\n height: 70px;\n }\n"])));
90
+ var CurrencyFlagIcon = styled.img(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n {\n width: 25px;\n height: 15px;\n margin-top: 9px;\n margin-right: 10px;\n }\n"])));
91
+ var SellToUsLink = styled.a(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n {\n color: ", ";\n font-weight: ", ";\n font-size: ", ";\n padding-top: 10px;\n text-transform: uppercase;\n letter-spacing: 1px;\n cursor: pointer;\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: none;\n }\n }\n"])), function (props) {
92
+ return props.theme.rareStepColors.secondary;
93
+ }, function (props) {
94
+ return props.theme.rareStepFontWeights.bold;
95
+ }, function (props) {
96
+ return props.theme.rareStepFontSize.h5;
97
+ }, function (props) {
98
+ return props.theme.rareStepColors.secondary;
99
+ });
100
+ var HeaderIconsContainer = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n {\n display: flex;\n align-items: center;\n }\n"])));
101
+ var HeaderIcon = styled.img(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n {\n width: 30px;\n height: 30px;\n margin-left: ", ";\n cursor: pointer;\n }\n"])), function (props) {
102
+ return props.theme.marginPaddings[3];
103
+ });
104
+ var NavigationContainer = styled.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n {\n display: flex;\n justify-content: space-between;\n background-color: ", ";\n padding: ", ";\n padding-bottom: 0;\n }\n"])), function (props) {
105
+ return props.theme.rareStepColors.secondary;
106
+ }, function (props) {
107
+ return props.theme.marginPaddings[3];
108
+ });
109
+ var NavigationLink = styled.a(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n {\n color: ", ";\n font-size: ", ";\n margin-right: ", ";\n padding-top: 2px;\n padding-bottom: ", ";\n cursor: pointer;\n border-bottom: 2px solid ", ";\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: none;\n border-bottom: 2px solid ", ";\n }\n }\n"])), function (props) {
110
+ return props.theme.rareStepColors.ntrlMin;
111
+ }, function (props) {
112
+ return props.theme.rareStepFontSize.h5;
113
+ }, function (props) {
114
+ return props.theme.marginPaddings[5];
115
+ }, function (props) {
116
+ return props.theme.marginPaddings[1];
117
+ }, function (props) {
118
+ return props.theme.rareStepColors.secondary;
119
+ }, function (props) {
120
+ return props.theme.rareStepColors.ntrlMin;
121
+ }, function (props) {
122
+ return props.theme.rareStepColors.secondary;
123
+ });
124
+ var NavigationLinks = styled.div(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n {\n display: flex;\n }\n"])));
125
+ var Dropdown = styled.div(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n {\n display: flex;\n background-color: ", ";\n padding: ", "\n ", ";\n border-top: 1px solid ", ";\n font-size: ", ";\n }\n"])), function (props) {
126
+ return props.theme.rareStepColors.secondary;
127
+ }, function (props) {
128
+ return props.theme.marginPaddings[7];
129
+ }, function (props) {
130
+ return props.theme.marginPaddings[1];
131
+ }, function (props) {
132
+ return props.theme.rareStepColors.ntrl40;
133
+ }, function (props) {
134
+ return props.theme.rareStepFontSize.h5;
135
+ });
136
+ var DropdownBrands = styled.div(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n {\n display: flex;\n flex-direction: column;\n flex-basis: 20%;\n }\n"])));
137
+ var DropdownModels = styled.div(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n {\n display: flex;\n flex-direction: column;\n padding: 0 ", ";\n border-left: 1px solid ", ";\n border-right: 1px solid ", ";\n flex-basis: 50%;\n }\n"])), function (props) {
138
+ return props.theme.marginPaddings[3];
139
+ }, function (props) {
140
+ return props.theme.rareStepColors.ntrl40;
141
+ }, function (props) {
142
+ return props.theme.rareStepColors.ntrl40;
143
+ });
144
+ var DropdownFigure = styled.div(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n {\n display: flex;\n flex-basis: 30%;\n padding-left: ", ";\n }\n"])), function (props) {
145
+ return props.theme.marginPaddings[5];
146
+ });
147
+ var DropdownImage = styled.img(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n {\n width: 90%;\n height: 100%;\n object-fit: cover;\n margin-left: auto;\n }\n"])));
148
+ var DropdownLink = styled.a(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n {\n color: ", ";\n padding-bottom: ", ";\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: underline;\n }\n }\n"])), function (props) {
149
+ return props.theme.rareStepColors.ntrlMin;
150
+ }, function (props) {
151
+ return props.theme.marginPaddings[0];
152
+ }, function (props) {
153
+ return props.theme.rareStepColors.ntrlMin;
154
+ });
155
+ var DropdownBrandLinkContainer = styled.div(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n {\n display: flex;\n\n &:hover {\n cursor: pointer;\n\n hr {\n display: block;\n }\n }\n }\n"])));
156
+ var DropdownBrandLinkHR = styled.hr(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n {\n display: none;\n width: 20px;\n margin-top: 10px;\n color: ", ";\n margin-right: 10px;\n }\n"])), function (props) {
157
+ return props.theme.rareStepColors.secondary;
158
+ });
159
+ var DropdownBrandLink = styled.a(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n {\n color: ", ";\n padding-bottom: 0.5rem;\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: none;\n }\n }\n"])), function (props) {
160
+ return props.theme.rareStepColors.ntrlMin;
161
+ }, function (props) {
162
+ return props.theme.rareStepColors.ntrlMin;
163
+ });
164
+ var DropdownNavigatorIcon = styled.img(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n {\n width: 15px;\n height: 12px;\n margin-left: ", ";\n }\n"])), function (props) {
165
+ return props.theme.marginPaddings[0];
166
+ });
167
+ var SellToUsHR = styled.hr(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["\n {\n width: 80px;\n margin-top: 20px;\n color: ", ";\n border: 1px solid ", ";\n margin-right: 10px;\n }\n"])), function (props) {
168
+ return props.theme.rareStepColors.secondary;
169
+ }, function (props) {
170
+ return props.theme.rareStepColors.secondary;
171
+ });
172
+ var SearchContainer = styled.div(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n {\n display: flex;\n padding: ", "\n ", ";\n background-color: ", ";\n align-items: center;\n border-top: 1px solid ", ";\n }\n"])), function (props) {
173
+ return props.theme.marginPaddings[1];
174
+ }, function (props) {
175
+ return props.theme.marginPaddings[3];
176
+ }, function (props) {
177
+ return props.theme.rareStepColors.secondary;
178
+ }, function (props) {
179
+ return props.theme.rareStepColors.ntrl40;
180
+ });
181
+ var SearchInput = styled.input(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["\n {\n width: 50%;\n font-size: ", ";\n padding-bottom: ", ";\n background-color: ", ";\n color: ", ";\n border: none;\n margin-left: ", ";\n\n &::placeholder {\n color: ", ";\n }\n }\n"])), function (props) {
182
+ return props.theme.rareStepFontSize.footerTitle;
183
+ }, function (props) {
184
+ return props.theme.marginPaddings[0];
185
+ }, function (props) {
186
+ return props.theme.rareStepColors.secondary;
187
+ }, function (props) {
188
+ return props.theme.rareStepColors.ntrl40;
189
+ }, function (props) {
190
+ return props.theme.marginPaddings[3];
191
+ }, function (props) {
192
+ return props.theme.rareStepColors.ntrl40;
193
+ });
194
+ var SearchIcon = styled.img(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["\n {\n width: 20px;\n height: 20px;\n cursor: pointer;\n }\n"])));
195
+ var CloseIcon = styled.img(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["\n {\n width: 20px;\n height: 20px;\n margin-left: auto;\n cursor: pointer;\n }\n"])));
196
+
197
+ var RareStepHeader = function RareStepHeader(_ref) {
198
+ var _header_dropdown_prod;
199
+
200
+ var header_logo_img_url = _ref.header_logo_img_url,
201
+ search_icon_url = _ref.search_icon_url,
202
+ cart_icon_url = _ref.cart_icon_url,
203
+ user_icon_url = _ref.user_icon_url,
204
+ interest_icon_url = _ref.interest_icon_url,
205
+ dropdown_closed_icon_url = _ref.dropdown_closed_icon_url,
206
+ dropdown_open_icon_url = _ref.dropdown_open_icon_url,
207
+ currency_flag_icon_url = _ref.currency_flag_icon_url,
208
+ close_icon_url = _ref.close_icon_url,
209
+ navigation_search_icon_url = _ref.navigation_search_icon_url,
210
+ wordpress_site_url = _ref.wordpress_site_url,
211
+ header_dropdown_product_object = _ref.header_dropdown_product_object;
212
+
213
+ var _useState = React.useState(false),
214
+ _useState2 = _slicedToArray(_useState, 2),
215
+ showDropdown = _useState2[0],
216
+ setShowDropdown = _useState2[1];
217
+
218
+ var timeoutIdRef = React.useRef(null);
219
+ var searchInputRef = React.useRef(null);
220
+
221
+ var _useState3 = React.useState(false),
222
+ _useState4 = _slicedToArray(_useState3, 2),
223
+ showSearch = _useState4[0],
224
+ setShowSearch = _useState4[1];
225
+
226
+ var _useState5 = React.useState([]),
227
+ _useState6 = _slicedToArray(_useState5, 2),
228
+ currentModels = _useState6[0],
229
+ setCurrentModels = _useState6[1];
230
+
231
+ var _useState7 = React.useState(null),
232
+ _useState8 = _slicedToArray(_useState7, 2),
233
+ currentBrand = _useState8[0],
234
+ setCurrentBrand = _useState8[1];
235
+
236
+ var handleShowDropdown = function handleShowDropdown() {
237
+ clearTimeout(timeoutIdRef.current);
238
+ setShowDropdown(true);
239
+ };
240
+
241
+ var handleHideDropdown = function handleHideDropdown() {
242
+ timeoutIdRef.current = setTimeout(function () {
243
+ setShowDropdown(false);
244
+ }, 500);
245
+ };
246
+
247
+ var toggleSearch = function toggleSearch() {
248
+ setShowSearch(!showSearch);
249
+ };
250
+
251
+ var handleOnSearch = function handleOnSearch() {
252
+ window.location.replace("".concat(wordpress_site_url, "/?s=").concat(searchInputRef.current.value));
253
+ };
254
+
255
+ var handleKeyDown = function handleKeyDown(e) {
256
+ if (e.key === 'Enter') {
257
+ handleOnSearch();
258
+ }
259
+ };
260
+
261
+ var handleBrandHover = function handleBrandHover(brand) {
262
+ setCurrentBrand(brand);
263
+ setCurrentModels(brand.models);
264
+ };
265
+
266
+ return /*#__PURE__*/React__default.createElement(HeaderWrapper, null, /*#__PURE__*/React__default.createElement(HeaderContainer, null, /*#__PURE__*/React__default.createElement(LogoFigure, null, /*#__PURE__*/React__default.createElement(LogoImage, {
267
+ src: header_logo_img_url
268
+ })), /*#__PURE__*/React__default.createElement(HeaderIconsContainer, null, /*#__PURE__*/React__default.createElement(SellToUsHR, null), /*#__PURE__*/React__default.createElement(SellToUsLink, null, "Sell to us"), /*#__PURE__*/React__default.createElement(HeaderIcon, {
269
+ src: search_icon_url,
270
+ onClick: toggleSearch
271
+ }), /*#__PURE__*/React__default.createElement(HeaderIcon, {
272
+ src: interest_icon_url
273
+ }), /*#__PURE__*/React__default.createElement(HeaderIcon, {
274
+ src: user_icon_url
275
+ }), /*#__PURE__*/React__default.createElement(HeaderIcon, {
276
+ src: cart_icon_url
277
+ }))), /*#__PURE__*/React__default.createElement(NavigationContainer, null, /*#__PURE__*/React__default.createElement(NavigationLinks, null, /*#__PURE__*/React__default.createElement(NavigationLink, null, "New Arrivals"), /*#__PURE__*/React__default.createElement(NavigationLink, {
278
+ onMouseOver: handleShowDropdown,
279
+ onMouseOut: handleHideDropdown
280
+ }, header_dropdown_product_object.product_type, showDropdown ? /*#__PURE__*/React__default.createElement(DropdownNavigatorIcon, {
281
+ src: dropdown_closed_icon_url
282
+ }) : /*#__PURE__*/React__default.createElement(DropdownNavigatorIcon, {
283
+ src: dropdown_open_icon_url
284
+ })), /*#__PURE__*/React__default.createElement(NavigationLink, null, "Create Your Interests"), /*#__PURE__*/React__default.createElement(NavigationLink, null, "Rare Step Finder")), /*#__PURE__*/React__default.createElement(NavigationLinks, null, /*#__PURE__*/React__default.createElement(NavigationLink, null, "Our Story"), /*#__PURE__*/React__default.createElement(NavigationLink, null, "Blog"), /*#__PURE__*/React__default.createElement(NavigationLink, null, "Contact Us"), /*#__PURE__*/React__default.createElement(CurrencyFlagIcon, {
285
+ src: currency_flag_icon_url
286
+ }), /*#__PURE__*/React__default.createElement(NavigationLink, null, "South African (ZAR, R)"))), showSearch && /*#__PURE__*/React__default.createElement(SearchContainer, null, /*#__PURE__*/React__default.createElement(SearchIcon, {
287
+ src: navigation_search_icon_url,
288
+ onClick: handleOnSearch
289
+ }), /*#__PURE__*/React__default.createElement(SearchInput, {
290
+ ref: searchInputRef,
291
+ placeholder: "Search...",
292
+ onKeyDown: handleKeyDown
293
+ }), /*#__PURE__*/React__default.createElement(CloseIcon, {
294
+ src: close_icon_url,
295
+ onClick: toggleSearch
296
+ })), showDropdown && /*#__PURE__*/React__default.createElement(Dropdown, {
297
+ onMouseOver: handleShowDropdown,
298
+ onMouseOut: handleHideDropdown
299
+ }, /*#__PURE__*/React__default.createElement(DropdownBrands, null, header_dropdown_product_object === null || header_dropdown_product_object === void 0 ? void 0 : (_header_dropdown_prod = header_dropdown_product_object.brands) === null || _header_dropdown_prod === void 0 ? void 0 : _header_dropdown_prod.map(function (brand, index) {
300
+ return /*#__PURE__*/React__default.createElement(DropdownBrandLinkContainer, {
301
+ key: index,
302
+ onMouseOver: function onMouseOver() {
303
+ return handleBrandHover(brand);
304
+ }
305
+ }, /*#__PURE__*/React__default.createElement(DropdownBrandLinkHR, null), /*#__PURE__*/React__default.createElement(DropdownBrandLink, null, brand.brand_name));
306
+ })), /*#__PURE__*/React__default.createElement(DropdownModels, null, currentModels === null || currentModels === void 0 ? void 0 : currentModels.map(function (model, index) {
307
+ return /*#__PURE__*/React__default.createElement(DropdownLink, {
308
+ key: index
309
+ }, model.model_name);
310
+ })), (currentBrand === null || currentBrand === void 0 ? void 0 : currentBrand.brand_image_url) && /*#__PURE__*/React__default.createElement(DropdownFigure, null, /*#__PURE__*/React__default.createElement(DropdownImage, {
311
+ src: currentBrand === null || currentBrand === void 0 ? void 0 : currentBrand.brand_image_url
312
+ }))));
313
+ };
314
+
315
+ return RareStepHeader;
316
+
317
+ })));