@searchspring/snap-preact-components 0.54.0 → 0.56.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.
- package/dist/cjs/components/Atoms/BadgeImage/BadgeImage.d.ts +11 -0
- package/dist/cjs/components/Atoms/BadgeImage/BadgeImage.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeImage/BadgeImage.js +46 -0
- package/dist/cjs/components/Atoms/BadgeImage/index.d.ts +2 -0
- package/dist/cjs/components/Atoms/BadgeImage/index.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeImage/index.js +17 -0
- package/dist/cjs/components/Atoms/BadgePill/BadgePill.d.ts +12 -0
- package/dist/cjs/components/Atoms/BadgePill/BadgePill.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgePill/BadgePill.js +57 -0
- package/dist/cjs/components/Atoms/BadgePill/index.d.ts +2 -0
- package/dist/cjs/components/Atoms/BadgePill/index.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgePill/index.js +17 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts +12 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/BadgeRectangle.js +56 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/index.d.ts +2 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/index.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/index.js +17 -0
- package/dist/cjs/components/Atoms/BadgeText/BadgeText.d.ts +11 -0
- package/dist/cjs/components/Atoms/BadgeText/BadgeText.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeText/BadgeText.js +55 -0
- package/dist/cjs/components/Atoms/BadgeText/index.d.ts +2 -0
- package/dist/cjs/components/Atoms/BadgeText/index.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeText/index.js +17 -0
- package/dist/cjs/components/Molecules/CalloutBadge/CalloutBadge.d.ts +13 -0
- package/dist/cjs/components/Molecules/CalloutBadge/CalloutBadge.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/CalloutBadge/CalloutBadge.js +63 -0
- package/dist/cjs/components/Molecules/CalloutBadge/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/CalloutBadge/index.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/CalloutBadge/index.js +17 -0
- package/dist/cjs/components/Molecules/Grid/Grid.d.ts +20 -0
- package/dist/cjs/components/Molecules/Grid/Grid.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/Grid/Grid.js +210 -0
- package/dist/cjs/components/Molecules/Grid/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/Grid/index.d.ts.map +1 -0
- package/dist/cjs/components/{Atoms/Badge → Molecules/Grid}/index.js +1 -1
- package/dist/cjs/components/Molecules/List/List.d.ts +18 -0
- package/dist/cjs/components/Molecules/List/List.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/List/List.js +158 -0
- package/dist/cjs/components/Molecules/List/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/List/index.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/List/index.js +17 -0
- package/dist/cjs/components/Molecules/OverlayBadge/OverlayBadge.d.ts +17 -0
- package/dist/cjs/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/OverlayBadge/OverlayBadge.js +118 -0
- package/dist/cjs/components/Molecules/OverlayBadge/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/OverlayBadge/index.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/OverlayBadge/index.js +17 -0
- package/dist/cjs/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/cjs/components/Molecules/Result/Result.js +19 -9
- package/dist/cjs/components/Molecules/Swatches/Swatches.d.ts +19 -0
- package/dist/cjs/components/Molecules/Swatches/Swatches.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/Swatches/Swatches.js +168 -0
- package/dist/cjs/components/Molecules/Swatches/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/Swatches/index.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/Swatches/index.js +17 -0
- package/dist/cjs/components/Molecules/VariantSelection/VariantSelection.d.ts +9 -0
- package/dist/cjs/components/Molecules/VariantSelection/VariantSelection.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/VariantSelection/VariantSelection.js +146 -0
- package/dist/cjs/components/Molecules/VariantSelection/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/VariantSelection/index.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/VariantSelection/index.js +17 -0
- package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.js +0 -3
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.js +1 -0
- package/dist/cjs/hooks/useComponent.d.ts +4 -0
- package/dist/cjs/hooks/useComponent.d.ts.map +1 -0
- package/dist/cjs/hooks/useComponent.js +23 -0
- package/dist/cjs/index.d.ts +11 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +11 -2
- package/dist/cjs/types.d.ts +20 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utilities/defaultBadgeComponentMap.d.ts +3 -0
- package/dist/cjs/utilities/defaultBadgeComponentMap.d.ts.map +1 -0
- package/dist/cjs/utilities/defaultBadgeComponentMap.js +13 -0
- package/dist/cjs/utilities/index.d.ts +1 -0
- package/dist/cjs/utilities/index.d.ts.map +1 -1
- package/dist/cjs/utilities/index.js +1 -0
- package/dist/cjs/utilities/snapify.d.ts.map +1 -1
- package/dist/cjs/utilities/snapify.js +3 -0
- package/dist/esm/components/Atoms/BadgeImage/BadgeImage.d.ts +11 -0
- package/dist/esm/components/Atoms/BadgeImage/BadgeImage.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeImage/BadgeImage.js +35 -0
- package/dist/esm/components/Atoms/BadgeImage/index.d.ts +2 -0
- package/dist/esm/components/Atoms/BadgeImage/index.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeImage/index.js +1 -0
- package/dist/esm/components/Atoms/BadgePill/BadgePill.d.ts +12 -0
- package/dist/esm/components/Atoms/BadgePill/BadgePill.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgePill/BadgePill.js +46 -0
- package/dist/esm/components/Atoms/BadgePill/index.d.ts +2 -0
- package/dist/esm/components/Atoms/BadgePill/index.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgePill/index.js +1 -0
- package/dist/esm/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts +12 -0
- package/dist/esm/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeRectangle/BadgeRectangle.js +45 -0
- package/dist/esm/components/Atoms/BadgeRectangle/index.d.ts +2 -0
- package/dist/esm/components/Atoms/BadgeRectangle/index.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeRectangle/index.js +1 -0
- package/dist/esm/components/Atoms/BadgeText/BadgeText.d.ts +11 -0
- package/dist/esm/components/Atoms/BadgeText/BadgeText.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeText/BadgeText.js +43 -0
- package/dist/esm/components/Atoms/BadgeText/index.d.ts +2 -0
- package/dist/esm/components/Atoms/BadgeText/index.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeText/index.js +1 -0
- package/dist/esm/components/Molecules/CalloutBadge/CalloutBadge.d.ts +13 -0
- package/dist/esm/components/Molecules/CalloutBadge/CalloutBadge.d.ts.map +1 -0
- package/dist/esm/components/Molecules/CalloutBadge/CalloutBadge.js +49 -0
- package/dist/esm/components/Molecules/CalloutBadge/index.d.ts +2 -0
- package/dist/esm/components/Molecules/CalloutBadge/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/CalloutBadge/index.js +1 -0
- package/dist/esm/components/Molecules/Grid/Grid.d.ts +20 -0
- package/dist/esm/components/Molecules/Grid/Grid.d.ts.map +1 -0
- package/dist/esm/components/Molecules/Grid/Grid.js +189 -0
- package/dist/esm/components/Molecules/Grid/index.d.ts +2 -0
- package/dist/esm/components/Molecules/Grid/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/Grid/index.js +1 -0
- package/dist/esm/components/Molecules/List/List.d.ts +18 -0
- package/dist/esm/components/Molecules/List/List.d.ts.map +1 -0
- package/dist/esm/components/Molecules/List/List.js +140 -0
- package/dist/esm/components/Molecules/List/index.d.ts +2 -0
- package/dist/esm/components/Molecules/List/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/List/index.js +1 -0
- package/dist/esm/components/Molecules/OverlayBadge/OverlayBadge.d.ts +17 -0
- package/dist/esm/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -0
- package/dist/esm/components/Molecules/OverlayBadge/OverlayBadge.js +111 -0
- package/dist/esm/components/Molecules/OverlayBadge/index.d.ts +2 -0
- package/dist/esm/components/Molecules/OverlayBadge/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/OverlayBadge/index.js +1 -0
- package/dist/esm/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/esm/components/Molecules/Result/Result.js +23 -9
- package/dist/esm/components/Molecules/Swatches/Swatches.d.ts +19 -0
- package/dist/esm/components/Molecules/Swatches/Swatches.d.ts.map +1 -0
- package/dist/esm/components/Molecules/Swatches/Swatches.js +179 -0
- package/dist/esm/components/Molecules/Swatches/index.d.ts +2 -0
- package/dist/esm/components/Molecules/Swatches/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/Swatches/index.js +1 -0
- package/dist/esm/components/Molecules/VariantSelection/VariantSelection.d.ts +9 -0
- package/dist/esm/components/Molecules/VariantSelection/VariantSelection.d.ts.map +1 -0
- package/dist/esm/components/Molecules/VariantSelection/VariantSelection.js +167 -0
- package/dist/esm/components/Molecules/VariantSelection/index.d.ts +2 -0
- package/dist/esm/components/Molecules/VariantSelection/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/VariantSelection/index.js +1 -0
- package/dist/esm/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/esm/components/Organisms/Autocomplete/Autocomplete.js +0 -3
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/useComponent.d.ts +4 -0
- package/dist/esm/hooks/useComponent.d.ts.map +1 -0
- package/dist/esm/hooks/useComponent.js +19 -0
- package/dist/esm/index.d.ts +11 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +11 -2
- package/dist/esm/types.d.ts +20 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utilities/defaultBadgeComponentMap.d.ts +3 -0
- package/dist/esm/utilities/defaultBadgeComponentMap.d.ts.map +1 -0
- package/dist/esm/utilities/defaultBadgeComponentMap.js +10 -0
- package/dist/esm/utilities/index.d.ts +1 -0
- package/dist/esm/utilities/index.d.ts.map +1 -1
- package/dist/esm/utilities/index.js +1 -0
- package/dist/esm/utilities/snapify.d.ts.map +1 -1
- package/dist/esm/utilities/snapify.js +3 -0
- package/package.json +12 -11
- package/dist/cjs/components/Atoms/Badge/Badge.d.ts +0 -16
- package/dist/cjs/components/Atoms/Badge/Badge.d.ts.map +0 -1
- package/dist/cjs/components/Atoms/Badge/Badge.js +0 -47
- package/dist/cjs/components/Atoms/Badge/index.d.ts +0 -2
- package/dist/cjs/components/Atoms/Badge/index.d.ts.map +0 -1
- package/dist/esm/components/Atoms/Badge/Badge.d.ts +0 -16
- package/dist/esm/components/Atoms/Badge/Badge.d.ts.map +0 -1
- package/dist/esm/components/Atoms/Badge/Badge.js +0 -36
- package/dist/esm/components/Atoms/Badge/index.d.ts +0 -2
- package/dist/esm/components/Atoms/Badge/index.d.ts.map +0 -1
- package/dist/esm/components/Atoms/Badge/index.js +0 -1
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { Fragment } from 'preact';
|
|
3
|
+
import { jsx, css } from '@emotion/react';
|
|
4
|
+
import classnames from 'classnames';
|
|
5
|
+
import { useTheme, CacheProvider } from '../../../providers';
|
|
6
|
+
import { useState } from 'react';
|
|
7
|
+
import { useA11y, useDisplaySettings } from '../../../hooks';
|
|
8
|
+
import { Carousel } from '../Carousel';
|
|
9
|
+
import { defined } from '../../../utilities';
|
|
10
|
+
import { Grid } from '../Grid';
|
|
11
|
+
import { Image } from '../../Atoms/Image';
|
|
12
|
+
import deepmerge from 'deepmerge';
|
|
13
|
+
import { filters } from '@searchspring/snap-toolbox';
|
|
14
|
+
const CSS = {
|
|
15
|
+
Swatches: ({ theme }) => css({
|
|
16
|
+
marginTop: '10px',
|
|
17
|
+
'.ss__swatches__carousel__swatch': {
|
|
18
|
+
boxSizing: 'content-box',
|
|
19
|
+
cursor: 'pointer',
|
|
20
|
+
backgroundRepeat: 'no-repeat',
|
|
21
|
+
display: 'flex',
|
|
22
|
+
justifyContent: 'center',
|
|
23
|
+
alignItems: 'center',
|
|
24
|
+
border: `1px solid ${theme?.colors?.primary || '#333'}`,
|
|
25
|
+
aspectRatio: '1/1',
|
|
26
|
+
margin: 'auto',
|
|
27
|
+
flexDirection: 'column',
|
|
28
|
+
'&.ss__swatches__carousel__swatch--selected': {
|
|
29
|
+
border: `2px solid ${theme?.colors?.primary || '#333'}`,
|
|
30
|
+
},
|
|
31
|
+
'&.ss__swatches__carousel__swatch--disabled:before, &.ss__swatches__carousel__swatch--unavailable:before': {
|
|
32
|
+
content: '""',
|
|
33
|
+
display: 'block',
|
|
34
|
+
position: 'absolute',
|
|
35
|
+
top: '50%',
|
|
36
|
+
width: '90%',
|
|
37
|
+
height: '1px',
|
|
38
|
+
borderTop: '3px solid #eee',
|
|
39
|
+
outline: '1px solid #ffff',
|
|
40
|
+
transform: 'rotate(-45deg)',
|
|
41
|
+
},
|
|
42
|
+
'&.ss__swatches__carousel__swatch--disabled': {
|
|
43
|
+
position: 'relative',
|
|
44
|
+
cursor: 'none',
|
|
45
|
+
pointerEvents: 'none',
|
|
46
|
+
opacity: 0.5,
|
|
47
|
+
},
|
|
48
|
+
'&.ss__swatches__carousel__swatch--unavailable': {
|
|
49
|
+
cursor: 'pointer',
|
|
50
|
+
opacity: 0.5,
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
}),
|
|
54
|
+
};
|
|
55
|
+
export function Swatches(properties) {
|
|
56
|
+
const globalTheme = useTheme();
|
|
57
|
+
const theme = { ...globalTheme, ...properties.theme };
|
|
58
|
+
const defaultCarouselBreakpoints = {
|
|
59
|
+
0: {
|
|
60
|
+
carousel: {
|
|
61
|
+
slidesPerView: 3,
|
|
62
|
+
slidesPerGroup: 3,
|
|
63
|
+
spaceBetween: 10,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
768: {
|
|
67
|
+
carousel: {
|
|
68
|
+
slidesPerView: 4,
|
|
69
|
+
slidesPerGroup: 4,
|
|
70
|
+
spaceBetween: 10,
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
1200: {
|
|
74
|
+
carousel: {
|
|
75
|
+
slidesPerView: 5,
|
|
76
|
+
slidesPerGroup: 5,
|
|
77
|
+
spaceBetween: 10,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
let props = {
|
|
82
|
+
// default props
|
|
83
|
+
type: 'carousel',
|
|
84
|
+
hideLabels: true,
|
|
85
|
+
// global theme
|
|
86
|
+
...globalTheme?.components?.swatches,
|
|
87
|
+
// props
|
|
88
|
+
...properties,
|
|
89
|
+
...properties.theme?.components?.swatches,
|
|
90
|
+
};
|
|
91
|
+
const breakpoints = props.breakpoints || (props.type == 'carousel' ? defaultCarouselBreakpoints : {});
|
|
92
|
+
const displaySettings = useDisplaySettings(breakpoints);
|
|
93
|
+
if (displaySettings && Object.keys(displaySettings).length) {
|
|
94
|
+
const theme = deepmerge(props?.theme || {}, displaySettings?.theme || {}, { arrayMerge: (destinationArray, sourceArray) => sourceArray });
|
|
95
|
+
props = {
|
|
96
|
+
...props,
|
|
97
|
+
...displaySettings,
|
|
98
|
+
theme,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
const { onSelect, disabled, options, hideLabels, disableStyles, className, style, type, carousel, grid } = props;
|
|
102
|
+
const subProps = {
|
|
103
|
+
carousel: {
|
|
104
|
+
// default props
|
|
105
|
+
className: 'ss__swatches__carousel',
|
|
106
|
+
loop: false,
|
|
107
|
+
...carousel,
|
|
108
|
+
// global theme
|
|
109
|
+
...globalTheme?.components?.carousel,
|
|
110
|
+
// inherited props
|
|
111
|
+
...defined({
|
|
112
|
+
breakpoints,
|
|
113
|
+
disableStyles,
|
|
114
|
+
}),
|
|
115
|
+
// component theme overrides
|
|
116
|
+
theme: props?.theme,
|
|
117
|
+
},
|
|
118
|
+
grid: {
|
|
119
|
+
// default props
|
|
120
|
+
className: 'ss__swatches__grid',
|
|
121
|
+
hideLabels: hideLabels,
|
|
122
|
+
overflowButtonInGrid: true,
|
|
123
|
+
disableOverflowAction: true,
|
|
124
|
+
rows: 1,
|
|
125
|
+
columns: 6,
|
|
126
|
+
...grid,
|
|
127
|
+
// global theme
|
|
128
|
+
...globalTheme?.components?.grid,
|
|
129
|
+
// inherited props
|
|
130
|
+
...defined({
|
|
131
|
+
disableStyles,
|
|
132
|
+
}),
|
|
133
|
+
// component theme overrides
|
|
134
|
+
theme: props?.theme,
|
|
135
|
+
},
|
|
136
|
+
image: {
|
|
137
|
+
// default props
|
|
138
|
+
className: 'ss__swatches__image',
|
|
139
|
+
// global theme
|
|
140
|
+
...globalTheme?.components?.image,
|
|
141
|
+
// inherited props
|
|
142
|
+
...defined({
|
|
143
|
+
disableStyles,
|
|
144
|
+
}),
|
|
145
|
+
// component theme overrides
|
|
146
|
+
theme: props?.theme,
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
const selected = props.selected;
|
|
150
|
+
const styling = {};
|
|
151
|
+
if (!disableStyles) {
|
|
152
|
+
styling.css = [CSS.Swatches({ theme }), style];
|
|
153
|
+
}
|
|
154
|
+
else if (style) {
|
|
155
|
+
styling.css = [style];
|
|
156
|
+
}
|
|
157
|
+
// selection state
|
|
158
|
+
const [selection, setSelection] = useState(selected || undefined);
|
|
159
|
+
const makeSelection = (e, option) => {
|
|
160
|
+
if (onSelect) {
|
|
161
|
+
onSelect(e, option);
|
|
162
|
+
}
|
|
163
|
+
setSelection(option);
|
|
164
|
+
};
|
|
165
|
+
return typeof options == 'object' && options?.length ? (jsx(CacheProvider, null,
|
|
166
|
+
jsx("div", { ...styling, className: classnames('ss__swatches', className) }, type == 'carousel' ? (jsx(Carousel, { ...subProps.carousel }, options.map((option) => {
|
|
167
|
+
const label = option.label;
|
|
168
|
+
const selected = selection?.value == option.value;
|
|
169
|
+
return (jsx("div", { className: classnames(`ss__swatches__carousel__swatch ss__swatches__carousel__swatch--${filters.handleize(option.value.toString())}`, {
|
|
170
|
+
'ss__swatches__carousel__swatch--selected': selected,
|
|
171
|
+
'ss__swatches__carousel__swatch--disabled': option?.disabled,
|
|
172
|
+
'ss__swatches__carousel__swatch--unavailable': option?.available === false,
|
|
173
|
+
}), title: label, style: { background: option.background ? option.background : option.backgroundImageUrl ? `` : option.value }, onClick: (e) => !disabled && !option?.disabled && makeSelection(e, option), ref: (e) => useA11y(e), role: "option", "aria-selected": selected },
|
|
174
|
+
!option.background && option.backgroundImageUrl ? (jsx(Image, { ...subProps.image, src: option.backgroundImageUrl, alt: option.label || option.value.toString() })) : (jsx(Fragment, null)),
|
|
175
|
+
!hideLabels && jsx("span", { className: "ss__swatches__carousel__swatch__value" }, label || option.value)));
|
|
176
|
+
}))) : (jsx(Grid, { ...subProps.grid, options: options, onSelect: (e, option) => {
|
|
177
|
+
!disabled && makeSelection(e, option);
|
|
178
|
+
}, selected: selected }))))) : (jsx(Fragment, null));
|
|
179
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Swatches/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Swatches';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ComponentProps } from '../../../types';
|
|
3
|
+
import type { VariantSelection as VariantSelectionType } from '@searchspring/snap-store-mobx';
|
|
4
|
+
export declare const VariantSelection: (properties: VariantSelectionProps) => JSX.Element;
|
|
5
|
+
export interface VariantSelectionProps extends ComponentProps {
|
|
6
|
+
selection: VariantSelectionType;
|
|
7
|
+
type?: 'dropdown' | 'swatches' | 'list';
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=VariantSelection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariantSelection.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/VariantSelection/VariantSelection.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAqD9F,eAAO,MAAM,gBAAgB,eAAyB,qBAAqB,KAAG,WAkK5E,CAAC;AASH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC5D,SAAS,EAAE,oBAAoB,CAAC;IAChC,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;CACxC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { Fragment } from 'preact';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
4
|
+
import { jsx, css } from '@emotion/react';
|
|
5
|
+
import classnames from 'classnames';
|
|
6
|
+
import { useTheme, CacheProvider } from '../../../providers';
|
|
7
|
+
import { defined } from '../../../utilities';
|
|
8
|
+
import { List } from '../List';
|
|
9
|
+
import { Swatches } from '../Swatches';
|
|
10
|
+
import { Dropdown } from '../../Atoms/Dropdown';
|
|
11
|
+
import { Icon } from '../../Atoms/Icon';
|
|
12
|
+
const CSS = {
|
|
13
|
+
variantSelection: () => css({
|
|
14
|
+
'.ss__variant-selection__dropdown': {
|
|
15
|
+
'.ss__dropdown__button': {
|
|
16
|
+
width: '100%',
|
|
17
|
+
display: 'flex',
|
|
18
|
+
alignItems: 'center',
|
|
19
|
+
justifyContent: 'space-between',
|
|
20
|
+
'.ss__dropdown__button-wrapper': {
|
|
21
|
+
display: 'flex',
|
|
22
|
+
gap: '5px',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
'.ss__dropdown__content': {
|
|
26
|
+
minWidth: 'auto',
|
|
27
|
+
left: '0',
|
|
28
|
+
right: '0',
|
|
29
|
+
'.ss__variant-selection__option': {
|
|
30
|
+
cursor: 'pointer',
|
|
31
|
+
position: 'relative',
|
|
32
|
+
},
|
|
33
|
+
'.ss__variant-selection__option:hover': {
|
|
34
|
+
fontWeight: 'bold',
|
|
35
|
+
},
|
|
36
|
+
'.ss__variant-selection__option--selected': {
|
|
37
|
+
fontWeight: 'bold',
|
|
38
|
+
},
|
|
39
|
+
'.ss__variant-selection__option--disabled': {
|
|
40
|
+
pointerEvents: 'none',
|
|
41
|
+
cursor: 'initial',
|
|
42
|
+
},
|
|
43
|
+
'.ss__variant-selection__option--disabled, .ss__variant-selection__option--unavailable': {
|
|
44
|
+
textDecoration: 'line-through',
|
|
45
|
+
opacity: 0.5,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
}),
|
|
50
|
+
};
|
|
51
|
+
export const VariantSelection = observer((properties) => {
|
|
52
|
+
const globalTheme = useTheme();
|
|
53
|
+
const props = {
|
|
54
|
+
// default props
|
|
55
|
+
type: 'dropdown',
|
|
56
|
+
// global theme
|
|
57
|
+
...globalTheme?.components?.variantSelection,
|
|
58
|
+
// props
|
|
59
|
+
...properties,
|
|
60
|
+
...properties.theme?.components?.variantSelection,
|
|
61
|
+
};
|
|
62
|
+
const { type, selection, disableStyles, className, style } = props;
|
|
63
|
+
const subProps = {
|
|
64
|
+
dropdown: {
|
|
65
|
+
name: `ss__variant-selection__dropdown--${selection.field}`,
|
|
66
|
+
className: 'ss__variant-selection__dropdown',
|
|
67
|
+
label: selection.label || selection.field,
|
|
68
|
+
// global theme
|
|
69
|
+
...globalTheme?.components?.dropdown,
|
|
70
|
+
// inherited props
|
|
71
|
+
...defined({
|
|
72
|
+
disableStyles,
|
|
73
|
+
}),
|
|
74
|
+
// component theme overrides
|
|
75
|
+
theme: props?.theme,
|
|
76
|
+
},
|
|
77
|
+
icon: {
|
|
78
|
+
// default props
|
|
79
|
+
name: `ss__variant-selection__icon--${selection.field}`,
|
|
80
|
+
className: 'ss__variant-selection__icon',
|
|
81
|
+
size: '12px',
|
|
82
|
+
// global theme
|
|
83
|
+
...globalTheme?.components?.icon,
|
|
84
|
+
// inherited props
|
|
85
|
+
...defined({
|
|
86
|
+
disableStyles,
|
|
87
|
+
}),
|
|
88
|
+
// component theme overrides
|
|
89
|
+
theme: props?.theme,
|
|
90
|
+
},
|
|
91
|
+
list: {
|
|
92
|
+
name: `ss__variant-selection__list--${selection.field}`,
|
|
93
|
+
titleText: selection.field,
|
|
94
|
+
className: 'ss__variant-selection__list',
|
|
95
|
+
multiSelect: false,
|
|
96
|
+
hideOptionCheckboxes: true,
|
|
97
|
+
onSelect: (e, option) => selection.select(option.value),
|
|
98
|
+
selected: selection.selected,
|
|
99
|
+
// global theme
|
|
100
|
+
...globalTheme?.components?.list,
|
|
101
|
+
// inherited props
|
|
102
|
+
...defined({
|
|
103
|
+
disableStyles,
|
|
104
|
+
}),
|
|
105
|
+
// component theme overrides
|
|
106
|
+
theme: props?.theme,
|
|
107
|
+
},
|
|
108
|
+
swatches: {
|
|
109
|
+
name: `ss__variant-selection__swatches--${selection.field}`,
|
|
110
|
+
className: 'ss__variant-selection__swatches',
|
|
111
|
+
onSelect: (e, option) => selection.select(option.value),
|
|
112
|
+
selected: selection.selected,
|
|
113
|
+
// global theme
|
|
114
|
+
...globalTheme?.components?.swatches,
|
|
115
|
+
// inherited props
|
|
116
|
+
...defined({
|
|
117
|
+
disableStyles,
|
|
118
|
+
}),
|
|
119
|
+
// component theme overrides
|
|
120
|
+
theme: props?.theme,
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
const styling = {};
|
|
124
|
+
if (!disableStyles) {
|
|
125
|
+
styling.css = [CSS.variantSelection(), style];
|
|
126
|
+
}
|
|
127
|
+
else if (style) {
|
|
128
|
+
styling.css = [style];
|
|
129
|
+
}
|
|
130
|
+
return selection.values.length ? (jsx(CacheProvider, null,
|
|
131
|
+
jsx("div", { ...styling, className: classnames('ss__variant-selection', `ss__variant-selection--${type}`, `ss__variant-selection--${selection.field}`, className) }, (() => {
|
|
132
|
+
switch (type) {
|
|
133
|
+
case 'dropdown':
|
|
134
|
+
return (jsx(Fragment, null, (() => {
|
|
135
|
+
//todo prettify the button
|
|
136
|
+
const Button = (props) => {
|
|
137
|
+
const { open } = props;
|
|
138
|
+
return (jsx(Fragment, null,
|
|
139
|
+
jsx("div", { className: "ss__dropdown__button-wrapper" },
|
|
140
|
+
jsx("span", { className: "ss__dropdown__button-wrapper__label" }, selection.label),
|
|
141
|
+
selection.selected ? (jsx("span", { className: "ss__dropdown__button-wrapper__selection" },
|
|
142
|
+
"(",
|
|
143
|
+
selection.selected.value,
|
|
144
|
+
")")) : (jsx(Fragment, null))),
|
|
145
|
+
jsx(Icon, { icon: open ? 'angle-up' : 'angle-down', ...subProps.icon })));
|
|
146
|
+
};
|
|
147
|
+
return (jsx(Dropdown, { button: jsx(Button, null), ...subProps.dropdown },
|
|
148
|
+
jsx("div", { className: "ss__variant-selection__options" }, selection.values.map((val) => {
|
|
149
|
+
const selected = selection.selected?.value == val.value;
|
|
150
|
+
return (jsx("div", { className: classnames(`ss__variant-selection__option`, {
|
|
151
|
+
'ss__variant-selection__option--selected': selected,
|
|
152
|
+
'ss__variant-selection__option--disabled': val.disabled,
|
|
153
|
+
'ss__variant-selection__option--unavailable': val.available === false,
|
|
154
|
+
}), onClick: () => !val.disabled && selection.select(val.value) }, val.label));
|
|
155
|
+
}))));
|
|
156
|
+
})()));
|
|
157
|
+
case 'list':
|
|
158
|
+
return (jsx(Fragment, null, (() => {
|
|
159
|
+
return jsx(List, { ...subProps.list, options: selection.values });
|
|
160
|
+
})()));
|
|
161
|
+
case 'swatches':
|
|
162
|
+
return (jsx(Fragment, null, (() => {
|
|
163
|
+
return jsx(Swatches, { ...subProps.swatches, options: selection.values });
|
|
164
|
+
})()));
|
|
165
|
+
}
|
|
166
|
+
})()))) : (jsx(Fragment, null));
|
|
167
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/VariantSelection/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './VariantSelection';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":";AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAU5E,OAAO,EAAE,cAAc,EAAgB,gBAAgB,EAAc,MAAM,gBAAgB,CAAC;AAsJ5F,eAAO,MAAM,YAAY,eAAyB,iBAAiB,KAAG,
|
|
1
|
+
{"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":";AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAU5E,OAAO,EAAE,cAAc,EAAgB,gBAAgB,EAAc,MAAM,gBAAgB,CAAC;AAsJ5F,eAAO,MAAM,YAAY,eAAyB,iBAAiB,KAAG,WAidpE,CAAC;AAoCH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACxD,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,UAAU,EAAE,sBAAsB,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACxE,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CACjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC"}
|
package/dist/esm/hooks/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useComponent.d.ts","sourceRoot":"","sources":["../../../src/hooks/useComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,YAAY,QAAS,YAAY,QAAQ,MAAM,KAAG,SAAS,GAAG,oBAAoB,GAAG,CAkBjG,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useEffect, useState } from 'preact/hooks';
|
|
2
|
+
export const useComponent = (map, name) => {
|
|
3
|
+
const [importedComponent, setImportedComponent] = useState(undefined);
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
const importFn = map[name];
|
|
6
|
+
if (importFn && typeof importFn === 'function') {
|
|
7
|
+
const componentFn = importFn();
|
|
8
|
+
if (componentFn instanceof Promise) {
|
|
9
|
+
componentFn.then((component) => {
|
|
10
|
+
setImportedComponent(() => component);
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
setImportedComponent(() => componentFn);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}, []);
|
|
18
|
+
return importedComponent;
|
|
19
|
+
};
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
export * from './components/Atoms/
|
|
1
|
+
export * from './components/Atoms/BadgeImage';
|
|
2
|
+
export * from './components/Atoms/BadgePill';
|
|
3
|
+
export * from './components/Atoms/BadgeRectangle';
|
|
4
|
+
export * from './components/Atoms/BadgeText';
|
|
2
5
|
export * from './components/Atoms/Breadcrumbs';
|
|
3
6
|
export * from './components/Atoms/Button';
|
|
4
7
|
export * from './components/Atoms/Dropdown';
|
|
@@ -12,6 +15,7 @@ export * from './components/Atoms/Price';
|
|
|
12
15
|
export * from './components/Atoms/Skeleton';
|
|
13
16
|
export * from './components/Trackers/Recommendation/ResultTracker';
|
|
14
17
|
export * from './components/Trackers/Recommendation/ProfileTracker';
|
|
18
|
+
export * from './components/Molecules/CalloutBadge';
|
|
15
19
|
export * from './components/Molecules/Carousel';
|
|
16
20
|
export * from './components/Molecules/Checkbox';
|
|
17
21
|
export * from './components/Molecules/ErrorHandler';
|
|
@@ -19,12 +23,17 @@ export * from './components/Molecules/FacetGridOptions';
|
|
|
19
23
|
export * from './components/Molecules/FacetHierarchyOptions';
|
|
20
24
|
export * from './components/Molecules/FacetListOptions';
|
|
21
25
|
export * from './components/Molecules/FacetPaletteOptions';
|
|
26
|
+
export * from './components/Molecules/FacetSlider';
|
|
22
27
|
export * from './components/Molecules/Filter';
|
|
28
|
+
export * from './components/Molecules/Grid';
|
|
29
|
+
export * from './components/Molecules/List';
|
|
30
|
+
export * from './components/Molecules/OverlayBadge';
|
|
23
31
|
export * from './components/Molecules/Pagination';
|
|
24
32
|
export * from './components/Molecules/Result';
|
|
25
33
|
export * from './components/Molecules/Select';
|
|
26
34
|
export * from './components/Molecules/Slideout';
|
|
27
|
-
export * from './components/Molecules/
|
|
35
|
+
export * from './components/Molecules/Swatches';
|
|
36
|
+
export * from './components/Molecules/VariantSelection';
|
|
28
37
|
export * from './components/Organisms/Autocomplete';
|
|
29
38
|
export * from './components/Organisms/BranchOverride';
|
|
30
39
|
export * from './components/Organisms/Facet';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,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;AAC5C,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AAGpE,cAAc,qCAAqC,CAAC;AACpD,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,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AAGxD,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,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAG/C,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// ATOMS
|
|
2
|
-
export * from './components/Atoms/
|
|
2
|
+
export * from './components/Atoms/BadgeImage';
|
|
3
|
+
export * from './components/Atoms/BadgePill';
|
|
4
|
+
export * from './components/Atoms/BadgeRectangle';
|
|
5
|
+
export * from './components/Atoms/BadgeText';
|
|
3
6
|
export * from './components/Atoms/Breadcrumbs';
|
|
4
7
|
export * from './components/Atoms/Button';
|
|
5
8
|
export * from './components/Atoms/Dropdown';
|
|
@@ -14,6 +17,7 @@ export * from './components/Atoms/Skeleton';
|
|
|
14
17
|
export * from './components/Trackers/Recommendation/ResultTracker';
|
|
15
18
|
export * from './components/Trackers/Recommendation/ProfileTracker';
|
|
16
19
|
// MOLECULES
|
|
20
|
+
export * from './components/Molecules/CalloutBadge';
|
|
17
21
|
export * from './components/Molecules/Carousel';
|
|
18
22
|
export * from './components/Molecules/Checkbox';
|
|
19
23
|
export * from './components/Molecules/ErrorHandler';
|
|
@@ -21,12 +25,17 @@ export * from './components/Molecules/FacetGridOptions';
|
|
|
21
25
|
export * from './components/Molecules/FacetHierarchyOptions';
|
|
22
26
|
export * from './components/Molecules/FacetListOptions';
|
|
23
27
|
export * from './components/Molecules/FacetPaletteOptions';
|
|
28
|
+
export * from './components/Molecules/FacetSlider';
|
|
24
29
|
export * from './components/Molecules/Filter';
|
|
30
|
+
export * from './components/Molecules/Grid';
|
|
31
|
+
export * from './components/Molecules/List';
|
|
32
|
+
export * from './components/Molecules/OverlayBadge';
|
|
25
33
|
export * from './components/Molecules/Pagination';
|
|
26
34
|
export * from './components/Molecules/Result';
|
|
27
35
|
export * from './components/Molecules/Select';
|
|
28
36
|
export * from './components/Molecules/Slideout';
|
|
29
|
-
export * from './components/Molecules/
|
|
37
|
+
export * from './components/Molecules/Swatches';
|
|
38
|
+
export * from './components/Molecules/VariantSelection';
|
|
30
39
|
// ORGANISMS
|
|
31
40
|
export * from './components/Organisms/Autocomplete';
|
|
32
41
|
export * from './components/Organisms/BranchOverride';
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -1,12 +1,31 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FunctionalComponent, RenderableProps } from 'preact';
|
|
2
3
|
import { SerializedStyles } from '@emotion/react';
|
|
3
4
|
import { Theme } from './providers/theme';
|
|
5
|
+
import { IconProps } from './components/Atoms/Icon';
|
|
6
|
+
import type { UrlManager } from '@searchspring/snap-url-manager';
|
|
4
7
|
export interface ComponentProps extends RenderableProps<any> {
|
|
5
8
|
className?: string;
|
|
6
9
|
disableStyles?: boolean;
|
|
7
10
|
style?: string | Record<string, any>;
|
|
8
11
|
theme?: Theme;
|
|
9
12
|
}
|
|
13
|
+
export type ListOption = {
|
|
14
|
+
value: string | number;
|
|
15
|
+
label?: string;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
available?: boolean;
|
|
18
|
+
default?: boolean;
|
|
19
|
+
icon?: string | Partial<IconProps>;
|
|
20
|
+
url?: UrlManager;
|
|
21
|
+
};
|
|
22
|
+
export type SwatchOption = ListOption & {
|
|
23
|
+
backgroundImageUrl?: string;
|
|
24
|
+
background?: string;
|
|
25
|
+
};
|
|
26
|
+
export type ComponentMap = {
|
|
27
|
+
[key: string]: (args?: any) => FunctionalComponent<RenderableProps<any>> | Promise<(args?: any) => React.ReactElement>;
|
|
28
|
+
};
|
|
10
29
|
export declare enum Layout {
|
|
11
30
|
GRID = "grid",
|
|
12
31
|
LIST = "list"
|
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,cAAe,SAAQ,eAAe,CAAC,GAAG,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC;CACd;AAED,MAAM,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,UAAU,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,mBAAmB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC;CACvH,CAAC;AAEF,oBAAY,MAAM;IACjB,IAAI,SAAS;IACb,IAAI,SAAS;CACb;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AAGnD,oBAAY,SAAS;IACpB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,aAAa,kBAAkB;CAC/B;AAGD,oBAAY,YAAY;IACvB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,SAAS,cAAc;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultBadgeComponentMap.d.ts","sourceRoot":"","sources":["../../../src/utilities/defaultBadgeComponentMap.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,wBAAwB,EAAE,YAKtC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BadgeText } from '../components/Atoms/BadgeText';
|
|
2
|
+
import { BadgePill } from '../components/Atoms/BadgePill';
|
|
3
|
+
import { BadgeRectangle } from '../components/Atoms/BadgeRectangle';
|
|
4
|
+
import { BadgeImage } from '../components/Atoms/BadgeImage';
|
|
5
|
+
export const defaultBadgeComponentMap = {
|
|
6
|
+
BadgeText: () => BadgeText,
|
|
7
|
+
BadgePill: () => BadgePill,
|
|
8
|
+
BadgeRectangle: () => BadgeRectangle,
|
|
9
|
+
BadgeImage: () => BadgeImage,
|
|
10
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapify.d.ts","sourceRoot":"","sources":["../../../src/utilities/snapify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"snapify.d.ts","sourceRoot":"","sources":["../../../src/utilities/snapify.ts"],"names":[],"mappings":"AAGA,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;AAqB1I,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,3 +1,4 @@
|
|
|
1
|
+
import { configure as configureMobx } from 'mobx';
|
|
1
2
|
import { SearchController, AutocompleteController, RecommendationController } from '@searchspring/snap-controller';
|
|
2
3
|
import { Client } from '@searchspring/snap-client';
|
|
3
4
|
import { SearchStore, AutocompleteStore, RecommendationStore } from '@searchspring/snap-store-mobx';
|
|
@@ -6,6 +7,8 @@ import { EventManager } from '@searchspring/snap-event-manager';
|
|
|
6
7
|
import { Profiler } from '@searchspring/snap-profiler';
|
|
7
8
|
import { Logger } from '@searchspring/snap-logger';
|
|
8
9
|
import { Tracker } from '@searchspring/snap-tracker';
|
|
10
|
+
// configure MobX
|
|
11
|
+
configureMobx({ useProxies: 'never', isolateGlobalState: true, enforceActions: 'never' });
|
|
9
12
|
const controllers = {};
|
|
10
13
|
const client = {
|
|
11
14
|
globals: { siteId: '8uyt2m' },
|