@faststore/components 3.98.0-dev.3 → 3.98.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 (171) hide show
  1. package/dist/cjs/atoms/Link/Link.d.ts +1 -1
  2. package/dist/cjs/atoms/Link/Link.d.ts.map +1 -1
  3. package/dist/cjs/atoms/Link/Link.js.map +1 -1
  4. package/dist/cjs/atoms/List/List.d.ts.map +1 -1
  5. package/dist/cjs/atoms/List/List.js.map +1 -1
  6. package/dist/cjs/hooks/index.d.ts +7 -3
  7. package/dist/cjs/hooks/index.d.ts.map +1 -1
  8. package/dist/cjs/hooks/index.js +12 -6
  9. package/dist/cjs/hooks/index.js.map +1 -1
  10. package/dist/cjs/hooks/useCSVParser.d.ts +43 -0
  11. package/dist/cjs/hooks/useCSVParser.d.ts.map +1 -0
  12. package/dist/cjs/hooks/useCSVParser.js +264 -0
  13. package/dist/cjs/hooks/useCSVParser.js.map +1 -0
  14. package/dist/cjs/hooks/useFileUpload.d.ts +26 -0
  15. package/dist/cjs/hooks/useFileUpload.d.ts.map +1 -0
  16. package/dist/cjs/hooks/useFileUpload.js +68 -0
  17. package/dist/cjs/hooks/useFileUpload.js.map +1 -0
  18. package/dist/cjs/index.d.ts +58 -50
  19. package/dist/cjs/index.d.ts.map +1 -1
  20. package/dist/cjs/index.js +47 -32
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/molecules/Accordion/AccordionItem.d.ts.map +1 -1
  23. package/dist/cjs/molecules/Accordion/AccordionItem.js.map +1 -1
  24. package/dist/cjs/molecules/Dropzone/Dropzone.d.ts +87 -0
  25. package/dist/cjs/molecules/Dropzone/Dropzone.d.ts.map +1 -0
  26. package/dist/cjs/molecules/Dropzone/Dropzone.js +85 -0
  27. package/dist/cjs/molecules/Dropzone/Dropzone.js.map +1 -0
  28. package/dist/cjs/molecules/Dropzone/index.d.ts +3 -0
  29. package/dist/cjs/molecules/Dropzone/index.d.ts.map +1 -0
  30. package/dist/cjs/molecules/Dropzone/index.js +9 -0
  31. package/dist/cjs/molecules/Dropzone/index.js.map +1 -0
  32. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.d.ts +113 -0
  33. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.d.ts.map +1 -0
  34. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.js +169 -0
  35. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.js.map +1 -0
  36. package/dist/cjs/molecules/FileUploadCard/index.d.ts +3 -0
  37. package/dist/cjs/molecules/FileUploadCard/index.d.ts.map +1 -0
  38. package/dist/cjs/molecules/FileUploadCard/index.js +9 -0
  39. package/dist/cjs/molecules/FileUploadCard/index.js.map +1 -0
  40. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.d.ts +93 -0
  41. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.d.ts.map +1 -0
  42. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.js +77 -0
  43. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.js.map +1 -0
  44. package/dist/cjs/molecules/FileUploadStatus/index.d.ts +3 -0
  45. package/dist/cjs/molecules/FileUploadStatus/index.d.ts.map +1 -0
  46. package/dist/cjs/molecules/FileUploadStatus/index.js +11 -0
  47. package/dist/cjs/molecules/FileUploadStatus/index.js.map +1 -0
  48. package/dist/cjs/molecules/SearchInputField/SearchInputField.d.ts +23 -1
  49. package/dist/cjs/molecules/SearchInputField/SearchInputField.d.ts.map +1 -1
  50. package/dist/cjs/molecules/SearchInputField/SearchInputField.js +9 -4
  51. package/dist/cjs/molecules/SearchInputField/SearchInputField.js.map +1 -1
  52. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts +24 -0
  53. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts.map +1 -0
  54. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.js +14 -0
  55. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.js.map +1 -0
  56. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts +16 -0
  57. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts.map +1 -0
  58. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js +37 -0
  59. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js.map +1 -0
  60. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts +9 -0
  61. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts.map +1 -0
  62. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js +24 -0
  63. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js.map +1 -0
  64. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts +35 -0
  65. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts.map +1 -0
  66. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js +91 -0
  67. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js.map +1 -0
  68. package/dist/cjs/organisms/QuickOrderDrawer/index.d.ts +11 -0
  69. package/dist/cjs/organisms/QuickOrderDrawer/index.d.ts.map +1 -0
  70. package/dist/cjs/organisms/QuickOrderDrawer/index.js +18 -0
  71. package/dist/cjs/organisms/QuickOrderDrawer/index.js.map +1 -0
  72. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts +61 -0
  73. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts.map +1 -0
  74. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js +86 -0
  75. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js.map +1 -0
  76. package/dist/esm/atoms/Link/Link.d.ts +1 -1
  77. package/dist/esm/atoms/Link/Link.d.ts.map +1 -1
  78. package/dist/esm/atoms/Link/Link.js.map +1 -1
  79. package/dist/esm/atoms/List/List.d.ts.map +1 -1
  80. package/dist/esm/atoms/List/List.js.map +1 -1
  81. package/dist/esm/hooks/index.d.ts +7 -3
  82. package/dist/esm/hooks/index.d.ts.map +1 -1
  83. package/dist/esm/hooks/index.js +6 -3
  84. package/dist/esm/hooks/index.js.map +1 -1
  85. package/dist/esm/hooks/useCSVParser.d.ts +43 -0
  86. package/dist/esm/hooks/useCSVParser.d.ts.map +1 -0
  87. package/dist/esm/hooks/useCSVParser.js +259 -0
  88. package/dist/esm/hooks/useCSVParser.js.map +1 -0
  89. package/dist/esm/hooks/useFileUpload.d.ts +26 -0
  90. package/dist/esm/hooks/useFileUpload.d.ts.map +1 -0
  91. package/dist/esm/hooks/useFileUpload.js +64 -0
  92. package/dist/esm/hooks/useFileUpload.js.map +1 -0
  93. package/dist/esm/index.d.ts +58 -50
  94. package/dist/esm/index.d.ts.map +1 -1
  95. package/dist/esm/index.js +24 -20
  96. package/dist/esm/index.js.map +1 -1
  97. package/dist/esm/molecules/Accordion/AccordionItem.d.ts.map +1 -1
  98. package/dist/esm/molecules/Accordion/AccordionItem.js.map +1 -1
  99. package/dist/esm/molecules/Dropzone/Dropzone.d.ts +87 -0
  100. package/dist/esm/molecules/Dropzone/Dropzone.d.ts.map +1 -0
  101. package/dist/esm/molecules/Dropzone/Dropzone.js +82 -0
  102. package/dist/esm/molecules/Dropzone/Dropzone.js.map +1 -0
  103. package/dist/esm/molecules/Dropzone/index.d.ts +3 -0
  104. package/dist/esm/molecules/Dropzone/index.d.ts.map +1 -0
  105. package/dist/esm/molecules/Dropzone/index.js +2 -0
  106. package/dist/esm/molecules/Dropzone/index.js.map +1 -0
  107. package/dist/esm/molecules/FileUploadCard/FileUploadCard.d.ts +113 -0
  108. package/dist/esm/molecules/FileUploadCard/FileUploadCard.d.ts.map +1 -0
  109. package/dist/esm/molecules/FileUploadCard/FileUploadCard.js +166 -0
  110. package/dist/esm/molecules/FileUploadCard/FileUploadCard.js.map +1 -0
  111. package/dist/esm/molecules/FileUploadCard/index.d.ts +3 -0
  112. package/dist/esm/molecules/FileUploadCard/index.d.ts.map +1 -0
  113. package/dist/esm/molecules/FileUploadCard/index.js +2 -0
  114. package/dist/esm/molecules/FileUploadCard/index.js.map +1 -0
  115. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.d.ts +93 -0
  116. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.d.ts.map +1 -0
  117. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.js +73 -0
  118. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.js.map +1 -0
  119. package/dist/esm/molecules/FileUploadStatus/index.d.ts +3 -0
  120. package/dist/esm/molecules/FileUploadStatus/index.d.ts.map +1 -0
  121. package/dist/esm/molecules/FileUploadStatus/index.js +2 -0
  122. package/dist/esm/molecules/FileUploadStatus/index.js.map +1 -0
  123. package/dist/esm/molecules/SearchInputField/SearchInputField.d.ts +23 -1
  124. package/dist/esm/molecules/SearchInputField/SearchInputField.d.ts.map +1 -1
  125. package/dist/esm/molecules/SearchInputField/SearchInputField.js +9 -4
  126. package/dist/esm/molecules/SearchInputField/SearchInputField.js.map +1 -1
  127. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts +24 -0
  128. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts.map +1 -0
  129. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.js +11 -0
  130. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.js.map +1 -0
  131. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts +16 -0
  132. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts.map +1 -0
  133. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js +34 -0
  134. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js.map +1 -0
  135. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts +9 -0
  136. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts.map +1 -0
  137. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js +21 -0
  138. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js.map +1 -0
  139. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts +35 -0
  140. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts.map +1 -0
  141. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js +88 -0
  142. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js.map +1 -0
  143. package/dist/esm/organisms/QuickOrderDrawer/index.d.ts +11 -0
  144. package/dist/esm/organisms/QuickOrderDrawer/index.d.ts.map +1 -0
  145. package/dist/esm/organisms/QuickOrderDrawer/index.js +6 -0
  146. package/dist/esm/organisms/QuickOrderDrawer/index.js.map +1 -0
  147. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts +61 -0
  148. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts.map +1 -0
  149. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js +80 -0
  150. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js.map +1 -0
  151. package/package.json +5 -2
  152. package/src/atoms/Link/Link.tsx +4 -1
  153. package/src/atoms/List/List.tsx +18 -16
  154. package/src/hooks/index.ts +11 -3
  155. package/src/hooks/useCSVParser.ts +367 -0
  156. package/src/hooks/useFileUpload.ts +88 -0
  157. package/src/index.ts +97 -66
  158. package/src/molecules/Accordion/AccordionItem.tsx +4 -3
  159. package/src/molecules/Dropzone/Dropzone.tsx +248 -0
  160. package/src/molecules/Dropzone/index.ts +2 -0
  161. package/src/molecules/FileUploadCard/FileUploadCard.tsx +406 -0
  162. package/src/molecules/FileUploadCard/index.tsx +2 -0
  163. package/src/molecules/FileUploadStatus/FileUploadStatus.tsx +258 -0
  164. package/src/molecules/FileUploadStatus/index.tsx +6 -0
  165. package/src/molecules/SearchInputField/SearchInputField.tsx +72 -23
  166. package/src/organisms/QuickOrderDrawer/QuickOrderDrawer.tsx +58 -0
  167. package/src/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.tsx +72 -0
  168. package/src/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.tsx +43 -0
  169. package/src/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.tsx +323 -0
  170. package/src/organisms/QuickOrderDrawer/index.ts +19 -0
  171. package/src/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.tsx +205 -0
package/src/index.ts CHANGED
@@ -12,16 +12,14 @@ export { default as Icon } from './atoms/Icon'
12
12
  export type { IconProps } from './atoms/Icon'
13
13
  export { default as Input } from './atoms/Input'
14
14
  export type { InputProps } from './atoms/Input'
15
- export { default as Textarea } from './atoms/Textarea'
16
- export type { TextareaProps } from './atoms/Textarea'
17
15
  export { default as Label } from './atoms/Label'
18
16
  export type { LabelProps } from './atoms/Label'
19
17
  export { default as Link } from './atoms/Link'
20
- export type { LinkProps, LinkElementType } from './atoms/Link'
21
- export { default as Loader } from './atoms/Loader'
22
- export type { LoaderProps } from './atoms/Loader'
18
+ export type { LinkElementType, LinkProps } from './atoms/Link'
23
19
  export { default as List } from './atoms/List'
24
20
  export type { ListProps } from './atoms/List'
21
+ export { default as Loader } from './atoms/Loader'
22
+ export type { LoaderProps } from './atoms/Loader'
25
23
  export { default as Overlay } from './atoms/Overlay'
26
24
  export type { OverlayProps } from './atoms/Overlay'
27
25
  export { default as Price } from './atoms/Price'
@@ -30,45 +28,47 @@ export { default as Radio } from './atoms/Radio'
30
28
  export type { RadioProps } from './atoms/Radio'
31
29
  export { default as RichText } from './atoms/RichText'
32
30
  export type { RichTextProps } from './atoms/RichText'
33
- export { default as Skeleton } from './atoms/Skeleton'
34
- export type { SkeletonProps } from './atoms/Skeleton'
35
31
  export { default as Select } from './atoms/Select'
36
32
  export type { SelectProps } from './atoms/Select'
33
+ export { default as Skeleton } from './atoms/Skeleton'
34
+ export type { SkeletonProps } from './atoms/Skeleton'
37
35
  export { default as Slider } from './atoms/Slider'
38
36
  export type { SliderProps } from './atoms/Slider'
39
37
  export { default as SROnly } from './atoms/SROnly'
38
+ export { default as Textarea } from './atoms/Textarea'
39
+ export type { TextareaProps } from './atoms/Textarea'
40
40
 
41
41
  // Molecules
42
42
  export {
43
43
  default as Accordion,
44
- AccordionItem,
45
44
  AccordionButton,
45
+ AccordionItem,
46
46
  AccordionPanel,
47
47
  } from './molecules/Accordion'
48
48
  export type {
49
- AccordionProps,
50
- AccordionItemProps,
51
49
  AccordionButtonProps,
50
+ AccordionItemProps,
52
51
  AccordionPanelProps,
52
+ AccordionProps,
53
53
  } from './molecules/Accordion'
54
54
  export { default as Alert } from './molecules/Alert'
55
55
  export type { AlertProps } from './molecules/Alert'
56
- export { BreadcrumbPure, Breadcrumb } from './molecules/Breadcrumb'
56
+ export { Breadcrumb, BreadcrumbPure } from './molecules/Breadcrumb'
57
57
  export type {
58
- BreadcrumbPureProps,
59
58
  BreadcrumbProps,
59
+ BreadcrumbPureProps,
60
60
  } from './molecules/Breadcrumb'
61
61
  export { default as BuyButton } from './molecules/BuyButton'
62
62
 
63
63
  export {
64
64
  default as Carousel,
65
- CarouselItem,
66
65
  CarouselBullets,
66
+ CarouselItem,
67
67
  } from './molecules/Carousel'
68
68
  export type {
69
- CarouselProps,
70
- CarouselItemProps,
71
69
  CarouselBulletsProps,
70
+ CarouselItemProps,
71
+ CarouselProps,
72
72
  } from './molecules/Carousel'
73
73
 
74
74
  export { default as Card } from './molecules/Card'
@@ -80,14 +80,12 @@ export {
80
80
  CartItemSummary,
81
81
  } from './molecules/CartItem'
82
82
  export type {
83
- CartItemProps,
84
83
  CartItemImageProps,
84
+ CartItemProps,
85
85
  CartItemSummaryProps,
86
86
  } from './molecules/CartItem'
87
87
  export { default as CheckboxField } from './molecules/CheckboxField'
88
88
  export type { CheckboxFieldProps } from './molecules/CheckboxField'
89
- export { default as IconButton } from './molecules/IconButton'
90
- export type { IconButtonProps } from './molecules/IconButton'
91
89
  export { default as DiscountBadge } from './molecules/DiscountBadge'
92
90
  export type { DiscountBadgeProps } from './molecules/DiscountBadge'
93
91
  export {
@@ -97,39 +95,47 @@ export {
97
95
  DropdownMenu,
98
96
  } from './molecules/Dropdown'
99
97
  export type {
100
- DropdownProps,
101
98
  DropdownButtonProps,
102
99
  DropdownItemProps,
103
100
  DropdownMenuProps,
101
+ DropdownProps,
104
102
  } from './molecules/Dropdown'
103
+ export { default as FileUploadCard } from './molecules/FileUploadCard'
104
+ export type { FileUploadCardProps } from './molecules/FileUploadCard'
105
+ export {
106
+ default as FileUploadStatus,
107
+ FileUploadErrorType,
108
+ FileUploadState,
109
+ } from './molecules/FileUploadStatus'
110
+ export type { FileUploadStatusProps } from './molecules/FileUploadStatus'
105
111
  export { default as Gift, GiftContent, GiftImage } from './molecules/Gift'
106
112
  export type {
107
- GiftProps,
108
113
  GiftContentProps,
109
114
  GiftImageProps,
115
+ GiftProps,
110
116
  } from './molecules/Gift'
117
+ export { default as IconButton } from './molecules/IconButton'
118
+ export type { IconButtonProps } from './molecules/IconButton'
111
119
  export { default as InputField } from './molecules/InputField'
112
120
  export type { InputFieldProps } from './molecules/InputField'
113
- export { default as TextareaField } from './molecules/TextareaField'
114
- export type { TextareaFieldProps } from './molecules/TextareaField'
115
121
  export { default as LinkButton } from './molecules/LinkButton'
116
122
  export type { LinkButtonProps } from './molecules/LinkButton'
117
123
  export {
118
124
  default as Modal,
119
- ModalHeader,
120
125
  ModalBody,
121
126
  ModalFooter,
127
+ ModalHeader,
122
128
  } from './molecules/Modal'
123
- export type { ModalProps, ModalHeaderProps } from './molecules/Modal'
129
+ export type { ModalHeaderProps, ModalProps } from './molecules/Modal'
124
130
  export {
125
131
  default as NavbarLinks,
126
132
  NavbarLinksList,
127
133
  NavbarLinksListItem,
128
134
  } from './molecules/NavbarLinks'
129
135
  export type {
130
- NavbarLinksProps,
131
- NavbarLinksListProps,
132
136
  NavbarLinksListItemProps,
137
+ NavbarLinksListProps,
138
+ NavbarLinksProps,
133
139
  } from './molecules/NavbarLinks'
134
140
  export { default as OrderSummary } from './molecules/OrderSummary'
135
141
  export type { OrderSummaryProps } from './molecules/OrderSummary'
@@ -137,13 +143,13 @@ export { default as Popover } from './molecules/Popover'
137
143
  export type { PopoverProps } from './molecules/Popover'
138
144
  export {
139
145
  default as ProductCard,
140
- ProductCardImage,
141
146
  ProductCardContent,
147
+ ProductCardImage,
142
148
  } from './molecules/ProductCard'
143
149
  export type {
144
- ProductCardProps,
145
- ProductCardImageProps,
146
150
  ProductCardContentProps,
151
+ ProductCardImageProps,
152
+ ProductCardProps,
147
153
  } from './molecules/ProductCard'
148
154
  export { default as ProductPrice } from './molecules/ProductPrice'
149
155
  export type { ProductPriceProps } from './molecules/ProductPrice'
@@ -159,17 +165,16 @@ export { default as RatingField } from './molecules/RatingField'
159
165
  export type { RatingFieldProps } from './molecules/RatingField'
160
166
  export { default as RegionBar } from './molecules/RegionBar'
161
167
  export type { RegionBarProps } from './molecules/RegionBar'
168
+ export { default as TextareaField } from './molecules/TextareaField'
169
+ export type { TextareaFieldProps } from './molecules/TextareaField'
162
170
  export { default as Tooltip } from './molecules/Tooltip'
163
171
  export type { TooltipProps } from './molecules/Tooltip'
164
172
 
165
173
  export { default as SearchProvider } from './molecules/SearchProvider'
166
174
  export type { SearchProviderContextValue } from './molecules/SearchProvider'
167
175
 
168
- export { default as SearchInputField } from './molecules/SearchInputField'
169
- export type {
170
- SearchInputFieldProps,
171
- SearchInputFieldRef,
172
- } from './molecules/SearchInputField'
176
+ export { default as QuantitySelector } from './molecules/QuantitySelector'
177
+ export type { QuantitySelectorProps } from './molecules/QuantitySelector'
173
178
  export {
174
179
  default as SearchAutoComplete,
175
180
  SearchAutoCompleteTerm,
@@ -190,24 +195,29 @@ export type {
190
195
  SearchHistoryProps,
191
196
  SearchHistoryTermProps,
192
197
  } from './molecules/SearchHistory'
198
+ export { default as SearchInputField } from './molecules/SearchInputField'
199
+ export type {
200
+ SearchInputFieldProps,
201
+ SearchInputFieldRef,
202
+ } from './molecules/SearchInputField'
193
203
  export {
194
- default as SearchProducts,
195
204
  SearchProductItem,
196
- SearchProductItemImage,
197
205
  SearchProductItemContent,
206
+ SearchProductItemImage,
207
+ default as SearchProducts,
198
208
  } from './molecules/SearchProducts'
199
209
  export type {
200
- SearchProductsProps,
201
- SearchProductItemProps,
202
- SearchProductItemImageProps,
203
210
  SearchProductItemContentProps,
211
+ SearchProductItemImageProps,
212
+ SearchProductItemProps,
213
+ SearchProductsProps,
204
214
  } from './molecules/SearchProducts'
205
215
  export { default as SearchTop, SearchTopTerm } from './molecules/SearchTop'
206
216
  export type { SearchTopProps, SearchTopTermProps } from './molecules/SearchTop'
207
217
  export { default as SelectField } from './molecules/SelectField'
208
218
  export type { SelectFieldProps } from './molecules/SelectField'
209
219
  export { default as SkuSelector } from './molecules/SkuSelector'
210
- export type { SkuSelectorProps, SkuOption } from './molecules/SkuSelector'
220
+ export type { SkuOption, SkuSelectorProps } from './molecules/SkuSelector'
211
221
  export {
212
222
  Table,
213
223
  TableBody,
@@ -217,11 +227,11 @@ export {
217
227
  TableRow,
218
228
  } from './molecules/Table'
219
229
  export type {
220
- TableProps,
221
230
  TableBodyProps,
222
231
  TableCellProps,
223
232
  TableFooterProps,
224
233
  TableHeadProps,
234
+ TableProps,
225
235
  TableRowProps,
226
236
  } from './molecules/Table'
227
237
  export { default as Tag } from './molecules/Tag'
@@ -231,8 +241,6 @@ export { default as Toggle } from './molecules/Toggle'
231
241
  export type { ToggleProps } from './molecules/Toggle'
232
242
  export { default as ToggleField } from './molecules/ToggleField'
233
243
  export type { ToggleFieldProps } from './molecules/ToggleField'
234
- export { default as QuantitySelector } from './molecules/QuantitySelector'
235
- export type { QuantitySelectorProps } from './molecules/QuantitySelector'
236
244
 
237
245
  // Organisms
238
246
  export {
@@ -240,14 +248,14 @@ export {
240
248
  BannerTextContent,
241
249
  } from './organisms/BannerText'
242
250
  export type {
243
- BannerTextProps,
244
251
  BannerTextContentProps,
252
+ BannerTextProps,
245
253
  } from './organisms/BannerText'
246
254
 
247
255
  export {
248
256
  default as CartSidebar,
249
- CartSidebarList,
250
257
  CartSidebarFooter,
258
+ CartSidebarList,
251
259
  } from './organisms/CartSidebar'
252
260
  export type { CartSidebarProps } from './organisms/CartSidebar'
253
261
 
@@ -270,11 +278,11 @@ export type {
270
278
  FilterSliderProps,
271
279
  } from './organisms/Filter'
272
280
 
273
- export { default as Hero, HeroImage, HeroHeader } from './organisms/Hero'
281
+ export { default as Hero, HeroHeader, HeroImage } from './organisms/Hero'
274
282
  export type {
275
- HeroProps,
276
- HeroImageProps,
277
283
  HeroHeaderProps,
284
+ HeroImageProps,
285
+ HeroProps,
278
286
  } from './organisms/Hero'
279
287
 
280
288
  export {
@@ -291,28 +299,28 @@ export type {
291
299
 
292
300
  export {
293
301
  default as Navbar,
302
+ NavbarButtons,
294
303
  NavbarHeader,
295
304
  NavbarRow,
296
- NavbarButtons,
297
305
  } from './organisms/Navbar'
298
306
  export type {
299
- NavbarProps,
307
+ NavbarButtonsProps,
300
308
  NavbarHeaderProps,
309
+ NavbarProps,
301
310
  NavbarRowProps,
302
- NavbarButtonsProps,
303
311
  } from './organisms/Navbar'
304
312
 
305
313
  export {
306
314
  default as NavbarSlider,
307
- NavbarSliderHeader,
308
315
  NavbarSliderContent,
309
316
  NavbarSliderFooter,
317
+ NavbarSliderHeader,
310
318
  } from './organisms/NavbarSlider'
311
319
  export type {
312
- NavbarSliderProps,
313
- NavbarSliderHeaderProps,
314
320
  NavbarSliderContentProps,
315
321
  NavbarSliderFooterProps,
322
+ NavbarSliderHeaderProps,
323
+ NavbarSliderProps,
316
324
  } from './organisms/NavbarSlider'
317
325
 
318
326
  export {
@@ -323,11 +331,11 @@ export {
323
331
  NewsletterHeader,
324
332
  } from './organisms/Newsletter'
325
333
  export type {
326
- NewsletterProps,
327
334
  NewsletterAddendumProps,
328
335
  NewsletterContentProps,
329
336
  NewsletterFormProps,
330
337
  NewsletterHeaderProps,
338
+ NewsletterProps,
331
339
  } from './organisms/Newsletter'
332
340
 
333
341
  export { default as OutOfStock } from './organisms/OutOfStock'
@@ -341,16 +349,16 @@ export type { PriceRangeProps } from './organisms/PriceRange'
341
349
 
342
350
  export {
343
351
  default as ProductComparison,
344
- ProductComparisonTrigger,
345
- ProductComparisonToolbar,
346
352
  ProductComparisonSidebar,
353
+ ProductComparisonToolbar,
354
+ ProductComparisonTrigger,
347
355
  } from './organisms/ProductComparison'
348
356
  export type {
349
357
  IProductComparison,
350
358
  ProductComparisonProps,
351
- ProductComparisonTriggerProps,
352
- ProductComparisonToolbarProps,
353
359
  ProductComparisonSidebarProps,
360
+ ProductComparisonToolbarProps,
361
+ ProductComparisonTriggerProps,
354
362
  } from './organisms/ProductComparison'
355
363
 
356
364
  export {
@@ -358,19 +366,19 @@ export {
358
366
  ProductGridItem,
359
367
  } from './organisms/ProductGrid'
360
368
  export type {
361
- ProductGridProps,
362
369
  ProductGridItemProps,
370
+ ProductGridProps,
363
371
  } from './organisms/ProductGrid'
364
372
 
365
373
  export {
366
374
  default as ProductShelf,
367
- ProductShelfItems,
368
375
  ProductShelfItem,
376
+ ProductShelfItems,
369
377
  } from './organisms/ProductShelf'
370
378
  export type {
371
- ProductShelfProps,
372
- ProductShelfItemsProps,
373
379
  ProductShelfItemProps,
380
+ ProductShelfItemsProps,
381
+ ProductShelfProps,
374
382
  } from './organisms/ProductShelf'
375
383
 
376
384
  export { default as RegionModal } from './organisms/RegionModal'
@@ -384,17 +392,40 @@ export type { ShippingSimulationProps } from './organisms/ShippingSimulation'
384
392
 
385
393
  export { default as SlideOver, SlideOverHeader } from './organisms/SlideOver'
386
394
  export type {
387
- SlideOverProps,
388
395
  SlideOverHeaderProps,
396
+ SlideOverProps,
389
397
  } from './organisms/SlideOver'
390
398
 
391
399
  export {
392
400
  default as SKUMatrix,
393
- SKUMatrixTrigger,
394
401
  SKUMatrixSidebar,
402
+ SKUMatrixTrigger,
395
403
  } from './organisms/SKUMatrix'
404
+
396
405
  export type {
397
406
  SKUMatrixProps,
398
- SKUMatrixTriggerProps,
399
407
  SKUMatrixSidebarProps,
408
+ SKUMatrixTriggerProps,
400
409
  } from './organisms/SKUMatrix'
410
+
411
+ export {
412
+ default as QuickOrderDrawer,
413
+ QuickOrderDrawerFooter,
414
+ QuickOrderDrawerHeader,
415
+ QuickOrderDrawerProducts,
416
+ useQuickOrderDrawer,
417
+ } from './organisms/QuickOrderDrawer'
418
+
419
+ export type {
420
+ AlertMessages,
421
+ Product,
422
+ QuickOrderDrawerFooterProps,
423
+ QuickOrderDrawerHeaderProps,
424
+ QuickOrderDrawerProductsProps,
425
+ QuickOrderDrawerProps,
426
+ QuickOrderDrawerProviderProps,
427
+ VariationProductColumn,
428
+ } from './organisms/QuickOrderDrawer'
429
+
430
+ export { default as Dropzone } from './molecules/Dropzone'
431
+ export type { DropzoneProps, DropzoneState } from './molecules/Dropzone'
@@ -40,9 +40,10 @@ type AccordionItemComponent = <C extends ElementType = 'div'>(
40
40
  props: AccordionItemProps<C>
41
41
  ) => ReactElement | null
42
42
 
43
- const AccordionItem = forwardRef(function AccordionItem<
44
- C extends ElementType = 'div',
45
- >(
43
+ const AccordionItem = forwardRef<
44
+ HTMLDivElement,
45
+ Omit<AccordionItemProps<'div'>, 'ref'>
46
+ >(function AccordionItem<C extends ElementType = 'div'>(
46
47
  {
47
48
  prefixId = '',
48
49
  index = 0,
@@ -0,0 +1,248 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react'
2
+ import React, { forwardRef, useCallback } from 'react'
3
+ import { useDropzone, type Accept, type FileRejection } from 'react-dropzone'
4
+
5
+ /**
6
+ * Merges multiple refs (object refs and callback refs) into a single callback ref.
7
+ */
8
+ function mergeRefs<T>(
9
+ ...refs: Array<React.Ref<T> | undefined>
10
+ ): React.RefCallback<T> {
11
+ return (instance: T | null) => {
12
+ for (const ref of refs) {
13
+ if (typeof ref === 'function') {
14
+ ref(instance)
15
+ } else if (ref && typeof ref === 'object') {
16
+ ;(ref as React.MutableRefObject<T | null>).current = instance
17
+ }
18
+ }
19
+ }
20
+ }
21
+
22
+ export interface DropzoneProps extends HTMLAttributes<HTMLDivElement> {
23
+ /**
24
+ * ID to find this component in testing tools (e.g.: cypress,
25
+ * testing-library, and jest).
26
+ */
27
+ testId?: string
28
+ /**
29
+ * A React component that will be rendered as an icon.
30
+ */
31
+ icon?: ReactNode
32
+ /**
33
+ * Callback function called when files are accepted.
34
+ */
35
+ onFilesAccepted?: (files: File[]) => void
36
+ /**
37
+ * Callback function called when files are rejected.
38
+ */
39
+ onFilesRejected?: (fileRejections: FileRejection[]) => void
40
+ /**
41
+ * Maximum number of files that can be selected.
42
+ */
43
+ maxFiles?: number
44
+ /**
45
+ * Maximum file size in bytes.
46
+ */
47
+ maxSize?: number
48
+ /**
49
+ * Minimum file size in bytes.
50
+ */
51
+ minSize?: number
52
+ /**
53
+ * Accepted file types.
54
+ */
55
+ accept?: Accept
56
+ /**
57
+ * Whether multiple files can be selected.
58
+ */
59
+ multiple?: boolean
60
+ /**
61
+ * Whether the dropzone is disabled.
62
+ */
63
+ disabled?: boolean
64
+ /**
65
+ * Custom text to display when dragging files over the dropzone.
66
+ */
67
+ dragActiveText?: string
68
+ /**
69
+ * Custom text to display in the dropzone.
70
+ */
71
+ text?: string
72
+ /**
73
+ * Whether to disable opening the file dialog on click.
74
+ */
75
+ noClick?: boolean
76
+ /**
77
+ * Whether to disable opening the file dialog via keyboard.
78
+ */
79
+ noKeyboard?: boolean
80
+ /**
81
+ * Whether to disable drag-and-drop on the drop zone.
82
+ */
83
+ noDrag?: boolean
84
+ /**
85
+ * Custom content for the select files button.
86
+ */
87
+ selectFilesButton?: ReactNode
88
+ /**
89
+ * Accessible label for the dropzone root element.
90
+ * When disabled, `aria-disabled` is also set so assistive tech
91
+ * can still identify the dropzone and its state.
92
+ */
93
+ ariaLabel?: string
94
+ }
95
+
96
+ export interface DropzoneState {
97
+ acceptedFiles: File[]
98
+ fileRejections: FileRejection[]
99
+ }
100
+
101
+ export interface DropzoneState {
102
+ acceptedFiles: File[]
103
+ fileRejections: FileRejection[]
104
+ }
105
+
106
+ const Dropzone = forwardRef<HTMLDivElement, DropzoneProps>(function Dropzone(
107
+ {
108
+ icon,
109
+ testId = 'fs-dropzone',
110
+ children,
111
+ onFilesAccepted,
112
+ onFilesRejected,
113
+ maxFiles = 0,
114
+ maxSize,
115
+ minSize,
116
+ accept,
117
+ multiple = true,
118
+ disabled = false,
119
+ dragActiveText,
120
+ text,
121
+ noClick = false,
122
+ noKeyboard = false,
123
+ noDrag = false,
124
+ selectFilesButton = null,
125
+ ariaLabel,
126
+ ...otherProps
127
+ },
128
+ ref
129
+ ) {
130
+ const onDrop = useCallback(
131
+ (acceptedFiles: File[]) => {
132
+ if (onFilesAccepted && acceptedFiles.length > 0) {
133
+ onFilesAccepted(acceptedFiles)
134
+ }
135
+ },
136
+ [onFilesAccepted]
137
+ )
138
+
139
+ const onDropRejected = useCallback(
140
+ (fileRejections: FileRejection[]) => {
141
+ if (onFilesRejected && fileRejections.length > 0) {
142
+ onFilesRejected(fileRejections)
143
+ }
144
+ },
145
+ [onFilesRejected]
146
+ )
147
+
148
+ const {
149
+ getRootProps,
150
+ getInputProps,
151
+ isDragActive,
152
+ isDragAccept,
153
+ isDragReject,
154
+ acceptedFiles,
155
+ fileRejections,
156
+ } = useDropzone({
157
+ onDrop,
158
+ onDropRejected,
159
+ accept,
160
+ maxFiles,
161
+ maxSize,
162
+ minSize,
163
+ multiple,
164
+ disabled,
165
+ noClick,
166
+ noKeyboard,
167
+ noDrag,
168
+ })
169
+
170
+ const rootProps = getRootProps()
171
+ const mergedRef = mergeRefs(ref, rootProps.ref as React.Ref<HTMLDivElement>)
172
+
173
+ const accessibilityProps = ariaLabel
174
+ ? disabled
175
+ ? {
176
+ role: 'button' as const,
177
+ 'aria-label': ariaLabel,
178
+ 'aria-disabled': true as const,
179
+ }
180
+ : {
181
+ role: 'button' as const,
182
+ 'aria-label': ariaLabel,
183
+ }
184
+ : {}
185
+
186
+ return (
187
+ <div
188
+ data-fs-dropzone
189
+ data-fs-dropzone-drag-active={isDragActive}
190
+ data-fs-dropzone-drag-accept={isDragAccept}
191
+ data-fs-dropzone-drag-reject={isDragReject}
192
+ data-fs-dropzone-disabled={disabled}
193
+ data-testid={testId}
194
+ {...rootProps}
195
+ {...accessibilityProps}
196
+ {...otherProps}
197
+ ref={mergedRef}
198
+ >
199
+ <input {...getInputProps()} />
200
+
201
+ {icon && <div data-fs-dropzone-icon>{icon}</div>}
202
+
203
+ <div data-fs-dropzone-content>
204
+ {isDragActive ? (
205
+ <p data-fs-dropzone-text>{dragActiveText}</p>
206
+ ) : (
207
+ <>{children || <p data-fs-dropzone-text>{text}</p>}</>
208
+ )}
209
+
210
+ {selectFilesButton && !noClick && !disabled && selectFilesButton}
211
+ </div>
212
+
213
+ {acceptedFiles.length > 0 && (
214
+ <div data-fs-dropzone-files>
215
+ <ul>
216
+ {acceptedFiles.map((file: File, index: number) => (
217
+ <li key={index} data-fs-dropzone-file>
218
+ {file.name} - {file.size} bytes
219
+ </li>
220
+ ))}
221
+ </ul>
222
+ </div>
223
+ )}
224
+
225
+ {fileRejections.length > 0 && (
226
+ <div data-fs-dropzone-errors>
227
+ <ul>
228
+ {fileRejections.map(
229
+ (fileRejection: FileRejection, index: number) => {
230
+ const { file, errors } = fileRejection
231
+ return (
232
+ <li key={index} data-fs-dropzone-error>
233
+ {file.name} -{' '}
234
+ {errors
235
+ .map((e: { message: string }) => e.message)
236
+ .join(', ')}
237
+ </li>
238
+ )
239
+ }
240
+ )}
241
+ </ul>
242
+ </div>
243
+ )}
244
+ </div>
245
+ )
246
+ })
247
+
248
+ export default Dropzone
@@ -0,0 +1,2 @@
1
+ export { default } from './Dropzone'
2
+ export type { DropzoneProps, DropzoneState } from './Dropzone'