@sqrzro/admin 1.0.0-beta.1

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 (476) hide show
  1. package/.eslintrc +4 -0
  2. package/.gitattributes +1 -0
  3. package/.prettierrc +9 -0
  4. package/.storybook/main.js +40 -0
  5. package/.storybook/manager.js +4 -0
  6. package/.storybook/postcss.config.js +3 -0
  7. package/.storybook/preview.js +11 -0
  8. package/.storybook/theme.js +7 -0
  9. package/.stylelintrc +9 -0
  10. package/LICENSE +5 -0
  11. package/README.md +9 -0
  12. package/__mocks__/squarezero-utility.ts +40 -0
  13. package/assets/logo-horizontal-dark.svg +21 -0
  14. package/assets/logo-horizontal-white.svg +21 -0
  15. package/assets/logo-vertical-dark.svg +21 -0
  16. package/assets/logo-vertical-white.svg +21 -0
  17. package/dist/index.css +3554 -0
  18. package/dist/index.js +5099 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/types/components/Alert/index.d.ts +10 -0
  21. package/dist/types/components/Allow/index.d.ts +13 -0
  22. package/dist/types/components/App/index.d.ts +19 -0
  23. package/dist/types/components/AutoSuggest/index.d.ts +60 -0
  24. package/dist/types/components/Button/index.d.ts +36 -0
  25. package/dist/types/components/CalendarInput/index.d.ts +10 -0
  26. package/dist/types/components/CheckboxList/index.d.ts +4 -0
  27. package/dist/types/components/ConnectedDropdown/index.d.ts +8 -0
  28. package/dist/types/components/ConnectedList/index.d.ts +4 -0
  29. package/dist/types/components/ConnectedScene/index.d.ts +11 -0
  30. package/dist/types/components/ConnectedTable/index.d.ts +4 -0
  31. package/dist/types/components/ContentBlock/index.d.ts +6 -0
  32. package/dist/types/components/DateInput/index.d.ts +7 -0
  33. package/dist/types/components/Document/index.d.ts +6 -0
  34. package/dist/types/components/Dropdown/index.d.ts +14 -0
  35. package/dist/types/components/Fieldset/index.d.ts +11 -0
  36. package/dist/types/components/FileInput/index.d.ts +4 -0
  37. package/dist/types/components/FilterLink/index.d.ts +7 -0
  38. package/dist/types/components/Form/index.d.ts +11 -0
  39. package/dist/types/components/FormActions/index.d.ts +9 -0
  40. package/dist/types/components/FormField/index.d.ts +27 -0
  41. package/dist/types/components/FormRepeater/index.d.ts +8 -0
  42. package/dist/types/components/ImageInput/index.d.ts +4 -0
  43. package/dist/types/components/InfoPanel/index.d.ts +8 -0
  44. package/dist/types/components/Link/__mocks__/index.d.ts +6 -0
  45. package/dist/types/components/Link/index.d.ts +13 -0
  46. package/dist/types/components/List/index.d.ts +23 -0
  47. package/dist/types/components/ListActions/index.d.ts +9 -0
  48. package/dist/types/components/LoginForm/index.d.ts +3 -0
  49. package/dist/types/components/Message/index.d.ts +7 -0
  50. package/dist/types/components/ModalActions/index.d.ts +11 -0
  51. package/dist/types/components/MoneyInput/index.d.ts +10 -0
  52. package/dist/types/components/PasswordForm/index.d.ts +3 -0
  53. package/dist/types/components/PasswordInput/index.d.ts +8 -0
  54. package/dist/types/components/RadioList/index.d.ts +4 -0
  55. package/dist/types/components/Scene/index.d.ts +10 -0
  56. package/dist/types/components/SummaryList/index.d.ts +8 -0
  57. package/dist/types/components/Switch/index.d.ts +9 -0
  58. package/dist/types/components/Table/index.d.ts +13 -0
  59. package/dist/types/components/Tag/index.d.ts +8 -0
  60. package/dist/types/components/TextArea/index.d.ts +4 -0
  61. package/dist/types/components/TextInput/index.d.ts +17 -0
  62. package/dist/types/components/WebsiteInput/index.d.ts +10 -0
  63. package/dist/types/components/WeekCalendar/index.d.ts +12 -0
  64. package/dist/types/core/AppHeader/index.d.ts +3 -0
  65. package/dist/types/core/AppLogo/index.d.ts +6 -0
  66. package/dist/types/core/AppLogoImage/index.d.ts +3 -0
  67. package/dist/types/core/AppLogoPlaceholder/index.d.ts +3 -0
  68. package/dist/types/core/Assistive/index.d.ts +6 -0
  69. package/dist/types/core/Banner/index.d.ts +3 -0
  70. package/dist/types/core/BuildModal/index.d.ts +3 -0
  71. package/dist/types/core/Calendar/index.d.ts +11 -0
  72. package/dist/types/core/CalendarDay/index.d.ts +16 -0
  73. package/dist/types/core/CalendarMonth/index.d.ts +12 -0
  74. package/dist/types/core/CalendarNavigation/index.d.ts +9 -0
  75. package/dist/types/core/CalendarWeek/index.d.ts +14 -0
  76. package/dist/types/core/ChkRad/index.d.ts +10 -0
  77. package/dist/types/core/ChkRadIcon/index.d.ts +7 -0
  78. package/dist/types/core/ChkRadList/index.d.ts +15 -0
  79. package/dist/types/core/CloseButton/index.d.ts +9 -0
  80. package/dist/types/core/ConfirmModal/index.d.ts +3 -0
  81. package/dist/types/core/ConnectedRepeater/index.d.ts +26 -0
  82. package/dist/types/core/ConnectedRepeaterComponent/index.d.ts +24 -0
  83. package/dist/types/core/Container/index.d.ts +7 -0
  84. package/dist/types/core/DropdownPanel/index.d.ts +18 -0
  85. package/dist/types/core/EmptyMessage/index.d.ts +12 -0
  86. package/dist/types/core/ErrorBoundary/index.d.ts +15 -0
  87. package/dist/types/core/ErrorMessage/index.d.ts +8 -0
  88. package/dist/types/core/FilterItem/index.d.ts +10 -0
  89. package/dist/types/core/Filters/index.d.ts +11 -0
  90. package/dist/types/core/FixedActions/index.d.ts +12 -0
  91. package/dist/types/core/FormError/index.d.ts +6 -0
  92. package/dist/types/core/FormLabel/index.d.ts +8 -0
  93. package/dist/types/core/FormLegend/index.d.ts +6 -0
  94. package/dist/types/core/Header/index.d.ts +8 -0
  95. package/dist/types/core/Icon/index.d.ts +7 -0
  96. package/dist/types/core/IconButton/Icon/index.d.ts +7 -0
  97. package/dist/types/core/IconButton/index.d.ts +11 -0
  98. package/dist/types/core/InputPanel/index.d.ts +8 -0
  99. package/dist/types/core/ListItem/index.d.ts +16 -0
  100. package/dist/types/core/ListItemAction/index.d.ts +4 -0
  101. package/dist/types/core/ListItemActions/index.d.ts +8 -0
  102. package/dist/types/core/ListItemMetaItem/index.d.ts +10 -0
  103. package/dist/types/core/ListItemTitle/index.d.ts +9 -0
  104. package/dist/types/core/Loader/index.d.ts +6 -0
  105. package/dist/types/core/MeActions/index.d.ts +3 -0
  106. package/dist/types/core/MePanel/index.d.ts +9 -0
  107. package/dist/types/core/Modal/index.d.ts +12 -0
  108. package/dist/types/core/Navigation/index.d.ts +3 -0
  109. package/dist/types/core/NavigationDivider/index.d.ts +3 -0
  110. package/dist/types/core/NavigationItem/index.d.ts +7 -0
  111. package/dist/types/core/Pagination/index.d.ts +7 -0
  112. package/dist/types/core/PaginationItem/index.d.ts +7 -0
  113. package/dist/types/core/Panel/index.d.ts +8 -0
  114. package/dist/types/core/RadialProgress/index.d.ts +8 -0
  115. package/dist/types/core/StaticTextInput/index.d.ts +12 -0
  116. package/dist/types/core/Styled/index.d.ts +6 -0
  117. package/dist/types/core/SummaryListItem/index.d.ts +15 -0
  118. package/dist/types/core/TableActionsCell/index.d.ts +8 -0
  119. package/dist/types/core/TableCell/index.d.ts +8 -0
  120. package/dist/types/core/TableHead/index.d.ts +8 -0
  121. package/dist/types/core/TableRow/index.d.ts +13 -0
  122. package/dist/types/core/Tabs/index.d.ts +11 -0
  123. package/dist/types/core/TextInputAncillary/index.d.ts +11 -0
  124. package/dist/types/core/Toast/index.d.ts +3 -0
  125. package/dist/types/core/WeekCalendarDay/index.d.ts +14 -0
  126. package/dist/types/filters/BooleanFilter/index.d.ts +5 -0
  127. package/dist/types/filters/DateFilter/index.d.ts +5 -0
  128. package/dist/types/filters/DropdownFilter/index.d.ts +5 -0
  129. package/dist/types/filters/QuickDateFilter/index.d.ts +5 -0
  130. package/dist/types/filters/interfaces.d.ts +36 -0
  131. package/dist/types/hooks/useAccessiblePanel.d.ts +13 -0
  132. package/dist/types/hooks/useAppContext.d.ts +37 -0
  133. package/dist/types/hooks/useClickOutside.d.ts +3 -0
  134. package/dist/types/hooks/useConnectedList.d.ts +7 -0
  135. package/dist/types/hooks/useFilters.d.ts +3 -0
  136. package/dist/types/hooks/useForm.d.ts +26 -0
  137. package/dist/types/hooks/useFormData.d.ts +9 -0
  138. package/dist/types/hooks/useLayout.d.ts +6 -0
  139. package/dist/types/hooks/useModal.d.ts +12 -0
  140. package/dist/types/hooks/useVariant.d.ts +6 -0
  141. package/dist/types/index.d.ts +187 -0
  142. package/dist/types/scenes/Error404Scene.d.ts +3 -0
  143. package/dist/types/services/BuildService.d.ts +5 -0
  144. package/dist/types/services/ConfirmService.d.ts +12 -0
  145. package/dist/types/services/DateService.d.ts +17 -0
  146. package/dist/types/services/DownloadService.d.ts +5 -0
  147. package/dist/types/services/FilterComponentService.d.ts +8 -0
  148. package/dist/types/services/FilterService.d.ts +13 -0
  149. package/dist/types/services/FormatService.d.ts +7 -0
  150. package/dist/types/services/ToastService.d.ts +5 -0
  151. package/dist/types/utility/MockRouter/index.d.ts +2 -0
  152. package/dist/types/utility/StorybookPanel/index.d.ts +7 -0
  153. package/dist/types/utility/TestChangeHandler/index.d.ts +8 -0
  154. package/dist/types/utility/create-app.d.ts +4 -0
  155. package/dist/types/utility/interfaces.d.ts +72 -0
  156. package/dist/types/utility/prop-types.d.ts +40 -0
  157. package/docs/guides/01-installation.story.mdx +33 -0
  158. package/docs/guides/02-configuration.story.mdx +80 -0
  159. package/docs/guides/03-pages.story.mdx +18 -0
  160. package/docs/guides/04-integration.story.mdx +33 -0
  161. package/docs/guides/a11y.story.mdx +7 -0
  162. package/docs/guides/theming.story.mdx +7 -0
  163. package/docs/introduction.story.mdx +17 -0
  164. package/jest.config.js +19 -0
  165. package/package.json +101 -0
  166. package/postcss.config.js +3 -0
  167. package/rollup.config.js +36 -0
  168. package/scripts/create-exports.js +74 -0
  169. package/scripts/update-license.js +8 -0
  170. package/squarezero.config.js +5 -0
  171. package/src/components/Alert/Alert.module.css +50 -0
  172. package/src/components/Alert/Alert.spec.tsx +63 -0
  173. package/src/components/Alert/Alert.story.tsx +23 -0
  174. package/src/components/Alert/index.tsx +67 -0
  175. package/src/components/Allow/Allow.spec.tsx +37 -0
  176. package/src/components/Allow/index.tsx +42 -0
  177. package/src/components/App/App.module.css +22 -0
  178. package/src/components/App/App.spec.tsx +128 -0
  179. package/src/components/App/index.tsx +108 -0
  180. package/src/components/AutoSuggest/AutoSuggest.module.css +8 -0
  181. package/src/components/AutoSuggest/AutoSuggest.spec.tsx +211 -0
  182. package/src/components/AutoSuggest/AutoSuggest.story.tsx +30 -0
  183. package/src/components/AutoSuggest/index.tsx +216 -0
  184. package/src/components/Button/Button.module.css +95 -0
  185. package/src/components/Button/Button.spec.tsx +69 -0
  186. package/src/components/Button/Button.story.tsx +39 -0
  187. package/src/components/Button/index.tsx +99 -0
  188. package/src/components/CalendarInput/CalendarInput.module.css +8 -0
  189. package/src/components/CalendarInput/CalendarInput.spec.tsx +206 -0
  190. package/src/components/CalendarInput/CalendarInput.story.tsx +62 -0
  191. package/src/components/CalendarInput/index.tsx +122 -0
  192. package/src/components/CheckboxList/CheckboxList.spec.tsx +83 -0
  193. package/src/components/CheckboxList/index.tsx +53 -0
  194. package/src/components/ConnectedDropdown/index.tsx +56 -0
  195. package/src/components/ConnectedList/index.tsx +15 -0
  196. package/src/components/ConnectedScene/index.tsx +95 -0
  197. package/src/components/ConnectedTable/index.tsx +17 -0
  198. package/src/components/ContentBlock/ContentBlock.module.css +8 -0
  199. package/src/components/ContentBlock/ContentBlock.spec.tsx +15 -0
  200. package/src/components/ContentBlock/index.tsx +16 -0
  201. package/src/components/DateInput/DateInput.module.css +15 -0
  202. package/src/components/DateInput/DateInput.spec.tsx +91 -0
  203. package/src/components/DateInput/index.tsx +149 -0
  204. package/src/components/Document/index.tsx +20 -0
  205. package/src/components/Dropdown/Dropdown.module.css +8 -0
  206. package/src/components/Dropdown/Dropdown.spec.tsx +286 -0
  207. package/src/components/Dropdown/Dropdown.story.tsx +53 -0
  208. package/src/components/Dropdown/index.tsx +224 -0
  209. package/src/components/Fieldset/Fieldset.spec.tsx +22 -0
  210. package/src/components/Fieldset/Fieldset.story.tsx +21 -0
  211. package/src/components/Fieldset/index.tsx +30 -0
  212. package/src/components/FileInput/FileInput.module.css +18 -0
  213. package/src/components/FileInput/FileInput.spec.tsx +42 -0
  214. package/src/components/FileInput/FileInput.story.tsx +6 -0
  215. package/src/components/FileInput/index.tsx +72 -0
  216. package/src/components/FilterLink/FilterLink.module.css +9 -0
  217. package/src/components/FilterLink/FilterLink.spec.tsx +20 -0
  218. package/src/components/FilterLink/index.tsx +31 -0
  219. package/src/components/Form/Form.spec.tsx +68 -0
  220. package/src/components/Form/index.tsx +87 -0
  221. package/src/components/FormActions/FormActions.spec.tsx +10 -0
  222. package/src/components/FormActions/FormActions.story.tsx +23 -0
  223. package/src/components/FormActions/index.tsx +31 -0
  224. package/src/components/FormField/FormField.module.css +71 -0
  225. package/src/components/FormField/FormField.spec.tsx +137 -0
  226. package/src/components/FormField/FormField.story.tsx +22 -0
  227. package/src/components/FormField/index.tsx +162 -0
  228. package/src/components/FormRepeater/FormRepeater.module.css +3 -0
  229. package/src/components/FormRepeater/FormRepeater.spec.tsx +127 -0
  230. package/src/components/FormRepeater/index.tsx +118 -0
  231. package/src/components/ImageInput/ImageInput.module.css +74 -0
  232. package/src/components/ImageInput/ImageInput.spec.tsx +45 -0
  233. package/src/components/ImageInput/ImageInput.story.tsx +6 -0
  234. package/src/components/ImageInput/index.tsx +91 -0
  235. package/src/components/InfoPanel/InfoPanel.module.css +18 -0
  236. package/src/components/InfoPanel/InfoPanel.spec.tsx +15 -0
  237. package/src/components/InfoPanel/InfoPanel.story.tsx +32 -0
  238. package/src/components/InfoPanel/index.tsx +25 -0
  239. package/src/components/Link/Link.spec.tsx +62 -0
  240. package/src/components/Link/__mocks__/index.tsx +24 -0
  241. package/src/components/Link/index.tsx +51 -0
  242. package/src/components/List/List.module.css +9 -0
  243. package/src/components/List/List.spec.tsx +311 -0
  244. package/src/components/List/List.story.tsx +92 -0
  245. package/src/components/List/index.tsx +79 -0
  246. package/src/components/ListActions/ListActions.spec.tsx +10 -0
  247. package/src/components/ListActions/ListActions.story.tsx +6 -0
  248. package/src/components/ListActions/index.tsx +31 -0
  249. package/src/components/LoginForm/LoginForm.module.css +21 -0
  250. package/src/components/LoginForm/LoginForm.spec.tsx +63 -0
  251. package/src/components/LoginForm/index.tsx +102 -0
  252. package/src/components/Message/Message.module.css +14 -0
  253. package/src/components/Message/Message.spec.tsx +20 -0
  254. package/src/components/Message/index.tsx +27 -0
  255. package/src/components/ModalActions/ModalActions.module.css +5 -0
  256. package/src/components/ModalActions/ModalActions.spec.tsx +53 -0
  257. package/src/components/ModalActions/ModalActions.story.tsx +6 -0
  258. package/src/components/ModalActions/index.tsx +47 -0
  259. package/src/components/MoneyInput/MoneyInput.spec.tsx +17 -0
  260. package/src/components/MoneyInput/MoneyInput.story.tsx +6 -0
  261. package/src/components/MoneyInput/index.tsx +16 -0
  262. package/src/components/PasswordForm/PasswordForm.module.css +21 -0
  263. package/src/components/PasswordForm/index.tsx +94 -0
  264. package/src/components/PasswordInput/PasswordInput.module.css +23 -0
  265. package/src/components/PasswordInput/PasswordInput.spec.tsx +31 -0
  266. package/src/components/PasswordInput/PasswordInput.story.tsx +16 -0
  267. package/src/components/PasswordInput/index.tsx +27 -0
  268. package/src/components/RadioList/RadioList.spec.tsx +45 -0
  269. package/src/components/RadioList/index.tsx +10 -0
  270. package/src/components/Scene/Scene.spec.tsx +123 -0
  271. package/src/components/Scene/Scene.story.tsx +6 -0
  272. package/src/components/Scene/index.tsx +58 -0
  273. package/src/components/SummaryList/SummaryList.module.css +16 -0
  274. package/src/components/SummaryList/SummaryList.spec.tsx +77 -0
  275. package/src/components/SummaryList/SummaryList.story.tsx +11 -0
  276. package/src/components/SummaryList/index.tsx +37 -0
  277. package/src/components/Switch/Switch.module.css +86 -0
  278. package/src/components/Switch/Switch.spec.tsx +64 -0
  279. package/src/components/Switch/index.tsx +85 -0
  280. package/src/components/Table/Table.module.css +14 -0
  281. package/src/components/Table/Table.spec.tsx +128 -0
  282. package/src/components/Table/Table.story.tsx +101 -0
  283. package/src/components/Table/index.tsx +114 -0
  284. package/src/components/Tag/Tag.module.css +37 -0
  285. package/src/components/Tag/Tag.spec.tsx +10 -0
  286. package/src/components/Tag/Tag.story.tsx +55 -0
  287. package/src/components/Tag/index.tsx +27 -0
  288. package/src/components/TextArea/TextArea.module.css +23 -0
  289. package/src/components/TextArea/TextArea.spec.tsx +77 -0
  290. package/src/components/TextArea/index.tsx +59 -0
  291. package/src/components/TextInput/TextInput.module.css +57 -0
  292. package/src/components/TextInput/TextInput.spec.tsx +134 -0
  293. package/src/components/TextInput/TextInput.story.tsx +24 -0
  294. package/src/components/TextInput/index.tsx +146 -0
  295. package/src/components/WebsiteInput/WebsiteInput.spec.tsx +17 -0
  296. package/src/components/WebsiteInput/index.tsx +16 -0
  297. package/src/components/WeekCalendar/WeekCalendar.module.css +19 -0
  298. package/src/components/WeekCalendar/index.tsx +80 -0
  299. package/src/core/AppHeader/index.tsx +23 -0
  300. package/src/core/AppLogo/AppLogo.module.css +19 -0
  301. package/src/core/AppLogo/index.tsx +33 -0
  302. package/src/core/AppLogoImage/index.tsx +19 -0
  303. package/src/core/AppLogoPlaceholder/index.tsx +26 -0
  304. package/src/core/Assistive/Assistive.module.css +10 -0
  305. package/src/core/Assistive/index.tsx +18 -0
  306. package/src/core/Banner/Banner.module.css +36 -0
  307. package/src/core/Banner/index.tsx +25 -0
  308. package/src/core/BuildModal/index.tsx +119 -0
  309. package/src/core/Calendar/index.tsx +116 -0
  310. package/src/core/CalendarDay/CalendarDay.module.css +61 -0
  311. package/src/core/CalendarDay/index.tsx +82 -0
  312. package/src/core/CalendarMonth/CalendarMonth.module.css +13 -0
  313. package/src/core/CalendarMonth/index.tsx +101 -0
  314. package/src/core/CalendarNavigation/CalendarNavigation.module.css +26 -0
  315. package/src/core/CalendarNavigation/index.tsx +56 -0
  316. package/src/core/CalendarWeek/index.tsx +95 -0
  317. package/src/core/ChkRad/ChkRad.module.css +31 -0
  318. package/src/core/ChkRad/ChkRad.spec.tsx +72 -0
  319. package/src/core/ChkRad/index.tsx +80 -0
  320. package/src/core/ChkRadIcon/ChkRadIcon.module.css +28 -0
  321. package/src/core/ChkRadIcon/index.tsx +33 -0
  322. package/src/core/ChkRadList/ChkRadList.module.css +10 -0
  323. package/src/core/ChkRadList/index.tsx +85 -0
  324. package/src/core/CloseButton/CloseButton.spec.tsx +36 -0
  325. package/src/core/CloseButton/index.tsx +31 -0
  326. package/src/core/ConfirmModal/ConfirmModal.spec.tsx +88 -0
  327. package/src/core/ConfirmModal/index.tsx +51 -0
  328. package/src/core/ConnectedRepeater/index.tsx +248 -0
  329. package/src/core/ConnectedRepeaterComponent/index.tsx +66 -0
  330. package/src/core/Container/Container.module.css +12 -0
  331. package/src/core/Container/index.tsx +35 -0
  332. package/src/core/DropdownPanel/DropdownPanel.module.css +68 -0
  333. package/src/core/DropdownPanel/index.tsx +92 -0
  334. package/src/core/EmptyMessage/EmptyMessage.module.css +18 -0
  335. package/src/core/EmptyMessage/index.tsx +31 -0
  336. package/src/core/ErrorBoundary/ErrorBoundary.spec.tsx +33 -0
  337. package/src/core/ErrorBoundary/index.tsx +42 -0
  338. package/src/core/ErrorMessage/ErrorMessage.module.css +25 -0
  339. package/src/core/ErrorMessage/ErrorMessage.spec.tsx +31 -0
  340. package/src/core/ErrorMessage/index.tsx +37 -0
  341. package/src/core/FilterItem/FilterItem.module.css +104 -0
  342. package/src/core/FilterItem/index.tsx +164 -0
  343. package/src/core/Filters/Filters.module.css +86 -0
  344. package/src/core/Filters/Filters.spec.tsx +533 -0
  345. package/src/core/Filters/index.tsx +158 -0
  346. package/src/core/FixedActions/FixedActions.module.css +24 -0
  347. package/src/core/FixedActions/index.tsx +52 -0
  348. package/src/core/FormError/FormError.module.css +7 -0
  349. package/src/core/FormError/index.tsx +18 -0
  350. package/src/core/FormLabel/FormLabel.module.css +15 -0
  351. package/src/core/FormLabel/index.tsx +25 -0
  352. package/src/core/FormLegend/FormLegend.module.css +13 -0
  353. package/src/core/FormLegend/index.tsx +18 -0
  354. package/src/core/Header/Header.module.css +35 -0
  355. package/src/core/Header/index.tsx +37 -0
  356. package/src/core/Icon/Icon.spec.tsx +31 -0
  357. package/src/core/Icon/index.tsx +64 -0
  358. package/src/core/IconButton/Icon/Icon.spec.tsx +31 -0
  359. package/src/core/IconButton/Icon/index.tsx +64 -0
  360. package/src/core/IconButton/IconButton.module.css +32 -0
  361. package/src/core/IconButton/index.tsx +55 -0
  362. package/src/core/InputPanel/InputPanel.module.css +70 -0
  363. package/src/core/InputPanel/index.tsx +28 -0
  364. package/src/core/ListItem/ListItem.module.css +28 -0
  365. package/src/core/ListItem/ListItem.story.tsx +28 -0
  366. package/src/core/ListItem/index.tsx +99 -0
  367. package/src/core/ListItemAction/ListItemAction.module.css +28 -0
  368. package/src/core/ListItemAction/index.tsx +30 -0
  369. package/src/core/ListItemActions/ListItemActions.module.css +94 -0
  370. package/src/core/ListItemActions/index.tsx +55 -0
  371. package/src/core/ListItemMetaItem/ListItemMetaItem.module.css +18 -0
  372. package/src/core/ListItemMetaItem/index.tsx +54 -0
  373. package/src/core/ListItemTitle/ListItemTitle.module.css +14 -0
  374. package/src/core/ListItemTitle/ListItemTitle.spec.tsx +33 -0
  375. package/src/core/ListItemTitle/index.tsx +72 -0
  376. package/src/core/Loader/Loader.module.css +57 -0
  377. package/src/core/Loader/Loader.story.tsx +8 -0
  378. package/src/core/Loader/index.tsx +27 -0
  379. package/src/core/MeActions/MeActions.module.css +45 -0
  380. package/src/core/MeActions/index.tsx +46 -0
  381. package/src/core/MePanel/MePanel.module.css +75 -0
  382. package/src/core/MePanel/index.tsx +45 -0
  383. package/src/core/Modal/Modal.module.css +84 -0
  384. package/src/core/Modal/Modal.spec.tsx +51 -0
  385. package/src/core/Modal/index.tsx +66 -0
  386. package/src/core/Navigation/Navigation.module.css +83 -0
  387. package/src/core/Navigation/Navigation.spec.tsx +101 -0
  388. package/src/core/Navigation/index.tsx +109 -0
  389. package/src/core/NavigationDivider/NavigationDivider.module.css +18 -0
  390. package/src/core/NavigationDivider/index.tsx +13 -0
  391. package/src/core/NavigationItem/NavigationItem.module.css +51 -0
  392. package/src/core/NavigationItem/index.tsx +59 -0
  393. package/src/core/Pagination/Pagination.module.css +15 -0
  394. package/src/core/Pagination/index.tsx +100 -0
  395. package/src/core/PaginationItem/PaginationItem.module.css +33 -0
  396. package/src/core/PaginationItem/index.tsx +46 -0
  397. package/src/core/Panel/Panel.module.css +15 -0
  398. package/src/core/Panel/index.tsx +31 -0
  399. package/src/core/RadialProgress/RadialProgress.module.css +78 -0
  400. package/src/core/RadialProgress/index.tsx +52 -0
  401. package/src/core/StaticTextInput/StaticTextInput.module.css +79 -0
  402. package/src/core/StaticTextInput/StaticTextInput.spec.tsx +133 -0
  403. package/src/core/StaticTextInput/index.tsx +114 -0
  404. package/src/core/Styled/Styled.spec.tsx +38 -0
  405. package/src/core/Styled/Styled.story.tsx +10 -0
  406. package/src/core/Styled/index.tsx +62 -0
  407. package/src/core/SummaryListItem/SummaryListItem.module.css +28 -0
  408. package/src/core/SummaryListItem/index.tsx +60 -0
  409. package/src/core/TableActionsCell/TableActionsCell.module.css +3 -0
  410. package/src/core/TableActionsCell/index.tsx +37 -0
  411. package/src/core/TableCell/TableCell.module.css +16 -0
  412. package/src/core/TableCell/index.tsx +39 -0
  413. package/src/core/TableHead/TableHead.module.css +12 -0
  414. package/src/core/TableHead/index.tsx +48 -0
  415. package/src/core/TableRow/index.tsx +64 -0
  416. package/src/core/Tabs/Tabs.module.css +50 -0
  417. package/src/core/Tabs/index.tsx +94 -0
  418. package/src/core/TextInputAncillary/TextInputAncillary.module.css +64 -0
  419. package/src/core/TextInputAncillary/index.tsx +72 -0
  420. package/src/core/Toast/Toast.module.css +55 -0
  421. package/src/core/Toast/Toast.spec.tsx +78 -0
  422. package/src/core/Toast/index.tsx +81 -0
  423. package/src/core/WeekCalendarDay/WeekCalendarDay.module.css +32 -0
  424. package/src/core/WeekCalendarDay/index.tsx +68 -0
  425. package/src/filters/BooleanFilter/index.tsx +46 -0
  426. package/src/filters/DateFilter/index.tsx +36 -0
  427. package/src/filters/DropdownFilter/index.tsx +53 -0
  428. package/src/filters/QuickDateFilter/index.tsx +74 -0
  429. package/src/filters/interfaces.ts +40 -0
  430. package/src/hooks/useAccessiblePanel.spec.tsx +88 -0
  431. package/src/hooks/useAccessiblePanel.ts +74 -0
  432. package/src/hooks/useAppContext.ts +77 -0
  433. package/src/hooks/useClickOutside.ts +49 -0
  434. package/src/hooks/useConnectedList.ts +26 -0
  435. package/src/hooks/useFilters.ts +26 -0
  436. package/src/hooks/useForm.spec.ts +126 -0
  437. package/src/hooks/useForm.ts +99 -0
  438. package/src/hooks/useFormData.spec.ts +40 -0
  439. package/src/hooks/useFormData.ts +27 -0
  440. package/src/hooks/useLayout.spec.ts +55 -0
  441. package/src/hooks/useLayout.ts +29 -0
  442. package/src/hooks/useModal.spec.tsx +63 -0
  443. package/src/hooks/useModal.ts +60 -0
  444. package/src/hooks/useVariant.spec.ts +14 -0
  445. package/src/hooks/useVariant.ts +34 -0
  446. package/src/index.ts +194 -0
  447. package/src/scenes/Error404Scene.tsx +5 -0
  448. package/src/services/BuildService.spec.ts +56 -0
  449. package/src/services/BuildService.ts +34 -0
  450. package/src/services/ConfirmService.ts +21 -0
  451. package/src/services/DateService.spec.ts +87 -0
  452. package/src/services/DateService.ts +137 -0
  453. package/src/services/DownloadService.spec.ts +29 -0
  454. package/src/services/DownloadService.ts +14 -0
  455. package/src/services/FilterComponentService.tsx +46 -0
  456. package/src/services/FilterService.spec.ts +87 -0
  457. package/src/services/FilterService.ts +58 -0
  458. package/src/services/FormatService.spec.ts +83 -0
  459. package/src/services/FormatService.ts +55 -0
  460. package/src/services/ToastService.spec.ts +44 -0
  461. package/src/services/ToastService.ts +19 -0
  462. package/src/styles/layout.css +64 -0
  463. package/src/styles/variables.css +85 -0
  464. package/src/typings.d.ts +4 -0
  465. package/src/utility/MockRouter/index.ts +45 -0
  466. package/src/utility/StorybookPanel/StorybookPanel.module.css +9 -0
  467. package/src/utility/StorybookPanel/index.tsx +25 -0
  468. package/src/utility/TestChangeHandler/TestChangeHandler.module.css +7 -0
  469. package/src/utility/TestChangeHandler/TestChangeHandler.spec.tsx +24 -0
  470. package/src/utility/TestChangeHandler/index.tsx +54 -0
  471. package/src/utility/create-app.tsx +29 -0
  472. package/src/utility/interfaces.ts +119 -0
  473. package/src/utility/prop-types.ts +67 -0
  474. package/tests/setupFilesAfterEnv.js +10 -0
  475. package/tsconfig.json +26 -0
  476. package/tsconfig.types.json +9 -0
@@ -0,0 +1,85 @@
1
+ @custom-media --media-sml (min-width: 580px);
2
+ @custom-media --media-med (min-width: 740px);
3
+ @custom-media --media-lrg (min-width: 900px);
4
+
5
+ :root {
6
+ /*
7
+ * Colours
8
+ */
9
+ --clr-black: #000;
10
+ --clr-white: #fff;
11
+ --clr-primary: #2ecc40;
12
+ --clr-secondary: #ee3768;
13
+ --clr-secondary-dark: #d3184a;
14
+ --clr-tertiary: #efad2b;
15
+ --clr-grey100: #f7fafc;
16
+ --clr-grey200: #edf2f7;
17
+ --clr-grey300: #e2e8f0;
18
+ --clr-grey400: #cbd5e0;
19
+ --clr-grey500: #a0aec0;
20
+ --clr-grey600: #718096;
21
+ --clr-grey700: #4a5568;
22
+ --clr-grey800: #2d3748;
23
+ --clr-grey900: #1a202c;
24
+ --clr-link: #0074d9;
25
+ --clr-link-hover: #1e40af;
26
+ --clr-success: #2ecc40;
27
+ --clr-warning: #efad2b;
28
+ --clr-danger: #ee3768;
29
+ --clr-danger-dark: #d3184a;
30
+ --clr-error: #ee3768;
31
+ --clr-error-dark: #d3184a;
32
+ --clr-pending: #a0aec0;
33
+ --clr-brand: #2ecc40;
34
+
35
+ /*
36
+ * Opacity Variants
37
+ */
38
+ --clr-white0: rgba(255, 255, 255, 0);
39
+ --clr-white80: rgba(255, 255, 255, .8);
40
+ --clr-primary5: rgba(46, 204, 64, .05);
41
+ --clr-primary10: rgba(46, 204, 64, .1);
42
+ --clr-primary20: rgba(46, 204, 64, .2);
43
+ --clr-grey1000: rgba(rgb(247, 250, 252), 0);
44
+ --clr-grey10080: rgba(rgb(247, 250, 252), .8);
45
+ --clr-warning5: rgba(239, 173, 43, .05);
46
+ --clr-error5: rgba(238, 55, 104, .05);
47
+
48
+ /*
49
+ * Font Families
50
+ */
51
+ --ff-body: ui-sans-serif, system-ui, -apple-system, "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
52
+
53
+ /*
54
+ * Font Sizes
55
+ */
56
+ --fs-xxsml: 1rem;
57
+ --fs-xsml: 1.2rem;
58
+ --fs-sml: 1.3rem;
59
+ --fs-med: 1.4rem;
60
+ --fs-lrg: 1.8rem;
61
+ --fs-xlrg: 2.2rem;
62
+ --fs-xxlrg: 3.2rem;
63
+ --fs-xxxlrg: 4.8rem;
64
+
65
+ /*
66
+ * Line Heights
67
+ */
68
+ --lh-body: 1.5;
69
+ --lh-tight: 1.2;
70
+
71
+ /*
72
+ * Font Weights
73
+ */
74
+ --fw-body: 400;
75
+ --fw-semibold: 500;
76
+ --fw-bold: 600;
77
+
78
+ /*
79
+ * Structure
80
+ */
81
+ --banner-height: 6rem;
82
+ --banner-width: 22rem;
83
+ --header-height: 8rem;
84
+ --input-height: 4.4rem;
85
+ }
@@ -0,0 +1,4 @@
1
+ declare module '*.module.css' {
2
+ const classNames: Record<string, string>;
3
+ export = classNames;
4
+ }
@@ -0,0 +1,45 @@
1
+ /* istanbul ignore file */
2
+
3
+ import type { NextRouter } from 'next/router';
4
+
5
+ const getPathname = (pathname?: string): string => {
6
+ if (!pathname) {
7
+ return '/';
8
+ }
9
+ return /^\//u.exec(pathname) ? pathname : `/${pathname}`;
10
+ };
11
+
12
+ export const createMockRouter = (
13
+ pathname?: string,
14
+ query?: Record<string, string>
15
+ ): NextRouter => ({
16
+ asPath: getPathname(pathname),
17
+ back: (): null => null,
18
+ basePath: '',
19
+ beforePopState: (): null => null,
20
+ events: {
21
+ emit: (): null => null,
22
+ off: (): null => null,
23
+ on: (): null => null,
24
+ },
25
+ isFallback: false,
26
+ isLocaleDomain: false,
27
+ isPreview: false,
28
+ isReady: false,
29
+ pathname: getPathname(pathname),
30
+ prefetch: async (): Promise<void> =>
31
+ new Promise((resolve): void => {
32
+ resolve();
33
+ }),
34
+ push: async (): Promise<boolean> =>
35
+ new Promise((resolve): void => {
36
+ resolve(true);
37
+ }),
38
+ query: query || {},
39
+ reload: (): null => null,
40
+ replace: async (): Promise<boolean> =>
41
+ new Promise((resolve): void => {
42
+ resolve(true);
43
+ }),
44
+ route: '',
45
+ });
@@ -0,0 +1,9 @@
1
+ .root {
2
+ background-color: #edf2f7;
3
+ min-height: 20rem;
4
+ transform: scale(1);
5
+ }
6
+
7
+ .rootIsDeep {
8
+ min-height: 30rem;
9
+ }
@@ -0,0 +1,25 @@
1
+ import React, { Fragment } from 'react';
2
+ import classNames from 'classnames';
3
+ import PropTypes from 'prop-types';
4
+
5
+ import styles from './StorybookPanel.module.css';
6
+
7
+ interface StorybookPanelProps {
8
+ children: React.ReactNode;
9
+ isDeep?: boolean;
10
+ }
11
+
12
+ const StorybookPanel: React.FunctionComponent<StorybookPanelProps> = ({ children, isDeep }) => (
13
+ <Fragment>
14
+ {/* eslint-disable @typescript-eslint/naming-convention, react/no-danger */}
15
+ <style dangerouslySetInnerHTML={{ __html: '.docs-story { background-color: #edf2f7 }' }} />
16
+ <div className={classNames(styles.root, isDeep && styles.rootIsDeep)}>{children}</div>
17
+ </Fragment>
18
+ );
19
+
20
+ StorybookPanel.propTypes = {
21
+ children: PropTypes.node.isRequired,
22
+ isDeep: PropTypes.bool,
23
+ };
24
+
25
+ export default StorybookPanel;
@@ -0,0 +1,7 @@
1
+ .value {
2
+ color: var(--clr-grey600);
3
+ display: flex;
4
+ font-size: var(--fs-sml);
5
+ font-style: italic;
6
+ padding-top: 1rem;
7
+ }
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { render, screen } from '@testing-library/react';
3
+
4
+ import TestChangeHandler from './index';
5
+
6
+ describe('TestChangeHandler', () => {
7
+ it('should return with valid element', () => {
8
+ render(
9
+ <TestChangeHandler>
10
+ <div>Lorem</div>
11
+ </TestChangeHandler>
12
+ );
13
+ expect(screen.getByTestId('test-change-handler-root')).toHaveTextContent(
14
+ /^LoremThe current value of the above component is:$/u
15
+ );
16
+ });
17
+
18
+ it('should return null with invalid element', () => {
19
+ render(<TestChangeHandler>Lorem</TestChangeHandler>);
20
+ expect(screen.getByTestId('test-change-handler-root')).toHaveTextContent(
21
+ /^The current value of the above component is:$/u
22
+ );
23
+ });
24
+ });
@@ -0,0 +1,54 @@
1
+ import React, { Children, cloneElement, isValidElement, useState } from 'react';
2
+ import PropTypes from 'prop-types';
3
+
4
+ import type { InputValue, SimpleEvent } from '@utility/interfaces';
5
+
6
+ import styles from './TestChangeHandler.module.css';
7
+
8
+ interface TestChangeHandlerProps {
9
+ children: React.ReactNode;
10
+ defaultValue?: InputValue;
11
+ }
12
+
13
+ const TestChangeHandler: React.FunctionComponent<TestChangeHandlerProps> = ({
14
+ children,
15
+ defaultValue,
16
+ }) => {
17
+ const [value, setValue] = useState<InputValue | undefined>(defaultValue);
18
+
19
+ const onChange = (event: SimpleEvent): void => {
20
+ setValue(event.target.value);
21
+ };
22
+
23
+ const injectedChildren = Children.map(children, (child) => {
24
+ if (!isValidElement(child)) {
25
+ return null;
26
+ }
27
+
28
+ return cloneElement(child, { value, onChange });
29
+ });
30
+
31
+ return (
32
+ <div data-testid="test-change-handler-root">
33
+ {injectedChildren}
34
+ <div className={styles.value}>
35
+ The current value of the above component is:&nbsp;
36
+ <strong data-testid="test-change-handler-value">{JSON.stringify(value)}</strong>
37
+ </div>
38
+ </div>
39
+ );
40
+ };
41
+
42
+ TestChangeHandler.propTypes = {
43
+ children: PropTypes.node.isRequired,
44
+ defaultValue: PropTypes.oneOfType([
45
+ PropTypes.string,
46
+ PropTypes.number,
47
+ PropTypes.bool,
48
+ PropTypes.arrayOf(
49
+ PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]).isRequired
50
+ ),
51
+ ]),
52
+ };
53
+
54
+ export default TestChangeHandler;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import type { AppInitialProps } from 'next/app';
3
+
4
+ import { ApiService } from '@sqrzro/utility';
5
+
6
+ import App from '@components/App';
7
+ import type { AppType } from '@components/App';
8
+ import type { Config } from '@hooks/useAppContext';
9
+ import { AppPropTypes } from '@utility/prop-types';
10
+
11
+ const createApp = (config: Config): AppType => {
12
+ ApiService.registerConfig({ path: config.paths?.api });
13
+
14
+ /* eslint-disable @typescript-eslint/naming-convention */
15
+ const AdminApp: AppType = ({ Component, Logo, router }) => (
16
+ <App Component={Component} Logo={Logo} config={config} router={router} />
17
+ );
18
+ /* eslint-enable */
19
+
20
+ AdminApp.propTypes = AppPropTypes;
21
+
22
+ // Ensure no page is statically generated
23
+ // eslint-disable-next-line @typescript-eslint/require-await
24
+ AdminApp.getInitialProps = async (): Promise<AppInitialProps> => ({ pageProps: null });
25
+
26
+ return AdminApp;
27
+ };
28
+
29
+ export default createApp;
@@ -0,0 +1,119 @@
1
+ import type { FunctionComponent, KeyboardEventHandler, MouseEventHandler } from 'react';
2
+ import type { NextRouter } from 'next/router';
3
+
4
+ /*
5
+ * ---------------------------------------------------------------------------------
6
+ * Interfaces
7
+ * ---------------------------------------------------------------------------------
8
+ */
9
+
10
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
11
+ export interface LayoutComponent extends FunctionComponent<{ children: React.ReactNode }> {}
12
+
13
+ export interface SceneComponentType extends FunctionComponent<{ router: NextRouter }> {
14
+ Layout?: LayoutComponent;
15
+ hasLayout?: boolean;
16
+ }
17
+
18
+ export interface SimpleAction {
19
+ isDisabled?: boolean | null;
20
+ label: string;
21
+ onClick: () => void;
22
+ variant?: ButtonVariant | ButtonVariant[];
23
+ }
24
+
25
+ export interface NavigationObject {
26
+ label: string;
27
+ to?: string | null;
28
+ onClick?: MouseEventHandler<HTMLAnchorElement | HTMLButtonElement>;
29
+ permission?: string;
30
+ }
31
+
32
+ export type Remote = string | [string, Record<string, string[] | string | null>];
33
+
34
+ export interface SimpleObject {
35
+ id: number | string;
36
+ name: string;
37
+ }
38
+
39
+ type SimpleActionFunction = (data?: Record<string, unknown>) => SimpleAction[];
40
+
41
+ export interface TransformedObject {
42
+ [key: string]: unknown;
43
+ $id: number | string;
44
+ $actions?: SimpleAction[] | SimpleActionFunction | null;
45
+ $original?: Record<string, unknown>;
46
+ }
47
+
48
+ export type Transformer<T = Record<string, unknown>> =
49
+ | ((item: T) => TransformedObject)
50
+ | [(item: T) => TransformedObject, SimpleAction[] | SimpleActionFunction];
51
+
52
+ export interface SimpleEventTarget<T = InputValue> {
53
+ name: string;
54
+ value: T;
55
+
56
+ /*
57
+ * These are added purely to get around `Form` element handling both `SimpleEvent` and
58
+ * `React.ChangeEvent<HTMLInputElement>` in the same function.
59
+ */
60
+ readonly checked?: boolean;
61
+ readonly type?: string;
62
+ }
63
+
64
+ export type InputValue = File | InputValue[] | boolean | number | string | null;
65
+
66
+ export interface SimpleEvent<T = InputValue> {
67
+ item?: SimpleObject;
68
+ target: SimpleEventTarget<T>;
69
+ }
70
+
71
+ export type SimpleEventHandler<P = InputValue, T = SimpleEvent<P>> = (event: T) => void;
72
+
73
+ export type StyleVariant =
74
+ | 'bordered'
75
+ | 'danger'
76
+ | 'primary'
77
+ | 'secondary'
78
+ | 'success'
79
+ | 'tertiary'
80
+ | 'warning';
81
+
82
+ export type ButtonVariant = StyleVariant | 'link';
83
+
84
+ export interface InputProps<T = InputValue, E = HTMLInputElement> {
85
+ /** Whether or not the field has a validation error */
86
+ hasError?: boolean;
87
+ id?: string;
88
+ isDisabled?: boolean;
89
+
90
+ /** The name of the field */
91
+ name: string;
92
+ onChange?: SimpleEventHandler<T>;
93
+ onKeyDown?: KeyboardEventHandler<E>;
94
+
95
+ /** The value of the field */
96
+ value?: T;
97
+ }
98
+
99
+ export interface PaginationObject {
100
+ activePage: number;
101
+ pageCount: number;
102
+ }
103
+
104
+ /*
105
+ * ---------------------------------------------------------------------------------
106
+ * Checks
107
+ * ---------------------------------------------------------------------------------
108
+ */
109
+
110
+ export const isString = (variable: unknown): variable is string => typeof variable === 'string';
111
+
112
+ export const isStringArray = (variable: unknown): variable is string[] =>
113
+ Array.isArray(variable) && (variable.length === 0 || isString(variable[0]));
114
+
115
+ export const isSimpleObject = (variable: unknown): variable is SimpleObject =>
116
+ isString((variable as SimpleObject).name);
117
+
118
+ export const isSimpleObjectArray = (variable: unknown): variable is SimpleObject[] =>
119
+ Array.isArray(variable) && (variable.length === 0 || isSimpleObject(variable[0]));
@@ -0,0 +1,67 @@
1
+ import PropTypes from 'prop-types';
2
+
3
+ import type { ButtonVariant, StyleVariant } from '@utility/interfaces';
4
+
5
+ export const NextRouterPropType = PropTypes.shape({
6
+ asPath: PropTypes.string.isRequired,
7
+ back: PropTypes.func.isRequired,
8
+ basePath: PropTypes.string.isRequired,
9
+ beforePopState: PropTypes.func.isRequired,
10
+ events: PropTypes.shape({
11
+ emit: PropTypes.func.isRequired,
12
+ off: PropTypes.func.isRequired,
13
+ on: PropTypes.func.isRequired,
14
+ }).isRequired,
15
+ isFallback: PropTypes.bool.isRequired,
16
+ isLocaleDomain: PropTypes.bool.isRequired,
17
+ isPreview: PropTypes.bool.isRequired,
18
+ isReady: PropTypes.bool.isRequired,
19
+ pathname: PropTypes.string.isRequired,
20
+ prefetch: PropTypes.func.isRequired,
21
+ push: PropTypes.func.isRequired,
22
+ query: PropTypes.shape({}).isRequired,
23
+ reload: PropTypes.func.isRequired,
24
+ replace: PropTypes.func.isRequired,
25
+ route: PropTypes.string.isRequired,
26
+ });
27
+
28
+ const styleVariantPropTypes: StyleVariant[] = [
29
+ 'bordered',
30
+ 'danger',
31
+ 'primary',
32
+ 'secondary',
33
+ 'success',
34
+ 'tertiary',
35
+ ];
36
+
37
+ const buttonVariantPropTypes: ButtonVariant[] = [...styleVariantPropTypes, 'link'];
38
+
39
+ export const StyleVariantPropType = PropTypes.oneOfType([
40
+ PropTypes.arrayOf(PropTypes.oneOf(styleVariantPropTypes).isRequired),
41
+ PropTypes.oneOf(styleVariantPropTypes).isRequired,
42
+ ]);
43
+
44
+ export const ButtonVariantPropType = PropTypes.oneOfType([
45
+ PropTypes.arrayOf(PropTypes.oneOf(buttonVariantPropTypes).isRequired),
46
+ PropTypes.oneOf(buttonVariantPropTypes).isRequired,
47
+ ]);
48
+
49
+ export const AppPropTypes = {
50
+ Component: PropTypes.func.isRequired,
51
+ config: PropTypes.shape({
52
+ auth: PropTypes.shape({}),
53
+ name: PropTypes.string.isRequired,
54
+ navigation: PropTypes.arrayOf(
55
+ PropTypes.oneOfType([
56
+ PropTypes.shape({
57
+ label: PropTypes.string.isRequired,
58
+ to: PropTypes.string,
59
+ }).isRequired,
60
+ PropTypes.string.isRequired,
61
+ ]).isRequired
62
+ ).isRequired,
63
+ paths: PropTypes.shape({}).isRequired,
64
+ style: PropTypes.shape({}),
65
+ }),
66
+ Logo: PropTypes.func,
67
+ };
@@ -0,0 +1,10 @@
1
+ require('@testing-library/jest-dom');
2
+ require('regenerator-runtime/runtime');
3
+
4
+ require('jest-fetch-mock').enableMocks();
5
+
6
+ const { ApiService } = require('@sqrzro/utility');
7
+
8
+ beforeEach(() => {
9
+ ApiService.registerConfig({ path: 'http://example.com' });
10
+ });
package/tsconfig.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "compilerOptions": {
3
+ "allowSyntheticDefaultImports": true,
4
+ "baseUrl": "./src",
5
+ "esModuleInterop": true,
6
+ "forceConsistentCasingInFileNames": true,
7
+ "importHelpers": true,
8
+ "isolatedModules": true,
9
+ "jsx": "react",
10
+ "lib": ["esnext", "dom", "dom.iterable"],
11
+ "module": "esnext",
12
+ "moduleResolution": "node",
13
+ "paths": {
14
+ "@components/*": ["./components/*"],
15
+ "@core/*": ["./core/*"],
16
+ "@filters/*": ["./filters/*"],
17
+ "@hooks/*": ["./hooks/*"],
18
+ "@services/*": ["./services/*"],
19
+ "@utility/*": ["./utility/*"]
20
+ },
21
+ "resolveJsonModule": true,
22
+ "skipLibCheck": true,
23
+ "strict": true,
24
+ },
25
+ "include": ["src/**/*.ts", "src/**/*.tsx"]
26
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "declaration": true,
5
+ "declarationDir": "dist/types",
6
+ "outDir": "dist/types"
7
+ },
8
+ "exclude": ["src/**/*.spec.ts", "src/**/*.spec.tsx", "src/**/*.story.tsx"]
9
+ }