@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.
Files changed (178) hide show
  1. package/dist/cjs/components/Atoms/BadgeImage/BadgeImage.d.ts +11 -0
  2. package/dist/cjs/components/Atoms/BadgeImage/BadgeImage.d.ts.map +1 -0
  3. package/dist/cjs/components/Atoms/BadgeImage/BadgeImage.js +46 -0
  4. package/dist/cjs/components/Atoms/BadgeImage/index.d.ts +2 -0
  5. package/dist/cjs/components/Atoms/BadgeImage/index.d.ts.map +1 -0
  6. package/dist/cjs/components/Atoms/BadgeImage/index.js +17 -0
  7. package/dist/cjs/components/Atoms/BadgePill/BadgePill.d.ts +12 -0
  8. package/dist/cjs/components/Atoms/BadgePill/BadgePill.d.ts.map +1 -0
  9. package/dist/cjs/components/Atoms/BadgePill/BadgePill.js +57 -0
  10. package/dist/cjs/components/Atoms/BadgePill/index.d.ts +2 -0
  11. package/dist/cjs/components/Atoms/BadgePill/index.d.ts.map +1 -0
  12. package/dist/cjs/components/Atoms/BadgePill/index.js +17 -0
  13. package/dist/cjs/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts +12 -0
  14. package/dist/cjs/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts.map +1 -0
  15. package/dist/cjs/components/Atoms/BadgeRectangle/BadgeRectangle.js +56 -0
  16. package/dist/cjs/components/Atoms/BadgeRectangle/index.d.ts +2 -0
  17. package/dist/cjs/components/Atoms/BadgeRectangle/index.d.ts.map +1 -0
  18. package/dist/cjs/components/Atoms/BadgeRectangle/index.js +17 -0
  19. package/dist/cjs/components/Atoms/BadgeText/BadgeText.d.ts +11 -0
  20. package/dist/cjs/components/Atoms/BadgeText/BadgeText.d.ts.map +1 -0
  21. package/dist/cjs/components/Atoms/BadgeText/BadgeText.js +55 -0
  22. package/dist/cjs/components/Atoms/BadgeText/index.d.ts +2 -0
  23. package/dist/cjs/components/Atoms/BadgeText/index.d.ts.map +1 -0
  24. package/dist/cjs/components/Atoms/BadgeText/index.js +17 -0
  25. package/dist/cjs/components/Molecules/CalloutBadge/CalloutBadge.d.ts +13 -0
  26. package/dist/cjs/components/Molecules/CalloutBadge/CalloutBadge.d.ts.map +1 -0
  27. package/dist/cjs/components/Molecules/CalloutBadge/CalloutBadge.js +63 -0
  28. package/dist/cjs/components/Molecules/CalloutBadge/index.d.ts +2 -0
  29. package/dist/cjs/components/Molecules/CalloutBadge/index.d.ts.map +1 -0
  30. package/dist/cjs/components/Molecules/CalloutBadge/index.js +17 -0
  31. package/dist/cjs/components/Molecules/Grid/Grid.d.ts +20 -0
  32. package/dist/cjs/components/Molecules/Grid/Grid.d.ts.map +1 -0
  33. package/dist/cjs/components/Molecules/Grid/Grid.js +210 -0
  34. package/dist/cjs/components/Molecules/Grid/index.d.ts +2 -0
  35. package/dist/cjs/components/Molecules/Grid/index.d.ts.map +1 -0
  36. package/dist/cjs/components/{Atoms/Badge → Molecules/Grid}/index.js +1 -1
  37. package/dist/cjs/components/Molecules/List/List.d.ts +18 -0
  38. package/dist/cjs/components/Molecules/List/List.d.ts.map +1 -0
  39. package/dist/cjs/components/Molecules/List/List.js +158 -0
  40. package/dist/cjs/components/Molecules/List/index.d.ts +2 -0
  41. package/dist/cjs/components/Molecules/List/index.d.ts.map +1 -0
  42. package/dist/cjs/components/Molecules/List/index.js +17 -0
  43. package/dist/cjs/components/Molecules/OverlayBadge/OverlayBadge.d.ts +17 -0
  44. package/dist/cjs/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -0
  45. package/dist/cjs/components/Molecules/OverlayBadge/OverlayBadge.js +118 -0
  46. package/dist/cjs/components/Molecules/OverlayBadge/index.d.ts +2 -0
  47. package/dist/cjs/components/Molecules/OverlayBadge/index.d.ts.map +1 -0
  48. package/dist/cjs/components/Molecules/OverlayBadge/index.js +17 -0
  49. package/dist/cjs/components/Molecules/Result/Result.d.ts.map +1 -1
  50. package/dist/cjs/components/Molecules/Result/Result.js +19 -9
  51. package/dist/cjs/components/Molecules/Swatches/Swatches.d.ts +19 -0
  52. package/dist/cjs/components/Molecules/Swatches/Swatches.d.ts.map +1 -0
  53. package/dist/cjs/components/Molecules/Swatches/Swatches.js +168 -0
  54. package/dist/cjs/components/Molecules/Swatches/index.d.ts +2 -0
  55. package/dist/cjs/components/Molecules/Swatches/index.d.ts.map +1 -0
  56. package/dist/cjs/components/Molecules/Swatches/index.js +17 -0
  57. package/dist/cjs/components/Molecules/VariantSelection/VariantSelection.d.ts +9 -0
  58. package/dist/cjs/components/Molecules/VariantSelection/VariantSelection.d.ts.map +1 -0
  59. package/dist/cjs/components/Molecules/VariantSelection/VariantSelection.js +146 -0
  60. package/dist/cjs/components/Molecules/VariantSelection/index.d.ts +2 -0
  61. package/dist/cjs/components/Molecules/VariantSelection/index.d.ts.map +1 -0
  62. package/dist/cjs/components/Molecules/VariantSelection/index.js +17 -0
  63. package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
  64. package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.js +0 -3
  65. package/dist/cjs/hooks/index.d.ts +1 -0
  66. package/dist/cjs/hooks/index.d.ts.map +1 -1
  67. package/dist/cjs/hooks/index.js +1 -0
  68. package/dist/cjs/hooks/useComponent.d.ts +4 -0
  69. package/dist/cjs/hooks/useComponent.d.ts.map +1 -0
  70. package/dist/cjs/hooks/useComponent.js +23 -0
  71. package/dist/cjs/index.d.ts +11 -2
  72. package/dist/cjs/index.d.ts.map +1 -1
  73. package/dist/cjs/index.js +11 -2
  74. package/dist/cjs/types.d.ts +20 -1
  75. package/dist/cjs/types.d.ts.map +1 -1
  76. package/dist/cjs/utilities/defaultBadgeComponentMap.d.ts +3 -0
  77. package/dist/cjs/utilities/defaultBadgeComponentMap.d.ts.map +1 -0
  78. package/dist/cjs/utilities/defaultBadgeComponentMap.js +13 -0
  79. package/dist/cjs/utilities/index.d.ts +1 -0
  80. package/dist/cjs/utilities/index.d.ts.map +1 -1
  81. package/dist/cjs/utilities/index.js +1 -0
  82. package/dist/cjs/utilities/snapify.d.ts.map +1 -1
  83. package/dist/cjs/utilities/snapify.js +3 -0
  84. package/dist/esm/components/Atoms/BadgeImage/BadgeImage.d.ts +11 -0
  85. package/dist/esm/components/Atoms/BadgeImage/BadgeImage.d.ts.map +1 -0
  86. package/dist/esm/components/Atoms/BadgeImage/BadgeImage.js +35 -0
  87. package/dist/esm/components/Atoms/BadgeImage/index.d.ts +2 -0
  88. package/dist/esm/components/Atoms/BadgeImage/index.d.ts.map +1 -0
  89. package/dist/esm/components/Atoms/BadgeImage/index.js +1 -0
  90. package/dist/esm/components/Atoms/BadgePill/BadgePill.d.ts +12 -0
  91. package/dist/esm/components/Atoms/BadgePill/BadgePill.d.ts.map +1 -0
  92. package/dist/esm/components/Atoms/BadgePill/BadgePill.js +46 -0
  93. package/dist/esm/components/Atoms/BadgePill/index.d.ts +2 -0
  94. package/dist/esm/components/Atoms/BadgePill/index.d.ts.map +1 -0
  95. package/dist/esm/components/Atoms/BadgePill/index.js +1 -0
  96. package/dist/esm/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts +12 -0
  97. package/dist/esm/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts.map +1 -0
  98. package/dist/esm/components/Atoms/BadgeRectangle/BadgeRectangle.js +45 -0
  99. package/dist/esm/components/Atoms/BadgeRectangle/index.d.ts +2 -0
  100. package/dist/esm/components/Atoms/BadgeRectangle/index.d.ts.map +1 -0
  101. package/dist/esm/components/Atoms/BadgeRectangle/index.js +1 -0
  102. package/dist/esm/components/Atoms/BadgeText/BadgeText.d.ts +11 -0
  103. package/dist/esm/components/Atoms/BadgeText/BadgeText.d.ts.map +1 -0
  104. package/dist/esm/components/Atoms/BadgeText/BadgeText.js +43 -0
  105. package/dist/esm/components/Atoms/BadgeText/index.d.ts +2 -0
  106. package/dist/esm/components/Atoms/BadgeText/index.d.ts.map +1 -0
  107. package/dist/esm/components/Atoms/BadgeText/index.js +1 -0
  108. package/dist/esm/components/Molecules/CalloutBadge/CalloutBadge.d.ts +13 -0
  109. package/dist/esm/components/Molecules/CalloutBadge/CalloutBadge.d.ts.map +1 -0
  110. package/dist/esm/components/Molecules/CalloutBadge/CalloutBadge.js +49 -0
  111. package/dist/esm/components/Molecules/CalloutBadge/index.d.ts +2 -0
  112. package/dist/esm/components/Molecules/CalloutBadge/index.d.ts.map +1 -0
  113. package/dist/esm/components/Molecules/CalloutBadge/index.js +1 -0
  114. package/dist/esm/components/Molecules/Grid/Grid.d.ts +20 -0
  115. package/dist/esm/components/Molecules/Grid/Grid.d.ts.map +1 -0
  116. package/dist/esm/components/Molecules/Grid/Grid.js +189 -0
  117. package/dist/esm/components/Molecules/Grid/index.d.ts +2 -0
  118. package/dist/esm/components/Molecules/Grid/index.d.ts.map +1 -0
  119. package/dist/esm/components/Molecules/Grid/index.js +1 -0
  120. package/dist/esm/components/Molecules/List/List.d.ts +18 -0
  121. package/dist/esm/components/Molecules/List/List.d.ts.map +1 -0
  122. package/dist/esm/components/Molecules/List/List.js +140 -0
  123. package/dist/esm/components/Molecules/List/index.d.ts +2 -0
  124. package/dist/esm/components/Molecules/List/index.d.ts.map +1 -0
  125. package/dist/esm/components/Molecules/List/index.js +1 -0
  126. package/dist/esm/components/Molecules/OverlayBadge/OverlayBadge.d.ts +17 -0
  127. package/dist/esm/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -0
  128. package/dist/esm/components/Molecules/OverlayBadge/OverlayBadge.js +111 -0
  129. package/dist/esm/components/Molecules/OverlayBadge/index.d.ts +2 -0
  130. package/dist/esm/components/Molecules/OverlayBadge/index.d.ts.map +1 -0
  131. package/dist/esm/components/Molecules/OverlayBadge/index.js +1 -0
  132. package/dist/esm/components/Molecules/Result/Result.d.ts.map +1 -1
  133. package/dist/esm/components/Molecules/Result/Result.js +23 -9
  134. package/dist/esm/components/Molecules/Swatches/Swatches.d.ts +19 -0
  135. package/dist/esm/components/Molecules/Swatches/Swatches.d.ts.map +1 -0
  136. package/dist/esm/components/Molecules/Swatches/Swatches.js +179 -0
  137. package/dist/esm/components/Molecules/Swatches/index.d.ts +2 -0
  138. package/dist/esm/components/Molecules/Swatches/index.d.ts.map +1 -0
  139. package/dist/esm/components/Molecules/Swatches/index.js +1 -0
  140. package/dist/esm/components/Molecules/VariantSelection/VariantSelection.d.ts +9 -0
  141. package/dist/esm/components/Molecules/VariantSelection/VariantSelection.d.ts.map +1 -0
  142. package/dist/esm/components/Molecules/VariantSelection/VariantSelection.js +167 -0
  143. package/dist/esm/components/Molecules/VariantSelection/index.d.ts +2 -0
  144. package/dist/esm/components/Molecules/VariantSelection/index.d.ts.map +1 -0
  145. package/dist/esm/components/Molecules/VariantSelection/index.js +1 -0
  146. package/dist/esm/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
  147. package/dist/esm/components/Organisms/Autocomplete/Autocomplete.js +0 -3
  148. package/dist/esm/hooks/index.d.ts +1 -0
  149. package/dist/esm/hooks/index.d.ts.map +1 -1
  150. package/dist/esm/hooks/index.js +1 -0
  151. package/dist/esm/hooks/useComponent.d.ts +4 -0
  152. package/dist/esm/hooks/useComponent.d.ts.map +1 -0
  153. package/dist/esm/hooks/useComponent.js +19 -0
  154. package/dist/esm/index.d.ts +11 -2
  155. package/dist/esm/index.d.ts.map +1 -1
  156. package/dist/esm/index.js +11 -2
  157. package/dist/esm/types.d.ts +20 -1
  158. package/dist/esm/types.d.ts.map +1 -1
  159. package/dist/esm/utilities/defaultBadgeComponentMap.d.ts +3 -0
  160. package/dist/esm/utilities/defaultBadgeComponentMap.d.ts.map +1 -0
  161. package/dist/esm/utilities/defaultBadgeComponentMap.js +10 -0
  162. package/dist/esm/utilities/index.d.ts +1 -0
  163. package/dist/esm/utilities/index.d.ts.map +1 -1
  164. package/dist/esm/utilities/index.js +1 -0
  165. package/dist/esm/utilities/snapify.d.ts.map +1 -1
  166. package/dist/esm/utilities/snapify.js +3 -0
  167. package/package.json +12 -11
  168. package/dist/cjs/components/Atoms/Badge/Badge.d.ts +0 -16
  169. package/dist/cjs/components/Atoms/Badge/Badge.d.ts.map +0 -1
  170. package/dist/cjs/components/Atoms/Badge/Badge.js +0 -47
  171. package/dist/cjs/components/Atoms/Badge/index.d.ts +0 -2
  172. package/dist/cjs/components/Atoms/Badge/index.d.ts.map +0 -1
  173. package/dist/esm/components/Atoms/Badge/Badge.d.ts +0 -16
  174. package/dist/esm/components/Atoms/Badge/Badge.d.ts.map +0 -1
  175. package/dist/esm/components/Atoms/Badge/Badge.js +0 -36
  176. package/dist/esm/components/Atoms/Badge/index.d.ts +0 -2
  177. package/dist/esm/components/Atoms/Badge/index.d.ts.map +0 -1
  178. 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,2 @@
1
+ export * from './Swatches';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export * from './VariantSelection';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,WAodpE,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
+ {"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"}
@@ -210,9 +210,6 @@ export const Autocomplete = observer((properties) => {
210
210
  columns: 3,
211
211
  onClick: facetClickEvent,
212
212
  },
213
- result: {
214
- hideBadge: true,
215
- },
216
213
  },
217
214
  };
218
215
  const displaySettings = useDisplaySettings(breakpoints) || {};
@@ -5,4 +5,5 @@ export * from './useIntersection';
5
5
  export * from './useDisplaySettings';
6
6
  export * from './useA11y';
7
7
  export * from './useDeepCompareEffect';
8
+ export * from './useComponent';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -5,3 +5,4 @@ export * from './useIntersection';
5
5
  export * from './useDisplaySettings';
6
6
  export * from './useA11y';
7
7
  export * from './useDeepCompareEffect';
8
+ export * from './useComponent';
@@ -0,0 +1,4 @@
1
+ import type { FunctionalComponent } from 'preact';
2
+ import { ComponentMap } from '../types';
3
+ export declare const useComponent: (map: ComponentMap, name: string) => undefined | FunctionalComponent<any>;
4
+ //# sourceMappingURL=useComponent.d.ts.map
@@ -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
+ };
@@ -1,4 +1,7 @@
1
- export * from './components/Atoms/Badge';
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/FacetSlider';
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';
@@ -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;AAC5C,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AAGpE,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,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAG/C,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,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/Badge';
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/FacetSlider';
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';
@@ -1,12 +1,31 @@
1
- import { RenderableProps } from 'preact';
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"
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,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,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"}
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,3 @@
1
+ import { ComponentMap } from '../types';
2
+ export declare const defaultBadgeComponentMap: ComponentMap;
3
+ //# sourceMappingURL=defaultBadgeComponentMap.d.ts.map
@@ -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
+ };
@@ -4,4 +4,5 @@ export * from './componentArgs';
4
4
  export * from './sprintf';
5
5
  export * from './LightenDarkenColor';
6
6
  export * from './shiftColor';
7
+ export * from './defaultBadgeComponentMap';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -4,3 +4,4 @@ export * from './componentArgs';
4
4
  export * from './sprintf';
5
5
  export * from './LightenDarkenColor';
6
6
  export * from './shiftColor';
7
+ export * from './defaultBadgeComponentMap';
@@ -1 +1 @@
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;AAkB1I,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":"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' },