@searchspring/snap-preact-components 0.25.1 → 0.27.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 (45) hide show
  1. package/dist/cjs/components/Atoms/Icon/Icon.d.ts.map +1 -1
  2. package/dist/cjs/components/Atoms/Icon/Icon.js +1 -0
  3. package/dist/cjs/components/Molecules/Carousel/Carousel.d.ts +0 -1
  4. package/dist/cjs/components/Molecules/Carousel/Carousel.d.ts.map +1 -1
  5. package/dist/cjs/components/Molecules/Carousel/Carousel.js +35 -1
  6. package/dist/cjs/components/Molecules/FacetSlider/FacetSlider.d.ts.map +1 -1
  7. package/dist/cjs/components/Molecules/FacetSlider/FacetSlider.js +19 -11
  8. package/dist/cjs/components/Organisms/BranchOverride/BranchOverride.d.ts +16 -0
  9. package/dist/cjs/components/Organisms/BranchOverride/BranchOverride.d.ts.map +1 -0
  10. package/dist/cjs/components/Organisms/BranchOverride/BranchOverride.js +273 -0
  11. package/dist/cjs/components/Organisms/BranchOverride/BranchOverride.stories.d.ts +136 -0
  12. package/dist/cjs/components/Organisms/BranchOverride/BranchOverride.stories.d.ts.map +1 -0
  13. package/dist/cjs/components/Organisms/BranchOverride/BranchOverride.stories.js +120 -0
  14. package/dist/cjs/components/Organisms/BranchOverride/index.d.ts +2 -0
  15. package/dist/cjs/components/Organisms/BranchOverride/index.d.ts.map +1 -0
  16. package/dist/cjs/components/Organisms/BranchOverride/index.js +17 -0
  17. package/dist/cjs/index.d.ts +1 -0
  18. package/dist/cjs/index.d.ts.map +1 -1
  19. package/dist/cjs/index.js +1 -0
  20. package/dist/cjs/utilities/snapify.d.ts +2 -1
  21. package/dist/cjs/utilities/snapify.d.ts.map +1 -1
  22. package/dist/cjs/utilities/snapify.js +50 -5
  23. package/dist/esm/components/Atoms/Icon/Icon.d.ts.map +1 -1
  24. package/dist/esm/components/Atoms/Icon/Icon.js +1 -0
  25. package/dist/esm/components/Molecules/Carousel/Carousel.d.ts +0 -1
  26. package/dist/esm/components/Molecules/Carousel/Carousel.d.ts.map +1 -1
  27. package/dist/esm/components/Molecules/Carousel/Carousel.js +35 -1
  28. package/dist/esm/components/Molecules/FacetSlider/FacetSlider.d.ts.map +1 -1
  29. package/dist/esm/components/Molecules/FacetSlider/FacetSlider.js +9 -1
  30. package/dist/esm/components/Organisms/BranchOverride/BranchOverride.d.ts +16 -0
  31. package/dist/esm/components/Organisms/BranchOverride/BranchOverride.d.ts.map +1 -0
  32. package/dist/esm/components/Organisms/BranchOverride/BranchOverride.js +263 -0
  33. package/dist/esm/components/Organisms/BranchOverride/BranchOverride.stories.d.ts +136 -0
  34. package/dist/esm/components/Organisms/BranchOverride/BranchOverride.stories.d.ts.map +1 -0
  35. package/dist/esm/components/Organisms/BranchOverride/BranchOverride.stories.js +110 -0
  36. package/dist/esm/components/Organisms/BranchOverride/index.d.ts +2 -0
  37. package/dist/esm/components/Organisms/BranchOverride/index.d.ts.map +1 -0
  38. package/dist/esm/components/Organisms/BranchOverride/index.js +1 -0
  39. package/dist/esm/index.d.ts +1 -0
  40. package/dist/esm/index.d.ts.map +1 -1
  41. package/dist/esm/index.js +1 -0
  42. package/dist/esm/utilities/snapify.d.ts +2 -1
  43. package/dist/esm/utilities/snapify.d.ts.map +1 -1
  44. package/dist/esm/utilities/snapify.js +48 -3
  45. package/package.json +18 -11
@@ -0,0 +1,263 @@
1
+ /** @jsx jsx */
2
+ import { Fragment } from 'preact';
3
+ import { jsx, css } from '@emotion/react';
4
+ import classnames from 'classnames';
5
+ import { useState } from 'preact/hooks';
6
+ import { Icon } from '../../Atoms/Icon/Icon';
7
+ import { defined } from '../../../utilities';
8
+ import { useTheme } from '../../../providers';
9
+ const CSS = {
10
+ override: ({ theme }) => css({
11
+ width: '360px',
12
+ height: '120px',
13
+ overflow: 'hidden',
14
+ fontSize: '14px',
15
+ position: 'fixed',
16
+ zIndex: 9999,
17
+ cursor: 'auto',
18
+ bottom: '50px',
19
+ right: 0,
20
+ background: theme.main.background,
21
+ color: theme.main.color,
22
+ border: theme.main.border,
23
+ borderRight: 0,
24
+ borderTopLeftRadius: '5px',
25
+ borderBottomLeftRadius: '5px',
26
+ boxShadow: theme.main.boxShadow,
27
+ transition: 'height ease 0.2s, right ease 0.5s 0.2s',
28
+ '&.ss__branch-override--collapsed': {
29
+ transition: 'height ease 0.5s 0.5s, right ease 0.5s',
30
+ right: '-316px',
31
+ height: '50px',
32
+ cursor: 'pointer',
33
+ },
34
+ '.ss__branch-override__top': {
35
+ padding: '10px',
36
+ background: theme.top.background,
37
+ borderBottom: theme.top.border,
38
+ '.ss__branch-override__top__logo': {
39
+ display: 'inline-block',
40
+ height: '30px',
41
+ maxHeight: '30px',
42
+ verticalAlign: 'middle',
43
+ },
44
+ '.ss__branch-override__top__collapse': {
45
+ display: 'inline-block',
46
+ float: 'right',
47
+ padding: '5px',
48
+ cursor: 'pointer',
49
+ },
50
+ '.ss__branch-override__top__button': {
51
+ borderRadius: '5px',
52
+ padding: '6px',
53
+ height: '100%',
54
+ lineHeight: '14px',
55
+ textAlign: 'center',
56
+ cursor: 'pointer',
57
+ fontSize: '10px',
58
+ border: theme.top.button.border,
59
+ color: theme.top.button.color,
60
+ float: 'right',
61
+ marginRight: '14px',
62
+ },
63
+ },
64
+ '.ss__branch-override__bottom': {
65
+ padding: '10px 15px',
66
+ fontSize: '12px',
67
+ '.ss__branch-override__bottom__left': {
68
+ fontWeight: 'bold',
69
+ fontStyle: theme.bottom.branch.style,
70
+ color: theme.bottom.branch.color,
71
+ fontSize: '14px',
72
+ lineHeight: '20px',
73
+ display: 'inline-flex',
74
+ alignItems: 'center',
75
+ maxWidth: '180px',
76
+ whiteSpace: 'nowrap',
77
+ overflow: 'hidden',
78
+ textOverflow: 'ellipsis',
79
+ svg: {
80
+ marginRight: '10px',
81
+ },
82
+ },
83
+ '.ss__branch-override__bottom__right': {
84
+ float: 'right',
85
+ fontStyle: 'italic',
86
+ color: theme.bottom.additional.color,
87
+ fontSize: '12px',
88
+ lineHeight: '20px',
89
+ },
90
+ '.ss__branch-override__bottom__content': {
91
+ marginTop: '10px',
92
+ },
93
+ },
94
+ }),
95
+ };
96
+ const darkTheme = {
97
+ main: {
98
+ border: '0',
99
+ background: 'rgba(59, 35, 173, 0.9)',
100
+ color: '#fff',
101
+ boxShadow: '#4c3ce2 1px 1px 3px 0px',
102
+ },
103
+ top: {
104
+ background: 'rgba(59, 35, 173, 0.3)',
105
+ border: '1px solid #4c3de1',
106
+ logo: {
107
+ src: 'https://snapui.searchspring.io/searchspring_light.svg',
108
+ },
109
+ button: {
110
+ border: '1px solid #fff',
111
+ color: '#fff',
112
+ content: 'STOP PREVIEW',
113
+ },
114
+ close: {
115
+ fill: '#fff',
116
+ },
117
+ },
118
+ bottom: {
119
+ content: 'Preview functionality may differ from production.',
120
+ branch: {
121
+ color: '#03cee1',
122
+ style: 'italic',
123
+ },
124
+ additional: {
125
+ color: '#03cee1',
126
+ },
127
+ },
128
+ };
129
+ const lightTheme = {
130
+ main: {
131
+ border: '1px solid #ccc',
132
+ background: 'rgba(255, 255, 255, 0.95)',
133
+ color: '#515151',
134
+ boxShadow: 'rgba(81, 81, 81, 0.5) 1px 1px 3px 0px',
135
+ },
136
+ top: {
137
+ border: '1px solid #ccc',
138
+ logo: {
139
+ src: 'https://snapui.searchspring.io/searchspring.svg',
140
+ },
141
+ button: {
142
+ border: '1px solid #515151',
143
+ color: '#515151',
144
+ content: 'STOP PREVIEW',
145
+ },
146
+ close: {
147
+ fill: '#515151',
148
+ },
149
+ },
150
+ bottom: {
151
+ content: 'Preview functionality may differ from production.',
152
+ branch: {
153
+ color: '#3a23ad',
154
+ style: 'italic',
155
+ },
156
+ additional: {
157
+ color: '#3a23ad',
158
+ },
159
+ },
160
+ };
161
+ const failureTheme = {
162
+ main: {
163
+ border: '0',
164
+ background: 'rgba(130, 6, 6, 0.9)',
165
+ color: '#fff',
166
+ boxShadow: 'rgba(130, 6, 6, 0.4) 1px 1px 3px 0px',
167
+ },
168
+ top: {
169
+ background: 'rgba(130, 6, 6, 0.3)',
170
+ border: '1px solid #760000',
171
+ logo: {
172
+ src: 'https://snapui.searchspring.io/searchspring_light.svg',
173
+ },
174
+ button: {
175
+ border: '1px solid #fff',
176
+ color: '#fff',
177
+ content: 'REMOVE',
178
+ },
179
+ close: {
180
+ fill: '#fff',
181
+ },
182
+ },
183
+ bottom: {
184
+ content: 'Incorrect branch name or branch no longer exists.',
185
+ branch: {
186
+ color: '#be9628',
187
+ style: 'italic',
188
+ },
189
+ additional: {
190
+ color: '#be9628',
191
+ },
192
+ },
193
+ };
194
+ const themes = {
195
+ darkTheme,
196
+ lightTheme,
197
+ failureTheme,
198
+ };
199
+ export const BranchOverride = (properties) => {
200
+ const globalTheme = useTheme();
201
+ const theme = { ...globalTheme, ...properties.theme };
202
+ let props = {
203
+ // global theme
204
+ ...globalTheme?.components?.branchOverride,
205
+ // props
206
+ ...properties,
207
+ ...properties.theme?.components?.branchOverride,
208
+ };
209
+ const { name, details, error, className, darkMode, disableStyles, style, onRemoveClick } = props;
210
+ const subProps = {
211
+ icon: {
212
+ // default props
213
+ className: 'ss__branch-override__bottom__left__icon',
214
+ size: '12px',
215
+ // global theme
216
+ ...globalTheme?.components?.icon,
217
+ // inherited props
218
+ ...defined({
219
+ disableStyles,
220
+ }),
221
+ // component theme overrides
222
+ theme: props.theme,
223
+ },
224
+ };
225
+ const prefersDark = typeof darkMode == 'boolean' ? darkMode : window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)').matches : false;
226
+ const [themeName, setThemeName] = useState(prefersDark ? 'darkTheme' : 'lightTheme');
227
+ const [collapsed, setCollapsed] = useState(0);
228
+ if (error) {
229
+ setThemeName('failureTheme');
230
+ }
231
+ const styling = {};
232
+ if (!disableStyles) {
233
+ styling.css = [CSS.override({ theme: themes[themeName] }), style];
234
+ }
235
+ else if (style) {
236
+ styling.css = [style];
237
+ }
238
+ return ((details || error) &&
239
+ name && (jsx("div", { className: classnames('ss__branch-override', { 'ss__branch-override--collapsed': collapsed }, className), ...styling, onClick: (e) => {
240
+ e.preventDefault();
241
+ e.stopPropagation();
242
+ setCollapsed(0);
243
+ } },
244
+ jsx("div", { className: "ss__branch-override__top" },
245
+ jsx("img", { className: "ss__branch-override__top__logo", src: themes[themeName].top.logo.src }),
246
+ jsx("div", { className: "ss__branch-override__top__collapse", onClick: (e) => {
247
+ e.preventDefault();
248
+ e.stopPropagation();
249
+ setCollapsed(1);
250
+ } },
251
+ jsx(Icon, { size: "18px", color: themes[themeName].top.close.fill, ...subProps.icon, icon: "close-thin" })),
252
+ jsx("div", { className: "ss__branch-override__top__button", onClick: (e) => {
253
+ e.preventDefault();
254
+ e.stopPropagation();
255
+ onRemoveClick && onRemoveClick(e, name);
256
+ } }, themes[themeName].top.button.content)),
257
+ jsx("div", { className: "ss__branch-override__bottom" },
258
+ jsx("span", { className: "ss__branch-override__bottom__left" }, error ? (jsx(Fragment, null,
259
+ jsx(Icon, { size: "12px", color: themes[themeName].bottom.branch.color, ...subProps.icon, icon: "warn" }),
260
+ jsx("span", null, error.message))) : (name)),
261
+ jsx("span", { className: "ss__branch-override__bottom__right" }, error ? name : details?.lastModified),
262
+ jsx("div", { className: "ss__branch-override__bottom__content" }, error?.description || themes[themeName].bottom.content)))));
263
+ };
@@ -0,0 +1,136 @@
1
+ /// <reference types="react" />
2
+ import { h } from 'preact';
3
+ declare const _default: {
4
+ title: string;
5
+ component: (properties: import("./BranchOverride").BranchOverrideProps) => JSX.Element;
6
+ parameters: {
7
+ docs: {
8
+ page: () => h.JSX.Element;
9
+ };
10
+ };
11
+ decorators: ((Story: any) => h.JSX.Element)[];
12
+ argTypes: {
13
+ className: {
14
+ description: string;
15
+ table: {
16
+ type: {
17
+ summary: string;
18
+ };
19
+ defaultValue: {
20
+ summary: string;
21
+ };
22
+ };
23
+ control: {
24
+ type: string;
25
+ };
26
+ };
27
+ disableStyles: {
28
+ defaultValue: boolean;
29
+ description: string;
30
+ table: {
31
+ type: {
32
+ summary: string;
33
+ };
34
+ defaultValue: {
35
+ summary: boolean;
36
+ };
37
+ };
38
+ control: {
39
+ type: string;
40
+ };
41
+ };
42
+ style: {
43
+ description: string;
44
+ table: {
45
+ type: {
46
+ summary: string;
47
+ };
48
+ };
49
+ control: {
50
+ type: string;
51
+ };
52
+ };
53
+ theme: {
54
+ description: string;
55
+ table: {
56
+ type: {
57
+ summary: string;
58
+ };
59
+ };
60
+ control: {
61
+ type: string;
62
+ };
63
+ };
64
+ name: {
65
+ description: string;
66
+ type: {
67
+ required: boolean;
68
+ };
69
+ table: {
70
+ type: {
71
+ summary: string;
72
+ };
73
+ };
74
+ control: {
75
+ type: string;
76
+ };
77
+ };
78
+ details: {
79
+ description: string;
80
+ type: {
81
+ required: boolean;
82
+ };
83
+ table: {
84
+ type: {
85
+ summary: string;
86
+ };
87
+ };
88
+ control: {
89
+ type: string;
90
+ };
91
+ };
92
+ error: {
93
+ description: string;
94
+ type: {
95
+ required: boolean;
96
+ };
97
+ table: {
98
+ type: {
99
+ summary: string;
100
+ };
101
+ };
102
+ control: {
103
+ type: string;
104
+ };
105
+ };
106
+ onRemoveClick: {
107
+ description: string;
108
+ table: {
109
+ type: {
110
+ summary: string;
111
+ };
112
+ };
113
+ action: string;
114
+ };
115
+ darkMode: {
116
+ description: string;
117
+ type: {
118
+ required: boolean;
119
+ };
120
+ table: {
121
+ type: {
122
+ summary: string;
123
+ };
124
+ };
125
+ control: {
126
+ type: string;
127
+ };
128
+ };
129
+ };
130
+ };
131
+ export default _default;
132
+ export declare const Auto: any;
133
+ export declare const Dark: any;
134
+ export declare const Error: any;
135
+ export declare const Light: any;
136
+ //# sourceMappingURL=BranchOverride.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BranchOverride.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/BranchOverride/BranchOverride.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAY,MAAM,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQrC,wBA6EE;AAIF,eAAO,MAAM,IAAI,KAAoB,CAAC;AAStC,eAAO,MAAM,IAAI,KAAoB,CAAC;AAUtC,eAAO,MAAM,KAAK,KAAoB,CAAC;AASvC,eAAO,MAAM,KAAK,KAAoB,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { h } from 'preact';
2
+ import { ArgsTable, PRIMARY_STORY } from '@storybook/addon-docs/blocks';
3
+ import { BranchOverride } from './BranchOverride';
4
+ import { componentArgs } from '../../../utilities';
5
+ import Readme from '../BranchOverride/readme.md';
6
+ export default {
7
+ title: `Organisms/BranchOverride`,
8
+ component: BranchOverride,
9
+ parameters: {
10
+ docs: {
11
+ page: () => (h("div", null,
12
+ h(Readme, null),
13
+ h(ArgsTable, { story: PRIMARY_STORY }))),
14
+ },
15
+ },
16
+ decorators: [
17
+ (Story) => (h("div", { style: {
18
+ maxWidth: '900px',
19
+ position: 'relative',
20
+ } },
21
+ h(Story, null))),
22
+ ],
23
+ argTypes: {
24
+ name: {
25
+ description: 'bundle branch name',
26
+ type: { required: true },
27
+ table: {
28
+ type: {
29
+ summary: 'string',
30
+ },
31
+ },
32
+ control: { type: 'text' },
33
+ },
34
+ details: {
35
+ description: 'Object containing details for branch override',
36
+ type: { required: false },
37
+ table: {
38
+ type: {
39
+ summary: '{ url: string; lastModified: string }',
40
+ },
41
+ },
42
+ control: { type: 'object' },
43
+ },
44
+ error: {
45
+ description: 'Object containing error message and description',
46
+ type: { required: false },
47
+ table: {
48
+ type: {
49
+ summary: '{ message: string; description: string }',
50
+ },
51
+ },
52
+ control: { type: 'object' },
53
+ },
54
+ onRemoveClick: {
55
+ description: 'optional function to run on remove button click',
56
+ table: {
57
+ type: {
58
+ summary: '(e: Event, name: string) => void',
59
+ },
60
+ },
61
+ action: 'onRemoveClick',
62
+ },
63
+ darkMode: {
64
+ description: 'force dark darkMode',
65
+ type: { required: false },
66
+ table: {
67
+ type: {
68
+ summary: 'boolean',
69
+ },
70
+ },
71
+ control: { type: 'boolean' },
72
+ },
73
+ ...componentArgs,
74
+ },
75
+ };
76
+ const Template = (args) => h(BranchOverride, { ...args });
77
+ export const Auto = Template.bind({});
78
+ Auto.args = {
79
+ name: 'next',
80
+ details: {
81
+ url: 'https://snapui.searchspring.io/y56s6x/next/bundle.js',
82
+ lastModified: '1 Feb 2022 1:02:03 GMT',
83
+ },
84
+ };
85
+ export const Dark = Template.bind({});
86
+ Dark.args = {
87
+ name: 'next',
88
+ details: {
89
+ url: 'https://snapui.searchspring.io/y56s6x/next/bundle.js',
90
+ lastModified: '1 Feb 2022 1:02:03 GMT',
91
+ },
92
+ darkMode: true,
93
+ };
94
+ export const Error = Template.bind({});
95
+ Error.args = {
96
+ name: 'testing',
97
+ error: {
98
+ message: 'Branch not found!',
99
+ description: 'Incorrect branch name or branch no longer exists.',
100
+ },
101
+ };
102
+ export const Light = Template.bind({});
103
+ Light.args = {
104
+ name: 'next',
105
+ details: {
106
+ url: 'https://snapui.searchspring.io/y56s6x/next/bundle.js',
107
+ lastModified: '1 Feb 2022 1:02:03 GMT',
108
+ },
109
+ darkMode: false,
110
+ };
@@ -0,0 +1,2 @@
1
+ export * from './BranchOverride';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/BranchOverride/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './BranchOverride';
@@ -24,6 +24,7 @@ export * from './components/Molecules/Select';
24
24
  export * from './components/Molecules/Slideout';
25
25
  export * from './components/Molecules/FacetSlider';
26
26
  export * from './components/Organisms/Autocomplete';
27
+ export * from './components/Organisms/BranchOverride';
27
28
  export * from './components/Organisms/Facet';
28
29
  export * from './components/Organisms/Facets';
29
30
  export * from './components/Organisms/FilterSummary';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAG5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAG/C,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAG5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAG/C,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC"}
package/dist/esm/index.js CHANGED
@@ -27,6 +27,7 @@ export * from './components/Molecules/Slideout';
27
27
  export * from './components/Molecules/FacetSlider';
28
28
  // ORGANISMS
29
29
  export * from './components/Organisms/Autocomplete';
30
+ export * from './components/Organisms/BranchOverride';
30
31
  export * from './components/Organisms/Facet';
31
32
  export * from './components/Organisms/Facets';
32
33
  export * from './components/Organisms/FilterSummary';
@@ -1,4 +1,5 @@
1
- import type { SearchController, AutocompleteController, RecommendationController, SearchControllerConfig, AutocompleteControllerConfig, RecommendationControllerConfig } from '@searchspring/snap-controller';
1
+ import { SearchController, AutocompleteController, RecommendationController } from '@searchspring/snap-controller';
2
+ import type { SearchControllerConfig, AutocompleteControllerConfig, RecommendationControllerConfig } from '@searchspring/snap-controller';
2
3
  export declare class Snapify {
3
4
  static recommendation(config: RecommendationControllerConfig): RecommendationController;
4
5
  static autocomplete(config: AutocompleteControllerConfig): AutocompleteController;
@@ -1 +1 @@
1
- {"version":3,"file":"snapify.d.ts","sourceRoot":"","sources":["../../../src/utilities/snapify.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC5B,8BAA8B,EAC9B,MAAM,+BAA+B,CAAC;AAMvC,qBAAa,OAAO;IACnB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,8BAA8B,GAAG,wBAAwB;IAkBvF,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,4BAA4B,GAAG,sBAAsB;IAmBjF,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB;CAkB/D"}
1
+ {"version":3,"file":"snapify.d.ts","sourceRoot":"","sources":["../../../src/utilities/snapify.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAUnH,OAAO,KAAK,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAc1I,qBAAa,OAAO;IACnB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,8BAA8B,GAAG,wBAAwB;IAkBvF,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,4BAA4B,GAAG,sBAAsB;IAmBjF,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB;CAkB/D"}
@@ -1,5 +1,11 @@
1
- /* searchspring imports */
2
- import { createSearchController, createAutocompleteController, createRecommendationsController } from '@searchspring/snap-preact';
1
+ import { SearchController, AutocompleteController, RecommendationController } from '@searchspring/snap-controller';
2
+ import { Client } from '@searchspring/snap-client';
3
+ import { SearchStore, AutocompleteStore, RecommendationStore } from '@searchspring/snap-store-mobx';
4
+ import { UrlManager, UrlTranslator, reactLinker } from '@searchspring/snap-url-manager';
5
+ import { EventManager } from '@searchspring/snap-event-manager';
6
+ import { Profiler } from '@searchspring/snap-profiler';
7
+ import { Logger } from '@searchspring/snap-logger';
8
+ import { Tracker } from '@searchspring/snap-tracker';
3
9
  const controllers = {};
4
10
  const client = {
5
11
  globals: { siteId: '8uyt2m' },
@@ -10,7 +16,7 @@ export class Snapify {
10
16
  if (controllers[id]) {
11
17
  return controllers[id];
12
18
  }
13
- const cntrlr = (controllers[id] = createRecommendationsController({ client, controller: config }));
19
+ const cntrlr = (controllers[id] = createRecommendationController({ client, controller: config }));
14
20
  cntrlr.on('afterStore', async ({ controller }, next) => {
15
21
  controller.log.debug('controller', controller);
16
22
  controller.log.debug('store', controller.store.toJSON());
@@ -48,3 +54,42 @@ export class Snapify {
48
54
  return cntrlr;
49
55
  }
50
56
  }
57
+ function createSearchController(config) {
58
+ const urlManager = new UrlManager(new UrlTranslator(), reactLinker);
59
+ const cntrlr = new SearchController(config.controller, {
60
+ client: new Client(config.client.globals, config.client.config),
61
+ store: new SearchStore(config.controller, { urlManager }),
62
+ urlManager,
63
+ eventManager: new EventManager(),
64
+ profiler: new Profiler(),
65
+ logger: new Logger(),
66
+ tracker: new Tracker(config.client.globals),
67
+ });
68
+ return cntrlr;
69
+ }
70
+ function createRecommendationController(config) {
71
+ const urlManager = new UrlManager(new UrlTranslator(), reactLinker).detach(true);
72
+ const cntrlr = new RecommendationController(config.controller, {
73
+ client: new Client(config.client.globals, config.client.config),
74
+ store: new RecommendationStore(config.controller, { urlManager }),
75
+ urlManager,
76
+ eventManager: new EventManager(),
77
+ profiler: new Profiler(),
78
+ logger: new Logger(),
79
+ tracker: new Tracker(config.client.globals),
80
+ });
81
+ return cntrlr;
82
+ }
83
+ function createAutocompleteController(config) {
84
+ const urlManager = new UrlManager(new UrlTranslator(), reactLinker).detach();
85
+ const cntrlr = new AutocompleteController(config.controller, {
86
+ client: new Client(config.client.globals, config.client.config),
87
+ store: new AutocompleteStore(config.controller, { urlManager }),
88
+ urlManager,
89
+ eventManager: new EventManager(),
90
+ profiler: new Profiler(),
91
+ logger: new Logger(),
92
+ tracker: new Tracker(config.client.globals),
93
+ });
94
+ return cntrlr;
95
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-preact-components",
3
- "version": "0.25.1",
3
+ "version": "0.27.0",
4
4
  "description": "Snap Preact Component Library",
5
5
  "author": "Searchspring",
6
6
  "license": "MIT",
@@ -26,8 +26,15 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@emotion/react": "^11.7.1",
29
- "@searchspring/snap-preact": "^0.25.1",
30
- "@searchspring/snap-toolbox": "^0.25.1",
29
+ "@searchspring/snap-client": "^0.27.0",
30
+ "@searchspring/snap-controller": "^0.27.0",
31
+ "@searchspring/snap-event-manager": "^0.27.0",
32
+ "@searchspring/snap-logger": "^0.27.0",
33
+ "@searchspring/snap-profiler": "^0.27.0",
34
+ "@searchspring/snap-store-mobx": "^0.27.0",
35
+ "@searchspring/snap-toolbox": "^0.27.0",
36
+ "@searchspring/snap-tracker": "^0.27.0",
37
+ "@searchspring/snap-url-manager": "^0.27.0",
31
38
  "classnames": "^2.3.1",
32
39
  "deepmerge": "^4.2.2",
33
40
  "mobx-react-lite": "^3.2.3",
@@ -39,13 +46,13 @@
39
46
  },
40
47
  "devDependencies": {
41
48
  "@mdx-js/loader": "^1.6.22",
42
- "@searchspring/snap-client": "^0.25.1",
43
- "@searchspring/snap-controller": "^0.25.1",
44
- "@searchspring/snap-event-manager": "^0.25.1",
45
- "@searchspring/snap-logger": "^0.25.1",
46
- "@searchspring/snap-profiler": "^0.25.1",
47
- "@searchspring/snap-store-mobx": "^0.25.1",
48
- "@searchspring/snap-url-manager": "^0.25.1",
49
+ "@searchspring/snap-client": "^0.26.1",
50
+ "@searchspring/snap-controller": "^0.26.1",
51
+ "@searchspring/snap-event-manager": "^0.26.1",
52
+ "@searchspring/snap-logger": "^0.26.1",
53
+ "@searchspring/snap-profiler": "^0.26.1",
54
+ "@searchspring/snap-store-mobx": "^0.26.1",
55
+ "@searchspring/snap-url-manager": "^0.26.1",
49
56
  "@storybook/addon-actions": "^6.4.9",
50
57
  "@storybook/addon-controls": "^6.4.9",
51
58
  "@storybook/addon-docs": "^6.4.9",
@@ -65,5 +72,5 @@
65
72
  "ts-loader": "^9.2.6"
66
73
  },
67
74
  "sideEffects": false,
68
- "gitHead": "56ab4bfc6d2d6c98ea80d7efa0ec65cca9e654ae"
75
+ "gitHead": "4cdee561f907c31990f78ba001b2c5bc29fe2b40"
69
76
  }