@arbor-education/design-system.components 4.6.0 → 4.7.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/.changeset/twenty-groups-wonder.md +5 -0
  2. package/.changeset/yellow-falcons-search.md +5 -0
  3. package/dist/components/button/Button.story.d.ts +47 -0
  4. package/dist/components/button/Button.story.d.ts.map +1 -0
  5. package/dist/components/button/Button.story.js +123 -0
  6. package/dist/components/button/Button.story.js.map +1 -0
  7. package/dist/components/button/ButtonUsageExample.d.ts +2 -0
  8. package/dist/components/button/ButtonUsageExample.d.ts.map +1 -0
  9. package/dist/components/button/ButtonUsageExample.js +11 -0
  10. package/dist/components/button/ButtonUsageExample.js.map +1 -0
  11. package/dist/components/combobox/useElementWidth.d.ts +2 -0
  12. package/dist/components/combobox/useElementWidth.d.ts.map +1 -0
  13. package/dist/components/combobox/useElementWidth.js +31 -0
  14. package/dist/components/combobox/useElementWidth.js.map +1 -0
  15. package/dist/components/combobox/useVisibleChips.d.ts +21 -0
  16. package/dist/components/combobox/useVisibleChips.d.ts.map +1 -0
  17. package/dist/components/combobox/useVisibleChips.js +59 -0
  18. package/dist/components/combobox/useVisibleChips.js.map +1 -0
  19. package/dist/components/combobox/useVisibleChips.test.d.ts +2 -0
  20. package/dist/components/combobox/useVisibleChips.test.d.ts.map +1 -0
  21. package/dist/components/combobox/useVisibleChips.test.js +81 -0
  22. package/dist/components/combobox/useVisibleChips.test.js.map +1 -0
  23. package/dist/components/heading/HeadingInnerContainer.d.ts +5 -0
  24. package/dist/components/heading/HeadingInnerContainer.d.ts.map +1 -0
  25. package/dist/components/heading/HeadingInnerContainer.js +7 -0
  26. package/dist/components/heading/HeadingInnerContainer.js.map +1 -0
  27. package/dist/components/icoText/IcoText.d.ts +37 -0
  28. package/dist/components/icoText/IcoText.d.ts.map +1 -0
  29. package/dist/components/icoText/IcoText.js +29 -0
  30. package/dist/components/icoText/IcoText.js.map +1 -0
  31. package/dist/components/icoText/IcoText.stories.d.ts +60 -0
  32. package/dist/components/icoText/IcoText.stories.d.ts.map +1 -0
  33. package/dist/components/icoText/IcoText.stories.js +319 -0
  34. package/dist/components/icoText/IcoText.stories.js.map +1 -0
  35. package/dist/components/icoText/IcoText.test.d.ts +2 -0
  36. package/dist/components/icoText/IcoText.test.d.ts.map +1 -0
  37. package/dist/components/icoText/IcoText.test.js +27 -0
  38. package/dist/components/icoText/IcoText.test.js.map +1 -0
  39. package/dist/components/pill/Pill.d.ts.map +1 -1
  40. package/dist/components/pill/Pill.js +1 -1
  41. package/dist/components/pill/Pill.js.map +1 -1
  42. package/dist/components/sidebarNav/SidebarNav.d.ts +46 -0
  43. package/dist/components/sidebarNav/SidebarNav.d.ts.map +1 -0
  44. package/dist/components/sidebarNav/SidebarNav.js +102 -0
  45. package/dist/components/sidebarNav/SidebarNav.js.map +1 -0
  46. package/dist/components/sidebarNav/SidebarNav.stories.d.ts +61 -0
  47. package/dist/components/sidebarNav/SidebarNav.stories.d.ts.map +1 -0
  48. package/dist/components/sidebarNav/SidebarNav.stories.js +253 -0
  49. package/dist/components/sidebarNav/SidebarNav.stories.js.map +1 -0
  50. package/dist/components/sidebarNav/SidebarNav.test.d.ts +2 -0
  51. package/dist/components/sidebarNav/SidebarNav.test.d.ts.map +1 -0
  52. package/dist/components/sidebarNav/SidebarNav.test.js +240 -0
  53. package/dist/components/sidebarNav/SidebarNav.test.js.map +1 -0
  54. package/dist/components/sidebarNav/SidebarNavContext.d.ts +13 -0
  55. package/dist/components/sidebarNav/SidebarNavContext.d.ts.map +1 -0
  56. package/dist/components/sidebarNav/SidebarNavContext.js +15 -0
  57. package/dist/components/sidebarNav/SidebarNavContext.js.map +1 -0
  58. package/dist/components/sidebarNav/SidebarNavGroup.d.ts +10 -0
  59. package/dist/components/sidebarNav/SidebarNavGroup.d.ts.map +1 -0
  60. package/dist/components/sidebarNav/SidebarNavGroup.js +16 -0
  61. package/dist/components/sidebarNav/SidebarNavGroup.js.map +1 -0
  62. package/dist/components/sidebarNav/SidebarNavItem.d.ts +32 -0
  63. package/dist/components/sidebarNav/SidebarNavItem.d.ts.map +1 -0
  64. package/dist/components/sidebarNav/SidebarNavItem.js +44 -0
  65. package/dist/components/sidebarNav/SidebarNavItem.js.map +1 -0
  66. package/dist/components/sidebarNav/SidebarNavItemFavourite.d.ts +8 -0
  67. package/dist/components/sidebarNav/SidebarNavItemFavourite.d.ts.map +1 -0
  68. package/dist/components/sidebarNav/SidebarNavItemFavourite.js +14 -0
  69. package/dist/components/sidebarNav/SidebarNavItemFavourite.js.map +1 -0
  70. package/dist/components/sidebarNav/SidebarNavPanel.d.ts +4 -0
  71. package/dist/components/sidebarNav/SidebarNavPanel.d.ts.map +1 -0
  72. package/dist/components/sidebarNav/SidebarNavPanel.js +9 -0
  73. package/dist/components/sidebarNav/SidebarNavPanel.js.map +1 -0
  74. package/dist/components/sidebarNav/SidebarNavPanelNav.d.ts +10 -0
  75. package/dist/components/sidebarNav/SidebarNavPanelNav.d.ts.map +1 -0
  76. package/dist/components/sidebarNav/SidebarNavPanelNav.js +21 -0
  77. package/dist/components/sidebarNav/SidebarNavPanelNav.js.map +1 -0
  78. package/dist/components/sidebarNav/SidebarNavRail.d.ts +6 -0
  79. package/dist/components/sidebarNav/SidebarNavRail.d.ts.map +1 -0
  80. package/dist/components/sidebarNav/SidebarNavRail.js +7 -0
  81. package/dist/components/sidebarNav/SidebarNavRail.js.map +1 -0
  82. package/dist/components/sidebarNav/SidebarNavRailItem.d.ts +10 -0
  83. package/dist/components/sidebarNav/SidebarNavRailItem.d.ts.map +1 -0
  84. package/dist/components/sidebarNav/SidebarNavRailItem.js +25 -0
  85. package/dist/components/sidebarNav/SidebarNavRailItem.js.map +1 -0
  86. package/dist/components/sidebarNav/SidebarNavRailList.d.ts +4 -0
  87. package/dist/components/sidebarNav/SidebarNavRailList.d.ts.map +1 -0
  88. package/dist/components/sidebarNav/SidebarNavRailList.js +7 -0
  89. package/dist/components/sidebarNav/SidebarNavRailList.js.map +1 -0
  90. package/dist/components/sidebarNav/SidebarNavRailSlot.d.ts +6 -0
  91. package/dist/components/sidebarNav/SidebarNavRailSlot.d.ts.map +1 -0
  92. package/dist/components/sidebarNav/SidebarNavRailSlot.js +7 -0
  93. package/dist/components/sidebarNav/SidebarNavRailSlot.js.map +1 -0
  94. package/dist/components/sidebarNav/SidebarNavSeparator.d.ts +6 -0
  95. package/dist/components/sidebarNav/SidebarNavSeparator.d.ts.map +1 -0
  96. package/dist/components/sidebarNav/SidebarNavSeparator.js +8 -0
  97. package/dist/components/sidebarNav/SidebarNavSeparator.js.map +1 -0
  98. package/dist/components/sidebarNav/SidebarNavTitle.d.ts +4 -0
  99. package/dist/components/sidebarNav/SidebarNavTitle.d.ts.map +1 -0
  100. package/dist/components/sidebarNav/SidebarNavTitle.js +7 -0
  101. package/dist/components/sidebarNav/SidebarNavTitle.js.map +1 -0
  102. package/dist/components/sidebarNav/SidebarNavTooltip.d.ts +7 -0
  103. package/dist/components/sidebarNav/SidebarNavTooltip.d.ts.map +1 -0
  104. package/dist/components/sidebarNav/SidebarNavTooltip.js +9 -0
  105. package/dist/components/sidebarNav/SidebarNavTooltip.js.map +1 -0
  106. package/dist/components/sidebarNav/SidebarNavTrigger.d.ts +8 -0
  107. package/dist/components/sidebarNav/SidebarNavTrigger.d.ts.map +1 -0
  108. package/dist/components/sidebarNav/SidebarNavTrigger.js +15 -0
  109. package/dist/components/sidebarNav/SidebarNavTrigger.js.map +1 -0
  110. package/dist/components/sidebarNav/index.d.ts +4 -0
  111. package/dist/components/sidebarNav/index.d.ts.map +1 -0
  112. package/dist/components/sidebarNav/index.js +3 -0
  113. package/dist/components/sidebarNav/index.js.map +1 -0
  114. package/dist/components/sidebarNav/resolvePanelItemProps.d.ts +4 -0
  115. package/dist/components/sidebarNav/resolvePanelItemProps.d.ts.map +1 -0
  116. package/dist/components/sidebarNav/resolvePanelItemProps.js +43 -0
  117. package/dist/components/sidebarNav/resolvePanelItemProps.js.map +1 -0
  118. package/dist/components/sidebarNav/resolvePanelItemProps.test.d.ts +2 -0
  119. package/dist/components/sidebarNav/resolvePanelItemProps.test.d.ts.map +1 -0
  120. package/dist/components/sidebarNav/resolvePanelItemProps.test.js +52 -0
  121. package/dist/components/sidebarNav/resolvePanelItemProps.test.js.map +1 -0
  122. package/dist/components/sidebarNav/types.d.ts +100 -0
  123. package/dist/components/sidebarNav/types.d.ts.map +1 -0
  124. package/dist/components/sidebarNav/types.js +4 -0
  125. package/dist/components/sidebarNav/types.js.map +1 -0
  126. package/dist/components/sidebarNav/useControllableBoolean.d.ts +9 -0
  127. package/dist/components/sidebarNav/useControllableBoolean.d.ts.map +1 -0
  128. package/dist/components/sidebarNav/useControllableBoolean.js +15 -0
  129. package/dist/components/sidebarNav/useControllableBoolean.js.map +1 -0
  130. package/dist/components/slideover/Slideover.stories.d.ts +10 -0
  131. package/dist/components/slideover/Slideover.stories.d.ts.map +1 -0
  132. package/dist/components/slideover/Slideover.stories.js +12 -0
  133. package/dist/components/slideover/Slideover.stories.js.map +1 -0
  134. package/dist/components/table/BulkActionsDropdown.d.ts +12 -0
  135. package/dist/components/table/BulkActionsDropdown.d.ts.map +1 -0
  136. package/dist/components/table/BulkActionsDropdown.js +11 -0
  137. package/dist/components/table/BulkActionsDropdown.js.map +1 -0
  138. package/dist/components/table/HideColumnsDropdown.d.ts +9 -0
  139. package/dist/components/table/HideColumnsDropdown.d.ts.map +1 -0
  140. package/dist/components/table/HideColumnsDropdown.js +33 -0
  141. package/dist/components/table/HideColumnsDropdown.js.map +1 -0
  142. package/dist/components/table/Table.d.ts +1 -1
  143. package/dist/components/table/Table.stories.d.ts.map +1 -1
  144. package/dist/components/table/Table.stories.js +0 -5
  145. package/dist/components/table/Table.stories.js.map +1 -1
  146. package/dist/components/table/Table.test.js +0 -5
  147. package/dist/components/table/Table.test.js.map +1 -1
  148. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.d.ts +8 -0
  149. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.d.ts.map +1 -0
  150. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.js +19 -0
  151. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.js.map +1 -0
  152. package/dist/components/table/hooks/useHistory.d.ts +20 -0
  153. package/dist/components/table/hooks/useHistory.d.ts.map +1 -0
  154. package/dist/components/table/hooks/useHistory.js +73 -0
  155. package/dist/components/table/hooks/useHistory.js.map +1 -0
  156. package/dist/components/table/hooks/useTableHistory.d.ts +21 -0
  157. package/dist/components/table/hooks/useTableHistory.d.ts.map +1 -0
  158. package/dist/components/table/hooks/useTableHistory.js +88 -0
  159. package/dist/components/table/hooks/useTableHistory.js.map +1 -0
  160. package/dist/components/table/pagination/TableSettingsDropdown.d.ts +2 -0
  161. package/dist/components/table/pagination/TableSettingsDropdown.d.ts.map +1 -0
  162. package/dist/components/table/pagination/TableSettingsDropdown.js +42 -0
  163. package/dist/components/table/pagination/TableSettingsDropdown.js.map +1 -0
  164. package/dist/components/table/tableHeader/TableHeader.d.ts +14 -0
  165. package/dist/components/table/tableHeader/TableHeader.d.ts.map +1 -0
  166. package/dist/components/table/tableHeader/TableHeader.js +55 -0
  167. package/dist/components/table/tableHeader/TableHeader.js.map +1 -0
  168. package/dist/components/table/tableHeader/index.d.ts +2 -0
  169. package/dist/components/table/tableHeader/index.d.ts.map +1 -0
  170. package/dist/components/table/tableHeader/index.js +2 -0
  171. package/dist/components/table/tableHeader/index.js.map +1 -0
  172. package/dist/components/table/tableTheme.d.ts +2 -0
  173. package/dist/components/table/tableTheme.d.ts.map +1 -0
  174. package/dist/components/table/tableTheme.js +18 -0
  175. package/dist/components/table/tableTheme.js.map +1 -0
  176. package/dist/components/table/types.d.ts +169 -0
  177. package/dist/components/table/types.d.ts.map +1 -0
  178. package/dist/components/table/types.js +11 -0
  179. package/dist/components/table/types.js.map +1 -0
  180. package/dist/components/table/utils/setAgGridLicenseKey.d.ts +2 -0
  181. package/dist/components/table/utils/setAgGridLicenseKey.d.ts.map +1 -0
  182. package/dist/components/table/utils/setAgGridLicenseKey.js +11 -0
  183. package/dist/components/table/utils/setAgGridLicenseKey.js.map +1 -0
  184. package/dist/layoutTest.stories.d.ts +6 -0
  185. package/dist/layoutTest.stories.d.ts.map +1 -0
  186. package/dist/layoutTest.stories.js +9 -0
  187. package/dist/layoutTest.stories.js.map +1 -0
  188. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.d.ts +39 -0
  189. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.d.ts.map +1 -0
  190. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.js +112 -0
  191. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.js.map +1 -0
  192. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.stories.d.ts +184 -0
  193. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.stories.d.ts.map +1 -0
  194. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.stories.js +317 -0
  195. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.stories.js.map +1 -0
  196. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.test.d.ts +2 -0
  197. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.test.d.ts.map +1 -0
  198. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.test.js +160 -0
  199. package/dist/pages/assessmentBuilderPage/AssessmentBuilderPage.test.js.map +1 -0
  200. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.d.ts +11 -0
  201. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.d.ts.map +1 -0
  202. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.js +13 -0
  203. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.js.map +1 -0
  204. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.stories.d.ts +174 -0
  205. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.stories.d.ts.map +1 -0
  206. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.stories.js +212 -0
  207. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.stories.js.map +1 -0
  208. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.test.d.ts +2 -0
  209. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.test.d.ts.map +1 -0
  210. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.test.js +84 -0
  211. package/dist/pages/assessmentSettingsPage/AssessmentSettingsPage.test.js.map +1 -0
  212. package/dist/pages/assessmentsPage/AssessmentsPage.d.ts +16 -0
  213. package/dist/pages/assessmentsPage/AssessmentsPage.d.ts.map +1 -0
  214. package/dist/pages/assessmentsPage/AssessmentsPage.js +31 -0
  215. package/dist/pages/assessmentsPage/AssessmentsPage.js.map +1 -0
  216. package/dist/pages/assessmentsPage/AssessmentsPage.stories.d.ts +162 -0
  217. package/dist/pages/assessmentsPage/AssessmentsPage.stories.d.ts.map +1 -0
  218. package/dist/pages/assessmentsPage/AssessmentsPage.stories.js +290 -0
  219. package/dist/pages/assessmentsPage/AssessmentsPage.stories.js.map +1 -0
  220. package/dist/pages/assessmentsPage/AssessmentsPage.test.d.ts +2 -0
  221. package/dist/pages/assessmentsPage/AssessmentsPage.test.d.ts.map +1 -0
  222. package/dist/pages/assessmentsPage/AssessmentsPage.test.js +109 -0
  223. package/dist/pages/assessmentsPage/AssessmentsPage.test.js.map +1 -0
  224. package/dist/pages/customReportWriterPage/CustomReportWriterPage.d.ts +40 -0
  225. package/dist/pages/customReportWriterPage/CustomReportWriterPage.d.ts.map +1 -0
  226. package/dist/pages/customReportWriterPage/CustomReportWriterPage.js +156 -0
  227. package/dist/pages/customReportWriterPage/CustomReportWriterPage.js.map +1 -0
  228. package/dist/pages/customReportWriterPage/CustomReportWriterPage.stories.d.ts +239 -0
  229. package/dist/pages/customReportWriterPage/CustomReportWriterPage.stories.d.ts.map +1 -0
  230. package/dist/pages/customReportWriterPage/CustomReportWriterPage.stories.js +318 -0
  231. package/dist/pages/customReportWriterPage/CustomReportWriterPage.stories.js.map +1 -0
  232. package/dist/pages/customReportWriterPage/CustomReportWriterPage.test.d.ts +2 -0
  233. package/dist/pages/customReportWriterPage/CustomReportWriterPage.test.d.ts.map +1 -0
  234. package/dist/pages/customReportWriterPage/CustomReportWriterPage.test.js +183 -0
  235. package/dist/pages/customReportWriterPage/CustomReportWriterPage.test.js.map +1 -0
  236. package/dist/pages/gradeSetsPage/GradeSetsPage.d.ts +26 -0
  237. package/dist/pages/gradeSetsPage/GradeSetsPage.d.ts.map +1 -0
  238. package/dist/pages/gradeSetsPage/GradeSetsPage.js +33 -0
  239. package/dist/pages/gradeSetsPage/GradeSetsPage.js.map +1 -0
  240. package/dist/pages/gradeSetsPage/GradeSetsPage.stories.d.ts +176 -0
  241. package/dist/pages/gradeSetsPage/GradeSetsPage.stories.d.ts.map +1 -0
  242. package/dist/pages/gradeSetsPage/GradeSetsPage.stories.js +237 -0
  243. package/dist/pages/gradeSetsPage/GradeSetsPage.stories.js.map +1 -0
  244. package/dist/pages/gradeSetsPage/GradeSetsPage.test.d.ts +2 -0
  245. package/dist/pages/gradeSetsPage/GradeSetsPage.test.d.ts.map +1 -0
  246. package/dist/pages/gradeSetsPage/GradeSetsPage.test.js +91 -0
  247. package/dist/pages/gradeSetsPage/GradeSetsPage.test.js.map +1 -0
  248. package/dist/pages/studentProfilePage/StudentProfilePage.d.ts +48 -0
  249. package/dist/pages/studentProfilePage/StudentProfilePage.d.ts.map +1 -0
  250. package/dist/pages/studentProfilePage/StudentProfilePage.js +52 -0
  251. package/dist/pages/studentProfilePage/StudentProfilePage.js.map +1 -0
  252. package/dist/pages/studentProfilePage/StudentProfilePage.stories.d.ts +218 -0
  253. package/dist/pages/studentProfilePage/StudentProfilePage.stories.d.ts.map +1 -0
  254. package/dist/pages/studentProfilePage/StudentProfilePage.stories.js +273 -0
  255. package/dist/pages/studentProfilePage/StudentProfilePage.stories.js.map +1 -0
  256. package/dist/pages/studentProfilePage/StudentProfilePage.test.d.ts +2 -0
  257. package/dist/pages/studentProfilePage/StudentProfilePage.test.d.ts.map +1 -0
  258. package/dist/pages/studentProfilePage/StudentProfilePage.test.js +197 -0
  259. package/dist/pages/studentProfilePage/StudentProfilePage.test.js.map +1 -0
  260. package/dist/utils/PopupParentContext.d.ts +3 -0
  261. package/dist/utils/PopupParentContext.d.ts.map +1 -0
  262. package/dist/utils/PopupParentContext.js +6 -0
  263. package/dist/utils/PopupParentContext.js.map +1 -0
  264. package/dist/utils/PopupParentContext.stories.d.ts +17 -0
  265. package/dist/utils/PopupParentContext.stories.d.ts.map +1 -0
  266. package/dist/utils/PopupParentContext.stories.js +266 -0
  267. package/dist/utils/PopupParentContext.stories.js.map +1 -0
  268. package/dist/utils/getDefaultPopupParent.d.ts +2 -0
  269. package/dist/utils/getDefaultPopupParent.d.ts.map +1 -0
  270. package/dist/utils/getDefaultPopupParent.js +19 -0
  271. package/dist/utils/getDefaultPopupParent.js.map +1 -0
  272. package/package.json +4 -4
  273. package/src/components/pill/Pill.tsx +1 -0
  274. package/src/components/table/Table.stories.tsx +0 -5
  275. package/src/components/table/Table.test.tsx +0 -5
@@ -0,0 +1,109 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, it, expect, vi } from 'vitest';
3
+ import { render, screen } from '@testing-library/react';
4
+ import userEvent from '@testing-library/user-event';
5
+ import '@testing-library/jest-dom/vitest';
6
+ import { AssessmentsPage } from './AssessmentsPage.js';
7
+ const mockAssessments = [
8
+ { id: '1', name: 'Internal Progress Tracking (Years 7-11)', completionPercentage: 66, status: 'active' },
9
+ { id: '2', name: 'KS3 History (ARE)', completionPercentage: 79, status: 'active' },
10
+ { id: '3', name: 'KS4 Assessment 2025/26', completionPercentage: 50, status: 'draft' },
11
+ { id: '4', name: 'Year 1 Phonics Screening Check', completionPercentage: 48, status: 'archived' },
12
+ ];
13
+ describe('AssessmentsPage', () => {
14
+ it('renders the page heading', () => {
15
+ render(_jsx(AssessmentsPage, {}));
16
+ expect(screen.getByRole('heading', { name: /assessments/i, level: 1 })).toBeInTheDocument();
17
+ });
18
+ it('renders breadcrumb navigation', () => {
19
+ render(_jsx(AssessmentsPage, {}));
20
+ expect(screen.getByRole('navigation', { name: /breadcrumb/i })).toBeInTheDocument();
21
+ expect(screen.getByRole('link', { name: /assessments/i })).toBeInTheDocument();
22
+ });
23
+ it('renders the Marksheet Settings button', () => {
24
+ render(_jsx(AssessmentsPage, {}));
25
+ expect(screen.getByRole('button', { name: /marksheet settings/i })).toBeInTheDocument();
26
+ });
27
+ it('renders the Create New Assessment button', () => {
28
+ render(_jsx(AssessmentsPage, {}));
29
+ expect(screen.getByRole('button', { name: /create new assessment/i })).toBeInTheDocument();
30
+ });
31
+ it('renders the search input', () => {
32
+ render(_jsx(AssessmentsPage, {}));
33
+ expect(screen.getByRole('textbox', { name: /search marksheets/i })).toBeInTheDocument();
34
+ });
35
+ it('renders filter pills', () => {
36
+ render(_jsx(AssessmentsPage, {}));
37
+ expect(screen.getByText('All Active')).toBeInTheDocument();
38
+ expect(screen.getByText('Draft')).toBeInTheDocument();
39
+ expect(screen.getByText('Archived')).toBeInTheDocument();
40
+ });
41
+ it('renders active assessments by default', () => {
42
+ render(_jsx(AssessmentsPage, { assessments: mockAssessments }));
43
+ expect(screen.getByText('Internal Progress Tracking (Years 7-11)')).toBeInTheDocument();
44
+ expect(screen.getByText('KS3 History (ARE)')).toBeInTheDocument();
45
+ });
46
+ it('does not show draft or archived assessments when only All Active filter is on', () => {
47
+ render(_jsx(AssessmentsPage, { assessments: mockAssessments }));
48
+ expect(screen.queryByText('KS4 Assessment 2025/26')).not.toBeInTheDocument();
49
+ expect(screen.queryByText('Year 1 Phonics Screening Check')).not.toBeInTheDocument();
50
+ });
51
+ it('renders completion percentages for visible assessments', () => {
52
+ render(_jsx(AssessmentsPage, { assessments: mockAssessments }));
53
+ expect(screen.getByText('66% completed')).toBeInTheDocument();
54
+ expect(screen.getByText('79% completed')).toBeInTheDocument();
55
+ });
56
+ it('renders Edit and Open Marksheets buttons for each visible assessment', () => {
57
+ render(_jsx(AssessmentsPage, { assessments: mockAssessments }));
58
+ const editButtons = screen.getAllByRole('button', { name: /edit/i });
59
+ const openMarksheetButtons = screen.getAllByRole('button', { name: /open marksheets/i });
60
+ expect(editButtons).toHaveLength(2);
61
+ expect(openMarksheetButtons).toHaveLength(2);
62
+ });
63
+ it('calls onCreateNewAssessment when Create New Assessment is clicked', async () => {
64
+ const onCreateNewAssessment = vi.fn();
65
+ render(_jsx(AssessmentsPage, { onCreateNewAssessment: onCreateNewAssessment }));
66
+ await userEvent.click(screen.getByRole('button', { name: /create new assessment/i }));
67
+ expect(onCreateNewAssessment).toHaveBeenCalledTimes(1);
68
+ });
69
+ it('calls onOpenMarksheetSettings when Marksheet Settings is clicked', async () => {
70
+ const onOpenMarksheetSettings = vi.fn();
71
+ render(_jsx(AssessmentsPage, { onOpenMarksheetSettings: onOpenMarksheetSettings }));
72
+ await userEvent.click(screen.getByRole('button', { name: /marksheet settings/i }));
73
+ expect(onOpenMarksheetSettings).toHaveBeenCalledTimes(1);
74
+ });
75
+ it('calls onEditAssessment with the correct id when Edit is clicked', async () => {
76
+ const onEditAssessment = vi.fn();
77
+ render(_jsx(AssessmentsPage, { assessments: mockAssessments, onEditAssessment: onEditAssessment }));
78
+ const [firstEditButton] = screen.getAllByRole('button', { name: /edit/i });
79
+ await userEvent.click(firstEditButton);
80
+ expect(onEditAssessment).toHaveBeenCalledWith('1');
81
+ });
82
+ it('calls onOpenMarksheets with the correct id when Open Marksheets is clicked', async () => {
83
+ const onOpenMarksheets = vi.fn();
84
+ render(_jsx(AssessmentsPage, { assessments: mockAssessments, onOpenMarksheets: onOpenMarksheets }));
85
+ const [firstOpenButton] = screen.getAllByRole('button', { name: /open marksheets/i });
86
+ await userEvent.click(firstOpenButton);
87
+ expect(onOpenMarksheets).toHaveBeenCalledWith('1');
88
+ });
89
+ it('filters assessments by search query', async () => {
90
+ render(_jsx(AssessmentsPage, { assessments: mockAssessments }));
91
+ const searchInput = screen.getByRole('textbox', { name: /search marksheets/i });
92
+ await userEvent.type(searchInput, 'History');
93
+ expect(screen.getByText('KS3 History (ARE)')).toBeInTheDocument();
94
+ expect(screen.queryByText('Internal Progress Tracking (Years 7-11)')).not.toBeInTheDocument();
95
+ });
96
+ it('collapses an assessment section when the collapse button is clicked', async () => {
97
+ render(_jsx(AssessmentsPage, { assessments: mockAssessments }));
98
+ const [firstCollapseButton] = screen.getAllByRole('button', { name: /collapse section/i });
99
+ expect(firstCollapseButton).toHaveAttribute('aria-expanded', 'true');
100
+ await userEvent.click(firstCollapseButton);
101
+ const [firstExpandButton] = screen.getAllByRole('button', { name: /expand section/i });
102
+ expect(firstExpandButton).toHaveAttribute('aria-expanded', 'false');
103
+ });
104
+ it('renders with no assessments without crashing', () => {
105
+ render(_jsx(AssessmentsPage, { assessments: [] }));
106
+ expect(screen.getByRole('heading', { name: /assessments/i, level: 1 })).toBeInTheDocument();
107
+ });
108
+ });
109
+ //# sourceMappingURL=AssessmentsPage.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssessmentsPage.test.js","sourceRoot":"","sources":["../../../src/pages/assessmentsPage/AssessmentsPage.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * CustomReportWriterPage - Displays and manages custom reports in Active, Archived, and Expired views.
3
+ * Migrated from legacy components to Arbor design system.
4
+ * App shell components (TopNav, SideNav) are represented as placeholder SVGs
5
+ * pending their implementation as library/app-level components.
6
+ */
7
+ import type { GridApi } from 'ag-grid-enterprise';
8
+ export type ReportTab = 'active' | 'archived' | 'expired';
9
+ export type ReportRow = {
10
+ id: string;
11
+ title: string;
12
+ type: string;
13
+ createdBy: string;
14
+ context: string;
15
+ createdDate: string;
16
+ modifiedDate: string;
17
+ accessedDate: string;
18
+ };
19
+ export type BulkAction = {
20
+ displayName: string;
21
+ callback: (api: GridApi | null) => void;
22
+ disabled?: boolean;
23
+ };
24
+ export type CustomReportWriterPageProps = {
25
+ className?: string;
26
+ reports?: ReportRow[];
27
+ bulkActions?: BulkAction[];
28
+ onCreateNewReport?: () => void;
29
+ onSchedule?: () => void;
30
+ onDuplicateSelected?: () => void;
31
+ onEditSelected?: () => void;
32
+ onDownloadCsv?: () => void;
33
+ onDownloadPdf?: () => void;
34
+ onChangeFilters?: () => void;
35
+ onOpenReport?: (id: string) => void;
36
+ onDuplicateReport?: (report: ReportRow) => void;
37
+ onEditReport?: (report: ReportRow) => void;
38
+ };
39
+ export declare const CustomReportWriterPage: ({ className, reports, bulkActions, onCreateNewReport, onSchedule, onDuplicateSelected, onEditSelected, onDownloadCsv, onDownloadPdf, onChangeFilters, onOpenReport, onDuplicateReport, onEditReport, }: CustomReportWriterPageProps) => import("react/jsx-runtime").JSX.Element;
40
+ //# sourceMappingURL=CustomReportWriterPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomReportWriterPage.d.ts","sourceRoot":"","sources":["../../../src/pages/customReportWriterPage/CustomReportWriterPage.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAU,OAAO,EAAuB,MAAM,oBAAoB,CAAC;AAY/E,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAE1D,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;CAC5C,CAAC;AAqFF,eAAO,MAAM,sBAAsB,GAAI,wMAcpC,2BAA2B,4CAia7B,CAAC"}
@@ -0,0 +1,156 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import { useState } from 'react';
4
+ import { Button } from '../../components/button/Button.js';
5
+ import { Heading } from '../../components/heading/Heading.js';
6
+ import { Icon } from '../../components/icon/Icon.js';
7
+ import { Table } from '../../components/table/Table.js';
8
+ import { Tabs } from '../../components/tabs/Tabs.js';
9
+ import { Dropdown } from '../../components/dropdown/Dropdown.js';
10
+ import { TooltipWrapper } from '../../components/tooltip/TooltipWrapper.js';
11
+ const typeIconMap = {
12
+ 'Student': 'user',
13
+ 'Staff': 'user',
14
+ 'Group': 'group',
15
+ 'School': 'house',
16
+ 'Medical Event': 'file',
17
+ 'Student Group': 'group',
18
+ };
19
+ const DEFAULT_REPORTS = [
20
+ {
21
+ id: '1',
22
+ title: 'Attendance of All Groups',
23
+ type: 'Student',
24
+ createdBy: 'Selma Allen',
25
+ context: 'Classes',
26
+ createdDate: '7th Sep 2021',
27
+ modifiedDate: '13th Mar 2022',
28
+ accessedDate: '4th Mar 2026',
29
+ },
30
+ {
31
+ id: '2',
32
+ title: 'Student Contact Reports',
33
+ type: 'Student',
34
+ createdBy: 'Selma Allen',
35
+ context: 'Student Guardian Role',
36
+ createdDate: '7th Sep 2021',
37
+ modifiedDate: '18th Apr 2022',
38
+ accessedDate: '4th Mar 2026',
39
+ },
40
+ {
41
+ id: '3',
42
+ title: 'Whole School Name Stamp',
43
+ type: 'School',
44
+ createdBy: 'Selma Allen',
45
+ context: 'Single Group Staff',
46
+ createdDate: '7th Sep 2021',
47
+ modifiedDate: '28th Apr 2022',
48
+ accessedDate: '4th Mar 2026',
49
+ },
50
+ {
51
+ id: '4',
52
+ title: 'Student Aptitude',
53
+ type: 'Student',
54
+ createdBy: 'Selma Allen',
55
+ context: 'Single Group Tutor',
56
+ createdDate: '7th Sep 2021',
57
+ modifiedDate: '13th Jun 2022',
58
+ accessedDate: '4th Mar 2026',
59
+ },
60
+ {
61
+ id: '5',
62
+ title: 'Staff Contract Port',
63
+ type: 'Staff',
64
+ createdBy: 'Arbor Admin',
65
+ context: 'Staff Contract Port',
66
+ createdDate: '17th Dec 2020',
67
+ modifiedDate: '17th Dec 2020',
68
+ accessedDate: '27th Jan 2025',
69
+ },
70
+ {
71
+ id: '6',
72
+ title: 'Medical Events',
73
+ type: 'Medical Event',
74
+ createdBy: 'Arbor Admin',
75
+ context: 'Medical Event',
76
+ createdDate: '23rd Feb 2024',
77
+ modifiedDate: '23rd Feb 2024',
78
+ accessedDate: '30th Jan 2025',
79
+ },
80
+ ];
81
+ const DEFAULT_BULK_ACTIONS = [
82
+ {
83
+ displayName: 'Archive',
84
+ callback: () => undefined,
85
+ },
86
+ {
87
+ displayName: 'Delete',
88
+ callback: () => undefined,
89
+ },
90
+ ];
91
+ export const CustomReportWriterPage = ({ className, reports = DEFAULT_REPORTS, bulkActions = DEFAULT_BULK_ACTIONS, onCreateNewReport, onSchedule, onDuplicateSelected, onEditSelected, onDownloadCsv, onDownloadPdf, onChangeFilters, onOpenReport, onDuplicateReport, onEditReport, }) => {
92
+ const [activeTab, setActiveTab] = useState('active');
93
+ const columnDefs = [
94
+ {
95
+ checkboxSelection: true,
96
+ headerCheckboxSelection: true,
97
+ width: 48,
98
+ suppressSizeToFit: true,
99
+ },
100
+ {
101
+ field: 'title',
102
+ headerName: 'Title',
103
+ sortable: true,
104
+ flex: 2,
105
+ cellRenderer: ({ value, data }) => (_jsx(Button, { variant: "text-link", size: "S", onClick: () => data && onOpenReport?.(data.id), children: value })),
106
+ },
107
+ {
108
+ field: 'type',
109
+ headerName: 'Type',
110
+ sortable: true,
111
+ flex: 1,
112
+ cellRenderer: ({ value }) => (_jsxs("span", { className: "ds-custom-report-writer-page__type-cell", children: [_jsx(Icon, { name: typeIconMap[value] ?? 'file', size: 16 }), value] })),
113
+ },
114
+ {
115
+ field: 'createdBy',
116
+ headerName: 'Created By',
117
+ sortable: true,
118
+ flex: 1,
119
+ },
120
+ {
121
+ field: 'context',
122
+ headerName: 'Context',
123
+ sortable: true,
124
+ flex: 1,
125
+ },
126
+ {
127
+ field: 'createdDate',
128
+ headerName: 'Created Date',
129
+ sortable: true,
130
+ sort: 'asc',
131
+ flex: 1,
132
+ },
133
+ {
134
+ field: 'modifiedDate',
135
+ headerName: 'Modified Date',
136
+ sortable: true,
137
+ flex: 1,
138
+ },
139
+ {
140
+ field: 'accessedDate',
141
+ headerName: 'Accessed Date',
142
+ sortable: true,
143
+ flex: 1,
144
+ },
145
+ {
146
+ headerName: '',
147
+ width: 48,
148
+ suppressSizeToFit: true,
149
+ cellRenderer: ({ data }) => (_jsxs(Dropdown, { children: [_jsx(Dropdown.Trigger, { children: _jsx(Button, { variant: "tertiary", size: "S", iconLeftName: "ellipsis-vertical", iconLeftScreenReaderText: "Row actions" }) }), _jsxs(Dropdown.Content, { children: [_jsx(Dropdown.Item, { onSelect: () => data && onDuplicateReport?.(data), children: "Duplicate" }), _jsx(Dropdown.Item, { onSelect: () => data && onEditReport?.(data), children: "Edit" })] })] })),
150
+ },
151
+ ];
152
+ const tableHeaderContent = (_jsxs("div", { className: "ds-custom-report-writer-page__table-header", children: [_jsxs("div", { className: "ds-custom-report-writer-page__toolbar-primary", children: [_jsxs("div", { className: "ds-custom-report-writer-page__toolbar-left", children: [_jsxs(Dropdown, { children: [_jsx(Dropdown.Trigger, { children: _jsx(Button, { variant: "dropdown", iconLeftName: "download", children: "Download" }) }), _jsxs(Dropdown.Content, { children: [_jsx(Dropdown.Item, { onSelect: onDownloadCsv, children: "Download as CSV" }), _jsx(Dropdown.Item, { onSelect: onDownloadPdf, children: "Download as PDF" })] })] }), _jsx(Button, { variant: "secondary", size: "S", onClick: onSchedule, children: "Schedule" })] }), _jsxs("div", { className: "ds-custom-report-writer-page__toolbar-right", children: [_jsx(Button, { variant: "secondary", size: "S", onClick: onDuplicateSelected, children: "Duplicate" }), _jsx(Button, { variant: "secondary", size: "S", onClick: onEditSelected, children: "Edit" })] })] }), _jsxs("div", { className: "ds-custom-report-writer-page__toolbar-bulk", children: [_jsxs("div", { className: "ds-custom-report-writer-page__toolbar-left", children: [_jsx(Table.BulkActionsDropdown, { actions: bulkActions }), _jsx(Table.HideColumnsDropdown, {})] }), _jsxs("div", { className: "ds-custom-report-writer-page__toolbar-right", children: [_jsx(TooltipWrapper, { tooltipContent: "Export", children: _jsx(Button, { variant: "tertiary", size: "S", iconLeftName: "upload", iconLeftScreenReaderText: "Export" }) }), _jsx(TooltipWrapper, { tooltipContent: "Settings", children: _jsx(Button, { variant: "tertiary", size: "S", iconLeftName: "settings", iconLeftScreenReaderText: "Settings" }) }), _jsx(TooltipWrapper, { tooltipContent: "Help", children: _jsx(Button, { variant: "tertiary", size: "S", iconLeftName: "circle-help", iconLeftScreenReaderText: "Help" }) }), _jsx(TooltipWrapper, { tooltipContent: "Expand table", children: _jsx(Button, { variant: "tertiary", size: "S", iconLeftName: "expand", iconLeftScreenReaderText: "Expand table" }) })] })] })] }));
153
+ const tableFooterContent = (_jsxs("div", { className: "ds-custom-report-writer-page__filter-row", children: [_jsx(Icon, { name: "funnel", size: 16 }), _jsx(Table.RowCountInfo, {}), _jsx(Button, { variant: "text-link", onClick: onChangeFilters, children: "Change" })] }));
154
+ return (_jsxs("div", { className: classNames('ds-custom-report-writer-page', className), children: [_jsxs("svg", { role: "img", "aria-label": "TopNav placeholder - component not yet available in design system", width: "100%", height: 48, xmlns: "http://www.w3.org/2000/svg", className: "ds-custom-report-writer-page__top-nav-placeholder", children: [_jsx("rect", { width: "100%", height: "100%", fill: "#2c2c2c" }), _jsx("text", { x: "50%", y: "50%", textAnchor: "middle", dominantBaseline: "middle", fill: "#888888", fontSize: "12", fontFamily: "sans-serif", children: "TopNav" })] }), _jsxs("div", { className: "ds-custom-report-writer-page__layout", children: [_jsxs("svg", { role: "img", "aria-label": "SideNavIcons placeholder - component not yet available in design system", width: 48, height: 600, xmlns: "http://www.w3.org/2000/svg", className: "ds-custom-report-writer-page__side-nav-icons-placeholder", children: [_jsx("rect", { width: "100%", height: "100%", fill: "#f5f5f5" }), _jsx("rect", { x: "2", y: "2", width: "44", height: "596", fill: "none", stroke: "#cccccc", strokeWidth: "2", strokeDasharray: "8 4", rx: "3" }), _jsx("text", { x: "50%", y: "50%", textAnchor: "middle", dominantBaseline: "middle", fill: "#888888", fontSize: "10", fontFamily: "sans-serif", transform: "rotate(-90, 24, 300)", children: "SideNavIcons" })] }), _jsxs("svg", { role: "img", "aria-label": "SideNavText placeholder - component not yet available in design system", width: 200, height: 600, xmlns: "http://www.w3.org/2000/svg", className: "ds-custom-report-writer-page__side-nav-text-placeholder", children: [_jsx("rect", { width: "100%", height: "100%", fill: "#f5f5f5" }), _jsx("rect", { x: "2", y: "2", width: "196", height: "596", fill: "none", stroke: "#cccccc", strokeWidth: "2", strokeDasharray: "8 4", rx: "3" }), _jsx("text", { x: "50%", y: "48%", textAnchor: "middle", dominantBaseline: "middle", fill: "#888888", fontSize: "12", fontWeight: "600", fontFamily: "sans-serif", children: "SideNavText" }), _jsx("text", { x: "50%", y: "55%", textAnchor: "middle", dominantBaseline: "middle", fill: "#aaaaaa", fontSize: "10", fontFamily: "sans-serif", children: "Component not yet available" })] }), _jsxs("main", { className: "ds-custom-report-writer-page__content", children: [_jsx("nav", { "aria-label": "Breadcrumb", className: "ds-custom-report-writer-page__breadcrumbs", children: _jsxs("ol", { className: "ds-custom-report-writer-page__breadcrumb-list", children: [_jsx("li", { className: "ds-custom-report-writer-page__breadcrumb-item", children: _jsx(Button, { variant: "text-link", onClick: () => undefined, children: "School" }) }), _jsx("li", { "aria-hidden": "true", className: "ds-custom-report-writer-page__breadcrumb-separator", children: _jsx(Icon, { name: "chevron-right", size: 16 }) }), _jsx("li", { className: "ds-custom-report-writer-page__breadcrumb-item ds-custom-report-writer-page__breadcrumb-item--current", "aria-current": "page", children: "Custom Report Writer" })] }) }), _jsxs("header", { className: "ds-custom-report-writer-page__header", children: [_jsx(Heading, { level: 1, children: "Custom Report Writer - All Reports" }), _jsx(Button, { variant: "primary", onClick: onCreateNewReport, children: "Create New Report" })] }), _jsxs("svg", { role: "img", "aria-label": "Banner placeholder - component not yet available in design system", width: "100%", height: 64, xmlns: "http://www.w3.org/2000/svg", className: "ds-custom-report-writer-page__banner-placeholder", children: [_jsx("rect", { width: "100%", height: "100%", fill: "#f5f5f5" }), _jsx("rect", { x: "2", y: "2", width: "99%", height: "60", fill: "none", stroke: "#cccccc", strokeWidth: "2", strokeDasharray: "8 4", rx: "3" }), _jsx("text", { x: "50%", y: "42%", textAnchor: "middle", dominantBaseline: "middle", fill: "#888888", fontSize: "13", fontWeight: "600", fontFamily: "sans-serif", children: "Banner" }), _jsx("text", { x: "50%", y: "65%", textAnchor: "middle", dominantBaseline: "middle", fill: "#aaaaaa", fontSize: "11", fontFamily: "sans-serif", children: "Component not yet available in design system" })] }), _jsxs(Tabs, { children: [_jsx(Tabs.Item, { active: activeTab === 'active', tabElementProps: { onClick: () => setActiveTab('active') }, children: "Active" }), _jsx(Tabs.Item, { active: activeTab === 'archived', tabElementProps: { onClick: () => setActiveTab('archived') }, children: "Archived" }), _jsx(Tabs.Item, { active: activeTab === 'expired', tabElementProps: { onClick: () => setActiveTab('expired') }, children: "Expired" })] }), _jsx(Table, { rowData: reports, columnDefs: columnDefs, domLayout: "autoHeight", headerContent: tableHeaderContent, footerContent: tableFooterContent, hasSearch: false })] })] })] }));
155
+ };
156
+ //# sourceMappingURL=CustomReportWriterPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomReportWriterPage.js","sourceRoot":"","sources":["../../../src/pages/customReportWriterPage/CustomReportWriterPage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,239 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ /**
3
+ * Well, picture it: St. Olaf, 1989.
4
+ *
5
+ * Every year, the town hall would commission a big batch of reports - attendance
6
+ * of the yodeling classes, staff contracts for the eel wranglers, medical events
7
+ * from the annual lutefisk tasting incident. Old Sigrid Petersen was in charge
8
+ * of keeping track of them all, and she did it by stacking them in three different
9
+ * drawers: Active reports (currently useful), Archived reports (lovingly retired),
10
+ * and Expired reports (the ones that had gone stale because the student groups
11
+ * they referenced no longer existed). Every few months someone would open the
12
+ * Expired drawer and a warning note would fall out saying "Fix the filters, Sigrid!"
13
+ * It was very stressful. Poor Sigrid.
14
+ *
15
+ * The CustomReportWriterPage is the digital solution that would have saved Sigrid
16
+ * years of drawer-related anxiety. It is the main page for browsing and managing
17
+ * custom reports in the Arbor system - three clear tabs (Active, Archived, Expired),
18
+ * a warning banner about expired filters, a download dropdown, scheduling and
19
+ * duplication tooling, and a powerful AG Grid table showing all reports at a glance.
20
+ *
21
+ * **Features:**
22
+ * - Placeholder SVGs for TopNav and SideNav (app shell components not yet in library)
23
+ * - Composed breadcrumb navigation: School / Custom Report Writer
24
+ * - Page heading "Custom Report Writer - All Reports" with a "Create New Report" primary button
25
+ * - Placeholder SVG for Banner/Alert (no Banner component in library yet)
26
+ * - Tab navigation to switch between Active, Archived, and Expired views
27
+ * - AG Grid table with: checkbox selection, Title (text-link), Type (with icon), Created By,
28
+ * Context, Created Date, Modified Date, Accessed Date, and a row-actions dropdown (Duplicate / Edit)
29
+ * - Primary toolbar with: Download dropdown (CSV / PDF), Schedule, Duplicate, Edit buttons
30
+ * - Bulk actions toolbar with: BulkActionsDropdown, HideColumnsDropdown, Export, Settings, Help,
31
+ * and Expand Table icon buttons (all with tooltips)
32
+ * - Filter row footer with a funnel icon, live row count, and a "Change" text-link button
33
+ *
34
+ * **Tab behaviour:**
35
+ * - The Active tab is selected by default on first render
36
+ * - Tab state is managed internally via useState - no external wiring needed
37
+ * - All three tabs (Active, Archived, Expired) display the same `reports` array -
38
+ * the consuming application is responsible for passing the correct subset per tab
39
+ *
40
+ * **Placeholder SVG components:**
41
+ *
42
+ * | Placeholder | Reason |
43
+ * |------------------|---------------------------------------------------------------------|
44
+ * | TopNav | App shell component - not yet available in the design system library |
45
+ * | SideNavIcons | App shell component - not yet available in the design system library |
46
+ * | SideNavText | App shell component - not yet available in the design system library |
47
+ * | Banner | No Banner/Alert component in library yet |
48
+ *
49
+ * **Composed (not library) components:**
50
+ *
51
+ * | Interim pattern | Reason |
52
+ * |------------------|---------------------------------------------------------------------|
53
+ * | Breadcrumb nav | No Breadcrumbs component in library yet - composed with nav/ol/li |
54
+ *
55
+ * **Callbacks:**
56
+ * - `onCreateNewReport` - fired when the "Create New Report" header button is clicked
57
+ * - `onSchedule` - fired when the "Schedule" toolbar button is clicked
58
+ * - `onDuplicateSelected` - fired when the primary toolbar "Duplicate" button is clicked
59
+ * - `onEditSelected` - fired when the primary toolbar "Edit" button is clicked
60
+ * - `onDownloadCsv` - fired when "Download as CSV" is selected from the Download dropdown
61
+ * - `onDownloadPdf` - fired when "Download as PDF" is selected from the Download dropdown
62
+ * - `onChangeFilters` - fired when the "Change" text-link in the filter footer is clicked
63
+ * - `onOpenReport` - fired with the report id when a report title link in the table is clicked
64
+ * - `onDuplicateReport` - fired with the full ReportRow object when "Duplicate" is chosen in a row dropdown
65
+ * - `onEditReport` - fired with the full ReportRow object when "Edit" is chosen in a row dropdown
66
+ *
67
+ * **Accessibility:**
68
+ * - Breadcrumb uses `<nav aria-label="Breadcrumb">` with `aria-current="page"` on the current item
69
+ * - The separator chevrons have `aria-hidden="true"` so screen readers skip them
70
+ * - All icon-only buttons have `iconLeftScreenReaderText` for screen reader users
71
+ * - Tooltip wrappers provide visible labels for Export, Settings, Help, and Expand Table buttons
72
+ * - Page structure uses semantic `<main>`, `<header>`, and `<nav>` landmarks
73
+ * - All placeholder SVGs have `role="img"` with descriptive `aria-label` attributes
74
+ */
75
+ declare const meta: {
76
+ title: string;
77
+ component: ({ className, reports, bulkActions, onCreateNewReport, onSchedule, onDuplicateSelected, onEditSelected, onDownloadCsv, onDownloadPdf, onChangeFilters, onOpenReport, onDuplicateReport, onEditReport, }: import("./CustomReportWriterPage.js").CustomReportWriterPageProps) => import("react/jsx-runtime").JSX.Element;
78
+ parameters: {
79
+ layout: string;
80
+ docs: {
81
+ description: {
82
+ component: string;
83
+ };
84
+ };
85
+ };
86
+ tags: string[];
87
+ args: {
88
+ onCreateNewReport: import("@vitest/spy").Mock<(...args: any[]) => any>;
89
+ onSchedule: import("@vitest/spy").Mock<(...args: any[]) => any>;
90
+ onDuplicateSelected: import("@vitest/spy").Mock<(...args: any[]) => any>;
91
+ onEditSelected: import("@vitest/spy").Mock<(...args: any[]) => any>;
92
+ onDownloadCsv: import("@vitest/spy").Mock<(...args: any[]) => any>;
93
+ onDownloadPdf: import("@vitest/spy").Mock<(...args: any[]) => any>;
94
+ onChangeFilters: import("@vitest/spy").Mock<(...args: any[]) => any>;
95
+ onOpenReport: import("@vitest/spy").Mock<(...args: any[]) => any>;
96
+ onDuplicateReport: import("@vitest/spy").Mock<(...args: any[]) => any>;
97
+ onEditReport: import("@vitest/spy").Mock<(...args: any[]) => any>;
98
+ };
99
+ argTypes: {
100
+ reports: {
101
+ control: "object";
102
+ description: string;
103
+ };
104
+ bulkActions: {
105
+ control: "object";
106
+ description: string;
107
+ };
108
+ onCreateNewReport: {
109
+ description: string;
110
+ };
111
+ onSchedule: {
112
+ description: string;
113
+ };
114
+ onDuplicateSelected: {
115
+ description: string;
116
+ };
117
+ onEditSelected: {
118
+ description: string;
119
+ };
120
+ onDownloadCsv: {
121
+ description: string;
122
+ };
123
+ onDownloadPdf: {
124
+ description: string;
125
+ };
126
+ onChangeFilters: {
127
+ description: string;
128
+ };
129
+ onOpenReport: {
130
+ description: string;
131
+ };
132
+ onDuplicateReport: {
133
+ description: string;
134
+ };
135
+ onEditReport: {
136
+ description: string;
137
+ };
138
+ className: {
139
+ control: "text";
140
+ description: string;
141
+ };
142
+ };
143
+ };
144
+ export default meta;
145
+ type Story = StoryObj<typeof meta>;
146
+ /**
147
+ * The default state, using the component's built-in example reports.
148
+ *
149
+ * Oh, this is just like St. Olaf on a perfectly ordinary Tuesday! Everything
150
+ * is in its place, the reports are all there, the warning banner is kindly
151
+ * reminding you about those expired filters, and the three tabs are lined up
152
+ * waiting for you to choose: Active, Archived, or Expired.
153
+ *
154
+ * This story renders with no props at all (well, the callback `fn()` spies are
155
+ * there, but they come from the meta args). The component's own built-in default
156
+ * data takes over: six realistic example reports including attendance records,
157
+ * student contacts, school name stamps, aptitude reports, a staff contract port,
158
+ * and a medical events report. Just a lovely cross-section of school life.
159
+ *
160
+ * Things to try:
161
+ * - Click the "Active", "Archived", or "Expired" tabs to switch views
162
+ * - Click "Create New Report" to fire `onCreateNewReport` (see the Actions panel)
163
+ * - Click the "Download" dropdown to access CSV and PDF export options
164
+ * - Click any report title link to fire `onOpenReport` with that report's id
165
+ * - Click the ellipsis icon on any row to access "Duplicate" or "Edit" row actions
166
+ */
167
+ export declare const Default: Story;
168
+ /**
169
+ * The page loaded with a custom set of reports.
170
+ *
171
+ * You know, this reminds me of the time in St. Olaf when the new school
172
+ * secretary, Ingrid Bergsen, came in and said "I'm going to reorganise all
173
+ * the reports my way." And she did! Three beautiful new reports: an attendance
174
+ * summary for Year 11, a staff absence overview, and a whole-school behaviour
175
+ * report. Each one was relevant, well-named, and lovingly created by a real
176
+ * person (well, two real people and Arbor Admin, but that counts).
177
+ *
178
+ * This story demonstrates passing your own `reports` array to the component.
179
+ * Three reports of different types (Student, Staff, School) are shown, each
180
+ * with a different creator and context. The Type column correctly shows the
181
+ * matching icon for each type - a person icon for Student and Staff, a house
182
+ * for School.
183
+ *
184
+ * Click any report title to fire `onOpenReport`. Use the ellipsis row dropdown
185
+ * to fire `onDuplicateReport` or `onEditReport` with the full report object.
186
+ */
187
+ export declare const WithCustomReports: Story;
188
+ /**
189
+ * The empty state - no reports have been created yet.
190
+ *
191
+ * Oh, this is like arriving at the St. Olaf town hall on the very first day
192
+ * before anyone has filed a single thing. The breadcrumbs are there, the header
193
+ * is gleaming, the three tabs are ready and waiting, the banner placeholder is still
194
+ * dutifully occupying its space (even though there are no expired filters yet,
195
+ * which is a little philosophical if you think about it), and the table
196
+ * is absolutely, beautifully empty. The AG Grid dutifully shows zero rows.
197
+ *
198
+ * This is your starting point. A fresh system with no custom reports yet.
199
+ * Click "Create New Report" to begin populating the list. The toolbar buttons
200
+ * and filter footer render correctly even with an empty table, so you can
201
+ * verify the overall page layout without needing any data.
202
+ *
203
+ * Notice that the warning banner still renders - in a real application you
204
+ * would likely hide it conditionally when there are no expired reports, but
205
+ * this story shows the full page chrome regardless so you can inspect every element.
206
+ */
207
+ export declare const EmptyState: Story;
208
+ /**
209
+ * All callbacks wired to Storybook action spies so you can watch them fire.
210
+ *
211
+ * Back in St. Olaf, when something important happened - say, someone opened
212
+ * a report or clicked "Create New Report" - we would ring the town bell so
213
+ * the whole village knew. In Storybook, we use the Actions panel at the bottom
214
+ * of the screen instead! It is very much like a town bell, only quieter and
215
+ * with more TypeScript.
216
+ *
217
+ * Since all callbacks are already wired via `fn()` in the meta `args` above,
218
+ * every story technically has them. But this story is named "With Callbacks
219
+ * Logged" so it is easy to find when you want to specifically focus on testing
220
+ * the interaction wiring. It uses the custom report set so there is something
221
+ * interesting to interact with.
222
+ *
223
+ * Open the "Actions" panel at the bottom of Storybook and try these interactions:
224
+ * - Click "Create New Report" --> `onCreateNewReport` fires
225
+ * - Open the Download dropdown and click "Download as CSV" --> `onDownloadCsv` fires
226
+ * - Open the Download dropdown and click "Download as PDF" --> `onDownloadPdf` fires
227
+ * - Click the "Schedule" button --> `onSchedule` fires
228
+ * - Click the primary toolbar "Duplicate" --> `onDuplicateSelected` fires
229
+ * - Click the primary toolbar "Edit" --> `onEditSelected` fires
230
+ * - Click the "Change" link in the filter footer --> `onChangeFilters` fires
231
+ * - Click a report title text-link --> `onOpenReport` fires with the report id
232
+ * - Click an ellipsis row button and choose "Duplicate" --> `onDuplicateReport` fires with the ReportRow
233
+ * - Click an ellipsis row button and choose "Edit" --> `onEditReport` fires with the ReportRow
234
+ *
235
+ * It is most excellent for verifying integration with parent components or
236
+ * application routing logic, hunni!
237
+ */
238
+ export declare const WithCallbacksLogged: Story;
239
+ //# sourceMappingURL=CustomReportWriterPage.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomReportWriterPage.stories.d.ts","sourceRoot":"","sources":["../../../src/pages/customReportWriterPage/CustomReportWriterPage.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFqC,CAAC;AAEhD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAmEnC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAK/B,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,UAAU,EAAE,KAKxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAMjC,CAAC"}