@agilant/toga-blox 1.0.9 → 1.0.11

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 (523) hide show
  1. package/dist/components/Badge/Badge.d.ts +4 -0
  2. package/dist/components/Badge/Badge.js +9 -0
  3. package/dist/components/Badge/Badge.stories.d.ts +7 -0
  4. package/dist/components/Badge/Badge.stories.js +196 -0
  5. package/dist/components/Badge/Badge.test.d.ts +1 -0
  6. package/dist/components/Badge/Badge.test.js +80 -0
  7. package/dist/components/Badge/Badge.types.d.ts +25 -0
  8. package/dist/components/Badge/Badge.types.js +1 -0
  9. package/dist/components/Badge/index.js +2 -0
  10. package/dist/components/Card/Card.d.ts +4 -0
  11. package/dist/components/Card/Card.js +11 -0
  12. package/dist/components/Card/Card.stories.d.ts +12 -0
  13. package/dist/components/Card/Card.stories.js +173 -0
  14. package/dist/components/Card/Card.test.d.ts +1 -0
  15. package/dist/components/Card/Card.test.js +35 -0
  16. package/dist/components/Card/Card.types.d.ts +10 -0
  17. package/dist/components/Card/Card.types.js +1 -0
  18. package/dist/components/Card/DUMMYPRODUCTDATA.json +826 -0
  19. package/dist/components/Card/index.d.ts +3 -0
  20. package/dist/components/Card/templates/CategoryCardTemplate.d.ts +27 -0
  21. package/dist/components/Card/templates/CategoryCardTemplate.js +7 -0
  22. package/dist/components/Card/templates/CompassCardTemplate.d.ts +23 -0
  23. package/dist/components/Card/templates/CompassCardTemplate.js +7 -0
  24. package/dist/components/Card/templates/CounterContentCardTemplate.d.ts +53 -0
  25. package/dist/components/Card/templates/CounterContentCardTemplate.js +46 -0
  26. package/dist/components/Card/templates/HorizontalCardTemplate.d.ts +65 -0
  27. package/dist/components/Card/templates/HorizontalCardTemplate.js +13 -0
  28. package/dist/components/Card/templates/ItemCardTemplate.d.ts +61 -0
  29. package/dist/components/Card/templates/ItemCardTemplate.js +9 -0
  30. package/dist/components/Card/templates/KitContentCardTemplate.d.ts +53 -0
  31. package/dist/components/Card/templates/KitContentCardTemplate.js +9 -0
  32. package/dist/components/Card/templates/ShippingAddressCardTemplate.d.ts +15 -0
  33. package/dist/components/Card/templates/ShippingAddressCardTemplate.js +9 -0
  34. package/dist/components/Card/templates/VerticalCardTemplate.d.ts +61 -0
  35. package/dist/components/Card/templates/VerticalCardTemplate.js +9 -0
  36. package/dist/components/CounterButton/CounterButton.d.ts +4 -0
  37. package/dist/components/CounterButton/CounterButton.js +7 -0
  38. package/dist/components/CounterButton/CounterButton.stories.d.ts +4 -0
  39. package/dist/components/CounterButton/CounterButton.stories.js +69 -0
  40. package/dist/components/CounterButton/CounterButton.types.d.ts +10 -0
  41. package/dist/components/CounterButton/CounterButton.types.js +1 -0
  42. package/dist/components/Description/Description.d.ts +4 -0
  43. package/dist/components/Description/Description.js +5 -0
  44. package/dist/components/Description/Description.stories.d.ts +5 -0
  45. package/dist/components/Description/Description.stories.js +54 -0
  46. package/dist/components/Description/Description.types.d.ts +8 -0
  47. package/dist/components/Description/Description.types.js +1 -0
  48. package/dist/components/DropDownIconButton/DropDownIconButton.d.ts +4 -0
  49. package/dist/components/DropDownIconButton/DropDownIconButton.js +24 -0
  50. package/dist/components/DropDownIconButton/DropDownIconButton.stories.d.ts +6 -0
  51. package/dist/components/DropDownIconButton/DropDownIconButton.stories.js +145 -0
  52. package/dist/components/DropDownIconButton/DropDownIconButton.test.d.ts +1 -0
  53. package/dist/components/DropDownIconButton/DropDownIconButton.test.js +40 -0
  54. package/dist/components/DropDownIconButton/DropDownIconButton.types.d.ts +20 -0
  55. package/dist/components/DropDownIconButton/DropDownIconButton.types.js +1 -0
  56. package/dist/components/DropDownIconButton/index.js +2 -0
  57. package/dist/components/Footer/ContactInfoItem.d.ts +7 -0
  58. package/dist/components/Footer/ContactInfoItem.js +4 -0
  59. package/dist/components/Footer/DUMMYFOOTERDATA.json +132 -0
  60. package/dist/components/Footer/Footer.d.ts +4 -0
  61. package/dist/components/Footer/Footer.js +12 -0
  62. package/dist/components/Footer/Footer.stories.d.ts +7 -0
  63. package/dist/components/Footer/Footer.stories.js +155 -0
  64. package/dist/components/Footer/Footer.test.d.ts +1 -0
  65. package/dist/components/Footer/Footer.test.js +48 -0
  66. package/dist/components/Footer/Footer.types.d.ts +42 -0
  67. package/dist/components/Footer/Footer.types.js +1 -0
  68. package/dist/components/FormButton/FormButton.d.ts +4 -0
  69. package/dist/components/FormButton/FormButton.js +49 -0
  70. package/dist/components/FormButton/FormButton.stories.d.ts +12 -0
  71. package/dist/components/FormButton/FormButton.stories.js +200 -0
  72. package/dist/components/FormButton/FormButton.test.d.ts +1 -0
  73. package/dist/components/FormButton/FormButton.test.js +27 -0
  74. package/dist/components/FormButton/FormButton.types.d.ts +24 -0
  75. package/dist/components/FormButton/FormButton.types.js +1 -0
  76. package/dist/components/FormButton/index.js +2 -0
  77. package/dist/components/GenericList/DUMMYLISTDATA.json +560 -0
  78. package/dist/components/GenericList/GenericList.d.ts +16 -0
  79. package/dist/components/GenericList/GenericList.js +50 -0
  80. package/dist/components/GenericList/GenericList.stories.d.ts +35 -0
  81. package/dist/components/GenericList/GenericList.stories.js +87 -0
  82. package/dist/components/GenericList/GenericList.test.d.ts +1 -0
  83. package/dist/components/GenericList/GenericList.test.js +24 -0
  84. package/dist/components/GenericList/templates/DummyDataList.d.ts +6 -0
  85. package/dist/components/GenericList/templates/DummyDataList.js +6 -0
  86. package/dist/components/GenericList/templates/DynamicIconList.d.ts +32 -0
  87. package/dist/components/GenericList/templates/DynamicIconList.js +7 -0
  88. package/dist/components/GetSupport/GetSupport.d.ts +4 -0
  89. package/dist/components/GetSupport/GetSupport.js +7 -0
  90. package/dist/components/GetSupport/GetSupport.stories.d.ts +5 -0
  91. package/dist/components/GetSupport/GetSupport.stories.js +70 -0
  92. package/dist/components/GetSupport/GetSupport.test.d.ts +1 -0
  93. package/dist/components/GetSupport/GetSupport.test.js +49 -0
  94. package/dist/components/GetSupport/GetSupport.types.d.ts +11 -0
  95. package/dist/components/GetSupport/GetSupport.types.js +1 -0
  96. package/dist/components/HamburgerButton/Hamburger.stories.d.ts +5 -0
  97. package/dist/components/HamburgerButton/Hamburger.stories.js +97 -0
  98. package/dist/components/HamburgerButton/HamburgerButton.d.ts +4 -0
  99. package/dist/components/HamburgerButton/HamburgerButton.js +15 -0
  100. package/dist/components/HamburgerButton/HamburgerButton.types.d.ts +7 -0
  101. package/dist/components/HamburgerButton/HamburgerButton.types.js +1 -0
  102. package/dist/components/HamburgerButton/index.js +2 -0
  103. package/dist/components/Header/DUMMYICONDATA.json +136 -0
  104. package/dist/components/Header/Header.d.ts +4 -0
  105. package/dist/components/Header/Header.js +62 -0
  106. package/dist/components/Header/Header.stories.d.ts +8 -0
  107. package/dist/components/Header/Header.stories.js +225 -0
  108. package/dist/components/Header/Header.test.d.ts +1 -0
  109. package/dist/components/Header/Header.test.js +107 -0
  110. package/dist/components/Header/Header.types.d.ts +40 -0
  111. package/dist/components/Header/Header.types.js +1 -0
  112. package/dist/components/Header/headerContext.d.ts +39 -0
  113. package/dist/components/Header/headerContext.js +44 -0
  114. package/dist/components/Header/index.js +2 -0
  115. package/dist/components/Hero/Hero.d.ts +4 -0
  116. package/dist/components/Hero/Hero.js +21 -0
  117. package/dist/components/Hero/Hero.stories.d.ts +13 -0
  118. package/dist/components/Hero/Hero.stories.js +46 -0
  119. package/dist/components/Hero/Hero.test.d.ts +1 -0
  120. package/dist/components/Hero/Hero.test.js +62 -0
  121. package/dist/components/Hero/Hero.types.d.ts +8 -0
  122. package/dist/components/Hero/Hero.types.js +1 -0
  123. package/dist/components/Hero/index.js +2 -0
  124. package/dist/components/IconButton/IconButton.d.ts +4 -0
  125. package/dist/components/IconButton/IconButton.js +18 -0
  126. package/dist/components/IconButton/IconButton.stories.d.ts +7 -0
  127. package/dist/components/IconButton/IconButton.stories.js +187 -0
  128. package/dist/components/IconButton/IconButton.test.d.ts +1 -0
  129. package/dist/components/IconButton/IconButton.test.js +28 -0
  130. package/dist/components/IconButton/IconButton.types.d.ts +27 -0
  131. package/dist/components/IconButton/IconButton.types.js +1 -0
  132. package/dist/components/IconButton/index.js +2 -0
  133. package/dist/components/Image/Image.d.ts +4 -0
  134. package/dist/components/Image/Image.js +19 -0
  135. package/dist/components/Image/Image.stories.d.ts +14 -0
  136. package/dist/components/Image/Image.stories.js +63 -0
  137. package/dist/components/Image/Image.test.d.ts +1 -0
  138. package/dist/components/Image/Image.test.js +47 -0
  139. package/dist/components/Image/Image.types.d.ts +12 -0
  140. package/dist/components/Image/Image.types.js +1 -0
  141. package/dist/components/Image/index.js +2 -0
  142. package/dist/components/Input/Input.d.ts +4 -0
  143. package/dist/components/Input/Input.js +51 -0
  144. package/dist/components/Input/Input.stories.d.ts +13 -0
  145. package/dist/components/Input/Input.stories.js +364 -0
  146. package/dist/components/Input/Input.test.d.ts +1 -0
  147. package/dist/components/Input/Input.test.js +45 -0
  148. package/dist/components/Input/Input.types.d.ts +36 -0
  149. package/dist/components/Input/Input.types.js +1 -0
  150. package/dist/components/Input/InputMemoTypes.d.ts +2 -0
  151. package/dist/components/Input/InputMemoTypes.js +28 -0
  152. package/dist/components/Input/index.js +2 -0
  153. package/dist/components/MobileMenu/MobileMenu.d.ts +3 -0
  154. package/dist/components/MobileMenu/MobileMenu.js +7 -0
  155. package/dist/components/MobileMenu/MobileMenu.types.d.ts +20 -0
  156. package/dist/components/MobileMenu/MobileMenu.types.js +1 -0
  157. package/dist/components/MobileMenu/index.js +2 -0
  158. package/dist/components/Nav/DUMMYNAVDATA.json +234 -0
  159. package/dist/components/Nav/Nav.d.ts +4 -0
  160. package/dist/components/Nav/Nav.js +31 -0
  161. package/dist/components/Nav/Nav.stories.d.ts +6 -0
  162. package/dist/components/Nav/Nav.stories.js +164 -0
  163. package/dist/components/Nav/Nav.test.d.ts +1 -0
  164. package/dist/components/Nav/Nav.test.js +52 -0
  165. package/dist/components/Nav/Nav.types.d.ts +38 -0
  166. package/dist/components/Nav/Nav.types.js +1 -0
  167. package/dist/components/Nav/index.js +2 -0
  168. package/dist/components/Page/TableDataDummy.d.ts +3 -0
  169. package/dist/components/Page/TableDataDummy.js +5 -0
  170. package/dist/components/Page/ViewPageTemplate.d.ts +3 -0
  171. package/dist/components/Page/ViewPageTemplate.js +5 -0
  172. package/dist/components/Page/ViewPageTemplate.stories.d.ts +8 -0
  173. package/dist/components/Page/ViewPageTemplate.stories.js +73 -0
  174. package/dist/components/Page/ViewPageTemplate.test.d.ts +1 -0
  175. package/dist/components/Page/ViewPageTemplate.test.js +71 -0
  176. package/{src/components/Page/ViewPageTemplate.types.ts → dist/components/Page/ViewPageTemplate.types.d.ts} +2 -3
  177. package/dist/components/Page/ViewPageTemplate.types.js +1 -0
  178. package/dist/components/Page/index.js +2 -0
  179. package/dist/components/PageSection/PageSection.d.ts +4 -0
  180. package/dist/components/PageSection/PageSection.js +5 -0
  181. package/dist/components/PageSection/PageSection.stories.d.ts +6 -0
  182. package/dist/components/PageSection/PageSection.stories.js +40 -0
  183. package/{src/components/PageSection/PageSection.types.ts → dist/components/PageSection/PageSection.types.d.ts} +2 -3
  184. package/dist/components/PageSection/PageSection.types.js +1 -0
  185. package/dist/components/PageSection/PageSections.test.d.ts +1 -0
  186. package/dist/components/PageSection/PageSections.test.js +31 -0
  187. package/dist/components/PageSection/index.js +2 -0
  188. package/dist/components/SearchInput/SearchInput.d.ts +4 -0
  189. package/dist/components/SearchInput/SearchInput.js +17 -0
  190. package/dist/components/SearchInput/SearchInput.stories.d.ts +9 -0
  191. package/dist/components/SearchInput/SearchInput.stories.js +128 -0
  192. package/dist/components/SearchInput/SearchInput.types.d.ts +25 -0
  193. package/dist/components/SearchInput/SearchInput.types.js +1 -0
  194. package/dist/components/Slider/Slider.d.ts +4 -0
  195. package/dist/components/Slider/Slider.js +56 -0
  196. package/dist/components/Slider/Slider.stories.d.ts +6 -0
  197. package/dist/components/Slider/Slider.stories.js +82 -0
  198. package/dist/components/Slider/Slider.types.d.ts +21 -0
  199. package/dist/components/Slider/Slider.types.js +1 -0
  200. package/dist/components/Submenus/AdminSubmenu.d.ts +4 -0
  201. package/dist/components/Submenus/AdminSubmenu.js +5 -0
  202. package/dist/components/Submenus/AlertSubmenu.d.ts +4 -0
  203. package/dist/components/Submenus/AlertSubmenu.js +7 -0
  204. package/dist/components/Submenus/AlertSubmenuItem.d.ts +4 -0
  205. package/dist/components/Submenus/AlertSubmenuItem.js +5 -0
  206. package/dist/components/Submenus/types.d.ts +29 -0
  207. package/dist/components/Submenus/types.js +1 -0
  208. package/dist/components/Text/Text.d.ts +4 -0
  209. package/dist/components/Text/Text.js +12 -0
  210. package/dist/components/Text/Text.stories.d.ts +5 -0
  211. package/dist/components/Text/Text.stories.js +79 -0
  212. package/dist/components/Text/Text.test.d.ts +1 -0
  213. package/dist/components/Text/Text.test.js +31 -0
  214. package/{src/components/Text/Text.types.ts → dist/components/Text/Text.types.d.ts} +6 -8
  215. package/dist/components/Text/Text.types.js +1 -0
  216. package/dist/components/Text/index.js +2 -0
  217. package/dist/components/Toaster/Toaster.d.ts +4 -0
  218. package/dist/components/Toaster/Toaster.js +22 -0
  219. package/dist/components/Toaster/Toaster.stories.d.ts +23 -0
  220. package/dist/components/Toaster/Toaster.stories.js +102 -0
  221. package/dist/components/Toaster/Toaster.test.d.ts +1 -0
  222. package/dist/components/Toaster/Toaster.test.js +47 -0
  223. package/dist/components/Toaster/Toaster.types.d.ts +15 -0
  224. package/dist/components/Toaster/Toaster.types.js +1 -0
  225. package/dist/components/Toaster/index.js +2 -0
  226. package/dist/hoc/index.d.ts +1 -0
  227. package/dist/hoc/styling/withStoryBook.d.ts +6 -0
  228. package/dist/hoc/styling/withStoryBook.js +7 -0
  229. package/dist/main.css +1 -0
  230. package/dist/setupTests.js +1 -0
  231. package/dist/userHoc/index.js +1 -0
  232. package/dist/userHoc/withMemo.d.ts +5 -0
  233. package/dist/userHoc/withMemo.js +6 -0
  234. package/dist/utils/assertTagName.d.ts +3 -0
  235. package/dist/utils/assertTagName.js +6 -0
  236. package/dist/utils/generateAccordionItem.d.ts +15 -0
  237. package/dist/utils/generateAccordionItem.js +22 -0
  238. package/dist/utils/generateFooterContacts.d.ts +14 -0
  239. package/dist/utils/generateFooterContacts.js +19 -0
  240. package/dist/utils/generateNavMenu.d.ts +14 -0
  241. package/dist/utils/generateNavMenu.js +5 -0
  242. package/dist/utils/generateSocialList.d.ts +12 -0
  243. package/dist/utils/generateSocialList.js +4 -0
  244. package/dist/utils/getFontAwesomeIcon.d.ts +2 -0
  245. package/dist/utils/getFontAwesomeIcon.js +19 -0
  246. package/dist/utils/inputValidation.d.ts +6 -0
  247. package/dist/utils/inputValidation.js +12 -0
  248. package/package.json +9 -4
  249. package/.gitattributes +0 -5
  250. package/Dockerfile +0 -9
  251. package/assets/Logo.png +0 -0
  252. package/assets/cable.jpg +0 -0
  253. package/assets/card-1.jpg +0 -0
  254. package/assets/cat-logo.png +0 -0
  255. package/assets/compass-card-image-2.png +0 -0
  256. package/assets/compass-card-image-3.png +0 -0
  257. package/assets/compass-card-image-4.png +0 -0
  258. package/assets/compass-card-image.png +0 -0
  259. package/assets/compass-logo.png +0 -0
  260. package/assets/compass-tech-hero-bg.png +0 -0
  261. package/assets/contact-image.png +0 -0
  262. package/assets/green-laptop.png +0 -0
  263. package/assets/heroImage.png +0 -0
  264. package/assets/item.jpg +0 -0
  265. package/assets/map.png +0 -0
  266. package/assets/placeholder-no-image-available.png +0 -0
  267. package/assets/team.png +0 -0
  268. package/coverage/base.css +0 -224
  269. package/coverage/block-navigation.js +0 -87
  270. package/coverage/clover.xml +0 -953
  271. package/coverage/coverage-final.json +0 -74
  272. package/coverage/favicon.png +0 -0
  273. package/coverage/index.html +0 -551
  274. package/coverage/prettify.css +0 -1
  275. package/coverage/prettify.js +0 -2
  276. package/coverage/sort-arrow-sprite.png +0 -0
  277. package/coverage/sorter.js +0 -196
  278. package/coverage/toga-blox-npm/index.html +0 -131
  279. package/coverage/toga-blox-npm/postcss.config.js.html +0 -103
  280. package/coverage/toga-blox-npm/src/components/Badge/Badge.stories.tsx.html +0 -793
  281. package/coverage/toga-blox-npm/src/components/Badge/Badge.tsx.html +0 -247
  282. package/coverage/toga-blox-npm/src/components/Badge/index.html +0 -131
  283. package/coverage/toga-blox-npm/src/components/Card/Card.stories.tsx.html +0 -787
  284. package/coverage/toga-blox-npm/src/components/Card/Card.tsx.html +0 -163
  285. package/coverage/toga-blox-npm/src/components/Card/index.html +0 -131
  286. package/coverage/toga-blox-npm/src/components/Card/templates/CategoryCardTemplate.tsx.html +0 -343
  287. package/coverage/toga-blox-npm/src/components/Card/templates/CompassCardTemplate.tsx.html +0 -259
  288. package/coverage/toga-blox-npm/src/components/Card/templates/CounterContentCardTemplate.tsx.html +0 -685
  289. package/coverage/toga-blox-npm/src/components/Card/templates/HorizontalCardTemplate.tsx.html +0 -637
  290. package/coverage/toga-blox-npm/src/components/Card/templates/ItemCardTemplate.tsx.html +0 -550
  291. package/coverage/toga-blox-npm/src/components/Card/templates/KitContentCardTemplate.tsx.html +0 -469
  292. package/coverage/toga-blox-npm/src/components/Card/templates/ShippingAddressCardTemplate.tsx.html +0 -418
  293. package/coverage/toga-blox-npm/src/components/Card/templates/VerticalCardTemplate.tsx.html +0 -592
  294. package/coverage/toga-blox-npm/src/components/Card/templates/index.html +0 -221
  295. package/coverage/toga-blox-npm/src/components/CounterButton/CounterButton.stories.tsx.html +0 -358
  296. package/coverage/toga-blox-npm/src/components/CounterButton/CounterButton.tsx.html +0 -385
  297. package/coverage/toga-blox-npm/src/components/CounterButton/index.html +0 -131
  298. package/coverage/toga-blox-npm/src/components/Description/Description.stories.tsx.html +0 -286
  299. package/coverage/toga-blox-npm/src/components/Description/Description.tsx.html +0 -124
  300. package/coverage/toga-blox-npm/src/components/Description/index.html +0 -131
  301. package/coverage/toga-blox-npm/src/components/DropDownIconButton/DropDownIconButton.stories.tsx.html +0 -676
  302. package/coverage/toga-blox-npm/src/components/DropDownIconButton/DropDownIconButton.tsx.html +0 -346
  303. package/coverage/toga-blox-npm/src/components/DropDownIconButton/index.html +0 -131
  304. package/coverage/toga-blox-npm/src/components/Footer/ContactInfoItem.tsx.html +0 -139
  305. package/coverage/toga-blox-npm/src/components/Footer/Footer.stories.tsx.html +0 -934
  306. package/coverage/toga-blox-npm/src/components/Footer/Footer.tsx.html +0 -373
  307. package/coverage/toga-blox-npm/src/components/Footer/index.html +0 -146
  308. package/coverage/toga-blox-npm/src/components/FormButton/FormButton.stories.tsx.html +0 -952
  309. package/coverage/toga-blox-npm/src/components/FormButton/FormButton.tsx.html +0 -343
  310. package/coverage/toga-blox-npm/src/components/FormButton/index.html +0 -131
  311. package/coverage/toga-blox-npm/src/components/GenericList/GenericList.stories.tsx.html +0 -376
  312. package/coverage/toga-blox-npm/src/components/GenericList/GenericList.tsx.html +0 -520
  313. package/coverage/toga-blox-npm/src/components/GenericList/index.html +0 -131
  314. package/coverage/toga-blox-npm/src/components/GenericList/templates/DummyDataList.tsx.html +0 -154
  315. package/coverage/toga-blox-npm/src/components/GenericList/templates/DynamicIconList.tsx.html +0 -250
  316. package/coverage/toga-blox-npm/src/components/GenericList/templates/index.html +0 -131
  317. package/coverage/toga-blox-npm/src/components/GetSupport/GetSupport.stories.tsx.html +0 -325
  318. package/coverage/toga-blox-npm/src/components/GetSupport/GetSupport.tsx.html +0 -262
  319. package/coverage/toga-blox-npm/src/components/GetSupport/index.html +0 -131
  320. package/coverage/toga-blox-npm/src/components/HamburgerButton/Hamburger.stories.tsx.html +0 -760
  321. package/coverage/toga-blox-npm/src/components/HamburgerButton/HamburgerButton.tsx.html +0 -232
  322. package/coverage/toga-blox-npm/src/components/HamburgerButton/index.html +0 -131
  323. package/coverage/toga-blox-npm/src/components/Header/Header.stories.tsx.html +0 -1633
  324. package/coverage/toga-blox-npm/src/components/Header/Header.tsx.html +0 -814
  325. package/coverage/toga-blox-npm/src/components/Header/headerContext.tsx.html +0 -460
  326. package/coverage/toga-blox-npm/src/components/Header/index.html +0 -146
  327. package/coverage/toga-blox-npm/src/components/Hero/Hero.stories.tsx.html +0 -289
  328. package/coverage/toga-blox-npm/src/components/Hero/Hero.tsx.html +0 -259
  329. package/coverage/toga-blox-npm/src/components/Hero/index.html +0 -131
  330. package/coverage/toga-blox-npm/src/components/IconButton/IconButton.stories.tsx.html +0 -673
  331. package/coverage/toga-blox-npm/src/components/IconButton/IconButton.tsx.html +0 -313
  332. package/coverage/toga-blox-npm/src/components/IconButton/index.html +0 -131
  333. package/coverage/toga-blox-npm/src/components/Image/Image.stories.tsx.html +0 -322
  334. package/coverage/toga-blox-npm/src/components/Image/Image.tsx.html +0 -226
  335. package/coverage/toga-blox-npm/src/components/Image/index.html +0 -131
  336. package/coverage/toga-blox-npm/src/components/Input/Input.stories.tsx.html +0 -1621
  337. package/coverage/toga-blox-npm/src/components/Input/Input.tsx.html +0 -568
  338. package/coverage/toga-blox-npm/src/components/Input/InputMemoTypes.tsx.html +0 -181
  339. package/coverage/toga-blox-npm/src/components/Input/index.html +0 -146
  340. package/coverage/toga-blox-npm/src/components/MobileMenu/MobileMenu.tsx.html +0 -208
  341. package/coverage/toga-blox-npm/src/components/MobileMenu/index.html +0 -116
  342. package/coverage/toga-blox-npm/src/components/Nav/Nav.stories.tsx.html +0 -628
  343. package/coverage/toga-blox-npm/src/components/Nav/Nav.tsx.html +0 -622
  344. package/coverage/toga-blox-npm/src/components/Nav/index.html +0 -131
  345. package/coverage/toga-blox-npm/src/components/Page/TableDataDummy.tsx.html +0 -733
  346. package/coverage/toga-blox-npm/src/components/Page/ViewPageTemplate.stories.tsx.html +0 -1714
  347. package/coverage/toga-blox-npm/src/components/Page/ViewPageTemplate.tsx.html +0 -115
  348. package/coverage/toga-blox-npm/src/components/Page/index.html +0 -146
  349. package/coverage/toga-blox-npm/src/components/PageSection/PageSection.stories.tsx.html +0 -433
  350. package/coverage/toga-blox-npm/src/components/PageSection/PageSection.tsx.html +0 -121
  351. package/coverage/toga-blox-npm/src/components/PageSection/index.html +0 -131
  352. package/coverage/toga-blox-npm/src/components/SearchInput/SearchInput.stories.tsx.html +0 -517
  353. package/coverage/toga-blox-npm/src/components/SearchInput/SearchInput.tsx.html +0 -325
  354. package/coverage/toga-blox-npm/src/components/SearchInput/index.html +0 -131
  355. package/coverage/toga-blox-npm/src/components/Slider/Slider.stories.tsx.html +0 -349
  356. package/coverage/toga-blox-npm/src/components/Slider/Slider.tsx.html +0 -502
  357. package/coverage/toga-blox-npm/src/components/Slider/index.html +0 -131
  358. package/coverage/toga-blox-npm/src/components/Submenus/AdminSubmenu.tsx.html +0 -136
  359. package/coverage/toga-blox-npm/src/components/Submenus/AlertSubmenu.tsx.html +0 -253
  360. package/coverage/toga-blox-npm/src/components/Submenus/AlertSubmenuItem.tsx.html +0 -202
  361. package/coverage/toga-blox-npm/src/components/Submenus/index.html +0 -146
  362. package/coverage/toga-blox-npm/src/components/Text/Text.stories.tsx.html +0 -235
  363. package/coverage/toga-blox-npm/src/components/Text/Text.tsx.html +0 -172
  364. package/coverage/toga-blox-npm/src/components/Text/index.html +0 -131
  365. package/coverage/toga-blox-npm/src/components/Toaster/Toaster.stories.tsx.html +0 -445
  366. package/coverage/toga-blox-npm/src/components/Toaster/Toaster.tsx.html +0 -301
  367. package/coverage/toga-blox-npm/src/components/Toaster/index.html +0 -131
  368. package/coverage/toga-blox-npm/src/hoc/styling/index.html +0 -116
  369. package/coverage/toga-blox-npm/src/hoc/styling/withStoryBook.tsx.html +0 -142
  370. package/coverage/toga-blox-npm/src/userHoc/index.html +0 -116
  371. package/coverage/toga-blox-npm/src/userHoc/withMemo.tsx.html +0 -145
  372. package/coverage/toga-blox-npm/src/utils/assertTagName.tsx.html +0 -106
  373. package/coverage/toga-blox-npm/src/utils/generateAccordionItem.tsx.html +0 -373
  374. package/coverage/toga-blox-npm/src/utils/generateFooterContacts.tsx.html +0 -295
  375. package/coverage/toga-blox-npm/src/utils/generateNavMenu.tsx.html +0 -247
  376. package/coverage/toga-blox-npm/src/utils/generateSocialList.tsx.html +0 -187
  377. package/coverage/toga-blox-npm/src/utils/getFontAwesomeIcon.tsx.html +0 -145
  378. package/coverage/toga-blox-npm/src/utils/index.html +0 -206
  379. package/coverage/toga-blox-npm/src/utils/inputValidation.tsx.html +0 -163
  380. package/coverage/toga-blox-npm/tailwind.config.js.html +0 -205
  381. package/declarations.d.ts +0 -4
  382. package/docker-compose.yml +0 -22
  383. package/global.css +0 -4
  384. package/index.js +0 -4
  385. package/nodemon.json +0 -5
  386. package/postcss.config.js +0 -6
  387. package/src/components/Badge/Badge.stories.tsx +0 -236
  388. package/src/components/Badge/Badge.test.tsx +0 -175
  389. package/src/components/Badge/Badge.tsx +0 -54
  390. package/src/components/Badge/Badge.types.tsx +0 -26
  391. package/src/components/Card/Card.stories.tsx +0 -235
  392. package/src/components/Card/Card.test.tsx +0 -53
  393. package/src/components/Card/Card.tsx +0 -26
  394. package/src/components/Card/Card.types.ts +0 -11
  395. package/src/components/Card/DUMMYPRODUCTDATA.json +0 -826
  396. package/src/components/Card/templates/CategoryCardTemplate.tsx +0 -86
  397. package/src/components/Card/templates/CompassCardTemplate.tsx +0 -58
  398. package/src/components/Card/templates/CounterContentCardTemplate.tsx +0 -200
  399. package/src/components/Card/templates/HorizontalCardTemplate.tsx +0 -184
  400. package/src/components/Card/templates/ItemCardTemplate.tsx +0 -155
  401. package/src/components/Card/templates/KitContentCardTemplate.tsx +0 -128
  402. package/src/components/Card/templates/ShippingAddressCardTemplate.tsx +0 -111
  403. package/src/components/Card/templates/VerticalCardTemplate.tsx +0 -169
  404. package/src/components/CounterButton/CounterButton.stories.tsx +0 -91
  405. package/src/components/CounterButton/CounterButton.tsx +0 -100
  406. package/src/components/CounterButton/CounterButton.types.ts +0 -12
  407. package/src/components/Description/Description.stories.tsx +0 -67
  408. package/src/components/Description/Description.tsx +0 -13
  409. package/src/components/Description/Description.types.ts +0 -9
  410. package/src/components/DropDownIconButton/DropDownIconButton.stories.tsx +0 -197
  411. package/src/components/DropDownIconButton/DropDownIconButton.test.tsx +0 -90
  412. package/src/components/DropDownIconButton/DropDownIconButton.tsx +0 -87
  413. package/src/components/DropDownIconButton/DropDownIconButton.types.ts +0 -21
  414. package/src/components/Footer/ContactInfoItem.tsx +0 -18
  415. package/src/components/Footer/DUMMYFOOTERDATA.json +0 -132
  416. package/src/components/Footer/Footer.stories.tsx +0 -283
  417. package/src/components/Footer/Footer.test.tsx +0 -90
  418. package/src/components/Footer/Footer.tsx +0 -96
  419. package/src/components/Footer/Footer.types.tsx +0 -61
  420. package/src/components/FormButton/FormButton.stories.tsx +0 -289
  421. package/src/components/FormButton/FormButton.test.tsx +0 -73
  422. package/src/components/FormButton/FormButton.tsx +0 -86
  423. package/src/components/FormButton/FormButton.types.ts +0 -27
  424. package/src/components/GenericList/DUMMYLISTDATA.json +0 -560
  425. package/src/components/GenericList/GenericList.stories.tsx +0 -97
  426. package/src/components/GenericList/GenericList.test.tsx +0 -29
  427. package/src/components/GenericList/GenericList.tsx +0 -145
  428. package/src/components/GenericList/templates/DummyDataList.tsx +0 -23
  429. package/src/components/GenericList/templates/DynamicIconList.tsx +0 -55
  430. package/src/components/GetSupport/GetSupport.stories.tsx +0 -80
  431. package/src/components/GetSupport/GetSupport.test.tsx +0 -62
  432. package/src/components/GetSupport/GetSupport.tsx +0 -59
  433. package/src/components/GetSupport/GetSupport.types.ts +0 -11
  434. package/src/components/HamburgerButton/Hamburger.stories.tsx +0 -225
  435. package/src/components/HamburgerButton/HamburgerButton.tsx +0 -49
  436. package/src/components/HamburgerButton/HamburgerButton.types.tsx +0 -7
  437. package/src/components/Header/DUMMYICONDATA.json +0 -136
  438. package/src/components/Header/Header.stories.tsx +0 -516
  439. package/src/components/Header/Header.test.tsx +0 -322
  440. package/src/components/Header/Header.tsx +0 -243
  441. package/src/components/Header/Header.types.ts +0 -52
  442. package/src/components/Header/headerContext.tsx +0 -125
  443. package/src/components/Hero/Hero.stories.tsx +0 -68
  444. package/src/components/Hero/Hero.test.tsx +0 -109
  445. package/src/components/Hero/Hero.tsx +0 -58
  446. package/src/components/Hero/Hero.types.ts +0 -9
  447. package/src/components/IconButton/IconButton.stories.tsx +0 -196
  448. package/src/components/IconButton/IconButton.test.tsx +0 -52
  449. package/src/components/IconButton/IconButton.tsx +0 -76
  450. package/src/components/IconButton/IconButton.types.ts +0 -28
  451. package/src/components/Image/Image.stories.tsx +0 -79
  452. package/src/components/Image/Image.test.tsx +0 -87
  453. package/src/components/Image/Image.tsx +0 -47
  454. package/src/components/Image/Image.types.ts +0 -11
  455. package/src/components/Image/declarations.d.ts +0 -24
  456. package/src/components/Input/Input.stories.tsx +0 -512
  457. package/src/components/Input/Input.test.tsx +0 -89
  458. package/src/components/Input/Input.tsx +0 -161
  459. package/src/components/Input/Input.types.ts +0 -52
  460. package/src/components/Input/InputMemoTypes.tsx +0 -32
  461. package/src/components/MobileMenu/MobileMenu.tsx +0 -41
  462. package/src/components/MobileMenu/MobileMenu.types.tsx +0 -28
  463. package/src/components/Nav/DUMMYNAVDATA.json +0 -234
  464. package/src/components/Nav/Nav.stories.tsx +0 -181
  465. package/src/components/Nav/Nav.test.tsx +0 -89
  466. package/src/components/Nav/Nav.tsx +0 -179
  467. package/src/components/Nav/Nav.types.tsx +0 -47
  468. package/src/components/Page/TableDataDummy.tsx +0 -216
  469. package/src/components/Page/ViewPageTemplate.stories.tsx +0 -543
  470. package/src/components/Page/ViewPageTemplate.test.tsx +0 -361
  471. package/src/components/Page/ViewPageTemplate.tsx +0 -10
  472. package/src/components/PageSection/PageSection.stories.tsx +0 -116
  473. package/src/components/PageSection/PageSection.tsx +0 -12
  474. package/src/components/PageSection/PageSections.test.tsx +0 -89
  475. package/src/components/SearchInput/SearchInput.stories.tsx +0 -144
  476. package/src/components/SearchInput/SearchInput.tsx +0 -81
  477. package/src/components/SearchInput/SearchInput.types.ts +0 -28
  478. package/src/components/Slider/Slider.stories.tsx +0 -88
  479. package/src/components/Slider/Slider.tsx +0 -139
  480. package/src/components/Slider/Slider.types.ts +0 -21
  481. package/src/components/Submenus/AdminSubmenu.tsx +0 -17
  482. package/src/components/Submenus/AlertSubmenu.tsx +0 -56
  483. package/src/components/Submenus/AlertSubmenuItem.tsx +0 -39
  484. package/src/components/Submenus/types.tsx +0 -32
  485. package/src/components/Text/Text.stories.tsx +0 -50
  486. package/src/components/Text/Text.test.tsx +0 -52
  487. package/src/components/Text/Text.tsx +0 -29
  488. package/src/components/Toaster/Toaster.stories.tsx +0 -120
  489. package/src/components/Toaster/Toaster.test.tsx +0 -60
  490. package/src/components/Toaster/Toaster.tsx +0 -72
  491. package/src/components/Toaster/Toaster.types.ts +0 -12
  492. package/src/hoc/styling/withStoryBook.tsx +0 -19
  493. package/src/main.css +0 -3
  494. package/src/userHoc/withMemo.tsx +0 -20
  495. package/src/utils/assertTagName.tsx +0 -7
  496. package/src/utils/generateAccordionItem.tsx +0 -96
  497. package/src/utils/generateFooterContacts.tsx +0 -70
  498. package/src/utils/generateNavMenu.tsx +0 -54
  499. package/src/utils/generateSocialList.tsx +0 -34
  500. package/src/utils/getFontAwesomeIcon.tsx +0 -20
  501. package/src/utils/inputValidation.tsx +0 -26
  502. package/tailwind.config.js +0 -40
  503. package/tsconfig.json +0 -25
  504. package/vite.config.ts +0 -33
  505. /package/{src/components/Badge/index.ts → dist/components/Badge/index.d.ts} +0 -0
  506. /package/{src/components/Card/index.ts → dist/components/Card/index.js} +0 -0
  507. /package/{src/components/DropDownIconButton/index.ts → dist/components/DropDownIconButton/index.d.ts} +0 -0
  508. /package/{src/components/FormButton/index.ts → dist/components/FormButton/index.d.ts} +0 -0
  509. /package/{src/components/HamburgerButton/index.ts → dist/components/HamburgerButton/index.d.ts} +0 -0
  510. /package/{src/components/Header/index.ts → dist/components/Header/index.d.ts} +0 -0
  511. /package/{src/components/Hero/index.ts → dist/components/Hero/index.d.ts} +0 -0
  512. /package/{src/components/IconButton/index.ts → dist/components/IconButton/index.d.ts} +0 -0
  513. /package/{src/components/Image/index.ts → dist/components/Image/index.d.ts} +0 -0
  514. /package/{src/components/Input/index.ts → dist/components/Input/index.d.ts} +0 -0
  515. /package/{src/components/MobileMenu/index.ts → dist/components/MobileMenu/index.d.ts} +0 -0
  516. /package/{src/components/Nav/index.ts → dist/components/Nav/index.d.ts} +0 -0
  517. /package/{src/components/Page/index.ts → dist/components/Page/index.d.ts} +0 -0
  518. /package/{src/components/PageSection/index.ts → dist/components/PageSection/index.d.ts} +0 -0
  519. /package/{src/components/Text/index.ts → dist/components/Text/index.d.ts} +0 -0
  520. /package/{src/components/Toaster/index.ts → dist/components/Toaster/index.d.ts} +0 -0
  521. /package/{src/hoc/index.ts → dist/hoc/index.js} +0 -0
  522. /package/{src/setupTests.ts → dist/setupTests.d.ts} +0 -0
  523. /package/{src/userHoc/index.ts → dist/userHoc/index.d.ts} +0 -0
@@ -0,0 +1,155 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Footer from "./Footer";
3
+ import Image from "../Image/Image";
4
+ import Text from "../Text/Text";
5
+ import { withStoryBook } from "../../hoc";
6
+ // Wrap your component with the HOC
7
+ const StoryBookViewFooter = withStoryBook(Footer);
8
+ export default {
9
+ title: "Footers/Footer",
10
+ component: StoryBookViewFooter,
11
+ argTypes: {
12
+ logo: {
13
+ control: "none",
14
+ description: "The logo displayed in the footer",
15
+ },
16
+ logoBorderRadius: {
17
+ control: "boolean",
18
+ description: "Whether the logo has a border radius.",
19
+ },
20
+ logoHoverColor: {
21
+ control: "select",
22
+ options: ["green", "blue", "none"],
23
+ description: "Whether the logo has a background color on hover.",
24
+ },
25
+ backgroundColor: {
26
+ control: "color",
27
+ description: "Whether the footer has a background color.",
28
+ },
29
+ title: {
30
+ control: "text",
31
+ description: "The title displayed in the footer",
32
+ },
33
+ slogan: {
34
+ control: "text",
35
+ description: "The slogan displayed in the footer",
36
+ },
37
+ hasTitle: {
38
+ control: "boolean",
39
+ description: "Whether the footer has a title displayed",
40
+ },
41
+ hasSlogan: {
42
+ control: "boolean",
43
+ description: "Whether the footer has a slogan displayed",
44
+ },
45
+ hasNavItems: {
46
+ control: "boolean",
47
+ description: "Whether the footer has navigation items.",
48
+ },
49
+ accordionGap: {
50
+ table: {
51
+ disable: true,
52
+ },
53
+ },
54
+ accordionParentStyle: {
55
+ table: {
56
+ disable: true,
57
+ },
58
+ },
59
+ accordionExpandedStyle: {
60
+ table: {
61
+ disable: true,
62
+ },
63
+ },
64
+ socialTitle: {
65
+ table: {
66
+ disable: true,
67
+ },
68
+ },
69
+ socialPlacement: {
70
+ control: "select",
71
+ options: ["left", "center", "right"],
72
+ description: "Where the social icons are placed.",
73
+ },
74
+ hasSocial: {
75
+ control: "boolean",
76
+ description: "Whether the footer has social icons displayed",
77
+ },
78
+ contactTitle: {
79
+ table: {
80
+ disable: true,
81
+ },
82
+ },
83
+ copyRightTextPlacement: {
84
+ control: "select",
85
+ options: ["left", "center", "right"],
86
+ description: "Where the copyright statement is placed.",
87
+ },
88
+ copyRightText: {
89
+ table: {
90
+ disable: true,
91
+ },
92
+ description: "Whether the footer displays a copyright statement.",
93
+ },
94
+ hasCopyRight: {
95
+ control: "boolean",
96
+ description: "Whether the footer has a copyright statement displayed",
97
+ },
98
+ },
99
+ parameters: {
100
+ tags: ["autodocs"],
101
+ },
102
+ };
103
+ const Template = (args) => (_jsx(StoryBookViewFooter, { ...args, storybookStyle: {
104
+ backgroundColor: args.backgroundColor,
105
+ } }));
106
+ export const Default = Template.bind({});
107
+ Default.args = {
108
+ logoBorderRadius: true,
109
+ hasNavItems: false,
110
+ hasSocial: true,
111
+ logoHoverColor: "blue",
112
+ backgroundColor: "gray",
113
+ contactTitle: (_jsx(Text, { size: "md", color: "black", text: "Contact Us:", fontFamily: "", additionalClasses: "font-bold uppercase" })),
114
+ copyRightText: (_jsx(Text, { size: "md", color: "black", text: "Copyright \u00A9 2024 - All right reserved by Generic Company", fontFamily: "", additionalClasses: "text-center" })),
115
+ copyRightTextPlacement: "center",
116
+ socialPlacement: "flex justify-center mt-4",
117
+ };
118
+ export const CompassFooter = Template.bind({});
119
+ CompassFooter.args = {
120
+ logo: (_jsx(Image, { src: "../../../assets/compass-logo.png", alt: "Generic Compass Logo.", background: false, additionalClasses: "w-40 p-2" })),
121
+ title: (_jsx(Text, { size: "xl", color: "", text: "Compass Website", fontFamily: "", tag: "h2", additionalClasses: "font-bold uppercase pl-2 mt-2 max-md:text-sm" })),
122
+ slogan: (_jsx(Text, { size: "md", color: "", text: "Great slogan goes here.", fontFamily: "", tag: "p", additionalClasses: "pl-2" })),
123
+ copyRightText: (_jsx(Text, { size: "md", color: "black", text: "Copyright \u00A9 2024 - All right reserved by Generic Company", fontFamily: "", additionalClasses: "text-center" })),
124
+ socialTitle: (_jsx(Text, { size: "md", color: "black", text: "Connect", fontFamily: "", additionalClasses: "font-bold uppercase w-full" })),
125
+ contactTitle: (_jsx(Text, { size: "md", color: "black", text: "Contact Us:", fontFamily: "", additionalClasses: "font-bold uppercase" })),
126
+ logoBorderRadius: true,
127
+ hasNavItems: true,
128
+ hasSocial: true,
129
+ logoHoverColor: "green",
130
+ backgroundColor: "green",
131
+ accordionGap: "gap-2",
132
+ copyRightTextPlacement: "center",
133
+ socialPlacement: "flex justify-center mt-4",
134
+ accordionParentStyle: "border-b border-black p-2 w-full",
135
+ accordionExpandedStyle: "pl-3 py-3",
136
+ };
137
+ export const AlternateMobileNavStyle = Template.bind({});
138
+ AlternateMobileNavStyle.args = {
139
+ logo: (_jsx(Image, { src: "../../../assets/compass-logo.png", alt: "Generic Compass Logo.", background: false, additionalClasses: "w-40 p-2" })),
140
+ title: (_jsx(Text, { size: "xl", color: "", text: "Compass Website", fontFamily: "", tag: "h2", additionalClasses: "font-bold uppercase pl-2 mt-2 max-md:text-sm" })),
141
+ slogan: (_jsx(Text, { size: "md", color: "", text: "Great slogan goes here.", fontFamily: "", tag: "p", additionalClasses: "pl-2" })),
142
+ copyRightText: (_jsx(Text, { size: "md", color: "black", text: "Copyright \u00A9 2024 - All right reserved by Generic Company", fontFamily: "", additionalClasses: "text-center" })),
143
+ socialTitle: (_jsx(Text, { size: "md", color: "black", text: "Connect", fontFamily: "", additionalClasses: "font-bold uppercase w-full" })),
144
+ contactTitle: (_jsx(Text, { size: "md", color: "black", text: "Contact Us:", fontFamily: "", additionalClasses: "font-bold uppercase" })),
145
+ logoBorderRadius: true,
146
+ hasNavItems: true,
147
+ hasSocial: true,
148
+ accordionGap: "gap-2",
149
+ logoHoverColor: "green",
150
+ backgroundColor: "green",
151
+ copyRightTextPlacement: "center",
152
+ socialPlacement: "flex justify-center mt-4",
153
+ accordionParentStyle: "rounded-md border-black p-2 w-full bg-teal-700 text-white",
154
+ accordionExpandedStyle: "pl-2 py-3",
155
+ };
@@ -0,0 +1 @@
1
+ import "../../../dist/main.css";
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import "../../../dist/main.css";
3
+ import { render, screen, within } from "@testing-library/react";
4
+ import { describe, test, expect, beforeEach } from "vitest";
5
+ import Footer from "./Footer";
6
+ import Image from "../Image/Image";
7
+ import { DUMMYCONTACTDATA, DUMMYNAVDATA, DUMMYSOCIALDATA, } from "./DUMMYFOOTERDATA.json";
8
+ describe("<Footer /> with all props (pill, icons, input, logo)", () => {
9
+ beforeEach(() => {
10
+ render(_jsx(Footer, { logo: _jsx(Image, { src: "../../../assets/Logo.png", alt: "Generic Company Logo.", background: false, additionalClasses: " w-40 " }), hasSlogan: true, hasTitle: false, slogan: "Great slogan goes here.", backgroundColor: "gray", logoBorderRadius: true, logoHoverColor: "blue", hasNavItems: true, hasSocial: true, hasContact: true, socialData: DUMMYSOCIALDATA, navData: DUMMYNAVDATA, contactData: DUMMYCONTACTDATA }));
11
+ });
12
+ test("renders Footer component", () => {
13
+ expect(screen.getByTestId("footer")).toBeInTheDocument();
14
+ });
15
+ test("renders correct background color class", () => {
16
+ const footer = screen.getByTestId("footer");
17
+ expect(footer).toHaveClass("bg-slate-200");
18
+ });
19
+ test("contains correct logo from Image component", () => {
20
+ const footerLogo = screen.getByTestId("footer-logo");
21
+ const logoImage = footerLogo.querySelector("img");
22
+ expect(logoImage).toHaveAttribute("src", "../../../assets/Logo.png");
23
+ });
24
+ test("contains correct alt text from Image component", () => {
25
+ const footerLogo = screen.getByTestId("footer-logo");
26
+ const logoImage = footerLogo.querySelector("img");
27
+ expect(logoImage).toHaveAttribute("alt", "Generic Company Logo.");
28
+ });
29
+ test("contains correct slogan", () => {
30
+ const titleSloganElement = screen.getByTestId("title-slogan");
31
+ const sloganElement = within(titleSloganElement).getByTestId("slogan");
32
+ expect(sloganElement).toBeInTheDocument();
33
+ expect(sloganElement).toHaveTextContent("Great slogan goes here.");
34
+ });
35
+ test("contains correct site navigation ", () => {
36
+ expect(screen.getByTestId("footer-site-navigation")).toBeInTheDocument();
37
+ expect(screen.getByTestId("About")).toBeInTheDocument();
38
+ expect(screen.getByTestId("Projects")).toBeInTheDocument();
39
+ expect(screen.getByTestId("Community")).toBeInTheDocument();
40
+ expect(screen.getByTestId("Store")).toBeInTheDocument();
41
+ });
42
+ test("contains correct social navigation ", () => {
43
+ expect(screen.getByTestId("footer-social-navigation")).toBeInTheDocument();
44
+ expect(screen.getByTestId("Twitter")).toBeInTheDocument();
45
+ expect(screen.getByTestId("YouTube")).toBeInTheDocument();
46
+ expect(screen.getByTestId("Facebook")).toBeInTheDocument();
47
+ });
48
+ });
@@ -0,0 +1,42 @@
1
+ import { DUMMYCONTACTDATA, DUMMYNAVDATA, DUMMYSOCIALDATA } from "./DUMMYFOOTERDATA.json";
2
+ export interface NavItem {
3
+ title: string;
4
+ links: Array<{
5
+ link: string;
6
+ menuItem: string;
7
+ }>;
8
+ }
9
+ export interface SocialItem {
10
+ href: string;
11
+ xmlns: string;
12
+ ariaLabel: string;
13
+ path: string;
14
+ }
15
+ export interface FooterProps {
16
+ onClick?: (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
17
+ hasLogo?: boolean;
18
+ logo?: React.ReactNode;
19
+ backgroundColor?: string;
20
+ logoHoverColor?: string;
21
+ logoBorderRadius?: boolean;
22
+ hasTitle?: boolean;
23
+ hasSlogan?: boolean;
24
+ title?: React.ReactNode;
25
+ slogan?: React.ReactNode;
26
+ hasNavItems?: boolean;
27
+ navData?: typeof DUMMYNAVDATA;
28
+ accordionParentStyle?: string;
29
+ accordionExpandedStyle?: string;
30
+ accordionGap?: string;
31
+ hasSocial?: boolean;
32
+ socialData?: typeof DUMMYSOCIALDATA;
33
+ socialTitle?: React.ReactNode;
34
+ socialPlacement?: string;
35
+ contactTitle?: React.ReactNode;
36
+ hasContact?: boolean;
37
+ contactData?: typeof DUMMYCONTACTDATA;
38
+ hasCopyRight?: boolean;
39
+ copyRightText?: React.ReactNode;
40
+ copyRightTextPlacement?: string;
41
+ children?: React.ReactNode;
42
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type { FormButtonProps } from "./FormButton.types";
3
+ declare const FormButton: React.FC<FormButtonProps>;
4
+ export default FormButton;
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ const FormButton = ({ onClick, text, fontFamily, backgroundColor, customWidth, customHeight, shape, borderColor, icon, additionalClasses, type = "button", to, href, isDisabled = false, hasShadow, as: Element = "button", hoverBackground, hoverFontColor, hoverUnderline = false, hoverBorderColor, iconClasses, ...props }) => {
3
+ const baseFormButtonClasses = "flex items-center justify-center";
4
+ const hoverClasses = !isDisabled
5
+ ? `${hoverBackground} ${hoverFontColor} ${hoverUnderline ? "underline underline-offset-4" : ""} ${hoverBorderColor}`
6
+ : "";
7
+ const buttonColorClasses = `${backgroundColor} ${borderColor}`;
8
+ const cursorClasses = isDisabled
9
+ ? "cursor-not-allowed opacity-50"
10
+ : "cursor-pointer";
11
+ const textStyleClasses = `${fontFamily}`;
12
+ const buttonShapeClasses = shape;
13
+ const buttonClasses = `
14
+ ${baseFormButtonClasses}
15
+ ${buttonColorClasses}
16
+ ${buttonShapeClasses}
17
+ ${textStyleClasses}
18
+ ${hoverClasses}
19
+ ${cursorClasses}
20
+ ${hasShadow ? "shadow-md" : ""}
21
+ ${customWidth}
22
+ ${customHeight}
23
+ ${additionalClasses}
24
+ `.trim();
25
+ const handleClick = (e) => {
26
+ if (isDisabled) {
27
+ e.preventDefault();
28
+ return;
29
+ }
30
+ onClick?.(e);
31
+ };
32
+ const baseProps = {
33
+ className: buttonClasses,
34
+ onClick: handleClick,
35
+ "aria-disabled": isDisabled ? "true" : "false",
36
+ };
37
+ let ElementProps = { ...baseProps };
38
+ if (Element === "a" && href) {
39
+ ElementProps = { ...baseProps, href };
40
+ }
41
+ else if (Element === "button") {
42
+ ElementProps = { ...baseProps, type };
43
+ }
44
+ else {
45
+ ElementProps = { ...baseProps };
46
+ }
47
+ return (_jsxs(Element, { ...ElementProps, ...props, children: [icon && _jsx("span", { className: iconClasses, children: icon }), text] }));
48
+ };
49
+ export default FormButton;
@@ -0,0 +1,12 @@
1
+ import { Meta } from "@storybook/react";
2
+ declare const _default: Meta;
3
+ export default _default;
4
+ export declare const Default: any;
5
+ export declare const Compass: any;
6
+ export declare const Disabled: any;
7
+ export declare const WithIcon: any;
8
+ export declare const IconOnly: any;
9
+ export declare const ClearCartButton: any;
10
+ export declare const RightIconButton: any;
11
+ export declare const ConfirmRequestButton: any;
12
+ export declare const FourButtonsRow: any;
@@ -0,0 +1,200 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import FormButton from "./FormButton";
3
+ import Text from "../Text/Text";
4
+ import { getFontAwesomeIcon } from "../../utils/getFontAwesomeIcon";
5
+ export default {
6
+ title: "Components/FormButton",
7
+ component: FormButton,
8
+ argTypes: {
9
+ onClick: {
10
+ table: {
11
+ disable: true,
12
+ },
13
+ control: "none",
14
+ },
15
+ text: {
16
+ control: "none",
17
+ description: "The main text displayed on the button.",
18
+ },
19
+ fontFamily: {
20
+ control: "none",
21
+ description: "The font family of the button text.",
22
+ },
23
+ backgroundColor: {
24
+ control: "none",
25
+ description: "The background color of the button. Use Tailwind CSS color classes.",
26
+ },
27
+ borderColor: {
28
+ control: "none",
29
+ description: "The color of the border of the button. Use Tailwind CSS border color classes.",
30
+ },
31
+ shape: {
32
+ control: "none",
33
+ description: "The shape of the button. Use Tailwind CSS border radius classes.",
34
+ },
35
+ hoverBackground: {
36
+ control: "none",
37
+ description: "The background color of the button on hover. Use Tailwind CSS color classes.",
38
+ },
39
+ hoverFontColor: {
40
+ control: "none",
41
+ description: "The text color of the button on hover. Use Tailwind CSS color classes.",
42
+ },
43
+ hoverUnderline: {
44
+ control: "none",
45
+ description: "Whether the text is underlined on hover.",
46
+ },
47
+ hoverBorderColor: {
48
+ control: "none",
49
+ description: "The border color of the button on hover. Use Tailwind CSS border color classes.",
50
+ },
51
+ isDisabled: {
52
+ control: "none",
53
+ description: "Whether the button is disabled and cannot be clicked.",
54
+ },
55
+ hasShadow: {
56
+ control: "none",
57
+ description: "Tailwind CSS class to add a shadow to the button.",
58
+ },
59
+ customWidth: {
60
+ control: "none",
61
+ description: "Custom width for the button. Can be a Tailwind CSS class.",
62
+ },
63
+ customHeight: {
64
+ control: "none",
65
+ description: "Custom height for the button. Can be a Tailwind CSS class.",
66
+ },
67
+ additionalClasses: {
68
+ control: "none",
69
+ description: "Additional Tailwind CSS classes to apply to the button.",
70
+ },
71
+ icon: {
72
+ control: "none",
73
+ description: "An optional icon element to display inside the button.",
74
+ },
75
+ iconClasses: {
76
+ control: "none",
77
+ description: "Classes for styling the icon inside the button.",
78
+ },
79
+ as: {
80
+ control: "none",
81
+ description: "Defines the type of element to render, such as a 'button', 'a', or a React Router 'Link'.",
82
+ },
83
+ href: {
84
+ control: "none",
85
+ description: "If 'as' is 'a', this specifies the 'href' for an anchor element.",
86
+ },
87
+ to: {
88
+ control: "none",
89
+ description: "If 'as' is 'Link', this specifies the 'to' prop for React Router 'Link'.",
90
+ },
91
+ },
92
+ tags: ['autodocs'],
93
+ parameters: {
94
+ docs: {
95
+ description: {
96
+ component: "The `FormButton` component is a versatile button component that supports different types of elements like `button`, `a`, and `Link` from React Router. It's highly customizable with Tailwind CSS classes."
97
+ },
98
+ },
99
+ layout: "centered",
100
+ },
101
+ };
102
+ const Template = (args) => _jsx(FormButton, { ...args });
103
+ export const Default = Template.bind({});
104
+ Default.args = {
105
+ text: "Default Button",
106
+ backgroundColor: "bg-blue-600",
107
+ fontFamily: "font-sans",
108
+ borderColor: "border-none",
109
+ shape: "rounded-md",
110
+ hoverBackground: "hover:bg-blue-700",
111
+ hoverFontColor: "hover:text-black",
112
+ onClick: () => alert("Button clicked!"),
113
+ additionalClasses: "p-2",
114
+ };
115
+ export const Compass = Template.bind({});
116
+ Compass.args = {
117
+ text: _jsx(Text, { size: "", color: "", text: "Compass Button", fontFamily: "" }),
118
+ backgroundColor: "bg-green-400",
119
+ fontFamily: "font-sans",
120
+ shape: "rounded-md",
121
+ borderColor: "border-none",
122
+ hoverBackground: "hover:bg-green-700",
123
+ hoverFontColor: "hover:text-white",
124
+ hoverBorderColor: "hover:border-green-900",
125
+ hoverUnderline: false,
126
+ onClick: () => alert("Button clicked!"),
127
+ as: "a",
128
+ href: "#",
129
+ additionalClasses: "p-2",
130
+ };
131
+ export const Disabled = Template.bind({});
132
+ Disabled.args = {
133
+ ...Default.args,
134
+ text: _jsx(Text, { size: "", color: "", text: "Disabled Button", fontFamily: "" }),
135
+ isDisabled: true,
136
+ };
137
+ export const WithIcon = Template.bind({});
138
+ WithIcon.args = {
139
+ ...Default.args,
140
+ text: (_jsx(Text, { size: "", color: "", text: "Button with icon", fontFamily: "", additionalClasses: "pl-2" })),
141
+ icon: getFontAwesomeIcon("coffee"),
142
+ shape: "rounded-none",
143
+ hoverUnderline: false,
144
+ onClick: () => alert("Button clicked!"),
145
+ iconClasses: "pl-2",
146
+ };
147
+ export const IconOnly = Template.bind({});
148
+ IconOnly.args = {
149
+ fontFamily: "font-sans",
150
+ shape: "rounded",
151
+ hoverBackground: "hover:bg-gray-100",
152
+ hoverUnderline: false,
153
+ icon: getFontAwesomeIcon("trash"),
154
+ additionalClasses: "flex justify-center items-center px-4 py-3 bg-gray-50",
155
+ onClick: () => alert("Icon button clicked!"),
156
+ };
157
+ export const ClearCartButton = Template.bind({});
158
+ ClearCartButton.args = {
159
+ text: _jsx(Text, { size: "", color: "", text: "Clear Cart", fontFamily: "" }),
160
+ fontFamily: "font-sans",
161
+ shape: "rounded-md",
162
+ hoverBackground: "hover:bg-gray-100",
163
+ hoverFontColor: "hover:text-black",
164
+ hoverBorderColor: "hover:border-red-700",
165
+ hoverUnderline: false,
166
+ icon: getFontAwesomeIcon("trash"),
167
+ iconClasses: "order-first",
168
+ additionalClasses: "px-5 py-6 bg-gray-50 border-red-500 gap-2",
169
+ onClick: () => alert("Cart Cleared!"),
170
+ };
171
+ export const RightIconButton = Template.bind({});
172
+ RightIconButton.args = {
173
+ text: _jsx(Text, { size: "", color: "text-white", text: "Next", fontFamily: "" }),
174
+ backgroundColor: "bg-gray-500",
175
+ shape: "rounded-md",
176
+ hoverBackground: "hover:bg-gray-700",
177
+ hoverFontColor: "hover:text-white",
178
+ hoverBorderColor: "hover:border-blue-700",
179
+ hoverUnderline: false,
180
+ icon: getFontAwesomeIcon("arrow-right"),
181
+ additionalClasses: "px-6 py-3 flex-row-reverse",
182
+ iconClasses: "ml-2",
183
+ onClick: () => alert("Next clicked!"),
184
+ };
185
+ export const ConfirmRequestButton = Template.bind({});
186
+ ConfirmRequestButton.args = {
187
+ text: _jsx(Text, { size: "", color: "", text: "CONFIRM REQUEST", fontFamily: "" }),
188
+ backgroundColor: "bg-[#9ca3af]",
189
+ fontFamily: "font-sans",
190
+ borderColor: "border-none",
191
+ shape: "rounded-md",
192
+ hoverUnderline: false,
193
+ isDisabled: true,
194
+ additionalClasses: "py-3 px-6",
195
+ };
196
+ export const FourButtonsRow = Template.bind({});
197
+ FourButtonsRow.args = {};
198
+ FourButtonsRow.decorators = [
199
+ (Story) => (_jsxs("div", { className: "flex divide-x divide-gray-200 rounded-md overflow-hidden border border-gray-200", children: [_jsx(FormButton, { text: "All", backgroundColor: "bg-teal-600", fontFamily: "font-sans", borderColor: "border-gray-200", shape: "rounded-none", hoverUnderline: false, additionalClasses: "py-2 px-4 text-white", onClick: () => alert("All clicked!") }), _jsx(FormButton, { text: _jsxs(_Fragment, { children: [getFontAwesomeIcon("boxes", "mr-2"), "Bundles"] }), backgroundColor: "bg-white", fontFamily: "font-sans", borderColor: "border-gray-200", shape: "rounded-none", hoverBackground: "hover:bg-teal-600", hoverFontColor: "hover:text-white", hoverBorderColor: "hover:border-none", hoverUnderline: false, additionalClasses: "py-2 px-4", onClick: () => alert("Bundles clicked!") }), _jsx(FormButton, { text: _jsxs(_Fragment, { children: [getFontAwesomeIcon("clipboard", "mr-2"), "Categories"] }), backgroundColor: "bg-white", fontFamily: "font-sans", borderColor: "border-gray-200", shape: "rounded-none", hoverBackground: "hover:bg-teal-600", hoverFontColor: "hover:text-white", hoverBorderColor: "hover:border-none", hoverUnderline: false, additionalClasses: "py-2 px-4", onClick: () => alert("Categories clicked!") }), _jsx(FormButton, { text: _jsxs(_Fragment, { children: [getFontAwesomeIcon("plus", "mr-2"), "Custom Categories"] }), backgroundColor: "bg-white", fontFamily: "font-sans", borderColor: "border-gray-200", shape: "rounded-none", hoverBackground: "hover:bg-teal-600", hoverFontColor: "hover:text-white", hoverBorderColor: "hover:border-none", hoverUnderline: false, additionalClasses: "py-2 px-4", onClick: () => alert("Custom Categories clicked!") })] })),
200
+ ];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { render, screen, fireEvent } from "@testing-library/react";
3
+ import { describe, expect, test, vi } from "vitest";
4
+ import Button from "./FormButton";
5
+ import { MemoryRouter } from "react-router-dom";
6
+ describe("Button", () => {
7
+ test("renders correctly", () => {
8
+ render(_jsx(MemoryRouter, { children: _jsx(Button, { text: "Default Button", backgroundColor: "green", shape: "outline" }) }));
9
+ expect(screen.getByText("Default Button")).toBeInTheDocument();
10
+ });
11
+ test("is clickable", () => {
12
+ const mockOnClick = vi.fn();
13
+ render(_jsx(MemoryRouter, { children: _jsx(Button, { text: "Clickable Button", backgroundColor: "green", shape: "outline", onClick: mockOnClick }) }));
14
+ fireEvent.click(screen.getByText("Clickable Button"));
15
+ expect(mockOnClick).toHaveBeenCalled();
16
+ });
17
+ test("has correct text", () => {
18
+ render(_jsx(MemoryRouter, { children: _jsx(Button, { text: "Default Button", backgroundColor: "green", shape: "outline" }) }));
19
+ expect(screen.getByText("Default Button")).toHaveTextContent("Default Button");
20
+ });
21
+ });
22
+ describe("Disabled Button", () => {
23
+ test("is disabled", () => {
24
+ render(_jsx(MemoryRouter, { children: _jsx(Button, { text: "Disabled Button", backgroundColor: "green", shape: "outline", isDisabled: true }) }));
25
+ expect(screen.getByText("Disabled Button")).toHaveAttribute("aria-disabled", "true");
26
+ });
27
+ });
@@ -0,0 +1,24 @@
1
+ import React, { ElementType } from "react";
2
+ export interface FormButtonProps {
3
+ onClick?: (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
4
+ text?: string | JSX.Element;
5
+ fontFamily?: string;
6
+ backgroundColor?: string;
7
+ borderColor?: string;
8
+ customWidth?: string;
9
+ customHeight?: string;
10
+ shape?: string;
11
+ icon?: JSX.Element | null;
12
+ additionalClasses?: string;
13
+ type?: "button" | "submit" | "reset";
14
+ to?: string;
15
+ href?: string;
16
+ isDisabled?: boolean;
17
+ hasShadow?: string;
18
+ as?: ElementType | string;
19
+ hoverBackground?: string;
20
+ hoverFontColor?: string;
21
+ hoverUnderline?: boolean;
22
+ hoverBorderColor?: string;
23
+ iconClasses?: string;
24
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { default } from "./FormButton";
2
+ export * from "./FormButton.types";