@dropins/tools 0.21.1 → 0.21.2-alpha2

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 (478) hide show
  1. package/components/Accordion/Accordion.d.ts +25 -0
  2. package/components/Accordion/Accordion.d.ts.map +1 -0
  3. package/components/Accordion/Accordion.jsx +59 -0
  4. package/components/Accordion/Accordion.stories.d.ts +22 -0
  5. package/components/Accordion/Accordion.stories.d.ts.map +1 -0
  6. package/components/Accordion/Accordion.stories.jsx +320 -0
  7. package/components/Accordion/Accordion.test.d.ts +3 -0
  8. package/components/Accordion/Accordion.test.d.ts.map +1 -0
  9. package/components/Accordion/Accordion.test.jsx +79 -0
  10. package/components/Accordion/index.d.ts +3 -0
  11. package/components/Accordion/index.d.ts.map +1 -0
  12. package/components/Accordion/index.js +2 -0
  13. package/components/ActionButton/ActionButton.d.ts +11 -0
  14. package/components/ActionButton/ActionButton.d.ts.map +1 -0
  15. package/components/ActionButton/ActionButton.jsx +14 -0
  16. package/components/ActionButton/ActionButton.stories.d.ts +16 -0
  17. package/components/ActionButton/ActionButton.stories.d.ts.map +1 -0
  18. package/components/ActionButton/ActionButton.stories.jsx +119 -0
  19. package/components/ActionButton/ActionButton.test.d.ts +3 -0
  20. package/components/ActionButton/ActionButton.test.d.ts.map +1 -0
  21. package/components/ActionButton/ActionButton.test.jsx +47 -0
  22. package/components/ActionButton/index.d.ts +2 -0
  23. package/components/ActionButton/index.d.ts.map +1 -0
  24. package/components/ActionButton/index.js +1 -0
  25. package/components/ActionButtonGroup/ActionButtonGroup.d.ts +20 -0
  26. package/components/ActionButtonGroup/ActionButtonGroup.d.ts.map +1 -0
  27. package/components/ActionButtonGroup/ActionButtonGroup.jsx +39 -0
  28. package/components/ActionButtonGroup/ActionButtonGroup.stories.d.ts +16 -0
  29. package/components/ActionButtonGroup/ActionButtonGroup.stories.d.ts.map +1 -0
  30. package/components/ActionButtonGroup/ActionButtonGroup.stories.jsx +72 -0
  31. package/components/ActionButtonGroup/ActionButtonGroup.test.d.ts +3 -0
  32. package/components/ActionButtonGroup/ActionButtonGroup.test.d.ts.map +1 -0
  33. package/components/ActionButtonGroup/ActionButtonGroup.test.jsx +78 -0
  34. package/components/ActionButtonGroup/index.d.ts +2 -0
  35. package/components/ActionButtonGroup/index.d.ts.map +1 -0
  36. package/components/ActionButtonGroup/index.js +1 -0
  37. package/components/AlertBanner/AlertBanner.d.ts +15 -0
  38. package/components/AlertBanner/AlertBanner.d.ts.map +1 -0
  39. package/components/AlertBanner/AlertBanner.jsx +30 -0
  40. package/components/AlertBanner/AlertBanner.stories.d.ts +17 -0
  41. package/components/AlertBanner/AlertBanner.stories.d.ts.map +1 -0
  42. package/components/AlertBanner/AlertBanner.stories.jsx +128 -0
  43. package/components/AlertBanner/AlertBanner.test.d.ts +3 -0
  44. package/components/AlertBanner/AlertBanner.test.d.ts.map +1 -0
  45. package/components/AlertBanner/AlertBanner.test.jsx +40 -0
  46. package/components/AlertBanner/index.d.ts +3 -0
  47. package/components/AlertBanner/index.d.ts.map +1 -0
  48. package/components/AlertBanner/index.js +2 -0
  49. package/components/Breadcrumbs/Breadcrumbs.d.ts +9 -0
  50. package/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  51. package/components/Breadcrumbs/Breadcrumbs.jsx +26 -0
  52. package/components/Breadcrumbs/Breadcrumbs.stories.d.ts +15 -0
  53. package/components/Breadcrumbs/Breadcrumbs.stories.d.ts.map +1 -0
  54. package/components/Breadcrumbs/Breadcrumbs.stories.jsx +110 -0
  55. package/components/Breadcrumbs/Breadcrumbs.test.d.ts +3 -0
  56. package/components/Breadcrumbs/Breadcrumbs.test.d.ts.map +1 -0
  57. package/components/Breadcrumbs/Breadcrumbs.test.jsx +67 -0
  58. package/components/Breadcrumbs/index.d.ts +3 -0
  59. package/components/Breadcrumbs/index.d.ts.map +1 -0
  60. package/components/Breadcrumbs/index.js +2 -0
  61. package/components/Button/Button.d.ts +15 -0
  62. package/components/Button/Button.d.ts.map +1 -0
  63. package/components/Button/Button.jsx +59 -0
  64. package/components/Button/Button.stories.d.ts +135 -0
  65. package/components/Button/Button.stories.d.ts.map +1 -0
  66. package/components/Button/Button.stories.jsx +354 -0
  67. package/components/Button/Button.test.d.ts +2 -0
  68. package/components/Button/Button.test.d.ts.map +1 -0
  69. package/components/Button/Button.test.jsx +134 -0
  70. package/components/Button/index.d.ts +3 -0
  71. package/components/Button/index.d.ts.map +1 -0
  72. package/components/Button/index.js +2 -0
  73. package/components/Card/Card.d.ts +9 -0
  74. package/components/Card/Card.d.ts.map +1 -0
  75. package/components/Card/Card.jsx +7 -0
  76. package/components/Card/Card.stories.d.ts +16 -0
  77. package/components/Card/Card.stories.d.ts.map +1 -0
  78. package/components/Card/Card.stories.jsx +47 -0
  79. package/components/Card/Card.test.d.ts +3 -0
  80. package/components/Card/Card.test.d.ts.map +1 -0
  81. package/components/Card/Card.test.jsx +26 -0
  82. package/components/Card/index.d.ts +2 -0
  83. package/components/Card/index.d.ts.map +1 -0
  84. package/components/Card/index.js +1 -0
  85. package/components/CartItem/CartItem.d.ts +25 -0
  86. package/components/CartItem/CartItem.d.ts.map +1 -0
  87. package/components/CartItem/CartItem.jsx +124 -0
  88. package/components/CartItem/CartItem.stories.d.ts +54 -0
  89. package/components/CartItem/CartItem.stories.d.ts.map +1 -0
  90. package/components/CartItem/CartItem.stories.jsx +309 -0
  91. package/components/CartItem/CartItem.test.d.ts +3 -0
  92. package/components/CartItem/CartItem.test.d.ts.map +1 -0
  93. package/components/CartItem/CartItem.test.jsx +71 -0
  94. package/components/CartItem/CartItemSkeleton.d.ts +3 -0
  95. package/components/CartItem/CartItemSkeleton.d.ts.map +1 -0
  96. package/components/CartItem/CartItemSkeleton.jsx +25 -0
  97. package/components/CartItem/CartItemSkeleton.test.d.ts +3 -0
  98. package/components/CartItem/CartItemSkeleton.test.d.ts.map +1 -0
  99. package/components/CartItem/CartItemSkeleton.test.jsx +11 -0
  100. package/components/CartItem/index.d.ts +4 -0
  101. package/components/CartItem/index.d.ts.map +1 -0
  102. package/components/CartItem/index.js +3 -0
  103. package/components/CartList/CartList.d.ts +7 -0
  104. package/components/CartList/CartList.d.ts.map +1 -0
  105. package/components/CartList/CartList.jsx +14 -0
  106. package/components/CartList/CartList.stories.d.ts +17 -0
  107. package/components/CartList/CartList.stories.d.ts.map +1 -0
  108. package/components/CartList/CartList.stories.jsx +54 -0
  109. package/components/CartList/CartList.test.d.ts +3 -0
  110. package/components/CartList/CartList.test.d.ts.map +1 -0
  111. package/components/CartList/CartList.test.jsx +12 -0
  112. package/components/CartList/index.d.ts +3 -0
  113. package/components/CartList/index.d.ts.map +1 -0
  114. package/components/CartList/index.js +2 -0
  115. package/components/Checkbox/Checkbox.d.ts +13 -0
  116. package/components/Checkbox/Checkbox.d.ts.map +1 -0
  117. package/components/Checkbox/Checkbox.jsx +51 -0
  118. package/components/Checkbox/Checkbox.stories.d.ts +22 -0
  119. package/components/Checkbox/Checkbox.stories.d.ts.map +1 -0
  120. package/components/Checkbox/Checkbox.stories.jsx +157 -0
  121. package/components/Checkbox/Checkbox.test.d.ts +3 -0
  122. package/components/Checkbox/Checkbox.test.d.ts.map +1 -0
  123. package/components/Checkbox/Checkbox.test.jsx +136 -0
  124. package/components/Checkbox/index.d.ts +2 -0
  125. package/components/Checkbox/index.d.ts.map +1 -0
  126. package/components/Checkbox/index.js +1 -0
  127. package/components/ColorSwatch/ColorSwatch.d.ts +20 -0
  128. package/components/ColorSwatch/ColorSwatch.d.ts.map +1 -0
  129. package/components/ColorSwatch/ColorSwatch.jsx +57 -0
  130. package/components/ColorSwatch/ColorSwatch.stories.d.ts +20 -0
  131. package/components/ColorSwatch/ColorSwatch.stories.d.ts.map +1 -0
  132. package/components/ColorSwatch/ColorSwatch.stories.jsx +206 -0
  133. package/components/ColorSwatch/ColorSwatch.test.d.ts +3 -0
  134. package/components/ColorSwatch/ColorSwatch.test.d.ts.map +1 -0
  135. package/components/ColorSwatch/ColorSwatch.test.jsx +87 -0
  136. package/components/ColorSwatch/index.d.ts +3 -0
  137. package/components/ColorSwatch/index.d.ts.map +1 -0
  138. package/components/ColorSwatch/index.js +2 -0
  139. package/components/Divider/Divider.d.ts +8 -0
  140. package/components/Divider/Divider.d.ts.map +1 -0
  141. package/components/Divider/Divider.jsx +9 -0
  142. package/components/Divider/Divider.stories.d.ts +11 -0
  143. package/components/Divider/Divider.stories.d.ts.map +1 -0
  144. package/components/Divider/Divider.stories.jsx +43 -0
  145. package/components/Divider/Divider.test.d.ts +2 -0
  146. package/components/Divider/Divider.test.d.ts.map +1 -0
  147. package/components/Divider/Divider.test.jsx +19 -0
  148. package/components/Divider/index.d.ts +3 -0
  149. package/components/Divider/index.d.ts.map +1 -0
  150. package/components/Divider/index.js +2 -0
  151. package/components/Field/Field.d.ts +14 -0
  152. package/components/Field/Field.d.ts.map +1 -0
  153. package/components/Field/Field.jsx +29 -0
  154. package/components/Field/Field.stories.d.ts +37 -0
  155. package/components/Field/Field.stories.d.ts.map +1 -0
  156. package/components/Field/Field.stories.jsx +174 -0
  157. package/components/Field/Field.test.d.ts +3 -0
  158. package/components/Field/Field.test.d.ts.map +1 -0
  159. package/components/Field/Field.test.jsx +91 -0
  160. package/components/Field/index.d.ts +2 -0
  161. package/components/Field/index.d.ts.map +1 -0
  162. package/components/Field/index.js +1 -0
  163. package/components/Icon/Icon.d.ts +11 -0
  164. package/components/Icon/Icon.d.ts.map +1 -0
  165. package/components/Icon/Icon.jsx +57 -0
  166. package/components/Icon/Icon.stories.d.ts +16 -0
  167. package/components/Icon/Icon.stories.d.ts.map +1 -0
  168. package/components/Icon/Icon.stories.helpers.d.ts +4 -0
  169. package/components/Icon/Icon.stories.helpers.d.ts.map +1 -0
  170. package/components/Icon/Icon.stories.helpers.jsx +7 -0
  171. package/components/Icon/Icon.stories.jsx +48 -0
  172. package/components/Icon/Icon.test.d.ts +3 -0
  173. package/components/Icon/Icon.test.d.ts.map +1 -0
  174. package/components/Icon/Icon.test.jsx +67 -0
  175. package/components/Icon/index.d.ts +2 -0
  176. package/components/Icon/index.d.ts.map +1 -0
  177. package/components/Icon/index.js +1 -0
  178. package/components/IllustratedMessage/IllustratedMessage.d.ts +13 -0
  179. package/components/IllustratedMessage/IllustratedMessage.d.ts.map +1 -0
  180. package/components/IllustratedMessage/IllustratedMessage.jsx +21 -0
  181. package/components/IllustratedMessage/IllustratedMessage.stories.d.ts +10 -0
  182. package/components/IllustratedMessage/IllustratedMessage.stories.d.ts.map +1 -0
  183. package/components/IllustratedMessage/IllustratedMessage.stories.jsx +90 -0
  184. package/components/IllustratedMessage/IllustratedMessage.test.d.ts +3 -0
  185. package/components/IllustratedMessage/IllustratedMessage.test.d.ts.map +1 -0
  186. package/components/IllustratedMessage/IllustratedMessage.test.jsx +42 -0
  187. package/components/IllustratedMessage/index.d.ts +3 -0
  188. package/components/IllustratedMessage/index.d.ts.map +1 -0
  189. package/components/IllustratedMessage/index.js +2 -0
  190. package/components/Image/Image.d.ts +11 -0
  191. package/components/Image/Image.d.ts.map +1 -0
  192. package/components/Image/Image.jsx +26 -0
  193. package/components/Image/Image.stories.d.ts +11 -0
  194. package/components/Image/Image.stories.d.ts.map +1 -0
  195. package/components/Image/Image.stories.jsx +66 -0
  196. package/components/Image/Image.test.d.ts +3 -0
  197. package/components/Image/Image.test.d.ts.map +1 -0
  198. package/components/Image/Image.test.jsx +82 -0
  199. package/components/Image/index.d.ts +2 -0
  200. package/components/Image/index.d.ts.map +1 -0
  201. package/components/Image/index.js +1 -0
  202. package/components/ImageSwatch/ImageSwatch.d.ts +20 -0
  203. package/components/ImageSwatch/ImageSwatch.d.ts.map +1 -0
  204. package/components/ImageSwatch/ImageSwatch.jsx +49 -0
  205. package/components/ImageSwatch/ImageSwatch.stories.d.ts +20 -0
  206. package/components/ImageSwatch/ImageSwatch.stories.d.ts.map +1 -0
  207. package/components/ImageSwatch/ImageSwatch.stories.jsx +206 -0
  208. package/components/ImageSwatch/ImageSwatch.test.d.ts +3 -0
  209. package/components/ImageSwatch/ImageSwatch.test.d.ts.map +1 -0
  210. package/components/ImageSwatch/ImageSwatch.test.jsx +64 -0
  211. package/components/ImageSwatch/index.d.ts +3 -0
  212. package/components/ImageSwatch/index.d.ts.map +1 -0
  213. package/components/ImageSwatch/index.js +2 -0
  214. package/components/InLineAlert/InLineAlert.d.ts +16 -0
  215. package/components/InLineAlert/InLineAlert.d.ts.map +1 -0
  216. package/components/InLineAlert/InLineAlert.jsx +38 -0
  217. package/components/InLineAlert/InLineAlert.stories.d.ts +86 -0
  218. package/components/InLineAlert/InLineAlert.stories.d.ts.map +1 -0
  219. package/components/InLineAlert/InLineAlert.stories.jsx +193 -0
  220. package/components/InLineAlert/InLineAlert.test.d.ts +3 -0
  221. package/components/InLineAlert/InLineAlert.test.d.ts.map +1 -0
  222. package/components/InLineAlert/InLineAlert.test.jsx +77 -0
  223. package/components/InLineAlert/index.d.ts +3 -0
  224. package/components/InLineAlert/index.d.ts.map +1 -0
  225. package/components/InLineAlert/index.js +2 -0
  226. package/components/Incrementer/Incrementer.d.ts +17 -0
  227. package/components/Incrementer/Incrementer.d.ts.map +1 -0
  228. package/components/Incrementer/Incrementer.jsx +87 -0
  229. package/components/Incrementer/Incrementer.stories.d.ts +10 -0
  230. package/components/Incrementer/Incrementer.stories.d.ts.map +1 -0
  231. package/components/Incrementer/Incrementer.stories.jsx +68 -0
  232. package/components/Incrementer/Incrementer.test.d.ts +3 -0
  233. package/components/Incrementer/Incrementer.test.d.ts.map +1 -0
  234. package/components/Incrementer/Incrementer.test.jsx +112 -0
  235. package/components/Incrementer/index.d.ts +2 -0
  236. package/components/Incrementer/index.d.ts.map +1 -0
  237. package/components/Incrementer/index.js +1 -0
  238. package/components/Input/Input.d.ts +19 -0
  239. package/components/Input/Input.d.ts.map +1 -0
  240. package/components/Input/Input.jsx +73 -0
  241. package/components/Input/Input.stories.d.ts +11 -0
  242. package/components/Input/Input.stories.d.ts.map +1 -0
  243. package/components/Input/Input.stories.jsx +115 -0
  244. package/components/Input/Input.test.d.ts +3 -0
  245. package/components/Input/Input.test.d.ts.map +1 -0
  246. package/components/Input/Input.test.jsx +111 -0
  247. package/components/Input/index.d.ts +3 -0
  248. package/components/Input/index.d.ts.map +1 -0
  249. package/components/Input/index.js +2 -0
  250. package/components/Modal/Modal.d.ts +15 -0
  251. package/components/Modal/Modal.d.ts.map +1 -0
  252. package/components/Modal/Modal.jsx +93 -0
  253. package/components/Modal/Modal.stories.d.ts +56 -0
  254. package/components/Modal/Modal.stories.d.ts.map +1 -0
  255. package/components/Modal/Modal.stories.jsx +189 -0
  256. package/components/Modal/Modal.test.d.ts +3 -0
  257. package/components/Modal/Modal.test.d.ts.map +1 -0
  258. package/components/Modal/Modal.test.jsx +85 -0
  259. package/components/Modal/index.d.ts +2 -0
  260. package/components/Modal/index.d.ts.map +1 -0
  261. package/components/Modal/index.js +14 -0
  262. package/components/Picker/Picker.d.ts +26 -0
  263. package/components/Picker/Picker.d.ts.map +1 -0
  264. package/components/Picker/Picker.jsx +81 -0
  265. package/components/Picker/Picker.stories.d.ts +22 -0
  266. package/components/Picker/Picker.stories.d.ts.map +1 -0
  267. package/components/Picker/Picker.stories.jsx +236 -0
  268. package/components/Picker/Picker.test.d.ts +2 -0
  269. package/components/Picker/Picker.test.d.ts.map +1 -0
  270. package/components/Picker/Picker.test.jsx +190 -0
  271. package/components/Picker/index.d.ts +2 -0
  272. package/components/Picker/index.d.ts.map +1 -0
  273. package/components/Picker/index.js +1 -0
  274. package/components/Price/Price.d.ts +17 -0
  275. package/components/Price/Price.d.ts.map +1 -0
  276. package/components/Price/Price.jsx +24 -0
  277. package/components/Price/Price.stories.d.ts +17 -0
  278. package/components/Price/Price.stories.d.ts.map +1 -0
  279. package/components/Price/Price.stories.jsx +78 -0
  280. package/components/Price/Price.test.d.ts +3 -0
  281. package/components/Price/Price.test.d.ts.map +1 -0
  282. package/components/Price/Price.test.jsx +68 -0
  283. package/components/Price/index.d.ts +2 -0
  284. package/components/Price/index.d.ts.map +1 -0
  285. package/components/Price/index.js +1 -0
  286. package/components/PriceRange/PriceRange.d.ts +17 -0
  287. package/components/PriceRange/PriceRange.d.ts.map +1 -0
  288. package/components/PriceRange/PriceRange.jsx +75 -0
  289. package/components/PriceRange/PriceRange.stories.d.ts +107 -0
  290. package/components/PriceRange/PriceRange.stories.d.ts.map +1 -0
  291. package/components/PriceRange/PriceRange.stories.jsx +210 -0
  292. package/components/PriceRange/PriceRange.test.d.ts +3 -0
  293. package/components/PriceRange/PriceRange.test.d.ts.map +1 -0
  294. package/components/PriceRange/PriceRange.test.jsx +188 -0
  295. package/components/PriceRange/index.d.ts +3 -0
  296. package/components/PriceRange/index.d.ts.map +1 -0
  297. package/components/PriceRange/index.js +2 -0
  298. package/components/PriceSummary/PriceSummary.d.ts +43 -0
  299. package/components/PriceSummary/PriceSummary.d.ts.map +1 -0
  300. package/components/PriceSummary/PriceSummary.jsx +228 -0
  301. package/components/PriceSummary/PriceSummary.stories.d.ts +127 -0
  302. package/components/PriceSummary/PriceSummary.stories.d.ts.map +1 -0
  303. package/components/PriceSummary/PriceSummary.stories.jsx +456 -0
  304. package/components/PriceSummary/PriceSummary.test.d.ts +3 -0
  305. package/components/PriceSummary/PriceSummary.test.d.ts.map +1 -0
  306. package/components/PriceSummary/PriceSummary.test.jsx +275 -0
  307. package/components/PriceSummary/index.d.ts +3 -0
  308. package/components/PriceSummary/index.d.ts.map +1 -0
  309. package/components/PriceSummary/index.js +2 -0
  310. package/components/ProgressSpinner/ProgressSpinner.d.ts +14 -0
  311. package/components/ProgressSpinner/ProgressSpinner.d.ts.map +1 -0
  312. package/components/ProgressSpinner/ProgressSpinner.jsx +31 -0
  313. package/components/ProgressSpinner/ProgressSpinner.stories.d.ts +19 -0
  314. package/components/ProgressSpinner/ProgressSpinner.stories.d.ts.map +1 -0
  315. package/components/ProgressSpinner/ProgressSpinner.stories.jsx +195 -0
  316. package/components/ProgressSpinner/ProgressSpinner.test.d.ts +3 -0
  317. package/components/ProgressSpinner/ProgressSpinner.test.d.ts.map +1 -0
  318. package/components/ProgressSpinner/ProgressSpinner.test.jsx +40 -0
  319. package/components/ProgressSpinner/index.d.ts +3 -0
  320. package/components/ProgressSpinner/index.d.ts.map +1 -0
  321. package/components/ProgressSpinner/index.js +2 -0
  322. package/components/RadioButton/RadioButton.d.ts +15 -0
  323. package/components/RadioButton/RadioButton.d.ts.map +1 -0
  324. package/components/RadioButton/RadioButton.jsx +31 -0
  325. package/components/RadioButton/RadioButton.stories.d.ts +15 -0
  326. package/components/RadioButton/RadioButton.stories.d.ts.map +1 -0
  327. package/components/RadioButton/RadioButton.stories.jsx +92 -0
  328. package/components/RadioButton/RadioButton.test.d.ts +3 -0
  329. package/components/RadioButton/RadioButton.test.d.ts.map +1 -0
  330. package/components/RadioButton/RadioButton.test.jsx +62 -0
  331. package/components/RadioButton/index.d.ts +3 -0
  332. package/components/RadioButton/index.d.ts.map +1 -0
  333. package/components/RadioButton/index.js +2 -0
  334. package/components/Skeleton/Skeleton.d.ts +17 -0
  335. package/components/Skeleton/Skeleton.d.ts.map +1 -0
  336. package/components/Skeleton/Skeleton.jsx +52 -0
  337. package/components/Skeleton/Skeleton.stories.d.ts +67 -0
  338. package/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  339. package/components/Skeleton/Skeleton.stories.jsx +184 -0
  340. package/components/Skeleton/Skeleton.test.d.ts +3 -0
  341. package/components/Skeleton/Skeleton.test.d.ts.map +1 -0
  342. package/components/Skeleton/Skeleton.test.jsx +62 -0
  343. package/components/Skeleton/index.d.ts +2 -0
  344. package/components/Skeleton/index.d.ts.map +1 -0
  345. package/components/Skeleton/index.js +1 -0
  346. package/components/TextSwatch/TextSwatch.d.ts +18 -0
  347. package/components/TextSwatch/TextSwatch.d.ts.map +1 -0
  348. package/components/TextSwatch/TextSwatch.jsx +56 -0
  349. package/components/TextSwatch/TextSwatch.stories.d.ts +21 -0
  350. package/components/TextSwatch/TextSwatch.stories.d.ts.map +1 -0
  351. package/components/TextSwatch/TextSwatch.stories.jsx +211 -0
  352. package/components/TextSwatch/TextSwatch.test.d.ts +3 -0
  353. package/components/TextSwatch/TextSwatch.test.d.ts.map +1 -0
  354. package/components/TextSwatch/TextSwatch.test.jsx +85 -0
  355. package/components/TextSwatch/index.d.ts +3 -0
  356. package/components/TextSwatch/index.d.ts.map +1 -0
  357. package/components/TextSwatch/index.js +2 -0
  358. package/components/UIProvider/UIProvider.d.ts +18 -0
  359. package/components/UIProvider/UIProvider.d.ts.map +1 -0
  360. package/components/UIProvider/UIProvider.jsx +26 -0
  361. package/components/UIProvider/UIProvider.test.d.ts +2 -0
  362. package/components/UIProvider/UIProvider.test.d.ts.map +1 -0
  363. package/components/UIProvider/UIProvider.test.jsx +9 -0
  364. package/components/UIProvider/index.d.ts +2 -0
  365. package/components/UIProvider/index.d.ts.map +1 -0
  366. package/components/UIProvider/index.js +1 -0
  367. package/components/index.d.ts +34 -0
  368. package/components/index.d.ts.map +1 -0
  369. package/components/index.js +33 -0
  370. package/docs/Design/designBlocks.d.ts +21 -0
  371. package/docs/Design/designBlocks.d.ts.map +1 -0
  372. package/docs/Design/designBlocks.jsx +59 -0
  373. package/docs/Design/getTokenData.d.ts +7 -0
  374. package/docs/Design/getTokenData.d.ts.map +1 -0
  375. package/docs/Design/getTokenData.js +18 -0
  376. package/docs/Design/getTokenData.test.d.ts +2 -0
  377. package/docs/Design/getTokenData.test.d.ts.map +1 -0
  378. package/docs/Design/getTokenData.test.js +92 -0
  379. package/event-bus.js +49 -1
  380. package/fetch-graphql.js +62 -1
  381. package/i18n/en_US.json +112 -0
  382. package/i18n/index.d.ts +341 -0
  383. package/i18n/index.d.ts.map +1 -0
  384. package/i18n/index.js +12 -0
  385. package/i18n/index.test.d.ts +2 -0
  386. package/i18n/index.test.d.ts.map +1 -0
  387. package/i18n/index.test.js +11 -0
  388. package/icons/index.d.ts +35 -0
  389. package/icons/index.d.ts.map +1 -0
  390. package/icons/index.js +34 -0
  391. package/initializer.js +61 -1
  392. package/lib/classes.d.ts +5 -0
  393. package/lib/classes.d.ts.map +1 -0
  394. package/lib/classes.js +16 -0
  395. package/lib/classes.test.d.ts +2 -0
  396. package/lib/classes.test.d.ts.map +1 -0
  397. package/lib/classes.test.js +18 -0
  398. package/lib/config.d.ts +7 -0
  399. package/lib/config.d.ts.map +1 -0
  400. package/lib/config.js +12 -0
  401. package/lib/config.test.d.ts +2 -0
  402. package/lib/config.test.d.ts.map +1 -0
  403. package/lib/config.test.js +12 -0
  404. package/lib/debounce.d.ts +2 -0
  405. package/lib/debounce.d.ts.map +1 -0
  406. package/lib/debounce.js +7 -0
  407. package/lib/debounce.test.d.ts +2 -0
  408. package/lib/debounce.test.d.ts.map +1 -0
  409. package/lib/debounce.test.js +40 -0
  410. package/lib/deepmerge.d.ts +2 -0
  411. package/lib/deepmerge.d.ts.map +1 -0
  412. package/lib/deepmerge.js +1 -0
  413. package/lib/form-values.d.ts +5 -0
  414. package/lib/form-values.d.ts.map +1 -0
  415. package/lib/form-values.js +17 -0
  416. package/lib/form-values.test.d.ts +2 -0
  417. package/lib/form-values.test.d.ts.map +1 -0
  418. package/lib/form-values.test.jsx +29 -0
  419. package/lib/i18n.d.ts +8 -0
  420. package/lib/i18n.d.ts.map +1 -0
  421. package/lib/i18n.js +9 -0
  422. package/lib/i18n.test.d.ts +2 -0
  423. package/lib/i18n.test.d.ts.map +1 -0
  424. package/lib/i18n.test.jsx +8 -0
  425. package/lib/image-params-keymap.d.ts +4 -0
  426. package/lib/image-params-keymap.d.ts.map +1 -0
  427. package/lib/image-params-keymap.js +19 -0
  428. package/lib/image-params-keymap.test.d.ts +2 -0
  429. package/lib/image-params-keymap.test.d.ts.map +1 -0
  430. package/lib/image-params-keymap.test.js +7 -0
  431. package/lib/index.d.ts +14 -0
  432. package/lib/index.d.ts.map +1 -0
  433. package/lib/index.js +13 -0
  434. package/lib/initializer.d.ts +78 -0
  435. package/lib/initializer.d.ts.map +1 -0
  436. package/lib/initializer.js +93 -0
  437. package/lib/initializer.test.d.ts +2 -0
  438. package/lib/initializer.test.d.ts.map +1 -0
  439. package/lib/initializer.test.js +64 -0
  440. package/lib/render.d.ts +10 -0
  441. package/lib/render.d.ts.map +1 -0
  442. package/lib/render.jsx +34 -0
  443. package/lib/render.test.d.ts +2 -0
  444. package/lib/render.test.d.ts.map +1 -0
  445. package/lib/render.test.jsx +70 -0
  446. package/lib/resolve-image.d.ts +10 -0
  447. package/lib/resolve-image.d.ts.map +1 -0
  448. package/lib/resolve-image.js +57 -0
  449. package/lib/resolve-image.test.d.ts +2 -0
  450. package/lib/resolve-image.test.d.ts.map +1 -0
  451. package/lib/resolve-image.test.jsx +146 -0
  452. package/lib/slot.d.ts +43 -0
  453. package/lib/slot.d.ts.map +1 -0
  454. package/lib/slot.jsx +184 -0
  455. package/lib/slot.test.d.ts +2 -0
  456. package/lib/slot.test.d.ts.map +1 -0
  457. package/lib/slot.test.jsx +325 -0
  458. package/lib/tests.d.ts +4 -0
  459. package/lib/tests.d.ts.map +1 -0
  460. package/lib/tests.jsx +19 -0
  461. package/lib/tests.test.d.ts +2 -0
  462. package/lib/tests.test.d.ts.map +1 -0
  463. package/lib/tests.test.jsx +13 -0
  464. package/lib/types.d.ts +9 -0
  465. package/lib/types.d.ts.map +1 -0
  466. package/lib/types.js +1 -0
  467. package/lib/vcomponent.d.ts +8 -0
  468. package/lib/vcomponent.d.ts.map +1 -0
  469. package/lib/vcomponent.jsx +27 -0
  470. package/lib/vcomponent.test.d.ts +2 -0
  471. package/lib/vcomponent.test.d.ts.map +1 -0
  472. package/lib/vcomponent.test.jsx +51 -0
  473. package/package.json +1 -1
  474. package/preact-compat.js +93 -1
  475. package/preact-hooks.js +40 -1
  476. package/preact-jsx-runtime.js +35 -1
  477. package/preact.js +21 -1
  478. package/runtime.js +69 -1
@@ -0,0 +1,40 @@
1
+ import { debounce } from './debounce';
2
+ jest.useFakeTimers();
3
+ describe('debounce()', () => {
4
+ const mockCallback = jest.fn();
5
+ const debouncedFn = debounce(mockCallback, 500);
6
+ beforeEach(() => {
7
+ jest.clearAllMocks();
8
+ });
9
+ test('runs the callback', () => {
10
+ debouncedFn();
11
+ expect(mockCallback).not.toHaveBeenCalled();
12
+ jest.runAllTimers();
13
+ expect(mockCallback).toHaveBeenCalledTimes(1);
14
+ });
15
+ test('runs the callback after a set amount of time and not before', () => {
16
+ debouncedFn();
17
+ jest.advanceTimersByTime(250);
18
+ expect(mockCallback).not.toHaveBeenCalled();
19
+ jest.advanceTimersByTime(250);
20
+ expect(mockCallback).toHaveBeenCalledTimes(1);
21
+ });
22
+ test('does not run callback on multiple calls within a short period', () => {
23
+ // Initial call
24
+ debouncedFn();
25
+ jest.advanceTimersByTime(250);
26
+ expect(mockCallback).not.toHaveBeenCalled();
27
+ // Second call
28
+ debouncedFn();
29
+ jest.advanceTimersByTime(250);
30
+ expect(mockCallback).not.toHaveBeenCalled();
31
+ // Third call
32
+ debouncedFn();
33
+ jest.advanceTimersByTime(250);
34
+ expect(mockCallback).not.toHaveBeenCalled();
35
+ // Last call then exceed timeout - callback should only have been called once
36
+ debouncedFn();
37
+ jest.advanceTimersByTime(500);
38
+ expect(mockCallback).toHaveBeenCalledTimes(1);
39
+ });
40
+ });
@@ -0,0 +1,2 @@
1
+ export { default as deepmerge } from 'deepmerge';
2
+ //# sourceMappingURL=deepmerge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepmerge.d.ts","sourceRoot":"","sources":["../../src/lib/deepmerge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ export { default as deepmerge } from 'deepmerge';
@@ -0,0 +1,5 @@
1
+ export declare const getFormValues: (form: HTMLFormElement) => {
2
+ [k: string]: any;
3
+ };
4
+ export declare const getFormErrors: (form: HTMLFormElement) => {};
5
+ //# sourceMappingURL=form-values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-values.d.ts","sourceRoot":"","sources":["../../src/lib/form-values.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,SAAU,eAAe;;CAIlD,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,eAAe,OAelD,CAAC"}
@@ -0,0 +1,17 @@
1
+ export const getFormValues = (form) => {
2
+ const formData = new FormData(form);
3
+ const result = Object.fromEntries(formData);
4
+ return result;
5
+ };
6
+ export const getFormErrors = (form) => {
7
+ const formData = new FormData(form);
8
+ const data = Object.fromEntries(formData);
9
+ const result = Object.entries(data).reduce((result, [key]) => {
10
+ // @ts-ignore
11
+ const field = form.elements[key];
12
+ return field?.validationMessage
13
+ ? { ...result, [key]: field.validationMessage }
14
+ : { ...result };
15
+ }, {});
16
+ return result;
17
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=form-values.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-values.test.d.ts","sourceRoot":"","sources":["../../src/lib/form-values.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { render } from '@adobe/elsie/lib/tests';
2
+ import { getFormValues, getFormErrors } from './form-values';
3
+ describe('form-values()', () => {
4
+ test('getFormValues()', () => {
5
+ const { container } = render(<form>
6
+ <input name="foo" required value="Foo"/>
7
+ <input name="bar" required value="Bar"/>
8
+ </form>);
9
+ const formElement = container.querySelector('form');
10
+ const values = getFormValues(formElement);
11
+ expect(values).toEqual({ bar: 'Bar', foo: 'Foo' });
12
+ });
13
+ test('getFormErrors()', () => {
14
+ const { container } = render(<form>
15
+ <input name="foo" required value="Foo"/>
16
+ <input name="bar" required/>
17
+ <input name="age" type="number" value="uno"/>
18
+ <input name="website" type="url" value="url"/>
19
+ <input name="e-mail" type="email" value="email@"/>
20
+ </form>);
21
+ const formElement = container.querySelector('form');
22
+ const errors = getFormErrors(formElement);
23
+ expect(errors).toEqual({
24
+ bar: 'Constraints not satisfied',
25
+ website: 'Constraints not satisfied',
26
+ 'e-mail': 'Constraints not satisfied',
27
+ });
28
+ });
29
+ });
package/lib/i18n.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Convert locale from Magento standard to react-intl BCP 47 language tag
3
+ *
4
+ * @param {string} locale - A locale (e.g. `fr_FR`).
5
+ * @returns {string} A BCP 47 language tag (e.g. `fr-FR`).
6
+ */
7
+ export declare const toLanguageTag: (locale: string) => string;
8
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/lib/i18n.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,WAAY,MAAM,WAE3C,CAAC"}
package/lib/i18n.js ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Convert locale from Magento standard to react-intl BCP 47 language tag
3
+ *
4
+ * @param {string} locale - A locale (e.g. `fr_FR`).
5
+ * @returns {string} A BCP 47 language tag (e.g. `fr-FR`).
6
+ */
7
+ export const toLanguageTag = (locale) => {
8
+ return locale.replace('_', '-');
9
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=i18n.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.test.d.ts","sourceRoot":"","sources":["../../src/lib/i18n.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { toLanguageTag } from './i18n';
2
+ describe('i18n', () => {
3
+ test('locale is transformed to language tag format', () => {
4
+ const magentoLocale = 'en_US';
5
+ const languageTag = toLanguageTag(magentoLocale);
6
+ expect(languageTag).toBe('en-US');
7
+ });
8
+ });
@@ -0,0 +1,4 @@
1
+ export declare const setImageParamsKeyMap: (value: typeof this._map) => void, getImageParamsKeyMap: () => {
2
+ [key: string]: string;
3
+ } | undefined;
4
+ //# sourceMappingURL=image-params-keymap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-params-keymap.d.ts","sourceRoot":"","sources":["../../src/lib/image-params-keymap.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAgB,oBAAoB,UAVrB,OAAO,IAAI,CAAC,IAAI,WAUe,oBAAoB;;aACpD,CAAC"}
@@ -0,0 +1,19 @@
1
+ class ImageParamsKeyMap {
2
+ _map;
3
+ get map() {
4
+ return this._map;
5
+ }
6
+ set map(value) {
7
+ this._map = value;
8
+ }
9
+ getMethods() {
10
+ return {
11
+ setMap: (value) => {
12
+ this.map = value;
13
+ },
14
+ getMap: () => this.map,
15
+ };
16
+ }
17
+ }
18
+ const keyMap = new ImageParamsKeyMap();
19
+ export const { setMap: setImageParamsKeyMap, getMap: getImageParamsKeyMap } = keyMap.getMethods();
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=image-params-keymap.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-params-keymap.test.d.ts","sourceRoot":"","sources":["../../src/lib/image-params-keymap.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { setImageParamsKeyMap, getImageParamsKeyMap, } from './image-params-keymap';
2
+ describe('ImageParamsKeyMap', () => {
3
+ test('setImageParamsKeyMap() should set the map and getImageParamsKeyMap() should get the map', () => {
4
+ setImageParamsKeyMap({ width: 'w' });
5
+ expect(getImageParamsKeyMap()).toEqual({ width: 'w' });
6
+ });
7
+ });
package/lib/index.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ export * from '@adobe/elsie/lib/form-values';
2
+ export * from '@adobe/elsie/lib/classes';
3
+ export * from '@adobe/elsie/lib/deepmerge';
4
+ export * from '@adobe/elsie/lib/debounce';
5
+ export * from '@adobe/elsie/lib/resolve-image';
6
+ export * from '@adobe/elsie/lib/render';
7
+ export * from '@adobe/elsie/lib/i18n';
8
+ export * from '@adobe/elsie/lib/initializer';
9
+ export * from '@adobe/elsie/lib/config';
10
+ export * from '@adobe/elsie/lib/types';
11
+ export * from '@adobe/elsie/lib/slot';
12
+ export * from '@adobe/elsie/lib/vcomponent';
13
+ export * from '@adobe/elsie/lib/image-params-keymap';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,13 @@
1
+ export * from '@adobe/elsie/lib/form-values';
2
+ export * from '@adobe/elsie/lib/classes';
3
+ export * from '@adobe/elsie/lib/deepmerge';
4
+ export * from '@adobe/elsie/lib/debounce';
5
+ export * from '@adobe/elsie/lib/resolve-image';
6
+ export * from '@adobe/elsie/lib/render';
7
+ export * from '@adobe/elsie/lib/i18n';
8
+ export * from '@adobe/elsie/lib/initializer';
9
+ export * from '@adobe/elsie/lib/config';
10
+ export * from '@adobe/elsie/lib/types';
11
+ export * from '@adobe/elsie/lib/slot';
12
+ export * from '@adobe/elsie/lib/vcomponent';
13
+ export * from '@adobe/elsie/lib/image-params-keymap';
@@ -0,0 +1,78 @@
1
+ import { Config } from '@adobe/elsie/lib';
2
+ type Listener = {
3
+ off(): void;
4
+ };
5
+ type Listeners<T> = (config?: T) => Array<Listener | undefined>;
6
+ type Init<T> = (config?: T) => Promise<void>;
7
+ type Options<T> = {
8
+ init: Init<T>;
9
+ listeners: Listeners<T>;
10
+ };
11
+ /**
12
+ * `Initializer` is a class that represents an initializer.
13
+ * An initializer is responsible for setting up event listeners and initializing a module.
14
+ *
15
+ * @class
16
+ *
17
+ * @property {Function} listeners - A method that accepts a config object and returns an array of listeners.
18
+ * @property {Function} init - A method that initializes the module. It accepts an options object.
19
+ * @property {Config} config - A Config object that stores the configuration for the module.
20
+ *
21
+ * @method constructor - Constructs a new Initializer. Accepts an options object with `init` and `listeners` properties.
22
+ */
23
+ export declare class Initializer<T> {
24
+ private _listeners;
25
+ listeners: Listeners<T>;
26
+ init: Init<T>;
27
+ config: Config<T>;
28
+ /**
29
+ * Constructs a new Initializer.
30
+ *
31
+ * @param {Object} options - The options for the Initializer.
32
+ * @param {Function} options.listeners - A function that accepts a config object and returns an array of listeners.
33
+ * @param {Function} options.init - A function that initializes the module. It accepts an options object.
34
+ */
35
+ constructor({ init, listeners }: Options<T>);
36
+ }
37
+ type Initializers = [Initializer<any>, {
38
+ [key: string]: any;
39
+ } | undefined][];
40
+ /**
41
+ * Class representing initializers.
42
+ *
43
+ * @class
44
+ *
45
+ * @method register - Registers a new initializer. If the initializers have already been mounted, it also immediately binds the event listeners and initializes the API for the new initializer.
46
+ * @method mount - Mounts all registered initializers. This involves binding the event listeners and initializing the APIs for each initializer, in that order.
47
+ * @method setImageParamKeys - Sets the image parameter keys. These keys are used when initializing the APIs for the initializers.
48
+ */
49
+ export declare class initializers {
50
+ static _initializers: Initializers;
51
+ static _mounted: boolean;
52
+ static _imageParamsKeyMap: {
53
+ [key: string]: string;
54
+ } | undefined;
55
+ /**
56
+ * Registers a new initializer.
57
+ *
58
+ * @param initializer - The initializer to register. This should be an object with `listeners` and `init` methods.
59
+ * @param options - An optional object with additional options. These options are passed to the `listeners` and `init` methods of the initializer.
60
+ */
61
+ static register(initializer: Initializer<any>, options?: {
62
+ [key: string]: any;
63
+ }): void;
64
+ /**
65
+ * Mounts all registered initializers.
66
+ */
67
+ static mount(): void;
68
+ /**
69
+ * Sets the image parameter keys.
70
+ *
71
+ * @param params - An object mapping keys to values.
72
+ */
73
+ static setImageParamKeys(params: {
74
+ [key: string]: any;
75
+ }): void;
76
+ }
77
+ export {};
78
+ //# sourceMappingURL=initializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializer.d.ts","sourceRoot":"","sources":["../../src/lib/initializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAwB,MAAM,kBAAkB,CAAC;AAEhE,KAAK,QAAQ,GAAG;IAAE,GAAG,IAAI,IAAI,CAAA;CAAE,CAAC;AAEhC,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;AAEhE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7C,KAAK,OAAO,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAE7D;;;;;;;;;;;GAWG;AAEH,qBAAa,WAAW,CAAC,CAAC;IACxB,OAAO,CAAC,UAAU,CAAkB;IACpC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,MAAM,YAA4B;IAElC;;;;;;OAMG;gBACS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;CAe5C;AAED,KAAK,YAAY,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,SAAS,CAAC,EAAE,CAAC;AAE7E;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,MAAM,CAAC,aAAa,EAAE,YAAY,CAAM;IACxC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAS;IACjC,MAAM,CAAC,kBAAkB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,SAAS,CAAa;IAE7E;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CACb,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,EAC7B,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IASlC;;OAEG;IACH,MAAM,CAAC,KAAK;IAiBZ;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;CAGxD"}
@@ -0,0 +1,93 @@
1
+ import { Config, setImageParamsKeyMap } from '@adobe/elsie/lib';
2
+ /**
3
+ * `Initializer` is a class that represents an initializer.
4
+ * An initializer is responsible for setting up event listeners and initializing a module.
5
+ *
6
+ * @class
7
+ *
8
+ * @property {Function} listeners - A method that accepts a config object and returns an array of listeners.
9
+ * @property {Function} init - A method that initializes the module. It accepts an options object.
10
+ * @property {Config} config - A Config object that stores the configuration for the module.
11
+ *
12
+ * @method constructor - Constructs a new Initializer. Accepts an options object with `init` and `listeners` properties.
13
+ */
14
+ export class Initializer {
15
+ _listeners = [];
16
+ listeners;
17
+ init;
18
+ config = new Config({});
19
+ /**
20
+ * Constructs a new Initializer.
21
+ *
22
+ * @param {Object} options - The options for the Initializer.
23
+ * @param {Function} options.listeners - A function that accepts a config object and returns an array of listeners.
24
+ * @param {Function} options.init - A function that initializes the module. It accepts an options object.
25
+ */
26
+ constructor({ init, listeners }) {
27
+ this.listeners = (config) => {
28
+ // Unbind existing listeners
29
+ this._listeners.forEach((listener) => listener.off());
30
+ // Bind new listeners
31
+ return (this._listeners = listeners(config));
32
+ };
33
+ this.init = (options) => {
34
+ const { imageParamsKeyMap, ...rest } = options;
35
+ this.config.setConfig({ ...this.config.getConfig(), ...rest });
36
+ setImageParamsKeyMap(imageParamsKeyMap);
37
+ return init(options);
38
+ };
39
+ }
40
+ }
41
+ /**
42
+ * Class representing initializers.
43
+ *
44
+ * @class
45
+ *
46
+ * @method register - Registers a new initializer. If the initializers have already been mounted, it also immediately binds the event listeners and initializes the API for the new initializer.
47
+ * @method mount - Mounts all registered initializers. This involves binding the event listeners and initializing the APIs for each initializer, in that order.
48
+ * @method setImageParamKeys - Sets the image parameter keys. These keys are used when initializing the APIs for the initializers.
49
+ */
50
+ export class initializers {
51
+ static _initializers = [];
52
+ static _mounted = false;
53
+ static _imageParamsKeyMap = undefined;
54
+ /**
55
+ * Registers a new initializer.
56
+ *
57
+ * @param initializer - The initializer to register. This should be an object with `listeners` and `init` methods.
58
+ * @param options - An optional object with additional options. These options are passed to the `listeners` and `init` methods of the initializer.
59
+ */
60
+ static register(initializer, options) {
61
+ if (initializers._mounted) {
62
+ initializer.listeners?.(options);
63
+ initializer.init?.(options);
64
+ }
65
+ initializers._initializers.push([initializer, options]);
66
+ }
67
+ /**
68
+ * Mounts all registered initializers.
69
+ */
70
+ static mount() {
71
+ initializers._mounted = true;
72
+ // In this specific order
73
+ // 1. Bind events
74
+ initializers._initializers?.forEach(([initializer, options]) => {
75
+ initializer.listeners?.(options);
76
+ });
77
+ // 2. Initialize APIs
78
+ initializers._initializers?.forEach(([initializer, options]) => {
79
+ initializer.init?.({
80
+ imageParamsKeyMap: initializers._imageParamsKeyMap,
81
+ ...options,
82
+ });
83
+ });
84
+ }
85
+ /**
86
+ * Sets the image parameter keys.
87
+ *
88
+ * @param params - An object mapping keys to values.
89
+ */
90
+ static setImageParamKeys(params) {
91
+ initializers._imageParamsKeyMap = params;
92
+ }
93
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=initializer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializer.test.d.ts","sourceRoot":"","sources":["../../src/lib/initializer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ import { setImageParamsKeyMap } from './image-params-keymap';
2
+ import { Initializer, initializers } from './initializer';
3
+ jest.mock('@adobe/elsie/lib/image-params-keymap', () => ({
4
+ setImageParamsKeyMap: jest.fn(),
5
+ }));
6
+ describe('Initializer', () => {
7
+ test('init', async () => {
8
+ const init = jest.fn();
9
+ const initializer = new Initializer({ init, listeners: () => [] });
10
+ await initializer.init({ foo: 'bar' });
11
+ expect(init).toHaveBeenCalledWith({ foo: 'bar' });
12
+ });
13
+ test('listeners', () => {
14
+ const listenerOffMock = jest.fn();
15
+ const listenerMock = { off: listenerOffMock };
16
+ const listeners = jest.fn().mockReturnValue([listenerMock]);
17
+ const initializer = new Initializer({
18
+ init: () => Promise.resolve(),
19
+ listeners,
20
+ });
21
+ initializer.listeners({ foo: 'bar' });
22
+ expect(listenerOffMock).not.toHaveBeenCalled();
23
+ expect(listeners).toHaveBeenCalledWith({ foo: 'bar' });
24
+ initializer.listeners({ foo: 'bar' });
25
+ // Make sure it unbinds existing listeners
26
+ expect(listenerOffMock).toHaveBeenCalledTimes(1);
27
+ });
28
+ });
29
+ describe('initializers', () => {
30
+ test('should call every init and listener on mount', async () => {
31
+ const init = jest.fn();
32
+ const listeners = jest.fn().mockReturnValue([]);
33
+ const initializer = new Initializer({ init, listeners });
34
+ initializers.register(initializer, { foo: 'bar' });
35
+ initializers.mount();
36
+ expect(init).toHaveBeenCalledWith({ foo: 'bar' });
37
+ expect(listeners).toHaveBeenCalledWith({ foo: 'bar' });
38
+ });
39
+ test('should call init and listeners if registered after mount', async () => {
40
+ const init = jest.fn();
41
+ const listeners = jest.fn().mockReturnValue([]);
42
+ const initializer = new Initializer({ init, listeners });
43
+ initializers.mount();
44
+ expect(init).not.toHaveBeenCalledWith({ foo: 'bar' });
45
+ expect(listeners).not.toHaveBeenCalledWith({ foo: 'bar' });
46
+ initializers.register(initializer, { foo: 'bar' });
47
+ expect(init).toHaveBeenCalledWith({ foo: 'bar' });
48
+ expect(listeners).toHaveBeenCalledWith({ foo: 'bar' });
49
+ });
50
+ describe('setImageParamKeys()', () => {
51
+ test('should pass imageParamKeys to keymap class', async () => {
52
+ const init = jest.fn();
53
+ const listeners = jest.fn().mockReturnValue([]);
54
+ const initializer = new Initializer({ init, listeners });
55
+ initializers.setImageParamKeys({ width: 'w' });
56
+ initializers.register(initializer, { foo: 'bar' });
57
+ initializers.mount();
58
+ expect(setImageParamsKeyMap).toHaveBeenCalledWith({
59
+ width: 'w',
60
+ });
61
+ expect(init).toHaveBeenCalledWith({ foo: 'bar' });
62
+ });
63
+ });
64
+ });
@@ -0,0 +1,10 @@
1
+ import { VNode } from 'preact';
2
+ import { Container } from '@adobe/elsie/lib';
3
+ export declare class Render {
4
+ private _provider;
5
+ constructor(provider: VNode<any>);
6
+ render<T>(Component: Container<T>, props: T): (rootElement: HTMLElement) => Promise<void>;
7
+ unmount(rootElement: HTMLElement): void;
8
+ toString<T>(Component: Container<T>, props: T, options?: T): Promise<string>;
9
+ }
10
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/lib/render.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAc,MAAM,kBAAkB,CAAC;AAEzD,qBAAa,MAAM;IACjB,OAAO,CAAC,SAAS,CAAa;gBAElB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC;IAIhC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,iBACd,WAAW;IAexC,OAAO,CAAC,WAAW,EAAE,WAAW;IAM1B,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;CAajE"}
package/lib/render.jsx ADDED
@@ -0,0 +1,34 @@
1
+ import { render } from 'preact';
2
+ import renderToString from 'preact-render-to-string';
3
+ import { VComponent } from '@adobe/elsie/lib';
4
+ export class Render {
5
+ _provider;
6
+ constructor(provider) {
7
+ this._provider = provider;
8
+ }
9
+ render(Component, props) {
10
+ return async (rootElement) => {
11
+ if (!Component)
12
+ throw new Error('Component is not defined');
13
+ if (!rootElement)
14
+ throw new Error('Root element is not defined');
15
+ const initialData = (await Component.getInitialData?.(props)) ?? {};
16
+ render(<VComponent node={this._provider} {...this._provider.props}>
17
+ <Component {...props} initialData={initialData}/>
18
+ </VComponent>, rootElement);
19
+ };
20
+ }
21
+ unmount(rootElement) {
22
+ if (!rootElement)
23
+ throw new Error('Root element is not defined');
24
+ render(null, rootElement);
25
+ }
26
+ async toString(Component, props, options) {
27
+ if (!Component)
28
+ throw new Error('Component is not defined');
29
+ const initialData = (await Component.getInitialData?.(props)) ?? {};
30
+ return renderToString(<VComponent node={this._provider} {...this._provider.props}>
31
+ <Component {...props} initialData={initialData}/>
32
+ </VComponent>, {}, { ...options });
33
+ }
34
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=render.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.test.d.ts","sourceRoot":"","sources":["../../src/lib/render.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,70 @@
1
+ import { Render } from './render';
2
+ import { render } from 'preact';
3
+ import renderToString from 'preact-render-to-string';
4
+ import { VComponent } from '.';
5
+ jest.mock('preact');
6
+ jest.mock('preact-render-to-string');
7
+ describe('Render', () => {
8
+ beforeEach(() => {
9
+ jest.clearAllMocks();
10
+ });
11
+ test('render', async () => {
12
+ const provider = new Render(<div />);
13
+ await provider.render(() => <span />, {})(document.createElement('div'));
14
+ expect(render).toHaveBeenCalled();
15
+ });
16
+ test('render without rootElement', async () => {
17
+ const provider = new Render(<div />);
18
+ //@ts-ignore
19
+ // eslint-disable-next-line jest/valid-expect
20
+ expect(provider.render(() => <span />)(null)).rejects.toThrowError('Root element is not defined');
21
+ });
22
+ test('render wihtout component', async () => {
23
+ const provider = new Render(<div />);
24
+ //@ts-ignore
25
+ // eslint-disable-next-line jest/valid-expect
26
+ expect(provider.render(null)(null)).rejects.toThrowError('Component is not defined');
27
+ });
28
+ test('unmount', async () => {
29
+ const provider = new Render(<div />);
30
+ const root = document.createElement('div');
31
+ provider.unmount(root);
32
+ expect(render).toHaveBeenCalledWith(null, root);
33
+ });
34
+ test('unmount without rootElement', async () => {
35
+ const provider = new Render(<div />);
36
+ //@ts-ignore
37
+ // eslint-disable-next-line jest/valid-expect
38
+ expect(() => provider.unmount()).toThrow('Root element is not defined');
39
+ });
40
+ test('toString', async () => {
41
+ const provider = new Render(<div />);
42
+ const ChildTestComponent = () => <span />;
43
+ await provider.toString(ChildTestComponent, {});
44
+ const newComponent = (<VComponent node={<div />}>
45
+ {(() => (<ChildTestComponent initialData={{}}/>))()}
46
+ </VComponent>);
47
+ // Remove the internal __v properties of components so they can be compared
48
+ const deepOmitInternalProperties = (obj) => {
49
+ if (Array.isArray(obj)) {
50
+ return obj.map(deepOmitInternalProperties);
51
+ }
52
+ else if (obj !== null && typeof obj === 'object') {
53
+ /* eslint-disable-next-line @typescript-eslint/no-unused-vars */
54
+ const { __v, ...rest } = obj;
55
+ Object.keys(rest).forEach((key) => {
56
+ rest[key] = deepOmitInternalProperties(rest[key]);
57
+ });
58
+ return rest;
59
+ }
60
+ return obj;
61
+ };
62
+ expect(deepOmitInternalProperties(renderToString.mock.calls[0][0])).toEqual(deepOmitInternalProperties(newComponent));
63
+ });
64
+ test('toString without component', async () => {
65
+ const provider = new Render(<div />);
66
+ //@ts-ignore
67
+ // eslint-disable-next-line jest/valid-expect
68
+ expect(provider.toString(null)).rejects.toThrowError('Component is not defined');
69
+ });
70
+ });
@@ -0,0 +1,10 @@
1
+ export interface ResolveImageUrlOptions {
2
+ width: number;
3
+ height?: number;
4
+ auto?: string;
5
+ quality?: number;
6
+ crop?: boolean;
7
+ fit?: string;
8
+ }
9
+ export declare const generateSrcset: (imageURL: string, options: ResolveImageUrlOptions) => string | undefined;
10
+ //# sourceMappingURL=resolve-image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-image.d.ts","sourceRoot":"","sources":["../../src/lib/resolve-image.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAqCD,eAAO,MAAM,cAAc,aACf,MAAM,WACP,sBAAsB,uBAqBhC,CAAC"}